From 5de4457a5b25222c9f8ab7ecbfd80b292724f052 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Thu, 8 May 2025 17:15:36 +0300 Subject: [PATCH] Initial Commit --- pkg.info | 9 ++ source-files/nss.patch | 266 +++++++++++++++++++++++++++++++++++++++++ source.sh | 47 ++++++++ 3 files changed, 322 insertions(+) create mode 100644 pkg.info create mode 100644 source-files/nss.patch create mode 100644 source.sh diff --git a/pkg.info b/pkg.info new file mode 100644 index 0000000..d95f900 --- /dev/null +++ b/pkg.info @@ -0,0 +1,9 @@ +name: nss +description: Network Security Services +version: 3.110 +url: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS +license: MPL2 +architecture: any +depends: ["glibc","nspr","p11-kit","sqlite","zlib"] +make_depends: ["perl","python3"] +type: source diff --git a/source-files/nss.patch b/source-files/nss.patch new file mode 100644 index 0000000..009184f --- /dev/null +++ b/source-files/nss.patch @@ -0,0 +1,266 @@ +Submitted By: Xi Ruoyao +Date: 2020-08-22 +Initial Package Version: 3.12.4 +Upstream Status: Not applicable +Origin: Self, adjusted for nss-3.56. +Description: Adds auto-generated nss.pc and nss-config script, and + allows building without nspr in the source tree. + Minimum NSPR version is now read out from package, + instead of hardcoded value in the patch. + +diff --color -uNar nss-3.55.orig/nss/config/Makefile nss-3.55/nss/config/Makefile +--- nss-3.55.orig/nss/config/Makefile 1970-01-01 08:00:00.000000000 +0800 ++++ nss-3.55/nss/config/Makefile 2020-07-25 19:34:36.272982957 +0800 +@@ -0,0 +1,42 @@ ++CORE_DEPTH = .. ++DEPTH = .. ++ ++include $(CORE_DEPTH)/coreconf/config.mk ++ ++NSS_MAJOR_VERSION = `grep "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}'` ++NSS_MINOR_VERSION = `grep "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}'` ++NSS_PATCH_VERSION = `grep "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}'` ++NSS_NSPR_MINIMUM = `head -n1 ../automation/release/nspr-version.txt` ++PREFIX = /usr ++ ++all: export libs ++ ++export: ++ # Create the nss.pc file ++ mkdir -p $(DIST)/lib/pkgconfig ++ sed -e "s,@prefix@,$(PREFIX)," \ ++ -e "s,@exec_prefix@,\$${prefix}," \ ++ -e "s,@libdir@,\$${prefix}/lib," \ ++ -e "s,@includedir@,\$${prefix}/include/nss," \ ++ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \ ++ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \ ++ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ ++ -e "s,@NSS_NSPR_MINIMUM@,$(NSS_NSPR_MINIMUM)," \ ++ nss.pc.in > nss.pc ++ chmod 0644 nss.pc ++ ln -sf ../../../../nss/config/nss.pc $(DIST)/lib/pkgconfig ++ ++ # Create the nss-config script ++ mkdir -p $(DIST)/bin ++ sed -e "s,@prefix@,$(PREFIX)," \ ++ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \ ++ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \ ++ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ ++ nss-config.in > nss-config ++ chmod 0755 nss-config ++ ln -sf ../../../nss/config/nss-config $(DIST)/bin ++ ++libs: ++ ++dummy: all export libs ++ +diff --color -uNar nss-3.55.orig/nss/config/nss-config.in nss-3.55/nss/config/nss-config.in +--- nss-3.55.orig/nss/config/nss-config.in 1970-01-01 08:00:00.000000000 +0800 ++++ nss-3.55/nss/config/nss-config.in 2020-07-25 19:32:37.239032214 +0800 +@@ -0,0 +1,153 @@ ++#!/bin/sh ++ ++prefix=@prefix@ ++ ++major_version=@NSS_MAJOR_VERSION@ ++minor_version=@NSS_MINOR_VERSION@ ++patch_version=@NSS_PATCH_VERSION@ ++ ++usage() ++{ ++ cat <&2 ++fi ++ ++lib_nss=yes ++lib_nssutil=yes ++lib_smime=yes ++lib_ssl=yes ++lib_softokn=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 ++ ;; ++ nss) ++ lib_nss=yes ++ ;; ++ nssutil) ++ lib_nssutil=yes ++ ;; ++ smime) ++ lib_smime=yes ++ ;; ++ ssl) ++ lib_ssl=yes ++ ;; ++ softokn) ++ lib_softokn=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="-L$libdir" ++ if test -n "$lib_nss"; then ++ libdirs="$libdirs -lnss${major_version}" ++ fi ++ if test -n "$lib_nssutil"; then ++ libdirs="$libdirs -lnssutil${major_version}" ++ fi ++ if test -n "$lib_smime"; then ++ libdirs="$libdirs -lsmime${major_version}" ++ fi ++ if test -n "$lib_ssl"; then ++ libdirs="$libdirs -lssl${major_version}" ++ fi ++ if test -n "$lib_softokn"; then ++ libdirs="$libdirs -lsoftokn${major_version}" ++ fi ++ echo $libdirs ++fi ++ +diff --color -uNar nss-3.55.orig/nss/config/nss.pc.in nss-3.55/nss/config/nss.pc.in +--- nss-3.55.orig/nss/config/nss.pc.in 1970-01-01 08:00:00.000000000 +0800 ++++ nss-3.55/nss/config/nss.pc.in 2020-07-25 19:33:05.958889937 +0800 +@@ -0,0 +1,12 @@ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++Name: NSS ++Description: Network Security Services ++Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@ ++Requires: nspr >= @NSS_NSPR_MINIMUM@ ++Libs: -L@libdir@ -lnss@NSS_MAJOR_VERSION@ -lnssutil@NSS_MAJOR_VERSION@ -lsmime@NSS_MAJOR_VERSION@ -lssl@NSS_MAJOR_VERSION@ -lsoftokn@NSS_MAJOR_VERSION@ ++Cflags: -I${includedir} ++ +diff --color -uNar nss-3.55.orig/nss/Makefile nss-3.55/nss/Makefile +--- nss-3.55.orig/nss/Makefile 2020-07-24 23:10:32.000000000 +0800 ++++ nss-3.55/nss/Makefile 2020-07-25 19:32:37.239032214 +0800 +@@ -4,6 +4,8 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + ++default: nss_build_all ++ + ####################################################################### + # (1) Include initial platform-independent assignments (MANDATORY). # + ####################################################################### +@@ -48,12 +50,10 @@ + ####################################################################### + + nss_build_all: +- $(MAKE) build_nspr + $(MAKE) all + $(MAKE) latest + + nss_clean_all: +- $(MAKE) clobber_nspr + $(MAKE) clobber + + NSPR_CONFIG_STATUS = $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)/config.status +diff --color -uNar nss-3.55.orig/nss/manifest.mn nss-3.55/nss/manifest.mn +--- nss-3.55.orig/nss/manifest.mn 2020-07-24 23:10:32.000000000 +0800 ++++ nss-3.55/nss/manifest.mn 2020-07-25 19:32:37.240032237 +0800 +@@ -10,7 +10,7 @@ + + RELEASE = nss + +-DIRS = coreconf lib cmd cpputil gtests ++DIRS = coreconf lib cmd cpputil gtests config + + lib: coreconf + cmd: lib diff --git a/source.sh b/source.sh new file mode 100644 index 0000000..71d5917 --- /dev/null +++ b/source.sh @@ -0,0 +1,47 @@ +# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package +# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE +# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT + +DOWNLOAD="https://archive.mozilla.org/pub/security/nss/releases/NSS_${BPM_PKG_VERSION/./_}_RTM/src/nss-${BPM_PKG_VERSION}.tar.gz" +FILENAME="${DOWNLOAD##*/}" + +# The prepare function is executed in the root of the temp directory +# This function is used for downloading files and putting them into the correct location +prepare() { + wget "$DOWNLOAD" + tar -xvf "$FILENAME" --strip-components=1 -C "$BPM_SOURCE" + + cd "$BPM_SOURCE" + # Patch from Beyond Linux from Scratch + patch -Np1 -i ../nss.patch +} + +# The build function is executed in the source directory +# This function is used to compile the source code +build() { + cd nss + make BUILD_OPT=1 NSPR_INCLUDE_DIR=/usr/include/nspr USE_SYSTEM_ZLIB=1 ZLIB_LIBS=-lz NSS_ENABLE_WERROR=0 USE_64=1 NSS_USE_SYSTEM_SQLITE=1 +} + +# The check function is executed in the source directory +# This function is used to run tests to verify the package has been compiled correctly +check() { + cd nss/tests + HOST=localhost DOMSUF=localdomain ./all.sh +} + +# The package function is executed in the source directory +# This function is used to move the compiled files into the output directory +package() { + cd dist + + install -dm755 "$BPM_OUTPUT"/usr/{lib/pkgconfig,bin,include/nss} + install -Dm755 Linux*/lib/*.so "$BPM_OUTPUT"/usr/lib + install -Dm644 Linux*/lib/{*.chk,libcrmf.a} "$BPM_OUTPUT"/usr/lib + cp -v -RL {public,private}/nss/* "$BPM_OUTPUT"/usr/include/nss + install -Dm755 Linux*/bin/{certutil,nss-config,pk12util} "$BPM_OUTPUT"/usr/bin + install -Dm644 Linux*/lib/pkgconfig/nss.pc "$BPM_OUTPUT"/usr/lib/pkgconfig + + ln -sf pkcs11/p11-kit-trust.so "$BPM_OUTPUT"/usr/lib/p11-kit-trust.so + ln -sf p11-kit-trust.so "$BPM_OUTPUT"/usr/lib/libnssckbi.so +}