bump(dev-libs/nss): sync with upstream

This commit is contained in:
Benjamin Gilbert 2020-04-16 04:13:12 +00:00 committed by Kai Lüke
parent 4e8a606e3a
commit 001e63779b
8 changed files with 151 additions and 810 deletions

View File

@ -1,17 +1,3 @@
AUX nss-3.21-enable-pem.patch 172 SHA256 20f965b06496b4f7e6b8b429fbd2c83b24e1f9bacd3f991af80906f49fbad96f SHA512 fd40fd3b5724f01dd94c2dcf1311d6ab207e59869e5b531fddf35c716bfb1b5cb95c8869fc4ad365b676667598319460de99bf314f529e90415096437f3e610f WHIRLPOOL 97dae3d71f5f5f56dfde405e7fb523992f0901e2f4c7d7879b0ba9e8b3fe1b8186a49d3c0a057233089f8bdfc0b95791f905c8c59370c9dbfb177ac7ff6d011b DIST nss-3.51.1.tar.gz 78310874 BLAKE2B c295b5fdf6e1d24cc79474f2c5a9e91fccf777212fbb072e8a64576ed1b060fea6ecbde1fa59bb07c998b9aa92bb7d450e722a8f34a72eaa35aef6cbd693420a SHA512 1878780886cc330489a14a60ee5cb67b174f3167d020db256eacdce079652ef8af65813914cd0fb5684457053fa27acc9bff72d0713fbea28795613ca45a6d46
AUX nss-3.21-gentoo-fixup-warnings.patch 178 SHA256 cb2516461bd68de96e77bab7274c0a920a6dbe958b8d73db018cf0105cb59838 SHA512 7667a020311ca11e8f1836bc146e4a3c94ff2a489882dbe87debcccfeaafeb50e6607574c64254a826b4b6f0bb436b310a3386fff4a58324f0e5e58debaa9d51 WHIRLPOOL 0676a1900eaccaf2f7f961f1e55987340eedab6e1e039e1375d4b9a4753d80fddaf3e873d7b689d29f22520dc42bd5c060ad10e75ede1a62605a3cc78b3d46b9 DIST nss-3.51.tar.gz 78305125 BLAKE2B 2c7b90d4cc9fe283bf81e21d0dceefff503e5a31f0053828b140b2b927ddab8c8881b23c7d4c003f3e2d0dcd22efbe699baee63443cab6e72d33a552fd430e3c SHA512 9c894b1ea41449b000750a7b3a89fcb43dfc3d0d4d6dcc0dc288bc73996f76f1ee1ede927a8aecae6d4a07f9f3d3e3a042c6a60cf06e27e0cdc004fce2e510fd
AUX nss-3.23-hppa-byte_order.patch 460 SHA256 f75dbf36847d13a1638b1983e08b9f6dc3f2417475cba42555ce7b88f828cebe SHA512 ad0097bb6cf409d61eb28202d7460c87e983d6db977aba38ff9ef2749b3f7bb8fdadce4174f5bf806350ae33733097a1f444792d31cc43574b28341893642e5a WHIRLPOOL 4d6fcec5da495afb0ac1d23e124a2dbc65aaf75a217c2adc7e76017aec4189057c2b1cd6c088ee4c2a4b6c55127792aef410afe19c533437d30e810da840f08b DIST nss-cacert-class1-class3.patch 22950 BLAKE2B 9d5e60df5f161a3c27c41e5a9419440a54f888eda454e3cde5ebe626d4075b65cf9938b5144d0fb022377f4bd415bff5e5c67d104409860aa9391b3eb8872c68 SHA512 a5aa740bf110a3f0262e3f1ef2fc739ac2b44f042e220039d48aee8e97cd764d5c10718220364f4098aba955882bd02cadb5481512388971a8290312f88a7df0
AUX nss-3.28-gentoo-fixups.patch 5310 SHA256 58f8c048d0bf096b28d44303f2824a2336f3741b2bd772db24781f1b5a57a87c SHA512 22fe711d4e59c41f8208b4e85eb101eb6cdd4ad43d83438841b94a57219eeb182c527be1a97bf58df25672fe027aaebeab7458da2bebafef7254c68b94c7b98c WHIRLPOOL 7dd04e5112e900d720791a5cba3b8c214260fa035aa13980ba7cd87dc1d326a05cc8070f03dd574cb977c021698a3e098393caebf45e588ff753973047e7b0a5
DIST nss-3.28.1.tar.gz 7451477 SHA256 58cc0c05c0ed9523e6d820bea74f513538f48c87aac931876e3d3775de1a82ad SHA512 f10c8e404741fafe5e5772dc754ff4503ec1826942db5fbc13b99155fcac50f29e1405dd249b69a27f27ebcfef73849b1f0f636a2076ab761384e8a0ed9a2b8b WHIRLPOOL e1a6b9886759159294c4d8e47e693a2e790703e368ede18425c9a9130df72ac56a6e717cb794607c7bcfc68c82df9aec8771bc74e729f5bbd70fdcd8ce0fed3b
DIST nss-3.29.5.tar.gz 7480246 SHA256 5df483b73535d726207483f6349df23fe56aee83382b94b13298aec2e254d985 SHA512 ce18bc7e793d2b3698db412b2e5fcabbfd9862eca3def120d5e44bc67276526bff6b33ffa84b8128f8af6d35101000e6f7bb24194f63a55461b3c245fac11faa WHIRLPOOL ca341bc9e76208e01ee9b1b1fa8a67dd502676d1a2062468722ad80ed81fa3e4b0958907892871249b3596b310aa813259cf47b5bc64ec37b05613dc9d31323f
DIST nss-3.30.1.tar.gz 9501791 SHA256 1fa273a9a18611bfd22ecd61283172a5aa66af7d0783c7018f42d48000be5eb6 SHA512 591c518bc7e8105675678863e1995725982527e138b45e12ad0efd927f5d3eaa2aaa704d335ff46d572c2f7ad8a8f9a38e671c1d5a9f46fe495077ba0522bc51 WHIRLPOOL 40ef67fcb505ed19b8438b77b5b0a147d939863066a24bd15f5afa2e6ea91a40d6aaa43860c6f1f94f37efe417c48f865c344e7ffb5d997e4a92356100a206c1
DIST nss-3.30.2.tar.gz 9499119 SHA256 0d4a77ff26bcee79fa8afe0125e0df6ae9e798b6b36782fa29e28febf7cfce24 SHA512 02f14bc000cbde42268c4b6f42df80680b010d1491643ef9b11e0bac31a286a2e7fa251c40cb4ac70b64883a1b90efc64440ef9d797357f8a47cd37195fc5500 WHIRLPOOL b1039f227a55ed9ab592b7e1ea0856c8cf91b8d298ef07d9d0f56d1956319b15c12224f023a100d106101c49dafb16e8231680667d2c7d0b8f8b2bbf6ad3ec8e
DIST nss-cacert-class1-class3.patch 22950 SHA256 6bba29cee34276e2ca6436dabedfeba2b61fb46668c5d5ceabf0c871574649bf SHA512 a5aa740bf110a3f0262e3f1ef2fc739ac2b44f042e220039d48aee8e97cd764d5c10718220364f4098aba955882bd02cadb5481512388971a8290312f88a7df0 WHIRLPOOL 1246223b01292604e5609bb9c580f092dc5937bf8c98f6891b099e8bab960e03612b6617e30a55d6ff8817d88f190e03812fe8f89f84f25c20970493dc2f7700
DIST nss-pem-20160329.tar.xz 27732 SHA256 6c13c342e7a9fe34b585556099beca33c3078b3df3e11b72827fb70232ac1443 SHA512 5834b06e4c64205447573d4f4c8989e20986ae67ee00eebce3817eb73794a6355a404143ba1c676ec302ceefaf9df103cb879b1d4ff14ba4e3790dbee3e40eb2 WHIRLPOOL 16fb714fab29e44f7a15fa1928a0f4c1a770f0847b8da97816e29a3b124dee782cffe2357648c445f4d29081f349571b6fffe48c5bc725c7c2dde491f3e0e836
EBUILD nss-3.28.1.ebuild 9319 SHA256 dee1ce54b7c6d45cdb3fdde82a25f4a55a188e2e2ad1123f46f43d310cb4f975 SHA512 38a5ceb428ee2c06db31db08e907fbb9927285f8b87fbb1dcc8e4c7fb97a5b7dc5ebb9da059607bdc954541d1d8f2257df98f970523c47fb0a357717dd40575c WHIRLPOOL 3906c38d6f322b06c9d45bbb1c41b3a441f46b708eb17ba03ce6079bccebd8ad4a63c9a2474fcc82f50adbf4f7fe87d117a9a1263bf589c03e4b715011ee73ca
EBUILD nss-3.29.5.ebuild 9322 SHA256 4f54ed6d1070c04c22691b135de4609e5b5ac940aab3fa242b68ae55e8d1037d SHA512 44aac29136c969a0a79c81a385752b42c48999d80e5234e6b84162d8069792a69e7da6b4fcd86e2967c7f341e64b6872812b0480ee556bfa8279715fbd3119e1 WHIRLPOOL c1e930bd2c8476b6e9bd88d9ae99bb7da0ede1b32107b05ad8be66a5507bc7db0478b195ca38996fce91da24da64fa9f6d697dd9eeac5da7717f84275eccf93d
EBUILD nss-3.30.1.ebuild 9329 SHA256 980c4aa7969d30055ed01b872a3bc258b680b36f55cc44c6c79c268487e53498 SHA512 ebbb4e25b17800b268baa539e159ef06b3d7a97cc613cb8c867bdaf847471256026dc00092b8611d5f8ba8dc0796d62fc810346268af734a707ff522327f5816 WHIRLPOOL e900568a34e831bf04a22d92f3f239b045c35d694f959b05f6e27a05d8cac0ae87cba5cebe5f3cf348227d32f4345589ad086f9de5b25bcd0b2b2ee554ba1fb2
EBUILD nss-3.30.2.ebuild 9329 SHA256 980c4aa7969d30055ed01b872a3bc258b680b36f55cc44c6c79c268487e53498 SHA512 ebbb4e25b17800b268baa539e159ef06b3d7a97cc613cb8c867bdaf847471256026dc00092b8611d5f8ba8dc0796d62fc810346268af734a707ff522327f5816 WHIRLPOOL e900568a34e831bf04a22d92f3f239b045c35d694f959b05f6e27a05d8cac0ae87cba5cebe5f3cf348227d32f4345589ad086f9de5b25bcd0b2b2ee554ba1fb2
MISC ChangeLog 15571 SHA256 66bb2e0050bde1c86d328555c5a772c75a557fea581bf8772b4cfeb3723475ee SHA512 0776bdda90d92e9cfccfd8fa96c9edf20456ac73e4cbcbeb1eaf483fcb6ec028522aa46e735b834e51d1f3af924abdfbb3b9d50ff483ddeea336ed59354e9eb2 WHIRLPOOL c4a82a03bc8fa2792e1c92aa7496ab83d0f62b8e45327d933f0fdd01996eb3a46cd09856075104967337214a61645927bf4f9075bce07133bc32d8a62b47c3b0
MISC ChangeLog-2015 54652 SHA256 27f421ca4fde413f810e038d8fec5f0b81badbb9bfd5d2bd550007475754d709 SHA512 73dc5cdbf1d5b8de7d6cc3c8139d521490fb4460367b49b2bf4cf08bef57e6e1120a5f8c6e6b57d44667c832a16d961d229750c92a8eace6a420a359116c9ace WHIRLPOOL aa70e189b8ef13524920ecbf8e2288d3ad4ea004953f06ab4777c5a20824b5856932449ad601d0399b2258b912a84393ba5e08673e74279811303be09fc880bf
MISC metadata.xml 571 SHA256 8a1af2879115e6f6a80e86c5116ca5e4bc7c0646a52b8d6d9c82a9a45beeb043 SHA512 f6a7de1614f3bdbdea2d5ae627d82519c59e3703f293daefd9dc4692f84c3f0bc3000654b6a4fe595de95b433e698aaf1d3358897e22da283eb63b74a48d95b0 WHIRLPOOL 8ff040fd74e415f3524b530288a624ad0f69addd1021581a625d9e921b42f0c6408d4924632808c9d710826bae345c89eb89b352b485db310bccd4e6716d8872

