Disable undesired Makefile rebuilding by automake (#1999520)
This commit is contained in:
parent
dfa0245024
commit
bb01f5e347
@ -1,78 +0,0 @@
|
||||
Patch by Robert Scheck <robert@fedoraproject.org> for libidn2 >= 2.0.0, which works
|
||||
around the broken libtool of Debian. Multilib/multiarch systems like Fedora or Red
|
||||
Hat Enterprise Linux are using /usr/lib64 for 64 bit libraries and /usr/lib is used
|
||||
for 32 bit libraries. That allows to run 32 bit software on 64 bit systems. Debian
|
||||
systems only use /usr/lib which contains only 32 or 64 bit systems depending on the
|
||||
architecture.
|
||||
|
||||
Libtool hardcodes the runtime search path in a library (rpath), if the library that
|
||||
is used for linking is not within the default system library path. The result is,
|
||||
that if libtool.m4/configure files are generated by a Debian system, but used on a
|
||||
Fedora or Red Hat Enterprise Linux 64 bit system for compiling, "-rpath /usr/lib64"
|
||||
makes it into the binary.
|
||||
|
||||
Fedora and EPEL (for Red Hat Enterprise Linux) do not allow binaries with rpath, as
|
||||
the Linux dynamic linker is usually smarter than the hardcoded path.
|
||||
|
||||
The fix for this issue is to add the optional /lib64 and /usr/lib64 directories at/
|
||||
within libtool in front of the regular /lib and /usr/lib directories at the system
|
||||
library path. These libtool information are hold in libtool.m4, which is generated
|
||||
by running aclocal. As the content of libtool.m4 is included into configure during
|
||||
a run of autoconf, libtool.m4 needs to be modified within the upstream build system
|
||||
each time after a aclocal run - until Debian's libtool is fixed at Debian upstream.
|
||||
|
||||
Applying the fix is either possible by using the last hunk of the patch (the other
|
||||
hunks are runtime-only if configure file has been already generated) or by running
|
||||
the following sed command after each aclocal run within the upstream build system:
|
||||
|
||||
sed -e 's@\(# Ideally, we could use ldconfig to report\)@# Add ABI-specific directories to the system library path.\n sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"\n\n \1@' \
|
||||
-e 's@/lib /usr/lib $lt_ld_extra@$sys_lib_dlsearch_path_spec $lt_ld_extra@' -i libidn2-2.0.0/m4/libtool.m4
|
||||
|
||||
More information regarding this topic can be found for example at:
|
||||
|
||||
- http://osdir.com/ml/bug-libtool-gnu/2009-12/msg00034.html
|
||||
- http://lists.gnu.org/archive/html/libtool/2009-01/msg00039.html
|
||||
- http://thread.gmane.org/gmane.comp.gnu.libtool.general/8339/focus=8345
|
||||
|
||||
--- libidn2-2.0.0/configure 2017-03-29 17:26:58.000000000 +0200
|
||||
+++ libidn2-2.0.0/configure.rpath 2017-04-07 00:59:43.000000000 +0200
|
||||
@@ -14266,6 +14266,9 @@
|
||||
# before this can be enabled.
|
||||
hardcode_into_libs=yes
|
||||
|
||||
+ # Add ABI-specific directories to the system library path.
|
||||
+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
|
||||
+
|
||||
# Ideally, we could use ldconfig to report *all* directores which are
|
||||
# searched for libraries, however this is still not possible. Aside from not
|
||||
# being certain /sbin/ldconfig is available, command
|
||||
@@ -14274,7 +14277,7 @@
|
||||
# appending ld.so.conf contents (and includes) to the search path.
|
||||
if test -f /etc/ld.so.conf; then
|
||||
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
|
||||
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
|
||||
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
|
||||
fi
|
||||
|
||||
# We used to test for /lib/ld.so.1 and disable shared libraries on
|
||||
--- libidn2-2.0.0/m4/libtool.m4 2017-02-15 10:54:29.000000000 +0100
|
||||
+++ libidn2-2.0.0/m4/libtool.m4.rpath 2017-04-07 00:58:52.000000000 +0200
|
||||
@@ -2866,6 +2866,9 @@
|
||||
# before this can be enabled.
|
||||
hardcode_into_libs=yes
|
||||
|
||||
+ # Add ABI-specific directories to the system library path.
|
||||
+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
|
||||
+
|
||||
# Ideally, we could use ldconfig to report *all* directores which are
|
||||
# searched for libraries, however this is still not possible. Aside from not
|
||||
# being certain /sbin/ldconfig is available, command
|
||||
@@ -2874,7 +2877,7 @@
|
||||
# appending ld.so.conf contents (and includes) to the search path.
|
||||
if test -f /etc/ld.so.conf; then
|
||||
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
|
||||
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
|
||||
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
|
||||
fi
|
||||
|
||||
# We used to test for /lib/ld.so.1 and disable shared libraries on
|
20
libidn2.spec
20
libidn2.spec
@ -1,14 +1,13 @@
|
||||
Summary: Library to support IDNA2008 internationalized domain names
|
||||
Name: libidn2
|
||||
Version: 2.3.2
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
License: (GPLv2+ or LGPLv3+) and GPLv3+
|
||||
URL: https://www.gnu.org/software/libidn/#libidn2
|
||||
|
||||
Source0: https://ftp.gnu.org/gnu/libidn/%{name}-%{version}.tar.gz
|
||||
Source1: https://ftp.gnu.org/gnu/libidn/%{name}-%{version}.tar.gz.sig
|
||||
Source2: gpgkey-9AA9BDB11BB1B99A21285A330664A76954265E8C.gpg
|
||||
Patch0: libidn2-2.0.0-rpath.patch
|
||||
|
||||
BuildRequires: gnupg2
|
||||
BuildRequires: gcc
|
||||
@ -16,7 +15,6 @@ BuildRequires: make
|
||||
BuildRequires: gettext
|
||||
BuildRequires: libunistring-devel
|
||||
BuildRequires: texinfo
|
||||
BuildRequires: automake
|
||||
Provides: bundled(gnulib)
|
||||
|
||||
%description
|
||||
@ -48,20 +46,15 @@ IDNA2008 conversions.
|
||||
%prep
|
||||
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
|
||||
%setup -q
|
||||
%patch0 -p1 -b .rpath
|
||||
touch -c -r configure.rpath configure
|
||||
touch -c -r m4/libtool.m4.rpath m4/libtool.m4
|
||||
%if 0%{?fedora} || 0%{?rhel} > 8
|
||||
touch -c -r m4/libtool.m4.rpath aclocal.m4
|
||||
%endif
|
||||
|
||||
%build
|
||||
%configure --disable-static
|
||||
%make_build
|
||||
%make_build -C doc html
|
||||
# Avoid (unnecessary) full autoreconf
|
||||
%make_build AUTOMAKE=true
|
||||
%make_build AUTOMAKE=true -C doc html
|
||||
|
||||
%install
|
||||
%make_install
|
||||
%make_install AUTOMAKE=true
|
||||
|
||||
# Clean-up examples for documentation
|
||||
%make_build -C examples distclean
|
||||
@ -109,6 +102,9 @@ fi
|
||||
%{_infodir}/%{name}.info*
|
||||
|
||||
%changelog
|
||||
* Tue Aug 31 2021 Robert Scheck <robert@fedoraproject.org> 2.3.2-3
|
||||
- Disable undesired Makefile rebuilding by automake (#1999520)
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user