Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dev-libs/nss/Manifest
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
DIST nss-3.118.1.tar.gz 77625759 BLAKE2B 6b2f8bf0707801755b95a863eccf62f6cc9a381bf23e543ba6cff1ad41608846aa4632de6e4b7bc93b005bc43af21e32ae932e1e598ce89c2857c40a236fed6f SHA512 c031b9e200832689c8c02ac3a8327f4d8c74cb10ad1f5cefb8c6a15a469e910e3ea7bacfa617ce4c46d6e77d5a174b1fac89508c94c96e7888ee1838471ab7cc
DIST nss-3.120.tar.gz 77634611 BLAKE2B f1bff45d52a1c4580d522e1377c0f5af175b9ae52b5ba8edb4cffe0c42bbb1ba1e0382a493abffb9ca7f7a2ee46d8e6857b036f43cdda6328d432c2dc97572e4 SHA512 7ec5b6c94a5c7fde9c02c3f1a10964e9cf5fe99372c8fcdb2866d10ef4c9cd42abc26931574dbfc229c358e2615d7907136a595e3e17944369894c1201fc2c6e
DIST nss-3.121.tar.gz 77644546 BLAKE2B 972eedd73c46655a561956ac1a38814d96ce81767392532ecf42fe143f6f256a25a640d3b4b4829f4a7553d6d1961fc3e0279e740ca35d54ab6582742788cc31 SHA512 799cfb07bb806d3ab2786f7f1e88aa20ad490a0021a931b9382c08b08b6e6728367768335b05e15229f134275ee27ff153afaad78f07b394ef4c0b0e554e130c
DIST nss-3.124.tar.gz 78530189 BLAKE2B a348e0afae814d36bb7e55f83dc7944b1e78f7a446f5832f77deb3bb3e3eef22d9b7ee32038ad77e005c240e88f9af680ba45bd6c3bd1624f9f5fad3e2d3053f SHA512 9959977b3cbcb0306c8aeba2c059d4f3646b3144c6401fbc73c14aea364caa92331875354afa79c095b6482b29ae743228d35c1bd510c5124cad5e7c37c5daa2
210 changes: 210 additions & 0 deletions dev-libs/nss/nss-3.124.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
# Distributed under the terms of the GNU General Public License v2
# Autogen by MARK Devkit

EAPI=7
NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3"
inherit flag-o-matic toolchain-funcs

DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS"
SRC_URI="https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_124_RTM/src/nss-3.124.tar.gz -> nss-3.124.tar.gz"
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0"
KEYWORDS="*"
IUSE="+utils"
RDEPEND="app-admin/whip
sys-apps/whip-catalog
dev-libs/nspr
dev-db/sqlite
sys-libs/zlib
virtual/pkgconfig

"
DEPEND="${RDEPEND}
"
S="${WORKDIR}/${P}/${PN}"
nssarch() {
local t=${1:-${CHOST}}
case ${t} in
aarch64*) echo "aarch64" ;;
x86_64*) echo "x86_64" ;;
i?86*) echo "i686" ;;
*86*-pc-solaris2*) echo "i86pc" ;;
hppa*) echo "parisc" ;;
*) tc-arch ${t} ;;
esac
}
src_prepare() {
default
sed -e "/print('-Werror')/d" -i -e "s|'-Werror',||g" \
coreconf/werror.py
sed -i -e 's|gtests$||g' manifest.mn
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
# 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
strip-flags
}
src_compile() {
# 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=""
# Fix build failure on arm64
export NS_USE_GCC=1
# Detect compiler type and set proper environment value
if tc-is-gcc; then
export CC_IS_GCC=1
elif tc-is-clang; then
export CC_IS_CLANG=1
fi
local d
local ostest="$(nssarch)"
if use arm ; then
ostest=$(tc-arch ${CHOST})
export USE_N32=1
else
export USE_64=1
fi
# Build the host tools first.
NSPR_LIB_DIR="${T}/fakedir" \
emake -j1 -C coreconf
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="${ostest}"
done
}
src_install() {
local nss_vmajor=$(awk '/#define.*NSS_VMAJOR/ {print $3}' lib/nss/nss.h)
local nss_vminor=$(awk '/#define.*NSS_VMINOR/ {print $3}' lib/nss/nss.h)
local nss_vpatch=$(awk '/#define.*NSS_VPATCH/ {print $3}' lib/nss/nss.h)
local nspr_version="$(pkg-config --modversion nspr)"
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
#
# pkgconfig files
dodir /usr/$(get_libdir)/pkgconfig
local _pc; for _pc in nss.pc nss-util.pc nss-softokn.pc; do
sed "${FILESDIR}"/$_pc.in \
-e "s,%libdir%,/usr/$(get_libdir),g" \
-e "s,%prefix%,/usr,g" \
-e "s,%exec_prefix%,/usr/bin,g" \
-e "s,%includedir%,/usr/include/nss,g" \
-e "s,%SOFTOKEN_VERSION%,${PV},g" \
-e "s,%NSPR_VERSION%,$nspr_version,g" \
-e "s,%NSS_VERSION%,${PV}r,g" \
-e "s,%NSSUTIL_VERSION%,${PV},g" \
> "${ED}"/usr/$(get_libdir)/pkgconfig/$_pc
done
dosym /usr/$(get_libdir)/pkgconfig/nss.pc /usr/$(get_libdir)/pkgconfig/mozilla-nss.pc
# nss-config
dodir /usr/bin
sed "${FILESDIR}"/nss-config.in \
-e "s,@libdir@,/usr/$(get_libdir),g" \
-e "s,@prefix@,/usr/bin,g" \
-e "s,@exec_prefix@,/usr/bin,g" \
-e "s,@includedir@,/usr/include/nss,g" \
-e "s,@MOD_MAJOR_VERSION@,${nss_vmajor},g" \
-e "s,@MOD_MINOR_VERSION@,${nss_vminor},g" \
-e "s,@MOD_PATCH_VERSION@,${nss_vpatch},g" \
> "${ED}"/usr/bin/nss-config
chmod 755 "${ED}"/usr/bin/nss-config
# 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 use utils; then
nssutils+=(
addbuiltin
atob
baddbdir
btoa
certutil
cmsutil
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
# 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() {
whip h nss.postinst
}
pkg_postrm() {
whip h nss.postrm
}


# vim: filetype=ebuild