diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bf8ae57 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/nspr-4.21.tar.gz +SOURCES/nspr-config.xml diff --git a/.nspr.metadata b/.nspr.metadata new file mode 100644 index 0000000..67d563a --- /dev/null +++ b/.nspr.metadata @@ -0,0 +1,2 @@ +0ae8c710a52775e209b96aa6220362837b79b6c3 SOURCES/nspr-4.21.tar.gz +f748a225d13fc55d8843c93002a6e8b79cd3779d SOURCES/nspr-config.xml diff --git a/SOURCES/nspr-561901.patch b/SOURCES/nspr-561901.patch new file mode 100644 index 0000000..45dfc58 --- /dev/null +++ b/SOURCES/nspr-561901.patch @@ -0,0 +1,13 @@ +diff -up ./nspr/pr/src/pthreads/ptthread.c.s390x ./nspr/pr/src/pthreads/ptthread.c +--- ./nspr/pr/src/pthreads/ptthread.c.s390x 2012-03-01 18:25:40.922241580 -0800 ++++ ./nspr/pr/src/pthreads/ptthread.c 2012-03-01 18:27:12.759116440 -0800 +@@ -836,6 +836,9 @@ static void _pt_thread_death_internal(vo + #if defined(DEBUG) + memset(thred, 0xaf, sizeof(PRThread)); + #endif /* defined(DEBUG) */ ++#if defined(__s390x__) ++ if (callDestructors) ++#endif + PR_Free(thred); + } /* _pt_thread_death */ + diff --git a/SOURCES/nspr-config-pc.patch b/SOURCES/nspr-config-pc.patch new file mode 100644 index 0000000..2c1fe87 --- /dev/null +++ b/SOURCES/nspr-config-pc.patch @@ -0,0 +1,37 @@ +diff -up nspr/config/nspr-config.in.flags nspr/config/nspr-config.in +--- nspr/config/nspr-config.in.flags 2013-05-29 13:46:34.147971410 -0700 ++++ nspr/config/nspr-config.in 2013-05-29 14:17:10.990838914 -0700 +@@ -102,7 +102,7 @@ if test -z "$includedir"; then + includedir=@includedir@ + fi + if test -z "$libdir"; then +- libdir=@libdir@ ++ libdir=`pkg-config --variable=libdir nspr` + fi + + if test "$echo_prefix" = "yes"; then +@@ -136,12 +136,12 @@ if test "$echo_libs" = "yes"; then + if test -n "$lib_nspr"; then + libdirs="$libdirs -lnspr${major_version}" + fi +- os_ldflags="@LDFLAGS@" ++ os_ldflags=`pkg-config --variable=ldflags nspr` + for i in $os_ldflags ; do + if echo $i | grep \^-L >/dev/null; then + libdirs="$libdirs $i" + fi + done +- echo $libdirs @OS_LIBS@ ++ echo $libdirs `pkg-config --variable=os_libs nspr` + fi + +diff -up nspr/config/nspr.pc.in.flags nspr/config/nspr.pc.in +--- nspr/config/nspr.pc.in.flags 2013-05-29 13:48:15.026643570 -0700 ++++ nspr/config/nspr.pc.in 2013-05-29 13:49:47.795202949 -0700 +@@ -6,5 +6,5 @@ includedir=@includedir@ + Name: NSPR + Description: The Netscape Portable Runtime + Version: @MOD_MAJOR_VERSION@.@MOD_MINOR_VERSION@.@MOD_PATCH_VERSION@ +-Libs: -L@libdir@ -lplds@MOD_MAJOR_VERSION@ -lplc@MOD_MAJOR_VERSION@ -lnspr@MOD_MAJOR_VERSION@ ++Libs: -L@libdir@ -lplds@MOD_MAJOR_VERSION@ -lplc@MOD_MAJOR_VERSION@ -lnspr@MOD_MAJOR_VERSION@ @OS_LIBS@ + Cflags: -I@includedir@ diff --git a/SPECS/nspr.spec b/SPECS/nspr.spec new file mode 100644 index 0000000..e4b99f1 --- /dev/null +++ b/SPECS/nspr.spec @@ -0,0 +1,472 @@ +%global nspr_version 4.21.0 + +# The upstream omits the trailing ".0", while we need it for +# consistency with the pkg-config version: +# https://bugzilla.redhat.com/show_bug.cgi?id=1578106 +%{lua: +rpm.define(string.format("nspr_archive_version %s", + string.gsub(rpm.expand("%nspr_version"), "(.*)%.0$", "%1"))) +} + +Summary: Netscape Portable Runtime +Name: nspr +Version: %{nspr_version} +Release: 1%{?dist} +License: MPLv2.0 +URL: http://www.mozilla.org/projects/nspr/ +Group: System Environment/Libraries +BuildRoot: %{_tmppath}/%{name}-%{version}-root +Conflicts: filesystem < 3 + +# Sources available at https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/ +# When hg tag based snapshots are being used, refer to documentation at +# https://wiki.mozilla.org/NSS:UsingHG and check out https://hg.mozilla.org/projects/nspr +Source0: %{name}-%{nspr_archive_version}.tar.gz +Source1: nspr-config.xml + +Patch1: nspr-config-pc.patch +# Upstream: https://bugzilla.mozilla.org/show_bug.cgi?id=853902 +Patch2: nspr-561901.patch + +%description +NSPR provides platform independence for non-GUI operating system +facilities. These facilities include threads, thread synchronization, +normal file and network I/O, interval timing and calendar time, basic +memory management (malloc and free) and shared library linking. + +%package devel +Summary: Development libraries for the Netscape Portable Runtime +Group: Development/Libraries +Requires: nspr = %{version}-%{release} +Requires: pkgconfig +BuildRequires: xmlto +Conflicts: filesystem < 3 + +%description devel +Header files for doing development with the Netscape Portable Runtime. + +%prep + +%setup -q -n %{name}-%{nspr_archive_version} + +# Original nspr-config is not suitable for our distribution, +# because on different platforms it contains different dynamic content. +# Therefore we produce an adjusted copy of nspr-config that will be +# identical on all platforms. +# However, we need to use original nspr-config to produce some variables +# that go into nspr.pc for pkg-config. + +cp ./nspr/config/nspr-config.in ./nspr/config/nspr-config-pc.in +%patch1 -p0 -b .flags +%patch2 -p0 + +%build + +# partial RELRO support as a security enhancement +LDFLAGS+=-Wl,-z,relro +export LDFLAGS + +%define _configure ./nspr/configure +%configure \ + --prefix=%{_prefix} \ + --libdir=%{_libdir} \ + --includedir=%{_includedir}/nspr4 \ +%ifnarch noarch +%if 0%{__isa_bits} == 64 + --enable-64bit \ +%endif +%endif +%ifarch armv7l armv7hl armv7nhl + --enable-thumb2 \ +%endif + --enable-optimize="$RPM_OPT_FLAGS" \ + --disable-debug + +make + +date +"%e %B %Y" | tr -d '\n' > date.xml +echo -n %{version} > version.xml + +for m in %{SOURCE1}; do + cp ${m} . +done +for m in nspr-config.xml; do + xmlto man ${m} +done + +%check + +# Run test suite. +perl ./nspr/pr/tests/runtests.pl 2>&1 | tee output.log + +TEST_FAILURES=`grep -c FAILED ./output.log` || : +if [ $TEST_FAILURES -ne 0 ]; then + echo "error: test suite returned failure(s)" + exit 1 +fi +echo "test suite completed" + +%install + +%{__rm} -Rf $RPM_BUILD_ROOT + +DESTDIR=$RPM_BUILD_ROOT \ + make install + +mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 + +NSPR_LIBS=`./config/nspr-config --libs` +NSPR_CFLAGS=`./config/nspr-config --cflags` +NSPR_VERSION=`./config/nspr-config --version` +%{__mkdir_p} $RPM_BUILD_ROOT/%{_libdir}/pkgconfig + +# Get rid of the things we don't want installed (per upstream) +%{__rm} -rf \ + $RPM_BUILD_ROOT/%{_bindir}/compile-et.pl \ + $RPM_BUILD_ROOT/%{_bindir}/prerr.properties \ + $RPM_BUILD_ROOT/%{_libdir}/libnspr4.a \ + $RPM_BUILD_ROOT/%{_libdir}/libplc4.a \ + $RPM_BUILD_ROOT/%{_libdir}/libplds4.a \ + $RPM_BUILD_ROOT/%{_datadir}/aclocal/nspr.m4 \ + $RPM_BUILD_ROOT/%{_includedir}/nspr4/md + +for f in nspr-config; do + install -c -m 644 ${f}.1 $RPM_BUILD_ROOT%{_mandir}/man1/${f}.1 +done + +%clean +%{__rm} -Rf $RPM_BUILD_ROOT + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%{_libdir}/libnspr4.so +%{_libdir}/libplc4.so +%{_libdir}/libplds4.so + +%files devel +%defattr(-, root, root) +%{_includedir}/nspr4 +%{_libdir}/pkgconfig/nspr.pc +%{_bindir}/nspr-config +%{_mandir}/man*/* + +%changelog +* Wed Mar 20 2019 Daiki Ueno - 4.21.0-1 +- Rebase to NSPR 4.21 + +* Mon Mar 5 2018 Daiki Ueno - 4.19.0-1 +- Rebase to NSPR 4.19 + +* Thu Mar 1 2018 Daiki Ueno - 4.19.0-0.1.beta +- Rebase to NSPR 4.19 BETA + +* Fri Oct 6 2017 Daiki Ueno - 4.17.0-1 +- Rebase to NSPR 4.17 + +* Wed Aug 23 2017 Daiki Ueno - 4.16.0-1 +- Rebase to NSPR 4.16 + +* Fri Feb 10 2017 Daiki Ueno - 4.13.1-1.0 +- Rebase to NSPR 4.13.1 + +* Mon Jan 18 2016 Elio Maldonado - 4.11.0-1 +- Rebase to NSPR 4.11 +- Resolves: Bug 1297941 - Rebase RHEL 7.3 to NSS 3.21 in preparation for Firefox 45 + +* Fri Oct 16 2015 Elio Maldonado - 4.10.8-2 +- Resolves: Bug 1269363 - CVE-2015-7183 +- nspr: heap-buffer overflow in PL_ARENA_ALLOCATE can lead to crash (under ASAN), potential memory corruption + +* Mon Mar 30 2015 Elio Maldonado - 4.10.8-1 +- Resolves: Bug 1200917 - Rebase nspr to 4.10.8 for Firefox 38 ESR + +* Mon Dec 01 2014 Elio Maldonado - 4.10.6-3 +- Restore s390x related patch as it hasn't been applied upstream yet +- Resolves: Bug 1103250 - Rebase RHEL 7.1 to NSPR 4.10.6 (for FF 31) + +* Tue Aug 05 2014 Elio Maldonado 4.10.6-2 +- Generic 32/64 bit platform detection (fix ppc64le build) +- Resolves: Bug 1126243 - Ensure nspr is built for 64 bit on ppc64le + +* Tue Jul 08 2014 Elio Maldonado - 4.10.6-1 +- Rebase to nspr-4.10.6 +- Resolves: Bug 1103250 - Rebase RHEL 7.1 to NSPR 4.10.6 (for FF 31) + +* Fri Jan 24 2014 Daniel Mach - 4.10.2-4 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 4.10.2-3 +- Mass rebuild 2013-12-27 + +* Fri Nov 29 2013 Elio Maldonado - 4.10.2-2 +- Restore previously used s390x patch as it isn't upstream yet +- Related: rhbz#1031465 - CVE-2013-5607 + +* Sat Nov 23 2013 Elio Maldonado - 4.10.2-1 +- Update to NSPR_4_10_2_RTM +- Avoid unsigned integer wrapping in PL_ArenaAllocate +- Resolves: rhbz#1031465 - CVE-2013-5607 + +* Fri Nov 22 2013 Elio Maldonado - 4.10-4 +- Avoid unsigned integer wrapping in PL_ArenaAllocate +- Resolves: rhbz#1031465 + +* Fri Aug 02 2013 Elio Maldonado - 4.10-3 +- Update information on the provenance of the upstream sources + +* Tue Jun 18 2013 Elio Maldonado - 4.10-2 +- Install man page for the nspr-config script + +* Wed May 29 2013 Elio Maldonado - 4.10-1 +- Update to NSPR_4_10_RTM + +* Mon May 06 2013 Elio Maldonado - 4.9.6-1 +- Update to NSPR_4_9_6_RTM + +* Mon Feb 18 2013 Elio Maldonado - 4.9.5-2 +- Resolves: rhbz#912483 - Add spec file support for AArch64 + +* Fri Feb 01 2013 Elio Maldonado - 4.9.5-1 +- Update to NSPR_4_9_5_RTM + +* Mon Dec 17 2012 Elio Maldonado - 4.9.4-1 +- Update to NSPR_4_9_4_RTM + +* Mon Oct 01 2012 Elio Maldonado - 4.9.3-0.1.beta1.1 +- Update to NSPR_4_9_5_BETA1 + +* Sun Aug 26 2012 Elio Maldonado - 4.9.2-1 +- Update to NSPR_4_9_2_RTM + +* Fri Jul 20 2012 Fedora Release Engineering - 4.9.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jul 11 2012 Elio Maldonado - 4.9.1-5 +- Updated License: to MPLv2.0 per upstream + +* Fri Jun 22 2012 Elio Maldonado - 4.9.1-4 +- Update the nspr-config-pc.patch to prevent multilib regressions + +* Thu Jun 21 2012 Elio Maldonado - 4.9.1-3 +- Bump the release tag + +* Thu Jun 21 2012 Elio Maldonado - 4.9.1-3 +- Resolves: rhbz#833529 - restore the good changes to nspr.pc + +* Thu Jun 21 2012 Elio Maldonado - 4.9.1-2 +- Resolves: rhbz#833529 - revert unwanted change to nspr.pc +- Removed nspr-config.pc.in.patch + +* Mon Jun 18 2012 Elio Maldonado - 4.9.1-1 +- Update to NSPR_4_9_1_RTM + +* Wed Mar 21 2012 Elio Maldonado - 4.9-2 +- Resolves: Bug 805672 - Library needs partial RELRO support added + +* Wed Feb 29 2012 Elio Maldonado - 4.9-1 +- Update to NSPR_4_9_RTM + +* Wed Jan 25 2012 Harald Hoyer 4.9-0.2.beta3.1 +- install everything in /usr + https://fedoraproject.org/wiki/Features/UsrMove + +* Wed Jan 25 2012 Harald Hoyer 4.9-0.2.beta3.1 +- + +* Fri Jan 13 2012 Fedora Release Engineering - 4.9-0.2.beta3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Oct 06 2011 Elio Maldonado - 4.9-0.1.beta3 +- Update to NSPR_4_9_BETA3 + +* Thu Sep 8 2011 Ville Skyttä - 4.8.9-2 +- Avoid %%post/un shell invocations and dependencies. + +* Tue Aug 09 2011 Elio Maldonado - 4.8.9-1 +- Update to NSPR_4_8_9_RTM + +* Mon Jul 18 2011 Elio Maldonado - 4.8.8-4 +- The tests must pass for the build to succeed + +* Mon Jul 18 2011 Elio Maldonado - 4.8.8-3 +- Run the nspr test suite in the %%check section + +* Wed Jul 06 2011 Elio Maldonado - 4.8.8-2 +- Conditionalize Thumb2 build support on right Arm arches + +* Fri May 06 2011 Elio Maldonado - 4.8.8-1 +- Update to NSPR_4_8_8_RTM + +* Mon Apr 25 2011 Elio Maldonado Batiz - 4.8.8-0.1.beta3 +- Update to NSPR_4_8_8_BETA3 + +* Tue Feb 08 2011 Fedora Release Engineering - 4.8.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jan 12 2011 Elio Maldonado - 4.8.7-1 +- Update to 4.8.7 + +* Mon Dec 27 2010 Elio Maldonado - 4.8.7-0.1beta2 +- Rebuilt according to fedora pre-release naming guidelines + +* Fri Dec 10 2010 Elio Maldonado - 4.8.6.99.2-1 +- Update to NSPR_4_8_7_BETA2 + +* Tue Dec 07 2010 Elio Maldonado - 4.8.6.99.1-1 +- Update to NSPR_4_8_7_BETA1 + +* Mon Aug 16 2010 Elio Maldonado - 4.8.6-1 +- Update to 4.8.6 + +* Fri Mar 12 2010 Till Maas - 4.8.4-2 +- Fix release value + +* Tue Feb 23 2010 Elio Maldonado - 4.8.4-1 +- Update to 4.8.4 + +* Sat Nov 14 2009 Elio Maldonado - 4.8.2-3 +- update to 4.8.2 + +* Sat Jul 25 2009 Fedora Release Engineering - 4.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Jun 30 2009 Christopher Aillon 4.8-1 +- update to 4.8 + +* Fri Jun 05 2009 Kai Engert - 4.7.4-2 +- update to 4.7.4 + +* Wed Mar 04 2009 Kai Engert - 4.7.3-5 +- add a workaround for bug 487844 + +* Wed Feb 25 2009 Fedora Release Engineering - 4.7.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Dec 3 2008 Ignacio Vazquez-Abrams - 4.7.3-3 +- Rebuild for pkgconfig + +* Wed Nov 19 2008 Kai Engert - 4.7.3-2 +- update to 4.7.3 +* Thu Oct 23 2008 Kai Engert - 4.7.2-2 +- update to 4.7.2 + +* Thu Oct 9 2008 Tom "spot" Callaway - 4.7.1-5 +- forgot to cvs add patch... whoops. :/ + +* Thu Oct 9 2008 Tom "spot" Callaway - 4.7.1-4 +- properly handle sparc64 in nspr code + +* Tue Sep 30 2008 Dennis Gilmore - 4.7.1-3 +- add sparc64 to the list of 64 bit arches + +* Mon Jun 02 2008 Kai Engert - 4.7.1-2 +- Update to 4.7.1 + +* Thu Mar 20 2008 Jesse Keating - 4.7.0.99.2-2 +- Drop the old obsoletes/provides that aren't needed anymore. + +* Mon Mar 17 2008 Kai Engert - 4.7.0.99.2-1 +- Update to NSPR_4_7_1_BETA2 +* Tue Feb 26 2008 Kai Engert - 4.7.0.99.1-2 +- Addressed cosmetic review comments from bug 226202 +* Fri Feb 22 2008 Kai Engert - 4.7.0.99.1-1 +- Update to NSPR 4.7.1 Beta 1 +- Use /usr/lib{64} as devel libdir, create symbolic links. +* Sat Feb 09 2008 Kai Engert - 4.7-1 +- Update to NSPR 4.7 + +* Thu Jan 24 2008 Kai Engert - 4.6.99.3-1 +* NSPR 4.7 beta snapshot 20080120 + +* Mon Jan 07 2008 Kai Engert - 4.6.99-2 +- move .so files to /lib + +* Wed Nov 07 2007 Kai Engert - 4.6.99-1 +- NSPR 4.7 alpha + +* Tue Aug 28 2007 Kai Engert - 4.6.7-3 +- Updated license tag + +* Fri Jul 06 2007 Kai Engert - 4.6.7-2 +- Update to 4.6.7 + +* Fri Jul 06 2007 Kai Engert - 4.6.6-2 +- Update thread-cleanup patch to latest upstream version +- Add upstream patch to support PR_STATIC_ASSERT + +* Wed Mar 07 2007 Kai Engert - 4.6.6-1 +- Update to 4.6.6 +- Adjust IPv6 patch to latest upstream version + +* Sat Feb 24 2007 Kai Engert - 4.6.5-2 +- Update to latest ipv6 upstream patch +- Add upstream patch to fix a thread cleanup issue +- Now requires pkgconfig + +* Mon Jan 22 2007 Wan-Teh Chang - 4.6.5-1 +- Update to 4.6.5 + +* Tue Jan 16 2007 Kai Engert - 4.6.4-2 +- Include upstream patch to fix ipv6 support (rhbz 222554) + +* Tue Nov 21 2006 Kai Engert - 4.6.4-1 +- Update to 4.6.4 + +* Thu Sep 14 2006 Kai Engert - 4.6.3-1 +- Update to 4.6.3 + +* Wed Jul 12 2006 Jesse Keating - 4.6.2-1.1 +- rebuild + +* Fri May 26 2006 Kai Engert - 4.6.2-1 +- Update to 4.6.2 +- Tweak nspr-config to be identical on all platforms. + +* Fri Feb 10 2006 Jesse Keating - 4.6.1-2.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 4.6.1-2.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Thu Jan 5 2006 Kai Engert 4.6.1-2 +- Do not use -ansi when compiling, because of a compilation + problem with latest glibc and anonymous unions. + See also bugzilla.mozilla.org # 322427. + +* Wed Jan 4 2006 Kai Engert +- Add an upstream patch to fix gcc visibility issues. + +* Tue Jan 3 2006 Christopher Aillon +- Stop shipping static libraries; NSS and dependencies no longer + require static libraries to build. + +* Thu Dec 15 2005 Christopher Aillon 4.6.1-1 +- Update to 4.6.1 + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Fri Jul 15 2005 Christopher Aillon 4.6-4 +- Use the NSPR version numbering scheme reported by NSPR, + which unfortunately is not exactly the same as the real + version (4.6 != 4.6.0 according to RPM and pkgconfig). + +* Fri Jul 15 2005 Christopher Aillon 4.6-3 +- Correct the CFLAGS reported by pkgconfig + +* Tue Jul 12 2005 Christopher Aillon 4.6-2 +- Temporarily include the static libraries allowing nss and + its dependencies to build. + +* Tue Jul 12 2005 Christopher Aillon 4.6-1 +- Update to NSPR 4.6 + +* Wed Apr 20 2005 Christopher Aillon 4.4.1-2 +- NSPR doesn't have make install, but it has make real_install. Use it. + +* Thu Apr 14 2005 Christopher Aillon 4.4.1-1 +- Let's make an RPM.