Compare commits

...

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

10 changed files with 413 additions and 63 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/libIDL-0.8.14.tar.bz2
libIDL-0.8.14.tar.bz2

View File

@ -1 +1 @@
abedf091bef0c7e65162111baf068dcb739ffcd3 SOURCES/libIDL-0.8.14.tar.bz2
abedf091bef0c7e65162111baf068dcb739ffcd3 libIDL-0.8.14.tar.bz2

View File

@ -0,0 +1,36 @@
diff -Naur libIDL-0.8.14-original/lexer.l libIDL-0.8.14/lexer.l
--- libIDL-0.8.14-original/lexer.l 2009-04-18 08:20:37.000000000 -0400
+++ libIDL-0.8.14/lexer.l 2021-02-03 12:56:01.237822569 -0500
@@ -269,17 +269,29 @@
<*>{whitespace} ;
{b8_int} {
yylval.integer = 0;
- sscanf (yytext, "%" IDL_LL "o", &yylval.integer);
+ {
+ long long unsigned yyltmp = 0;
+ sscanf (yytext, "%" IDL_LL "o", &yyltmp);
+ memmove (&yylval.integer, &yyltmp, sizeof (yylval.integer));
+ }
tokreturn (TOK_INTEGER);
}
{b10_uint} {
yylval.integer = 0;
- sscanf (yytext, "%" IDL_LL "u", &yylval.integer);
+ {
+ long long unsigned yyltmp = 0;
+ sscanf (yytext, "%" IDL_LL "u", &yyltmp);
+ memmove (&yylval.integer, &yyltmp, sizeof (yylval.integer));
+ }
tokreturn (TOK_INTEGER);
}
{b16_int} {
yylval.integer = 0;
- sscanf (yytext + 2, "%" IDL_LL "x", &yylval.integer);
+ {
+ long long unsigned yyltmp = 0;
+ sscanf (yytext + 2, "%" IDL_LL "x", &yyltmp);
+ memmove (&yylval.integer, &yyltmp, sizeof (yylval.integer));
+ }
tokreturn (TOK_INTEGER);
}
{fixed_lit} {

View File

@ -0,0 +1,31 @@
On platforms (such as 64-bit Linux), where long long int and long int are both
64-bit, we can have IDL_LL defined to ll (format with %%lld) while
IDL_longlong_t, which is just gint64, may be ultimately defined to long int.
This results in compiler warnings about the mismatch between the long long
format and long parameter, even though the types are compatible. We can fix
this with a cast to long long before formatting.
diff -Naur libIDL-0.8.14-original/parser.y libIDL-0.8.14/parser.y
--- libIDL-0.8.14-original/parser.y 2009-04-18 08:20:37.000000000 -0400
+++ libIDL-0.8.14/parser.y 2021-02-03 12:37:11.067509562 -0500
@@ -1354,7 +1354,7 @@
} else if (value < 0) {
yywarningv (IDL_WARNING1, "Cannot use negative value %"
IDL_LL "d, using %" IDL_LL "d",
- value, -value);
+ (long long) value, (long long) -value);
if (ident)
IDL_tree_warning (ident,
IDL_WARNING1, "From constant declared here");
diff -Naur libIDL-0.8.14-original/util.c libIDL-0.8.14/util.c
--- libIDL-0.8.14-original/util.c 2009-04-18 08:20:37.000000000 -0400
+++ libIDL-0.8.14/util.c 2021-02-03 12:42:13.641470825 -0500
@@ -2818,7 +2818,7 @@
case IDLN_INTEGER:
/* FIXME: sign */
- dataf (data, "%" IDL_LL "d", IDL_INTEGER (p).value);
+ dataf (data, "%" IDL_LL "d", (long long) IDL_INTEGER (p).value);
break;
case IDLN_FIXED:

View File

