Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 531846 | Differences between
and this patch

Collapse All | Expand All

(-)a/dev-libs/nss/Manifest (+4 lines)
Lines 3-10 AUX nss-3.15-gentoo-fixup-warnings.patch 177 SHA256 3bb300d8448f769beb97b110a0fe Link Here
3
AUX nss-3.15-gentoo-fixups.patch 5255 SHA256 eba46da3424640a0f16c7b07e526c373f3739dbfe6fb1e5a2af4d7b7fb83e4e2 SHA512 a1968a1e77a34a9ec4718b48435190c698cb960fb138a23a2f136b08ca50e221b2d5a729d69210eafcc7aafe12f3e02b329c7a878c1e9e308c3e737c2e7a1b71 WHIRLPOOL 54ff1716c8b016d38b83aa82c8473bea468710ed72d237ca0ea1d6201c39e141b7f32938c8a9f870c4693421f42751ce6f6c4bafd1d80a53e3bd17170ccf5f7a
3
AUX nss-3.15-gentoo-fixups.patch 5255 SHA256 eba46da3424640a0f16c7b07e526c373f3739dbfe6fb1e5a2af4d7b7fb83e4e2 SHA512 a1968a1e77a34a9ec4718b48435190c698cb960fb138a23a2f136b08ca50e221b2d5a729d69210eafcc7aafe12f3e02b329c7a878c1e9e308c3e737c2e7a1b71 WHIRLPOOL 54ff1716c8b016d38b83aa82c8473bea468710ed72d237ca0ea1d6201c39e141b7f32938c8a9f870c4693421f42751ce6f6c4bafd1d80a53e3bd17170ccf5f7a
4
AUX nss-3.15.4-enable-pem.patch 243 SHA256 eec796bbc845b123f97bcf1f351495ec1645a2d015e6f6bcdb1e088d02f5d1e6 SHA512 b8f942ced3ff6cea1d54934e0e68ad589585f3fd42934046d0b57563fd4e24b50ad550db391346768abdd9848c3457a532fe3b7495862454f9a52a4603e92f9c WHIRLPOOL 0cd2428516e8a63d64c20b94153f079c4cefd96c05155fa27ecb4cba68419e5efebd32d6ab4820b072fea173e66b5816d8cc238f2a328616f5b7752c60e3998e
4
AUX nss-3.15.4-enable-pem.patch 243 SHA256 eec796bbc845b123f97bcf1f351495ec1645a2d015e6f6bcdb1e088d02f5d1e6 SHA512 b8f942ced3ff6cea1d54934e0e68ad589585f3fd42934046d0b57563fd4e24b50ad550db391346768abdd9848c3457a532fe3b7495862454f9a52a4603e92f9c WHIRLPOOL 0cd2428516e8a63d64c20b94153f079c4cefd96c05155fa27ecb4cba68419e5efebd32d6ab4820b072fea173e66b5816d8cc238f2a328616f5b7752c60e3998e
5
AUX nss-3.16-musl.patch 352 SHA256 8e04dbf5088adaf121379350f58510b52a594c9a3725cd62fd4282c0069dac76 SHA512 4a8d53c5ff847bb32b0e0c79d072fe45525110773e1e36299ac5ba0d0a046e73360681208f0b64c0a36a9ec3da8a2776ca659b8a5446fe0abf17cd7da131d594 WHIRLPOOL 5e9bb130b9aa7c1fb939e1953a6a5aa38fec2cd80953e33efd2333e7e242dc7a7a575309fa3b3e067d97acb0eca41bb954beb5cab1fba1b1d1d23c576fbaea1b
5
AUX nss-3.16-musl.patch 352 SHA256 8e04dbf5088adaf121379350f58510b52a594c9a3725cd62fd4282c0069dac76 SHA512 4a8d53c5ff847bb32b0e0c79d072fe45525110773e1e36299ac5ba0d0a046e73360681208f0b64c0a36a9ec3da8a2776ca659b8a5446fe0abf17cd7da131d594 WHIRLPOOL 5e9bb130b9aa7c1fb939e1953a6a5aa38fec2cd80953e33efd2333e7e242dc7a7a575309fa3b3e067d97acb0eca41bb954beb5cab1fba1b1d1d23c576fbaea1b
6
AUX nss-3.17.1-gentoo-fixups.patch 5415 SHA256 b28efbafe7be3adec9fba08fa79e28052982ae8ec8ffd8d0850be22ff1def134 SHA512 f3e64aee5b5c3c3135caa414baa76bded87737c807e69525b2214b8b44e53cf9a837275b39892ef8ecfe05ff26fd06f199c2e8b192479716ae2e80ff34b52f10 WHIRLPOOL 3c9bf7c872a72955a6e83901f3a20febcba80e14a924fc83e4845882225027bdb17263bc9824f87535937dab48c2d49bbc44e114dd13b8c32d4bd222dc5fa6fd
6
DIST nss-3.14.1-add_spi+cacerts_ca_certs.patch 25018 SHA256 82ca25982828fd7153ad15fc6e81408c115476eeeb4045d3a71469380b56824b SHA512 2aafbd972b073061bfd66a66a4b50060691957f2910f716f7a69d22d655c499f186f05db2101bea5248a00949f339327ba8bfffec024c61c8ee908766201ae00 WHIRLPOOL c9fe397e316dac7983b187acf7227078ebd8f8da5df53f77f2564489e85f123c4d2afb88d56e8dc14b9ebfffe8a71ade4724b3c1ea683c5c4c487cb3a64eda43
7
DIST nss-3.14.1-add_spi+cacerts_ca_certs.patch 25018 SHA256 82ca25982828fd7153ad15fc6e81408c115476eeeb4045d3a71469380b56824b SHA512 2aafbd972b073061bfd66a66a4b50060691957f2910f716f7a69d22d655c499f186f05db2101bea5248a00949f339327ba8bfffec024c61c8ee908766201ae00 WHIRLPOOL c9fe397e316dac7983b187acf7227078ebd8f8da5df53f77f2564489e85f123c4d2afb88d56e8dc14b9ebfffe8a71ade4724b3c1ea683c5c4c487cb3a64eda43
7
DIST nss-3.16.tar.gz 6378110 SHA256 2bb4faa200962caacf0454f1e870e74aa9a543809e5c440f7978bcce58e0bfe8 SHA512 e3dcde8213f7f131fe2f714ff2f45c6d7b9b2167e51dbf0e1a750cc4f83d9fa35e69408850de6600f55fbc9e26b29dc344548cb64849d6e3252476eadd7ee57f WHIRLPOOL d30b53ec36cacff9756b43780d904e32760cd5d0b75f1888b6fb80e0a87ce828f4e6189de63880ddce90bdf5d90123ff7e9fdf600f4df02ce59702898f08c11e
8
DIST nss-3.16.tar.gz 6378110 SHA256 2bb4faa200962caacf0454f1e870e74aa9a543809e5c440f7978bcce58e0bfe8 SHA512 e3dcde8213f7f131fe2f714ff2f45c6d7b9b2167e51dbf0e1a750cc4f83d9fa35e69408850de6600f55fbc9e26b29dc344548cb64849d6e3252476eadd7ee57f WHIRLPOOL d30b53ec36cacff9756b43780d904e32760cd5d0b75f1888b6fb80e0a87ce828f4e6189de63880ddce90bdf5d90123ff7e9fdf600f4df02ce59702898f08c11e
9
DIST nss-3.17.4.tar.gz 6924699 SHA256 1d98ad1881a4237ec98cbe472fc851480f0b0e954dfe224d047811fb96ff9d79 SHA512 dfc44e28c303743a72b4553f471089bc991c3cb61d5f3071082c16400d5e4f216f84a2e44536570316fe0e798c14ca370c875dad791a873034595b9e4dd70b89 WHIRLPOOL bb6e1027c5237d12fe58b4c520536022d8d4e83183a78c3421fd46bf9c3503b1f0ca4644240e383f216ec1e5174c0ae4148372db68fb9f1c10275954559d5bbf
10
DIST nss-pem-015ae754dd9f6fbcd7e52030ec9732eb27fc06a8.tar.bz2 27506 SHA256 50d9ec26a75835e900302f631456e278e13d4b435b8f98aa69f79dd439ddc6ab SHA512 0158a140f112a905f7db5a4f4d04f49f6742db1d2665ddf6c32913c367f0b93a57f86ba13b9883a42a528aff44c48196941d7c0fd7a27005db6adaf07802e501 WHIRLPOOL 279ef11d2d6f0cb7c192189d64bc6971cdada7417b93a65a3ff0ba4548b736b53b9812803024c2349114e94e0864f2b58c23812687ed3f75cf28334b0f6e11ac
8
DIST nss-pem-3ade37c5c4ca5a6094e3f4b2e4591405db1867dd.tar.bz2 28849 SHA256 0388cb01d6158fad92b6ee13241531c7dba66a4be64e85160ded212c3febadc4 SHA512 6994bd7435ad0cff9f5aed509c5f7ea438a6829188bea94d57020e8df6d75631b289363b6f68c3c96da67c958af967c624147d3604b734d8f0b57688f74e7c95 WHIRLPOOL a168e137981f4bc4cc6735bcc234b3fe14ea0cc91768926cdaae3f124ba1dfcd06be029c3805ded20df600c8655bb2d97beb69a0c6b7f2441e7ee4c651cd7868
11
DIST nss-pem-3ade37c5c4ca5a6094e3f4b2e4591405db1867dd.tar.bz2 28849 SHA256 0388cb01d6158fad92b6ee13241531c7dba66a4be64e85160ded212c3febadc4 SHA512 6994bd7435ad0cff9f5aed509c5f7ea438a6829188bea94d57020e8df6d75631b289363b6f68c3c96da67c958af967c624147d3604b734d8f0b57688f74e7c95 WHIRLPOOL a168e137981f4bc4cc6735bcc234b3fe14ea0cc91768926cdaae3f124ba1dfcd06be029c3805ded20df600c8655bb2d97beb69a0c6b7f2441e7ee4c651cd7868
9
EBUILD nss-3.16-r99.ebuild 7627 SHA256 c0418d057c241578340af4ff8f5b0258767a1af28f2361b092da74ccb7bde6b7 SHA512 1b1088b3c1cb60132c8e8299bf731cf57f9d396d14dbd936e66135440058c207ee9024de50fe14d913c6a322e3114c8cc0549804225a70a950f815bd1853158e WHIRLPOOL aed12b2a5bd0a9659df07ae4b3ba9b12b30c126829a4f18d4eb742c40f76d53751cf21a6ef90ebc8428dcd7529e7f9f671346bd17cbf4b0ca6e730a65dd84c08
12
EBUILD nss-3.16-r99.ebuild 7627 SHA256 c0418d057c241578340af4ff8f5b0258767a1af28f2361b092da74ccb7bde6b7 SHA512 1b1088b3c1cb60132c8e8299bf731cf57f9d396d14dbd936e66135440058c207ee9024de50fe14d913c6a322e3114c8cc0549804225a70a950f815bd1853158e WHIRLPOOL aed12b2a5bd0a9659df07ae4b3ba9b12b30c126829a4f18d4eb742c40f76d53751cf21a6ef90ebc8428dcd7529e7f9f671346bd17cbf4b0ca6e730a65dd84c08
13
EBUILD nss-3.17.4-r99.ebuild 9220 SHA256 f98ac91042b9e75c981dec1cd68d95b8666f137fdd72c3ef01d98bb45781f2e7 SHA512 31199817fb77db78b460787ad081e9fbbaa2c9c530db144d903963beef551f0d0d554493515532fc4dd480d4975ced8446eaf008f3f54e6685b9442b9449c75f WHIRLPOOL 63328be9b055105b2bbb35d13545e8b5ebca992bac31f98b87cc692617ccd578a1e5b5a56f2882d53588add1a6e020ae9d088ab0e5b1b4bc737809b1101ff6b5
10
MISC metadata.xml 545 SHA256 d3a7dfb4b9f063b343b42b3002d3722ee44aea8a47154fa2158533aa94a5a258 SHA512 4da88948d5b637093646300bab0105c642968b2c9693939be6b75b5d24f02bd9b2cc5f13ae18594b9b00fa8dfe02e5d6959c13021124cd027007649787aec750 WHIRLPOOL 0879625ef92b2db563e5a1b434176bab08846e815fbf0c963a23b3ca228b3525dc80f6e7940a303fc1dd47403416c67811ed09d00f29a431abc4979865b67ff9
14
MISC metadata.xml 545 SHA256 d3a7dfb4b9f063b343b42b3002d3722ee44aea8a47154fa2158533aa94a5a258 SHA512 4da88948d5b637093646300bab0105c642968b2c9693939be6b75b5d24f02bd9b2cc5f13ae18594b9b00fa8dfe02e5d6959c13021124cd027007649787aec750 WHIRLPOOL 0879625ef92b2db563e5a1b434176bab08846e815fbf0c963a23b3ca228b3525dc80f6e7940a303fc1dd47403416c67811ed09d00f29a431abc4979865b67ff9
(-)a/dev-libs/nss/files/nss-3.17.1-gentoo-fixups.patch (+241 lines)
Line 0 Link Here
1
--- nss-3.17.1/nss/config/Makefile
2
+++ nss-3.17.1/nss/config/Makefile
3
@@ -0,0 +1,40 @@
4
+CORE_DEPTH = ..
5
+DEPTH      = ..
6
+
7
+include $(CORE_DEPTH)/coreconf/config.mk
8
+
9
+NSS_MAJOR_VERSION = `grep "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}'`
10
+NSS_MINOR_VERSION = `grep "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}'`
11
+NSS_PATCH_VERSION = `grep "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}'`
12
+PREFIX = /usr
13
+
14
+all: export libs
15
+
16
+export:
17
+	# Create the nss.pc file
18
+	mkdir -p $(DIST)/lib/pkgconfig
19
+	sed -e "s,@prefix@,$(PREFIX)," \
20
+	    -e "s,@exec_prefix@,\$${prefix}," \
21
+	    -e "s,@libdir@,\$${prefix}/lib64," \
22
+	    -e "s,@includedir@,\$${prefix}/include/nss," \
23
+	    -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \
24
+	    -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
25
+	    -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
26
+	    nss.pc.in > nss.pc
27
+	chmod 0644 nss.pc
28
+	ln -sf ../../../../config/nss.pc $(DIST)/lib/pkgconfig
29
+
30
+	# Create the nss-config script
31
+	mkdir -p $(DIST)/bin
32
+	sed -e "s,@prefix@,$(PREFIX)," \
33
+	    -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \
34
+	    -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
35
+	    -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
36
+	    nss-config.in > nss-config
37
+	chmod 0755 nss-config
38
+	ln -sf ../../../config/nss-config $(DIST)/bin
39
+
40
+libs:
41
+
42
+dummy: all export libs
43
+
44
--- nss-3.17.1/nss/config/nss-config.in
45
+++ nss-3.17.1/nss/config/nss-config.in
46
@@ -0,0 +1,145 @@
47
+#!/bin/sh
48
+
49
+prefix=@prefix@
50
+
51
+major_version=@NSS_MAJOR_VERSION@
52
+minor_version=@NSS_MINOR_VERSION@
53
+patch_version=@NSS_PATCH_VERSION@
54
+
55
+usage()
56
+{
57
+	cat <<EOF
58
+Usage: nss-config [OPTIONS] [LIBRARIES]
59
+Options:
60
+	[--prefix[=DIR]]
61
+	[--exec-prefix[=DIR]]
62
+	[--includedir[=DIR]]
63
+	[--libdir[=DIR]]
64
+	[--version]
65
+	[--libs]
66
+	[--cflags]
67
+Dynamic Libraries:
68
+	nss
69
+	ssl
70
+	smime
71
+	nssutil
72
+EOF
73
+	exit $1
74
+}
75
+
76
+if test $# -eq 0; then
77
+	usage 1 1>&2
78
+fi
79
+
80
+lib_ssl=yes
81
+lib_smime=yes
82
+lib_nss=yes
83
+lib_nssutil=yes
84
+
85
+while test $# -gt 0; do
86
+  case "$1" in
87
+  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
88
+  *) optarg= ;;
89
+  esac
90
+
91
+  case $1 in
92
+    --prefix=*)
93
+      prefix=$optarg
94
+      ;;
95
+    --prefix)
96
+      echo_prefix=yes
97
+      ;;
98
+    --exec-prefix=*)
99
+      exec_prefix=$optarg
100
+      ;;
101
+    --exec-prefix)
102
+      echo_exec_prefix=yes
103
+      ;;
104
+    --includedir=*)
105
+      includedir=$optarg
106
+      ;;
107
+    --includedir)
108
+      echo_includedir=yes
109
+      ;;
110
+    --libdir=*)
111
+      libdir=$optarg
112
+      ;;
113
+    --libdir)
114
+      echo_libdir=yes
115
+      ;;
116
+    --version)
117
+      echo ${major_version}.${minor_version}.${patch_version}
118
+      ;;
119
+    --cflags)
120
+      echo_cflags=yes
121
+      ;;
122
+    --libs)
123
+      echo_libs=yes
124
+      ;;
125
+    ssl)
126
+      lib_ssl=yes
127
+      ;;
128
+    smime)
129
+      lib_smime=yes
130
+      ;;
131
+    nss)
132
+      lib_nss=yes
133
+      ;;
134
+    nssutil)                                                      
135
+      lib_nssutil=yes                                             
136
+      ;;
137
+    *)
138
+      usage 1 1>&2
139
+      ;;
140
+  esac
141
+  shift
142
+done
143
+
144
+# Set variables that may be dependent upon other variables
145
+if test -z "$exec_prefix"; then
146
+    exec_prefix=`pkg-config --variable=exec_prefix nss`
147
+fi
148
+if test -z "$includedir"; then
149
+    includedir=`pkg-config --variable=includedir nss`
150
+fi
151
+if test -z "$libdir"; then
152
+    libdir=`pkg-config --variable=libdir nss`
153
+fi
154
+
155
+if test "$echo_prefix" = "yes"; then
156
+    echo $prefix
157
+fi
158
+
159
+if test "$echo_exec_prefix" = "yes"; then
160
+    echo $exec_prefix
161
+fi
162
+
163
+if test "$echo_includedir" = "yes"; then
164
+    echo $includedir
165
+fi
166
+
167
+if test "$echo_libdir" = "yes"; then
168
+    echo $libdir
169
+fi
170
+
171
+if test "$echo_cflags" = "yes"; then
172
+    echo -I$includedir
173
+fi
174
+
175
+if test "$echo_libs" = "yes"; then
176
+      libdirs=""
177
+      if test -n "$lib_ssl"; then
178
+	libdirs="$libdirs -lssl${major_version}"
179
+      fi
180
+      if test -n "$lib_smime"; then
181
+	libdirs="$libdirs -lsmime${major_version}"
182
+      fi
183
+      if test -n "$lib_nss"; then
184
+	libdirs="$libdirs -lnss${major_version}"
185
+      fi
186
+      if test -n "$lib_nssutil"; then
187
+       libdirs="$libdirs -lnssutil${major_version}"
188
+      fi
189
+      echo $libdirs
190
+fi      
191
+
192
--- nss-3.17.1/nss/config/nss.pc.in
193
+++ nss-3.17.1/nss/config/nss.pc.in
194
@@ -0,0 +1,12 @@
195
+prefix=@prefix@
196
+exec_prefix=@exec_prefix@
197
+libdir=@libdir@
198
+includedir=@includedir@
199
+
200
+Name: NSS
201
+Description: Network Security Services
202
+Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@
203
+Requires: nspr >= 4.8
204
+Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3
205
+Cflags: -I${includedir}
206
+
207
--- nss-3.17.1/nss/Makefile
208
+++ nss-3.17.1/nss/Makefile
209
@@ -44,7 +44,7 @@
210
 # (7) Execute "local" rules. (OPTIONAL).                              #