View File

@ -1,11 +0,0 @@
--- nss/lib/ckfw/manifest.mn
+++ nss/lib/ckfw/manifest.mn
@@ -5,7 +5,7 @@
CORE_DEPTH = ../..
-DIRS = builtins
+DIRS = builtins pem
PRIVATE_EXPORTS = \
ck.h \

View File

@ -1,5 +1,5 @@
--- nss/config/Makefile --- a/config/Makefile
+++ nss/config/Makefile +++ b/config/Makefile
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
+CORE_DEPTH = .. +CORE_DEPTH = ..
+DEPTH = .. +DEPTH = ..
@ -41,8 +41,8 @@
+ +
+dummy: all export libs +dummy: all export libs
+ +
--- nss/config/nss-config.in --- a/config/nss-config.in
+++ nss/config/nss-config.in +++ b/config/nss-config.in
@@ -0,0 +1,145 @@ @@ -0,0 +1,145 @@
+#!/bin/sh +#!/bin/sh
+ +
@ -131,8 +131,8 @@
+ nss) + nss)
+ lib_nss=yes + lib_nss=yes
+ ;; + ;;
+ nssutil) + nssutil)
+ lib_nssutil=yes + lib_nssutil=yes
+ ;; + ;;
+ *) + *)
+ usage 1 1>&2 + usage 1 1>&2
@ -187,10 +187,10 @@
+ libdirs="$libdirs -lnssutil${major_version}" + libdirs="$libdirs -lnssutil${major_version}"
+ fi + fi
+ echo $libdirs + echo $libdirs
+fi +fi
+ +
--- nss/config/nss.pc.in --- a/config/nss.pc.in
+++ nss/config/nss.pc.in +++ b/config/nss.pc.in
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
+prefix=@prefix@ +prefix=@prefix@
+exec_prefix=@exec_prefix@ +exec_prefix=@exec_prefix@
@ -204,9 +204,9 @@
+Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3 +Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3
+Cflags: -I${includedir} +Cflags: -I${includedir}
+ +
--- nss/Makefile --- a/Makefile
+++ nss/Makefile +++ b/Makefile
@@ -46,7 +46,7 @@ @@ -47,7 +47,7 @@
# (7) Execute "local" rules. (OPTIONAL). # # (7) Execute "local" rules. (OPTIONAL). #
####################################################################### #######################################################################
@ -215,12 +215,13 @@
nss_clean_all: clobber_nspr clobber nss_clean_all: clobber_nspr clobber
@@ -143,15 +143,6 @@ @@ -133,16 +133,6 @@
--prefix='$(NSS_GYP_PREFIX)' --prefix='$(NSS_GYP_PREFIX)'
endif endif
-build_nspr: $(NSPR_CONFIG_STATUS) -build_nspr: $(NSPR_CONFIG_STATUS)
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) - $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)/pr/tests
- -
-install_nspr: build_nspr -install_nspr: build_nspr
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) install - $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) install
@ -231,11 +232,11 @@
build_docs: build_docs:
$(MAKE) -C $(CORE_DEPTH)/doc $(MAKE) -C $(CORE_DEPTH)/doc
--- nss/manifest.mn --- a/manifest.mn
+++ nss/manifest.mn +++ b/manifest.mn
@@ -10,4 +10,4 @@ @@ -10,4 +10,4 @@
RELEASE = nss RELEASE = nss
-DIRS = coreconf lib cmd gtests -DIRS = coreconf lib cmd cpputil gtests
+DIRS = coreconf lib cmd config +DIRS = coreconf lib cmd cpputil config