@ -0,0 +1,116 @@
diff -Naur libIDL-0.8.14-original/libIDL-config-2.in libIDL-0.8.14/libIDL-config-2.in
--- libIDL-0.8.14-original/libIDL-config-2.in 2009-04-18 08:20:37.000000000 -0400
+++ libIDL-0.8.14/libIDL-config-2.in 2021-02-04 08:30:19.646031279 -0500
@@ -7,7 +7,7 @@
usage()
{
cat <<EOF
-Usage: libIDL-config [OPTIONS]
+Usage: libIDL-config-2 [OPTIONS]
Options:
[--prefix[=DIR]]
[--exec-prefix[=DIR]]
diff -Naur libIDL-0.8.14-original/libIDL.m4.in libIDL-0.8.14/libIDL.m4.in
--- libIDL-0.8.14-original/libIDL.m4.in 2009-04-18 08:20:37.000000000 -0400
+++ libIDL-0.8.14/libIDL.m4.in 2021-02-04 08:33:46.123369131 -0500
@@ -5,7 +5,7 @@
dnl
AC_DEFUN([AM_PATH_LIBIDL],
[dnl
-dnl Get the cflags and libraries from the libIDL-config script
+dnl Get the cflags and libraries from the libIDL-config-2 script
dnl
AC_ARG_WITH(libIDL-prefix,[ --with-libIDL-prefix=PFX Prefix where libIDL is installed (optional)],
libIDL_config_prefix="$withval", libIDL_config_prefix="")
@@ -17,20 +17,20 @@
if test x$libIDL_config_exec_prefix != x ; then
libIDL_config_args="$libIDL_config_args --exec-prefix=$libIDL_config_exec_prefix"
if test x${LIBIDL_CONFIG+set} != xset ; then
- LIBIDL_CONFIG=$libIDL_config_exec_prefix/bin/libIDL-config
+ LIBIDL_CONFIG=$libIDL_config_exec_prefix/bin/libIDL-config-2
fi
fi
if test x$libIDL_config_prefix != x ; then
libIDL_config_args="$libIDL_config_args --prefix=$libIDL_config_prefix"
if test x${LIBIDL_CONFIG+set} != xset ; then
- LIBIDL_CONFIG=$libIDL_config_prefix/bin/libIDL-config
+ LIBIDL_CONFIG=$libIDL_config_prefix/bin/libIDL-config-2
fi
fi
dnl AM_PATH_GLIB(@GLIB_VERSION_REQUIRED@)
AM_PATH_GLIB_2_0(@GLIB_VERSION_REQUIRED@)
- AC_PATH_PROG(LIBIDL_CONFIG, libIDL-config, no)
+ AC_PATH_PROG(LIBIDL_CONFIG, libIDL-config-2, no)
min_libIDL_version=ifelse([$1], ,0.6.0,$1)
AC_MSG_CHECKING(for libIDL - version >= $min_libIDL_version)
no_libIDL=""
@@ -89,16 +89,16 @@
(libIDL_minor_version != $libIDL_config_minor_version) ||
(libIDL_micro_version != $libIDL_config_micro_version))
{
- printf("\n*** 'libIDL-config --version' returned %d.%d.%d, but libIDL (%d.%d.%d)\n",
+ printf("\n*** 'libIDL-config-2 --version' returned %d.%d.%d, but libIDL (%d.%d.%d)\n",
$libIDL_config_major_version, $libIDL_config_minor_version, $libIDL_config_micro_version,
libIDL_major_version, libIDL_minor_version, libIDL_micro_version);
- printf ("*** was found! If libIDL-config was correct, then it is best\n");
+ printf ("*** was found! If libIDL-config-2 was correct, then it is best\n");
printf ("*** to remove the old version of LIBIDL. You may also be able to fix the error\n");
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
printf("*** required on your system.\n");
- printf("*** If libIDL-config was wrong, set the environment variable LIBIDL_CONFIG\n");
- printf("*** to point to the correct copy of libIDL-config, and remove the file config.cache\n");
+ printf("*** If libIDL-config-2 was wrong, set the environment variable LIBIDL_CONFIG\n");
+ printf("*** to point to the correct copy of libIDL-config-2, and remove the file config.cache\n");
printf("*** before re-running configure\n");
}
else if ((libIDL_major_version != LIBIDL_MAJOR_VERSION) ||
@@ -126,10 +126,10 @@
major, minor, micro);
printf("***\n");
printf("*** If you have already installed a sufficiently new version, this error\n");
- printf("*** probably means that the wrong copy of the libIDL-config shell script is\n");
+ printf("*** probably means that the wrong copy of the libIDL-config-2 shell script is\n");
printf("*** being found. The easiest way to fix this is to remove the old version\n");
printf("*** of libIDL, but you can also set the LIBIDL_CONFIG environment to point to the\n");
- printf("*** correct copy of libIDL-config. (In this case, you will have to\n");
+ printf("*** correct copy of libIDL-config-2. (In this case, you will have to\n");
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
printf("*** so that the correct libraries are found at run-time))\n");
}
@@ -147,10 +147,10 @@
else
AC_MSG_RESULT(no)
if test "$LIBIDL_CONFIG" = "no" ; then
- echo "*** The libIDL-config script installed by libIDL could not be found"
+ echo "*** The libIDL-config-2 script installed by libIDL could not be found"
echo "*** If libIDL was installed in PREFIX, make sure PREFIX/bin is in"
echo "*** your path, or set the LIBIDL_CONFIG environment variable to the"
- echo "*** full path to libIDL-config."
+ echo "*** full path to libIDL-config-2."
else
if test -f conf.libIDLtest ; then
:
@@ -175,7 +175,7 @@
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occured. This usually means libIDL was incorrectly installed"
echo "*** or that you have moved libIDL since it was installed. In the latter case, you"
- echo "*** may want to edit the libIDL-config script: $LIBIDL_CONFIG" ])
+ echo "*** may want to edit the libIDL-config-2 script: $LIBIDL_CONFIG" ])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
diff -Naur libIDL-0.8.14-original/tstidl.c libIDL-0.8.14/tstidl.c
--- libIDL-0.8.14-original/tstidl.c 2021-02-04 08:31:53.168637254 -0500
+++ libIDL-0.8.14/tstidl.c 2021-02-04 08:32:10.342748532 -0500
@@ -6,7 +6,7 @@
*
* if given, flags is read as (output_flags << 24) | parse_flags
*
- * gcc `libIDL-config --cflags --libs` tstidl.c -o tstidl
+ * gcc `libIDL-config-2 --cflags --libs` tstidl.c -o tstidl
*
*/
#ifdef G_LOG_DOMAIN

