Adding isort

This commit is contained in:
Gerardo J. Puerta
2020-09-15 10:56:07 +02:00
parent 20d0f8b41c
commit 73dd5b7bae
66 changed files with 6453 additions and 1 deletions

17
dev-libs/nspr/Manifest Normal file
View File

@ -0,0 +1,17 @@
AUX nspr-4.10.6-solaris.patch 973 BLAKE2B 8370bedb05c718d7b73d57b5ac5c720ca62499d6d7b7a039da608a9c514996c2d987ba0135b7dcac509d1b9363908f0c0cff6fe47e1f7ca94b7efbd8c19aeeca SHA512 d4e4c44d02be7aafe09e633f2ee747c323036f7438cb87864d91bcd9bb8ac072065353aa4e8a785e38724d33bfdc8adb0e460dbf44ff7fbd8c8dd32b569074f1
AUX nspr-4.21-ipv6-musl-support.patch 1645 BLAKE2B 0b383804d5e66037041b91dcb7ddd52dd4533384ca5671ed1d36a71740b130863dd2b531867edab804fbb8cfab112282e17d607d7e298eb249ead620f99a55be SHA512 f241e607491d1192272221023d5f3e84b3e88957e7b66ce4d9ba1bcf2ab6639facc08eeb838a0e6753456f41dde4ced4fe99f923e0889030d844c23c62fad4e2
AUX nspr-4.23-prtime.patch 814 BLAKE2B 2106a841b34445310cef07e15cb77ae4c9465cca9a7dc68acd68408a66383c90bee1fafeaaa144e1b8344d1edae27407714f193a452ffc3d425212e3b2c40fc5 SHA512 9f51a03852f0b3d4352c14ee849ec8af9b3dbef68eaa2755cb5a630018f91e3a2a4fce5742078b8be51e76995218a0cfc7ef8b0c013e8c47f746a61185795eae
AUX nspr-4.7.0-prtime.patch 859 BLAKE2B d7869ee8e46f34e53546c28e7f9032497744d31b82d0fb47edb8c2ff5787392423698353e1374ebb5f9ed11470dff5ca62995e8f44f310756799bc9eae55ada5 SHA512 d8421bc11de5ec5e116c7eba3f31fcdde27796a64948d16aa1fb1822a29a92d8810056719ca60bcb96b1734b0e84c95250075c18acbcb631786249af7d679492
AUX nspr-4.7.1-solaris.patch 411 BLAKE2B 0c1f0e621aec9e150bd8c279f46c18256c451b2555b9f264f0da7432fb0e7d5d69e1bbbb7adc9a448d88ca269be41943f2ee60e1cc8e115542e300c1d7c61185 SHA512 11bd4ab3f98cbad2586f999370291d387fe7a817bab9feda9f5493f284410a73318e90072c0052a8216d9ae1cdc5b2a862a99315e09b72560d9bad6ebc16eb79
AUX nspr-4.8.4-darwin-install_name.patch 1046 BLAKE2B 1182149b03bd2c03fc4051bf98c61cdd4245da21a51d5f9b10149e12f5326992d587f0fe04bab79c26acee4aa2e4dded5ddf8c697b5cd4f2e34ea730c6ca7fe0 SHA512 dd00bc2108d6c7a64945afeaf97f31189250c90c3d63c86fa2b2b091ef812cc7c5f8c0f17211a02b497f50efc1c3668c840e21a45f514ff1103e22c659e820f2
AUX nspr-4.8.9-link-flags.patch 931 BLAKE2B 6aa6aa1cf3b856a95b7baa20f58e9ed83b8b29ccce37bab39e10e0e76c433ae5c79839b5f7f9bdaf8b2475c8e3692ff4a57c246dfa4e1fed6866ab284826ee0d SHA512 0bb61dc09d287f1324749c983404e1f03fdf7014fbbd32cc5abe452fc2f32b90b759d8f18d964a61da044b5a7221f5ba274d94c93c07c8a7359e3c937e44b975
AUX nspr-4.9.5_nspr_config.patch 251 BLAKE2B 65ae8b981e758e2955b7a3358f24b7b17dc1ef59f0e78f9fd9ddee740a4da3825bafea34f3900200b3f6edefed7d0797c194cb0339d4e36551615d599156108d SHA512 3f118b7142a19dcc7e26b348cec6029c78d585a57cc2bfc2ab7ca13d2ef953e576dab0ac044316e3165d0201bf27253afa732109f914da6f7a39f19facff8310
DIST nspr-4.22.tar.gz 1078701 BLAKE2B 8b37031ffebf79320c91ce674d7c3a0cfbef25bfb006cb9aaff44f090110b35ea2768f83dae4a793723f8e2f3aecabc1a4b8042cd1b0ab0aade30781e43f9d62 SHA512 d34271f0692905162f71b02cf6f62a8ebf779159335e4ed286ee8d51faaad633a61c9392bada86d976bca2b5aa47c8760085de30dbd13c9cfa423582c31db37b
DIST nspr-4.24.tar.gz 1078825 BLAKE2B 3a773768c31334fa4f3f406d838d430dccfbcf5f7bd34dca422b199265f17fc08ef3d5d1e6df5468efeeeace8b5f8a38ece518e6bdbcdf811c2642d43be80c6c SHA512 b020031ed7a8997099c11e0772779c7b10d15b4f6b14e2b1832732943e8b8224afa952ce04a1914c1553af9d3973a6d9cacf08058ee6fff35102e3b2ec0943c1
DIST nspr-4.25.tar.gz 1079633 BLAKE2B 377e5ec0e60cca13f1ee988adb10870bbb6cb9e4eb61e4434152418d4f8d446741a192d7019298ec2669b8e190cacb6a1ca9c4b2838e9b14dd3590ed40facdd2 SHA512 b9aa576e0da37e8729088fe559d94030cf18f277c1f7a30104d3088a804913343ed884645c0adb62144da475e20934b359f897bf3ae9a6ebb5f9daf283d5a562
DIST nspr-4.26.tar.gz 1079778 BLAKE2B db83afa5e3ab2e0ef92aa236db6d9f25e963b77df7c71400e691dc3e882ec6d63cbf13996eb1ae1a03a294def419e1669e38fe42990c66efedce03f121087e6c SHA512 d6632cde3570ee386ee1459257eba99f91dd62fa905fd82679222c83d63c185b76d8dca0422d4349de2dfce603472ae52bc0dcced0f142acb733374c74155d3c
EBUILD nspr-4.22.ebuild 3892 BLAKE2B 5633707738207a3a7b2dfcbb8798f2ad134f95f8a39e6f8619685e33b1acd5bcc3fa4784cceaf8225f7d5973caab467d79a4378c7399c8ec64bb08e6932d729c SHA512 0021005fde55f4c02782ad4f0ee5528e7df231e84e040503a1055fa42d4c09fb1db396108ae283a0096f4ddd34b24c16b4419c44fd9ed19d7a4878425a2337f4
EBUILD nspr-4.24.ebuild 3758 BLAKE2B 456721c50f3e99ebf0b13408df92a3e41bfa270b1f521025f5d2929c3a0a33f2a4ad81d8dc59cb907ce28611c91a64e2a25bfabdc9e5d81c00f7fdc0622c4c9d SHA512 4f64f4628fe87661a0a01cc0bc189fd3b5f18796f2fb000511d038757751ee59044d8d04bd5bdedbffdc222d1bdb60548e84fd408c73aa45e7398a2c88fc6f18
EBUILD nspr-4.25.ebuild 3758 BLAKE2B 456721c50f3e99ebf0b13408df92a3e41bfa270b1f521025f5d2929c3a0a33f2a4ad81d8dc59cb907ce28611c91a64e2a25bfabdc9e5d81c00f7fdc0622c4c9d SHA512 4f64f4628fe87661a0a01cc0bc189fd3b5f18796f2fb000511d038757751ee59044d8d04bd5bdedbffdc222d1bdb60548e84fd408c73aa45e7398a2c88fc6f18
EBUILD nspr-4.26.ebuild 3930 BLAKE2B 93e41000e906be98a34555fa1970189139db9d4b0c23dafac29ec4e5db93965981d614e15886333665db3d255ef3545a48efe7819755e973497d22367681d292 SHA512 b6edf7eb6685ec60f549c4ca542146fc02673c59369d6c691dbfe98106e319b7c0bc2817629296a447bfce720467f64c290106356b5eb26348227169d0841919
MISC metadata.xml 250 BLAKE2B 9e6643b2a0b90fc083246090047db38d3b9a3b71db8542051307b7e87394135d3337e1ea54b83a0c7474661a0fd07d950385b44cbed6ee95f6e6ad718bd0b062 SHA512 ba5e7c1f6ee117471a3804bc54211e7f89c75e965a865f45f85015a0a28ec7d511ef9bbc196eef8245dc9259f54b04eb3563d83811a293bb946cf0977563892b