211
 #######################################################################
212
 
213
-nss_build_all: build_nspr all
214
+nss_build_all: all
215
 
216
 nss_clean_all: clobber_nspr clobber
217
 
218
@@ -109,12 +109,6 @@
219
 	--with-dist-prefix='$(NSPR_PREFIX)' \
220
 	--with-dist-includedir='$(NSPR_PREFIX)/include'
221
 
222
-build_nspr: $(NSPR_CONFIG_STATUS)
223
-	$(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)
224
-
225
-clobber_nspr: $(NSPR_CONFIG_STATUS)
226
-	$(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) clobber
227
-
228
 build_docs:
229
 	$(MAKE) -C $(CORE_DEPTH)/doc
230
 
231
--- nss-3.17.1/nss/manifest.mn
232
+++ nss-3.17.1/nss/manifest.mn
233
@@ -10,7 +10,7 @@
234
 
235
 RELEASE = nss
236
 
237
-DIRS = coreconf lib cmd
238
+DIRS = coreconf lib cmd config
239
 
240
 ifdef NSS_BUILD_GTESTS
241
 DIRS += external_tests
(-)a/test/dev-libs/nss/nss-3.17.4-r99.ebuild (+322 lines)
Line 0 Link Here
1
# Copyright 1999-2015 Gentoo Foundation
2
# Distributed under the terms of the GNU General Public License v2
3
# $Header: /var/cvsroot/gentoo-x86/dev-libs/nss/nss-3.17.4.ebuild,v 1.3 2015/03/26 11:36:48 ago Exp $
4
5
EAPI=5
6
inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal
7
8
NSPR_VER="4.10.6-r1"
9
RTM_NAME="NSS_${PV//./_}_RTM"
10
# Rev of https://git.fedorahosted.org/cgit/nss-pem.git
11
PEM_GIT_REV="015ae754dd9f6fbcd7e52030ec9732eb27fc06a8"
12
PEM_P="${PN}-pem-${PEM_GIT_REV}"
13
14
DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
15
HOMEPAGE="http://www.mozilla.org/projects/security/pki/nss/"
16
SRC_URI="ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${RTM_NAME}/src/${P}.tar.gz
17
	cacert? ( http://dev.gentoo.org/~anarchy/patches/${PN}-3.14.1-add_spi+cacerts_ca_certs.patch )
18
	nss-pem? ( https://git.fedorahosted.org/cgit/nss-pem.git/snapshot/${PEM_P}.tar.bz2 )"
19
20
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
21
SLOT="0"
22
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
23
IUSE="+cacert +nss-pem utils"
24
25
DEPEND=">=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
26
	>=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]"
27
RDEPEND=">=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
28
	>=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
29
	>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
30
	abi_x86_32? (
31
		!<=app-emulation/emul-linux-x86-baselibs-20140508-r12
32
		!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
33
	)"
34
35
RESTRICT="test"
36
37
S="${WORKDIR}/${P}/${PN}"
38
39
MULTILIB_CHOST_TOOLS=(
40
	/usr/bin/nss-config
41
)
42
43
src_unpack() {
44
	unpack ${A}
45
	if use nss-pem ; then
46
		mv "${PEM_P}"/nss/lib/ckfw/pem/ "${S}"/lib/ckfw/ || die
47
	fi
48
}
49
50
src_prepare() {
51
	# Custom changes for gentoo
52
	epatch "${FILESDIR}/${PN}-3.17.1-gentoo-fixups.patch"
53
	epatch "${FILESDIR}/${PN}-3.15-gentoo-fixup-warnings.patch"
54
	use cacert && epatch "${DISTDIR}/${PN}-3.14.1-add_spi+cacerts_ca_certs.patch"
55
	use nss-pem && epatch "${FILESDIR}/${PN}-3.15.4-enable-pem.patch"
56
	epatch "${FILESDIR}/nss-3.14.2-solaris-gcc.patch"
57
	epatch "${FILESDIR}/nss-3.16-musl.patch"
58
59
	pushd coreconf >/dev/null || die
60
	# hack nspr paths
61
	echo 'INCLUDES += -I$(DIST)/include/dbm' \
62
		>> headers.mk || die "failed to append include"
63
64
	# modify install path
65
	sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \
66
		-i source.mk || die
67
68
	# Respect LDFLAGS
69
	sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk
70
	popd >/dev/null || die
71
72
	# Fix pkgconfig file for Prefix
73
	sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \
74
		config/Makefile || die
75
76
	# use host shlibsign if need be #436216
77
	if tc-is-cross-compiler ; then
78
		sed -i \
79
			-e 's:"${2}"/shlibsign:shlibsign:' \
80
			cmd/shlibsign/sign.sh || die
81
	fi
82
83
	# dirty hack
84
	sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \
85
		lib/ssl/config.mk || die
86
	sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \
87
		cmd/platlibs.mk || die
88
89
	multilib_copy_sources
90
91
	strip-flags
92
}
93
94
multilib_src_configure() {
95
	# Ensure we stay multilib aware
96
	sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die
97
}
98
99
nssarch() {
100
	# Most of the arches are the same as $ARCH
101
	local t=${1:-${CHOST}}
102
	case ${t} in
103
		aarch64*)echo "aarch64";;
104
		hppa*)   echo "parisc";;
