Gentoo Archives: gentoo-commits

From: Lars Wendler <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/nss/, dev-libs/nss/files/
Date: Fri, 18 Jan 2019 15:37:31
Message-Id: 1547824598.df02357fdc345dcb1f32ba05cede11a94036ff54.polynomial-c@gentoo
1 commit: df02357fdc345dcb1f32ba05cede11a94036ff54
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Fri Jan 18 15:16:38 2019 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Fri Jan 18 15:16:38 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=df02357f
7
8 dev-libs/nss: Removed old.
9
10 Package-Manager: Portage-2.3.56, Repoman-2.3.12
11 Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
12
13 dev-libs/nss/Manifest | 3 -
14 dev-libs/nss/files/nss-3.28-gentoo-fixups.patch | 241 ---------------
15 dev-libs/nss/nss-3.29.5.ebuild | 334 ---------------------
16 dev-libs/nss/nss-3.37.3.ebuild | 371 ------------------------
17 dev-libs/nss/nss-3.40.ebuild | 371 ------------------------
18 5 files changed, 1320 deletions(-)
19
20 diff --git a/dev-libs/nss/Manifest b/dev-libs/nss/Manifest
21 index aa72e5cc2a6..f0a8a67af27 100644
22 --- a/dev-libs/nss/Manifest
23 +++ b/dev-libs/nss/Manifest
24 @@ -1,7 +1,4 @@
25 -DIST nss-3.29.5.tar.gz 7480246 BLAKE2B 9ab16cbbd95aa31358b5b686bee64cd81c8343524dad8aac084f7c86883f1eaead78912dc1021b0461d027b0085356c4b7156f1d80010c3a0ece29d542deef50 SHA512 ce18bc7e793d2b3698db412b2e5fcabbfd9862eca3def120d5e44bc67276526bff6b33ffa84b8128f8af6d35101000e6f7bb24194f63a55461b3c245fac11faa
26 -DIST nss-3.37.3.tar.gz 23034239 BLAKE2B 3e30b0fe14501ca0e6b9d14322af73f191164989e6857b9ba46572b7363cdc65c88b672285982f2764ed44fcaf615cb249eea2f45b98050dfc6675003dc74a3b SHA512 11b21818f9fcff11d0e7f4c066ae9fbce0052a30a6b30df9a20022792039b5348554834a472e1b1195e467b9902067f9719678d5ca32efb4e60f1df161feed6f
27 DIST nss-3.40.1.tar.gz 23311074 BLAKE2B 9cd723e983a3f70748b0734bb2a6cc1ddfa280f1c167c3b1b371a58900fb3d9b3bf3482293bb8614d39ffb538bcca815a2aedbe03d2d643731817452f82bc2ca SHA512 464ae843161e8deb911975d2117e8bf1194a968689b4ce70f9a12d5a33dba7ddd69f1248ec45244139c30fcc87678b206a4e124f032b26ead8bf894e4e8d0564
28 -DIST nss-3.40.tar.gz 23308315 BLAKE2B 02cc3ea9589f888e108bd3a6a99d5f52927bb4c63b2d9e03df88b7c1a188b6f2cd47d281dd5234b141b41684043e71d9fbee8f99223d0f5ae9778a4e1cfaa1ce SHA512 3781c94595126757c95ea82c3134eb3f06f4c3814e9ed2bfceae22623a413d622349d08c6779e1230b2dbebd1f07aba58094fe83dcddebb3e043481e7a478239
29 DIST nss-3.41.tar.gz 23319563 BLAKE2B 76636b704cd572f9b840c7699c29697a4a882e66afcc3895ceb7b59a7af7af2513074e1abc6a028a13126d44e0cf722ab29e52a4c69640a2247814292efa282d SHA512 b5a43fe86ded664002fd714c493d9222a64539cd6139b64720625d1742fec5100712cbe401c90c79196e9cbad9ec07d9b4f0f517ce34e4b207beaa3e01c9e114
30 DIST nss-cacert-class1-class3.patch 22950 BLAKE2B 9d5e60df5f161a3c27c41e5a9419440a54f888eda454e3cde5ebe626d4075b65cf9938b5144d0fb022377f4bd415bff5e5c67d104409860aa9391b3eb8872c68 SHA512 a5aa740bf110a3f0262e3f1ef2fc739ac2b44f042e220039d48aee8e97cd764d5c10718220364f4098aba955882bd02cadb5481512388971a8290312f88a7df0
31 DIST nss-pem-20160329.tar.xz 27732 BLAKE2B 7c23133a7bfb969d8eac98fb6311e76ab60c5d6601c7329f3c492da30c017e66d64a1f8bc827dd36e52e65c1a1ec02b58816442aaf410345c5ed759a02264b84 SHA512 5834b06e4c64205447573d4f4c8989e20986ae67ee00eebce3817eb73794a6355a404143ba1c676ec302ceefaf9df103cb879b1d4ff14ba4e3790dbee3e40eb2
32
33 diff --git a/dev-libs/nss/files/nss-3.28-gentoo-fixups.patch b/dev-libs/nss/files/nss-3.28-gentoo-fixups.patch
34 deleted file mode 100644
35 index 69aa6528961..00000000000
36 --- a/dev-libs/nss/files/nss-3.28-gentoo-fixups.patch
37 +++ /dev/null
38 @@ -1,241 +0,0 @@
39 ---- nss/config/Makefile
40 -+++ nss/config/Makefile
41 -@@ -0,0 +1,40 @@
42 -+CORE_DEPTH = ..
43 -+DEPTH = ..
44 -+
45 -+include $(CORE_DEPTH)/coreconf/config.mk
46 -+
47 -+NSS_MAJOR_VERSION = `grep "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}'`
48 -+NSS_MINOR_VERSION = `grep "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}'`
49 -+NSS_PATCH_VERSION = `grep "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}'`
50 -+PREFIX = /usr
51 -+
52 -+all: export libs
53 -+
54 -+export:
55 -+ # Create the nss.pc file
56 -+ mkdir -p $(DIST)/lib/pkgconfig
57 -+ sed -e "s,@prefix@,$(PREFIX)," \
58 -+ -e "s,@exec_prefix@,\$${prefix}," \
59 -+ -e "s,@libdir@,\$${prefix}/lib64," \
60 -+ -e "s,@includedir@,\$${prefix}/include/nss," \
61 -+ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \
62 -+ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
63 -+ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
64 -+ nss.pc.in > nss.pc
65 -+ chmod 0644 nss.pc
66 -+ ln -sf ../../../../config/nss.pc $(DIST)/lib/pkgconfig
67 -+
68 -+ # Create the nss-config script
69 -+ mkdir -p $(DIST)/bin
70 -+ sed -e "s,@prefix@,$(PREFIX)," \
71 -+ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \
72 -+ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
73 -+ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
74 -+ nss-config.in > nss-config
75 -+ chmod 0755 nss-config
76 -+ ln -sf ../../../config/nss-config $(DIST)/bin
77 -+
78 -+libs:
79 -+
80 -+dummy: all export libs
81 -+
82 ---- nss/config/nss-config.in
83 -+++ nss/config/nss-config.in
84 -@@ -0,0 +1,145 @@
85 -+#!/bin/sh
86 -+
87 -+prefix=@prefix@
88 -+
89 -+major_version=@NSS_MAJOR_VERSION@
90 -+minor_version=@NSS_MINOR_VERSION@
91 -+patch_version=@NSS_PATCH_VERSION@
92 -+
93 -+usage()
94 -+{
95 -+ cat <<EOF
96 -+Usage: nss-config [OPTIONS] [LIBRARIES]
97 -+Options:
98 -+ [--prefix[=DIR]]
99 -+ [--exec-prefix[=DIR]]
100 -+ [--includedir[=DIR]]
101 -+ [--libdir[=DIR]]
102 -+ [--version]
103 -+ [--libs]
104 -+ [--cflags]
105 -+Dynamic Libraries:
106 -+ nss
107 -+ ssl
108 -+ smime
109 -+ nssutil
110 -+EOF
111 -+ exit $1
112 -+}
113 -+
114 -+if test $# -eq 0; then
115 -+ usage 1 1>&2
116 -+fi
117 -+
118 -+lib_ssl=yes
119 -+lib_smime=yes
120 -+lib_nss=yes
121 -+lib_nssutil=yes
122 -+
123 -+while test $# -gt 0; do
124 -+ case "$1" in
125 -+ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
126 -+ *) optarg= ;;
127 -+ esac
128 -+
129 -+ case $1 in
130 -+ --prefix=*)
131 -+ prefix=$optarg
132 -+ ;;
133 -+ --prefix)
134 -+ echo_prefix=yes
135 -+ ;;
136 -+ --exec-prefix=*)
137 -+ exec_prefix=$optarg
138 -+ ;;
139 -+ --exec-prefix)
140 -+ echo_exec_prefix=yes
141 -+ ;;
142 -+ --includedir=*)
143 -+ includedir=$optarg
144 -+ ;;
145 -+ --includedir)
146 -+ echo_includedir=yes
147 -+ ;;
148 -+ --libdir=*)
149 -+ libdir=$optarg
150 -+ ;;
151 -+ --libdir)
152 -+ echo_libdir=yes
153 -+ ;;
154 -+ --version)
155 -+ echo ${major_version}.${minor_version}.${patch_version}
156 -+ ;;
157 -+ --cflags)
158 -+ echo_cflags=yes
159 -+ ;;
160 -+ --libs)
161 -+ echo_libs=yes
162 -+ ;;
163 -+ ssl)
164 -+ lib_ssl=yes
165 -+ ;;
166 -+ smime)
167 -+ lib_smime=yes
168 -+ ;;
169 -+ nss)
170 -+ lib_nss=yes
171 -+ ;;
172 -+ nssutil)
173 -+ lib_nssutil=yes
174 -+ ;;
175 -+ *)
176 -+ usage 1 1>&2
177 -+ ;;
178 -+ esac
179 -+ shift
180 -+done
181 -+
182 -+# Set variables that may be dependent upon other variables
183 -+if test -z "$exec_prefix"; then
184 -+ exec_prefix=`pkg-config --variable=exec_prefix nss`
185 -+fi
186 -+if test -z "$includedir"; then
187 -+ includedir=`pkg-config --variable=includedir nss`
188 -+fi
189 -+if test -z "$libdir"; then
190 -+ libdir=`pkg-config --variable=libdir nss`
191 -+fi
192 -+
193 -+if test "$echo_prefix" = "yes"; then
194 -+ echo $prefix
195 -+fi
196 -+
197 -+if test "$echo_exec_prefix" = "yes"; then
198 -+ echo $exec_prefix
199 -+fi
200 -+
201 -+if test "$echo_includedir" = "yes"; then
202 -+ echo $includedir
203 -+fi
204 -+
205 -+if test "$echo_libdir" = "yes"; then
206 -+ echo $libdir
207 -+fi
208 -+
209 -+if test "$echo_cflags" = "yes"; then
210 -+ echo -I$includedir
211 -+fi
212 -+
213 -+if test "$echo_libs" = "yes"; then
214 -+ libdirs=""
215 -+ if test -n "$lib_ssl"; then
216 -+ libdirs="$libdirs -lssl${major_version}"
217 -+ fi
218 -+ if test -n "$lib_smime"; then
219 -+ libdirs="$libdirs -lsmime${major_version}"
220 -+ fi
221 -+ if test -n "$lib_nss"; then
222 -+ libdirs="$libdirs -lnss${major_version}"
223 -+ fi
224 -+ if test -n "$lib_nssutil"; then
225 -+ libdirs="$libdirs -lnssutil${major_version}"
226 -+ fi
227 -+ echo $libdirs
228 -+fi
229 -+
230 ---- nss/config/nss.pc.in
231 -+++ nss/config/nss.pc.in
232 -@@ -0,0 +1,12 @@
233 -+prefix=@prefix@
234 -+exec_prefix=@exec_prefix@
235 -+libdir=@libdir@
236 -+includedir=@includedir@
237 -+
238 -+Name: NSS
239 -+Description: Network Security Services
240 -+Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@
241 -+Requires: nspr >= 4.8
242 -+Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3
243 -+Cflags: -I${includedir}
244 -+
245 ---- nss/Makefile
246 -+++ nss/Makefile
247 -@@ -46,7 +46,7 @@
248 - # (7) Execute "local" rules. (OPTIONAL). #
249 - #######################################################################
250 -
251 --nss_build_all: build_nspr all latest
252 -+nss_build_all: all latest
253 -
254 - nss_clean_all: clobber_nspr clobber
255 -
256 -@@ -143,15 +143,6 @@
257 - --prefix='$(NSS_GYP_PREFIX)'
258 - endif
259 -
260 --build_nspr: $(NSPR_CONFIG_STATUS)
261 -- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)
262 --
263 --install_nspr: build_nspr
264 -- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) install
265 --
266 --clobber_nspr: $(NSPR_CONFIG_STATUS)
267 -- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) clobber
268 --
269 - build_docs:
270 - $(MAKE) -C $(CORE_DEPTH)/doc
271 -
272 ---- nss/manifest.mn
273 -+++ nss/manifest.mn
274 -@@ -10,4 +10,4 @@
275 -
276 - RELEASE = nss
277 -
278 --DIRS = coreconf lib cmd gtests
279 -+DIRS = coreconf lib cmd config
280
281 diff --git a/dev-libs/nss/nss-3.29.5.ebuild b/dev-libs/nss/nss-3.29.5.ebuild
282 deleted file mode 100644
283 index 3c5afbacf3b..00000000000
284 --- a/dev-libs/nss/nss-3.29.5.ebuild
285 +++ /dev/null
286 @@ -1,334 +0,0 @@
287 -# Copyright 1999-2018 Gentoo Foundation
288 -# Distributed under the terms of the GNU General Public License v2
289 -
290 -EAPI=6
291 -
292 -inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal
293 -
294 -NSPR_VER="4.13.1"
295 -RTM_NAME="NSS_${PV//./_}_RTM"
296 -# Rev of https://git.fedorahosted.org/cgit/nss-pem.git
297 -PEM_GIT_REV="429b0222759d8ad8e6dcd29e62875ae3efd69116"
298 -PEM_P="${PN}-pem-20160329"
299 -
300 -DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
301 -HOMEPAGE="http://www.mozilla.org/projects/security/pki/nss/"
302 -SRC_URI="https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/${P}.tar.gz
303 - cacert? ( https://dev.gentoo.org/~axs/distfiles/${PN}-cacert-class1-class3.patch )
304 - nss-pem? ( https://dev.gentoo.org/~polynomial-c/${PEM_P}.tar.xz )"
305 -
306 -LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
307 -SLOT="0"
308 -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"
309 -IUSE="cacert +nss-pem utils"
310 -CDEPEND=">=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
311 - >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
312 -DEPEND=">=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
313 - >=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
314 - ${CDEPEND}"
315 -RDEPEND=">=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
316 - ${CDEPEND}"
317 -
318 -RESTRICT="test"
319 -
320 -S="${WORKDIR}/${P}/${PN}"
321 -
322 -MULTILIB_CHOST_TOOLS=(
323 - /usr/bin/nss-config
324 -)
325 -
326 -PATCHES=(
327 - # Custom changes for gentoo
328 - "${FILESDIR}/${PN}-3.28-gentoo-fixups.patch"
329 - "${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
330 - "${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
331 -)
332 -
333 -src_unpack() {
334 - unpack ${A}
335 - if use nss-pem ; then
336 - mv "${PN}"/lib/ckfw/pem/ "${S}"/lib/ckfw/ || die
337 - fi
338 -}
339 -
340 -src_prepare() {
341 - if use nss-pem ; then
342 - PATCHES+=(
343 - "${FILESDIR}/${PN}-3.21-enable-pem.patch"
344 - )
345 - fi
346 - if use cacert ; then #521462
347 - PATCHES+=(
348 - "${DISTDIR}/${PN}-cacert-class1-class3.patch"
349 - )
350 - fi
351 -
352 - default
353 -
354 - pushd coreconf >/dev/null || die
355 - # hack nspr paths
356 - echo 'INCLUDES += -I$(DIST)/include/dbm' \
357 - >> headers.mk || die "failed to append include"
358 -
359 - # modify install path
360 - sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \
361 - -i source.mk || die
362 -
363 - # Respect LDFLAGS
364 - sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk
365 - popd >/dev/null || die
366 -
367 - # Fix pkgconfig file for Prefix
368 - sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \
369 - config/Makefile || die
370 -
371 - # use host shlibsign if need be #436216
372 - if tc-is-cross-compiler ; then
373 - sed -i \
374 - -e 's:"${2}"/shlibsign:shlibsign:' \
375 - cmd/shlibsign/sign.sh || die
376 - fi
377 -
378 - # dirty hack
379 - sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \
380 - lib/ssl/config.mk || die
381 - sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \
382 - cmd/platlibs.mk || die
383 -
384 - multilib_copy_sources
385 -
386 - strip-flags
387 -}
388 -
389 -multilib_src_configure() {
390 - # Ensure we stay multilib aware
391 - sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die
392 -}
393 -
394 -nssarch() {
395 - # Most of the arches are the same as $ARCH
396 - local t=${1:-${CHOST}}
397 - case ${t} in
398 - aarch64*)echo "aarch64";;
399 - hppa*) echo "parisc";;
400 - i?86*) echo "i686";;
401 - x86_64*) echo "x86_64";;
402 - *) tc-arch ${t};;
403 - esac
404 -}
405 -
406 -nssbits() {
407 - local cc cppflags="${1}CPPFLAGS" cflags="${1}CFLAGS"
408 - if [[ ${1} == BUILD_ ]]; then
409 - cc=$(tc-getBUILD_CC)
410 - else
411 - cc=$(tc-getCC)
412 - fi
413 - echo > "${T}"/test.c || die
414 - ${cc} ${!cppflags} ${!cflags} -c "${T}"/test.c -o "${T}/${1}test.o" || die
415 - case $(file "${T}/${1}test.o") in
416 - *32-bit*x86-64*) echo USE_X32=1;;
417 - *64-bit*|*ppc64*|*x86_64*) echo USE_64=1;;
418 - *32-bit*|*ppc*|*i386*) ;;
419 - *) die "Failed to detect whether ${cc} builds 64bits or 32bits, disable distcc if you're using it, please";;
420 - esac
421 -}
422 -
423 -multilib_src_compile() {
424 - # use ABI to determine bit'ness, or fallback if unset
425 - local buildbits mybits
426 - case "${ABI}" in
427 - n32) mybits="USE_N32=1";;
428 - x32) mybits="USE_X32=1";;
429 - s390x|*64) mybits="USE_64=1";;
430 - ${DEFAULT_ABI})
431 - einfo "Running compilation test to determine bit'ness"
432 - mybits=$(nssbits)
433 - ;;
434 - esac
435 - # bitness of host may differ from target
436 - if tc-is-cross-compiler; then
437 - buildbits=$(nssbits BUILD_)
438 - fi
439 -
440 - local makeargs=(
441 - CC="$(tc-getCC)"
442 - AR="$(tc-getAR) rc \$@"
443 - RANLIB="$(tc-getRANLIB)"
444 - OPTIMIZER=
445 - ${mybits}
446 - )
447 -
448 - # Take care of nspr settings #436216
449 - local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags)"
450 - unset NSPR_INCLUDE_DIR
451 -
452 - # Do not let `uname` be used.
453 - if use kernel_linux ; then
454 - makeargs+=(
455 - OS_TARGET=Linux
456 - OS_RELEASE=2.6
457 - OS_TEST="$(nssarch)"
458 - )
459 - fi
460 -
461 - export NSS_ENABLE_WERROR=0 #567158
462 - export BUILD_OPT=1
463 - export NSS_USE_SYSTEM_SQLITE=1
464 - export NSDISTMODE=copy
465 - export NSS_ENABLE_ECC=1
466 - export FREEBL_NO_DEPEND=1
467 - export ASFLAGS=""
468 -
469 - local d
470 -
471 - # Build the host tools first.
472 - LDFLAGS="${BUILD_LDFLAGS}" \
473 - XCFLAGS="${BUILD_CFLAGS}" \
474 - NSPR_LIB_DIR="${T}/fakedir" \
475 - emake -j1 -C coreconf \
476 - CC="$(tc-getBUILD_CC)" \
477 - ${buildbits:-${mybits}}
478 - makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" )
479 -
480 - # Then build the target tools.
481 - for d in . lib/dbm ; do
482 - CPPFLAGS="${myCPPFLAGS}" \
483 - XCFLAGS="${CFLAGS} ${CPPFLAGS}" \
484 - NSPR_LIB_DIR="${T}/fakedir" \
485 - emake -j1 "${makeargs[@]}" -C ${d}
486 - done
487 -}
488 -
489 -# Altering these 3 libraries breaks the CHK verification.
490 -# All of the following cause it to break:
491 -# - stripping
492 -# - prelink
493 -# - ELF signing
494 -# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html
495 -# Either we have to NOT strip them, or we have to forcibly resign after
496 -# stripping.
497 -#local_libdir="$(get_libdir)"
498 -#export STRIP_MASK="
499 -# */${local_libdir}/libfreebl3.so*
500 -# */${local_libdir}/libnssdbm3.so*
501 -# */${local_libdir}/libsoftokn3.so*"
502 -
503 -export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3"
504 -
505 -generate_chk() {
506 - local shlibsign="$1"
507 - local libdir="$2"
508 - einfo "Resigning core NSS libraries for FIPS validation"
509 - shift 2
510 - local i
511 - for i in ${NSS_CHK_SIGN_LIBS} ; do
512 - local libname=lib${i}.so
513 - local chkname=lib${i}.chk
514 - "${shlibsign}" \
515 - -i "${libdir}"/${libname} \
516 - -o "${libdir}"/${chkname}.tmp \
517 - && mv -f \
518 - "${libdir}"/${chkname}.tmp \
519 - "${libdir}"/${chkname} \
520 - || die "Failed to sign ${libname}"
521 - done
522 -}
523 -
524 -cleanup_chk() {
525 - local libdir="$1"
526 - shift 1
527 - local i
528 - for i in ${NSS_CHK_SIGN_LIBS} ; do
529 - local libfname="${libdir}/lib${i}.so"
530 - # If the major version has changed, then we have old chk files.
531 - [ ! -f "${libfname}" -a -f "${libfname}.chk" ] \
532 - && rm -f "${libfname}.chk"
533 - done
534 -}
535 -
536 -multilib_src_install() {
537 - pushd dist >/dev/null || die
538 -
539 - dodir /usr/$(get_libdir)
540 - cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed"
541 - cp -L */lib/libcrmf.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
542 - cp -L */lib/libfreebl.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
543 -
544 - # Install nss-config and pkgconfig file
545 - dodir /usr/bin
546 - cp -L */bin/nss-config "${ED}"/usr/bin || die
547 - dodir /usr/$(get_libdir)/pkgconfig
548 - cp -L */lib/pkgconfig/nss.pc "${ED}"/usr/$(get_libdir)/pkgconfig || die
549 -
550 - # create an nss-softokn.pc from nss.pc for libfreebl and some private headers
551 - # bug 517266
552 - sed -e 's#Libs:#Libs: -lfreebl#' \
553 - -e 's#Cflags:#Cflags: -I${includedir}/private#' \
554 - */lib/pkgconfig/nss.pc >"${ED}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \
555 - || die "could not create nss-softokn.pc"
556 -
557 - # all the include files
558 - insinto /usr/include/nss
559 - doins public/nss/*.h
560 - insinto /usr/include/nss/private
561 - doins private/nss/{blapi,alghmac}.h
562 -
563 - popd >/dev/null || die
564 -
565 - local f nssutils
566 - # Always enabled because we need it for chk generation.
567 - nssutils="shlibsign"
568 -
569 - if multilib_is_native_abi ; then
570 - if use utils; then
571 - # The tests we do not need to install.
572 - #nssutils_test="bltest crmftest dbtest dertimetest
573 - #fipstest remtest sdrtest"
574 - # checkcert utils has been removed in nss-3.22:
575 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1187545
576 - # https://hg.mozilla.org/projects/nss/rev/df1729d37870
577 - nssutils="addbuiltin atob baddbdir btoa certcgi certutil
578 - cmsutil conflict crlutil derdump digest makepqg mangle modutil multinit
579 - nonspr10 ocspclnt oidcalc p7content p7env p7sign p7verify pk11mode
580 - pk12util pp rsaperf selfserv shlibsign signtool signver ssltap strsclnt
581 - symkeyutil tstclnt vfychain vfyserv"
582 - # install man-pages for utils (bug #516810)
583 - doman doc/nroff/*.1
584 - fi
585 - pushd dist/*/bin >/dev/null || die
586 - for f in ${nssutils}; do
587 - dobin ${f}
588 - done
589 - popd >/dev/null || die
590 - fi
591 -
592 - # Prelink breaks the CHK files. We don't have any reliable way to run
593 - # shlibsign after prelink.
594 - dodir /etc/prelink.conf.d
595 - printf -- "-b ${EPREFIX}/usr/$(get_libdir)/lib%s.so\n" ${NSS_CHK_SIGN_LIBS} \
596 - > "${ED}"/etc/prelink.conf.d/nss.conf
597 -}
598 -
599 -pkg_postinst() {
600 - multilib_pkg_postinst() {
601 - # We must re-sign the libraries AFTER they are stripped.
602 - local shlibsign="${EROOT}/usr/bin/shlibsign"
603 - # See if we can execute it (cross-compiling & such). #436216
604 - "${shlibsign}" -h >&/dev/null
605 - if [[ $? -gt 1 ]] ; then
606 - shlibsign="shlibsign"
607 - fi
608 - generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir)
609 - }
610 -
611 - multilib_foreach_abi multilib_pkg_postinst
612 -}
613 -
614 -pkg_postrm() {
615 - multilib_pkg_postrm() {
616 - cleanup_chk "${EROOT}"/usr/$(get_libdir)
617 - }
618 -
619 - multilib_foreach_abi multilib_pkg_postrm
620 -}
621
622 diff --git a/dev-libs/nss/nss-3.37.3.ebuild b/dev-libs/nss/nss-3.37.3.ebuild
623 deleted file mode 100644
624 index b8389b3ef86..00000000000
625 --- a/dev-libs/nss/nss-3.37.3.ebuild
626 +++ /dev/null
627 @@ -1,371 +0,0 @@
628 -# Copyright 1999-2018 Gentoo Foundation
629 -# Distributed under the terms of the GNU General Public License v2
630 -
631 -EAPI=6
632 -
633 -inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal
634 -
635 -NSPR_VER="4.16"
636 -RTM_NAME="NSS_${PV//./_}_RTM"
637 -# Rev of https://git.fedorahosted.org/cgit/nss-pem.git
638 -PEM_GIT_REV="429b0222759d8ad8e6dcd29e62875ae3efd69116"
639 -PEM_P="${PN}-pem-20160329"
640 -
641 -DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
642 -HOMEPAGE="http://www.mozilla.org/projects/security/pki/nss/"
643 -SRC_URI="https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/${P}.tar.gz
644 - cacert? ( https://dev.gentoo.org/~axs/distfiles/${PN}-cacert-class1-class3.patch )
645 - nss-pem? ( https://dev.gentoo.org/~polynomial-c/${PEM_P}.tar.xz )"
646 -
647 -LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
648 -SLOT="0"
649 -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"
650 -IUSE="cacert +nss-pem utils"
651 -CDEPEND=">=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
652 - >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
653 -DEPEND=">=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
654 - >=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
655 - ${CDEPEND}"
656 -RDEPEND=">=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
657 - ${CDEPEND}
658 -"
659 -
660 -RESTRICT="test"
661 -
662 -S="${WORKDIR}/${P}/${PN}"
663 -
664 -MULTILIB_CHOST_TOOLS=(
665 - /usr/bin/nss-config
666 -)
667 -
668 -PATCHES=(
669 - # Custom changes for gentoo
670 - "${FILESDIR}/${PN}-3.32-gentoo-fixups.patch"
671 - "${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
672 - "${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
673 -)
674 -
675 -src_unpack() {
676 - unpack ${A}
677 - if use nss-pem ; then
678 - mv "${PN}"/lib/ckfw/pem/ "${S}"/lib/ckfw/ || die
679 - fi
680 -}
681 -
682 -src_prepare() {
683 - if use nss-pem ; then
684 - PATCHES+=(
685 - "${FILESDIR}/${PN}-3.21-enable-pem.patch"
686 - )
687 - fi
688 - if use cacert ; then #521462
689 - PATCHES+=(
690 - "${DISTDIR}/${PN}-cacert-class1-class3.patch"
691 - )
692 - fi
693 -
694 - default
695 -
696 - pushd coreconf >/dev/null || die
697 - # hack nspr paths
698 - echo 'INCLUDES += -I$(DIST)/include/dbm' \
699 - >> headers.mk || die "failed to append include"
700 -
701 - # modify install path
702 - sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \
703 - -i source.mk || die
704 -
705 - # Respect LDFLAGS
706 - sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk
707 - popd >/dev/null || die
708 -
709 - # Fix pkgconfig file for Prefix
710 - sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \
711 - config/Makefile || die
712 -
713 - # use host shlibsign if need be #436216
714 - if tc-is-cross-compiler ; then
715 - sed -i \
716 - -e 's:"${2}"/shlibsign:shlibsign:' \
717 - cmd/shlibsign/sign.sh || die
718 - fi
719 -
720 - # dirty hack
721 - sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \
722 - lib/ssl/config.mk || die
723 - sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \
724 - cmd/platlibs.mk || die
725 -
726 - multilib_copy_sources
727 -
728 - strip-flags
729 -}
730 -
731 -multilib_src_configure() {
732 - # Ensure we stay multilib aware
733 - sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die
734 -}
735 -
736 -nssarch() {
737 - # Most of the arches are the same as $ARCH
738 - local t=${1:-${CHOST}}
739 - case ${t} in
740 - aarch64*)echo "aarch64";;
741 - hppa*) echo "parisc";;
742 - i?86*) echo "i686";;
743 - x86_64*) echo "x86_64";;
744 - *) tc-arch ${t};;
745 - esac
746 -}
747 -
748 -nssbits() {
749 - local cc cppflags="${1}CPPFLAGS" cflags="${1}CFLAGS"
750 - if [[ ${1} == BUILD_ ]]; then
751 - cc=$(tc-getBUILD_CC)
752 - else
753 - cc=$(tc-getCC)
754 - fi
755 - echo > "${T}"/test.c || die
756 - ${cc} ${!cppflags} ${!cflags} -c "${T}"/test.c -o "${T}/${1}test.o" || die
757 - case $(file "${T}/${1}test.o") in
758 - *32-bit*x86-64*) echo USE_X32=1;;
759 - *64-bit*|*ppc64*|*x86_64*) echo USE_64=1;;
760 - *32-bit*|*ppc*|*i386*) ;;
761 - *) die "Failed to detect whether ${cc} builds 64bits or 32bits, disable distcc if you're using it, please";;
762 - esac
763 -}
764 -
765 -multilib_src_compile() {
766 - # use ABI to determine bit'ness, or fallback if unset
767 - local buildbits mybits
768 - case "${ABI}" in
769 - n32) mybits="USE_N32=1";;
770 - x32) mybits="USE_X32=1";;
771 - s390x|*64) mybits="USE_64=1";;
772 - ${DEFAULT_ABI})
773 - einfo "Running compilation test to determine bit'ness"
774 - mybits=$(nssbits)
775 - ;;
776 - esac
777 - # bitness of host may differ from target
778 - if tc-is-cross-compiler; then
779 - buildbits=$(nssbits BUILD_)
780 - fi
781 -
782 - local makeargs=(
783 - CC="$(tc-getCC)"
784 - CCC="$(tc-getCXX)"
785 - AR="$(tc-getAR) rc \$@"
786 - RANLIB="$(tc-getRANLIB)"
787 - OPTIMIZER=
788 - ${mybits}
789 - )
790 -
791 - # Take care of nspr settings #436216
792 - local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags)"
793 - unset NSPR_INCLUDE_DIR
794 -
795 - # Do not let `uname` be used.
796 - if use kernel_linux ; then
797 - makeargs+=(
798 - OS_TARGET=Linux
799 - OS_RELEASE=2.6
800 - OS_TEST="$(nssarch)"
801 - )
802 - fi
803 -
804 - export NSS_ENABLE_WERROR=0 #567158
805 - export BUILD_OPT=1
806 - export NSS_USE_SYSTEM_SQLITE=1
807 - export NSDISTMODE=copy
808 - export NSS_ENABLE_ECC=1
809 - export FREEBL_NO_DEPEND=1
810 - export ASFLAGS=""
811 -
812 - local d
813 -
814 - # Build the host tools first.
815 - LDFLAGS="${BUILD_LDFLAGS}" \
816 - XCFLAGS="${BUILD_CFLAGS}" \
817 - NSPR_LIB_DIR="${T}/fakedir" \
818 - emake -j1 -C coreconf \
819 - CC="$(tc-getBUILD_CC)" \
820 - ${buildbits:-${mybits}}
821 - makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" )
822 -
823 - # Then build the target tools.
824 - for d in . lib/dbm ; do
825 - CPPFLAGS="${myCPPFLAGS}" \
826 - XCFLAGS="${CFLAGS} ${CPPFLAGS}" \
827 - NSPR_LIB_DIR="${T}/fakedir" \
828 - emake -j1 "${makeargs[@]}" -C ${d}
829 - done
830 -}
831 -
832 -# Altering these 3 libraries breaks the CHK verification.
833 -# All of the following cause it to break:
834 -# - stripping
835 -# - prelink
836 -# - ELF signing
837 -# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html
838 -# Either we have to NOT strip them, or we have to forcibly resign after
839 -# stripping.
840 -#local_libdir="$(get_libdir)"
841 -#export STRIP_MASK="
842 -# */${local_libdir}/libfreebl3.so*
843 -# */${local_libdir}/libnssdbm3.so*
844 -# */${local_libdir}/libsoftokn3.so*"
845 -
846 -export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3"
847 -
848 -generate_chk() {
849 - local shlibsign="$1"
850 - local libdir="$2"
851 - einfo "Resigning core NSS libraries for FIPS validation"
852 - shift 2
853 - local i
854 - for i in ${NSS_CHK_SIGN_LIBS} ; do
855 - local libname=lib${i}.so
856 - local chkname=lib${i}.chk
857 - "${shlibsign}" \
858 - -i "${libdir}"/${libname} \
859 - -o "${libdir}"/${chkname}.tmp \
860 - && mv -f \
861 - "${libdir}"/${chkname}.tmp \
862 - "${libdir}"/${chkname} \
863 - || die "Failed to sign ${libname}"
864 - done
865 -}
866 -
867 -cleanup_chk() {
868 - local libdir="$1"
869 - shift 1
870 - local i
871 - for i in ${NSS_CHK_SIGN_LIBS} ; do
872 - local libfname="${libdir}/lib${i}.so"
873 - # If the major version has changed, then we have old chk files.
874 - [ ! -f "${libfname}" -a -f "${libfname}.chk" ] \
875 - && rm -f "${libfname}.chk"
876 - done
877 -}
878 -
879 -multilib_src_install() {
880 - pushd dist >/dev/null || die
881 -
882 - dodir /usr/$(get_libdir)
883 - cp -L */lib/*$(get_libname) "${ED%/}"/usr/$(get_libdir) || die "copying shared libs failed"
884 - local i
885 - for i in crmf freebl nssb nssckfw ; do
886 - cp -L */lib/lib${i}.a "${ED%/}"/usr/$(get_libdir) || die "copying libs failed"
887 - done
888 -
889 - # Install nss-config and pkgconfig file
890 - dodir /usr/bin
891 - cp -L */bin/nss-config "${ED%/}"/usr/bin || die
892 - dodir /usr/$(get_libdir)/pkgconfig
893 - cp -L */lib/pkgconfig/nss.pc "${ED%/}"/usr/$(get_libdir)/pkgconfig || die
894 -
895 - # create an nss-softokn.pc from nss.pc for libfreebl and some private headers
896 - # bug 517266
897 - sed -e 's#Libs:#Libs: -lfreebl#' \
898 - -e 's#Cflags:#Cflags: -I${includedir}/private#' \
899 - */lib/pkgconfig/nss.pc >"${ED%/}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \
900 - || die "could not create nss-softokn.pc"
901 -
902 - # all the include files
903 - insinto /usr/include/nss
904 - doins public/nss/*.{h,api}
905 - insinto /usr/include/nss/private
906 - doins private/nss/{blapi,alghmac}.h
907 -
908 - popd >/dev/null || die
909 -
910 - local f nssutils
911 - # Always enabled because we need it for chk generation.
912 - nssutils=( shlibsign )
913 -
914 - if multilib_is_native_abi ; then
915 - if use utils; then
916 - # The tests we do not need to install.
917 - #nssutils_test="bltest crmftest dbtest dertimetest
918 - #fipstest remtest sdrtest"
919 - # checkcert utils has been removed in nss-3.22:
920 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1187545
921 - # https://hg.mozilla.org/projects/nss/rev/df1729d37870
922 - # certcgi has been removed in nss-3.36:
923 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1426602
924 - nssutils+=(
925 - addbuiltin
926 - atob
927 - baddbdir
928 - btoa
929 - certutil
930 - cmsutil
931 - conflict
932 - crlutil
933 - derdump
934 - digest
935 - makepqg
936 - mangle
937 - modutil
938 - multinit
939 - nonspr10
940 - ocspclnt
941 - oidcalc
942 - p7content
943 - p7env
944 - p7sign
945 - p7verify
946 - pk11mode
947 - pk12util
948 - pp
949 - rsaperf
950 - selfserv
951 - signtool
952 - signver
953 - ssltap
954 - strsclnt
955 - symkeyutil
956 - tstclnt
957 - vfychain
958 - vfyserv
959 - )
960 - # install man-pages for utils (bug #516810)
961 - doman doc/nroff/*.1
962 - fi
963 - pushd dist/*/bin >/dev/null || die
964 - for f in ${nssutils[@]}; do
965 - dobin ${f}
966 - done
967 - popd >/dev/null || die
968 - fi
969 -
970 - # Prelink breaks the CHK files. We don't have any reliable way to run
971 - # shlibsign after prelink.
972 - dodir /etc/prelink.conf.d
973 - printf -- "-b ${EPREFIX}/usr/$(get_libdir)/lib%s.so\n" ${NSS_CHK_SIGN_LIBS} \
974 - > "${ED%/}"/etc/prelink.conf.d/nss.conf
975 -}
976 -
977 -pkg_postinst() {
978 - multilib_pkg_postinst() {
979 - # We must re-sign the libraries AFTER they are stripped.
980 - local shlibsign="${EROOT}/usr/bin/shlibsign"
981 - # See if we can execute it (cross-compiling & such). #436216
982 - "${shlibsign}" -h >&/dev/null
983 - if [[ $? -gt 1 ]] ; then
984 - shlibsign="shlibsign"
985 - fi
986 - generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir)
987 - }
988 -
989 - multilib_foreach_abi multilib_pkg_postinst
990 -}
991 -
992 -pkg_postrm() {
993 - multilib_pkg_postrm() {
994 - cleanup_chk "${EROOT}"/usr/$(get_libdir)
995 - }
996 -
997 - multilib_foreach_abi multilib_pkg_postrm
998 -}
999
1000 diff --git a/dev-libs/nss/nss-3.40.ebuild b/dev-libs/nss/nss-3.40.ebuild
1001 deleted file mode 100644
1002 index 9ce8edd6659..00000000000
1003 --- a/dev-libs/nss/nss-3.40.ebuild
1004 +++ /dev/null
1005 @@ -1,371 +0,0 @@
1006 -# Copyright 1999-2018 Gentoo Authors
1007 -# Distributed under the terms of the GNU General Public License v2
1008 -
1009 -EAPI=7
1010 -
1011 -inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal
1012 -
1013 -NSPR_VER="4.16"
1014 -RTM_NAME="NSS_${PV//./_}_RTM"
1015 -# Rev of https://git.fedorahosted.org/cgit/nss-pem.git
1016 -PEM_GIT_REV="429b0222759d8ad8e6dcd29e62875ae3efd69116"
1017 -PEM_P="${PN}-pem-20160329"
1018 -
1019 -DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
1020 -HOMEPAGE="http://www.mozilla.org/projects/security/pki/nss/"
1021 -SRC_URI="https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/${P}.tar.gz
1022 - cacert? ( https://dev.gentoo.org/~axs/distfiles/${PN}-cacert-class1-class3.patch )
1023 - nss-pem? ( https://dev.gentoo.org/~polynomial-c/${PEM_P}.tar.xz )"
1024 -
1025 -LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
1026 -SLOT="0"
1027 -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"
1028 -IUSE="cacert +nss-pem utils"
1029 -CDEPEND=">=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
1030 - >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
1031 -DEPEND=">=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
1032 - >=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
1033 - ${CDEPEND}"
1034 -RDEPEND=">=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
1035 - ${CDEPEND}
1036 -"
1037 -
1038 -RESTRICT="test"
1039 -
1040 -S="${WORKDIR}/${P}/${PN}"
1041 -
1042 -MULTILIB_CHOST_TOOLS=(
1043 - /usr/bin/nss-config
1044 -)
1045 -
1046 -PATCHES=(
1047 - # Custom changes for gentoo
1048 - "${FILESDIR}/${PN}-3.32-gentoo-fixups.patch"
1049 - "${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
1050 - "${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
1051 -)
1052 -
1053 -src_unpack() {
1054 - unpack ${A}
1055 - if use nss-pem ; then
1056 - mv "${PN}"/lib/ckfw/pem/ "${S}"/lib/ckfw/ || die
1057 - fi
1058 -}
1059 -
1060 -src_prepare() {
1061 - if use nss-pem ; then
1062 - PATCHES+=(
1063 - "${FILESDIR}/${PN}-3.21-enable-pem.patch"
1064 - )
1065 - fi
1066 - if use cacert ; then #521462
1067 - PATCHES+=(
1068 - "${DISTDIR}/${PN}-cacert-class1-class3.patch"
1069 - )
1070 - fi
1071 -
1072 - default
1073 -
1074 - pushd coreconf >/dev/null || die
1075 - # hack nspr paths
1076 - echo 'INCLUDES += -I$(DIST)/include/dbm' \
1077 - >> headers.mk || die "failed to append include"
1078 -
1079 - # modify install path
1080 - sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \
1081 - -i source.mk || die
1082 -
1083 - # Respect LDFLAGS
1084 - sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk
1085 - popd >/dev/null || die
1086 -
1087 - # Fix pkgconfig file for Prefix
1088 - sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \
1089 - config/Makefile || die
1090 -
1091 - # use host shlibsign if need be #436216
1092 - if tc-is-cross-compiler ; then
1093 - sed -i \
1094 - -e 's:"${2}"/shlibsign:shlibsign:' \
1095 - cmd/shlibsign/sign.sh || die
1096 - fi
1097 -
1098 - # dirty hack
1099 - sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \
1100 - lib/ssl/config.mk || die
1101 - sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \
1102 - cmd/platlibs.mk || die
1103 -
1104 - multilib_copy_sources
1105 -
1106 - strip-flags
1107 -}
1108 -
1109 -multilib_src_configure() {
1110 - # Ensure we stay multilib aware
1111 - sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die
1112 -}
1113 -
1114 -nssarch() {
1115 - # Most of the arches are the same as $ARCH
1116 - local t=${1:-${CHOST}}
1117 - case ${t} in
1118 - aarch64*)echo "aarch64";;
1119 - hppa*) echo "parisc";;
1120 - i?86*) echo "i686";;
1121 - x86_64*) echo "x86_64";;
1122 - *) tc-arch ${t};;
1123 - esac
1124 -}
1125 -
1126 -nssbits() {
1127 - local cc cppflags="${1}CPPFLAGS" cflags="${1}CFLAGS"
1128 - if [[ ${1} == BUILD_ ]]; then
1129 - cc=$(tc-getBUILD_CC)
1130 - else
1131 - cc=$(tc-getCC)
1132 - fi
1133 - echo > "${T}"/test.c || die
1134 - ${cc} ${!cppflags} ${!cflags} -c "${T}"/test.c -o "${T}/${1}test.o" || die
1135 - case $(file "${T}/${1}test.o") in
1136 - *32-bit*x86-64*) echo USE_X32=1;;
1137 - *64-bit*|*ppc64*|*x86_64*) echo USE_64=1;;
1138 - *32-bit*|*ppc*|*i386*) ;;
1139 - *) die "Failed to detect whether ${cc} builds 64bits or 32bits, disable distcc if you're using it, please";;
1140 - esac
1141 -}
1142 -
1143 -multilib_src_compile() {
1144 - # use ABI to determine bit'ness, or fallback if unset
1145 - local buildbits mybits
1146 - case "${ABI}" in
1147 - n32) mybits="USE_N32=1";;
1148 - x32) mybits="USE_X32=1";;
1149 - s390x|*64) mybits="USE_64=1";;
1150 - ${DEFAULT_ABI})
1151 - einfo "Running compilation test to determine bit'ness"
1152 - mybits=$(nssbits)
1153 - ;;
1154 - esac
1155 - # bitness of host may differ from target
1156 - if tc-is-cross-compiler; then
1157 - buildbits=$(nssbits BUILD_)
1158 - fi
1159 -
1160 - local makeargs=(
1161 - CC="$(tc-getCC)"
1162 - CCC="$(tc-getCXX)"
1163 - AR="$(tc-getAR) rc \$@"
1164 - RANLIB="$(tc-getRANLIB)"
1165 - OPTIMIZER=
1166 - ${mybits}
1167 - )
1168 -
1169 - # Take care of nspr settings #436216
1170 - local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags)"
1171 - unset NSPR_INCLUDE_DIR
1172 -
1173 - # Do not let `uname` be used.
1174 - if use kernel_linux ; then
1175 - makeargs+=(
1176 - OS_TARGET=Linux
1177 - OS_RELEASE=2.6
1178 - OS_TEST="$(nssarch)"
1179 - )
1180 - fi
1181 -
1182 - export NSS_ENABLE_WERROR=0 #567158
1183 - export BUILD_OPT=1
1184 - export NSS_USE_SYSTEM_SQLITE=1
1185 - export NSDISTMODE=copy
1186 - export NSS_ENABLE_ECC=1
1187 - export FREEBL_NO_DEPEND=1
1188 - export ASFLAGS=""
1189 -
1190 - local d
1191 -
1192 - # Build the host tools first.
1193 - LDFLAGS="${BUILD_LDFLAGS}" \
1194 - XCFLAGS="${BUILD_CFLAGS}" \
1195 - NSPR_LIB_DIR="${T}/fakedir" \
1196 - emake -j1 -C coreconf \
1197 - CC="$(tc-getBUILD_CC)" \
1198 - ${buildbits:-${mybits}}
1199 - makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" )
1200 -
1201 - # Then build the target tools.
1202 - for d in . lib/dbm ; do
1203 - CPPFLAGS="${myCPPFLAGS}" \
1204 - XCFLAGS="${CFLAGS} ${CPPFLAGS}" \
1205 - NSPR_LIB_DIR="${T}/fakedir" \
1206 - emake -j1 "${makeargs[@]}" -C ${d}
1207 - done
1208 -}
1209 -
1210 -# Altering these 3 libraries breaks the CHK verification.
1211 -# All of the following cause it to break:
1212 -# - stripping
1213 -# - prelink
1214 -# - ELF signing
1215 -# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html
1216 -# Either we have to NOT strip them, or we have to forcibly resign after
1217 -# stripping.
1218 -#local_libdir="$(get_libdir)"
1219 -#export STRIP_MASK="
1220 -# */${local_libdir}/libfreebl3.so*
1221 -# */${local_libdir}/libnssdbm3.so*
1222 -# */${local_libdir}/libsoftokn3.so*"
1223 -
1224 -export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3"
1225 -
1226 -generate_chk() {
1227 - local shlibsign="$1"
1228 - local libdir="$2"
1229 - einfo "Resigning core NSS libraries for FIPS validation"
1230 - shift 2
1231 - local i
1232 - for i in ${NSS_CHK_SIGN_LIBS} ; do
1233 - local libname=lib${i}.so
1234 - local chkname=lib${i}.chk
1235 - "${shlibsign}" \
1236 - -i "${libdir}"/${libname} \
1237 - -o "${libdir}"/${chkname}.tmp \
1238 - && mv -f \
1239 - "${libdir}"/${chkname}.tmp \
1240 - "${libdir}"/${chkname} \
1241 - || die "Failed to sign ${libname}"
1242 - done
1243 -}
1244 -
1245 -cleanup_chk() {
1246 - local libdir="$1"
1247 - shift 1
1248 - local i
1249 - for i in ${NSS_CHK_SIGN_LIBS} ; do
1250 - local libfname="${libdir}/lib${i}.so"
1251 - # If the major version has changed, then we have old chk files.
1252 - [ ! -f "${libfname}" -a -f "${libfname}.chk" ] \
1253 - && rm -f "${libfname}.chk"
1254 - done
1255 -}
1256 -
1257 -multilib_src_install() {
1258 - pushd dist >/dev/null || die
1259 -
1260 - dodir /usr/$(get_libdir)
1261 - cp -L */lib/*$(get_libname) "${ED%/}"/usr/$(get_libdir) || die "copying shared libs failed"
1262 - local i
1263 - for i in crmf freebl nssb nssckfw ; do
1264 - cp -L */lib/lib${i}.a "${ED%/}"/usr/$(get_libdir) || die "copying libs failed"
1265 - done
1266 -
1267 - # Install nss-config and pkgconfig file
1268 - dodir /usr/bin
1269 - cp -L */bin/nss-config "${ED%/}"/usr/bin || die
1270 - dodir /usr/$(get_libdir)/pkgconfig
1271 - cp -L */lib/pkgconfig/nss.pc "${ED%/}"/usr/$(get_libdir)/pkgconfig || die
1272 -
1273 - # create an nss-softokn.pc from nss.pc for libfreebl and some private headers
1274 - # bug 517266
1275 - sed -e 's#Libs:#Libs: -lfreebl#' \
1276 - -e 's#Cflags:#Cflags: -I${includedir}/private#' \
1277 - */lib/pkgconfig/nss.pc >"${ED%/}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \
1278 - || die "could not create nss-softokn.pc"
1279 -
1280 - # all the include files
1281 - insinto /usr/include/nss
1282 - doins public/nss/*.{h,api}
1283 - insinto /usr/include/nss/private
1284 - doins private/nss/{blapi,alghmac}.h
1285 -
1286 - popd >/dev/null || die
1287 -
1288 - local f nssutils
1289 - # Always enabled because we need it for chk generation.
1290 - nssutils=( shlibsign )
1291 -
1292 - if multilib_is_native_abi ; then
1293 - if use utils; then
1294 - # The tests we do not need to install.
1295 - #nssutils_test="bltest crmftest dbtest dertimetest
1296 - #fipstest remtest sdrtest"
1297 - # checkcert utils has been removed in nss-3.22:
1298 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1187545
1299 - # https://hg.mozilla.org/projects/nss/rev/df1729d37870
1300 - # certcgi has been removed in nss-3.36:
1301 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1426602
1302 - nssutils+=(
1303 - addbuiltin
1304 - atob
1305 - baddbdir
1306 - btoa
1307 - certutil
1308 - cmsutil
1309 - conflict
1310 - crlutil
1311 - derdump
1312 - digest
1313 - makepqg
1314 - mangle
1315 - modutil
1316 - multinit
1317 - nonspr10
1318 - ocspclnt
1319 - oidcalc
1320 - p7content
1321 - p7env
1322 - p7sign
1323 - p7verify
1324 - pk11mode
1325 - pk12util
1326 - pp
1327 - rsaperf
1328 - selfserv
1329 - signtool
1330 - signver
1331 - ssltap
1332 - strsclnt
1333 - symkeyutil
1334 - tstclnt
1335 - vfychain
1336 - vfyserv
1337 - )
1338 - # install man-pages for utils (bug #516810)
1339 - doman doc/nroff/*.1
1340 - fi
1341 - pushd dist/*/bin >/dev/null || die
1342 - for f in ${nssutils[@]}; do
1343 - dobin ${f}
1344 - done
1345 - popd >/dev/null || die
1346 - fi
1347 -
1348 - # Prelink breaks the CHK files. We don't have any reliable way to run
1349 - # shlibsign after prelink.
1350 - dodir /etc/prelink.conf.d
1351 - printf -- "-b ${EPREFIX}/usr/$(get_libdir)/lib%s.so\n" ${NSS_CHK_SIGN_LIBS} \
1352 - > "${ED%/}"/etc/prelink.conf.d/nss.conf
1353 -}
1354 -
1355 -pkg_postinst() {
1356 - multilib_pkg_postinst() {
1357 - # We must re-sign the libraries AFTER they are stripped.
1358 - local shlibsign="${EROOT}/usr/bin/shlibsign"
1359 - # See if we can execute it (cross-compiling & such). #436216
1360 - "${shlibsign}" -h >&/dev/null
1361 - if [[ $? -gt 1 ]] ; then
1362 - shlibsign="shlibsign"
1363 - fi
1364 - generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir)
1365 - }
1366 -
1367 - multilib_foreach_abi multilib_pkg_postinst
1368 -}
1369 -
1370 -pkg_postrm() {
1371 - multilib_pkg_postrm() {
1372 - cleanup_chk "${EROOT}"/usr/$(get_libdir)
1373 - }
1374 -
1375 - multilib_foreach_abi multilib_pkg_postrm
1376 -}