commit:     7560c5c9e7bb5bcee9f90ae84e89852de7a0cc3d
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 22 08:38:12 2019 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Tue Oct 22 08:40:22 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7560c5c9

dev-libs/nspr: Bump to version 4.23

Package-Manager: Portage-2.3.78, Repoman-2.3.17
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 dev-libs/nspr/Manifest                     |   1 +
 dev-libs/nspr/files/nspr-4.23-prtime.patch |  26 ++++++
 dev-libs/nspr/nspr-4.23.ebuild             | 122 +++++++++++++++++++++++++++++
 3 files changed, 149 insertions(+)

diff --git a/dev-libs/nspr/Manifest b/dev-libs/nspr/Manifest
index 7199373e004..cc9b498ae20 100644
--- a/dev-libs/nspr/Manifest
+++ b/dev-libs/nspr/Manifest
@@ -1,3 +1,4 @@
 DIST nspr-4.20.tar.gz 1140892 BLAKE2B 
2cb96b7a40c307f904dac038f016b5c0e527aaf673463cbcb59d8bb6c9d0239219402587d624f48804e33f43abd4427c87f267bf1a88a0dacffcc408ac15dc49
 SHA512 
22fdf7627f450b0594ebccaee170098e1a8cd0f429fd44816f1322756002ced3d69cf686c3f69f7cb30b8132d3605a9fce5457ab99d0002e6af11a3408a5c949
 DIST nspr-4.21.tar.gz 1140741 BLAKE2B 
9d6d079ac50c97ed7fff957e23506a24ab0d723cadc2ddb0c4283a2abdf387f0d55116ff82bf748500026b5d493909aa5495bd220f3b6e83ad4990f29eb446a0
 SHA512 
4f152c6ca32d9dd4cf3d92b4b54f249ac1fa39047811f7c0c7a67bdc73173cf7de0dce36dc278ad781189ea2fdc71fa70e044597676a8b1f5e6d664907e5ab7c
 DIST nspr-4.22.tar.gz 1078701 BLAKE2B 
8b37031ffebf79320c91ce674d7c3a0cfbef25bfb006cb9aaff44f090110b35ea2768f83dae4a793723f8e2f3aecabc1a4b8042cd1b0ab0aade30781e43f9d62
 SHA512 
d34271f0692905162f71b02cf6f62a8ebf779159335e4ed286ee8d51faaad633a61c9392bada86d976bca2b5aa47c8760085de30dbd13c9cfa423582c31db37b
+DIST nspr-4.23.tar.gz 1078660 BLAKE2B 
4599684e1bb80238e409472f41d0e9ba9bc731b48fb17578c99426b277bbfa9f3c8348570b58f679ad7fa94421a1c6b5972f9218e9d56fb5d1d49d45cf04363c
 SHA512 
19f964f11a6ae8acf83a6daa0c9ee141c6f2793fd79113f3d283e9590bc2c90bfa4e46814f902f376f15c0668fa9c283cc44f975d88461d8854b87b67c0a21c1