105
		i?86*)   echo "i686";;
106
		x86_64*) echo "x86_64";;
107
		*)       tc-arch ${t};;
108
	esac
109
}
110
111
nssbits() {
112
	local cc cppflags="${1}CPPFLAGS" cflags="${1}CFLAGS"
113
	if [[ ${1} == BUILD_ ]]; then
114
		cc=$(tc-getBUILD_CC)
115
	else
116
		cc=$(tc-getCC)
117
	fi
118
	echo > "${T}"/test.c || die
119
	${cc} ${!cppflags} ${!cflags} -c "${T}"/test.c -o "${T}/${1}test.o" || die
120
	case $(file "${T}/${1}test.o") in
121
		*32-bit*x86-64*) echo USE_X32=1;;
122
		*64-bit*|*ppc64*|*x86_64*) echo USE_64=1;;
123
		*32-bit*|*ppc*|*i386*) ;;
124
		*) die "Failed to detect whether ${cc} builds 64bits or 32bits, disable distcc if you're using it, please";;
125
	esac
126
}
127
128
multilib_src_compile() {
129
	# use ABI to determine bit'ness, or fallback if unset
130
	local buildbits mybits
131
	case "${ABI}" in
132
		n32) mybits="USE_N32=1";;
133
		x32) mybits="USE_X32=1";;
