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/openssl/files/, dev-libs/openssl/
Date: Tue, 01 Mar 2016 14:24:09
Message-Id: 1456842202.7bf3f3ef8d44f51b7cbfbabc1282da60fcb5f715.polynomial-c@gentoo
1 commit: 7bf3f3ef8d44f51b7cbfbabc1282da60fcb5f715
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Tue Mar 1 14:05:20 2016 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Tue Mar 1 14:23:22 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7bf3f3ef
7
8 dev-libs/openssl: Security bump to version 1.0.2g (bug #575548).
9
10 Package-Manager: portage-2.2.27
11 Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
12
13 dev-libs/openssl/Manifest | 1 +
14 .../files/openssl-1.0.2g-parallel-build.patch | 318 +++++++++++++++++++++
15 dev-libs/openssl/openssl-1.0.2g.ebuild | 265 +++++++++++++++++
16 3 files changed, 584 insertions(+)
17
18 diff --git a/dev-libs/openssl/Manifest b/dev-libs/openssl/Manifest
19 index e16c5f3..6eb6a35 100644
20 --- a/dev-libs/openssl/Manifest
21 +++ b/dev-libs/openssl/Manifest
22 @@ -1,2 +1,3 @@
23 DIST openssl-0.9.8zh.tar.gz 3818524 SHA256 f1d9f3ed1b85a82ecf80d0e2d389e1fda3fca9a4dba0bf07adbf231e1a5e2fd6 SHA512 b97fa2468211f86c0719c68ad1781eff84f772c479ed5193d6da14bac086b4ca706e7d851209d9df3f0962943b5e5333ab0def00110fb2e517caa73c0c6674c6 WHIRLPOOL 8ed3362e6aed89cd6ae02438bc3fb58ff3a91afb8a2d401d1d66c1ee4fd96f4befb50558131dd03a60fc15b588172fc1ede5d56bb1f68e184453bfe3b34f9abf
24 DIST openssl-1.0.2f.tar.gz 5258384 SHA256 932b4ee4def2b434f85435d9e3e19ca8ba99ce9a065a61524b429a9d5e9b2e9c SHA512 50abf6dc94cafd06e7fd20770808bdc675c88daa369e4f752bd584ab17f72a57357c1ca1eca3c83e6745b5a3c9c73c99dce70adaa904d73f6df4c75bc7138351 WHIRLPOOL 179e1b5ad38c50a4c8110024aa7b33c53634c39690917e3bf5c2099548430beef96132ae9f9588ff0cedd6e08bb216a8d36835baaaa04e506fb3fbaed37d31c9
25 +DIST openssl-1.0.2g.tar.gz 5266102 SHA256 b784b1b3907ce39abf4098702dade6365522a253ad1552e267a9a0e89594aa33 SHA512 4d96b6c8a232203483d6e8bee81da01ba10977bfbac92f25304a36dec9ea584b7ef917bc45e097cc7dbe681d71a4570d649c22244c178393ae91fab48323f735 WHIRLPOOL aedbd82af0a550e8329a84312fae492f3bb3cb04af763fc9ef532099b2b2e61a55e4a7cfb06085f045740e2b692bbdb3ecb8bf5ca82f46325c3caf22d2317ffb
26
27 diff --git a/dev-libs/openssl/files/openssl-1.0.2g-parallel-build.patch b/dev-libs/openssl/files/openssl-1.0.2g-parallel-build.patch
28 new file mode 100644
29 index 0000000..3582810
30 --- /dev/null
31 +++ b/dev-libs/openssl/files/openssl-1.0.2g-parallel-build.patch
32 @@ -0,0 +1,318 @@
33 +--- openssl-1.0.2g/crypto/Makefile
34 ++++ openssl-1.0.2g/crypto/Makefile
35 +@@ -85,11 +85,11 @@
36 + @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
37 +
38 + subdirs:
39 +- @target=all; $(RECURSIVE_MAKE)
40 ++ +@target=all; $(RECURSIVE_MAKE)
41 +
42 + files:
43 + $(PERL) $(TOP)/util/files.pl "CPUID_OBJ=$(CPUID_OBJ)" Makefile >> $(TOP)/MINFO
44 +- @target=files; $(RECURSIVE_MAKE)
45 ++ +@target=files; $(RECURSIVE_MAKE)
46 +
47 + links:
48 + @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
49 +@@ -100,7 +100,7 @@
50 + # lib: $(LIB): are splitted to avoid end-less loop
51 + lib: $(LIB)
52 + @touch lib
53 +-$(LIB): $(LIBOBJ)
54 ++$(LIB): $(LIBOBJ) | subdirs
55 + $(AR) $(LIB) $(LIBOBJ)
56 + test -z "$(FIPSLIBDIR)" || $(AR) $(LIB) $(FIPSLIBDIR)fipscanister.o
57 + $(RANLIB) $(LIB) || echo Never mind.
58 +@@ -111,7 +111,7 @@
59 + fi
60 +
61 + libs:
62 +- @target=lib; $(RECURSIVE_MAKE)
63 ++ +@target=lib; $(RECURSIVE_MAKE)
64 +
65 + install:
66 + @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
67 +@@ -120,7 +120,7 @@
68 + (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
69 + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
70 + done;
71 +- @target=install; $(RECURSIVE_MAKE)
72 ++ +@target=install; $(RECURSIVE_MAKE)
73 +
74 + lint:
75 + @target=lint; $(RECURSIVE_MAKE)
76 +--- openssl-1.0.2g/engines/Makefile
77 ++++ openssl-1.0.2g/engines/Makefile
78 +@@ -72,7 +72,7 @@
79 +
80 + all: lib subdirs
81 +
82 +-lib: $(LIBOBJ)
83 ++lib: $(LIBOBJ) | subdirs
84 + @if [ -n "$(SHARED_LIBS)" ]; then \
85 + set -e; \
86 + for l in $(LIBNAMES); do \
87 +@@ -89,7 +89,7 @@
88 +
89 + subdirs:
90 + echo $(EDIRS)
91 +- @target=all; $(RECURSIVE_MAKE)
92 ++ +@target=all; $(RECURSIVE_MAKE)
93 +
94 + files:
95 + $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
96 +@@ -128,7 +128,7 @@
97 + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \
98 + done; \
99 + fi
100 +- @target=install; $(RECURSIVE_MAKE)
101 ++ +@target=install; $(RECURSIVE_MAKE)
102 +
103 + tags:
104 + ctags $(SRC)
105 +--- openssl-1.0.2g/Makefile.org
106 ++++ openssl-1.0.2g/Makefile.org
107 +@@ -279,17 +279,17 @@
108 + build_libssl: build_ssl libssl.pc
109 +
110 + build_crypto:
111 +- @dir=crypto; target=all; $(BUILD_ONE_CMD)
112 ++ +@dir=crypto; target=all; $(BUILD_ONE_CMD)
113 + build_ssl: build_crypto
114 +- @dir=ssl; target=all; $(BUILD_ONE_CMD)
115 ++ +@dir=ssl; target=all; $(BUILD_ONE_CMD)
116 + build_engines: build_crypto
117 +- @dir=engines; target=all; $(BUILD_ONE_CMD)
118 ++ +@dir=engines; target=all; $(BUILD_ONE_CMD)
119 + build_apps: build_libs
120 +- @dir=apps; target=all; $(BUILD_ONE_CMD)
121 ++ +@dir=apps; target=all; $(BUILD_ONE_CMD)
122 + build_tests: build_libs
123 +- @dir=test; target=all; $(BUILD_ONE_CMD)
124 ++ +@dir=test; target=all; $(BUILD_ONE_CMD)
125 + build_tools: build_libs
126 +- @dir=tools; target=all; $(BUILD_ONE_CMD)
127 ++ +@dir=tools; target=all; $(BUILD_ONE_CMD)
128 +
129 + all_testapps: build_libs build_testapps
130 + build_testapps:
131 +@@ -544,7 +544,7 @@
132 + (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
133 + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
134 + done;
135 +- @set -e; target=install; $(RECURSIVE_BUILD_CMD)
136 ++ +@set -e; target=install; $(RECURSIVE_BUILD_CMD)
137 + @set -e; liblist="$(LIBS)"; for i in $$liblist ;\
138 + do \
139 + if [ -f "$$i" ]; then \
140 +--- openssl-1.0.2g/Makefile.shared
141 ++++ openssl-1.0.2g/Makefile.shared
142 +@@ -105,6 +105,7 @@
143 + SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \
144 + LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \
145 + LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
146 ++ [ -e $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX ] && exit 0; \
147 + LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
148 + $${SHAREDCMD} $${SHAREDFLAGS} \
149 + -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
150 +@@ -122,6 +123,7 @@
151 + done; \
152 + fi; \
153 + if [ -n "$$SHLIB_SOVER" ]; then \
154 ++ [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \
155 + ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \
156 + ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \
157 + fi; \
158 +--- openssl-1.0.2g/test/Makefile
159 ++++ openssl-1.0.2g/test/Makefile
160 +@@ -139,7 +139,7 @@
161 + tags:
162 + ctags $(SRC)
163 +
164 +-tests: exe apps $(TESTS)
165 ++tests: exe $(TESTS)
166 +
167 + apps:
168 + @(cd ..; $(MAKE) DIRS=apps all)
169 +@@ -421,130 +421,130 @@
170 + link_app.$${shlib_target}
171 +
172 + $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
173 +- @target=$(RSATEST); $(BUILD_CMD)
174 ++ +@target=$(RSATEST); $(BUILD_CMD)
175 +
176 + $(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO)
177 +- @target=$(BNTEST); $(BUILD_CMD)
178 ++ +@target=$(BNTEST); $(BUILD_CMD)
179 +
180 + $(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO)
181 +- @target=$(ECTEST); $(BUILD_CMD)
182 ++ +@target=$(ECTEST); $(BUILD_CMD)
183 +
184 + $(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO)
185 +- @target=$(EXPTEST); $(BUILD_CMD)
186 ++ +@target=$(EXPTEST); $(BUILD_CMD)
187 +
188 + $(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO)
189 +- @target=$(IDEATEST); $(BUILD_CMD)
190 ++ +@target=$(IDEATEST); $(BUILD_CMD)
191 +
192 + $(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO)
193 +- @target=$(MD2TEST); $(BUILD_CMD)
194 ++ +@target=$(MD2TEST); $(BUILD_CMD)
195 +
196 + $(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO)
197 +- @target=$(SHATEST); $(BUILD_CMD)
198 ++ +@target=$(SHATEST); $(BUILD_CMD)
199 +
200 + $(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO)
201 +- @target=$(SHA1TEST); $(BUILD_CMD)
202 ++ +@target=$(SHA1TEST); $(BUILD_CMD)
203 +
204 + $(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO)
205 +- @target=$(SHA256TEST); $(BUILD_CMD)
206 ++ +@target=$(SHA256TEST); $(BUILD_CMD)
207 +
208 + $(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO)
209 +- @target=$(SHA512TEST); $(BUILD_CMD)
210 ++ +@target=$(SHA512TEST); $(BUILD_CMD)
211 +
212 + $(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO)
213 +- @target=$(RMDTEST); $(BUILD_CMD)
214 ++ +@target=$(RMDTEST); $(BUILD_CMD)
215 +
216 + $(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO)
217 +- @target=$(MDC2TEST); $(BUILD_CMD)
218 ++ +@target=$(MDC2TEST); $(BUILD_CMD)
219 +
220 + $(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO)
221 +- @target=$(MD4TEST); $(BUILD_CMD)
222 ++ +@target=$(MD4TEST); $(BUILD_CMD)
223 +
224 + $(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO)
225 +- @target=$(MD5TEST); $(BUILD_CMD)
226 ++ +@target=$(MD5TEST); $(BUILD_CMD)
227 +
228 + $(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO)
229 +- @target=$(HMACTEST); $(BUILD_CMD)
230 ++ +@target=$(HMACTEST); $(BUILD_CMD)
231 +
232 + $(WPTEST)$(EXE_EXT): $(WPTEST).o $(DLIBCRYPTO)
233 +- @target=$(WPTEST); $(BUILD_CMD)
234 ++ +@target=$(WPTEST); $(BUILD_CMD)
235 +
236 + $(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO)
237 +- @target=$(RC2TEST); $(BUILD_CMD)
238 ++ +@target=$(RC2TEST); $(BUILD_CMD)
239 +
240 + $(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO)
241 +- @target=$(BFTEST); $(BUILD_CMD)
242 ++ +@target=$(BFTEST); $(BUILD_CMD)
243 +
244 + $(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO)
245 +- @target=$(CASTTEST); $(BUILD_CMD)
246 ++ +@target=$(CASTTEST); $(BUILD_CMD)
247 +
248 + $(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO)
249 +- @target=$(RC4TEST); $(BUILD_CMD)
250 ++ +@target=$(RC4TEST); $(BUILD_CMD)
251 +
252 + $(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO)
253 +- @target=$(RC5TEST); $(BUILD_CMD)
254 ++ +@target=$(RC5TEST); $(BUILD_CMD)
255 +
256 + $(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO)
257 +- @target=$(DESTEST); $(BUILD_CMD)
258 ++ +@target=$(DESTEST); $(BUILD_CMD)
259 +
260 + $(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO)
261 +- @target=$(RANDTEST); $(BUILD_CMD)
262 ++ +@target=$(RANDTEST); $(BUILD_CMD)
263 +
264 + $(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO)
265 +- @target=$(DHTEST); $(BUILD_CMD)
266 ++ +@target=$(DHTEST); $(BUILD_CMD)
267 +
268 + $(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO)
269 +- @target=$(DSATEST); $(BUILD_CMD)
270 ++ +@target=$(DSATEST); $(BUILD_CMD)
271 +
272 + $(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO)
273 +- @target=$(METHTEST); $(BUILD_CMD)
274 ++ +@target=$(METHTEST); $(BUILD_CMD)
275 +
276 + $(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
277 +- @target=$(SSLTEST); $(FIPS_BUILD_CMD)
278 ++ +@target=$(SSLTEST); $(FIPS_BUILD_CMD)
279 +
280 + $(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO)
281 +- @target=$(ENGINETEST); $(BUILD_CMD)
282 ++ +@target=$(ENGINETEST); $(BUILD_CMD)
283 +
284 + $(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO)
285 +- @target=$(EVPTEST); $(BUILD_CMD)
286 ++ +@target=$(EVPTEST); $(BUILD_CMD)
287 +
288 + $(EVPEXTRATEST)$(EXE_EXT): $(EVPEXTRATEST).o $(DLIBCRYPTO)
289 +- @target=$(EVPEXTRATEST); $(BUILD_CMD)
290 ++ +@target=$(EVPEXTRATEST); $(BUILD_CMD)
291 +
292 + $(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO)
293 +- @target=$(ECDSATEST); $(BUILD_CMD)
294 ++ +@target=$(ECDSATEST); $(BUILD_CMD)
295 +
296 + $(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO)
297 +- @target=$(ECDHTEST); $(BUILD_CMD)
298 ++ +@target=$(ECDHTEST); $(BUILD_CMD)
299 +
300 + $(IGETEST)$(EXE_EXT): $(IGETEST).o $(DLIBCRYPTO)
301 +- @target=$(IGETEST); $(BUILD_CMD)
302 ++ +@target=$(IGETEST); $(BUILD_CMD)
303 +
304 + $(JPAKETEST)$(EXE_EXT): $(JPAKETEST).o $(DLIBCRYPTO)
305 +- @target=$(JPAKETEST); $(BUILD_CMD)
306 ++ +@target=$(JPAKETEST); $(BUILD_CMD)
307 +
308 + $(ASN1TEST)$(EXE_EXT): $(ASN1TEST).o $(DLIBCRYPTO)
309 +- @target=$(ASN1TEST); $(BUILD_CMD)
310 ++ +@target=$(ASN1TEST); $(BUILD_CMD)
311 +
312 + $(SRPTEST)$(EXE_EXT): $(SRPTEST).o $(DLIBCRYPTO)
313 +- @target=$(SRPTEST); $(BUILD_CMD)
314 ++ +@target=$(SRPTEST); $(BUILD_CMD)
315 +
316 + $(V3NAMETEST)$(EXE_EXT): $(V3NAMETEST).o $(DLIBCRYPTO)
317 +- @target=$(V3NAMETEST); $(BUILD_CMD)
318 ++ +@target=$(V3NAMETEST); $(BUILD_CMD)
319 +
320 + $(HEARTBEATTEST)$(EXE_EXT): $(HEARTBEATTEST).o $(DLIBCRYPTO)
321 +- @target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC)
322 ++ +@target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC)
323 +
324 + $(CONSTTIMETEST)$(EXE_EXT): $(CONSTTIMETEST).o
325 +- @target=$(CONSTTIMETEST) $(BUILD_CMD)
326 ++ +@target=$(CONSTTIMETEST) $(BUILD_CMD)
327 +
328 + $(VERIFYEXTRATEST)$(EXE_EXT): $(VERIFYEXTRATEST).o
329 +- @target=$(VERIFYEXTRATEST) $(BUILD_CMD)
330 ++ +@target=$(VERIFYEXTRATEST) $(BUILD_CMD)
331 +
332 + $(CLIENTHELLOTEST)$(EXE_EXT): $(CLIENTHELLOTEST).o
333 +- @target=$(CLIENTHELLOTEST) $(BUILD_CMD)
334 ++ +@target=$(CLIENTHELLOTEST) $(BUILD_CMD)
335 +
336 + $(SSLV2CONFTEST)$(EXE_EXT): $(SSLV2CONFTEST).o
337 +- @target=$(SSLV2CONFTEST) $(BUILD_CMD)
338 ++ +@target=$(SSLV2CONFTEST) $(BUILD_CMD)
339 +
340 + #$(AESTEST).o: $(AESTEST).c
341 + # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c
342 +@@ -557,7 +557,7 @@
343 + # fi
344 +
345 + dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO)
346 +- @target=dummytest; $(BUILD_CMD)
347 ++ +@target=dummytest; $(BUILD_CMD)
348 +
349 + # DO NOT DELETE THIS LINE -- make depend depends on it.
350 +
351
352 diff --git a/dev-libs/openssl/openssl-1.0.2g.ebuild b/dev-libs/openssl/openssl-1.0.2g.ebuild
353 new file mode 100644
354 index 0000000..9fc51c4
355 --- /dev/null
356 +++ b/dev-libs/openssl/openssl-1.0.2g.ebuild
357 @@ -0,0 +1,265 @@
358 +# Copyright 1999-2016 Gentoo Foundation
359 +# Distributed under the terms of the GNU General Public License v2
360 +# $Id$
361 +
362 +EAPI=5
363 +
364 +inherit eutils flag-o-matic toolchain-funcs multilib multilib-minimal
365 +
366 +MY_P=${P/_/-}
367 +DESCRIPTION="full-strength general purpose cryptography library (including SSL and TLS)"
368 +HOMEPAGE="http://www.openssl.org/"
369 +SRC_URI="mirror://openssl/source/${MY_P}.tar.gz"
370 +
371 +LICENSE="openssl"
372 +SLOT="0"
373 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
374 +IUSE="+asm bindist gmp kerberos rfc3779 sctp cpu_flags_x86_sse2 static-libs test +tls-heartbeat vanilla zlib"
375 +RESTRICT="!bindist? ( bindist )"
376 +
377 +# The blocks are temporary just to make sure people upgrade to a
378 +# version that lack runtime version checking. We'll drop them in
379 +# the future.
380 +RDEPEND=">=app-misc/c_rehash-1.7-r1
381 + gmp? ( >=dev-libs/gmp-5.1.3-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
382 + zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
383 + kerberos? ( >=app-crypt/mit-krb5-1.11.4[${MULTILIB_USEDEP}] )
384 + abi_x86_32? (
385 + !<=app-emulation/emul-linux-x86-baselibs-20140508
386 + !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
387 + )
388 + !<net-misc/openssh-5.9_p1-r4
389 + !<net-libs/neon-0.29.6-r1"
390 +DEPEND="${RDEPEND}
391 + >=dev-lang/perl-5
392 + sctp? ( >=net-misc/lksctp-tools-1.0.12 )
393 + test? (
394 + sys-apps/diffutils
395 + sys-devel/bc
396 + )"
397 +PDEPEND="app-misc/ca-certificates"
398 +
399 +S="${WORKDIR}/${MY_P}"
400 +
401 +MULTILIB_WRAPPED_HEADERS=(
402 + usr/include/openssl/opensslconf.h
403 +)
404 +
405 +src_prepare() {
406 + # keep this in sync with app-misc/c_rehash
407 + SSL_CNF_DIR="/etc/ssl"
408 +
409 + # Make sure we only ever touch Makefile.org and avoid patching a file
410 + # that gets blown away anyways by the Configure script in src_configure
411 + rm -f Makefile
412 +
413 + if ! use vanilla ; then
414 + epatch "${FILESDIR}"/${PN}-1.0.0a-ldflags.patch #327421
415 + epatch "${FILESDIR}"/${PN}-1.0.0d-windres.patch #373743
416 + epatch "${FILESDIR}"/${PN}-1.0.2g-parallel-build.patch
417 + epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-obj-headers.patch
418 + epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-install-dirs.patch
419 + epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-symlinking.patch #545028
420 + epatch "${FILESDIR}"/${PN}-1.0.2-ipv6.patch
421 + epatch "${FILESDIR}"/${PN}-1.0.2a-x32-asm.patch #542618
422 + epatch "${FILESDIR}"/${PN}-1.0.1p-default-source.patch #554338
423 +
424 + epatch_user #332661
425 + fi
426 +
427 + # disable fips in the build
428 + # make sure the man pages are suffixed #302165
429 + # don't bother building man pages if they're disabled
430 + sed -i \
431 + -e '/DIRS/s: fips : :g' \
432 + -e '/^MANSUFFIX/s:=.*:=ssl:' \
433 + -e '/^MAKEDEPPROG/s:=.*:=$(CC):' \
434 + -e $(has noman FEATURES \
435 + && echo '/^install:/s:install_docs::' \
436 + || echo '/^MANDIR=/s:=.*:='${EPREFIX}'/usr/share/man:') \
437 + Makefile.org \
438 + || die
439 + # show the actual commands in the log
440 + sed -i '/^SET_X/s:=.*:=set -x:' Makefile.shared
441 +
442 + # since we're forcing $(CC) as makedep anyway, just fix
443 + # the conditional as always-on
444 + # helps clang (#417795), and versioned gcc (#499818)
445 + sed -i 's/expr.*MAKEDEPEND.*;/true;/' util/domd || die
446 +
447 + # quiet out unknown driver argument warnings since openssl
448 + # doesn't have well-split CFLAGS and we're making it even worse
449 + # and 'make depend' uses -Werror for added fun (#417795 again)
450 + [[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
451 +
452 + # allow openssl to be cross-compiled
453 + cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
454 + chmod a+rx gentoo.config
455 +
456 + append-flags -fno-strict-aliasing
457 + append-flags $(test-flags-CC -Wa,--noexecstack)
458 + append-cppflags -DOPENSSL_NO_BUF_FREELISTS
459 +
460 + sed -i '1s,^:$,#!'${EPREFIX}'/usr/bin/perl,' Configure #141906
461 + # The config script does stupid stuff to prompt the user. Kill it.
462 + sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
463 + ./config --test-sanity || die "I AM NOT SANE"
464 +
465 + multilib_copy_sources
466 +}
467 +
468 +multilib_src_configure() {
469 + unset APPS #197996
470 + unset SCRIPTS #312551
471 + unset CROSS_COMPILE #311473
472 +
473 + tc-export CC AR RANLIB RC
474 +
475 + # Clean out patent-or-otherwise-encumbered code
476 + # Camellia: Royalty Free http://en.wikipedia.org/wiki/Camellia_(cipher)
477 + # IDEA: Expired http://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
478 + # EC: ????????? ??/??/2015 http://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography
479 + # MDC2: Expired http://en.wikipedia.org/wiki/MDC-2
480 + # RC5: Expired http://en.wikipedia.org/wiki/RC5
481 +
482 + use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
483 + echoit() { echo "$@" ; "$@" ; }
484 +
485 + local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
486 +
487 + # See if our toolchain supports __uint128_t. If so, it's 64bit
488 + # friendly and can use the nicely optimized code paths. #460790
489 + local ec_nistp_64_gcc_128
490 + # Disable it for now though #469976
491 + #if ! use bindist ; then
492 + # echo "__uint128_t i;" > "${T}"/128.c
493 + # if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then
494 + # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
495 + # fi
496 + #fi
497 +
498 + local sslout=$(./gentoo.config)
499 + einfo "Use configuration ${sslout:-(openssl knows best)}"
500 + local config="Configure"
501 + [[ -z ${sslout} ]] && config="config"
502 +
503 + echoit \
504 + ./${config} \
505 + ${sslout} \
506 + $(use cpu_flags_x86_sse2 || echo "no-sse2") \
507 + enable-camellia \
508 + $(use_ssl !bindist ec) \
509 + ${ec_nistp_64_gcc_128} \
510 + enable-idea \
511 + enable-mdc2 \
512 + enable-rc5 \
513 + enable-tlsext \
514 + $(use_ssl asm) \
515 + $(use_ssl gmp gmp -lgmp) \
516 + $(use_ssl kerberos krb5 --with-krb5-flavor=${krb5}) \
517 + $(use_ssl rfc3779) \
518 + $(use_ssl sctp) \
519 + $(use_ssl tls-heartbeat heartbeats) \
520 + $(use_ssl zlib) \
521 + --prefix="${EPREFIX}"/usr \
522 + --openssldir="${EPREFIX}"${SSL_CNF_DIR} \
523 + --libdir=$(get_libdir) \
524 + shared threads \
525 + || die
526 +
527 + # Clean out hardcoded flags that openssl uses
528 + local CFLAG=$(grep ^CFLAG= Makefile | LC_ALL=C sed \
529 + -e 's:^CFLAG=::' \
530 + -e 's:-fomit-frame-pointer ::g' \
531 + -e 's:-O[0-9] ::g' \
532 + -e 's:-march=[-a-z0-9]* ::g' \
533 + -e 's:-mcpu=[-a-z0-9]* ::g' \
534 + -e 's:-m[a-z0-9]* ::g' \
535 + )
536 + sed -i \
537 + -e "/^CFLAG/s|=.*|=${CFLAG} ${CFLAGS}|" \
538 + -e "/^SHARED_LDFLAGS=/s|$| ${LDFLAGS}|" \
539 + Makefile || die
540 +}
541 +
542 +multilib_src_compile() {
543 + # depend is needed to use $confopts; it also doesn't matter
544 + # that it's -j1 as the code itself serializes subdirs
545 + emake -j1 depend
546 + emake all
547 + # rehash is needed to prep the certs/ dir; do this
548 + # separately to avoid parallel build issues.
549 + emake rehash
550 +}
551 +
552 +multilib_src_test() {
553 + emake -j1 test
554 +}
555 +
556 +multilib_src_install() {
557 + emake INSTALL_PREFIX="${D}" install
558 +}
559 +
560 +multilib_src_install_all() {
561 + # openssl installs perl version of c_rehash by default, but
562 + # we provide a shell version via app-misc/c_rehash
563 + rm "${ED}"/usr/bin/c_rehash || die
564 +
565 + dodoc CHANGES* FAQ NEWS README doc/*.txt doc/c-indentation.el
566 + dohtml -r doc/*
567 + use rfc3779 && dodoc engines/ccgost/README.gost
568 +
569 + # This is crappy in that the static archives are still built even
570 + # when USE=static-libs. But this is due to a failing in the openssl
571 + # build system: the static archives are built as PIC all the time.
572 + # Only way around this would be to manually configure+compile openssl
573 + # twice; once with shared lib support enabled and once without.
574 + use static-libs || rm -f "${ED}"/usr/lib*/lib*.a
575 +
576 + # create the certs directory
577 + dodir ${SSL_CNF_DIR}/certs
578 + cp -RP certs/* "${ED}"${SSL_CNF_DIR}/certs/ || die
579 + rm -r "${ED}"${SSL_CNF_DIR}/certs/{demo,expired}
580 +
581 + # Namespace openssl programs to prevent conflicts with other man pages
582 + cd "${ED}"/usr/share/man
583 + local m d s
584 + for m in $(find . -type f | xargs grep -L '#include') ; do
585 + d=${m%/*} ; d=${d#./} ; m=${m##*/}
586 + [[ ${m} == openssl.1* ]] && continue
587 + [[ -n $(find -L ${d} -type l) ]] && die "erp, broken links already!"
588 + mv ${d}/{,ssl-}${m}
589 + # fix up references to renamed man pages
590 + sed -i '/^[.]SH "SEE ALSO"/,/^[.]/s:\([^(, ]*(1)\):ssl-\1:g' ${d}/ssl-${m}
591 + ln -s ssl-${m} ${d}/openssl-${m}
592 + # locate any symlinks that point to this man page ... we assume
593 + # that any broken links are due to the above renaming
594 + for s in $(find -L ${d} -type l) ; do
595 + s=${s##*/}
596 + rm -f ${d}/${s}
597 + ln -s ssl-${m} ${d}/ssl-${s}
598 + ln -s ssl-${s} ${d}/openssl-${s}
599 + done
600 + done
601 + [[ -n $(find -L ${d} -type l) ]] && die "broken manpage links found :("
602 +
603 + dodir /etc/sandbox.d #254521
604 + echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl
605 +
606 + diropts -m0700
607 + keepdir ${SSL_CNF_DIR}/private
608 +}
609 +
610 +pkg_preinst() {
611 + has_version ${CATEGORY}/${PN}:0.9.8 && return 0
612 + preserve_old_lib /usr/$(get_libdir)/lib{crypto,ssl}.so.0.9.8
613 +}
614 +
615 +pkg_postinst() {
616 + ebegin "Running 'c_rehash ${EROOT%/}${SSL_CNF_DIR}/certs/' to rebuild hashes #333069"
617 + c_rehash "${EROOT%/}${SSL_CNF_DIR}/certs" >/dev/null
618 + eend $?
619 +
620 + has_version ${CATEGORY}/${PN}:0.9.8 && return 0
621 + preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}.so.0.9.8
622 +}