From 1d238966aca30d36f56ce03b7e361836cbf82bc5 Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Apr 06 2017 23:17:09 +0000 Subject: Upgrade to 2.0.0 (#1439727) --- diff --git a/libidn2-0.16-rpath.patch b/libidn2-0.16-rpath.patch deleted file mode 100644 index 0a227cc..0000000 --- a/libidn2-0.16-rpath.patch +++ /dev/null @@ -1,70 +0,0 @@ -Patch by Robert Scheck for libidn2 >= 0.16, 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@\(# Append ld.so.conf contents to the search path\)@# 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-0.16/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-0.16/configure 2017-01-16 08:44:58.000000000 +0100 -+++ libidn2-0.16/configure.rpath 2017-01-27 01:33:19.957032530 +0100 -@@ -12363,10 +12363,13 @@ - # 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" -+ - # Append ld.so.conf contents 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-0.16/m4/libtool.m4 2017-01-16 08:44:18.000000000 +0100 -+++ libidn2-0.16/m4/libtool.m4.rpath 2017-01-27 01:34:19.469749808 +0100 -@@ -2672,10 +2672,13 @@ - # 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" -+ - # Append ld.so.conf contents 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 diff --git a/libidn2-2.0.0-rpath.patch b/libidn2-2.0.0-rpath.patch new file mode 100644 index 0000000..2cb2b81 --- /dev/null +++ b/libidn2-2.0.0-rpath.patch @@ -0,0 +1,78 @@ +Patch by Robert Scheck 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 diff --git a/libidn2.spec b/libidn2.spec index 2be9523..7898e1d 100644 --- a/libidn2.spec +++ b/libidn2.spec @@ -1,12 +1,13 @@ Summary: Library to support IDNA2008 internationalized domain names Name: libidn2 -Version: 0.16 -Release: 2%{?dist} +Version: 2.0.0 +Release: 1%{?dist} License: (GPLv2+ or LGPLv3+) and GPLv3+ Group: System Environment/Libraries URL: https://www.gnu.org/software/libidn/#libidn2 -Source: https://alpha.gnu.org/gnu/libidn/%{name}-%{version}.tar.gz -Patch0: libidn2-0.16-rpath.patch +Source0: https://gitlab.com/libidn/libidn2/uploads/97d4240076af3c145d703b2fa6826c8f/%{name}-%{version}.tar.xz +Source1: https://gitlab.com/libidn/libidn2/uploads/6aa8567cb1b718e886da96ea4863771f/%{name}-%{version}.tar.xz.sig +Patch0: libidn2-2.0.0-rpath.patch BuildRequires: libunistring-devel Requires(post): /sbin/install-info, /sbin/ldconfig Requires(preun): /sbin/install-info @@ -22,7 +23,7 @@ Libidn2 is an implementation of the IDNA2008 specifications in RFC %package devel Summary: Development files for libidn2 Group: Development/Libraries -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release}, pkgconfig %description devel The libidn2-devel package contains libraries and header files for @@ -52,8 +53,8 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la # Some file cleanups rm -f $RPM_BUILD_ROOT%{_datadir}/info/dir -# Remove example-only binaries for now -rm -f $RPM_BUILD_ROOT%{_bindir}/{lookup,register} +# Remove internal build; https://gitlab.com/libidn/libidn2/issues/23 +rm -f $RPM_BUILD_ROOT%{_bindir}/idn2_noinstall %check make %{?_smp_mflags} -C tests check @@ -75,8 +76,8 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %{!?_licensedir:%global license %%doc} -%license COPYING -%doc AUTHORS NEWS README +%license COPYING COPYING.LESSERv3 COPYING.unicode COPYINGv2 +%doc AUTHORS NEWS README.md %{_bindir}/idn2 %{_mandir}/man1/idn2.1* %{_libdir}/%{name}.so.* @@ -86,11 +87,15 @@ rm -rf $RPM_BUILD_ROOT %defattr(-,root,root,-) %doc doc/%{name}.html examples %{_libdir}/%{name}.so +%{_libdir}/pkgconfig/%{name}.pc %{_includedir}/*.h %{_mandir}/man3/* %{_datadir}/gtk-doc/ %changelog +* Thu Apr 06 2017 Robert Scheck 2.0.0-1 +- Upgrade to 2.0.0 (#1439727) + * Fri Feb 10 2017 Fedora Release Engineering - 0.16-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild diff --git a/sources b/sources index 0e30595..347ce7d 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (libidn2-0.16.tar.gz) = 85f41c79bd2b88f2724383461a78e56b47e52e66e3f088d631a922438742938721d26aeebef17f6ca4fd028d95dfb5b0fa298a96982ef777c07fefe5244d1e73 +SHA512 (libidn2-2.0.0.tar.xz) = 0cc199f05526edebb385cd7ca3bafca341e31cc76ef0efe7e63a07ff1d2830d9d33004dfc51aa245b42fdf0de7eeb807fd18255f58cc2b086e1155beaa738502 +SHA512 (libidn2-2.0.0.tar.xz.sig) = 04b06f52bdc0f293577856cbfc149d5eaab7244dd8c5fbf3f1bce33968230d14d58d2e9db9bd1a41f3a36a6a01d6b5ea90d8316dbd8ba440aec44a6b8a4f2309