nss: 3.27.2 -> 3.28.1

This commit is contained in:
Eelco Dolstra 2017-01-24 14:49:14 +01:00
parent 25d86bdd10
commit 2bf0f84f1f
No known key found for this signature in database
GPG Key ID: 8170B4726D7198DE
3 changed files with 43 additions and 280 deletions

@ -1,45 +1,45 @@
diff -ru -x '*~' nss-3.27.1-orig/nss/cmd/shlibsign/shlibsign.c nss-3.27.1/nss/cmd/shlibsign/shlibsign.c
--- nss-3.27.1-orig/nss/cmd/shlibsign/shlibsign.c 2016-10-03 16:55:58.000000000 +0200
+++ nss-3.27.1/nss/cmd/shlibsign/shlibsign.c 2016-11-15 16:28:07.308117900 +0100
@@ -871,6 +871,8 @@
libname = PR_GetLibraryName(NULL, "softokn3");
assert(libname != NULL);
diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/cmd/shlibsign/shlibsign.c nss/cmd/shlibsign/shlibsign.c
--- nss/cmd/shlibsign/shlibsign.c 2017-01-04 15:24:24.000000000 +0100
+++ nss/cmd/shlibsign/shlibsign.c 2017-01-24 14:43:31.030420852 +0100
@@ -875,6 +875,8 @@
goto cleanup;
}
lib = PR_LoadLibrary(libname);
+ if (!lib)
+ lib = PR_LoadLibrary(NIX_NSS_LIBDIR"libsoftokn3.so");
assert(lib != NULL);
PR_FreeLibraryName(libname);
diff -ru -x '*~' nss-3.27.1-orig/nss/coreconf/config.mk nss-3.27.1/nss/coreconf/config.mk
--- nss-3.27.1-orig/nss/coreconf/config.mk 2016-10-03 16:55:58.000000000 +0200
+++ nss-3.27.1/nss/coreconf/config.mk 2016-11-15 16:28:07.308117900 +0100
@@ -217,3 +217,6 @@
ifdef NSS_NO_PKCS11_BYPASS
DEFINES += -DNO_PKCS11_BYPASS
endif
if (!lib) {
PR_fprintf(PR_STDERR, "loading softokn3 failed");
diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/coreconf/config.mk nss/coreconf/config.mk
--- nss/coreconf/config.mk 2017-01-04 15:24:24.000000000 +0100
+++ nss/coreconf/config.mk 2017-01-24 14:43:47.989432372 +0100
@@ -208,3 +208,6 @@
# exported symbols, which causes problem when NSS is built as part of Mozilla.
# So we add a NSS_SSL_ENABLE_ZLIB variable to allow Mozilla to turn this off.
NSS_SSL_ENABLE_ZLIB = 1
+
+# Nix specific stuff.
+DEFINES += -DNIX_NSS_LIBDIR=\"$(out)/lib/\"
diff -ru -x '*~' nss-3.27.1-orig/nss/lib/pk11wrap/pk11load.c nss-3.27.1/nss/lib/pk11wrap/pk11load.c
--- nss-3.27.1-orig/nss/lib/pk11wrap/pk11load.c 2016-10-03 16:55:58.000000000 +0200
+++ nss-3.27.1/nss/lib/pk11wrap/pk11load.c 2016-11-15 16:28:07.308117900 +0100
@@ -429,6 +429,13 @@
* unload the library if anything goes wrong from here on out...
*/
library = PR_LoadLibrary(mod->dllName);
+ if ((library == NULL) &&
+ !rindex(mod->dllName, PR_GetDirectorySeparator())) {
diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/lib/pk11wrap/pk11load.c nss/lib/pk11wrap/pk11load.c
--- nss/lib/pk11wrap/pk11load.c 2017-01-04 15:24:24.000000000 +0100
+++ nss/lib/pk11wrap/pk11load.c 2017-01-24 14:45:06.883485652 +0100
@@ -440,6 +440,13 @@
* unload the library if anything goes wrong from here on out...
*/
library = PR_LoadLibrary(mod->dllName);
+ if ((library == NULL) &&
+ !rindex(mod->dllName, PR_GetDirectorySeparator())) {
+ library = PORT_LoadLibraryFromOrigin(my_shlib_name,
+ (PRFuncPtr) &softoken_LoadDSO,
+ mod->dllName);
+ }
+ (PRFuncPtr) &softoken_LoadDSO,
+ mod->dllName);
+ }
+
mod->library = (void *)library;
mod->library = (void *)library;
if (library == NULL) {
diff -ru -x '*~' nss-3.27.1-orig/nss/lib/util/secload.c nss-3.27.1/nss/lib/util/secload.c
--- nss-3.27.1-orig/nss/lib/util/secload.c 2016-10-03 16:55:58.000000000 +0200
+++ nss-3.27.1/nss/lib/util/secload.c 2016-11-15 16:29:50.482259746 +0100
if (library == NULL) {
diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/lib/util/secload.c nss/lib/util/secload.c
--- nss/lib/util/secload.c 2017-01-04 15:24:24.000000000 +0100
+++ nss/lib/util/secload.c 2017-01-24 14:43:31.030420852 +0100
@@ -70,9 +70,14 @@
/* Remove the trailing filename from referencePath and add the new one */

@ -1,4 +1,4 @@
{ stdenv, fetchurl, nspr, perl, zlib, sqlite }:
{ stdenv, fetchurl, fetchpatch, nspr, perl, zlib, sqlite }:
let
@ -9,11 +9,11 @@ let
in stdenv.mkDerivation rec {
name = "nss-${version}";
version = "3.27.2";
version = "3.28.1";
src = fetchurl {
url = "mirror://mozilla/security/nss/releases/NSS_3_27_2_RTM/src/${name}.tar.gz";
sha256 = "dc8ac8524469d0230274fd13a53fdcd74efe4aa67205dde1a4a92be87dc28524";
url = "mirror://mozilla/security/nss/releases/NSS_3_28_1_RTM/src/${name}.tar.gz";
sha256 = "58cc0c05c0ed9523e6d820bea74f513538f48c87aac931876e3d3775de1a82ad";
};
buildInputs = [ nspr perl zlib sqlite ];
@ -23,11 +23,17 @@ in stdenv.mkDerivation rec {
'';
patches =
[ ./nss-3.21-gentoo-fixups.patch
[ # FIXME: what is this patch for? Do we still need it?
(fetchpatch {
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/nss/files/nss-3.28-gentoo-fixups.patch";
sha256 = "0z58axd1n7vq4kdp5mrb3dsg6di39a1g40s3shl6n2dzs14c1y2q";
})
# Based on http://patch-tracker.debian.org/patch/series/dl/nss/2:3.15.4-1/85_security_load.patch
./85_security_load.patch
];
patchFlags = "-p0";
postPatch = ''
# Fix up the patch from Gentoo.
sed -i \

@ -1,243 +0,0 @@
diff -urN a/nss/config/Makefile b/nss/config/Makefile
--- a/nss/config/Makefile 1969-12-31 18:00:00.000000000 -0600
+++ b/nss/config/Makefile 2015-11-15 10:42:46.249578304 -0600
@@ -0,0 +1,40 @@
+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}'`
+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}/lib64," \
+ -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)," \
+ nss.pc.in > nss.pc
+ chmod 0644 nss.pc
+ ln -sf ../../../../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 ../../../config/nss-config $(DIST)/bin
+
+libs:
+
+dummy: all export libs
+
diff -urN a/nss/config/nss-config.in b/nss/config/nss-config.in
--- a/nss/config/nss-config.in 1969-12-31 18:00:00.000000000 -0600
+++ b/nss/config/nss-config.in 2015-11-15 10:42:46.250578304 -0600
@@ -0,0 +1,145 @@
+#!/bin/sh
+
+prefix=@prefix@
+
+major_version=@NSS_MAJOR_VERSION@
+minor_version=@NSS_MINOR_VERSION@
+patch_version=@NSS_PATCH_VERSION@
+
+usage()
+{
+ cat <<EOF
+Usage: nss-config [OPTIONS] [LIBRARIES]
+Options:
+ [--prefix[=DIR]]
+ [--exec-prefix[=DIR]]
+ [--includedir[=DIR]]
+ [--libdir[=DIR]]
+ [--version]
+ [--libs]
+ [--cflags]
+Dynamic Libraries:
+ nss
+ ssl
+ smime
+ nssutil
+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=`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=""
+ 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
+
diff -urN a/nss/config/nss.pc.in b/nss/config/nss.pc.in
--- a/nss/config/nss.pc.in 1969-12-31 18:00:00.000000000 -0600
+++ b/nss/config/nss.pc.in 2015-11-15 10:42:46.251578304 -0600
@@ -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 >= 4.8
+Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3
+Cflags: -I${includedir}
+
diff -urN a/nss/Makefile b/nss/Makefile
--- a/nss/Makefile 2015-11-15 09:25:06.410786060 -0600
+++ b/nss/Makefile 2015-11-15 10:42:46.252578304 -0600
@@ -46,7 +46,7 @@
# (7) Execute "local" rules. (OPTIONAL). #
#######################################################################
-nss_build_all: build_nspr all
+nss_build_all: all
nss_clean_all: clobber_nspr clobber
@@ -115,12 +115,6 @@
--with-dist-prefix='$(NSPR_PREFIX)' \
--with-dist-includedir='$(NSPR_PREFIX)/include'
-build_nspr: $(NSPR_CONFIG_STATUS)
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)
-
-clobber_nspr: $(NSPR_CONFIG_STATUS)
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) clobber
-
build_docs:
$(MAKE) -C $(CORE_DEPTH)/doc
diff -urN a/nss/manifest.mn b/nss/manifest.mn
--- a/nss/manifest.mn 2015-11-15 09:25:06.411786060 -0600
+++ b/nss/manifest.mn 2015-11-15 10:43:15.633576994 -0600
@@ -10,4 +10,4 @@
RELEASE = nss
-DIRS = coreconf lib cmd external_tests
+DIRS = coreconf lib cmd config