View File

@ -0,0 +1,32 @@
* drop Solaris linker stuff
--- a/configure.in
+++ b/configure.in
@@ -1988,26 +1988,14 @@
CPU_ARCH=`uname -p`
MDCPUCFG_H=_solaris.cfg
PR_MD_CSRCS=solaris.c
- LD=/usr/ccs/bin/ld
MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
RESOLVE_LINK_SYMBOLS=1
- case "${OS_RELEASE}" in
- 5.8|5.9)
- ;;
- *)
- # It is safe to use the -Bdirect linker flag on Solaris 10 or later.
- USE_B_DIRECT=1
- ;;
- esac
if test -n "$GNU_CC"; then
DSO_CFLAGS=-fPIC
if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then
GCC_USE_GNU_LD=1
fi
- DSO_LDOPTS='-shared -Wl,-h,$(notdir $@),-z,combreloc,-z,defs,-z,ignore'
- if test -n "$USE_B_DIRECT"; then
- DSO_LDOPTS="$DSO_LDOPTS,-Bdirect"
- fi
+ DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
else
DSO_CFLAGS=-KPIC
DSO_LDOPTS='-G -h $(notdir $@) -z combreloc -z defs -z ignore'

View File

@ -0,0 +1,53 @@
From 8c57451f44d7ceb37bfb4ae6e457fc70b1f58d0a Mon Sep 17 00:00:00 2001
From: Moritz Kick <gentoo@blackphoenix.de>
Date: Wed, 20 Mar 2019 13:36:06 -0500
Subject: [PATCH] Added IPv6 compatibility for musl libc
Signed-off-by: Moritz Kick <gentoo@blackphoenix.de>
Signed-off-by: Jory Pratt <anarchy@gentoo.org>
---
pr/include/md/_linux.h | 13 +------------
1 file changed, 1 insertion(+), 12 deletions(-)
diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h
index 2370ab8..612184c 100644
--- a/pr/include/md/_linux.h
+++ b/pr/include/md/_linux.h
@@ -289,33 +289,22 @@ static inline PRInt32 _MD_ATOMIC_SET(PRInt32 *ptr, PRInt32 nv)
#endif /* __arm__ */
#define USE_SETJMP
-#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(ANDROID)
#define _PR_POLL_AVAILABLE
-#endif
#undef _PR_USE_POLL
#define _PR_STAT_HAS_ONLY_ST_ATIME
#if defined(__alpha) || defined(__ia64__)
#define _PR_HAVE_LARGE_OFF_T
-#elif (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) \
- || defined(ANDROID)
-#define _PR_HAVE_OFF64_T
#else
-#define _PR_NO_LARGE_FILES
+#define _PR_HAVE_OFF64_T
#endif
-#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) \
- || defined(ANDROID)
#define _PR_INET6
#define _PR_HAVE_INET_NTOP
#define _PR_HAVE_GETHOSTBYNAME2
#define _PR_HAVE_GETADDRINFO
#define _PR_INET6_PROBE
-#endif
#ifndef ANDROID
#define _PR_HAVE_SYSV_SEMAPHORES
#define PR_HAVE_SYSV_NAMED_SHARED_MEMORY
-#endif
-/* Android has gethostbyname_r but not gethostbyaddr_r or gethostbyname2_r. */
-#if (__GLIBC__ >= 2) && defined(_PR_PTHREADS)
#define _PR_HAVE_GETHOST_R
#define _PR_HAVE_GETHOST_R_INT
#endif
--
2.21.0