134
		s390x|*64) mybits="USE_64=1";;
135
		${DEFAULT_ABI})
136
			einfo "Running compilation test to determine bit'ness"
137
			mybits=$(nssbits)
138
			;;
139
	esac
140
	# bitness of host may differ from target
141
	if tc-is-cross-compiler; then
142
		buildbits=$(nssbits BUILD_)
143
	fi
144
145
	local makeargs=(
146
		CC="$(tc-getCC)"
147
		AR="$(tc-getAR) rc \$@"
148
		RANLIB="$(tc-getRANLIB)"
149
		OPTIMIZER=
150
		${mybits}
151
	)
152
153
	# Take care of nspr settings #436216
154
	local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags)"
155
	unset NSPR_INCLUDE_DIR
156
157
	# Do not let `uname` be used.
158
	if use kernel_linux ; then
159
		makeargs+=(
160
			OS_TARGET=Linux
161
			OS_RELEASE=2.6
162
			OS_TEST="$(nssarch)"
163
		)
164
	fi
165
166
	export BUILD_OPT=1
167
	export NSS_USE_SYSTEM_SQLITE=1
168
	export NSDISTMODE=copy
169
	export NSS_ENABLE_ECC=1
170
	export FREEBL_NO_DEPEND=1
171
	export ASFLAGS=""
