From a61facf4a20689ce8a6db6c30ece275ceb98f47a Mon Sep 17 00:00:00 2001 From: Ralf Hubert Date: Mon, 21 Sep 2026 12:58:57 +0000 Subject: [PATCH 1/2] add NetworkSecurityServices (NSS) v3.128 Includes nspr v4.40, which - according to it's manpage - is a legacy library that shouldn't be used for new projects, only maintained because it's a dependency of NSS. The NSS Makefile expects the sources in a nspr directory. --- recipes/net/nss.yaml | 104 ++++++++++++++++++++++++++++++++ tests/buildall/recipes/all.yaml | 1 + 2 files changed, 105 insertions(+) create mode 100644 recipes/net/nss.yaml diff --git a/recipes/net/nss.yaml b/recipes/net/nss.yaml new file mode 100644 index 00000000..e6d6ad78 --- /dev/null +++ b/recipes/net/nss.yaml @@ -0,0 +1,104 @@ +inherit: [cpackage, make, install] + +metaEnvironment: + PKG_VERSION: "3.129" + PKG_LICENSE: "MLP-2.0" + +depends: + - libs::zlib-dev + - use: [] + depends: + - libs::zlib-tgt + +checkoutSCM: + - scm: url + url: "https://archive.mozilla.org/pub/security/nss/releases/\ + NSS_$(subst,.,_,${PKG_VERSION})_RTM/src/nss-${PKG_VERSION}.tar.gz" + digestSHA256: 38baa3b0a18a3f674843473b549753c96419a0151abd1e7a9b214ce0493d0785 + stripComponents: 1 + + - scm: url + url: https://archive.mozilla.org/pub/nspr/releases/v4.40/src/nspr-4.40.tar.gz + digestSHA256: c0c1884c627f3db7a783f7c7314c695226b2043696791d15519e7e0578c19bdc + stripComponents: 2 + dir: nspr + +buildVars: [AR, CC, LD, CFLAGS] +buildSetup: | + export XCFLAGS="${CPPFLAGS}" +buildTools: [perl] +buildScript: | + rsync -a --delete --exclude "*.OBJ" $1/ . + + mkdir bin && pushd bin + ln -s $(which $AR) ar + popd + export PATH=$(pwd)/bin:${PATH} + + pushd nss + # parallel build sometimes fails with linker errors like + # undefined reference to `libcrux_ml_kem... + makeSequential USE_64=1 BUILD_OPT=1 \ + NSS_ENABLE_WERROR=0 \ + NSS_DISABLE_GTESTS=1 \ + NSS_DISABLE_NSPR_TESTS=1 \ + USE_SYSTEM_ZLIB=1 \ + ZLIB_LIBS=-lz \ + nss_build_all + popd + + mkdir -p install + pushd dist + install -v -m755 -d ../install/usr/lib + install -v -m755 Linux*/lib/*.so ../install/usr/lib + install -v -m755 -d ../install/usr/include/nss + cp -v -RL {public,private}/nss/* ../install/usr/include/nss + cp -v -RL Linux*/include/* ../install/usr/include/ + + install -v -m755 -d ../install/usr/bin + install -v -m755 Linux*/bin/{certutil,pk12util} ../install/usr/bin + popd + + NSS_VERSION=$(grep "NSS_VERSION" install/usr/include/nss/nss.h | awk '{print $3}') + NSS_MAJOR_VERSION=$(grep "NSS_VMAJOR" install/usr/include/nss/nss.h | awk '{print $3}') + NSS_MINOR_VERSION=$(grep "NSS_VMINOR" install/usr/include/nss/nss.h | awk '{print $3}') + NSS_PATCH_VERSION=$(grep "NSS_VPATCH" install/usr/include/nss/nss.h | awk '{print $3}') + NSPR_VERSION=$(head -n1 nss/automation/release/nspr-version.txt) + + mkdir -p install/usr/lib/pkgconfig + sed -e "s,%prefix%,/usr/," \ + -e "s,%exec_prefix%,\${prefix}," \ + -e "s,%libdir%,\${prefix}/lib," \ + -e "s,%includedir%,\${prefix}/include/nss," \ + -e "s,%NSS_VERSION%,${NSS_VERSION},g" \ + -e "s,%NSPR_VERSION%,${NSPR_VERSION}," \ + nss/pkg/pkg-config/nss.pc.in > install/usr/lib/pkgconfig/nss.pc + chmod 0644 install/usr/lib/pkgconfig/nss.pc + + mkdir -p install/usr/bin + sed -e "s,@prefix@,/usr," \ + -e "s,@MOD_MAJOR_VERSION@,${NSS_MAJOR_VERSION}," \ + -e "s,@MOD_MINOR_VERSION@,${NSS_MINOR_VERSION}," \ + -e "s,@MOD_PATCH_VERSION@,${NSS_PATCH_VERSION}," \ + nss/pkg/pkg-config/nss-config.in > install/usr/bin/nss-config + chmod 0755 install/usr/bin/nss-config + + cp nspr/Linux*/config/nspr.pc install/usr/lib/pkgconfig/ + cp nspr/Linux*/config/nspr-config install/usr/bin/ + +multiPackage: + "": + depends: + - use: [] + name: net::nss-tgt + provideDeps: ['*-tgt'] + packageScript: | + installPackageBin $1/install/ + dev: + provideDeps: ['*-dev'] + packageScript: | + installPackageDev $1/install/ + tgt: + provideDeps: ['*-tgt'] + packageScript: | + installPackageLib $1/install/ diff --git a/tests/buildall/recipes/all.yaml b/tests/buildall/recipes/all.yaml index a8d1b87f..ac28e1eb 100644 --- a/tests/buildall/recipes/all.yaml +++ b/tests/buildall/recipes/all.yaml @@ -149,6 +149,7 @@ depends: - net::net-tools - net::nftables - net::nmap + - net::nss - net::ntp - net::openldap - net::openssh From 036bab121dab0d30d26cdc5c12c7e20a87f604e7 Mon Sep 17 00:00:00 2001 From: Ralf Hubert Date: Mon, 21 Sep 2026 12:58:18 +0000 Subject: [PATCH 2/2] add libcacard v2.8.2 --- recipes/libs/libcacard.yaml | 42 +++++++++++++++++++++++++++++++++ tests/buildall/recipes/all.yaml | 1 + 2 files changed, 43 insertions(+) create mode 100644 recipes/libs/libcacard.yaml diff --git a/recipes/libs/libcacard.yaml b/recipes/libs/libcacard.yaml new file mode 100644 index 00000000..3c3f2c30 --- /dev/null +++ b/recipes/libs/libcacard.yaml @@ -0,0 +1,42 @@ +inherit: [meson, cmake] + +metaEnvironment: + PKG_LICENSE: "LGPL-2.1-or-later" + PKG_VERSION: "2.8.2" + +depends: + - libs::glib-dev + - net::nss-dev + - use: [] + depends: + - libs::glib-tgt + - net::nss-tgt + +checkoutSCM: + scm: url + url: "https://gitlab.freedesktop.org/-/project/58/uploads/\ + af66d0795031498878fa243f8f30b7c5/libcacard-${PKG_VERSION}.tar.xz" + stripComponents: 1 + digestSHA256: 45fc28a6ff3c7a359d4448132ca190f0a9c760540c445dba4597a5b71de40f68 + +checkoutVars: [PKG_VERSION] +checkoutDeterministic: True +checkoutScript: | + # add .tarball-version file if it doesn't exist (e.g. git checkouts). + # otherwise the build fails. + if [ ! -e .tarball-version ]; then + echo "$PKG_VERSION" > .tarball-version + fi + +buildScript: | + mesonBuild $1 + +multiPackage: + dev: + provideDeps: ['*-dev'] + packageScript: | + mesonPackageDev + tgt: + provideDeps: ['*-tgt'] + packageScript: | + mesonPackageTgt diff --git a/tests/buildall/recipes/all.yaml b/tests/buildall/recipes/all.yaml index ac28e1eb..e9344f50 100644 --- a/tests/buildall/recipes/all.yaml +++ b/tests/buildall/recipes/all.yaml @@ -35,6 +35,7 @@ depends: - libs::alsa-lib-tgt - libs::appstream-tgt - libs::libassuan-tgt + - libs::libcacard-tgt - libs::libksba-tgt - libs::bayer2rgb-tgt - libs::botan-tgt