View File

@ -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

View File

@ -0,0 +1,26 @@
--- a/pr/src/misc/prtime.c
+++ b/pr/src/misc/prtime.c
@@ -1536,7 +1536,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;
}
}
@@ -1578,11 +1578,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

View File

@ -0,0 +1,14 @@
Same magic as haubi did for glib compilation, which works again here
resolving a linker problem on Solaris with GNU ld. Bug #222625
--- a/pr/src/Makefile.in
+++ b/pr/src/Makefile.in
@@ -95,7 +95,7 @@
endif
ifdef USE_PTHREADS
-OS_LIBS = -lpthread ${LIBRT} -lsocket -lnsl -ldl -lc
+OS_LIBS = -pthread ${LIBRT} -lsocket -lnsl -ldl -lc
else
ifdef LOCAL_THREADS_ONLY
OS_LIBS = -lsocket -lnsl -ldl -lc

View File

@ -0,0 +1,25 @@
Don't use @executable_path, it messed up linking against nspr from e.g.
nss.
--- a/configure.in
+++ b/configure.in
@@ -1007,7 +1007,7 @@
;;
esac
DSO_CFLAGS=-fPIC
- DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name @executable_path/$@ -headerpad_max_install_names'
+ DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name $(libdir)/$@ -headerpad_max_install_names'
_OPTIMIZE_FLAGS=-O2
MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
STRIP="$STRIP -x -S"
--- a/configure
+++ b/configure
@@ -1007,7 +1007,7 @@
;;
esac
DSO_CFLAGS=-fPIC
- DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name @executable_path/$@ -headerpad_max_install_names'
+ DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name $(libdir)/$@ -headerpad_max_install_names'
_OPTIMIZE_FLAGS=-O2
MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
STRIP="$STRIP -x -S"

View File

@ -0,0 +1,28 @@
Use CFLAGS when linking. Some flags can add functionality to generated
code that requires extra libs to be linked in (eg. libgomp when using
autoparallelization). Other flags are required when building and linking
(eg. -flto).
https://bugs.gentoo.org/365975
--- a/config/autoconf.mk.in
+++ b/config/autoconf.mk.in
@@ -81,6 +81,7 @@ OS_DLLFLAGS = @OS_DLLFLAGS@
DLLFLAGS = @DLLFLAGS@
EXEFLAGS = @EXEFLAGS@
OPTIMIZER = @OPTIMIZER@
+LD_CFLAGS = @CFLAGS@
PROFILE_GEN_CFLAGS = @PROFILE_GEN_CFLAGS@
PROFILE_GEN_LDFLAGS = @PROFILE_GEN_LDFLAGS@
--- a/config/config.mk
+++ b/config/config.mk
@@ -72,7 +72,7 @@ NOMD_CFLAGS = $(CC_ONLY_FLAGS) $(OPTIMIZER) $(NOMD_OS_CFLAGS)\
NOMD_CCFLAGS = $(CCC_ONLY_FLAGS) $(OPTIMIZER) $(NOMD_OS_CFLAGS)\
$(XP_DEFINE) $(DEFINES) $(INCLUDES) $(XCFLAGS)
-LDFLAGS = $(OS_LDFLAGS)
+LDFLAGS = $(LD_CFLAGS) $(OS_LDFLAGS)
# Enable profile-guided optimization
ifdef MOZ_PROFILE_GENERATE

View File

@ -0,0 +1,11 @@
--- a/config/nspr-config.in
+++ b/config/nspr-config.in
@@ -126,7 +126,7 @@
fi
if test "$echo_libs" = "yes"; then
- libdirs=-L$libdir
+ libdirs=""
if test -n "$lib_plds"; then
libdirs="$libdirs -lplds${major_version}"
fi

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>mozilla@gentoo.org</email>
<name>Gentoo Mozilla Team</name>
</maintainer>
</pkgmetadata>

View File

@ -0,0 +1,120 @@
# 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-fbsd ~x86-fbsd ~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.7.0-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
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
}

View File

@ -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="*"
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
}

View File

@ -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="*"
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
}

View File

@ -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
}

7
dev-libs/nss/Manifest Normal file
View File

