pkgsrc/devel/nss/Makefile
wiz 042b1f324e nss: update to 3.75.
Changes:
   - Bug 1749030 - This patch adds gcc-9 and gcc-10 to the CI.
   - Bug 1749794 - Make DottedOIDToCode.py compatible with python3.
   - Bug 1749475 - Avoid undefined shift in SSL_CERT_IS while fuzzing.
   - Bug 1748386 - Remove redundant key type check.
   - Bug 1749869 - Update ABI expectations to match ECH changes.
   - Bug 1748386 - Enable CKM_CHACHA20.
   - Bug 1747327 - check return on NSS_NoDB_Init and NSS_Shutdown.
   - Bug 1747310 - real move assignment operator.
   - Bug 1748245 - Run ECDSA test vectors from bltest as part of the CI tests.
   - Bug 1743302 - Add ECDSA test vectors to the bltest command line tool.
   - Bug 1747772 - Allow to build using clang's integrated assembler.
   - Bug 1321398 - Allow to override python for the build.
   - Bug 1747317 - test HKDF output rather than input.
   - Bug 1747316 - Use ASSERT macros to end failed tests early.
   - Bug 1747310 - move assignment operator for DataBuffer.
   - Bug 1712879 - Add test cases for ECH compression and unexpected extensions in SH.
   - Bug 1725938 - Update tests for ECH-13.
   - Bug 1725938 - Tidy up error handling.
   - Bug 1728281 - Add tests for ECH HRR Changes.
   - Bug 1728281 - Server only sends GREASE HRR extension if enabled by preference.
   - Bug 1725938 - Update generation of the Associated Data for ECH-13.
   - Bug 1712879 - When ECH is accepted, reject extensions which were only advertised in the Outer Client Hello.
   - Bug 1712879 - Allow for compressed, non-contiguous, extensions.
   - Bug 1712879 - Scramble the PSK extension in CHOuter.
   - Bug 1712647 - Split custom extension handling for ECH.
   - Bug 1728281 - Add ECH-13 HRR Handling.
   - Bug 1677181 - Client side ECH padding.
   - Bug 1725938 - Stricter ClientHelloInner Decompression.
   - Bug 1725938 - Remove ECH_inner extension, use new enum format.
   - Bug 1725938 - Update the version number for ECH-13 and adjust the ECHConfig size.
2022-02-03 23:37:26 +00:00

153 lines
5.2 KiB
Makefile

