Compare commits

...

No commits in common. 'c8' and 'epel9' have entirely different histories.
c8 ... epel9

2
.gitignore vendored

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

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

@ -1,81 +1,45 @@
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
%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
%description devel
libIDL is a library for parsing IDL (Interface Definition Language).
It can be used for both COM-style and CORBA-style IDL.
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
%build
%configure
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
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.*
%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
%changelog
* 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 +150,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

@ -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} {

@ -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:

@ -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

@ -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);

@ -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)

@ -0,0 +1,3 @@
# This software is unsupported upstream, so this cannot be fixed without
# changing the license file downstream, which is discouraged.
addFilter(r" incorrect-fsf-address ")

@ -0,0 +1,189 @@
%bcond autoreconf 1
Name: libIDL
Summary: Library for parsing IDL (Interface Definition Language)
Version: 0.8.14
%global so_version 0
Release: %autorelease
# The entire source is LGPL-2.0-or-later, except:
#
# GPL-3.0-or-later:
# - texinfo.tex
# - libIDL2.info
# - libIDL2.texi
# The generated HTML documentation is also derived from texinfo.tex, and is
# therefore also GPL-3.0-or-later. These files comprise the entire contents
# of the -doc subpackage.
%global doc_license GPL-3.0-or-later
License: LGPL-2.0-or-later
# Additionally, the following files do not contribute to the license of the
# binary RPMs because they belong to the build system or are otherwise not
# compiled and/or installed.
#
# FSFUL AND GPL-2.0-or-later WITH Libtool-exception AND LGPL-2.0-or-later:
# (LGPL-2.0-or-later is from the corresponding configure.in file.)
# - configure
# FSFULLR:
# - aclocal.m4
# FSFULLR AND LGPL-2.0-or-later:
# (LGPL-2.0-or-later is from the corresponding Makefile.am files.)
# - Makefile.in
# - */Makefile.in
# GPL-2.0-or-later WITH Autoconf-exception-generic:
# - config.guess
# - config.sub
# - depcomp
# - missing
# GPL-2.0-or-later WITH Libtool-exception:
# - ltmain.sh
SourceLicense: %{shrink:
%{license} AND %{doc_license} AND
FSFUL AND
FSFULLR AND
GPL-2.0-or-later WITH Autoconf-exception-generic
GPL-2.0-or-later WITH Libtool-exception
}
%global minorversion %(echo '%{version}' | cut -d . -f 1-2)
URL: https://download.gnome.org/sources/libIDL/%{minorversion}/
Source0: %{url}/libIDL-%{version}.tar.bz2
# Hand-written man page:
Source1: libIDL-config-2.1
# 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.
# 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:
Patch: libIDL-0.8.6-multilib.patch
# Remove an unused parent-node variable in the primary_expr part of the parser,
# which caused a compiler warning.
Patch: libIDL-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.
Patch: libIDL-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.
Patch: libIDL-0.8.14-lexer-sscanf-type-punning.patch
# Fix references to the old libIDL-config script by changing them to
# libIDL-config-2.
Patch: libIDL-0.8.14-old-libIDL-config-script.patch
BuildRequires: gcc
BuildRequires: make
%if %{with autoreconf}
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
%endif
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: flex
BuildRequires: bison
BuildRequires: texinfo
BuildRequires: texinfo-tex
BuildRequires: tex(latex)
%global common_description %{expand:
libIDL is a library for parsing IDL (Interface Definition Language). It can be
used for both COM-style and CORBA-style IDL.}
%description %{common_description}
%package devel
Summary: Development libraries and header files for libIDL
Requires: %{name} = %{version}-%{release}
Requires: glib2-devel%{?_isa}
%description devel %{common_description}
This package contains the header files and libraries needed to write or compile
programs that use libIDL.
%package doc
Summary: Documentation for libIDL
License: %{doc_license}
BuildArch: noarch
%description doc %{common_description}
This page contains info pages and HTML and PDF documentation for libIDL.
%prep
%autosetup -p1
%build
%if %{with autoreconf}
autoreconf --force --install --verbose
%endif
%configure --disable-static
# We re-generate the info page, and also build PDF and HTML docs from the
# texinfo source.
rm libIDL2.info
%make_build all libIDL2.info libIDL2.html libIDL2.pdf
%install
%make_install
rm '%{buildroot}%{_libdir}/libIDL-2.la'
rm '%{buildroot}%{_infodir}/dir'
install -t '%{buildroot}%{_pkgdocdir}' -D -p -m 0644 \
AUTHORS BUGS ChangeLog HACKING MAINTAINERS NEWS README libIDL2.pdf
cp -rp 'libIDL2.html' '%{buildroot}%{_pkgdocdir}/html'
install -t '%{buildroot}%{_datadir}/aclocal/libIDL.m4' -D -p -m 0644 \
libIDL.m4
install -t '%{buildroot}%{_mandir}/man1' -D -p -m 0644 '%{SOURCE1}'
%files
%license COPYING
%{_libdir}/libIDL-2.so.%{so_version}{,.*}
%files devel
%{_libdir}/libIDL-2.so
%{_includedir}/libIDL-2.0/
%{_libdir}/pkgconfig/libIDL-2.0.pc
# Note the aclocal directory is provided by the “filesystem” package
%{_datadir}/aclocal/libIDL.m4
%{_bindir}/libIDL-config-2
%{_mandir}/man1/libIDL-config-2.1*
%files doc
%{_infodir}/libIDL2.info*
%{_pkgdocdir}/
%changelog
%autochangelog

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