diff --git a/dev-libs/nspr/files/nspr-4.23-prtime.patch 
b/dev-libs/nspr/files/nspr-4.23-prtime.patch
new file mode 100644
index 00000000000..087e427866f
--- /dev/null
+++ b/dev-libs/nspr/files/nspr-4.23-prtime.patch
@@ -0,0 +1,26 @@
+--- a/pr/src/misc/prtime.c
++++ b/pr/src/misc/prtime.c
+@@ -1621,7 +1621,7 @@
+             case TT_EET: zone_offset =  2 * 60; break;
+             case TT_JST: zone_offset =  9 * 60; break;
+             default:
+-                PR_ASSERT (0);
++                return PR_FAILURE;
+                 break;
+         }
+     }
+@@ -1677,11 +1677,12 @@
+         struct tm localTime;
+         time_t secs;
+ 
+-        PR_ASSERT(result->tm_month > -1 &&
++        if (!(result->tm_month > -1 &&
+                   result->tm_mday > 0 &&
+                   result->tm_hour > -1 &&
+                   result->tm_min > -1 &&
+-                  result->tm_sec > -1);
++                  result->tm_sec > -1))
++                 return PR_FAILURE;
+ 
+         /*
+          * To obtain time_t from a tm structure representing the local

diff --git a/dev-libs/nspr/nspr-4.23.ebuild b/dev-libs/nspr/nspr-4.23.ebuild
new file mode 100644
index 00000000000..1f11ed37ec1
--- /dev/null
+++ b/dev-libs/nspr/nspr-4.23.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools toolchain-funcs multilib-minimal
+
+MIN_PV="$(ver_cut 2)"
+
+DESCRIPTION="Netscape Portable Runtime"
+HOMEPAGE="http://www.mozilla.org/projects/nspr/";
+SRC_URI="https://archive.mozilla.org/pub/nspr/releases/v${PV}/src/${P}.tar.gz";
+
+LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv 
~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~x64-macos ~x86-macos 
~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="debug elibc_musl"
+
+MULTILIB_CHOST_TOOLS=(
+       /usr/bin/nspr-config
+)
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-4.23-prtime.patch
+       "${FILESDIR}"/${PN}-4.7.1-solaris.patch
+       "${FILESDIR}"/${PN}-4.10.6-solaris.patch
+       "${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch
+       "${FILESDIR}"/${PN}-4.8.9-link-flags.patch
+       # We do not need to pass -L$libdir via nspr-config --libs
+       "${FILESDIR}"/${PN}-4.9.5_nspr_config.patch
+)
+
+src_prepare() {
+       cd "${S}"/nspr || die
+
+       default
+
+       use elibc_musl && eapply 
"${FILESDIR}"/${PN}-4.21-ipv6-musl-support.patch
+
+       # rename configure.in to configure.ac for new autotools compatibility
+       if [[ -e "${S}"/nspr/configure.in ]] ; then
+               einfo "Renaming configure.in to configure.ac"
+               mv "${S}"/nspr/configure.{in,ac} || die
+       else
+               elog "configure.in rename logic can be removed from ebuild."
+       fi
+
+       # We must run eautoconf to regenerate configure
+       eautoconf
+
+       # make sure it won't find Perl out of Prefix
+       sed -i -e "s/perl5//g" "${S}"/nspr/configure || die
+
+       # Respect LDFLAGS
+       sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \
+               "${S}"/nspr/config/rules.mk || die
+}
+
+multilib_src_configure() {
+       # We use the standard BUILD_xxx but nspr uses HOST_xxx
+       tc-export_build_env BUILD_CC
+       export HOST_CC=${BUILD_CC} HOST_CFLAGS=${BUILD_CFLAGS} 
HOST_LDFLAGS=${BUILD_LDFLAGS}
+       tc-export AR CC CXX RANLIB
+       [[ ${CBUILD} != ${CHOST} ]] \
+               && export CROSS_COMPILE=1 \
+               || unset CROSS_COMPILE
+
+       local myconf=(
+               --libdir="${EPREFIX}/usr/$(get_libdir)"
+               $(use_enable debug)
+               $(use_enable !debug optimize)
+       )
+
+       # The configure has some fancy --enable-{{n,x}32,64bit} switches
+       # that trigger some code conditional to platform & arch. This really
+       # matters for the few common arches (x86, ppc) but we pass a little
+       # more of them to be future-proof.
+
+       # use ABI first, this will work for most cases
+       case "${ABI}" in
+               alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86) ;;
+               n32) myconf+=( --enable-n32 );;
+               x32) myconf+=( --enable-x32 );;
+               s390x|*64) myconf+=( --enable-64bit );;
+               default) # no abi actually set, fall back to old check
+                       einfo "Running a short build test to determine 
64bit'ness"
+                       echo > "${T}"/test.c || die
+                       ${CC} ${CFLAGS} ${CPPFLAGS} -c "${T}"/test.c -o 
"${T}"/test.o || die
+                       case $(file "${T}"/test.o) in
+                               *32-bit*x86-64*) myconf+=( --enable-x32 );;
+                               *64-bit*|*ppc64*|*x86_64*) myconf+=( 
--enable-64bit );;
+                               *32-bit*|*ppc*|*i386*) ;;
+                               *) die "Failed to detect whether your arch is 
64bits or 32bits, disable distcc if you're using it, please";;
+                       esac ;;
+               *) ;;
+       esac
+
+       # Ancient autoconf needs help finding the right tools.
+       LC_ALL="C" ECONF_SOURCE="${S}/nspr" \
+       ac_cv_path_AR="${AR}" \
+       econf "${myconf[@]}"
+}
+
+multilib_src_install() {
+       # Their build system is royally confusing, as usual
+       MINOR_VERSION=${MIN_PV} # Used for .so version
+       emake DESTDIR="${D}" install
+
+       einfo "removing static libraries as upstream has requested!"
+       rm "${ED}"/usr/$(get_libdir)/*.a || die "failed to remove static 
libraries."
+
+       # install nspr-config
+       dobin config/nspr-config
+
+       # Remove stupid files in /usr/bin
+       rm "${ED}"/usr/bin/prerr.properties || die
+
+       # This is used only to generate prerr.c and prerr.h at build time.
+       # No other projects use it, and we don't want to depend on perl.
+       # Talked to upstream and they agreed w/punting.
+       rm "${ED}"/usr/bin/compile-et.pl || die
+}

Reply via email to