Skip to content

Commit

Permalink
dev-libs/nspr: re-committing version bump to 4.12
Browse files Browse the repository at this point in the history
Upstream release notes:
 * added a PR_GetEnvSecure function, which attempts to detect if the program
   is being executed with elevated privileges, and returns NULL if detected.
   It is recommended to use this function in general purpose library code.

 * fixed a memory allocation bug related to the PR_*printf functions

 * exported API PR_DuplicateEnvironment, which had already been added in
   NSPR 4.10.9

 * added support for FreeBSD aarch64

 * several minor correctness and compatibility fixes

Package-Manager: portage-2.2.26
  • Loading branch information
axs-gentoo committed Feb 29, 2016
1 parent 1d285a2 commit 95c84d0
Show file tree
Hide file tree
Showing 2 changed files with 121 additions and 0 deletions.
1 change: 1 addition & 0 deletions dev-libs/nspr/Manifest
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
DIST nspr-4.10.10.tar.gz 1134164 SHA256 343614971c30520d0fa55f4af0a72578e2d8674bb71caf7187490c3379523107 SHA512 60e035c4bd037bbf4bfacc97e2b1097ea78a179969fccead6a964069d826e917f07aaa35a26f123b7297521910728c11e27556fc9bbc09e385c1e8aef9dbf376 WHIRLPOOL db63a6d1e0c9d57dfa059aecf8eeff8e36d0385f598290665d525a85eb6fe173cd899bba017c82b26815d894d8ea6e728dbb7a77483036551c06c78c900d7ee3
DIST nspr-4.10.8.tar.gz 1131130 SHA256 507ea57c525c0c524dae4857a642b4ef5c9d795518754c7f83422d22fe544a15 SHA512 f14e3bd46cd1dee9d7163adbf3b09a450ea8c6c65499c5b6696eba7e85b6b12d3f90561a1dfe0dc0dc5fe1b14758b4191e546d9f0e29a66f33c69dd6ed6f50d9 WHIRLPOOL 67be897d54e2446d563cfe505047b23880025bd3f1ea5492964f8d286f56776e41a8e63bd9d197d3115efae0d63bd0c7005fb9fc56abdfce0702c27e6a9e872c
DIST nspr-4.11.tar.gz 1134106 SHA256 cb320a9eee7028275ac0fce7adc39dee36f14f02fd8432fce1b7e1aa5e3685c2 SHA512 26c47ba618f5a7748cacc5152348b6fd37bdcc82806bbff485ed4d485aecad13d202270a837c735670030e96380ec3177f3bc8a47e0dca359cfb097a84242c02 WHIRLPOOL f8707154d1981a09140d31d359d5a40867eaad447620a4731a11c770cae13b8e9a64ef45c82123083e37e2effedfb0c367cc57969a3baf65628ff1e9ccf41517
DIST nspr-4.12.tar.gz 1135458 SHA256 e0b10a1e569153668ff8bdea6c7e491b389fab69c2f18285a1ebf7c2ea4269de SHA512 138072be98dea6e97ea38f3e562c8ee383626c2136ec1adb854a81315468cd484c4b994c3ccaf6a39327b3fe121f77d698bf85c2764ec4b6231828b8a9ec5460 WHIRLPOOL d85d74e6287ed9578bc565c5e699f7201fbf38cb55e6dfa487f1c8b4684c161b6c6a5c8cb06627575d7a417bf35b15c64d231878dab32b5bbcc8223b7356c32d
120 changes: 120 additions & 0 deletions dev-libs/nspr/nspr-4.12.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=5
WANT_AUTOCONF="2.5"

inherit autotools eutils multilib toolchain-funcs versionator multilib-minimal

MIN_PV="$(get_version_component_range 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 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="debug"

RDEPEND="
abi_x86_32? (
!<=app-emulation/emul-linux-x86-baselibs-20140508-r12
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
)"

MULTILIB_CHOST_TOOLS=(
/usr/bin/nspr-config
)

src_prepare() {
cd "${S}"/nspr || die
epatch "${FILESDIR}"/${PN}-4.7.0-prtime.patch
epatch "${FILESDIR}"/${PN}-4.7.1-solaris.patch
epatch "${FILESDIR}"/${PN}-4.10.6-solaris.patch
epatch "${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch
epatch "${FILESDIR}"/${PN}-4.8.9-link-flags.patch
# We do not need to pass -L$libdir via nspr-config --libs
epatch "${FILESDIR}"/${PN}-4.9.5_nspr_config.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
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=()

# 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 \
--libdir="${EPREFIX}/usr/$(get_libdir)" \
$(use_enable debug) \
$(use_enable !debug optimize) \
"${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 -f "${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
}

0 comments on commit 95c84d0

Please sign in to comment.