# $NetBSD: Makefile,v 1.221 2022/02/03 23:37:26 wiz Exp $
#
# release notes
# https://firefox-source-docs.mozilla.org/security/nss/releases/index.html
DISTNAME= nss-${NSS_RELEASE:S/.0$//}
NSS_RELEASE= 3.75.0
CATEGORIES= devel security
MASTER_SITES= ${MASTER_SITE_MOZILLA_ALL:=security/nss/releases/NSS_${NSS_DIST_DIR_VERSION:S/_0$//}_RTM/src/}
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS
COMMENT= Libraries to support development of security-enabled applications
LICENSE= mpl-2.0
CHECK_PORTABILITY_SKIP+= nss/tests/*/*.sh
CHECK_PORTABILITY_SKIP+= js/src/configure
CHECK_PORTABILITY_SKIP+= configure
CTF_SUPPORTED= no # https://smartos.org/bugview/OS-6510
USE_GCC_RUNTIME= yes
USE_LANGUAGES= c99
USE_TOOLS+= gmake perl pax pkg-config
MAKE_JOBS_SAFE= no
BUILD_DIRS= nss
.include "../../mk/bsd.prefs.mk"
SUBST_CLASSES.Darwin+= exec_path
SUBST_STAGE.exec_path= pre-configure
SUBST_MESSAGE.exec_path= Fixing @executable_path
SUBST_FILES.exec_path= nss/coreconf/Darwin.mk
SUBST_SED.exec_path= -e 's,@executable_path,${PREFIX}/lib/nss,g'
SUBST_CLASSES+= zlib
SUBST_STAGE.zlib= pre-configure
SUBST_MESSAGE.zlib= Use ZLIB_LIBS from environment
SUBST_FILES.zlib= nss/coreconf/*.mk
SUBST_SED.zlib= -e 's,^ZLIB_LIBS,\#ZLIB_LIBS,g'
BUILDLINK_TRANSFORM+= rm:-Werror
BUILDLINK_TRANSFORM+= rm:-ansi
LDFLAGS.NetBSD+= -lrt # sem_wait(3)
MAKE_ENV.Linux+= FREEBL_NO_DEPEND=0
.if ${OBJECT_FMT} == "ELF"
SO_SUFFIX= so
.elif ${OBJECT_FMT} == "Mach-O"
SO_SUFFIX= dylib
.else
SO_SUFFIX= so.1.0
.endif
PLIST_SUBST+= SO_SUFFIX=${SO_SUFFIX:Q}
.if !empty(PKGSRC_COMPILER:Mclang) || !empty(PKGSRC_COMPILER:Mgcc)
MAKE_ENV+= NS_USE_GCC=YES
.endif
.if !empty(PKGSRC_COMPILER:Mclang)
MAKE_ENV+= CC_IS_CLANG=YES
.endif
SUBST_CLASSES+= 64bit
SUBST_STAGE.64bit= pre-configure
SUBST_FILES.64bit= nss/lib/freebl/*
SUBST_SED.64bit= -e 's,NSS_USE_64,_LP64,g'
SUBST_MESSAGE.64bit= Use a generic 64bit check
# Just to be safe, do this as well as the _LP64 replacement
# NSS has a lot more logic for USE_64
.for platform in ${LP64PLATFORMS}
. if ${MACHINE_PLATFORM:M${platform}}
MAKE_ENV+= USE_64=1
. endif
.endfor
MAKE_ENV+= BUILD_OPT=1
#MAKE_ENV+= OPTIMIZER=${CFLAGS:Q}
MAKE_ENV+= INCLUDES=-I${BUILDLINK_PREFIX.nspr}/include/nspr
MAKE_ENV+= NSS_USE_SYSTEM_SQLITE=1
MAKE_ENV+= ZLIB_LIBS="${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.zlib}/lib -L${BUILDLINK_PREFIX.zlib}/lib -lz"
MAKE_ENV+= USE_SYSTEM_ZLIB=1
MAKE_ENV+= EXTRA_SHARED_LIBS="${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.nspr}/lib/nspr ${COMPILER_RPATH_FLAG}${PREFIX}/lib/nss -L${BUILDLINK_PREFIX.nspr}/lib/nspr -lplc4 -lplds4 -lnspr4 "${LDFLAGS:Q}
MAKE_ENV+= NSS_DISABLE_GTESTS=yes
MAKE_ENV+= NSS_ENABLE_TLS_1_3=1
.include "../../mk/compiler.mk"
.if !empty(CC_VERSION:Mgcc-4.[0-7]*)
CFLAGS+= -DNSS_NO_GCC48
.endif
MOD_MAJOR_VERSION= ${NSS_RELEASE:C/\.[0-9.]*//}
MOD_MINOR_VERSION= ${NSS_RELEASE:S/3.//:C/\.[0-9]*//}
MOD_PATCH_VERSION= ${NSS_RELEASE:C/[0-9.]*\.//}
NSS_DIST_DIR_VERSION= ${MOD_MAJOR_VERSION}_${MOD_MINOR_VERSION}_${MOD_PATCH_VERSION}
NSPR_MINIMUM_VERSION= 4.32
PKGCONFIG_OVERRIDE= nss.pc
SUBST_CLASSES+= config
# nss.pc
SUBST_SED.config+= -e "s,@PTHREAD@,${BUILDLINK_LIBS.pthread:Q},"
SUBST_SED.config+= -e "s,%prefix%,${PREFIX},"
SUBST_SED.config+= -e "s,%exec_prefix%,${PREFIX},"
SUBST_SED.config+= -e "s,%libdir%,${PREFIX}/lib/nss,"
SUBST_SED.config+= -e "s,%includedir%,${PREFIX}/include/nss,"
SUBST_SED.config+= -e "s,%NSS_VERSION%,${PKGVERSION_NOREV},"
SUBST_SED.config+= -e "s,%NSPR_VERSION%,${NSPR_MINIMUM_VERSION},"
# nss-config
SUBST_SED.config+= -e "s,@prefix@,${PREFIX},"
SUBST_VARS.config+= MOD_MAJOR_VERSION
SUBST_VARS.config+= MOD_MINOR_VERSION
SUBST_VARS.config+= MOD_PATCH_VERSION
SUBST_STAGE.config= pre-build
SUBST_MESSAGE.config= Preparing *-config files.
SUBST_FILES.config+= nss.pc nss-config
INSTALLATION_DIRS= bin include/nss lib/nss lib/pkgconfig
INSTALL_CMDS+= certutil cmsutil crlutil derdump makepqg \
mangle modutil ocspclnt oidcalc p7content p7env p7sign \
p7verify pk12util rsaperf shlibsign signtool signver \
ssltap strsclnt symkeyutil vfychain vfyserv
post-extract:
find ${WRKSRC} -type f | xargs ${CHMOD} 644
find ${WRKSRC} -type d | xargs ${CHMOD} 755
${CP} ${WRKSRC}/nss/pkg/pkg-config/nss.pc.in ${WRKSRC}/nss.pc
${CP} ${WRKSRC}/nss/pkg/pkg-config/nss-config.in ${WRKSRC}/nss-config
do-install:
(cd ${WRKSRC}/dist/public/nss && pax -Lrw . ${DESTDIR}${PREFIX}/include/nss )
(cd ${WRKSRC}/dist/*_OPT.OBJ/lib && \
pax -Lrw *.${SO_SUFFIX} ${DESTDIR}${PREFIX}/lib/nss/ )
${INSTALL_DATA} ${WRKSRC}/dist/*_OPT.OBJ/lib/libcrmf.a \
${DESTDIR}${PREFIX}/lib/nss/
${INSTALL_DATA} ${WRKSRC}/nss.pc ${DESTDIR}${PREFIX}/lib/pkgconfig/nss.pc
${INSTALL_SCRIPT} ${WRKSRC}/nss-config ${DESTDIR}${PREFIX}/bin/nss-config
.for cmd in ${INSTALL_CMDS}
${INSTALL_PROGRAM} ${WRKSRC}/dist/*_OPT.OBJ/bin/${cmd} ${DESTDIR}${PREFIX}/bin
.endfor
# For consistency of libxul.so link in www/firefox.
BUILDLINK_API_DEPENDS.sqlite3+= sqlite3>=3.8.4.2
.include "../../databases/sqlite3/buildlink3.mk"
BUILDLINK_API_DEPENDS.nspr+= nspr>=${NSPR_MINIMUM_VERSION}
.include "../../devel/nspr/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"