From a7e4c533892b34a31d08c12438b5e99be1ff70f6 Mon Sep 17 00:00:00 2001 From: Daniele Rondina Date: Sat, 30 Aug 2025 09:37:03 +0000 Subject: [PATCH] Bump dev-libs/nss-3.115.1 --- dev-libs/nss/Manifest | 1 + dev-libs/nss/files/gyp-config.patch | 49 +++++++ dev-libs/nss/files/nss-config.in | 145 +++++++++++++++++++ dev-libs/nss/files/nss-softokn.pc.in | 11 ++ dev-libs/nss/files/nss-util.pc.in | 11 ++ dev-libs/nss/files/nss.pc.in | 11 ++ dev-libs/nss/nss-3.115.1.ebuild | 203 +++++++++++++++++++++++++++ 7 files changed, 431 insertions(+) create mode 100644 dev-libs/nss/files/gyp-config.patch create mode 100644 dev-libs/nss/files/nss-config.in create mode 100644 dev-libs/nss/files/nss-softokn.pc.in create mode 100644 dev-libs/nss/files/nss-util.pc.in create mode 100644 dev-libs/nss/files/nss.pc.in create mode 100644 dev-libs/nss/nss-3.115.1.ebuild diff --git a/dev-libs/nss/Manifest b/dev-libs/nss/Manifest index 97ee3b7496..6f889253cc 100644 --- a/dev-libs/nss/Manifest +++ b/dev-libs/nss/Manifest @@ -1 +1,2 @@ DIST nss-3.109.tar.gz 76610986 BLAKE2B 0d7b3e7395c7b22a5cea0355e00131c9f2eada9fd3ce3ff23a29697b4a21f09178ca625a6e1b1847c3e869628e5ca3948ad91ae6e664130f3ac6bfee1368d91e SHA512 eb7997004db8046c985372d1b05a4e7563584fb0febaf05abd26cd223e23dc2e84099c76ca97596d67a8c4bab9fd9df5999e14a7242704f27b8a80710cc135be +DIST nss-3.115.1.tar.gz 76656855 BLAKE2B ce0ddb2eb17b079131210bbf82c6d614b5efe0b6d6fefb88461ae59518afd870011f278480ec14cbaafab88d715833acb3ae4e56347fb413516d5fceb547c9e1 SHA512 c75ab9bdddeda40d0e50837f47539b370b342216aeabf82614285485b50461600623e9a506e6026cf0928f6b0ada05a02ac1a060fca7938049b3471ac418a008 diff --git a/dev-libs/nss/files/gyp-config.patch b/dev-libs/nss/files/gyp-config.patch new file mode 100644 index 0000000000..552dd5acd9 --- /dev/null +++ b/dev-libs/nss/files/gyp-config.patch @@ -0,0 +1,49 @@ +diff --git a/coreconf/config.gypi b/coreconf/config.gypi +index 6900f79..9188d53 100644 +--- a/coreconf/config.gypi ++++ b/coreconf/config.gypi +@@ -35,7 +35,7 @@ + ['OS=="mac"', { + 'use_system_sqlite%': 1, + },{ +- 'use_system_sqlite%': 0, ++ 'use_system_sqlite%': 1, + }], + ['OS=="mac" or OS=="ios" or OS=="solaris" or OS=="win"', { + 'cc_use_gnu_ld%': 0, +@@ -102,8 +102,8 @@ + 'disable_intel_hw_sha%': 0, + 'disable_tests%': 0, + 'disable_chachapoly%': 0, +- 'disable_deprecated_seed%': 0, +- 'disable_deprecated_rc2%': 0, ++ 'disable_deprecated_seed%': 1, ++ 'disable_deprecated_rc2%': 1, + 'disable_dbm%': 1, + 'disable_libpkix%': 1, + 'disable_werror%': 0, +diff --git a/nss.gyp b/nss.gyp +index 2cf713a..10c9b63 100644 +--- a/nss.gyp ++++ b/nss.gyp +@@ -210,20 +210,6 @@ + 'cmd/vfychain/vfychain.gyp:vfychain', + 'cmd/vfyserv/vfyserv.gyp:vfyserv', + 'cmd/mpitests/mpitests.gyp:mpi_tests', +- 'gtests/base_gtest/base_gtest.gyp:base_gtest', +- 'gtests/certhigh_gtest/certhigh_gtest.gyp:certhigh_gtest', +- 'gtests/cryptohi_gtest/cryptohi_gtest.gyp:cryptohi_gtest', +- 'gtests/der_gtest/der_gtest.gyp:der_gtest', +- 'gtests/certdb_gtest/certdb_gtest.gyp:certdb_gtest', +- 'gtests/freebl_gtest/freebl_gtest.gyp:freebl_gtest', +- 'gtests/mozpkix_gtest/mozpkix_gtest.gyp:mozpkix_gtest', +- 'gtests/nss_bogo_shim/nss_bogo_shim.gyp:nss_bogo_shim', +- 'gtests/pkcs11testmodule/pkcs11testmodule.gyp:pkcs11testmodule', +- 'gtests/pk11_gtest/pk11_gtest.gyp:pk11_gtest', +- 'gtests/smime_gtest/smime_gtest.gyp:smime_gtest', +- 'gtests/softoken_gtest/softoken_gtest.gyp:softoken_gtest', +- 'gtests/ssl_gtest/ssl_gtest.gyp:ssl_gtest', +- 'gtests/util_gtest/util_gtest.gyp:util_gtest', + 'lib/ckfw/builtins/testlib/builtins-testlib.gyp:nssckbi-testlib', + ], + 'conditions': [ diff --git a/dev-libs/nss/files/nss-config.in b/dev-libs/nss/files/nss-config.in new file mode 100644 index 0000000000..f8f893e71a --- /dev/null +++ b/dev-libs/nss/files/nss-config.in @@ -0,0 +1,145 @@ +#!/bin/sh + +prefix=@prefix@ + +major_version=@MOD_MAJOR_VERSION@ +minor_version=@MOD_MINOR_VERSION@ +patch_version=@MOD_PATCH_VERSION@ + +usage() +{ + cat <&2 +fi + +lib_ssl=yes +lib_smime=yes +lib_nss=yes +lib_nssutil=yes + +while test $# -gt 0; do + case "$1" in + -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + case $1 in + --prefix=*) + prefix=$optarg + ;; + --prefix) + echo_prefix=yes + ;; + --exec-prefix=*) + exec_prefix=$optarg + ;; + --exec-prefix) + echo_exec_prefix=yes + ;; + --includedir=*) + includedir=$optarg + ;; + --includedir) + echo_includedir=yes + ;; + --libdir=*) + libdir=$optarg + ;; + --libdir) + echo_libdir=yes + ;; + --version) + echo ${major_version}.${minor_version}.${patch_version} + ;; + --cflags) + echo_cflags=yes + ;; + --libs) + echo_libs=yes + ;; + ssl) + lib_ssl=yes + ;; + smime) + lib_smime=yes + ;; + nss) + lib_nss=yes + ;; + nssutil) + lib_nssutil=yes + ;; + *) + usage 1 1>&2 + ;; + esac + shift +done + +# Set variables that may be dependent upon other variables +if test -z "$exec_prefix"; then + exec_prefix=`pkg-config --variable=exec_prefix nss` +fi +if test -z "$includedir"; then + includedir=`pkg-config --variable=includedir nss` +fi +if test -z "$libdir"; then + libdir=`pkg-config --variable=libdir nss` +fi + +if test "$echo_prefix" = "yes"; then + echo $prefix +fi + +if test "$echo_exec_prefix" = "yes"; then + echo $exec_prefix +fi + +if test "$echo_includedir" = "yes"; then + echo $includedir +fi + +if test "$echo_libdir" = "yes"; then + echo $libdir +fi + +if test "$echo_cflags" = "yes"; then + echo -I$includedir +fi + +if test "$echo_libs" = "yes"; then + libdirs="-Wl,-rpath-link,$libdir -L$libdir" + if test -n "$lib_ssl"; then + libdirs="$libdirs -lssl${major_version}" + fi + if test -n "$lib_smime"; then + libdirs="$libdirs -lsmime${major_version}" + fi + if test -n "$lib_nss"; then + libdirs="$libdirs -lnss${major_version}" + fi + if test -n "$lib_nssutil"; then + libdirs="$libdirs -lnssutil${major_version}" + fi + echo $libdirs +fi + diff --git a/dev-libs/nss/files/nss-softokn.pc.in b/dev-libs/nss/files/nss-softokn.pc.in new file mode 100644 index 0000000000..50485ac13f --- /dev/null +++ b/dev-libs/nss/files/nss-softokn.pc.in @@ -0,0 +1,11 @@ +prefix=%prefix% +exec_prefix=%exec_prefix% +libdir=%libdir% +includedir=%includedir% + +Name: NSS-SOFTOKN +Description: Network Security Services Softoken PKCS #11 Module +Version: %SOFTOKEN_VERSION% +Requires: nspr >= %NSPR_VERSION%, nss-util >= %NSSUTIL_VERSION% +Libs: -lfreebl3 -lnssdbm3 -lsoftokn3 +Cflags: -I${includedir}/private diff --git a/dev-libs/nss/files/nss-util.pc.in b/dev-libs/nss/files/nss-util.pc.in new file mode 100644 index 0000000000..1310248e94 --- /dev/null +++ b/dev-libs/nss/files/nss-util.pc.in @@ -0,0 +1,11 @@ +prefix=%prefix% +exec_prefix=%exec_prefix% +libdir=%libdir% +includedir=%includedir% + +Name: NSS-UTIL +Description: Network Security Services Utility Library +Version: %NSSUTIL_VERSION% +Requires: nspr >= %NSPR_VERSION% +Libs: -L${libdir} -lnssutil3 +Cflags: -I${includedir} diff --git a/dev-libs/nss/files/nss.pc.in b/dev-libs/nss/files/nss.pc.in new file mode 100644 index 0000000000..d47b9e1469 --- /dev/null +++ b/dev-libs/nss/files/nss.pc.in @@ -0,0 +1,11 @@ +prefix=%prefix% +exec_prefix=%exec_prefix% +libdir=%libdir% +includedir=%includedir% + +Name: NSS +Description: Network Security Services +Version: %NSS_VERSION% +Requires: nspr >= %NSPR_VERSION% +Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3 +Cflags: -I${includedir} diff --git a/dev-libs/nss/nss-3.115.1.ebuild b/dev-libs/nss/nss-3.115.1.ebuild new file mode 100644 index 0000000000..c9e9e30ca3 --- /dev/null +++ b/dev-libs/nss/nss-3.115.1.ebuild @@ -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_115_1_RTM/src/nss-3.115.1.tar.gz -> nss-3.115.1.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