@ -0,0 +1,7 @@
AUX nss-3.21-gentoo-fixup-warnings.patch 178 BLAKE2B b51f80310db3db416d8aeaf9117ef801389b5b2df47c04aff51bf0759dd5bff41b09d1e9011f99b345d5769a3aab19acb943ee97f8437465518115f6902a0da1 SHA512 7667a020311ca11e8f1836bc146e4a3c94ff2a489882dbe87debcccfeaafeb50e6607574c64254a826b4b6f0bb436b310a3386fff4a58324f0e5e58debaa9d51
AUX nss-3.23-hppa-byte_order.patch 460 BLAKE2B 97358cc8fbea0b0d3beee0697833e48ef01039ceb08fd00792a7f7ef68409eb076022c03764ab079fdaa971a0358130002fa11c0c182ebeb33dcdf660be26408 SHA512 ad0097bb6cf409d61eb28202d7460c87e983d6db977aba38ff9ef2749b3f7bb8fdadce4174f5bf806350ae33733097a1f444792d31cc43574b28341893642e5a
AUX nss-3.53-fix-building-on-ppc.patch 1206 BLAKE2B e6189802769197b290fd332ee2b7d074c0bacf47313998117734dafd1eb6a536db19bc8a329944d9fad51a6f9f90f81d98181272e0068bf852fea7ca928d2713 SHA512 859162070aa3c5e6e8be259f5e6648d37a5194a02958310f8caf56ff772dcaa4ebb26e4d754c99608fc7a45b641c5088cccd9e2c7d9c92c5ccc85c6b47320720
AUX nss-3.53-gentoo-fixups.patch 6886 BLAKE2B 1c605d8db02ebe0492c41955207368197a79990e43e219a71962cb28ac0cecd9e0acc2b76e16f5b116fdb8bf8790d96046cb4f376df9b8634ac48e54924589f8 SHA512 51031f92519f57d4b57a547cf549f2d5da1c5a7212d4b304fb0d71d6a85a5aefd64724ec9075c14c9b49c1e99c3ffe91cbec501c3504985aa9b16eacf2aa15ed
DIST nss-3.55.tar.gz 81759883 BLAKE2B 5b663d2b1861eb74cf070f2711b4db1afbfbc40b08e1f117e6b4a62e9f997de06889de3afc654cf6547c371ab2a1183904a1a014d1dc4b3e94f734107c81e1cf SHA512 acae7b803a3219cd4b78216cb8a6352805741e42eca6a42a5e6289ebbabc6189c7c6bc138cbd8a93d8631d06175c4d34e72957d49fe726adada6aaa2566e399e
DIST nss-cacert-class1-class3.patch 22950 BLAKE2B 9d5e60df5f161a3c27c41e5a9419440a54f888eda454e3cde5ebe626d4075b65cf9938b5144d0fb022377f4bd415bff5e5c67d104409860aa9391b3eb8872c68 SHA512 a5aa740bf110a3f0262e3f1ef2fc739ac2b44f042e220039d48aee8e97cd764d5c10718220364f4098aba955882bd02cadb5481512388971a8290312f88a7df0
EBUILD nss-3.55.ebuild 8992 BLAKE2B 45d0ef7e3ecac0a19c75b5193cf3f21aad28fce9ee03d30785cd133c0357e3b71e62800154ce22df775e168a0eb5f99601db55f90bc3271d2ea5a8faee2a580f SHA512 8bbcd696bfd436eb76d4eee53db228c2d8c1351217ae9e171fd1e9a38e7c4903ff303c6931be733f3e2153e474f65668567bf720d6840f7325145b179d99b14f

View File

@ -0,0 +1,10 @@
--- nss/coreconf/Linux.mk
+++ nss/coreconf/Linux.mk
@@ -130,6 +130,7 @@
OPTIMIZER += -gdwarf-2
endif
endif
+OPTIMIZER += -fno-strict-aliasing
endif
ifndef COMPILER_TAG

View File

@ -0,0 +1,16 @@
--- nss/lib/dbm/include/mcom_db.h
+++ nss/lib/dbm/include/mcom_db.h
@@ -110,11 +110,13 @@
#endif /* !BYTE_ORDER */
#endif /* __sun */
+#ifndef BYTE_ORDER
#if defined(__hpux) || defined(__hppa)
#define BYTE_ORDER BIG_ENDIAN
#define BIG_ENDIAN 4321
#define LITTLE_ENDIAN 1234 /* LSB first: i386, vax, all NT risc */
#endif
+#endif /* !BYTE_ORDER */
#if defined(AIXV3) || defined(AIX)
/* BYTE_ORDER, LITTLE_ENDIAN, BIG_ENDIAN are all defined here */

View File

@ -0,0 +1,39 @@
https://bugzilla.mozilla.org/show_bug.cgi?id=1642174
From a7a862bab5e4aae4615ddae3cbe230345f92ed0d Mon Sep 17 00:00:00 2001
From: Lauri Kasanen <cand@gmx.com>
Date: Mon, 1 Jun 2020 12:11:45 +0300
Subject: [PATCH v3] Bug 1642174 /usr/bin/ld: OBJS/Linux_SINGLE_SHLIB/sha512-p8.o:
ABI version 2 is not compatible with ABI version 1 output
Don't try to build the SHA-2 accelerated asm on old-ABI ppc.
Currently make only, I don't have enough gyp-fu to do that side.
However, the reporters of 1642174 and 1635625 both used make, not gyp.
Signed-off-by: Lauri Kasanen <cand@gmx.com>
---
lib/freebl/Makefile | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/freebl/Makefile b/lib/freebl/Makefile
index 5f7384429..e0461c7d3 100644
--- a/lib/freebl/Makefile
+++ b/lib/freebl/Makefile
@@ -267,9 +267,12 @@ ifeq ($(CPU_ARCH),arm)
endif
ifeq ($(CPU_ARCH),ppc)
EXTRA_SRCS += gcm-ppc.c
- ASFILES += sha512-p8.s
ifdef USE_64
DEFINES += -DNSS_NO_INIT_SUPPORT
+ PPC_ABI := $(shell $(CC) -dM -E - < /dev/null | awk '$$2 == "_CALL_ELF" {print $$3}')
+ ifeq ($(PPC_ABI),2)
+ ASFILES += sha512-p8.s
+ endif
endif # USE_64
endif # ppc
endif # Linux
--
2.19.1