View File

@ -9,7 +9,6 @@
<flag name="cacert"> <flag name="cacert">
Include root/class3 certs from CAcert (http://www.cacert.org/) Include root/class3 certs from CAcert (http://www.cacert.org/)
</flag> </flag>
<flag name="nss-pem">Add support for libnsspem</flag>
<flag name="utils">Install utilities included with the library</flag> <flag name="utils">Install utilities included with the library</flag>
</use> </use>
<upstream> <upstream>

View File

@ -1,338 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal
NSPR_VER="4.13.1"
RTM_NAME="NSS_${PV//./_}_RTM"
# Rev of https://git.fedorahosted.org/cgit/nss-pem.git
PEM_GIT_REV="429b0222759d8ad8e6dcd29e62875ae3efd69116"
PEM_P="${PN}-pem-20160329"
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 )
nss-pem? ( https://dev.gentoo.org/~polynomial-c/${PEM_P}.tar.xz )"
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 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="cacert +nss-pem utils"
CDEPEND=">=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
DEPEND=">=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
>=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
${CDEPEND}"
RDEPEND=">=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
${CDEPEND}
abi_x86_32? (
!<=app-emulation/emul-linux-x86-baselibs-20140508-r12
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
)"
RESTRICT="test"
S="${WORKDIR}/${P}/${PN}"
MULTILIB_CHOST_TOOLS=(
/usr/bin/nss-config
)
PATCHES=(
# Custom changes for gentoo
"${FILESDIR}/${PN}-3.28-gentoo-fixups.patch"
"${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
"${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
)
src_unpack() {
unpack ${A}
if use nss-pem ; then
mv "${PN}"/lib/ckfw/pem/ "${S}"/lib/ckfw/ || die
fi
}
src_prepare() {
if use nss-pem ; then
PATCHES+=(
"${FILESDIR}/${PN}-3.21-enable-pem.patch"
)
fi
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)"
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
# Do not let `uname` be used.
if use kernel_linux ; then
makeargs+=(
OS_TARGET=Linux
OS_RELEASE=2.6
OS_TEST="$(nssarch)"
)
fi
export NSS_ENABLE_WERROR=0 #567158
export BUILD_OPT=1
export NSS_USE_SYSTEM_SQLITE=1
export NSDISTMODE=copy
export NSS_ENABLE_ECC=1
export FREEBL_NO_DEPEND=1
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}
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"
cp -L */lib/libcrmf.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
cp -L */lib/libfreebl.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
# 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
insinto /usr/include/nss/private
doins private/nss/{blapi,alghmac}.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
nssutils="addbuiltin atob baddbdir btoa certcgi certutil
cmsutil conflict crlutil derdump digest makepqg mangle modutil multinit
nonspr10 ocspclnt oidcalc p7content p7env p7sign p7verify pk11mode
pk12util pp rsaperf selfserv shlibsign 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

