From 8814602c5907be0618491110d3e37bcc9b7de01c Mon Sep 17 00:00:00 2001 From: dslm4515 <27793627+dslm4515@users.noreply.github.com> Date: Wed, 13 Apr 2022 23:18:09 -0500 Subject: [PATCH] Added missing patches for nss and boost --- patches/boost-void/exec_file.patch | 45 ++++ patches/nss-lfs/nss-3.77-standalone-1.patch | 266 ++++++++++++++++++++ 2 files changed, 311 insertions(+) create mode 100644 patches/boost-void/exec_file.patch create mode 100644 patches/nss-lfs/nss-3.77-standalone-1.patch diff --git a/patches/boost-void/exec_file.patch b/patches/boost-void/exec_file.patch new file mode 100644 index 0000000..b1b0ef9 --- /dev/null +++ b/patches/boost-void/exec_file.patch @@ -0,0 +1,45 @@ +From d9f06052e28873037db7f98629bce72182a42410 Mon Sep 17 00:00:00 2001 +From: Pat Riehecky +Date: Mon, 29 Jun 2020 10:51:58 -0500 +Subject: [PATCH] Convert Python 3.1+ to use public C API for filenames + + [ + Ed.: Paths were adapted from upstream commit + https://github.com/boostorg/python/commit/d9f06052e28873037db7f98629bce72182a42410 + ] + +--- + src/exec.cpp | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +diff --git a/libs/python/src/exec.cpp b/libs/python/src/exec.cpp +index 171c6f4189..b2eabe59f6 100644 +--- a/libs/python/src/exec.cpp ++++ b/libs/python/src/exec.cpp +@@ -104,14 +104,22 @@ object BOOST_PYTHON_DECL exec_file(char const *filename, object global, object l + if (local.is_none()) local = global; + // should be 'char const *' but older python versions don't use 'const' yet. + char *f = const_cast(filename); +- // Let python open the file to avoid potential binary incompatibilities. +-#if PY_VERSION_HEX >= 0x03040000 +- FILE *fs = _Py_fopen(f, "r"); ++#if PY_VERSION_HEX >= 0x03010000 ++ // Let python manage any UTF bits to avoid potential incompatibilities. ++ PyObject *fo = Py_BuildValue("s", f); ++ PyObject *fb = Py_None; ++ PyUnicode_FSConverter(fo, &fb); ++ f = PyBytes_AsString(fb); ++ FILE *fs = fopen(f, "r"); ++ Py_DECREF(fo); ++ Py_DECREF(fb); + #elif PY_VERSION_HEX >= 0x03000000 ++ // Let python open the file to avoid potential binary incompatibilities. + PyObject *fo = Py_BuildValue("s", f); +- FILE *fs = _Py_fopen(fo, "r"); ++ FILE *fs = _Py_fopen(fo, "r"); // Private CPython API + Py_DECREF(fo); + #else ++ // Let python open the file to avoid potential binary incompatibilities. + PyObject *pyfile = PyFile_FromString(f, const_cast("r")); + if (!pyfile) throw std::invalid_argument(std::string(f) + " : no such file"); + python::handle<> file(pyfile); diff --git a/patches/nss-lfs/nss-3.77-standalone-1.patch b/patches/nss-lfs/nss-3.77-standalone-1.patch new file mode 100644 index 0000000..009184f --- /dev/null +++ b/patches/nss-lfs/nss-3.77-standalone-1.patch @@ -0,0 +1,266 @@ +Submitted By: Xi Ruoyao +Date: 2020-08-22 +Initial Package Version: 3.12.4 +Upstream Status: Not applicable +Origin: Self, adjusted for nss-3.56. +Description: Adds auto-generated nss.pc and nss-config script, and + allows building without nspr in the source tree. + Minimum NSPR version is now read out from package, + instead of hardcoded value in the patch. + +diff --color -uNar nss-3.55.orig/nss/config/Makefile nss-3.55/nss/config/Makefile +--- nss-3.55.orig/nss/config/Makefile 1970-01-01 08:00:00.000000000 +0800 ++++ nss-3.55/nss/config/Makefile 2020-07-25 19:34:36.272982957 +0800 +@@ -0,0 +1,42 @@ ++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}'` ++NSS_NSPR_MINIMUM = `head -n1 ../automation/release/nspr-version.txt` ++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}/lib," \ ++ -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)," \ ++ -e "s,@NSS_NSPR_MINIMUM@,$(NSS_NSPR_MINIMUM)," \ ++ nss.pc.in > nss.pc ++ chmod 0644 nss.pc ++ ln -sf ../../../../nss/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 ../../../nss/config/nss-config $(DIST)/bin ++ ++libs: ++ ++dummy: all export libs ++ +diff --color -uNar nss-3.55.orig/nss/config/nss-config.in nss-3.55/nss/config/nss-config.in +--- nss-3.55.orig/nss/config/nss-config.in 1970-01-01 08:00:00.000000000 +0800 ++++ nss-3.55/nss/config/nss-config.in 2020-07-25 19:32:37.239032214 +0800 +@@ -0,0 +1,153 @@ ++#!/bin/sh ++ ++prefix=@prefix@ ++ ++major_version=@NSS_MAJOR_VERSION@ ++minor_version=@NSS_MINOR_VERSION@ ++patch_version=@NSS_PATCH_VERSION@ ++ ++usage() ++{ ++ cat <&2 ++fi ++ ++lib_nss=yes ++lib_nssutil=yes ++lib_smime=yes ++lib_ssl=yes ++lib_softokn=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 ++ ;; ++ nss) ++ lib_nss=yes ++ ;; ++ nssutil) ++ lib_nssutil=yes ++ ;; ++ smime) ++ lib_smime=yes ++ ;; ++ ssl) ++ lib_ssl=yes ++ ;; ++ softokn) ++ lib_softokn=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="-L$libdir" ++ if test -n "$lib_nss"; then ++ libdirs="$libdirs -lnss${major_version}" ++ fi ++ if test -n "$lib_nssutil"; then ++ libdirs="$libdirs -lnssutil${major_version}" ++ fi ++ if test -n "$lib_smime"; then ++ libdirs="$libdirs -lsmime${major_version}" ++ fi ++ if test -n "$lib_ssl"; then ++ libdirs="$libdirs -lssl${major_version}" ++ fi ++ if test -n "$lib_softokn"; then ++ libdirs="$libdirs -lsoftokn${major_version}" ++ fi ++ echo $libdirs ++fi ++ +diff --color -uNar nss-3.55.orig/nss/config/nss.pc.in nss-3.55/nss/config/nss.pc.in +--- nss-3.55.orig/nss/config/nss.pc.in 1970-01-01 08:00:00.000000000 +0800 ++++ nss-3.55/nss/config/nss.pc.in 2020-07-25 19:33:05.958889937 +0800 +@@ -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 >= @NSS_NSPR_MINIMUM@ ++Libs: -L@libdir@ -lnss@NSS_MAJOR_VERSION@ -lnssutil@NSS_MAJOR_VERSION@ -lsmime@NSS_MAJOR_VERSION@ -lssl@NSS_MAJOR_VERSION@ -lsoftokn@NSS_MAJOR_VERSION@ ++Cflags: -I${includedir} ++ +diff --color -uNar nss-3.55.orig/nss/Makefile nss-3.55/nss/Makefile +--- nss-3.55.orig/nss/Makefile 2020-07-24 23:10:32.000000000 +0800 ++++ nss-3.55/nss/Makefile 2020-07-25 19:32:37.239032214 +0800 +@@ -4,6 +4,8 @@ + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + ++default: nss_build_all ++ + ####################################################################### + # (1) Include initial platform-independent assignments (MANDATORY). # + ####################################################################### +@@ -48,12 +50,10 @@ + ####################################################################### + + nss_build_all: +- $(MAKE) build_nspr + $(MAKE) all + $(MAKE) latest + + nss_clean_all: +- $(MAKE) clobber_nspr + $(MAKE) clobber + + NSPR_CONFIG_STATUS = $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)/config.status +diff --color -uNar nss-3.55.orig/nss/manifest.mn nss-3.55/nss/manifest.mn +--- nss-3.55.orig/nss/manifest.mn 2020-07-24 23:10:32.000000000 +0800 ++++ nss-3.55/nss/manifest.mn 2020-07-25 19:32:37.240032237 +0800 +@@ -10,7 +10,7 @@ + + RELEASE = nss + +-DIRS = coreconf lib cmd cpputil gtests ++DIRS = coreconf lib cmd cpputil gtests config + + lib: coreconf + cmd: lib