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,2 +1,3 @@
DIST nss-3.109.tar.gz 76610986 BLAKE2B 0d7b3e7395c7b22a5cea0355e00131c9f2eada9fd3ce3ff23a29697b4a21f09178ca625a6e1b1847c3e869628e5ca3948ad91ae6e664130f3ac6bfee1368d91e SHA512 eb7997004db8046c985372d1b05a4e7563584fb0febaf05abd26cd223e23dc2e84099c76ca97596d67a8c4bab9fd9df5999e14a7242704f27b8a80710cc135be
DIST nss-3.115.1.tar.gz 76656855 BLAKE2B ce0ddb2eb17b079131210bbf82c6d614b5efe0b6d6fefb88461ae59518afd870011f278480ec14cbaafab88d715833acb3ae4e56347fb413516d5fceb547c9e1 SHA512 c75ab9bdddeda40d0e50837f47539b370b342216aeabf82614285485b50461600623e9a506e6026cf0928f6b0ada05a02ac1a060fca7938049b3471ac418a008
DIST nss-3.117.tar.gz 76684970 BLAKE2B cf078cb1d48fbbf39e2661b6cdb9d610db3d0c13bcec68bacaf7cce8165cbf91229f9931008d1bfd28a561cc1fca994fbf3a174ddb7de2cf10ad4208926764a0 SHA512 12e6eaa67d290fc8146dee2d92017fd481e4969d556870ec4200aab8d2590efe63686ca9cca5cc1b95c7078cc0ab7f1e27e77de5a1a2b75c4f1f3b4b65c700fe
203 changes: 203 additions & 0 deletions dev-libs/nss/nss-3.117.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
# 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_117_RTM/src/nss-3.117.tar.gz -> nss-3.117.tar.gz"
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0"
KEYWORDS="*"
PATCHES=(
"${FILESDIR}/gyp-config.patch"
)
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
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
# 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