View File

@ -0,0 +1,290 @@
From 1b3c48499abb000d708abe5f05413c1f4155e086 Mon Sep 17 00:00:00 2001
From: Jory Pratt <anarchy@gentoo.org>
Date: Mon, 8 Jun 2020 12:22:29 -0500
Subject: [PATCH] Add pkg-config and nss-config for Gentoo
---
Makefile | 15 +----
config/Makefile | 40 ++++++++++++
config/nss-config.in | 145 +++++++++++++++++++++++++++++++++++++++++++
config/nss.pc.in | 12 ++++
manifest.mn | 2 +-
5 files changed, 200 insertions(+), 14 deletions(-)
create mode 100644 config/Makefile
create mode 100644 config/nss-config.in
create mode 100644 config/nss.pc.in
diff --git a/Makefile b/Makefile
index eb4ed1a..f979d90 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,8 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+default: nss_build_all
+
#######################################################################
# (1) Include initial platform-independent assignments (MANDATORY). #
#######################################################################
@@ -48,12 +50,9 @@ include $(CORE_DEPTH)/coreconf/rules.mk
#######################################################################
nss_build_all:
- $(MAKE) build_nspr
$(MAKE) all
- $(MAKE) latest
nss_clean_all:
- $(MAKE) clobber_nspr
$(MAKE) clobber
NSPR_CONFIG_STATUS = $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)/config.status
@@ -138,16 +137,6 @@ $(NSPR_CONFIG_STATUS): $(NSPR_CONFIGURE)
--prefix='$(NSS_GYP_PREFIX)'
endif
-build_nspr: $(NSPR_CONFIG_STATUS)
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)/pr/tests
-
-install_nspr: build_nspr
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) install
-
-clobber_nspr: $(NSPR_CONFIG_STATUS)
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) clobber
-
build_docs:
$(MAKE) -C $(CORE_DEPTH)/doc
diff --git a/config/Makefile b/config/Makefile
new file mode 100644
index 0000000..aaf1991
--- /dev/null
+++ b/config/Makefile
@@ -0,0 +1,40 @@
+CORE_DEPTH = ..
+DEPTH = ..
+
+include $(CORE_DEPTH)/coreconf/config.mk
+
+NSS_MAJOR_VERSION = $(shell grep -F "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}')
+NSS_MINOR_VERSION = $(shell grep -F "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}')
+NSS_PATCH_VERSION = $(shell grep -F "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}')
+PREFIX = /usr
+
+all: export libs
+
+export:
+ # Create the nss.pc file
+ mkdir -p $(DIST)/lib/pkgconfig
+ sed -e "s,@prefix@,$(PREFIX)," \
+ -e "s,@exec_prefix@,\$${prefix}," \
+ -e "s,@libdir@,\$${prefix}/lib64," \
+ -e "s,@includedir@,\$${prefix}/include/nss," \
+ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \
+ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
+ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
+ nss.pc.in > nss.pc
+ chmod 0644 nss.pc
+ ln -sf ../../../../config/nss.pc $(DIST)/lib/pkgconfig
+
+ # Create the nss-config script
+ mkdir -p $(DIST)/bin
+ sed -e "s,@prefix@,$(PREFIX)," \
+ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \
+ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
+ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
+ nss-config.in > nss-config
+ chmod 0755 nss-config
+ ln -sf ../../../config/nss-config $(DIST)/bin
+
+libs:
+
+dummy: all export libs
+
diff --git a/config/nss-config.in b/config/nss-config.in
new file mode 100644
index 0000000..3a957b8
--- /dev/null
+++ b/config/nss-config.in
@@ -0,0 +1,145 @@
+#!/bin/sh
+
+prefix=@prefix@
+
+major_version=@NSS_MAJOR_VERSION@
+minor_version=@NSS_MINOR_VERSION@
+patch_version=@NSS_PATCH_VERSION@
+
+usage()
+{
+ cat <<EOF
+Usage: nss-config [OPTIONS] [LIBRARIES]
+Options:
+ [--prefix[=DIR]]
+ [--exec-prefix[=DIR]]
+ [--includedir[=DIR]]
+ [--libdir[=DIR]]
+ [--version]
+ [--libs]
+ [--cflags]
+Dynamic Libraries:
+ nss
+ ssl
+ smime
+ nssutil
+EOF
+ exit $1
+}
+
+if test $# -eq 0; then
+ usage 1 1>&2
+fi
+
+lib_ssl=yes
+lib_smime=yes
+lib_nss=yes
+lib_nssutil=yes
+
+while test $# -gt 0; do
+ case "$1" in
+ -*=*) optarg=$(echo "$1" | sed 's/[-_a-zA-Z0-9]*=//') ;;
+ *) optarg= ;;
+ esac
+
+ case $1 in
+ --prefix=*)
+ prefix=${optarg}
+ ;;
+ --prefix)
+ echo_prefix=yes
+ ;;
+ --exec-prefix=*)
+ exec_prefix=${optarg}
+ ;;
+ --exec-prefix)
+ echo_exec_prefix=yes
+ ;;
+ --includedir=*)
+ includedir=${optarg}
+ ;;
+ --includedir)
+ echo_includedir=yes
+ ;;
+ --libdir=*)
+ libdir=${optarg}
+ ;;
+ --libdir)
+ echo_libdir=yes
+ ;;
+ --version)
+ echo ${major_version}.${minor_version}.${patch_version}
+ ;;
+ --cflags)
+ echo_cflags=yes
+ ;;
+ --libs)
+ echo_libs=yes
+ ;;
+ ssl)
+ lib_ssl=yes
+ ;;
+ smime)
+ lib_smime=yes
+ ;;
+ nss)
+ lib_nss=yes
+ ;;
+ nssutil)
+ lib_nssutil=yes
+ ;;
+ *)
+ usage 1 1>&2
+ ;;
+ esac
+ shift
+done
+
+# Set variables that may be dependent upon other variables
+if test -z "${exec_prefix}"; then
+ exec_prefix=$(pkg-config --variable=exec_prefix nss)
+fi
+if test -z "${includedir}"; then
+ includedir=$(pkg-config --variable=includedir nss)
+fi
+if test -z "${libdir}"; then
+ libdir=$(pkg-config --variable=libdir nss)
+fi
+
+if test "${echo_prefix}" = "yes"; then
+ echo ${prefix}
+fi
+
+if test "${echo_exec_prefix}" = "yes"; then
+ echo ${exec_prefix}
+fi
+
+if test "${echo_includedir}" = "yes"; then
+ echo ${includedir}
+fi
+
+if test "${echo_libdir}" = "yes"; then
+ echo ${libdir}
+fi
+
+if test "${echo_cflags}" = "yes"; then
+ echo -I${includedir}
+fi
+
+if test "${echo_libs}" = "yes"; then
+ libdirs=""
+ if test -n "${lib_ssl}"; then
+ libdirs="${libdirs} -lssl${major_version}"
+ fi
+ if test -n "${lib_smime}"; then
+ libdirs="${libdirs} -lsmime${major_version}"
+ fi
+ if test -n "${lib_nss}"; then
+ libdirs="${libdirs} -lnss${major_version}"
+ fi
+ if test -n "${lib_nssutil}"; then
+ libdirs="${libdirs} -lnssutil${major_version}"
+ fi
+ echo ${libdirs}
+fi
+
diff --git a/config/nss.pc.in b/config/nss.pc.in
new file mode 100644
index 0000000..03f1e39
--- /dev/null
+++ b/config/nss.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: NSS
+Description: Network Security Services
+Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@
+Requires: nspr >= 4.25
+Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3
+Cflags: -I${includedir}
+
diff --git a/manifest.mn b/manifest.mn
index dada8ab..72dc9b3 100644
--- a/manifest.mn
+++ b/manifest.mn
@@ -10,7 +10,7 @@ IMPORTS = nspr20/v4.8 \
RELEASE = nss
-DIRS = coreconf lib cmd cpputil gtests
+DIRS = coreconf lib cmd cpputil config
lib: coreconf
cmd: lib
--
2.26.2

