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.120.1.tar.gz 77635792 BLAKE2B 4a53d3d006b73ff3131119bf1189bd2dc164af5ae91bd610b121f872ea9afad3681e95a19ecb9eb25e92dc15c056088dbdd89c0c2de9aa44cc6174daac261fb7 SHA512 01514f7d6d0778450f65af6f6770d6f945a8f6b625a5db1f0625aa9763e85b68d0fd1bd17da4f11d70bfacb16df013efabbc045a79a99cf133a91492ce0a189e
DIST nss-3.121.tar.gz 77644546 BLAKE2B 972eedd73c46655a561956ac1a38814d96ce81767392532ecf42fe143f6f256a25a640d3b4b4829f4a7553d6d1961fc3e0279e740ca35d54ab6582742788cc31 SHA512 799cfb07bb806d3ab2786f7f1e88aa20ad490a0021a931b9382c08b08b6e6728367768335b05e15229f134275ee27ff153afaad78f07b394ef4c0b0e554e130c
DIST nss-3.122.tar.gz 77654239 BLAKE2B a34de23e316cff66f989074c91b6a33788db7fc21bbeadafeb76001aa198dbaf024d33845bbee2c319f5dc65850f0cd6a83cdd50419d2dead6b5ffc25484c03d SHA512 53847c2de0e4608b387d5688ecf005a2a78da67408bda31f522539306816e25580d6046656cd5bb7fb9642feb625a904a17d3102573be96a9fd8b46e14037ff7
DIST nss-3.123.tar.gz 77762089 BLAKE2B 978c07ecdda3d2eca1670215943583c6bc061c5d2bc9b107eb68c1fd5fddd933d685b110b9dcd0e3e648069d71afc21d9ca4e3bd2b9f164b206845c42117a911 SHA512 99675ce3725c4b9cb84b776b21626c2aa66098aeb6091616de1499bd529fd521b29ace027af4722415f928fa16369e314872fe563243eb27c8e5a454f350db8f
199 changes: 199 additions & 0 deletions dev-libs/nss/nss-3.123.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
# 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_123_RTM/src/nss-3.123.tar.gz -> nss-3.123.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}"
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="x86_64"
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