forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Package-Manager: Portage-3.0.2, Repoman-2.3.23 Signed-off-by: Thomas Deutschmann <[email protected]>
- Loading branch information
Showing
2 changed files
with
123 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
DIST nspr-4.25.tar.gz 1079633 BLAKE2B 377e5ec0e60cca13f1ee988adb10870bbb6cb9e4eb61e4434152418d4f8d446741a192d7019298ec2669b8e190cacb6a1ca9c4b2838e9b14dd3590ed40facdd2 SHA512 b9aa576e0da37e8729088fe559d94030cf18f277c1f7a30104d3088a804913343ed884645c0adb62144da475e20934b359f897bf3ae9a6ebb5f9daf283d5a562 | ||
DIST nspr-4.26.tar.gz 1079778 BLAKE2B db83afa5e3ab2e0ef92aa236db6d9f25e963b77df7c71400e691dc3e882ec6d63cbf13996eb1ae1a03a294def419e1669e38fe42990c66efedce03f121087e6c SHA512 d6632cde3570ee386ee1459257eba99f91dd62fa905fd82679222c83d63c185b76d8dca0422d4349de2dfce603472ae52bc0dcced0f142acb733374c74155d3c | ||
DIST nspr-4.27.tar.gz 1080036 BLAKE2B 2d7a24259ff6b04e7a71e705d54612f27957824969b94eab251d6a53d91c7630d59cd107a6b9f5c6c0a308bac1db1ebc286602d672d4828d2322288456a5ce78 SHA512 2be539e6fd5ed8987874147a2bacc3f0b7177cdfddbb1a4f9e5f93575de871584b05fb56ca4e1ba5f7e53074cd4069310658f1559de0f38def208b087b6e6dca |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
# Copyright 1999-2020 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 ~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 | ||
} |