View File

@ -0,0 +1,351 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal
NSPR_VER="4.26"
RTM_NAME="NSS_${PV//./_}_RTM"
DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
HOMEPAGE="http://www.mozilla.org/projects/security/pki/nss/"
SRC_URI="https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/${P}.tar.gz
cacert? ( https://dev.gentoo.org/~axs/distfiles/${PN}-cacert-class1-class3.patch )"
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="cacert utils"
# pkg-config called by nss-config -> virtual/pkgconfig in RDEPEND
RDEPEND="
>=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
>=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
virtual/pkgconfig
"
DEPEND="${RDEPEND}"
RESTRICT="test"
S="${WORKDIR}/${P}/${PN}"
MULTILIB_CHOST_TOOLS=(
/usr/bin/nss-config
)
PATCHES=(
# Custom changes for gentoo
"${FILESDIR}/${PN}-3.53-gentoo-fixups.patch"
"${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
"${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
"${FILESDIR}/${PN}-3.53-fix-building-on-ppc.patch"
)
src_prepare() {
if use cacert ; then #521462
PATCHES+=(
"${DISTDIR}/${PN}-cacert-class1-class3.patch"
)
fi
default
pushd coreconf >/dev/null || die
# hack nspr paths
echo 'INCLUDES += -I$(DIST)/include/dbm' \
>> headers.mk || die "failed to append include"
# modify install path
sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \
-i source.mk || die
# Respect LDFLAGS
sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk
popd >/dev/null || die
# Fix pkgconfig file for Prefix
sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \
config/Makefile || die
# use host shlibsign if need be #436216
if tc-is-cross-compiler ; then
sed -i \
-e 's:"${2}"/shlibsign:shlibsign:' \
cmd/shlibsign/sign.sh || die
fi
# dirty hack
sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \
lib/ssl/config.mk || die
sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \
cmd/platlibs.mk || die
multilib_copy_sources
strip-flags
}
multilib_src_configure() {
# Ensure we stay multilib aware
sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die
}
nssarch() {
# Most of the arches are the same as $ARCH
local t=${1:-${CHOST}}
case ${t} in
aarch64*)echo "aarch64";;
hppa*) echo "parisc";;
i?86*) echo "i686";;
x86_64*) echo "x86_64";;
*) tc-arch ${t};;
esac
}
nssbits() {
local cc cppflags="${1}CPPFLAGS" cflags="${1}CFLAGS"
if [[ ${1} == BUILD_ ]]; then
cc=$(tc-getBUILD_CC)
else
cc=$(tc-getCC)
fi
echo > "${T}"/test.c || die
${cc} ${!cppflags} ${!cflags} -c "${T}"/test.c -o "${T}/${1}test.o" || die
case $(file "${T}/${1}test.o") in
*32-bit*x86-64*) echo USE_X32=1;;
*64-bit*|*ppc64*|*x86_64*) echo USE_64=1;;
*32-bit*|*ppc*|*i386*) ;;
*) die "Failed to detect whether ${cc} builds 64bits or 32bits, disable distcc if you're using it, please";;
esac
}
multilib_src_compile() {
# use ABI to determine bit'ness, or fallback if unset
local buildbits mybits
case "${ABI}" in
n32) mybits="USE_N32=1";;
x32) mybits="USE_X32=1";;
s390x|*64) mybits="USE_64=1";;
${DEFAULT_ABI})
einfo "Running compilation test to determine bit'ness"
mybits=$(nssbits)
;;
esac
# bitness of host may differ from target
if tc-is-cross-compiler; then
buildbits=$(nssbits BUILD_)
fi
local makeargs=(
CC="$(tc-getCC)"
CCC="$(tc-getCXX)"
AR="$(tc-getAR) rc \$@"
RANLIB="$(tc-getRANLIB)"
OPTIMIZER=
${mybits}
)
# Take care of nspr settings #436216
local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags)"
unset NSPR_INCLUDE_DIR
export NSS_ALLOW_SSLKEYLOGFILE=1
export NSS_ENABLE_WERROR=0 #567158
export BUILD_OPT=1
export NSS_USE_SYSTEM_SQLITE=1
export NSDISTMODE=copy
export FREEBL_NO_DEPEND=1
export FREEBL_LOWHASH=1
export NSS_SEED_ONLY_DEV_URANDOM=1
export USE_SYSTEM_ZLIB=1
export ZLIB_LIBS=-lz
export ASFLAGS=""
local d
# Build the host tools first.
LDFLAGS="${BUILD_LDFLAGS}" \
XCFLAGS="${BUILD_CFLAGS}" \
NSPR_LIB_DIR="${T}/fakedir" \
emake -j1 -C coreconf \
CC="$(tc-getBUILD_CC)" \
${buildbits-${mybits}}
makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" )
# Then build the target tools.
for d in . lib/dbm ; do
CPPFLAGS="${myCPPFLAGS}" \
XCFLAGS="${CFLAGS} ${CPPFLAGS}" \
NSPR_LIB_DIR="${T}/fakedir" \
emake -j1 "${makeargs[@]}" -C ${d} OS_TEST="$(nssarch)"
done
}
# Altering these 3 libraries breaks the CHK verification.
# All of the following cause it to break:
# - stripping
# - prelink
# - ELF signing
# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html
# Either we have to NOT strip them, or we have to forcibly resign after
# stripping.
#local_libdir="$(get_libdir)"
#export STRIP_MASK="
# */${local_libdir}/libfreebl3.so*
# */${local_libdir}/libnssdbm3.so*
# */${local_libdir}/libsoftokn3.so*"
export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3"
generate_chk() {
local shlibsign="$1"
local libdir="$2"
einfo "Resigning core NSS libraries for FIPS validation"
shift 2
local i
for i in ${NSS_CHK_SIGN_LIBS} ; do
local libname=lib${i}.so
local chkname=lib${i}.chk
"${shlibsign}" \
-i "${libdir}"/${libname} \
-o "${libdir}"/${chkname}.tmp \
&& mv -f \
"${libdir}"/${chkname}.tmp \
"${libdir}"/${chkname} \
|| die "Failed to sign ${libname}"
done
}
cleanup_chk() {
local libdir="$1"
shift 1
local i
for i in ${NSS_CHK_SIGN_LIBS} ; do
local libfname="${libdir}/lib${i}.so"
# If the major version has changed, then we have old chk files.
[ ! -f "${libfname}" -a -f "${libfname}.chk" ] \
&& rm -f "${libfname}.chk"
done
}
multilib_src_install() {
pushd dist >/dev/null || die
dodir /usr/$(get_libdir)
cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed"
local i
for i in crmf freebl nssb nssckfw ; do
cp -L */lib/lib${i}.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
done
# Install nss-config and pkgconfig file
dodir /usr/bin
cp -L */bin/nss-config "${ED}"/usr/bin || die
dodir /usr/$(get_libdir)/pkgconfig
cp -L */lib/pkgconfig/nss.pc "${ED}"/usr/$(get_libdir)/pkgconfig || die
# create an nss-softokn.pc from nss.pc for libfreebl and some private headers
# bug 517266
sed -e 's#Libs:#Libs: -lfreebl#' \
-e 's#Cflags:#Cflags: -I${includedir}/private#' \
*/lib/pkgconfig/nss.pc >"${ED}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \
|| die "could not create nss-softokn.pc"
# all the include files
insinto /usr/include/nss
doins public/nss/*.{h,api}
insinto /usr/include/nss/private
doins private/nss/{blapi,alghmac,cmac}.h
popd >/dev/null || die
local f nssutils
# Always enabled because we need it for chk generation.
nssutils=( shlibsign )
if multilib_is_native_abi ; then
if use utils; then
# The tests we do not need to install.
#nssutils_test="bltest crmftest dbtest dertimetest
#fipstest remtest sdrtest"
# checkcert utils has been removed in nss-3.22:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1187545
# https://hg.mozilla.org/projects/nss/rev/df1729d37870
# certcgi has been removed in nss-3.36:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1426602
nssutils+=(
addbuiltin
atob
baddbdir
btoa
certutil
cmsutil
conflict
crlutil
derdump
digest
makepqg
mangle
modutil
multinit
nonspr10
ocspclnt
oidcalc
p7content
p7env
p7sign
p7verify
pk11mode
pk12util
pp
rsaperf
selfserv
signtool
signver
ssltap
strsclnt
symkeyutil
tstclnt
vfychain
vfyserv
)
# install man-pages for utils (bug #516810)
doman doc/nroff/*.1
fi
pushd dist/*/bin >/dev/null || die
for f in ${nssutils[@]}; do
dobin ${f}
done
popd >/dev/null || die
fi
# Prelink breaks the CHK files. We don't have any reliable way to run
# shlibsign after prelink.
dodir /etc/prelink.conf.d
printf -- "-b ${EPREFIX}/usr/$(get_libdir)/lib%s.so\n" ${NSS_CHK_SIGN_LIBS} \
> "${ED}"/etc/prelink.conf.d/nss.conf
}
pkg_postinst() {
multilib_pkg_postinst() {
# We must re-sign the libraries AFTER they are stripped.
local shlibsign="${EROOT}/usr/bin/shlibsign"
# See if we can execute it (cross-compiling & such). #436216
"${shlibsign}" -h >&/dev/null
if [[ $? -gt 1 ]] ; then
shlibsign="shlibsign"
fi
generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir)
}
multilib_foreach_abi multilib_pkg_postinst
}
pkg_postrm() {
multilib_pkg_postrm() {
cleanup_chk "${EROOT}"/usr/$(get_libdir)
}
multilib_foreach_abi multilib_pkg_postrm
}