172
173
	local d
174
175
	# Build the host tools first.
176
	LDFLAGS="${BUILD_LDFLAGS}" \
177
	XCFLAGS="${BUILD_CFLAGS}" \
178
	NSPR_LIB_DIR="${T}/fakedir" \
179
	emake -j1 -C coreconf \
180
		CC="$(tc-getBUILD_CC)" \
181
		${buildbits:-${mybits}}
182
	makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" )
183
184
	# Then build the target tools.
185
	for d in . lib/dbm ; do
186
		CPPFLAGS="${myCPPFLAGS}" \
187
		XCFLAGS="${CFLAGS} ${CPPFLAGS}" \
188
		NSPR_LIB_DIR="${T}/fakedir" \
189
		emake -j1 "${makeargs[@]}" -C ${d}
190
	done
191
}
192
193
# Altering these 3 libraries breaks the CHK verification.
194
# All of the following cause it to break:
195
# - stripping
196
# - prelink
197
# - ELF signing
198
# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html
199
# Either we have to NOT strip them, or we have to forcibly resign after
200
# stripping.
201
#local_libdir="$(get_libdir)"
202
#export STRIP_MASK="
203
#	*/${local_libdir}/libfreebl3.so*
204
#	*/${local_libdir}/libnssdbm3.so*
205
#	*/${local_libdir}/libsoftokn3.so*"
206
207
export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3"
208
209
generate_chk() {
210
	local shlibsign="$1"
211
	local libdir="$2"
212
	einfo "Resigning core NSS libraries for FIPS validation"
213
	shift 2
214
	local i
215
	for i in ${NSS_CHK_SIGN_LIBS} ; do
216
		local libname=lib${i}.so
217
		local chkname=lib${i}.chk
218
		"${shlibsign}" \
219
			-i "${libdir}"/${libname} \
220
			-o "${libdir}"/${chkname}.tmp \
221
		&& mv -f \
222
			"${libdir}"/${chkname}.tmp \
223
			"${libdir}"/${chkname} \
224
		|| die "Failed to sign ${libname}"
225
	done
226
}
227
228
cleanup_chk() {
229
	local libdir="$1"
230
	shift 1
231
	local i
232
	for i in ${NSS_CHK_SIGN_LIBS} ; do
233
		local libfname="${libdir}/lib${i}.so"
234
		# If the major version has changed, then we have old chk files.
235
		[ ! -f "${libfname}" -a -f "${libfname}.chk" ] \
236
			&& rm -f "${libfname}.chk"
237
	done
238
}
239
240
multilib_src_install() {
241
	pushd dist >/dev/null || die
242
243
	dodir /usr/$(get_libdir)
244
	cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed"
245
	cp -L -t "${ED}"/usr/$(get_libdir) */lib/{libcrmf,libfreebl}.a || die "copying libs failed"
246
247
	# Install nss-config and pkgconfig file
248
	dodir /usr/bin
249
	cp -L */bin/nss-config "${ED}"/usr/bin || die
250
	dodir /usr/$(get_libdir)/pkgconfig
251
	cp -L */lib/pkgconfig/nss.pc "${ED}"/usr/$(get_libdir)/pkgconfig || die
252
253
	# create an nss-softokn.pc from nss.pc for libfreebl and some private headers
254
	# bug 517266
255
	sed 	-e 's#Libs:#Libs: -lfreebl#' \
256
		-e 's#Cflags:#Cflags: -I${includedir}/private#' \
257
		*/lib/pkgconfig/nss.pc >"${ED}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \
258
		|| die "could not create nss-softokn.pc"
259
260
	# all the include files
261
	insinto /usr/include/nss
262
	doins public/nss/*.h
263
	insinto /usr/include/nss/private
264
	doins private/nss/{blapi,alghmac}.h
265
266
	popd >/dev/null || die
267
268
	local f nssutils
269
	# Always enabled because we need it for chk generation.
270
	nssutils="shlibsign"
271
272
	if multilib_is_native_abi ; then
273
		if use utils; then
274
			# The tests we do not need to install.
275
			#nssutils_test="bltest crmftest dbtest dertimetest
276
			#fipstest remtest sdrtest"
277
			nssutils="addbuiltin atob baddbdir btoa certcgi certutil checkcert
278
			cmsutil conflict crlutil derdump digest makepqg mangle modutil multinit
279
			nonspr10 ocspclnt oidcalc p7content p7env p7sign p7verify pk11mode
280
			pk12util pp rsaperf selfserv shlibsign signtool signver ssltap strsclnt
281
			symkeyutil tstclnt vfychain vfyserv"
282
		fi
283
		pushd dist/*/bin >/dev/null || die
284
		for f in ${nssutils}; do
285
			dobin ${f}
286
		done
287
		popd >/dev/null || die
288
	fi
289
290
	# Prelink breaks the CHK files. We don't have any reliable way to run
291
	# shlibsign after prelink.
292
	local l libs=() liblist
293
	for l in ${NSS_CHK_SIGN_LIBS} ; do
294
		libs+=("${EPREFIX}/usr/$(get_libdir)/lib${l}.so")
295
	done
296
	liblist=$(printf '%s:' "${libs[@]}")
297
	echo -e "PRELINK_PATH_MASK=${liblist%:}" > "${T}/90nss-${ABI}"
298
	doenvd "${T}/90nss-${ABI}"
299
}
300
301
pkg_postinst() {
302
	multilib_pkg_postinst() {
303
		# We must re-sign the libraries AFTER they are stripped.
304
		local shlibsign="${EROOT}/usr/bin/shlibsign"
305
		# See if we can execute it (cross-compiling & such). #436216
306
		"${shlibsign}" -h >&/dev/null
307
		if [[ $? -gt 1 ]] ; then
308
			shlibsign="shlibsign"
309
		fi
310
		generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir)
311
	}
312
313
	multilib_foreach_abi multilib_pkg_postinst
314
}
315
316
pkg_postrm() {
317
	multilib_pkg_postrm() {
318
		cleanup_chk "${EROOT}"/usr/$(get_libdir)
319
	}
320
321
	multilib_foreach_abi multilib_pkg_postrm
322
}	

Return to bug 531846