summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch31
-rw-r--r--meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch102
-rw-r--r--meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch103
-rw-r--r--meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch52
-rw-r--r--meta-oe/recipes-support/nspr/nspr/nspr.pc.in11
-rw-r--r--meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch26
-rw-r--r--meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch19
-rw-r--r--meta-oe/recipes-support/nspr/nspr_4.25.bb197
-rw-r--r--meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch52
-rw-r--r--meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch48
-rw-r--r--meta-oe/recipes-support/nss/nss/blank-cert9.dbbin0 -> 28672 bytes
-rw-r--r--meta-oe/recipes-support/nss/nss/blank-key4.dbbin0 -> 36864 bytes
-rw-r--r--meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch33
-rw-r--r--meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch110
-rw-r--r--meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch36
-rw-r--r--meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch26
-rw-r--r--meta-oe/recipes-support/nss/nss/nss.pc.in11
-rw-r--r--meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch23
-rw-r--r--meta-oe/recipes-support/nss/nss/signlibs.sh20
-rw-r--r--meta-oe/recipes-support/nss/nss/system-pkcs11.txt5
-rw-r--r--meta-oe/recipes-support/nss/nss_3.50.bb273
21 files changed, 1178 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch b/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch
new file mode 100644
index 000000000..f3cd67002
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch
@@ -0,0 +1,31 @@
1From 147f3c2acbd96d44025cec11800ded0282327764 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 18 Sep 2017 17:22:43 -0700
4Subject: [PATCH] md: Fix build with musl
5
6The MIPS specific header <sgidefs.h> is not provided by musl
7linux kernel headers provide <asm/sgidefs.h> which has same definitions
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11Upstream-Status: Pending
12
13 pr/include/md/_linux.cfg | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/pr/include/md/_linux.cfg b/pr/include/md/_linux.cfg
17index 640b19c..31296a8 100644
18--- a/pr/include/md/_linux.cfg
19+++ b/pr/include/md/_linux.cfg
20@@ -499,7 +499,7 @@
21 #elif defined(__mips__)
22
23 /* For _ABI64 */
24-#include <sgidefs.h>
25+#include <asm/sgidefs.h>
26
27 #ifdef __MIPSEB__
28 #define IS_BIG_ENDIAN 1
29--
302.14.1
31
diff --git a/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch b/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch
new file mode 100644
index 000000000..3a04d426a
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch
@@ -0,0 +1,102 @@
1From 95bda64fb4cf1825fea745e918cfe8202843f0ba Mon Sep 17 00:00:00 2001
2From: Marek Vasut <marex@denx.de>
3Date: Sat, 30 Jan 2016 07:18:02 +0100
4Subject: [PATCH] Add nios2 support
5
6Add support for the nios2 CPU.
7
8Signed-off-by: Marek Vasut <marex@denx.de>
9Upstream-Status: Submitted [ https://bugzilla.mozilla.org/show_bug.cgi?id=1244421 ]
10---
11 nspr/pr/include/md/_linux.cfg | 45 +++++++++++++++++++++++++++++++++++++++++++
12 nspr/pr/include/md/_linux.h | 14 ++++++++++++++
13 2 files changed, 59 insertions(+)
14
15Index: nspr/pr/include/md/_linux.cfg
16===================================================================
17--- nspr.orig/pr/include/md/_linux.cfg
18+++ nspr/pr/include/md/_linux.cfg
19@@ -975,6 +975,51 @@
20 #define PR_BYTES_PER_WORD_LOG2 2
21 #define PR_BYTES_PER_DWORD_LOG2 3
22
23+#elif defined(__nios2__)
24+
25+#define IS_LITTLE_ENDIAN 1
26+#undef IS_BIG_ENDIAN
27+
28+#define PR_BYTES_PER_BYTE 1
29+#define PR_BYTES_PER_SHORT 2
30+#define PR_BYTES_PER_INT 4
31+#define PR_BYTES_PER_INT64 8
32+#define PR_BYTES_PER_LONG 4
33+#define PR_BYTES_PER_FLOAT 4
34+#define PR_BYTES_PER_DOUBLE 8
35+#define PR_BYTES_PER_WORD 4
36+#define PR_BYTES_PER_DWORD 8
37+
38+#define PR_BITS_PER_BYTE 8
39+#define PR_BITS_PER_SHORT 16
40+#define PR_BITS_PER_INT 32
41+#define PR_BITS_PER_INT64 64
42+#define PR_BITS_PER_LONG 32
43+#define PR_BITS_PER_FLOAT 32
44+#define PR_BITS_PER_DOUBLE 64
45+#define PR_BITS_PER_WORD 32
46+
47+#define PR_BITS_PER_BYTE_LOG2 3
48+#define PR_BITS_PER_SHORT_LOG2 4
49+#define PR_BITS_PER_INT_LOG2 5
50+#define PR_BITS_PER_INT64_LOG2 6
51+#define PR_BITS_PER_LONG_LOG2 5
52+#define PR_BITS_PER_FLOAT_LOG2 5
53+#define PR_BITS_PER_DOUBLE_LOG2 6
54+#define PR_BITS_PER_WORD_LOG2 5
55+
56+#define PR_ALIGN_OF_SHORT 2
57+#define PR_ALIGN_OF_INT 4
58+#define PR_ALIGN_OF_LONG 4
59+#define PR_ALIGN_OF_INT64 4
60+#define PR_ALIGN_OF_FLOAT 4
61+#define PR_ALIGN_OF_DOUBLE 4
62+#define PR_ALIGN_OF_POINTER 4
63+#define PR_ALIGN_OF_WORD 4
64+
65+#define PR_BYTES_PER_WORD_LOG2 2
66+#define PR_BYTES_PER_DWORD_LOG2 3
67+
68 #elif defined(__or1k__)
69
70 #undef IS_LITTLE_ENDIAN
71Index: nspr/pr/include/md/_linux.h
72===================================================================
73--- nspr.orig/pr/include/md/_linux.h
74+++ nspr/pr/include/md/_linux.h
75@@ -55,6 +55,8 @@
76 #define _PR_SI_ARCHITECTURE "avr32"
77 #elif defined(__m32r__)
78 #define _PR_SI_ARCHITECTURE "m32r"
79+#elif defined(__nios2__)
80+#define _PR_SI_ARCHITECTURE "nios2"
81 #elif defined(__or1k__)
82 #define _PR_SI_ARCHITECTURE "or1k"
83 #elif defined(__riscv) && (__riscv_xlen == 32)
84@@ -129,6 +131,18 @@ extern PRInt32 _PR_x86_64_AtomicSet(PRIn
85 #define _MD_ATOMIC_SET _PR_x86_64_AtomicSet
86 #endif
87
88+#if defined(__nios2__)
89+#if defined(__GNUC__)
90+/* Use GCC built-in functions */
91+#define _PR_HAVE_ATOMIC_OPS
92+#define _MD_INIT_ATOMIC()
93+#define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1)
94+#define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1)
95+#define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i)
96+#define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv)
97+#endif
98+#endif
99+
100 #if defined(__or1k__)
101 #if defined(__GNUC__)
102 /* Use GCC built-in functions */
diff --git a/meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch b/meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch
new file mode 100644
index 000000000..90fe45f34
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch
@@ -0,0 +1,103 @@
1From 8a592e4ead4ed6befe6044da3dd2dc7523c33905 Mon Sep 17 00:00:00 2001
2From: Mingli Yu <Mingli.Yu@windriver.com>
3Date: Fri, 16 Nov 2018 13:52:49 +0800
4Subject: [PATCH] Makefile.in: remove _BUILD_STRING and _BUILD_TIME
5
6Remove _BUILD_STRING and _BUILD_TIME to avoid
7adding timestamp to _pl_bld.h which can result
8in adding timestamp in library file such as
9libnspr4.so.
10 $ readelf --wide --decompress --hex-dump=.rodata libnspr4.so
11 [snip]
12 0x00004000 32303138 2d31312d 31352030 353a3439 2018-11-15 05:49
13 [snip]
14
15Upstream-Status: Pending
16
17Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
18---
19 lib/ds/Makefile.in | 8 +-------
20 lib/libc/src/Makefile.in | 8 +-------
21 lib/prstreams/Makefile.in | 8 +-------
22 pr/src/Makefile.in | 8 +-------
23 4 files changed, 4 insertions(+), 28 deletions(-)
24
25diff --git a/lib/ds/Makefile.in b/lib/ds/Makefile.in
26index e737791..b578476 100644
27--- a/lib/ds/Makefile.in
28+++ b/lib/ds/Makefile.in
29@@ -114,13 +114,7 @@ GARBAGE += $(TINC)
30
31 $(TINC):
32 @$(MAKE_OBJDIR)
33- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
34- @if test ! -z "$(SH_NOW)"; then \
35- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
36- else \
37- true; \
38- fi
39- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
40+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
41
42
43 $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
44diff --git a/lib/libc/src/Makefile.in b/lib/libc/src/Makefile.in
45index e8a6d9f..978ed28 100644
46--- a/lib/libc/src/Makefile.in
47+++ b/lib/libc/src/Makefile.in
48@@ -116,13 +116,7 @@ GARBAGE += $(TINC)
49
50 $(TINC):
51 @$(MAKE_OBJDIR)
52- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
53- @if test ! -z "$(SH_NOW)"; then \
54- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
55- else \
56- true; \
57- fi
58- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
59+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
60
61
62 $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
63diff --git a/lib/prstreams/Makefile.in b/lib/prstreams/Makefile.in
64index aeb2944..f318097 100644
65--- a/lib/prstreams/Makefile.in
66+++ b/lib/prstreams/Makefile.in
67@@ -116,13 +116,7 @@ endif
68
69 $(TINC):
70 @$(MAKE_OBJDIR)
71- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
72- @if test ! -z "$(SH_NOW)"; then \
73- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
74- else \
75- true; \
76- fi
77- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
78+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
79
80
81 $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
82diff --git a/pr/src/Makefile.in b/pr/src/Makefile.in
83index 19c5a69..b4ac31c 100644
84--- a/pr/src/Makefile.in
85+++ b/pr/src/Makefile.in
86@@ -326,13 +326,7 @@ GARBAGE += $(TINC)
87
88 $(TINC):
89 @$(MAKE_OBJDIR)
90- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
91- @if test ! -z "$(SH_NOW)"; then \
92- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
93- else \
94- true; \
95- fi
96- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
97+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
98
99
100 $(OBJDIR)/prvrsion.$(OBJ_SUFFIX): prvrsion.c $(TINC)
101--
1022.7.4
103
diff --git a/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch b/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
new file mode 100644
index 000000000..f12acc854
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
@@ -0,0 +1,52 @@
1Fix build failure on x86_64
2
3When the target_cpu is x86_64, we should assume that the pkg uses 64bit,
4only if USE_N32 is set, we can assume that the pkg uses 32bit. It used a
5opposite logic before.
6
7Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
8
9Upstream-Status: Pending
10---
11 configure.in | 12 ++++++------
12 1 files changed, 6 insertions(+), 6 deletions(-)
13
14Index: nspr/configure.in
15===================================================================
16--- nspr.orig/configure.in
17+++ nspr/configure.in
18@@ -1875,28 +1875,24 @@ tools are selected during the Xcode/Deve
19 PR_MD_ASFILES=os_Linux_ia64.s
20 ;;
21 x86_64)
22- if test -n "$USE_64"; then
23- PR_MD_ASFILES=os_Linux_x86_64.s
24- elif test -n "$USE_X32"; then
25+ if test -n "$USE_X32"; then
26+ AC_DEFINE(i386)
27 PR_MD_ASFILES=os_Linux_x86_64.s
28 CC="$CC -mx32"
29 CXX="$CXX -mx32"
30 else
31- AC_DEFINE(i386)
32- PR_MD_ASFILES=os_Linux_x86.s
33- CC="$CC -m32"
34- CXX="$CXX -m32"
35+ PR_MD_ASFILES=os_Linux_x86_64.s
36 fi
37 ;;
38 ppc|powerpc)
39 PR_MD_ASFILES=os_Linux_ppc.s
40 ;;
41 powerpc64)
42- if test -n "$USE_64"; then
43+ if test -n "$USE_N32"; then
44+ PR_MD_ASFILES=os_Linux_ppc.s
45+ else
46 CC="$CC -m64"
47 CXX="$CXX -m64"
48- else
49- PR_MD_ASFILES=os_Linux_ppc.s
50 fi
51 ;;
52 esac
diff --git a/meta-oe/recipes-support/nspr/nspr/nspr.pc.in b/meta-oe/recipes-support/nspr/nspr/nspr.pc.in
new file mode 100644
index 000000000..1f15d19cf
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/nspr.pc.in
@@ -0,0 +1,11 @@
1os_libs=-lpthread -ldl
2prefix=OEPREFIX
3exec_prefix=OEEXECPREFIX
4libdir=OELIBDIR
5includedir=OEINCDIR
6
7Name: NSPR
8Description: The Netscape Portable Runtime
9Version: NSPRVERSION
10Libs: -L${libdir} -lplds4 -lplc4 -lnspr4 -lpthread -ldl
11Cflags: -I${includedir}/nspr
diff --git a/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch b/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch
new file mode 100644
index 000000000..7ba59ed64
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch
@@ -0,0 +1,26 @@
1Author: Andrei Gherzan <andrei@gherzan.ro>
2Date: Thu Feb 9 00:03:38 2012 +0200
3
4Avoid QA warnings by removing hardcoded rpath from binaries.
5
6[...]
7WARNING: QA Issue: package nspr contains bad RPATH {builddir}/tmp/work/armv5te-poky-linux-gnueabi/nspr-4.8.9-r1/nspr-4.8.9/mozilla/nsprpub/pr/tests/../../dist/lib
8in file {builddir}/tmp/work/armv5te-poky-linux-gnueabi/nspr-4.8.9-r1/packages-split/nspr/usr/lib/nspr/tests/multiwait
9[...]
10
11Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
12Upstream-Status: Pending
13
14Index: nspr/pr/tests/Makefile.in
15===================================================================
16--- nspr.orig/pr/tests/Makefile.in
17+++ nspr/pr/tests/Makefile.in
18@@ -316,7 +316,7 @@ ifeq ($(OS_ARCH), SunOS)
19 endif # SunOS
20
21 ifeq (,$(filter-out Linux GNU GNU_%,$(OS_ARCH)))
22- LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
23+ LDOPTS += -Xlinker
24 ifeq ($(USE_PTHREADS),1)
25 EXTRA_LIBS = -lpthread
26 endif
diff --git a/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch b/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch
new file mode 100644
index 000000000..bde715c5d
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch
@@ -0,0 +1,19 @@
1the $srcdir is not defined at the time of gnu-configurize.
2
3Upstream-Status: Inappropriate [OE-Core specific]
4
5Signed-off-by: Saul Wold <sgw@linux.intel.com>
6
7Index: nspr/configure.in
8===================================================================
9--- nspr.orig/configure.in
10+++ nspr/configure.in
11@@ -8,7 +8,7 @@ AC_PREREQ(2.61)
12 AC_INIT
13 AC_CONFIG_SRCDIR([pr/include/nspr.h])
14
15-AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
16+AC_CONFIG_AUX_DIR(build/autoconf)
17 AC_CANONICAL_TARGET
18
19 dnl ========================================================
diff --git a/meta-oe/recipes-support/nspr/nspr_4.25.bb b/meta-oe/recipes-support/nspr/nspr_4.25.bb
new file mode 100644
index 000000000..1de26e1ee
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr_4.25.bb
@@ -0,0 +1,197 @@
1SUMMARY = "Netscape Portable Runtime Library"
2HOMEPAGE = "http://www.mozilla.org/projects/nspr/"
3LICENSE = "GPL-2.0 | MPL-2.0 | LGPL-2.1"
4LIC_FILES_CHKSUM = "file://configure.in;beginline=3;endline=6;md5=90c2fdee38e45d6302abcfe475c8b5c5 \
5 file://Makefile.in;beginline=4;endline=38;md5=beda1dbb98a515f557d3e58ef06bca99"
6SECTION = "libs/network"
7
8SRC_URI = "http://ftp.mozilla.org/pub/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz \
9 file://remove-rpath-from-tests.patch \
10 file://fix-build-on-x86_64.patch \
11 file://remove-srcdir-from-configure-in.patch \
12 file://0002-Add-nios2-support.patch \
13 file://0001-md-Fix-build-with-musl.patch \
14 file://Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch \
15 file://nspr.pc.in \
16"
17
18CACHED_CONFIGUREVARS_append_libc-musl = " CFLAGS='${CFLAGS} -D_PR_POLL_AVAILABLE \
19 -D_PR_HAVE_OFF64_T -D_PR_INET6 -D_PR_HAVE_INET_NTOP \
20 -D_PR_HAVE_GETHOSTBYNAME2 -D_PR_HAVE_GETADDRINFO \
21 -D_PR_INET6_PROBE -DNO_DLOPEN_NULL'"
22
23UPSTREAM_CHECK_URI = "http://ftp.mozilla.org/pub/nspr/releases/"
24UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+)/"
25
26SRC_URI[md5sum] = "4ca4d75a424f30fcdc766296bb103d17"
27SRC_URI[sha256sum] = "0bc309be21f91da4474c56df90415101c7f0c7c7cab2943cd943cd7896985256"
28
29CVE_PRODUCT = "netscape_portable_runtime"
30
31S = "${WORKDIR}/nspr-${PV}/nspr"
32
33RDEPENDS_${PN}-dev += "perl"
34TARGET_CC_ARCH += "${LDFLAGS}"
35
36TESTS = " \
37 accept \
38 acceptread \
39 acceptreademu \
40 affinity \
41 alarm \
42 anonfm \
43 atomic \
44 attach \
45 bigfile \
46 cleanup \
47 cltsrv \
48 concur \
49 cvar \
50 cvar2 \
51 dlltest \
52 dtoa \
53 errcodes \
54 exit \
55 fdcach \
56 fileio \
57 foreign \
58 formattm \
59 fsync \
60 gethost \
61 getproto \
62 i2l \
63 initclk \
64 inrval \
65 instrumt \
66 intrio \
67 intrupt \
68 io_timeout \
69 ioconthr \
70 join \
71 joinkk \
72 joinku \
73 joinuk \
74 joinuu \
75 layer \
76 lazyinit \
77 libfilename \
78 lltest \
79 lock \
80 lockfile \
81 logfile \
82 logger \
83 many_cv \
84 multiwait \
85 nameshm1 \
86 nblayer \
87 nonblock \
88 ntioto \
89 ntoh \
90 op_2long \
91 op_excl \
92 op_filnf \
93 op_filok \
94 op_nofil \
95 parent \
96 parsetm \
97 peek \
98 perf \
99 pipeping \
100 pipeping2 \
101 pipeself \
102 poll_nm \
103 poll_to \
104 pollable \
105 prftest \
106 primblok \
107 provider \
108 prpollml \
109 ranfile \
110 randseed \
111 reinit \
112 rwlocktest \
113 sel_spd \
114 selct_er \
115 selct_nm \
116 selct_to \
117 selintr \
118 sema \
119 semaerr \
120 semaping \
121 sendzlf \
122 server_test \
123 servr_kk \
124 servr_uk \
125 servr_ku \
126 servr_uu \
127 short_thread \
128 sigpipe \
129 socket \
130 sockopt \
131 sockping \
132 sprintf \
133 stack \
134 stdio \
135 str2addr \
136 strod \
137 switch \
138 system \
139 testbit \
140 testfile \
141 threads \
142 timemac \
143 timetest \
144 tpd \
145 udpsrv \
146 vercheck \
147 version \
148 writev \
149 xnotify \
150 zerolen"
151
152inherit autotools multilib_script
153
154MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/nspr-config"
155
156PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
157PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
158
159# Do not install nspr in usr/include, but in usr/include/nspr, the
160# preferred path upstream.
161EXTRA_OECONF += "--includedir=${includedir}/nspr"
162
163do_compile_prepend() {
164 oe_runmake CROSS_COMPILE=1 CFLAGS="-DXP_UNIX ${BUILD_CFLAGS}" LDFLAGS="" CC="${BUILD_CC}" -C config export
165}
166
167do_compile_append() {
168 oe_runmake -C pr/tests
169}
170
171do_install_append() {
172 install -D ${WORKDIR}/nspr.pc.in ${D}${libdir}/pkgconfig/nspr.pc
173 sed -i \
174 -e 's:NSPRVERSION:${PV}:g' \
175 -e 's:OEPREFIX:${prefix}:g' \
176 -e 's:OELIBDIR:${libdir}:g' \
177 -e 's:OEINCDIR:${includedir}:g' \
178 -e 's:OEEXECPREFIX:${exec_prefix}:g' \
179 ${D}${libdir}/pkgconfig/nspr.pc
180
181 mkdir -p ${D}${libdir}/nspr/tests
182 install -m 0755 ${S}/pr/tests/runtests.pl ${D}${libdir}/nspr/tests
183 install -m 0755 ${S}/pr/tests/runtests.sh ${D}${libdir}/nspr/tests
184 cd ${B}/pr/tests
185 install -m 0755 ${TESTS} ${D}${libdir}/nspr/tests
186
187 # delete compile-et.pl and perr.properties from ${bindir} because these are
188 # only used to generate prerr.c and prerr.h files from prerr.et at compile
189 # time
190 rm ${D}${bindir}/compile-et.pl ${D}${bindir}/prerr.properties
191}
192
193FILES_${PN} = "${libdir}/lib*.so"
194FILES_${PN}-dev = "${bindir}/* ${libdir}/nspr/tests/* ${libdir}/pkgconfig \
195 ${includedir}/* ${datadir}/aclocal/* "
196
197BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch b/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
new file mode 100644
index 000000000..c380c1449
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
@@ -0,0 +1,52 @@
1From 5595e9651aca39af945931c73eb524a0f8bd130d Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Wed, 18 Dec 2019 12:29:50 +0100
4Subject: [PATCH] freebl: add a configure option to disable ARM HW crypto
5
6Not all current hardware supports it, particularly anything
7prior to armv8 does not.
8
9Upstream-Status: Pending
10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11---
12 nss/lib/freebl/Makefile | 3 +++
13 1 file changed, 3 insertions(+)
14
15--- a/nss/lib/freebl/Makefile
16+++ b/nss/lib/freebl/Makefile
17@@ -125,6 +125,9 @@ else
18 DEFINES += -DNSS_X86
19 endif
20 endif
21+
22+ifdef NSS_USE_ARM_HW_CRYPTO
23+ DEFINES += -DNSS_USE_ARM_HW_CRYPTO
24 ifeq ($(CPU_ARCH),aarch64)
25 DEFINES += -DUSE_HW_AES
26 EXTRA_SRCS += aes-armv8.c gcm-aarch64.c
27@@ -146,6 +149,7 @@ ifeq ($(CPU_ARCH),arm)
28 endif
29 endif
30 endif
31+endif
32
33 ifeq ($(OS_TARGET),OSF1)
34 DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD
35--- a/nss/lib/freebl/gcm.c
36+++ b/nss/lib/freebl/gcm.c
37@@ -17,6 +17,7 @@
38
39 #include <limits.h>
40
41+#ifdef NSS_USE_ARM_HW_CRYPTO
42 /* old gcc doesn't support some poly64x2_t intrinsic */
43 #if defined(__aarch64__) && defined(IS_LITTLE_ENDIAN) && \
44 (defined(__clang__) || defined(__GNUC__) && __GNUC__ > 6)
45@@ -25,6 +26,7 @@
46 /* We don't test on big endian platform, so disable this on big endian. */
47 #define USE_ARM_GCM
48 #endif
49+#endif
50
51 /* Forward declarations */
52 SECStatus gcm_HashInit_hw(gcmHashContext *ghash);
diff --git a/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch b/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
new file mode 100644
index 000000000..d5403397e
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
@@ -0,0 +1,48 @@
1From 0cf47ee432cc26a706864fcc09b2c3adc342a679 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Wed, 22 Feb 2017 11:36:11 +0200
4Subject: [PATCH] nss: fix support cross compiling
5
6Let some make variables be assigned from outside makefile.
7
8Upstream-Status: Inappropriate [configuration]
9Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11---
12 nss/coreconf/arch.mk | 2 +-
13 nss/lib/freebl/Makefile | 6 ++++++
14 2 files changed, 7 insertions(+), 1 deletion(-)
15
16diff --git a/nss/coreconf/arch.mk b/nss/coreconf/arch.mk
17index 06c276f..9c1eb51 100644
18--- a/nss/coreconf/arch.mk
19+++ b/nss/coreconf/arch.mk
20@@ -30,7 +30,7 @@ OS_TEST := $(shell uname -m)
21 ifeq ($(OS_TEST),i86pc)
22 OS_RELEASE := $(shell uname -r)_$(OS_TEST)
23 else
24- OS_RELEASE := $(shell uname -r)
25+ OS_RELEASE ?= $(shell uname -r)
26 endif
27
28 #
29diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
30index 0ce1425..ebeb411 100644
31--- a/nss/lib/freebl/Makefile
32+++ b/nss/lib/freebl/Makefile
33@@ -36,6 +36,12 @@ ifdef USE_64
34 DEFINES += -DNSS_USE_64
35 endif
36
37+ifeq ($(OS_TEST),mips)
38+ifndef USE_64
39+ DEFINES += -DNS_PTR_LE_32
40+endif
41+endif
42+
43 ifdef USE_ABI32_FPU
44 DEFINES += -DNSS_USE_ABI32_FPU
45 endif
46--
472.11.0
48
diff --git a/meta-oe/recipes-support/nss/nss/blank-cert9.db b/meta-oe/recipes-support/nss/nss/blank-cert9.db
new file mode 100644
index 000000000..7d4bcf258
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/blank-cert9.db
Binary files differ
diff --git a/meta-oe/recipes-support/nss/nss/blank-key4.db b/meta-oe/recipes-support/nss/nss/blank-key4.db
new file mode 100644
index 000000000..d47f08d04
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/blank-key4.db
Binary files differ
diff --git a/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch b/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
new file mode 100644
index 000000000..de812d27b
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
@@ -0,0 +1,33 @@
1clang 3.9 add this warning to rightly flag undefined
2behavior, we relegate this to be just a warning instead
3of error and keep the behavior as it was. Right fix would
4be to not pass enum to the function with variadic arguments
5as last named argument
6
7Fixes errors like
8ocsp.c:2220:22: error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs]
9 va_start(ap, responseType0);
10 ^
11ocsp.c:2200:43: note: parameter of type 'SECOidTag' is declared here
12 SECOidTag responseType0, ...)
13
14see
15https://www.securecoding.cert.org/confluence/display/cplusplus/EXP58-CPP.+Pass+an+object+of+the+correct+type+to+va_start
16for more details
17
18Signed-off-by: Khem Raj <raj.khem@gmail.com>
19Upstream-Status: Pending
20
21Index: nss-3.37.1/nss/coreconf/Werror.mk
22===================================================================
23--- nss-3.37.1.orig/nss/coreconf/Werror.mk
24+++ nss-3.37.1/nss/coreconf/Werror.mk
25@@ -56,7 +56,7 @@ ifndef WARNING_CFLAGS
26 ifdef CC_IS_CLANG
27 # -Qunused-arguments : clang objects to arguments that it doesn't understand
28 # and fixing this would require rearchitecture
29- WARNING_CFLAGS += -Qunused-arguments
30+ WARNING_CFLAGS += -Qunused-arguments -Wno-error=varargs
31 # -Wno-parentheses-equality : because clang warns about macro expansions
32 WARNING_CFLAGS += $(call disable_warning,parentheses-equality)
33 ifdef BUILD_OPT
diff --git a/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch b/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
new file mode 100644
index 000000000..547594d5b
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
@@ -0,0 +1,110 @@
1nss: fix incorrect shebang of perl
2
3Replace incorrect shebang of perl with `#!/usr/bin/env perl'.
4
5Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
6Upstream-Status: Pending
7---
8 nss/cmd/smimetools/smime | 2 +-
9 nss/coreconf/cpdist.pl | 2 +-
10 nss/coreconf/import.pl | 2 +-
11 nss/coreconf/jniregen.pl | 2 +-
12 nss/coreconf/outofdate.pl | 2 +-
13 nss/coreconf/release.pl | 2 +-
14 nss/coreconf/version.pl | 2 +-
15 nss/tests/clean_tbx | 2 +-
16 nss/tests/path_uniq | 2 +-
17 9 files changed, 9 insertions(+), 9 deletions(-)
18
19diff --git a/nss/cmd/smimetools/smime b/nss/cmd/smimetools/smime
20--- a/nss/cmd/smimetools/smime
21+++ b/nss/cmd/smimetools/smime
22@@ -1,4 +1,4 @@
23-#!/usr/local/bin/perl
24+#!/usr/bin/env perl
25
26 # This Source Code Form is subject to the terms of the Mozilla Public
27 # License, v. 2.0. If a copy of the MPL was not distributed with this
28diff --git a/nss/coreconf/cpdist.pl b/nss/coreconf/cpdist.pl
29index 800edfb..652187f 100755
30--- a/nss/coreconf/cpdist.pl
31+++ b/nss/coreconf/cpdist.pl
32@@ -1,4 +1,4 @@
33-#! /usr/local/bin/perl
34+#!/usr/bin/env perl
35 #
36 # This Source Code Form is subject to the terms of the Mozilla Public
37 # License, v. 2.0. If a copy of the MPL was not distributed with this
38diff --git a/nss/coreconf/import.pl b/nss/coreconf/import.pl
39index dd2d177..428eaa5 100755
40--- a/nss/coreconf/import.pl
41+++ b/nss/coreconf/import.pl
42@@ -1,4 +1,4 @@
43-#! /usr/local/bin/perl
44+#!/usr/bin/env perl
45 #
46 # This Source Code Form is subject to the terms of the Mozilla Public
47 # License, v. 2.0. If a copy of the MPL was not distributed with this
48diff --git a/nss/coreconf/jniregen.pl b/nss/coreconf/jniregen.pl
49index 2039180..5f4f69c 100755
50--- a/nss/coreconf/jniregen.pl
51+++ b/nss/coreconf/jniregen.pl
52@@ -1,4 +1,4 @@
53-#!/usr/local/bin/perl
54+#!/usr/bin/env perl
55 #
56 # This Source Code Form is subject to the terms of the Mozilla Public
57 # License, v. 2.0. If a copy of the MPL was not distributed with this
58diff --git a/nss/coreconf/outofdate.pl b/nss/coreconf/outofdate.pl
59index 33d80bb..01fc097 100755
60--- a/nss/coreconf/outofdate.pl
61+++ b/nss/coreconf/outofdate.pl
62@@ -1,4 +1,4 @@
63-#!/usr/local/bin/perl
64+#!/usr/bin/env perl
65 #
66 # This Source Code Form is subject to the terms of the Mozilla Public
67 # License, v. 2.0. If a copy of the MPL was not distributed with this
68diff --git a/nss/coreconf/release.pl b/nss/coreconf/release.pl
69index 7cde19d..b5df2f6 100755
70--- a/nss/coreconf/release.pl
71+++ b/nss/coreconf/release.pl
72@@ -1,4 +1,4 @@
73-#! /usr/local/bin/perl
74+#!/usr/bin/env perl
75 #
76 # This Source Code Form is subject to the terms of the Mozilla Public
77 # License, v. 2.0. If a copy of the MPL was not distributed with this
78diff --git a/nss/coreconf/version.pl b/nss/coreconf/version.pl
79index d2a4942..79359fe 100644
80--- a/nss/coreconf/version.pl
81+++ b/nss/coreconf/version.pl
82@@ -1,4 +1,4 @@
83-#!/usr/sbin/perl
84+#!/usr/bin/env perl
85 #
86 # This Source Code Form is subject to the terms of the Mozilla Public
87 # License, v. 2.0. If a copy of the MPL was not distributed with this
88diff --git a/nss/tests/clean_tbx b/nss/tests/clean_tbx
89index 4de9555..a7def9f 100755
90--- a/nss/tests/clean_tbx
91+++ b/nss/tests/clean_tbx
92@@ -1,4 +1,4 @@
93-#! /bin/perl
94+#!/usr/bin/env perl
95
96 #######################################################################
97 #
98diff --git a/nss/tests/path_uniq b/nss/tests/path_uniq
99index f29f60a..08fbffa 100755
100--- a/nss/tests/path_uniq
101+++ b/nss/tests/path_uniq
102@@ -1,4 +1,4 @@
103-#! /bin/perl
104+#!/usr/bin/env perl
105
106 ########################################################################
107 #
108--
1091.8.1.2
110
diff --git a/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch b/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
new file mode 100644
index 000000000..43c09d13e
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
@@ -0,0 +1,36 @@
1Fix nss multilib build on openSUSE 11.x 32bit
2
3While building lib64-nss on openSUSE 11.x 32bit, the nsinstall will
4fail with error:
5
6* nsinstall.c:1:0: sorry, unimplemented: 64-bit mode not compiled
7
8It caused by the '-m64' option which passed to host gcc.
9
10The nsinstall was built first while nss starting to build, it only runs
11on host to install built files, it doesn't need any cross-compling or
12multilib build options. Just clean the ARCHFLAG and LDFLAGS to fix this
13error.
14
15Upstream-Status: Pending
16
17Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
18===================================================
19Index: nss-3.24/nss/coreconf/nsinstall/Makefile
20===================================================================
21--- nss-3.24.orig/nss/coreconf/nsinstall/Makefile
22+++ nss-3.24/nss/coreconf/nsinstall/Makefile
23@@ -18,6 +18,13 @@ INTERNAL_TOOLS = 1
24
25 include $(DEPTH)/coreconf/config.mk
26
27+# nsinstall is unfit for cross-compiling/multilib-build since it was
28+# always run on local host to install built files. This change intends
29+# to clean the '-m64' from ARCHFLAG and LDFLAGS.
30+ARCHFLAG =
31+LDFLAGS =
32+# CFLAGS =
33+
34 ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
35 PROGRAM =
36 else
diff --git a/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch b/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
new file mode 100644
index 000000000..7661dc93a
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
@@ -0,0 +1,26 @@
1nss:no rpath for cross compiling
2
3Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
4Upstream-Status: Inappropriate [configuration]
5---
6 nss/cmd/platlibs.mk | 4 ++--
7 1 file changed, 2 insertions(+), 2 deletions(-)
8
9diff --git a/nss/cmd/platlibs.mk b/nss/cmd/platlibs.mk
10--- a/nss/cmd/platlibs.mk
11+++ b/nss/cmd/platlibs.mk
12@@ -18,9 +18,9 @@ endif
13
14 ifeq ($(OS_ARCH), Linux)
15 ifeq ($(USE_64), 1)
16-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:/opt/sun/private/lib64:$$ORIGIN/../lib'
17+#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:/opt/sun/private/lib64:$$ORIGIN/../lib'
18 else
19-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib:/opt/sun/private/lib'
20+#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib:/opt/sun/private/lib'
21 endif
22 endif
23
24--
251.8.1.2
26
diff --git a/meta-oe/recipes-support/nss/nss/nss.pc.in b/meta-oe/recipes-support/nss/nss/nss.pc.in
new file mode 100644
index 000000000..402b4ecb3
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/nss.pc.in
@@ -0,0 +1,11 @@
1prefix=OEPREFIX
2exec_prefix=OEEXECPREFIX
3libdir=OELIBDIR
4includedir=OEINCDIR
5
6Name: NSS
7Description: Network Security Services
8Version: %NSS_VERSION%
9Requires: nspr >= %NSPR_VERSION%
10Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lsoftokn3 -lnssutil3
11Cflags: -IOEINCDIR
diff --git a/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch b/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch
new file mode 100644
index 000000000..3a817faaa
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch
@@ -0,0 +1,23 @@
1nss does not build on mips with clang because wrong types are used?
2
3pqg.c:339:16: error: comparison of constant 18446744073709551615 with expression of type 'unsigned long' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
4 if (addend < MP_DIGIT_MAX) {
5 ~~~~~~ ^ ~~~~~~~~~~~~
6
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8Upstream-Status: Pending
9Index: nss-3.37.1/nss/lib/freebl/pqg.c
10===================================================================
11--- nss-3.37.1.orig/nss/lib/freebl/pqg.c
12+++ nss-3.37.1/nss/lib/freebl/pqg.c
13@@ -326,8 +326,8 @@ generate_h_candidate(SECItem *hit, mp_in
14
15 static SECStatus
16 addToSeed(const SECItem *seed,
17- unsigned long addend,
18- int seedlen, /* g in 186-1 */
19+ unsigned long long addend,
20+ int seedlen, /* g in 186-1 */
21 SECItem *seedout)
22 {
23 mp_int s, sum, modulus, tmp;
diff --git a/meta-oe/recipes-support/nss/nss/signlibs.sh b/meta-oe/recipes-support/nss/nss/signlibs.sh
new file mode 100644
index 000000000..a74e499f8
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/signlibs.sh
@@ -0,0 +1,20 @@
1#!/bin/sh
2
3# signlibs.sh
4#
5# (c)2010 Wind River Systems, Inc.
6#
7# regenerates the .chk files for the NSS libraries that require it
8# since the ones that are built have incorrect checksums that were
9# calculated on the host where they really need to be done on the
10# target
11
12CHK_FILES=`ls /lib*/*.chk /usr/lib*/*.chk 2>/dev/null`
13SIGN_BINARY=`which shlibsign`
14for I in $CHK_FILES
15do
16 DN=`dirname $I`
17 BN=`basename $I .chk`
18 FN=$DN/$BN.so
19 $SIGN_BINARY -i $FN
20done
diff --git a/meta-oe/recipes-support/nss/nss/system-pkcs11.txt b/meta-oe/recipes-support/nss/nss/system-pkcs11.txt
new file mode 100644
index 000000000..1a264e9cc
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/system-pkcs11.txt
@@ -0,0 +1,5 @@
1library=
2name=NSS Internal PKCS #11 Module
3parameters=configdir='sql:/etc/pki/nssdb' certPrefix='' keyPrefix='' secmod='secmod.db' flags= updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription=''
4NSS=Flags=internal,critical trustOrder=75 cipherOrder=100 slotParams=(1={slotFlags=[ECC,RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512] askpw=any timeout=30})
5
diff --git a/meta-oe/recipes-support/nss/nss_3.50.bb b/meta-oe/recipes-support/nss/nss_3.50.bb
new file mode 100644
index 000000000..e9855d7a7
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss_3.50.bb
@@ -0,0 +1,273 @@
1SUMMARY = "Mozilla's SSL and TLS implementation"
2DESCRIPTION = "Network Security Services (NSS) is a set of libraries \
3designed to support cross-platform development of \
4security-enabled client and server applications. \
5Applications built with NSS can support SSL v2 and v3, \
6TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 \
7v3 certificates, and other security standards."
8HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/"
9SECTION = "libs"
10
11DEPENDS = "sqlite3 nspr zlib nss-native"
12DEPENDS_class-native = "sqlite3-native nspr-native zlib-native"
13
14LICENSE = "MPL-2.0 | (MPL-2.0 & GPL-2.0+) | (MPL-2.0 & LGPL-2.1+)"
15
16LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \
17 file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
18 file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132"
19
20VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') + '_RTM'}"
21
22SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz \
23 file://nss.pc.in \
24 file://signlibs.sh \
25 file://0001-nss-fix-support-cross-compiling.patch \
26 file://nss-no-rpath-for-cross-compiling.patch \
27 file://nss-fix-incorrect-shebang-of-perl.patch \
28 file://disable-Wvarargs-with-clang.patch \
29 file://pqg.c-ULL_addend.patch \
30 file://blank-cert9.db \
31 file://blank-key4.db \
32 file://system-pkcs11.txt \
33 file://nss-fix-nsinstall-build.patch \
34 file://0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch \
35 "
36
37SRC_URI[md5sum] = "e0366615e12b147cebc136c915baea37"
38SRC_URI[sha256sum] = "185df319775243f5f5daa9d49b7f9cc5f2b389435be3247c3376579bee063ba7"
39
40UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases"
41UPSTREAM_CHECK_REGEX = "NSS_(?P<pver>.+)_release_notes"
42
43inherit siteinfo
44
45TD = "${S}/tentative-dist"
46TDS = "${S}/tentative-dist-staging"
47
48TARGET_CC_ARCH += "${LDFLAGS}"
49
50do_configure_prepend_libc-musl () {
51 sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk
52}
53
54do_compile_prepend_class-native() {
55 export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE}/nspr
56 export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE}
57 export NSS_ENABLE_WERROR=0
58}
59
60do_compile_prepend_class-nativesdk() {
61 export LDFLAGS=""
62}
63
64do_compile_prepend_class-native() {
65 # Need to set RPATH so that chrpath will do its job correctly
66 RPATH="-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE}"
67}
68
69do_compile() {
70 export NSPR_INCLUDE_DIR=${STAGING_INCDIR}/nspr
71
72 export CROSS_COMPILE=1
73 export NATIVE_CC="${BUILD_CC}"
74 # Additional defines needed on Centos 7
75 export NATIVE_FLAGS="${BUILD_CFLAGS} -DLINUX -Dlinux"
76 export BUILD_OPT=1
77
78 export FREEBL_NO_DEPEND=1
79 export FREEBL_LOWHASH=1
80
81 export LIBDIR=${libdir}
82 export MOZILLA_CLIENT=1
83 export NS_USE_GCC=1
84 export NSS_USE_SYSTEM_SQLITE=1
85 export NSS_ENABLE_ECC=1
86
87 ${@bb.utils.contains("TUNE_FEATURES", "crypto", "export NSS_USE_ARM_HW_CRYPTO=1", "", d)}
88
89 export OS_RELEASE=3.4
90 export OS_TARGET=Linux
91 export OS_ARCH=Linux
92
93 if [ "${TARGET_ARCH}" = "powerpc" ]; then
94 OS_TEST=ppc
95 elif [ "${TARGET_ARCH}" = "powerpc64" ]; then
96 OS_TEST=ppc64
97 elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
98 OS_TEST=mips
99 elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
100 OS_TEST="aarch64"
101 else
102 OS_TEST="${TARGET_ARCH}"
103 fi
104
105 if [ "${SITEINFO_BITS}" = "64" ]; then
106 export USE_64=1
107 elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
108 export USE_X32=1
109 fi
110
111 export NSS_DISABLE_GTESTS=1
112
113 # We can modify CC in the environment, but if we set it via an
114 # argument to make, nsinstall, a host program, will also build with it!
115 #
116 # nss pretty much does its own thing with CFLAGS, so we put them into CC.
117 # Optimization will get clobbered, but most of the stuff will survive.
118 # The motivation for this is to point to the correct place for debug
119 # source files and CFLAGS does that. Nothing uses CCC.
120 #
121 export CC="${CC} ${CFLAGS}"
122 make -C ./nss CCC="${CXX} -g" \
123 OS_TEST=${OS_TEST} \
124 RPATH="${RPATH}"
125}
126
127do_compile[vardepsexclude] += "SITEINFO_BITS"
128
129do_install_prepend_class-nativesdk() {
130 export LDFLAGS=""
131}
132
133do_install() {
134 export CROSS_COMPILE=1
135 export NATIVE_CC="${BUILD_CC}"
136 export BUILD_OPT=1
137
138 export FREEBL_NO_DEPEND=1
139
140 export LIBDIR=${libdir}
141 export MOZILLA_CLIENT=1
142 export NS_USE_GCC=1
143 export NSS_USE_SYSTEM_SQLITE=1
144 export NSS_ENABLE_ECC=1
145
146 export OS_RELEASE=3.4
147 export OS_TARGET=Linux
148 export OS_ARCH=Linux
149
150 if [ "${TARGET_ARCH}" = "powerpc" ]; then
151 OS_TEST=ppc
152 elif [ "${TARGET_ARCH}" = "powerpc64" ]; then
153 OS_TEST=ppc64
154 elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
155 OS_TEST=mips
156 elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
157 CPU_ARCH=aarch64
158 OS_TEST="aarch64"
159 else
160 OS_TEST="${TARGET_ARCH}"
161 fi
162 if [ "${SITEINFO_BITS}" = "64" ]; then
163 export USE_64=1
164 elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
165 export USE_X32=1
166 fi
167
168 export NSS_DISABLE_GTESTS=1
169
170 make -C ./nss \
171 CCC="${CXX}" \
172 OS_TEST=${OS_TEST} \
173 SOURCE_LIB_DIR="${TD}/${libdir}" \
174 SOURCE_BIN_DIR="${TD}/${bindir}" \
175 install
176
177 install -d ${D}/${libdir}/
178 for file in ${S}/dist/*.OBJ/lib/*.so; do
179 echo "Installing `basename $file`..."
180 cp $file ${D}/${libdir}/
181 done
182
183 for shared_lib in ${TD}/${libdir}/*.so.*; do
184 if [ -f $shared_lib ]; then
185 cp $shared_lib ${D}/${libdir}
186 ln -sf $(basename $shared_lib) ${D}/${libdir}/$(basename $shared_lib .1oe)
187 fi
188 done
189 for shared_lib in ${TD}/${libdir}/*.so; do
190 if [ -f $shared_lib -a ! -e ${D}/${libdir}/$shared_lib ]; then
191 cp $shared_lib ${D}/${libdir}
192 fi
193 done
194
195 install -d ${D}/${includedir}/nss3
196 install -m 644 -t ${D}/${includedir}/nss3 dist/public/nss/*
197
198 install -d ${D}/${bindir}
199 for binary in ${TD}/${bindir}/*; do
200 install -m 755 -t ${D}/${bindir} $binary
201 done
202}
203
204do_install[vardepsexclude] += "SITEINFO_BITS"
205
206do_install_append() {
207 # Create empty .chk files for the NSS libraries at build time. They could
208 # be regenerated at target's boot time.
209 for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do
210 touch ${D}/${libdir}/$file
211 chmod 755 ${D}/${libdir}/$file
212 done
213 install -D -m 755 ${WORKDIR}/signlibs.sh ${D}/${bindir}/signlibs.sh
214
215 install -d ${D}${libdir}/pkgconfig/
216 sed 's/%NSS_VERSION%/${PV}/' ${WORKDIR}/nss.pc.in | sed 's/%NSPR_VERSION%/4.9.2/' > ${D}${libdir}/pkgconfig/nss.pc
217 sed -i s:OEPREFIX:${prefix}:g ${D}${libdir}/pkgconfig/nss.pc
218 sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc
219 sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc
220 sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc
221}
222
223do_install_append_class-target() {
224 # It used to call certutil to create a blank certificate with empty password at
225 # build time, but the checksum of key4.db changes every time when certutil is called.
226 # It causes non-determinism issue, so provide databases with a blank certificate
227 # which are originally from output of nss in qemux86-64 build. You can get these
228 # databases by:
229 # certutil -N -d sql:/database/path/ --empty-password
230 install -d ${D}${sysconfdir}/pki/nssdb/
231 install -m 0644 ${WORKDIR}/blank-cert9.db ${D}${sysconfdir}/pki/nssdb/cert9.db
232 install -m 0644 ${WORKDIR}/blank-key4.db ${D}${sysconfdir}/pki/nssdb/key4.db
233 install -m 0644 ${WORKDIR}/system-pkcs11.txt ${D}${sysconfdir}/pki/nssdb/pkcs11.txt
234}
235
236PACKAGE_WRITE_DEPS += "nss-native"
237pkg_postinst_${PN} () {
238 if [ -n "$D" ]; then
239 for I in $D${libdir}/lib*.chk; do
240 DN=`dirname $I`
241 BN=`basename $I .chk`
242 FN=$DN/$BN.so
243 shlibsign -i $FN
244 if [ $? -ne 0 ]; then
245 exit 1
246 fi
247 done
248 else
249 signlibs.sh
250 fi
251}
252
253PACKAGES =+ "${PN}-smime"
254FILES_${PN}-smime = "\
255 ${bindir}/smime \
256"
257
258FILES_${PN} = "\
259 ${sysconfdir} \
260 ${bindir} \
261 ${libdir}/lib*.chk \
262 ${libdir}/lib*.so \
263 "
264
265FILES_${PN}-dev = "\
266 ${libdir}/nss \
267 ${libdir}/pkgconfig/* \
268 ${includedir}/* \
269 "
270
271RDEPENDS_${PN}-smime = "perl"
272
273BBCLASSEXTEND = "native nativesdk"