View File

@ -0,0 +1 @@
DIST wayland-1.17.0.tar.xz 437680 BLAKE2B 2f4eb54c5ded90453b4e2812f7b5086aa211196ec9f7333d316cdb829269d55db570ccb45a67ee07a039633245e630ab54da6403ff4754d59366f3c13fb87549 SHA512 c5051aab5ff078b368c196ecfedb33ccd961265bb914845d7ed81de361bb86ae18299575baa6c4eceb0d82cf8b495e8293f31b51d1cbc05d84af0a199ab3f946

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>x11@gentoo.org</email>
<name>X11</name>
</maintainer>
</pkgmetadata>

View File

@ -0,0 +1,62 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
SRC_URI="https://wayland.freedesktop.org/releases/${P}.tar.xz"
inherit autotools libtool toolchain-funcs out-of-source
DESCRIPTION="Wayland protocol libraries"
HOMEPAGE="https://wayland.freedesktop.org/ https://gitlab.freedesktop.org/wayland/wayland"
LICENSE="MIT"
SLOT="0"
IUSE="doc static-libs"
KEYWORDS="*"
BDEPEND="
virtual/pkgconfig
doc? (
>=app-doc/doxygen-1.6[dot]
app-text/xmlto
>=media-gfx/graphviz-2.26.0
sys-apps/grep[pcre]
)
"
DEPEND="
>=dev-libs/expat-2.1.0-r3:=
dev-libs/libxml2:=
>=virtual/libffi-3.0.13-r1:=
"
RDEPEND="${DEPEND}
!<media-libs/mesa-18.1.1-r1
"
src_prepare() {
default
[[ $PV = 9999* ]] && eautoreconf || elibtoolize
}
my_src_configure() {
local myeconfargs=(
--disable-static
$(use_enable doc documentation)
$(use_enable doc dtd-validation)
)
tc-is-cross-compiler && myeconfargs+=( --with-host-scanner )
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
my_src_install_all() {
find "${D}" -name '*.la' -delete || die
einstalldocs
}
src_test() {
# We set it on purpose to only a short subdir name, as socket paths are
# created in there, which are 108 byte limited. With this it hopefully
# barely fits to the limit with /var/tmp/portage/$CAT/$PF/temp/xdr
export XDG_RUNTIME_DIR="${T}"/xdr
mkdir "${XDG_RUNTIME_DIR}" || die
chmod 0700 "${XDG_RUNTIME_DIR}" || die
}

View File

@ -0,0 +1,73 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
EGIT_REPO_URI="https://anongit.freedesktop.org/git/wayland/wayland.git"
if [[ ${PV} = 9999* ]]; then
GIT_ECLASS="git-r3"
fi
inherit autotools libtool ltprune multilib-minimal toolchain-funcs $GIT_ECLASS
DESCRIPTION="Wayland protocol libraries"
HOMEPAGE="https://wayland.freedesktop.org/"
if [[ $PV = 9999* ]]; then
SRC_URI=""
else
SRC_URI="https://wayland.freedesktop.org/releases/${P}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
fi
LICENSE="MIT"
SLOT="0"
IUSE="doc static-libs"
RDEPEND=">=dev-libs/expat-2.1.0-r3:=[${MULTILIB_USEDEP}]
>=virtual/libffi-3.0.13-r1:=[${MULTILIB_USEDEP}]
dev-libs/libxml2:=
!!<media-libs/mesa-18.1.1-r1"
DEPEND="${RDEPEND}
doc? (
>=app-doc/doxygen-1.6[dot]
app-text/xmlto
>=media-gfx/graphviz-2.26.0
sys-apps/grep[pcre]
)
virtual/pkgconfig"
src_prepare() {
default
[[ $PV = 9999* ]] && eautoreconf || elibtoolize
}
multilib_src_configure() {
local myconf
if tc-is-cross-compiler ; then
myconf+=' --with-host-scanner '
fi
ECONF_SOURCE="${S}" econf \
--disable-static \
$(multilib_native_use_enable doc documentation) \
$(multilib_native_enable dtd-validation) \
${myconf}
}
multilib_src_install_all() {
prune_libtool_files
einstalldocs
}
src_test() {
# We set it on purpose to only a short subdir name, as socket paths are
# created in there, which are 108 byte limited. With this it hopefully
# barely fits to the limit with /var/tmp/portage/$CAT/$PF/temp/xdr
export XDG_RUNTIME_DIR="${T}"/xdr
mkdir "${XDG_RUNTIME_DIR}" || die
chmod 0700 "${XDG_RUNTIME_DIR}" || die
multilib-minimal_src_test
}