diff --git a/security/nss/Makefile b/security/nss/Makefile index a7f91aeda624..02f57651ecbe 100644 --- a/security/nss/Makefile +++ b/security/nss/Makefile @@ -1,123 +1,121 @@ PORTNAME= nss DISTVERSION= 3.123.1 CATEGORIES= security MASTER_SITES= MOZILLA/security/${PORTNAME}/releases/${DISTNAME:tu:C/[-.]/_/g}_RTM/src MAINTAINER= gecko@FreeBSD.org COMMENT= Libraries to support development of security-enabled applications WWW= https://firefox-source-docs.mozilla.org/security/nss/index.html LICENSE= MPL20 LICENSE_FILE= ${WRKSRC}/COPYING -BUILD_DEPENDS= ${BUILD_DEPENDS_${ARCH}} -BUILD_DEPENDS_powerpc64le= as:devel/binutils LIB_DEPENDS= libnspr4.so:devel/nspr \ libsqlite3.so:databases/sqlite3 TEST_DEPENDS= bash:shells/bash USES= cpe gmake perl5 WRKSRC_SUBDIR= nss USE_LDCONFIG= yes CPE_VENDOR= mozilla CPE_PRODUCT= network_security_services USE_PERL5= build MAKE_ENV= NSPR_LIB_DIR="${LOCALBASE}/lib" \ SQLITE_INCLUDE_DIR="${LOCALBASE}/include" \ FREEBL_LOWHASH=1 \ NSS_ENABLE_WERROR=0 \ NSS_DISABLE_GTESTS=1 \ NSS_USE_SYSTEM_SQLITE=1 CFLAGS+= -iquote ./mpi -I${LOCALBASE}/include/nspr -Wno-error=unused-function SUB_FILES= nss-config nss.pc SUB_LIST= PORTVERSION=${PORTVERSION} DIST= ${WRKSRC:H}/dist EXTRACT_AFTER_ARGS=--exclude */lib/zlib --exclude */lib/dbm --exclude */lib/sqlite INSTALL_BINS= certutil cmsutil crlutil derdump makepqg \ mangle modutil ocspclnt oidcalc p7content p7env p7sign \ p7verify pk12util rsaperf shlibsign signtool signver \ ssltap strsclnt symkeyutil vfychain vfyserv OPTIONS_DEFINE= DEBUG OPTIONS_DEFINE_powerpc= VSX OPTIONS_DEFINE_powerpc64= VSX VSX_CFLAGS= -DUSE_PPC_CRYPTO VSX_DESC= Use VSX optimized routines (POWER8 or newer) TESTING_UNSAFE= Fatal DOMSUF env. variable is not defined .include .if ! ${PORT_OPTIONS:MDEBUG} MAKE_ENV+= BUILD_OPT=1 BINS= ${DIST}/${OPSYS}${OSREL}_OPT.OBJ .else BINS= ${DIST}/${OPSYS}${OSREL}_DBG.OBJ .endif .if ${ARCH} == armv6 MAKE_ENV+= NSS_DISABLE_ARM32_NEON=1 .endif .if ${ARCH} == powerpc64 || ${ARCH} == powerpc EXTRA_PATCHES= ${FILESDIR}/${ARCH}-lib_freebl_scripts_gen.sh USES+= compiler:c++11-lang # -mcrypto -mvsx .if ! ${PORT_OPTIONS:MVSX} MAKE_ENV+= NSS_DISABLE_CRYPTO_VSX=1 .endif .endif .if ${OPSYS} == FreeBSD && ${ARCH} == amd64 USE_BINUTILS= # intel-gcm.s CC+= -B${LOCALBASE}/bin .endif do-test: cd ${WRKSRC}/tests; \ ${SETENV} PATH="${BINS}/bin:${PATH}" \ LD_LIBRARY_PATH="${BINS}/lib" \ ${MAKE_ENV} \ bash ./all.sh @if ${GREP} -Fh '>Failed<' \ ${WRKSRC:H}/tests_results/security/*/results.html; then \ echo "Some tests have failed. Let ${MAINTAINER} know."; \ exit 1; \ else \ echo "All tests succeeded. Good news."; \ fi post-patch: @${REINPLACE_CMD} '/NSS_DEFAULT_SYSTEM/s,/etc,${PREFIX}&,' \ ${WRKSRC}/lib/sysinit/nsssysinit.c @cd ${WRKSRC} && \ ${FIND} . -name "*.c" -o -name "*.h" | \ ${XARGS} ${REINPLACE_CMD} -e 's|"nspr.h"||' .if ${ARCH:Mpowerpc*} pre-build: @cd ${WRKSRC}/lib/freebl/scripts && ./gen.sh .endif do-install: ${MKDIR} ${STAGEDIR}${PREFIX}/include/nss ${STAGEDIR}${PREFIX}/lib ${FIND} ${DIST}/public/nss -type l \ -exec ${INSTALL_DATA} {} ${STAGEDIR}${PREFIX}/include/nss \; ${INSTALL_LIB} ${BINS}/lib/*.so \ ${STAGEDIR}${PREFIX}/lib/ ${INSTALL_DATA} ${BINS}/lib/libcrmf.a \ ${STAGEDIR}${PREFIX}/lib/ .for bin in ${INSTALL_BINS} ${INSTALL_PROGRAM} ${BINS}/bin/${bin} \ ${STAGEDIR}${PREFIX}/bin .endfor ${INSTALL_SCRIPT} ${WRKDIR}/nss-config ${STAGEDIR}${PREFIX}/bin ${INSTALL_DATA} ${WRKDIR}/nss.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig .include diff --git a/security/nss/files/patch-lib-freebl-Makefile b/security/nss/files/patch-lib-freebl-Makefile index d58a47f8fbef..3d4f4d308d80 100644 --- a/security/nss/files/patch-lib-freebl-Makefile +++ b/security/nss/files/patch-lib-freebl-Makefile @@ -1,41 +1,40 @@ commit 70ab2cd108663a1c9c31dd17a43dd58c453fe900 Author: Christoph Moench-Tegeder Date: Fri Feb 20 21:15:44 2026 +0100 powerpc64le support for FreeBSD Adapted from: commit 192a67a0d79f89529eaac61ea9e865b7cb32365e Author: Piotr Kubaj Date: Sat May 15 02:45:46 2021 +0000 security/nss: fix build on powerpc64le diff --git lib/freebl/Makefile lib/freebl/Makefile index 9286e436f..3509a0656 100644 --- lib/freebl/Makefile +++ lib/freebl/Makefile @@ -263,7 +263,7 @@ else ifeq ($(CPU_ARCH),x86) endif endif # Darwin -ifeq ($(OS_TARGET),Linux) +ifeq (,$(filter-out Linux FreeBSD, $(OS_TARGET))) ifeq ($(CPU_ARCH),x86_64) # Lower case s on mpi_amd64_common due to make implicit rules. ASFILES = arcfour-amd64-gas.s mpi_amd64_common.s -@@ -297,11 +297,12 @@ ifdef USE_64 +@@ -297,11 +297,11 @@ ifdef USE_64 PPC_ABI := $(shell $(CC) -dM -E - < /dev/null | awk '$$2 == "_CALL_ELF" {print $$3}') ifeq ($(PPC_ABI),2) ASFILES += sha512-p8.s - ifeq ($(OS_TEST),ppc64le) + ifeq (,$(filter-out powerpc64le ppc64le, $(OS_TEST))) EXTRA_SRCS += chacha20poly1305-ppc.c ppc-gcm-wrap.c ASFILES += chacha20-ppc64le.s ppc-gcm.s DEFINES += -DHAVE_PLATFORM_GCM - endif # ppc64le -+ ASFLAGS += -fno-integrated-as + endif # powerpc64le, ppc64le endif endif # USE_64 endif # ppc diff --git a/security/nss/files/patch-lib_freebl_ppc-gcm.s b/security/nss/files/patch-lib_freebl_ppc-gcm.s new file mode 100644 index 000000000000..e012be91d590 --- /dev/null +++ b/security/nss/files/patch-lib_freebl_ppc-gcm.s @@ -0,0 +1,44 @@ +--- lib/freebl/ppc-gcm.s.orig ++++ lib/freebl/ppc-gcm.s +@@ -639,13 +639,13 @@ + .endm + + # store non-volatile general registers +- std 31,-8(SP); +- std 30,-16(SP); +- std 29,-24(SP); +- std 28,-32(SP); +- std 27,-40(SP); +- std 26,-48(SP); +- std 25,-56(SP); ++ std 31,-8(1); ++ std 30,-16(1); ++ std 29,-24(1); ++ std 28,-32(1); ++ std 27,-40(1); ++ std 26,-48(1); ++ std 25,-56(1); + + # store non-volatile vector registers + addi 9, SP, -80 +@@ -1031,13 +1031,13 @@ + lvx 24, 0, 9 + + # restore non-volatile general registers +- ld 31,-8(SP); +- ld 30,-16(SP); +- ld 29,-24(SP); +- ld 28,-32(SP); +- ld 27,-40(SP); +- ld 26,-48(SP); +- ld 25,-56(SP); ++ ld 31,-8(1); ++ ld 30,-16(1); ++ ld 29,-24(1); ++ ld 28,-32(1); ++ ld 27,-40(1); ++ ld 26,-48(1); ++ ld 25,-56(1); + blr + .size ppc_aes_gcmCRYPT, . - ppc_aes_gcmCRYPT +