Gentoo Archives: gentoo-commits

From: Jory Pratt <anarchy@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/nss/, dev-libs/nss/files/
Date: Thu, 26 Nov 2015 21:56:32
Message-Id: 1448574927.ce1156e0cc0094ecf6a62693e3f38980ecf3d023.anarchy@gentoo
1 commit: ce1156e0cc0094ecf6a62693e3f38980ecf3d023
2 Author: Jory A. Pratt <anarchy <AT> gentoo <DOT> org>
3 AuthorDate: Thu Nov 26 21:55:27 2015 +0000
4 Commit: Jory Pratt <anarchy <AT> gentoo <DOT> org>
5 CommitDate: Thu Nov 26 21:55:27 2015 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce1156e0
7
8 dev-libs/nss - basic version bump 3.21
9
10 dev-libs/nss/Manifest | 2 +
11 dev-libs/nss/files/nss-3.21-cacert-class3.patch | 204 +++++++++++++
12 dev-libs/nss/files/nss-3.21-enable-pem.patch | 12 +
13 .../nss/files/nss-3.21-gentoo-fixup-warnings.patch | 11 +
14 dev-libs/nss/files/nss-3.21-gentoo-fixups.patch | 243 +++++++++++++++
15 dev-libs/nss/files/nss-3.21-pem-werror.patch | 146 +++++++++
16 dev-libs/nss/nss-3.21.ebuild | 326 +++++++++++++++++++++
17 7 files changed, 944 insertions(+)
18
19 diff --git a/dev-libs/nss/Manifest b/dev-libs/nss/Manifest
20 index 5ce5b51..670c75d 100644
21 --- a/dev-libs/nss/Manifest
22 +++ b/dev-libs/nss/Manifest
23 @@ -2,4 +2,6 @@ DIST nss-3.14.1-add_spi+cacerts_ca_certs.patch 25018 SHA256 82ca25982828fd7153ad
24 DIST nss-3.19.2.tar.gz 6953657 SHA256 1306663e8f61d8449ad8cbcffab743a604dcd9f6f34232c210847c51dce2c9ae SHA512 d3c45010f8dace58f9da9efe0f9792f8b8a69384e100663f33c949685cdd1ce70e5131f279bc82336622841c41dbc0a4d70a7cc6839a1782dbe8b3c3fd8bc59d WHIRLPOOL d69ab02e12f6b22f47df7be7925343c58e68a69b33833b85d6f2ca70f652d9d159accea45f2c141fa89245ab64dffff0f1289129427564203fe2faf3af1c11e3
25 DIST nss-3.20.1.tar.gz 6958956 SHA256 ad3c8f11dfd9570c2d04a6140d5ef7c2bdd0fe30d6c9e5548721a4251a5e8c97 SHA512 c8db693a81b8ddb4d2a742c2fce3f23dd40736e54c55c0de072f84572fcdad8fb7646e4b8ea696e4c97ea6c9cb0fa144f573f8776c2839eb25c4075b50d01d74 WHIRLPOOL 3d4667b243ba6ac596ea7e9936bf9cba7aa1b9767fd19b53352c3a9a9eef0f1a0a9e7da719634dbc9dfcc087d187d5e774ae351c1e57545e8b8c1f40e41e42e6
26 DIST nss-3.20.tar.gz 6955552 SHA256 5e38d4b9837ca338af966b97fc91c07f67ad647fb38dc4af3cfd0d84e477d15c SHA512 50f666209cadd4e463f98643ec67e35f4d1b88381e17db9eed7c67559b19799fcc27e49d72536f546d4c45bca2afa4664e5590f868775a4397a77111d68fc366 WHIRLPOOL 84f20e6764b3621762fcfcb9223a3861e1f5ff02078b19b7df2eb58430a5f96943d962dca2d3366b18cd434acf3d3be746242c5064497167d5671c50233834de
27 +DIST nss-3.21.tar.gz 6978112 SHA256 3f7a5b027d7cdd5c0e4ff7544da33fdc6f56c2f8c27fff02938fd4a6fbe87239 SHA512 0645465b5d1ab05d819355a3f4a2879499539a00d95bfab3ca14a7dcd901e510b5d9ae797386ff5a42f68b0b57f7bbec4ec9d3a85ebd508eb824aba1fb589d53 WHIRLPOOL 7504d83de606d61840e06cb855ea688eb022d5eef062bcb7ac4d1064db96b96e35ae4ce0aff9d389a2140a7c3b974aaa9a86ada52af1199d462fdb48b11b42e4
28 DIST nss-pem-015ae754dd9f6fbcd7e52030ec9732eb27fc06a8.tar.bz2 27506 SHA256 50d9ec26a75835e900302f631456e278e13d4b435b8f98aa69f79dd439ddc6ab SHA512 0158a140f112a905f7db5a4f4d04f49f6742db1d2665ddf6c32913c367f0b93a57f86ba13b9883a42a528aff44c48196941d7c0fd7a27005db6adaf07802e501 WHIRLPOOL 279ef11d2d6f0cb7c192189d64bc6971cdada7417b93a65a3ff0ba4548b736b53b9812803024c2349114e94e0864f2b58c23812687ed3f75cf28334b0f6e11ac
29 +DIST nss-pem-20140125.tar.bz2 28805 SHA256 62604dfc4178399a804e87ca7566d8316a0a40a535de3b2d0fa48fd80c97f768 SHA512 352faf812735e1374c534ada6dd577842603ea193dafaacfd51f201599ffe3f7a23ce1c673421e42f8b692091b58085f90843c29f70ae916949715e7baba2b39 WHIRLPOOL 3ae81410f6f4d2699e9dc55982cad03c226045fbeee25984d53d37ff78ce5c96d008d6837e1c0a10b6c96cdff17c21142e437159896d314e81afc8820867ca62
30
31 diff --git a/dev-libs/nss/files/nss-3.21-cacert-class3.patch b/dev-libs/nss/files/nss-3.21-cacert-class3.patch
32 new file mode 100644
33 index 0000000..565f3e6
34 --- /dev/null
35 +++ b/dev-libs/nss/files/nss-3.21-cacert-class3.patch
36 @@ -0,0 +1,204 @@
37 +diff -urN a/nss/lib/ckfw/builtins/certdata.txt b/nss/lib/ckfw/builtins/certdata.txt
38 +--- a/nss/lib/ckfw/builtins/certdata.txt 2015-11-15 09:25:06.142786072 -0600
39 ++++ b/nss/lib/ckfw/builtins/certdata.txt 2015-11-15 09:36:02.976756787 -0600
40 +@@ -30351,3 +30351,200 @@
41 + CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
42 + CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
43 + CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
44 ++
45 ++#
46 ++# Certificate "CAcert Inc."
47 ++#
48 ++# Issuer: E=support@××××××.org,CN=CA Cert Signing Authority,OU=http://www.cacert.org,O=Root CA
49 ++# Serial Number: 672138 (0xa418a)
50 ++# Subject: CN=CAcert Class 3 Root,OU=http://www.CAcert.org,O=CAcert Inc.
51 ++# Not Valid Before: Mon May 23 17:48:02 2011
52 ++# Not Valid After : Thu May 20 17:48:02 2021
53 ++# Fingerprint (SHA-256): 4E:DD:E9:E5:5C:A4:53:B3:88:88:7C:AA:25:D5:C5:C5:BC:CF:28:91:D7:3B:87:49:58:08:29:3D:5F:AC:83:C8
54 ++# Fingerprint (SHA1): AD:7C:3F:64:FC:44:39:FE:F4:E9:0B:E8:F4:7C:6C:FA:8A:AD:FD:CE
55 ++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
56 ++CKA_TOKEN CK_BBOOL CK_TRUE
57 ++CKA_PRIVATE CK_BBOOL CK_FALSE
58 ++CKA_MODIFIABLE CK_BBOOL CK_FALSE
59 ++CKA_LABEL UTF8 "CAcert Inc."
60 ++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
61 ++CKA_SUBJECT MULTILINE_OCTAL
62 ++\060\124\061\024\060\022\006\003\125\004\012\023\013\103\101\143
63 ++\145\162\164\040\111\156\143\056\061\036\060\034\006\003\125\004
64 ++\013\023\025\150\164\164\160\072\057\057\167\167\167\056\103\101
65 ++\143\145\162\164\056\157\162\147\061\034\060\032\006\003\125\004
66 ++\003\023\023\103\101\143\145\162\164\040\103\154\141\163\163\040
67 ++\063\040\122\157\157\164
68 ++END
69 ++CKA_ID UTF8 "0"
70 ++CKA_ISSUER MULTILINE_OCTAL
71 ++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
72 ++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
73 ++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
74 ++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
75 ++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
76 ++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
77 ++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
78 ++\100\143\141\143\145\162\164\056\157\162\147
79 ++END
80 ++CKA_SERIAL_NUMBER MULTILINE_OCTAL
81 ++\002\003\012\101\212
82 ++END
83 ++CKA_VALUE MULTILINE_OCTAL
84 ++\060\202\007\131\060\202\005\101\240\003\002\001\002\002\003\012
85 ++\101\212\060\015\006\011\052\206\110\206\367\015\001\001\013\005
86 ++\000\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157
87 ++\157\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025
88 ++\150\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162
89 ++\164\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031
90 ++\103\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040
91 ++\101\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052
92 ++\206\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162
93 ++\164\100\143\141\143\145\162\164\056\157\162\147\060\036\027\015
94 ++\061\061\060\065\062\063\061\067\064\070\060\062\132\027\015\062
95 ++\061\060\065\062\060\061\067\064\070\060\062\132\060\124\061\024
96 ++\060\022\006\003\125\004\012\023\013\103\101\143\145\162\164\040
97 ++\111\156\143\056\061\036\060\034\006\003\125\004\013\023\025\150
98 ++\164\164\160\072\057\057\167\167\167\056\103\101\143\145\162\164
99 ++\056\157\162\147\061\034\060\032\006\003\125\004\003\023\023\103
100 ++\101\143\145\162\164\040\103\154\141\163\163\040\063\040\122\157
101 ++\157\164\060\202\002\042\060\015\006\011\052\206\110\206\367\015
102 ++\001\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202
103 ++\002\001\000\253\111\065\021\110\174\322\046\176\123\224\317\103
104 ++\251\335\050\327\102\052\213\363\207\170\031\130\174\017\236\332
105 ++\211\175\341\373\353\162\220\015\164\241\226\144\253\237\240\044
106 ++\231\163\332\342\125\166\307\027\173\365\004\254\106\270\303\276
107 ++\177\144\215\020\154\044\363\141\234\300\362\220\372\121\346\365
108 ++\151\001\143\303\017\126\342\112\102\317\342\104\214\045\050\250
109 ++\305\171\011\175\106\271\212\363\351\363\064\051\010\105\344\034
110 ++\237\313\224\004\034\201\250\024\263\230\145\304\103\354\116\202
111 ++\215\011\321\275\252\133\215\222\320\354\336\220\305\177\012\302
112 ++\343\353\346\061\132\136\164\076\227\063\131\350\303\003\075\140
113 ++\063\277\367\321\157\107\304\315\356\142\203\122\156\056\010\232
114 ++\244\331\025\030\221\246\205\222\107\260\256\110\353\155\267\041
115 ++\354\205\032\150\162\065\253\377\360\020\135\300\364\224\247\152
116 ++\325\073\222\176\114\220\005\176\223\301\054\213\244\216\142\164
117 ++\025\161\156\013\161\003\352\257\025\070\232\324\322\005\162\157
118 ++\214\371\053\353\132\162\045\371\071\106\343\162\033\076\004\303
119 ++\144\047\042\020\052\212\117\130\247\003\255\276\264\056\023\355
120 ++\135\252\110\327\325\175\324\052\173\134\372\106\004\120\344\314
121 ++\016\102\133\214\355\333\362\317\374\226\223\340\333\021\066\124
122 ++\142\064\070\217\014\140\233\073\227\126\070\255\363\322\133\213
123 ++\240\133\352\116\226\270\174\327\325\240\206\160\100\323\221\051
124 ++\267\242\074\255\365\214\273\317\032\222\212\344\064\173\300\330
125 ++\154\137\351\012\302\303\247\040\232\132\337\054\135\122\134\272
126 ++\107\325\233\357\044\050\160\070\040\057\325\177\051\300\262\101
127 ++\003\150\222\314\340\234\314\227\113\105\357\072\020\012\253\160
128 ++\072\230\225\160\255\065\261\352\205\053\244\034\200\041\061\251
129 ++\256\140\172\200\046\110\000\270\001\300\223\143\125\042\221\074
130 ++\126\347\257\333\072\045\363\217\061\124\352\046\213\201\131\371
131 ++\241\321\123\021\305\173\235\003\366\164\021\340\155\261\054\077
132 ++\054\206\221\231\161\232\246\167\213\064\140\321\024\264\054\254
133 ++\235\257\214\020\323\237\304\152\370\157\023\374\163\131\367\146
134 ++\102\164\036\212\343\370\334\322\157\230\234\313\107\230\225\100
135 ++\005\373\351\002\003\001\000\001\243\202\002\015\060\202\002\011
136 ++\060\035\006\003\125\035\016\004\026\004\024\165\250\161\140\114
137 ++\210\023\360\170\331\211\167\265\155\305\211\337\274\261\172\060
138 ++\201\243\006\003\125\035\043\004\201\233\060\201\230\200\024\026
139 ++\265\062\033\324\307\363\340\346\216\363\275\322\260\072\356\262
140 ++\071\030\321\241\175\244\173\060\171\061\020\060\016\006\003\125
141 ++\004\012\023\007\122\157\157\164\040\103\101\061\036\060\034\006
142 ++\003\125\004\013\023\025\150\164\164\160\072\057\057\167\167\167
143 ++\056\143\141\143\145\162\164\056\157\162\147\061\042\060\040\006
144 ++\003\125\004\003\023\031\103\101\040\103\145\162\164\040\123\151
145 ++\147\156\151\156\147\040\101\165\164\150\157\162\151\164\171\061
146 ++\041\060\037\006\011\052\206\110\206\367\015\001\011\001\026\022
147 ++\163\165\160\160\157\162\164\100\143\141\143\145\162\164\056\157
148 ++\162\147\202\001\000\060\017\006\003\125\035\023\001\001\377\004
149 ++\005\060\003\001\001\377\060\135\006\010\053\006\001\005\005\007
150 ++\001\001\004\121\060\117\060\043\006\010\053\006\001\005\005\007
151 ++\060\001\206\027\150\164\164\160\072\057\057\157\143\163\160\056
152 ++\103\101\143\145\162\164\056\157\162\147\057\060\050\006\010\053
153 ++\006\001\005\005\007\060\002\206\034\150\164\164\160\072\057\057
154 ++\167\167\167\056\103\101\143\145\162\164\056\157\162\147\057\143
155 ++\141\056\143\162\164\060\112\006\003\125\035\040\004\103\060\101
156 ++\060\077\006\010\053\006\001\004\001\201\220\112\060\063\060\061
157 ++\006\010\053\006\001\005\005\007\002\001\026\045\150\164\164\160
158 ++\072\057\057\167\167\167\056\103\101\143\145\162\164\056\157\162
159 ++\147\057\151\156\144\145\170\056\160\150\160\077\151\144\075\061
160 ++\060\060\064\006\011\140\206\110\001\206\370\102\001\010\004\047
161 ++\026\045\150\164\164\160\072\057\057\167\167\167\056\103\101\143
162 ++\145\162\164\056\157\162\147\057\151\156\144\145\170\056\160\150
163 ++\160\077\151\144\075\061\060\060\120\006\011\140\206\110\001\206
164 ++\370\102\001\015\004\103\026\101\124\157\040\147\145\164\040\171
165 ++\157\165\162\040\157\167\156\040\143\145\162\164\151\146\151\143
166 ++\141\164\145\040\146\157\162\040\106\122\105\105\054\040\147\157
167 ++\040\164\157\040\150\164\164\160\072\057\057\167\167\167\056\103
168 ++\101\143\145\162\164\056\157\162\147\060\015\006\011\052\206\110
169 ++\206\367\015\001\001\013\005\000\003\202\002\001\000\051\050\205
170 ++\256\104\251\271\257\244\171\023\360\250\243\053\227\140\363\134
171 ++\356\343\057\301\366\342\146\240\021\256\066\067\072\166\025\004
172 ++\123\352\102\365\371\352\300\025\330\246\202\331\344\141\256\162
173 ++\013\051\134\220\103\350\101\262\341\167\333\002\023\104\170\107
174 ++\125\257\130\374\314\230\366\105\271\321\040\370\330\041\007\376
175 ++\155\252\163\324\263\306\007\351\011\205\314\073\362\266\276\054
176 ++\034\045\325\161\214\071\265\056\352\276\030\201\272\260\223\270
177 ++\017\343\346\327\046\214\061\132\162\003\204\122\346\246\365\063
178 ++\042\105\012\310\013\015\212\270\066\157\220\011\241\253\275\327
179 ++\325\116\056\161\242\324\256\372\247\124\053\353\065\215\132\267
180 ++\124\210\057\356\164\237\355\110\026\312\015\110\320\224\323\254
181 ++\244\242\366\044\337\222\343\275\353\103\100\221\156\034\030\216
182 ++\126\264\202\022\363\251\223\237\324\274\234\255\234\165\356\132
183 ++\227\033\225\347\164\055\034\017\260\054\227\237\373\251\063\071
184 ++\172\347\003\072\222\216\042\366\214\015\344\331\176\015\166\030
185 ++\367\001\371\357\226\226\242\125\163\300\074\161\264\035\032\126
186 ++\103\267\303\012\215\162\374\342\020\011\013\101\316\214\224\240
187 ++\371\003\375\161\163\113\212\127\063\345\216\164\176\025\001\000
188 ++\346\314\112\034\347\177\225\031\055\305\245\014\213\273\265\355
189 ++\205\263\134\323\337\270\271\362\312\307\015\001\024\254\160\130
190 ++\305\214\215\063\324\235\146\243\032\120\225\043\374\110\340\006
191 ++\103\022\331\315\247\206\071\057\066\162\243\200\020\344\341\363
192 ++\321\313\133\032\300\344\200\232\174\023\163\006\117\333\243\153
193 ++\044\012\272\263\034\274\112\170\273\345\343\165\070\245\110\247
194 ++\242\036\257\166\324\136\367\070\206\126\132\211\316\326\303\247
195 ++\171\262\122\240\306\361\205\264\045\214\362\077\226\263\020\331
196 ++\215\154\127\073\237\157\206\072\030\202\042\066\310\260\221\070
197 ++\333\052\241\223\252\204\077\365\047\145\256\163\325\310\325\323
198 ++\167\352\113\235\307\101\273\307\300\343\240\077\344\175\244\215
199 ++\163\346\022\113\337\241\163\163\163\072\200\350\325\313\216\057
200 ++\313\352\023\247\326\101\213\254\372\074\211\327\044\365\116\264
201 ++\340\141\222\267\363\067\230\304\276\226\243\267\212
202 ++END
203 ++
204 ++# Trust for "CAcert Inc."
205 ++# Issuer: E=support@××××××.org,CN=CA Cert Signing Authority,OU=http://www.cacert.org,O=Root CA
206 ++# Serial Number: 672138 (0xa418a)
207 ++# Subject: CN=CAcert Class 3 Root,OU=http://www.CAcert.org,O=CAcert Inc.
208 ++# Not Valid Before: Mon May 23 17:48:02 2011
209 ++# Not Valid After : Thu May 20 17:48:02 2021
210 ++# Fingerprint (SHA-256): 4E:DD:E9:E5:5C:A4:53:B3:88:88:7C:AA:25:D5:C5:C5:BC:CF:28:91:D7:3B:87:49:58:08:29:3D:5F:AC:83:C8
211 ++# Fingerprint (SHA1): AD:7C:3F:64:FC:44:39:FE:F4:E9:0B:E8:F4:7C:6C:FA:8A:AD:FD:CE
212 ++CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
213 ++CKA_TOKEN CK_BBOOL CK_TRUE
214 ++CKA_PRIVATE CK_BBOOL CK_FALSE
215 ++CKA_MODIFIABLE CK_BBOOL CK_FALSE
216 ++CKA_LABEL UTF8 "CAcert Inc."
217 ++CKA_CERT_SHA1_HASH MULTILINE_OCTAL
218 ++\255\174\077\144\374\104\071\376\364\351\013\350\364\174\154\372
219 ++\212\255\375\316
220 ++END
221 ++CKA_CERT_MD5_HASH MULTILINE_OCTAL
222 ++\367\045\022\202\116\147\265\320\215\222\267\174\013\206\172\102
223 ++END
224 ++CKA_ISSUER MULTILINE_OCTAL
225 ++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
226 ++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
227 ++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
228 ++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
229 ++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
230 ++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
231 ++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
232 ++\100\143\141\143\145\162\164\056\157\162\147
233 ++END
234 ++CKA_SERIAL_NUMBER MULTILINE_OCTAL
235 ++\002\003\012\101\212
236 ++END
237 ++CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
238 ++CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
239 ++CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
240 ++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
241
242 diff --git a/dev-libs/nss/files/nss-3.21-enable-pem.patch b/dev-libs/nss/files/nss-3.21-enable-pem.patch
243 new file mode 100644
244 index 0000000..c60f051
245 --- /dev/null
246 +++ b/dev-libs/nss/files/nss-3.21-enable-pem.patch
247 @@ -0,0 +1,12 @@
248 +diff -urN a/nss/lib/ckfw/manifest.mn b/nss/lib/ckfw/manifest.mn
249 +--- a/nss/lib/ckfw/manifest.mn 2015-11-15 09:25:06.130786072 -0600
250 ++++ b/nss/lib/ckfw/manifest.mn 2015-11-15 09:31:03.372770145 -0600
251 +@@ -5,7 +5,7 @@
252 +
253 + CORE_DEPTH = ../..
254 +
255 +-DIRS = builtins
256 ++DIRS = builtins pem
257 +
258 + PRIVATE_EXPORTS = \
259 + ck.h \
260
261 diff --git a/dev-libs/nss/files/nss-3.21-gentoo-fixup-warnings.patch b/dev-libs/nss/files/nss-3.21-gentoo-fixup-warnings.patch
262 new file mode 100644
263 index 0000000..ed8a0aa
264 --- /dev/null
265 +++ b/dev-libs/nss/files/nss-3.21-gentoo-fixup-warnings.patch
266 @@ -0,0 +1,11 @@
267 +diff -urN a/nss/coreconf/Linux.mk b/nss/coreconf/Linux.mk
268 +--- a/nss/coreconf/Linux.mk 2015-11-15 09:25:06.672786048 -0600
269 ++++ b/nss/coreconf/Linux.mk 2015-11-15 09:29:26.682774456 -0600
270 +@@ -130,6 +130,7 @@
271 + OPTIMIZER += -gdwarf-2
272 + endif
273 + endif
274 ++OPTIMIZER += -fno-strict-aliasing
275 + endif
276 +
277 + ifndef COMPILER_TAG
278 \ No newline at end of file
279
280 diff --git a/dev-libs/nss/files/nss-3.21-gentoo-fixups.patch b/dev-libs/nss/files/nss-3.21-gentoo-fixups.patch
281 new file mode 100644
282 index 0000000..3381982
283 --- /dev/null
284 +++ b/dev-libs/nss/files/nss-3.21-gentoo-fixups.patch
285 @@ -0,0 +1,243 @@
286 +diff -urN a/nss/config/Makefile b/nss/config/Makefile
287 +--- a/nss/config/Makefile 1969-12-31 18:00:00.000000000 -0600
288 ++++ b/nss/config/Makefile 2015-11-15 10:42:46.249578304 -0600
289 +@@ -0,0 +1,40 @@
290 ++CORE_DEPTH = ..
291 ++DEPTH = ..
292 ++
293 ++include $(CORE_DEPTH)/coreconf/config.mk
294 ++
295 ++NSS_MAJOR_VERSION = `grep "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}'`
296 ++NSS_MINOR_VERSION = `grep "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}'`
297 ++NSS_PATCH_VERSION = `grep "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}'`
298 ++PREFIX = /usr
299 ++
300 ++all: export libs
301 ++
302 ++export:
303 ++ # Create the nss.pc file
304 ++ mkdir -p $(DIST)/lib/pkgconfig
305 ++ sed -e "s,@prefix@,$(PREFIX)," \
306 ++ -e "s,@exec_prefix@,\$${prefix}," \
307 ++ -e "s,@libdir@,\$${prefix}/lib64," \
308 ++ -e "s,@includedir@,\$${prefix}/include/nss," \
309 ++ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \
310 ++ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
311 ++ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
312 ++ nss.pc.in > nss.pc
313 ++ chmod 0644 nss.pc
314 ++ ln -sf ../../../../config/nss.pc $(DIST)/lib/pkgconfig
315 ++
316 ++ # Create the nss-config script
317 ++ mkdir -p $(DIST)/bin
318 ++ sed -e "s,@prefix@,$(PREFIX)," \
319 ++ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \
320 ++ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
321 ++ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
322 ++ nss-config.in > nss-config
323 ++ chmod 0755 nss-config
324 ++ ln -sf ../../../config/nss-config $(DIST)/bin
325 ++
326 ++libs:
327 ++
328 ++dummy: all export libs
329 ++
330 +diff -urN a/nss/config/nss-config.in b/nss/config/nss-config.in
331 +--- a/nss/config/nss-config.in 1969-12-31 18:00:00.000000000 -0600
332 ++++ b/nss/config/nss-config.in 2015-11-15 10:42:46.250578304 -0600
333 +@@ -0,0 +1,145 @@
334 ++#!/bin/sh
335 ++
336 ++prefix=@prefix@
337 ++
338 ++major_version=@NSS_MAJOR_VERSION@
339 ++minor_version=@NSS_MINOR_VERSION@
340 ++patch_version=@NSS_PATCH_VERSION@
341 ++
342 ++usage()
343 ++{
344 ++ cat <<EOF
345 ++Usage: nss-config [OPTIONS] [LIBRARIES]
346 ++Options:
347 ++ [--prefix[=DIR]]
348 ++ [--exec-prefix[=DIR]]
349 ++ [--includedir[=DIR]]
350 ++ [--libdir[=DIR]]
351 ++ [--version]
352 ++ [--libs]
353 ++ [--cflags]
354 ++Dynamic Libraries:
355 ++ nss
356 ++ ssl
357 ++ smime
358 ++ nssutil
359 ++EOF
360 ++ exit $1
361 ++}
362 ++
363 ++if test $# -eq 0; then
364 ++ usage 1 1>&2
365 ++fi
366 ++
367 ++lib_ssl=yes
368 ++lib_smime=yes
369 ++lib_nss=yes
370 ++lib_nssutil=yes
371 ++
372 ++while test $# -gt 0; do
373 ++ case "$1" in
374 ++ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
375 ++ *) optarg= ;;
376 ++ esac
377 ++
378 ++ case $1 in
379 ++ --prefix=*)
380 ++ prefix=$optarg
381 ++ ;;
382 ++ --prefix)
383 ++ echo_prefix=yes
384 ++ ;;
385 ++ --exec-prefix=*)
386 ++ exec_prefix=$optarg
387 ++ ;;
388 ++ --exec-prefix)
389 ++ echo_exec_prefix=yes
390 ++ ;;
391 ++ --includedir=*)
392 ++ includedir=$optarg
393 ++ ;;
394 ++ --includedir)
395 ++ echo_includedir=yes
396 ++ ;;
397 ++ --libdir=*)
398 ++ libdir=$optarg
399 ++ ;;
400 ++ --libdir)
401 ++ echo_libdir=yes
402 ++ ;;
403 ++ --version)
404 ++ echo ${major_version}.${minor_version}.${patch_version}
405 ++ ;;
406 ++ --cflags)
407 ++ echo_cflags=yes
408 ++ ;;
409 ++ --libs)
410 ++ echo_libs=yes
411 ++ ;;
412 ++ ssl)
413 ++ lib_ssl=yes
414 ++ ;;
415 ++ smime)
416 ++ lib_smime=yes
417 ++ ;;
418 ++ nss)
419 ++ lib_nss=yes
420 ++ ;;
421 ++ nssutil)
422 ++ lib_nssutil=yes
423 ++ ;;
424 ++ *)
425 ++ usage 1 1>&2
426 ++ ;;
427 ++ esac
428 ++ shift
429 ++done
430 ++
431 ++# Set variables that may be dependent upon other variables
432 ++if test -z "$exec_prefix"; then
433 ++ exec_prefix=`pkg-config --variable=exec_prefix nss`
434 ++fi
435 ++if test -z "$includedir"; then
436 ++ includedir=`pkg-config --variable=includedir nss`
437 ++fi
438 ++if test -z "$libdir"; then
439 ++ libdir=`pkg-config --variable=libdir nss`
440 ++fi
441 ++
442 ++if test "$echo_prefix" = "yes"; then
443 ++ echo $prefix
444 ++fi
445 ++
446 ++if test "$echo_exec_prefix" = "yes"; then
447 ++ echo $exec_prefix
448 ++fi
449 ++
450 ++if test "$echo_includedir" = "yes"; then
451 ++ echo $includedir
452 ++fi
453 ++
454 ++if test "$echo_libdir" = "yes"; then
455 ++ echo $libdir
456 ++fi
457 ++
458 ++if test "$echo_cflags" = "yes"; then
459 ++ echo -I$includedir
460 ++fi
461 ++
462 ++if test "$echo_libs" = "yes"; then
463 ++ libdirs=""
464 ++ if test -n "$lib_ssl"; then
465 ++ libdirs="$libdirs -lssl${major_version}"
466 ++ fi
467 ++ if test -n "$lib_smime"; then
468 ++ libdirs="$libdirs -lsmime${major_version}"
469 ++ fi
470 ++ if test -n "$lib_nss"; then
471 ++ libdirs="$libdirs -lnss${major_version}"
472 ++ fi
473 ++ if test -n "$lib_nssutil"; then
474 ++ libdirs="$libdirs -lnssutil${major_version}"
475 ++ fi
476 ++ echo $libdirs
477 ++fi
478 ++
479 +diff -urN a/nss/config/nss.pc.in b/nss/config/nss.pc.in
480 +--- a/nss/config/nss.pc.in 1969-12-31 18:00:00.000000000 -0600
481 ++++ b/nss/config/nss.pc.in 2015-11-15 10:42:46.251578304 -0600
482 +@@ -0,0 +1,12 @@
483 ++prefix=@prefix@
484 ++exec_prefix=@exec_prefix@
485 ++libdir=@libdir@
486 ++includedir=@includedir@
487 ++
488 ++Name: NSS
489 ++Description: Network Security Services
490 ++Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@
491 ++Requires: nspr >= 4.8
492 ++Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3
493 ++Cflags: -I${includedir}
494 ++
495 +diff -urN a/nss/Makefile b/nss/Makefile
496 +--- a/nss/Makefile 2015-11-15 09:25:06.410786060 -0600
497 ++++ b/nss/Makefile 2015-11-15 10:42:46.252578304 -0600
498 +@@ -46,7 +46,7 @@
499 + # (7) Execute "local" rules. (OPTIONAL). #
500 + #######################################################################
501 +
502 +-nss_build_all: build_nspr all
503 ++nss_build_all: all
504 +
505 + nss_clean_all: clobber_nspr clobber
506 +
507 +@@ -115,12 +115,6 @@
508 + --with-dist-prefix='$(NSPR_PREFIX)' \
509 + --with-dist-includedir='$(NSPR_PREFIX)/include'
510 +
511 +-build_nspr: $(NSPR_CONFIG_STATUS)
512 +- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)
513 +-
514 +-clobber_nspr: $(NSPR_CONFIG_STATUS)
515 +- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) clobber
516 +-
517 + build_docs:
518 + $(MAKE) -C $(CORE_DEPTH)/doc
519 +
520 +diff -urN a/nss/manifest.mn b/nss/manifest.mn
521 +--- a/nss/manifest.mn 2015-11-15 09:25:06.411786060 -0600
522 ++++ b/nss/manifest.mn 2015-11-15 10:43:15.633576994 -0600
523 +@@ -10,4 +10,4 @@
524 +
525 + RELEASE = nss
526 +
527 +-DIRS = coreconf lib cmd external_tests
528 ++DIRS = coreconf lib cmd config
529
530 diff --git a/dev-libs/nss/files/nss-3.21-pem-werror.patch b/dev-libs/nss/files/nss-3.21-pem-werror.patch
531 new file mode 100644
532 index 0000000..392d74a
533 --- /dev/null
534 +++ b/dev-libs/nss/files/nss-3.21-pem-werror.patch
535 @@ -0,0 +1,146 @@
536 +diff -up ./nss/lib/ckfw/pem/ckpem.h.compile_Werror ./nss/lib/ckfw/pem/ckpem.h
537 +--- ./nss/lib/ckfw/pem/ckpem.h.compile_Werror 2014-01-23 06:28:18.000000000 -0800
538 ++++ ./nss/lib/ckfw/pem/ckpem.h 2015-11-13 12:07:29.219887390 -0800
539 +@@ -233,6 +233,9 @@ struct pemLOWKEYPrivateKeyStr {
540 + };
541 + typedef struct pemLOWKEYPrivateKeyStr pemLOWKEYPrivateKey;
542 +
543 ++/* NOTE: Discrepancy with the the way callers use of the return value as a count
544 ++ * Fix this when we sync. up with the cleanup work being done at nss-pem project.
545 ++ */
546 + SECStatus ReadDERFromFile(SECItem ***derlist, char *filename, PRBool ascii, int *cipher, char **ivstring, PRBool certsonly);
547 + const NSSItem * pem_FetchAttribute ( pemInternalObject *io, CK_ATTRIBUTE_TYPE type);
548 + void pem_PopulateModulusExponent(pemInternalObject *io);
549 +diff -up ./nss/lib/ckfw/pem/pinst.c.compile_Werror ./nss/lib/ckfw/pem/pinst.c
550 +--- ./nss/lib/ckfw/pem/pinst.c.compile_Werror 2014-01-23 06:28:18.000000000 -0800
551 ++++ ./nss/lib/ckfw/pem/pinst.c 2015-11-13 12:07:29.219887390 -0800
552 +@@ -472,7 +472,9 @@ AddCertificate(char *certfile, char *key
553 + char *ivstring = NULL;
554 + int cipher;
555 +
556 +- nobjs = ReadDERFromFile(&objs, certfile, PR_TRUE, &cipher, &ivstring, PR_TRUE /* certs only */);
557 ++ /* TODO: Fix discrepancy between our usage of the return value as
558 ++ * as an int (a count) and the declaration as a SECStatus. */
559 ++ nobjs = (int) ReadDERFromFile(&objs, certfile, PR_TRUE, &cipher, &ivstring, PR_TRUE /* certs only */);
560 + if (nobjs <= 0) {
561 + nss_ZFreeIf(objs);
562 + return CKR_GENERAL_ERROR;
563 +@@ -515,8 +517,10 @@ AddCertificate(char *certfile, char *key
564 + if (keyfile) { /* add the private key */
565 + SECItem **keyobjs = NULL;
566 + int kobjs = 0;
567 ++ /* TODO: Fix discrepancy between our usage of the return value as
568 ++ * as an int and the declaration as a SECStatus. */
569 + kobjs =
570 +- ReadDERFromFile(&keyobjs, keyfile, PR_TRUE, &cipher,
571 ++ (int) ReadDERFromFile(&keyobjs, keyfile, PR_TRUE, &cipher,
572 + &ivstring, PR_FALSE);
573 + if (kobjs < 1) {
574 + error = CKR_GENERAL_ERROR;
575 +diff -up ./nss/lib/ckfw/pem/pobject.c.compile_Werror ./nss/lib/ckfw/pem/pobject.c
576 +--- ./nss/lib/ckfw/pem/pobject.c.compile_Werror 2014-01-23 06:28:18.000000000 -0800
577 ++++ ./nss/lib/ckfw/pem/pobject.c 2015-11-13 12:07:29.220887368 -0800
578 +@@ -630,6 +630,11 @@ pem_DestroyInternalObject
579 + if (io->u.key.ivstring)
580 + free(io->u.key.ivstring);
581 + break;
582 ++ case pemAll:
583 ++ /* pemAll is not used, keep the compiler happy
584 ++ * TODO: investigate a proper solution
585 ++ */
586 ++ return;
587 + }
588 +
589 + if (NULL != gobj)
590 +@@ -1044,7 +1049,9 @@ pem_CreateObject
591 + int nobjs = 0;
592 + int i;
593 + int objid;
594 ++#if 0
595 + pemToken *token;
596 ++#endif
597 + int cipher;
598 + char *ivstring = NULL;
599 + pemInternalObject *listObj = NULL;
600 +@@ -1073,7 +1080,9 @@ pem_CreateObject
601 + }
602 + slotID = nssCKFWSlot_GetSlotID(fwSlot);
603 +
604 ++#if 0
605 + token = (pemToken *) mdToken->etc;
606 ++#endif
607 +
608 + /*
609 + * only create keys and certs.
610 +@@ -1114,7 +1123,11 @@ pem_CreateObject
611 + }
612 +
613 + if (objClass == CKO_CERTIFICATE) {
614 +- nobjs = ReadDERFromFile(&derlist, filename, PR_TRUE, &cipher, &ivstring, PR_TRUE /* certs only */);
615 ++ /* TODO: Fix discrepancy between our usage of the return value as
616 ++ * as an int and the declaration as a SECStatus. Typecasting as a
617 ++ * temporary workaround.
618 ++ */
619 ++ nobjs = (int) ReadDERFromFile(&derlist, filename, PR_TRUE, &cipher, &ivstring, PR_TRUE /* certs only */);
620 + if (nobjs < 1)
621 + goto loser;
622 +
623 +diff -up ./nss/lib/ckfw/pem/rsawrapr.c.compile_Werror ./nss/lib/ckfw/pem/rsawrapr.c
624 +--- ./nss/lib/ckfw/pem/rsawrapr.c.compile_Werror 2014-01-23 06:28:18.000000000 -0800
625 ++++ ./nss/lib/ckfw/pem/rsawrapr.c 2015-11-13 12:07:29.220887368 -0800
626 +@@ -93,6 +93,8 @@ pem_PublicModulusLen(NSSLOWKEYPublicKey
627 + return 0;
628 + }
629 +
630 ++/* unused functions */
631 ++#if 0
632 + static SHA1Context *SHA1_CloneContext(SHA1Context * original)
633 + {
634 + SHA1Context *clone = NULL;
635 +@@ -215,6 +217,7 @@ oaep_xor_with_h2(unsigned char *salt, un
636 +
637 + return SECSuccess;
638 + }
639 ++#endif /* unused functions */
640 +
641 + /*
642 + * Format one block of data for public/private key encryption using
643 +diff -up ./nss/lib/ckfw/pem/util.c.compile_Werror ./nss/lib/ckfw/pem/util.c
644 +--- ./nss/lib/ckfw/pem/util.c.compile_Werror 2014-01-23 06:28:18.000000000 -0800
645 ++++ ./nss/lib/ckfw/pem/util.c 2015-11-13 12:22:52.282196306 -0800
646 +@@ -131,7 +131,8 @@ static SECStatus FileToItem(SECItem * ds
647 + return SECFailure;
648 + }
649 +
650 +-int
651 ++/* FIX: Returns a SECStatus yet callers take result as a count */
652 ++SECStatus
653 + ReadDERFromFile(SECItem *** derlist, char *filename, PRBool ascii,
654 + int *cipher, char **ivstring, PRBool certsonly)
655 + {
656 +@@ -237,7 +238,12 @@ ReadDERFromFile(SECItem *** derlist, cha
657 + goto loser;
658 + }
659 + if ((certsonly && !key) || (!certsonly && key)) {
660 ++ error = CKR_OK;
661 + PUT_Object(der, error);
662 ++ if (error != CKR_OK) {
663 ++ free(der);
664 ++ goto loser;
665 ++ }
666 + } else {
667 + free(der->data);
668 + free(der);
669 +@@ -255,7 +261,12 @@ ReadDERFromFile(SECItem *** derlist, cha
670 + }
671 +
672 + /* NOTE: This code path has never been tested. */
673 ++ error = CKR_OK;
674 + PUT_Object(der, error);
675 ++ if (error != CKR_OK) {
676 ++ free(der);
677 ++ goto loser;
678 ++ }
679 + }
680 +
681 + nss_ZFreeIf(filedata.data);
682
683 diff --git a/dev-libs/nss/nss-3.21.ebuild b/dev-libs/nss/nss-3.21.ebuild
684 new file mode 100644
685 index 0000000..c3b279a
686 --- /dev/null
687 +++ b/dev-libs/nss/nss-3.21.ebuild
688 @@ -0,0 +1,326 @@
689 +# Copyright 1999-2015 Gentoo Foundation
690 +# Distributed under the terms of the GNU General Public License v2
691 +# $Id$
692 +
693 +EAPI=5
694 +inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal
695 +
696 +NSPR_VER="4.10.8"
697 +RTM_NAME="NSS_${PV//./_}_RTM"
698 +# Rev of https://git.fedorahosted.org/cgit/nss-pem.git
699 +PEM_GIT_REV="015ae754dd9f6fbcd7e52030ec9732eb27fc06a8"
700 +PEM_P="${PN}-pem-20140125"
701 +
702 +DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
703 +HOMEPAGE="http://www.mozilla.org/projects/security/pki/nss/"
704 +SRC_URI="http://archive.mozilla.org/pub/mozilla.org/security/nss/releases/${RTM_NAME}/src/${P}.tar.gz
705 + cacert? ( https://dev.gentoo.org/~anarchy/patches/${PN}-3.14.1-add_spi+cacerts_ca_certs.patch )
706 + nss-pem? ( https://dev.gentoo.org/~anarchy/dist/${PEM_P}.tar.bz2 )"
707 +
708 +LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
709 +SLOT="0"
710 +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"
711 +IUSE="+cacert +nss-pem utils"
712 +CDEPEND=">=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
713 + >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
714 +DEPEND=">=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
715 + >=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
716 + ${CDEPEND}"
717 +RDEPEND=">=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
718 + ${CDEPEND}
719 + abi_x86_32? (
720 + !<=app-emulation/emul-linux-x86-baselibs-20140508-r12
721 + !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
722 + )"
723 +
724 +RESTRICT="test"
725 +
726 +S="${WORKDIR}/${P}/${PN}"
727 +
728 +MULTILIB_CHOST_TOOLS=(
729 + /usr/bin/nss-config
730 +)
731 +
732 +src_unpack() {
733 + unpack ${A}
734 + if use nss-pem ; then
735 + mv "${PN}"/lib/ckfw/pem/ "${S}"/lib/ckfw/ || die
736 + fi
737 +}
738 +
739 +src_prepare() {
740 + # Custom changes for gentoo
741 + epatch "${FILESDIR}/${PN}-3.21-gentoo-fixups.patch"
742 + epatch "${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
743 + use cacert && epatch "${DISTDIR}/${PN}-3.14.1-add_spi+cacerts_ca_certs.patch"
744 + use nss-pem && epatch "${FILESDIR}/${PN}-3.21-enable-pem.patch" \
745 + "${FILESDIR}/${PN}-3.21-pem-werror.patch"
746 + epatch "${FILESDIR}/${PN}-3.21-cacert-class3.patch" # 521462
747 +
748 + pushd coreconf >/dev/null || die
749 + # hack nspr paths
750 + echo 'INCLUDES += -I$(DIST)/include/dbm' \
751 + >> headers.mk || die "failed to append include"
752 +
753 + # modify install path
754 + sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \
755 + -i source.mk || die
756 +
757 + # Respect LDFLAGS
758 + sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk
759 + popd >/dev/null || die
760 +
761 + # Fix pkgconfig file for Prefix
762 + sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \
763 + config/Makefile || die
764 +
765 + # use host shlibsign if need be #436216
766 + if tc-is-cross-compiler ; then
767 + sed -i \
768 + -e 's:"${2}"/shlibsign:shlibsign:' \
769 + cmd/shlibsign/sign.sh || die
770 + fi
771 +
772 + # dirty hack
773 + sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \
774 + lib/ssl/config.mk || die
775 + sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \
776 + cmd/platlibs.mk || die
777 +
778 + multilib_copy_sources
779 +
780 + strip-flags
781 +}
782 +
783 +multilib_src_configure() {
784 + # Ensure we stay multilib aware
785 + sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die
786 +}
787 +
788 +nssarch() {
789 + # Most of the arches are the same as $ARCH
790 + local t=${1:-${CHOST}}
791 + case ${t} in
792 + aarch64*)echo "aarch64";;
793 + hppa*) echo "parisc";;
794 + i?86*) echo "i686";;
795 + x86_64*) echo "x86_64";;
796 + *) tc-arch ${t};;
797 + esac
798 +}
799 +
800 +nssbits() {
801 + local cc cppflags="${1}CPPFLAGS" cflags="${1}CFLAGS"
802 + if [[ ${1} == BUILD_ ]]; then
803 + cc=$(tc-getBUILD_CC)
804 + else
805 + cc=$(tc-getCC)
806 + fi
807 + echo > "${T}"/test.c || die
808 + ${cc} ${!cppflags} ${!cflags} -c "${T}"/test.c -o "${T}/${1}test.o" || die
809 + case $(file "${T}/${1}test.o") in
810 + *32-bit*x86-64*) echo USE_X32=1;;
811 + *64-bit*|*ppc64*|*x86_64*) echo USE_64=1;;
812 + *32-bit*|*ppc*|*i386*) ;;
813 + *) die "Failed to detect whether ${cc} builds 64bits or 32bits, disable distcc if you're using it, please";;
814 + esac
815 +}
816 +
817 +multilib_src_compile() {
818 + # use ABI to determine bit'ness, or fallback if unset
819 + local buildbits mybits
820 + case "${ABI}" in
821 + n32) mybits="USE_N32=1";;
822 + x32) mybits="USE_X32=1";;
823 + s390x|*64) mybits="USE_64=1";;
824 + ${DEFAULT_ABI})
825 + einfo "Running compilation test to determine bit'ness"
826 + mybits=$(nssbits)
827 + ;;
828 + esac
829 + # bitness of host may differ from target
830 + if tc-is-cross-compiler; then
831 + buildbits=$(nssbits BUILD_)
832 + fi
833 +
834 + local makeargs=(
835 + CC="$(tc-getCC)"
836 + AR="$(tc-getAR) rc \$@"
837 + RANLIB="$(tc-getRANLIB)"
838 + OPTIMIZER=
839 + ${mybits}
840 + )
841 +
842 + # Take care of nspr settings #436216
843 + local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags)"
844 + unset NSPR_INCLUDE_DIR
845 +
846 + # Do not let `uname` be used.
847 + if use kernel_linux ; then
848 + makeargs+=(
849 + OS_TARGET=Linux
850 + OS_RELEASE=2.6
851 + OS_TEST="$(nssarch)"
852 + )
853 + fi
854 +
855 + export BUILD_OPT=1
856 + export NSS_USE_SYSTEM_SQLITE=1
857 + export NSDISTMODE=copy
858 + export NSS_ENABLE_ECC=1
859 + export FREEBL_NO_DEPEND=1
860 + export ASFLAGS=""
861 +
862 + local d
863 +
864 + # Build the host tools first.
865 + LDFLAGS="${BUILD_LDFLAGS}" \
866 + XCFLAGS="${BUILD_CFLAGS}" \
867 + NSPR_LIB_DIR="${T}/fakedir" \
868 + emake -j1 -C coreconf \
869 + CC="$(tc-getBUILD_CC)" \
870 + ${buildbits:-${mybits}}
871 + makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" )
872 +
873 + # Then build the target tools.
874 + for d in . lib/dbm ; do
875 + CPPFLAGS="${myCPPFLAGS}" \
876 + XCFLAGS="${CFLAGS} ${CPPFLAGS}" \
877 + NSPR_LIB_DIR="${T}/fakedir" \
878 + emake -j1 "${makeargs[@]}" -C ${d}
879 + done
880 +}
881 +
882 +# Altering these 3 libraries breaks the CHK verification.
883 +# All of the following cause it to break:
884 +# - stripping
885 +# - prelink
886 +# - ELF signing
887 +# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html
888 +# Either we have to NOT strip them, or we have to forcibly resign after
889 +# stripping.
890 +#local_libdir="$(get_libdir)"
891 +#export STRIP_MASK="
892 +# */${local_libdir}/libfreebl3.so*
893 +# */${local_libdir}/libnssdbm3.so*
894 +# */${local_libdir}/libsoftokn3.so*"
895 +
896 +export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3"
897 +
898 +generate_chk() {
899 + local shlibsign="$1"
900 + local libdir="$2"
901 + einfo "Resigning core NSS libraries for FIPS validation"
902 + shift 2
903 + local i
904 + for i in ${NSS_CHK_SIGN_LIBS} ; do
905 + local libname=lib${i}.so
906 + local chkname=lib${i}.chk
907 + "${shlibsign}" \
908 + -i "${libdir}"/${libname} \
909 + -o "${libdir}"/${chkname}.tmp \
910 + && mv -f \
911 + "${libdir}"/${chkname}.tmp \
912 + "${libdir}"/${chkname} \
913 + || die "Failed to sign ${libname}"
914 + done
915 +}
916 +
917 +cleanup_chk() {
918 + local libdir="$1"
919 + shift 1
920 + local i
921 + for i in ${NSS_CHK_SIGN_LIBS} ; do
922 + local libfname="${libdir}/lib${i}.so"
923 + # If the major version has changed, then we have old chk files.
924 + [ ! -f "${libfname}" -a -f "${libfname}.chk" ] \
925 + && rm -f "${libfname}.chk"
926 + done
927 +}
928 +
929 +multilib_src_install() {
930 + pushd dist >/dev/null || die
931 +
932 + dodir /usr/$(get_libdir)
933 + cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed"
934 + cp -L */lib/libcrmf.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
935 + cp -L */lib/libfreebl.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
936 +
937 + # Install nss-config and pkgconfig file
938 + dodir /usr/bin
939 + cp -L */bin/nss-config "${ED}"/usr/bin || die
940 + dodir /usr/$(get_libdir)/pkgconfig
941 + cp -L */lib/pkgconfig/nss.pc "${ED}"/usr/$(get_libdir)/pkgconfig || die
942 +
943 + # create an nss-softokn.pc from nss.pc for libfreebl and some private headers
944 + # bug 517266
945 + sed -e 's#Libs:#Libs: -lfreebl#' \
946 + -e 's#Cflags:#Cflags: -I${includedir}/private#' \
947 + */lib/pkgconfig/nss.pc >"${ED}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \
948 + || die "could not create nss-softokn.pc"
949 +
950 + # all the include files
951 + insinto /usr/include/nss
952 + doins public/nss/*.h
953 + insinto /usr/include/nss/private
954 + doins private/nss/{blapi,alghmac}.h
955 +
956 + popd >/dev/null || die
957 +
958 + local f nssutils
959 + # Always enabled because we need it for chk generation.
960 + nssutils="shlibsign"
961 +
962 + if multilib_is_native_abi ; then
963 + if use utils; then
964 + # The tests we do not need to install.
965 + #nssutils_test="bltest crmftest dbtest dertimetest
966 + #fipstest remtest sdrtest"
967 + nssutils="addbuiltin atob baddbdir btoa certcgi certutil checkcert
968 + cmsutil conflict crlutil derdump digest makepqg mangle modutil multinit
969 + nonspr10 ocspclnt oidcalc p7content p7env p7sign p7verify pk11mode
970 + pk12util pp rsaperf selfserv shlibsign signtool signver ssltap strsclnt
971 + symkeyutil tstclnt vfychain vfyserv"
972 + # install man-pages for utils (bug #516810)
973 + doman doc/nroff/*.1
974 + fi
975 + pushd dist/*/bin >/dev/null || die
976 + for f in ${nssutils}; do
977 + dobin ${f}
978 + done
979 + popd >/dev/null || die
980 + fi
981 +
982 + # Prelink breaks the CHK files. We don't have any reliable way to run
983 + # shlibsign after prelink.
984 + local l libs=() liblist
985 + for l in ${NSS_CHK_SIGN_LIBS} ; do
986 + libs+=("${EPREFIX}/usr/$(get_libdir)/lib${l}.so")
987 + done
988 + liblist=$(printf '%s:' "${libs[@]}")
989 + echo -e "PRELINK_PATH_MASK=${liblist%:}" > "${T}/90nss-${ABI}"
990 + doenvd "${T}/90nss-${ABI}"
991 +}
992 +
993 +pkg_postinst() {
994 + multilib_pkg_postinst() {
995 + # We must re-sign the libraries AFTER they are stripped.
996 + local shlibsign="${EROOT}/usr/bin/shlibsign"
997 + # See if we can execute it (cross-compiling & such). #436216
998 + "${shlibsign}" -h >&/dev/null
999 + if [[ $? -gt 1 ]] ; then
1000 + shlibsign="shlibsign"
1001 + fi
1002 + generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir)
1003 + }
1004 +
1005 + multilib_foreach_abi multilib_pkg_postinst
1006 +}
1007 +
1008 +pkg_postrm() {
1009 + multilib_pkg_postrm() {
1010 + cleanup_chk "${EROOT}"/usr/$(get_libdir)
1011 + }
1012 +
1013 + multilib_foreach_abi multilib_pkg_postrm
1014 +}