Instead of providing old versions of nss-config & nss.pc shoplifted ages

ago from Debian, just patch & use the ones added upstream in bug
#1277852. This way, we properly list the right libs when linking,
including nssutil3 (which should fix linking chrome with lld) - and
while here fix includedir to be consistent with cflags.

Prompted by an original diff from espie@
Tested in bulks by ajacoutot@ and myself
WANTLIB fixes removing softokn3 to come
This commit is contained in:
landry 2017-11-09 18:45:24 +00:00
parent dbfd38e654
commit e0697ba4c9
5 changed files with 52 additions and 168 deletions

View File

@ -1,9 +1,11 @@
# $OpenBSD: Makefile,v 1.80 2017/09/27 06:45:19 landry Exp $
# $OpenBSD: Makefile,v 1.81 2017/11/09 18:45:24 landry Exp $
COMMENT= libraries to support development of security-enabled apps
VERSION= 3.33
NSPR_VERSION= 4.17
DISTNAME= nss-${VERSION}
REVISION= 0
SO_VERSION= 49.1
.for _lib in freebl3 nss3 nssckbi nssdbm3 nssutil3 smime3 softokn3 ssl3
@ -21,7 +23,7 @@ PERMIT_PACKAGE_CDROM= Yes
MASTER_SITES= https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${DISTNAME:U:C/[-.]/_/g}_RTM/src/
LIB_DEPENDS= databases/sqlite3 \
devel/nspr>=4.12
devel/nspr>=${NSPR_VERSION}
WANTLIB += c pthread z nspr4 plc4 plds4 sqlite3>=22
MAKE_ENV= BUILD_OPT=1 \
@ -42,7 +44,7 @@ NSSDIST= ${WRKDIST}/dist
NSSOBJ= ${NSSDIST}/OpenBSD`uname -r`${OBJ64}_OPT.OBJ
ALL_TARGET= nss_build_all
SUBST_VARS += VERSION
SUBST_VARS += VERSION NSPR_VERSION
# Don't forget to sync these with http://wiki.mozilla.org/NSS:ToolsToShip
MAIN_TOOLS= certutil modutil pk12util signtool ssltap crlutil \
@ -55,11 +57,10 @@ do-install:
${INSTALL_DATA} ${NSSOBJ}/lib/*.so.${SO_VERSION} ${PREFIX}/lib/
${INSTALL_DATA} ${NSSOBJ}/lib/{libcrmf.a,*.chk} ${PREFIX}/lib/
cd ${NSSOBJ}/bin && ${INSTALL_PROGRAM} ${MAIN_TOOLS} ${PREFIX}/bin/
${SUBST_CMD} -m 0644 -c ${FILESDIR}/nss.pc \
${PREFIX}/lib/pkgconfig/nss.pc \
${FILESDIR}/nss-config ${PREFIX}/bin/nss-config
chown ${BINOWN}:${BINGRP} ${PREFIX}/{bin/nss-config,lib/pkgconfig/nss.pc}
chmod +x ${PREFIX}/bin/nss-config
${SUBST_CMD} -m 644 -o ${BINOWN} -g ${BINGRP} \
-c ${WRKSRC}/pkg/pkg-config/nss.pc.in ${PREFIX}/lib/pkgconfig/nss.pc
${SUBST_CMD} -m ${BINMODE} -o ${BINOWN} -g ${BINGRP} \
-c ${WRKSRC}/pkg/pkg-config/nss-config.in ${PREFIX}/bin/nss-config
do-test:
cd ${WRKSRC}/tests && ${SETENV} ${MAKE_ENV} \

View File

@ -1,147 +0,0 @@
#!/bin/sh
# taken from debian/nss-config.in
# adapted for OpenBSD's prefix/version substs
prefix=${TRUEPREFIX}
# inspired from debian Makefile
major_version=$(awk '/NSS_VMAJOR/ {print $3}' ${TRUEPREFIX}/include/nss/nss.h)
minor_version=$(awk '/NSS_VMINOR/ {print $3}' ${TRUEPREFIX}/include/nss/nss.h)
patch_version=$(awk '/NSS_VPATCH/ {print $3}' ${TRUEPREFIX}/include/nss/nss.h)
usage()
{
cat <<EOF
Usage: nss-config [OPTIONS] [LIBRARIES]
Options:
[--prefix[=DIR]]
[--exec-prefix[=DIR]]
[--includedir[=DIR]]
[--libdir[=DIR]]
[--version]
[--libs]
[--cflags]
Dynamic Libraries:
nss
nssutil
ssl
smime
EOF
exit $1
}
if test $# -eq 0; then
usage 1 1>&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=${prefix}
fi
if test -z "$includedir"; then
includedir=${prefix}/include/nss
fi
if test -z "$libdir"; then
libdir=${exec_prefix}/lib
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_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

View File

@ -1,13 +0,0 @@
# $OpenBSD: nss.pc,v 1.2 2012/11/12 20:43:09 landry Exp $
prefix=${TRUEPREFIX}
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: NSS
Description: Mozilla Network Security Services
Version: ${VERSION}
Requires: nspr >= 4.6.4
Libs: -L${libdir} -lnss3 -lsmime3 -lsoftokn3 -lssl3
Cflags: -I${includedir}/nss

View File

@ -0,0 +1,20 @@
$OpenBSD: patch-nss_pkg_pkg-config_nss-config_in,v 1.1 2017/11/09 18:45:24 landry Exp $
Index: nss/pkg/pkg-config/nss-config.in
--- nss/pkg/pkg-config/nss-config.in.orig
+++ nss/pkg/pkg-config/nss-config.in
@@ -1,10 +1,10 @@
#!/bin/sh
-prefix=@prefix@
+prefix=${TRUEPREFIX}
-major_version=@MOD_MAJOR_VERSION@
-minor_version=@MOD_MINOR_VERSION@
-patch_version=@MOD_PATCH_VERSION@
+major_version=$(awk '/NSS_VMAJOR/ {print $3}' ${TRUEPREFIX}/include/nss/nss.h)
+minor_version=$(awk '/NSS_VMINOR/ {print $3}' ${TRUEPREFIX}/include/nss/nss.h)
+patch_version=$(awk '/NSS_VPATCH/ {print $3}' ${TRUEPREFIX}/include/nss/nss.h)
usage()
{

View File

@ -0,0 +1,23 @@
$OpenBSD: patch-nss_pkg_pkg-config_nss_pc_in,v 1.1 2017/11/09 18:45:24 landry Exp $
Index: nss/pkg/pkg-config/nss.pc.in
--- nss/pkg/pkg-config/nss.pc.in.orig
+++ nss/pkg/pkg-config/nss.pc.in
@@ -1,11 +1,11 @@
-prefix=%prefix%
-exec_prefix=%exec_prefix%
-libdir=%libdir%
-includedir=%includedir%
+prefix=${TRUEPREFIX}
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include/nss
Name: NSS
Description: Network Security Services
-Version: %NSS_VERSION%
-Requires: nspr >= %NSPR_VERSION%
+Version: ${VERSION}
+Requires: nspr >= ${NSPR_VERSION}
Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
Cflags: -I${includedir}