diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b5544b3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/libidn2-2.0.5.tar.gz diff --git a/.libidn2.metadata b/.libidn2.metadata new file mode 100644 index 0000000..a7eb4ac --- /dev/null +++ b/.libidn2.metadata @@ -0,0 +1 @@ +91a5122511f87aaaa3f1b700f23c487aaf0dbd9e SOURCES/libidn2-2.0.5.tar.gz diff --git a/SOURCES/libidn2-2.0.0-rpath.patch b/SOURCES/libidn2-2.0.0-rpath.patch new file mode 100644 index 0000000..2cb2b81 --- /dev/null +++ b/SOURCES/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/SOURCES/libidn2-2.0.5.tar.gz.sig b/SOURCES/libidn2-2.0.5.tar.gz.sig new file mode 100644 index 0000000..b1307cc Binary files /dev/null and b/SOURCES/libidn2-2.0.5.tar.gz.sig differ diff --git a/SPECS/libidn2.spec b/SPECS/libidn2.spec new file mode 100644 index 0000000..bd1b6f2 --- /dev/null +++ b/SPECS/libidn2.spec @@ -0,0 +1,203 @@ +Summary: Library to support IDNA2008 internationalized domain names +Name: libidn2 +Version: 2.0.5 +Release: 1%{?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 +Patch0: libidn2-2.0.0-rpath.patch + +BuildRequires: gcc +BuildRequires: gettext +BuildRequires: libunistring-devel +Requires(post): /sbin/install-info, /sbin/ldconfig +Requires(preun): /sbin/install-info +Requires(postun): /sbin/ldconfig +Provides: bundled(gnulib) + +%description +Libidn2 is an implementation of the IDNA2008 specifications in RFC +5890, 5891, 5892, 5893 and TR46 for internationalized domain names +(IDN). It is a standalone library, without any dependency on libidn. + +%package devel +Summary: Development files for libidn2 +Requires: %{name}%{?_isa} = %{version}-%{release}, pkgconfig + +%description devel +The libidn2-devel package contains libraries and header files for +developing applications that use libidn2. + +%package -n idn2 +Summary: IDNA2008 internationalized domain names conversion tool +License: GPLv3+ +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description -n idn2 +The idn2 package contains the idn2 command line tool for testing +IDNA2008 conversions. + +%prep +%setup -q +%patch0 -p1 -b .rpath +touch -c -r configure.rpath configure +touch -c -r m4/libtool.m4.rpath m4/libtool.m4 + +%build +%configure --disable-static +make %{?_smp_mflags} + +%install +make DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p' install + +# Clean-up examples for documentation +make %{?_smp_mflags} -C examples distclean +rm -f examples/Makefile* + +# Don't install any libtool .la files +rm -f $RPM_BUILD_ROOT%{_libdir}/*.la + +# Some file cleanups +rm -f $RPM_BUILD_ROOT%{_datadir}/info/dir + +%find_lang %{name} + +%check +make %{?_smp_mflags} -C tests check + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%post -n idn2 +/sbin/install-info %{_infodir}/%{name}.info.gz %{_infodir}/dir || : + +%preun -n idn2 +if [ $1 = 0 ]; then + /sbin/install-info --delete %{_infodir}/%{name}.info.gz %{_infodir}/dir || : +fi + +%files -f %{name}.lang +%license COPYING COPYING.LESSERv3 COPYING.unicode COPYINGv2 +%doc AUTHORS NEWS README.md +%{_libdir}/%{name}.so.* + +%files devel +%doc doc/%{name}.html examples +%{_libdir}/%{name}.so +%{_libdir}/pkgconfig/%{name}.pc +%{_includedir}/*.h +%{_mandir}/man3/* +%{_datadir}/gtk-doc/ + +%files -n idn2 +%{_bindir}/idn2 +%{_mandir}/man1/idn2.1* +%{_infodir}/%{name}.info* + +%changelog +* Mon May 21 2018 Robert Scheck 2.0.5-1 +- Upgrade to 2.0.5 (#1577864, #1579825) + +* Wed Apr 04 2018 Robert Scheck 2.0.4-7 +- Split RPM scriptlets (#1563832) + +* Mon Apr 02 2018 Robert Scheck 2.0.4-6 +- Use splitting suggestions from Nikos Mavrogiannopoulos instead + +* Mon Apr 2 2018 Peter Robinson 2.0.4-5 +- Split cli utilities out into a sub package +- Spec file cleanups + +* Fri Mar 30 2018 Robert Scheck 2.0.4-4 +- Added upstream patch to fix silently transliterated decoded + domain names (#1556954) + +* Sun Feb 18 2018 Robert Scheck 2.0.4-3 +- Added upstream patch to fix STD3 ASCII rules (#1543021) + +* Wed Feb 07 2018 Fedora Release Engineering - 2.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 30 2017 Robert Scheck 2.0.4-1 +- Upgrade to 2.0.4 (#1486881, #1486882) + +* Tue Aug 01 2017 Robert Scheck 2.0.3-1 +- Upgrade to 2.0.3 (#1468608, #1474324) + +* Wed Jul 26 2017 Fedora Release Engineering - 2.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sun Apr 30 2017 Robert Scheck 2.0.2-1 +- Upgrade to 2.0.2 (#1444712) + +* 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 + +* Fri Jan 27 2017 Robert Scheck 0.16-1 +- Upgrade to 0.16 (#1416642) + +* Mon Nov 21 2016 Robert Scheck 0.11-1 +- Upgrade to 0.11 +- Reflect dual-licensing of library in license tag (#1397021) + +* Thu Feb 04 2016 Fedora Release Engineering - 0.10-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Dec 7 2015 Than Ngo 0.10-2 +- fix build failure related to missing automake-1.14 + +* Wed Jun 17 2015 Fedora Release Engineering - 0.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Feb 21 2015 Till Maas - 0.10-2 +- Rebuilt for Fedora 23 Change + https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code + +* Sun Oct 12 2014 Robert Scheck 0.10-1 +- Upgrade to 0.10 + +* Sun Aug 17 2014 Fedora Release Engineering - 0.8-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 0.8-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 0.8-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Feb 14 2013 Fedora Release Engineering - 0.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Fri Nov 16 2012 Robert Scheck 0.8-3 +- Added provide bundled(gnulib) as it's a copylib (#821769) + +* Thu Jul 19 2012 Fedora Release Engineering - 0.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sun Jan 15 2012 Robert Scheck 0.8-1 +- Upgrade to 0.8 + +* Fri Jan 13 2012 Fedora Release Engineering - 0.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Sat Aug 13 2011 Robert Scheck 0.7-1 +- Upgrade to 0.7 + +* Sat Jun 04 2011 Robert Scheck 0.6-1 +- Upgrade to 0.6 + +* Wed May 18 2011 Robert Scheck 0.5-1 +- Upgrade to 0.5 + +* Mon May 16 2011 Robert Scheck 0.4-1 +- Upgrade to 0.4 + +* Sat May 07 2011 Robert Scheck 0.3-1 +- Upgrade to 0.3 +- Initial spec file for Fedora and Red Hat Enterprise Linux