@ -1,338 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal
NSPR_VER="4.13.1"
RTM_NAME="NSS_${PV//./_}_RTM"
# Rev of https://git.fedorahosted.org/cgit/nss-pem.git
PEM_GIT_REV="429b0222759d8ad8e6dcd29e62875ae3efd69116"
PEM_P="${PN}-pem-20160329"
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 )
nss-pem? ( https://dev.gentoo.org/~polynomial-c/${PEM_P}.tar.xz )"
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 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="cacert +nss-pem utils"
CDEPEND=">=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
DEPEND=">=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
>=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
${CDEPEND}"
RDEPEND=">=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
${CDEPEND}
abi_x86_32? (
!<=app-emulation/emul-linux-x86-baselibs-20140508-r12
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
)"
RESTRICT="test"
S="${WORKDIR}/${P}/${PN}"
MULTILIB_CHOST_TOOLS=(
/usr/bin/nss-config
)
PATCHES=(
# Custom changes for gentoo
"${FILESDIR}/${PN}-3.28-gentoo-fixups.patch"
"${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
"${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
)
src_unpack() {
unpack ${A}
if use nss-pem ; then
mv "${PN}"/lib/ckfw/pem/ "${S}"/lib/ckfw/ || die
fi
}
src_prepare() {
if use nss-pem ; then
PATCHES+=(
"${FILESDIR}/${PN}-3.21-enable-pem.patch"
)
fi
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)"
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
# Do not let `uname` be used.
if use kernel_linux ; then
makeargs+=(
OS_TARGET=Linux
OS_RELEASE=2.6
OS_TEST="$(nssarch)"
)
fi
export NSS_ENABLE_WERROR=0 #567158
export BUILD_OPT=1
export NSS_USE_SYSTEM_SQLITE=1
export NSDISTMODE=copy
export NSS_ENABLE_ECC=1
export FREEBL_NO_DEPEND=1
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}
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"
cp -L */lib/libcrmf.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
cp -L */lib/libfreebl.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
# 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
insinto /usr/include/nss/private
doins private/nss/{blapi,alghmac}.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
nssutils="addbuiltin atob baddbdir btoa certcgi certutil
cmsutil conflict crlutil derdump digest makepqg mangle modutil multinit
nonspr10 ocspclnt oidcalc p7content p7env p7sign p7verify pk11mode
pk12util pp rsaperf selfserv shlibsign 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

