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.121.tar.gz 77644546 BLAKE2B 972eedd73c46655a561956ac1a38814d96ce81767392532ecf42fe143f6f256a25a640d3b4b4829f4a7553d6d1961fc3e0279e740ca35d54ab6582742788cc31 SHA512 799cfb07bb806d3ab2786f7f1e88aa20ad490a0021a931b9382c08b08b6e6728367768335b05e15229f134275ee27ff153afaad78f07b394ef4c0b0e554e130c
DIST nss-3.125.tar.gz 78567913 BLAKE2B 14d4a710464f9889a29441fba61556aab1b4074c284e21312272db6c43649398269235e9a3398b17052344dc535f36477d090a41bbb803de50052817471a2444 SHA512 8051cd13a1963d1a1b019e8aef6255fa6780170ea9d435b13ce81224c6e646968608dea7426c0903a4b83090acc25c06eba021b908981b65dca9748afc5471c6
DIST nss-3.126.tar.gz 78769092 BLAKE2B c0afe01a87593768f10f47bf50340fe6337d3ddcfed10706379d150e7b42b0c8aab146b09b2fead172687bc3481db83f5611014600ddeefe607ed79e5eca08b9 SHA512 58d3b77e449ce4d3408051f1cf08ee1b7b0d86f8382d5d2103acc097de3503345e78edaf06af824122efe8cdb20eca7c0f295692aedbf5a14676411be27624b9
DIST nss-3.127.tar.gz 78736984 BLAKE2B b8c8261f53fad16b1eae94a683e94c5f914bc507638e247ed2ba82c5e91dc6f051e1122105de7c341bd345df576907bec55de50ac345d22ed713bca684851258 SHA512 c5293a6b68201a7d71b635c77cfdad7f032fb57fdd341ed4f2c702ed7f93795485be16f0f6994e079b5234fe362a83c3b82dae1bc335e42f0ad618d2586f23dd
229 changes: 229 additions & 0 deletions dev-libs/nss/nss-3.127.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,229 @@
# 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_127_RTM/src/nss-3.127.tar.gz -> nss-3.127.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 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() {
LIBS="/usr/$(get_libdir)" whip h nss.postinst || die "Failed to run whip h nss.postinst"
}
pkg_postrm() {
LIBS="/usr/$(get_libdir)" whip h nss.postrm || die "Failed to run whip h nss.postrm"
}


# vim: filetype=ebuild