View File

@ -0,0 +1,16 @@
diff -Naur libIDL-0.8.14-original/parser.y libIDL-0.8.14/parser.y
--- libIDL-0.8.14-original/parser.y 2009-04-18 08:20:37.000000000 -0400
+++ libIDL-0.8.14/parser.y 2021-02-03 12:44:47.638466666 -0500
@@ -898,11 +898,9 @@
;
primary_expr: scoped_name {
- IDL_tree p, literal;
+ IDL_tree literal;
assert (IDL_NODE_TYPE ($1) == IDLN_IDENT);
-
- p = IDL_NODE_UP ($1);
if ((literal = IDL_resolve_const_exp ($1, IDLN_ANY))) {
++IDL_NODE_REFS (literal);

38
libIDL-config-2.1 Normal file
View File

@ -0,0 +1,38 @@
.TH LIBIDL\-CONFIG\-2 "1" "February 2021" "" "User Commands"
.SH NAME
libIDL\-config\-2 \- prints information about a libIDL installation
.SH SYNOPSIS
.B libIDL\-config\-2
.RB [ OPTIONS \ ...]
.SH DESCRIPTION
This program is mostly for use in build scripts.
Please consider using
.BR pkg\-config (1)
or
.BR pkgconf (1)
instead.
.SH OPTIONS
.TP
.BR \-\-prefix [=\fIDIR\fR]
Print the prefix for host-independent files for libIDL, e.g. \fB/usr\fR.
.TP
.BR \-\-exec\-prefix [=\fIDIR\fR]
Print the prefix for host-dependent files for libIDL, e.g. \fB/usr\fR.
.TP
.B \-\-version
Display the version of libIDL and exit.
.TP
.B \-\-libs
Display all linker flags:
.BR \-L ,
.BR \-l ,
and otherwise.
.TP
.B \-\-cflags
Display all
.BR CFLAGS :
.BR \-I ,
and otherwise.
.SH "SEE\ ALSO"
.BR pkgconf (1),
.BR pkg\-config (1)

View File

@ -1,81 +1,194 @@
Summary: Library for parsing IDL (Interface Definition Language)
Name: libIDL
Version: 0.8.14
Release: 15%{?dist}
URL: http://ftp.gnome.org/pub/gnome/sources/libIDL/0.8/
Source: http://download.gnome.org/sources/libIDL/0.8/%{name}-%{version}.tar.bz2
Patch0: libIDL-0.8.6-multilib.patch
Group: System Environment/Libraries
License: LGPLv2+
BuildRequires: pkgconfig >= 0.8
BuildRequires: glib2-devel >= 2.0
BuildRequires: flex bison
Name: libIDL
Summary: Library for parsing IDL (Interface Definition Language)
Version: 0.8.14
%global so_version 0
Release: 25%{?dist}
%global minorversion %(echo '%{version}' | cut -d . -f 1-2)
URL: https://download.gnome.org/sources/%{name}/%{minorversion}/
Source0: %{url}/%{name}-%{version}.tar.bz2
# Hand-written man page:
Source1: %{name}-config-2.1
License: LGPLv2+
# Note that upstream is dead; GNOME still offers just a download page, and the
# VCS was migrated to https://gitlab.gnome.org/Archive/libidl, but the project
# is archived and therefore no bug tracker is offered. An old email address for
# the ORBIT development mailing list is offered in the HACKING file, but the
# archived status of the project shows that nothing will be done with patches.
# contact is available. Any patches below will therefore not be sent upstream,
# because there is nowhere for them to go.
#
# Normally this would be the time to re-evaluate whether the package still
# belongs in Fedora, but ORBit2 still requires it, and at least libgnome and
# libbonobo require that, so it is in the dependency chain of a great many
# packages.
# Fix paths reported by the libIDL-config-2 tool to conform with Fedora
# multilib installation paths:
Patch0: %{name}-0.8.6-multilib.patch
# Remove an unused parent-node variable in the primary_expr part of the parser,
# which caused a compiler warning.
Patch1: %{name}-0.8.14-parser-primary_expr-unused-parent-node.patch
# On platforms (such as 64-bit Linux), where long long int and long int are
# both 64-bit, we can have IDL_LL defined to ll (format with %%lld) while
# IDL_longlong_t, which is just gint64, may be ultimately defined to long int.
# This results in compiler warnings about the mismatch between the long long
# format and long parameter, even though the types are compatible. We can fix
# this with a cast to (long long) before formatting.
Patch2: %{name}-0.8.14-long-long-format-warnings.patch
# Instead of type-punning with sscanf, parse into a temporary with a type
# matching the format code and then memmove into the “integer” storage. This is
# no less platform-dependent, but does not invoke undefined behavior or produce
# a compiler warning.
Patch3: %{name}-0.8.14-lexer-sscanf-type-punning.patch
# Fix references to the old libIDL-config script by changing them to
# libIDL-config-2.
Patch4: %{name}-0.8.14-old-libIDL-config-script.patch
BuildRequires: gcc
BuildRequires: make
BuildRequires: pkgconfig
BuildRequires: glib2-devel
BuildRequires: flex
BuildRequires: bison
BuildRequires: texinfo
BuildRequires: texinfo-tex
BuildRequires: tex(latex)
%global common_description %{expand:
%{name} is a library for parsing IDL (Interface Definition Language). It can be
used for both COM-style and CORBA-style IDL.}
%description %{common_description}
%description
libIDL is a library for parsing IDL (Interface Definition Language).
It can be used for both COM-style and CORBA-style IDL.
%package devel
Summary: Development libraries and header files for libIDL
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig >= 1:0.8
Requires: glib2-devel >= 2.0
Requires(post): info
Requires(preun): info
Summary: Development libraries and header files for %{name}
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig
Requires: glib2-devel%{?_isa}
%description devel
libIDL is a library for parsing IDL (Interface Definition Language).
It can be used for both COM-style and CORBA-style IDL.
%description devel %{common_description}
This package contains the header files and libraries needed to write or compile
programs that use %{name}.
%package doc
Summary: Documentation for %{name}
BuildArch: noarch
%description doc %{common_description}
This page contains info pages and HTML and PDF documentation for %{name}.
This package contains the header files and libraries needed to write
or compile programs that use libIDL.
%prep
%setup -q -n %{name}-%{version}
%patch0 -p1 -b .multilib
%autosetup -p1
%build
%configure
make %{?_smp_mflags}
%configure --disable-static
# We re-generate the info page, and also build PDF and HTML docs from the
# texinfo source.
rm %{name}2.info
%make_build all %{name}2.info %{name}2.html %{name}2.pdf
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
%make_install
rm '%{buildroot}%{_libdir}/%{name}-2.la'
rm '%{buildroot}%{_infodir}/dir'
install -t '%{buildroot}%{_pkgdocdir}' -D -p -m 0644 \
AUTHORS \
BUGS \
ChangeLog \
HACKING \
MAINTAINERS \
NEWS \
README \
%{name}2.pdf
cp -rp '%{name}2.html' '%{buildroot}%{_pkgdocdir}/html'
install -t '%{buildroot}%{_datadir}/aclocal/%{name}.m4' -D -p -m 0644 \
%{name}.m4
install -t '%{buildroot}%{_mandir}/man1' -D -p -m 0644 '%{SOURCE1}'
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
rm -f $RPM_BUILD_ROOT%{_libdir}/*a
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%post devel
/sbin/install-info --quiet %{_infodir}/libIDL2.info.gz %{_infodir}/dir || :
%preun devel
if [ $1 = 0 ]; then
/sbin/install-info --quiet --delete %{_infodir}/libIDL2.info.gz %{_infodir}/dir || :
fi
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root)
%{_libdir}/libIDL-*.so.*
%license COPYING
%{_libdir}/%{name}-2.so.%{so_version}
%{_libdir}/%{name}-2.so.%{so_version}.*
%doc AUTHORS COPYING README NEWS BUGS MAINTAINERS
%files devel
%defattr(-,root,root)
%{_includedir}/libIDL-2.0/
%{_libdir}/libIDL-*.so
%{_libdir}/pkgconfig/libIDL-*.pc
%{_bindir}/libIDL-config-2
%{_infodir}/libIDL2.info.gz
%{_libdir}/%{name}-2.so
%{_includedir}/%{name}-2.0/
%{_libdir}/pkgconfig/%{name}-2.0.pc
# Note the aclocal directory is provided by the “filesystem” package
%{_datadir}/aclocal/%{name}.m4
%{_bindir}/%{name}-config-2
%{_mandir}/man1/%{name}-config-2.1*
%files doc
%license COPYING
%{_infodir}/%{name}2.info*
%{_pkgdocdir}
%changelog
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 0.8.14-25
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Wed Feb 03 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 0.8.14-24
- Rearrange whitespace
- Use HTTPS URLs
- Make glib2-devel dependency from -devel subpackage arch-specific
- Use %%autosetup, %%make_build, and %%make_install macros
- Rather than removing the static library, skip building it with --disable-static
- Drop obsolete %%ldconfig_scriptlets macro
- Use much stricter path globs
- Use %%name macro
- Add well-considered patches for all compiler warnings
- Drop explicitly versioned dependencies per Fedora guidelines
- Build HTML and PDF versions of documentation; rebuld the info pages; and move
it all to a -doc subpackage with the text file documentation (README, etc.)
- Properly install the license (COPYING) file
- Patch references to the old libIDL-config, which went away in the year 2002
- Install the m4 script for Autoconf as part of the -devel package
- Add a man page for the libIDL-config-2 script
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.14-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.14-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.14-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.14-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed Apr 24 2019 Björn Esser <besser82@fedoraproject.org> - 0.8.14-19
- Remove hardcoded gzip suffix from GNU info pages
* Thu Mar 7 2019 Tim Landscheidt <tim@tim-landscheidt.de> - 0.8.14-18
- Remove obsolete requirements for %%post/%%preun scriptlets
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.14-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.14-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.14-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
@ -186,8 +299,7 @@ rm -rf %{buildroot}
- rebuilt
* Mon Nov 7 2005 Matthias Clasen <mclasen@redhat.com> 0.8.6-2
- Remove .la files and static libraries from the
-devel package
- Remove .la files and static libraries from the -devel package
* Wed Sep 7 2005 Matthias Clasen <mclasen@redhat.com> 0.8.6-1
- Update to 0.8.6

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (libIDL-0.8.14.tar.bz2) = 906dde087908acd64b209fe466a89ae52a6ea23601cb30092063a6e062b1b6640fc2d5f422efcdd52b2b36ce20e6c244da6205fde0bdcec787fe64058be7adac