@ -1,37 +1,31 @@
# Copyright 1999-2017 Gentoo Foundation # Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=7
inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal
NSPR_VER="4.13.1" NSPR_VER="4.25"
RTM_NAME="NSS_${PV//./_}_RTM" RTM_NAME="NSS_${PV//./_}_RTM"
# Rev of https://git.fedorahosted.org/cgit/nss-pem.git
PEM_GIT_REV="429b0222759d8ad8e6dcd29e62875ae3efd69116"
PEM_P="${PN}-pem-20160329"
DESCRIPTION="Mozilla's Network Security Services library that implements PKI support" DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
HOMEPAGE="http://www.mozilla.org/projects/security/pki/nss/" 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 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 ) cacert? ( https://dev.gentoo.org/~axs/distfiles/${PN}-cacert-class1-class3.patch )"
nss-pem? ( https://dev.gentoo.org/~polynomial-c/${PEM_P}.tar.xz )"
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )" LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0" SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" 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 +nss-pem utils" IUSE="cacert utils"
CDEPEND=">=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}] BDEPEND="
>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]" >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
DEPEND=">=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] "
RDEPEND="
>=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}] >=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
${CDEPEND}" >=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
RDEPEND=">=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}] >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
${CDEPEND} "
abi_x86_32? ( DEPEND="${RDEPEND}"
!<=app-emulation/emul-linux-x86-baselibs-20140508-r12
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
)"
RESTRICT="test" RESTRICT="test"
@ -43,24 +37,12 @@ MULTILIB_CHOST_TOOLS=(
PATCHES=( PATCHES=(
# Custom changes for gentoo # Custom changes for gentoo
"${FILESDIR}/${PN}-3.28-gentoo-fixups.patch" "${FILESDIR}/${PN}-3.47-gentoo-fixups.patch"
"${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch" "${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
"${FILESDIR}/${PN}-3.23-hppa-byte_order.patch" "${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
) )
src_unpack() {
unpack ${A}
if use nss-pem ; then
mv "${PN}"/lib/ckfw/pem/ "${S}"/lib/ckfw/ || die
fi
}
src_prepare() { src_prepare() {
if use nss-pem ; then
PATCHES+=(
"${FILESDIR}/${PN}-3.21-enable-pem.patch"
)
fi
if use cacert ; then #521462 if use cacert ; then #521462
PATCHES+=( PATCHES+=(
"${DISTDIR}/${PN}-cacert-class1-class3.patch" "${DISTDIR}/${PN}-cacert-class1-class3.patch"
@ -157,6 +139,7 @@ multilib_src_compile() {
local makeargs=( local makeargs=(
CC="$(tc-getCC)" CC="$(tc-getCC)"
CCC="$(tc-getCXX)"
AR="$(tc-getAR) rc \$@" AR="$(tc-getAR) rc \$@"
RANLIB="$(tc-getRANLIB)" RANLIB="$(tc-getRANLIB)"
OPTIMIZER= OPTIMIZER=
@ -176,12 +159,15 @@ multilib_src_compile() {
) )
fi fi
export NSS_ALLOW_SSLKEYLOGFILE=1
export NSS_ENABLE_WERROR=0 #567158 export NSS_ENABLE_WERROR=0 #567158
export BUILD_OPT=1 export BUILD_OPT=1
export NSS_USE_SYSTEM_SQLITE=1 export NSS_USE_SYSTEM_SQLITE=1
export NSDISTMODE=copy export NSDISTMODE=copy
export NSS_ENABLE_ECC=1 export NSS_ENABLE_ECC=1
export FREEBL_NO_DEPEND=1 export FREEBL_NO_DEPEND=1
export FREEBL_LOWHASH=1
export NSS_SEED_ONLY_DEV_URANDOM=1
export ASFLAGS="" export ASFLAGS=""
local d local d
@ -256,8 +242,10 @@ multilib_src_install() {
dodir /usr/$(get_libdir) dodir /usr/$(get_libdir)
cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed" cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed"
cp -L */lib/libcrmf.a "${ED}"/usr/$(get_libdir) || die "copying libs failed" local i
cp -L */lib/libfreebl.a "${ED}"/usr/$(get_libdir) || die "copying libs failed" 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 # Install nss-config and pkgconfig file
dodir /usr/bin dodir /usr/bin
@ -274,15 +262,15 @@ multilib_src_install() {
# all the include files # all the include files
insinto /usr/include/nss insinto /usr/include/nss
doins public/nss/*.h doins public/nss/*.{h,api}
insinto /usr/include/nss/private insinto /usr/include/nss/private
doins private/nss/{blapi,alghmac}.h doins private/nss/{blapi,alghmac,cmac}.h
popd >/dev/null || die popd >/dev/null || die
local f nssutils local f nssutils
# Always enabled because we need it for chk generation. # Always enabled because we need it for chk generation.
nssutils="shlibsign" nssutils=( shlibsign )
if multilib_is_native_abi ; then if multilib_is_native_abi ; then
if use utils; then if use utils; then
@ -292,16 +280,49 @@ multilib_src_install() {
# checkcert utils has been removed in nss-3.22: # checkcert utils has been removed in nss-3.22:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1187545 # https://bugzilla.mozilla.org/show_bug.cgi?id=1187545
# https://hg.mozilla.org/projects/nss/rev/df1729d37870 # https://hg.mozilla.org/projects/nss/rev/df1729d37870
nssutils="addbuiltin atob baddbdir btoa certcgi certutil # certcgi has been removed in nss-3.36:
cmsutil conflict crlutil derdump digest makepqg mangle modutil multinit # https://bugzilla.mozilla.org/show_bug.cgi?id=1426602
nonspr10 ocspclnt oidcalc p7content p7env p7sign p7verify pk11mode nssutils+=(
pk12util pp rsaperf selfserv shlibsign signtool signver ssltap strsclnt addbuiltin
symkeyutil tstclnt vfychain vfyserv" 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) # install man-pages for utils (bug #516810)
doman doc/nroff/*.1 doman doc/nroff/*.1
fi fi
pushd dist/*/bin >/dev/null || die pushd dist/*/bin >/dev/null || die
for f in ${nssutils}; do for f in ${nssutils[@]}; do
dobin ${f} dobin ${f}
done done
popd >/dev/null || die popd >/dev/null || die

View File

@ -1,37 +1,31 @@
# Copyright 1999-2017 Gentoo Foundation # Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=7
inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal
NSPR_VER="4.13.1" NSPR_VER="4.25"
RTM_NAME="NSS_${PV//./_}_RTM" RTM_NAME="NSS_${PV//./_}_RTM"
# Rev of https://git.fedorahosted.org/cgit/nss-pem.git
PEM_GIT_REV="429b0222759d8ad8e6dcd29e62875ae3efd69116"
PEM_P="${PN}-pem-20160329"
DESCRIPTION="Mozilla's Network Security Services library that implements PKI support" DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
HOMEPAGE="http://www.mozilla.org/projects/security/pki/nss/" 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 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 ) cacert? ( https://dev.gentoo.org/~axs/distfiles/${PN}-cacert-class1-class3.patch )"
nss-pem? ( https://dev.gentoo.org/~polynomial-c/${PEM_P}.tar.xz )"
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )" LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0" SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" 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 +nss-pem utils" IUSE="cacert utils"
CDEPEND=">=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}] BDEPEND="
>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]" >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
DEPEND=">=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] "
RDEPEND="
>=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}] >=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
${CDEPEND}" >=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
RDEPEND=">=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}] >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
${CDEPEND} "
abi_x86_32? ( DEPEND="${RDEPEND}"
!<=app-emulation/emul-linux-x86-baselibs-20140508-r12
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
)"
RESTRICT="test" RESTRICT="test"
@ -43,24 +37,12 @@ MULTILIB_CHOST_TOOLS=(
PATCHES=( PATCHES=(
# Custom changes for gentoo # Custom changes for gentoo
"${FILESDIR}/${PN}-3.28-gentoo-fixups.patch" "${FILESDIR}/${PN}-3.47-gentoo-fixups.patch"
"${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch" "${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
"${FILESDIR}/${PN}-3.23-hppa-byte_order.patch" "${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
) )
src_unpack() {
unpack ${A}
if use nss-pem ; then
mv "${PN}"/lib/ckfw/pem/ "${S}"/lib/ckfw/ || die
fi
}
src_prepare() { src_prepare() {
if use nss-pem ; then
PATCHES+=(
"${FILESDIR}/${PN}-3.21-enable-pem.patch"
)
fi
if use cacert ; then #521462 if use cacert ; then #521462
PATCHES+=( PATCHES+=(
"${DISTDIR}/${PN}-cacert-class1-class3.patch" "${DISTDIR}/${PN}-cacert-class1-class3.patch"
@ -157,6 +139,7 @@ multilib_src_compile() {
local makeargs=( local makeargs=(
CC="$(tc-getCC)" CC="$(tc-getCC)"
CCC="$(tc-getCXX)"
AR="$(tc-getAR) rc \$@" AR="$(tc-getAR) rc \$@"
RANLIB="$(tc-getRANLIB)" RANLIB="$(tc-getRANLIB)"
OPTIMIZER= OPTIMIZER=
@ -176,12 +159,15 @@ multilib_src_compile() {
) )
fi fi
export NSS_ALLOW_SSLKEYLOGFILE=1
export NSS_ENABLE_WERROR=0 #567158 export NSS_ENABLE_WERROR=0 #567158
export BUILD_OPT=1 export BUILD_OPT=1
export NSS_USE_SYSTEM_SQLITE=1 export NSS_USE_SYSTEM_SQLITE=1
export NSDISTMODE=copy export NSDISTMODE=copy
export NSS_ENABLE_ECC=1 export NSS_ENABLE_ECC=1
export FREEBL_NO_DEPEND=1 export FREEBL_NO_DEPEND=1
export FREEBL_LOWHASH=1
export NSS_SEED_ONLY_DEV_URANDOM=1
export ASFLAGS="" export ASFLAGS=""
local d local d
@ -256,8 +242,10 @@ multilib_src_install() {
dodir /usr/$(get_libdir) dodir /usr/$(get_libdir)
cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed" cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed"
cp -L */lib/libcrmf.a "${ED}"/usr/$(get_libdir) || die "copying libs failed" local i
cp -L */lib/libfreebl.a "${ED}"/usr/$(get_libdir) || die "copying libs failed" 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 # Install nss-config and pkgconfig file
dodir /usr/bin dodir /usr/bin
@ -274,15 +262,15 @@ multilib_src_install() {
# all the include files # all the include files
insinto /usr/include/nss insinto /usr/include/nss
doins public/nss/*.h doins public/nss/*.{h,api}
insinto /usr/include/nss/private insinto /usr/include/nss/private
doins private/nss/{blapi,alghmac}.h doins private/nss/{blapi,alghmac,cmac}.h
popd >/dev/null || die popd >/dev/null || die
local f nssutils local f nssutils
# Always enabled because we need it for chk generation. # Always enabled because we need it for chk generation.
nssutils="shlibsign" nssutils=( shlibsign )
if multilib_is_native_abi ; then if multilib_is_native_abi ; then
if use utils; then if use utils; then
@ -292,16 +280,49 @@ multilib_src_install() {
# checkcert utils has been removed in nss-3.22: # checkcert utils has been removed in nss-3.22:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1187545 # https://bugzilla.mozilla.org/show_bug.cgi?id=1187545
# https://hg.mozilla.org/projects/nss/rev/df1729d37870 # https://hg.mozilla.org/projects/nss/rev/df1729d37870
nssutils="addbuiltin atob baddbdir btoa certcgi certutil # certcgi has been removed in nss-3.36:
cmsutil conflict crlutil derdump digest makepqg mangle modutil multinit # https://bugzilla.mozilla.org/show_bug.cgi?id=1426602
nonspr10 ocspclnt oidcalc p7content p7env p7sign p7verify pk11mode nssutils+=(
pk12util pp rsaperf selfserv shlibsign signtool signver ssltap strsclnt addbuiltin
symkeyutil tstclnt vfychain vfyserv" 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) # install man-pages for utils (bug #516810)
doman doc/nroff/*.1 doman doc/nroff/*.1
fi fi
pushd dist/*/bin >/dev/null || die pushd dist/*/bin >/dev/null || die
for f in ${nssutils}; do for f in ${nssutils[@]}; do
dobin ${f} dobin ${f}
done done
popd >/dev/null || die popd >/dev/null || die