Gentoo Archives: gentoo-commits

From: Patrick McLean <chutzpah@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: net-misc/socat/files/, net-misc/socat/
Date: Wed, 21 Sep 2016 18:38:41
Message-Id: 1474483075.699d4c3617e48a9b1d66879e56b34479cf647a5f.chutzpah@gentoo
1 commit: 699d4c3617e48a9b1d66879e56b34479cf647a5f
2 Author: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
3 AuthorDate: Wed Sep 21 18:36:04 2016 +0000
4 Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
5 CommitDate: Wed Sep 21 18:37:55 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=699d4c36
7
8 net-misc/socat: Add libressl and license warning to 2.0 ebuild
9
10 Port to EAPI=6
11
12 This adds libressl support (bug #565244) thanks to Marek Behun for the patch
13
14 This also adds a RESTRICT for bindist with ssl and readline
15
16 Sync 9999 ebuild with changes
17
18 Package-Manager: portage-2.3.1
19
20 .../socat/files/socat-2.0.0_beta9-libressl.patch | 267 +++++++++++++++++++++
21 net-misc/socat/socat-2.0.0_beta9.ebuild | 37 ++-
22 net-misc/socat/socat-9999.ebuild | 39 ++-
23 3 files changed, 324 insertions(+), 19 deletions(-)
24
25 diff --git a/net-misc/socat/files/socat-2.0.0_beta9-libressl.patch b/net-misc/socat/files/socat-2.0.0_beta9-libressl.patch
26 new file mode 100644
27 index 00000000..535297c
28 --- /dev/null
29 +++ b/net-misc/socat/files/socat-2.0.0_beta9-libressl.patch
30 @@ -0,0 +1,267 @@
31 +From fbb0cc3b65a2ead522019fb461ae520371cc3ede Mon Sep 17 00:00:00 2001
32 +From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@×××××××××.sk>
33 +Date: Mon, 6 Jun 2016 18:41:30 +0200
34 +Subject: [PATCH] Support compiling with LibreSSL 2.4.0
35 +
36 +This patch checks for macros OPENSSL_NO_COMP, OPENSSL_NO_EGD, and
37 +if disables those features if they are.
38 +
39 +Also add ifdef for HAVE_SSLv3_{client/server}_method in sslcls.c,
40 +since these were removed from LibreSSL 2.4.0.
41 +---
42 + sslcls.c | 8 +++++++-
43 + sslcls.h | 4 +++-
44 + xio-openssl.c | 24 ++++++++++++++++++------
45 + xio-openssl.h | 4 +++-
46 + xioopts.c | 8 ++++++--
47 + xioopts.h | 4 +++-
48 + 6 files changed, 40 insertions(+), 12 deletions(-)
49 +
50 +diff --git a/sslcls.c b/sslcls.c
51 +index ea4c303..5011ef2 100644
52 +--- a/sslcls.c
53 ++++ b/sslcls.c
54 +@@ -55,6 +55,7 @@ const SSL_METHOD *sycSSLv2_server_method(void) {
55 + }
56 + #endif
57 +
58 ++#if HAVE_SSLv3_client_method
59 + const SSL_METHOD *sycSSLv3_client_method(void) {
60 + const SSL_METHOD *result;
61 + Debug("SSLv3_client_method()");
62 +@@ -62,7 +63,9 @@ const SSL_METHOD *sycSSLv3_client_method(void) {
63 + Debug1("SSLv3_client_method() -> %p", result);
64 + return result;
65 + }
66 ++#endif
67 +
68 ++#if HAVE_SSLv3_server_method
69 + const SSL_METHOD *sycSSLv3_server_method(void) {
70 + const SSL_METHOD *result;
71 + Debug("SSLv3_server_method()");
72 +@@ -70,6 +73,7 @@ const SSL_METHOD *sycSSLv3_server_method(void) {
73 + Debug1("SSLv3_server_method() -> %p", result);
74 + return result;
75 + }
76 ++#endif
77 +
78 + const SSL_METHOD *sycSSLv23_client_method(void) {
79 + const SSL_METHOD *result;
80 +@@ -347,6 +351,7 @@ void sycSSL_free(SSL *ssl) {
81 + return;
82 + }
83 +
84 ++#ifndef OPENSSL_NO_EGD
85 + int sycRAND_egd(const char *path) {
86 + int result;
87 + Debug1("RAND_egd(\"%s\")", path);
88 +@@ -354,6 +359,7 @@ int sycRAND_egd(const char *path) {
89 + Debug1("RAND_egd() -> %d", result);
90 + return result;
91 + }
92 ++#endif
93 +
94 + DH *sycPEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void *u) {
95 + DH *result;
96 +@@ -391,7 +397,7 @@ int sycFIPS_mode_set(int onoff) {
97 + }
98 + #endif /* WITH_FIPS */
99 +
100 +-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
101 ++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
102 + const COMP_METHOD *sycSSL_get_current_compression(SSL *ssl) {
103 + const COMP_METHOD *result;
104 + Debug1("SSL_get_current_compression(%p)", ssl);
105 +diff --git a/sslcls.h b/sslcls.h
106 +index 152fe5b..9fd8ef2 100644
107 +--- a/sslcls.h
108 ++++ b/sslcls.h
109 +@@ -49,7 +49,9 @@ X509 *sycSSL_get_peer_certificate(SSL *ssl);
110 + int sycSSL_shutdown(SSL *ssl);
111 + void sycSSL_CTX_free(SSL_CTX *ctx);
112 + void sycSSL_free(SSL *ssl);
113 ++#ifndef OPENSSL_NO_EGD
114 + int sycRAND_egd(const char *path);
115 ++#endif
116 +
117 + DH *sycPEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void *u);
118 +
119 +@@ -57,7 +59,7 @@ BIO *sycBIO_new_file(const char *filename, const char *mode);
120 +
121 + int sycFIPS_mode_set(int onoff);
122 +
123 +-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
124 ++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
125 + const COMP_METHOD *sycSSL_get_current_compression(SSL *ssl);
126 + const COMP_METHOD *sycSSL_get_current_expansion(SSL *ssl);
127 + const char *sycSSL_COMP_get_name(const COMP_METHOD *comp);
128 +diff --git a/xio-openssl.c b/xio-openssl.c
129 +index c7f283c..38dc20d 100644
130 +--- a/xio-openssl.c
131 ++++ b/xio-openssl.c
132 +@@ -181,9 +181,11 @@ const struct optdesc opt_openssl_key = { "openssl-key", "key",
133 + const struct optdesc opt_openssl_dhparam = { "openssl-dhparam", "dh", OPT_OPENSSL_DHPARAM, GROUP_OPENSSL, PH_SPEC, TYPE_FILENAME, OFUNC_SPEC };
134 + const struct optdesc opt_openssl_cafile = { "openssl-cafile", "cafile", OPT_OPENSSL_CAFILE, GROUP_OPENSSL, PH_SPEC, TYPE_FILENAME, OFUNC_SPEC };
135 + const struct optdesc opt_openssl_capath = { "openssl-capath", "capath", OPT_OPENSSL_CAPATH, GROUP_OPENSSL, PH_SPEC, TYPE_FILENAME, OFUNC_SPEC };
136 ++#ifndef OPENSSL_NO_EGD
137 + const struct optdesc opt_openssl_egd = { "openssl-egd", "egd", OPT_OPENSSL_EGD, GROUP_OPENSSL, PH_SPEC, TYPE_FILENAME, OFUNC_SPEC };
138 ++#endif
139 + const struct optdesc opt_openssl_pseudo = { "openssl-pseudo", "pseudo", OPT_OPENSSL_PSEUDO, GROUP_OPENSSL, PH_SPEC, TYPE_BOOL, OFUNC_SPEC };
140 +-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
141 ++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
142 + const struct optdesc opt_openssl_compress = { "openssl-compress", "compress", OPT_OPENSSL_COMPRESS, GROUP_OPENSSL, PH_SPEC, TYPE_STRING, OFUNC_SPEC };
143 + #endif
144 + #if WITH_FIPS
145 +@@ -220,7 +222,7 @@ int xio_reset_fips_mode(void) {
146 + static void openssl_conn_loginfo(SSL *ssl) {
147 + Notice1("SSL connection using %s", SSL_get_cipher(ssl));
148 +
149 +-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
150 ++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
151 + {
152 + const COMP_METHOD *comp, *expansion;
153 +
154 +@@ -786,7 +788,7 @@ int _xioopen_openssl_listen(struct single *xfd,
155 + #endif /* WITH_LISTEN */
156 +
157 +
158 +-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
159 ++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
160 + /* In OpenSSL 0.9.7 compression methods could be added using
161 + * SSL_COMP_add_compression_method(3), but the implemntation is not compatible
162 + * with the standard (RFC3749).
163 +@@ -857,8 +859,10 @@ int
164 + char *opt_dhparam = NULL; /* file name of DH params */
165 + char *opt_cafile = NULL; /* certificate authority file */
166 + char *opt_capath = NULL; /* certificate authority directory */
167 ++#ifndef OPENSSL_NO_EGD
168 + char *opt_egd = NULL; /* entropy gathering daemon socket path */
169 +-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
170 ++#endif
171 ++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
172 + char *opt_compress = NULL; /* compression method */
173 + #endif
174 + bool opt_pseudo = false; /* use pseudo entropy if nothing else */
175 +@@ -875,9 +879,11 @@ int
176 + retropt_string(opts, OPT_OPENSSL_CAPATH, &opt_capath);
177 + retropt_string(opts, OPT_OPENSSL_KEY, &opt_key);
178 + retropt_string(opts, OPT_OPENSSL_DHPARAM, &opt_dhparam);
179 ++#ifndef OPENSSL_NO_EGD
180 + retropt_string(opts, OPT_OPENSSL_EGD, &opt_egd);
181 ++#endif
182 + retropt_bool(opts,OPT_OPENSSL_PSEUDO, &opt_pseudo);
183 +-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
184 ++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
185 + retropt_string(opts, OPT_OPENSSL_COMPRESS, &opt_compress);
186 + #endif
187 + #if WITH_FIPS
188 +@@ -1010,9 +1016,11 @@ int
189 + }
190 + }
191 +
192 ++#ifndef OPENSSL_NO_EGD
193 + if (opt_egd) {
194 + sycRAND_egd(opt_egd);
195 + }
196 ++#endif
197 +
198 + if (opt_pseudo) {
199 + long int randdata;
200 +@@ -1124,7 +1132,7 @@ int
201 + }
202 + #endif /* !defined(EC_KEY) */
203 +
204 +-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
205 ++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
206 + if (opt_compress) {
207 + int result;
208 + result = openssl_setup_compression(*ctx, opt_compress);
209 +@@ -1238,7 +1246,11 @@ static int openssl_SSL_ERROR_SSL(int level, const char *funcname) {
210 + if (e == ((ERR_LIB_RAND<<24)|
211 + (RAND_F_SSLEAY_RAND_BYTES<<12)|
212 + (RAND_R_PRNG_NOT_SEEDED)) /*0x24064064*/) {
213 ++#ifdef OPENSSL_NO_EGD
214 ++ Error("too few entropy; use option \"pseudo\"");
215 ++#else
216 + Error("too few entropy; use options \"egd\" or \"pseudo\"");
217 ++#endif
218 + stat = STAT_NORETRY;
219 + } else {
220 + Msg2(level, "%s(): %s", funcname, ERR_error_string(e, buf));
221 +diff --git a/xio-openssl.h b/xio-openssl.h
222 +index 62586fc..f10ee0c 100644
223 +--- a/xio-openssl.h
224 ++++ b/xio-openssl.h
225 +@@ -21,9 +21,11 @@ extern const struct optdesc opt_openssl_key;
226 + extern const struct optdesc opt_openssl_dhparam;
227 + extern const struct optdesc opt_openssl_cafile;
228 + extern const struct optdesc opt_openssl_capath;
229 ++#ifndef OPENSSL_NO_EGD
230 + extern const struct optdesc opt_openssl_egd;
231 ++#endif
232 + extern const struct optdesc opt_openssl_pseudo;
233 +-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
234 ++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
235 + extern const struct optdesc opt_openssl_compress;
236 + #endif
237 + #if WITH_FIPS
238 +diff --git a/xioopts.c b/xioopts.c
239 +index 6c231f4..9a56298 100644
240 +--- a/xioopts.c
241 ++++ b/xioopts.c
242 +@@ -303,7 +303,7 @@ const struct optname optionnames[] = {
243 + #if WITH_EXT2 && defined(EXT2_COMPR_FL)
244 + IF_ANY ("compr", &opt_ext2_compr)
245 + #endif
246 +-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
247 ++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
248 + IF_OPENSSL("compress", &opt_openssl_compress)
249 + #endif
250 + #ifdef TCP_CONN_ABORT_THRESHOLD /* HP_UX */
251 +@@ -419,7 +419,9 @@ const struct optname optionnames[] = {
252 + #ifdef ECHOPRT
253 + IF_TERMIOS("echoprt", &opt_echoprt)
254 + #endif
255 ++#ifndef OPENSSL_NO_EGD
256 + IF_OPENSSL("egd", &opt_openssl_egd)
257 ++#endif
258 + IF_ANY ("end-close", &opt_end_close)
259 + IF_TERMIOS("eof", &opt_veof)
260 + IF_TERMIOS("eol", &opt_veol)
261 +@@ -1062,11 +1064,13 @@ const struct optname optionnames[] = {
262 + IF_OPENSSL("openssl-certificate", &opt_openssl_certificate)
263 + IF_OPENSSL("openssl-cipherlist", &opt_openssl_cipherlist)
264 + IF_OPENSSL("openssl-commonname", &opt_openssl_commonname)
265 +-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
266 ++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
267 + IF_OPENSSL("openssl-compress", &opt_openssl_compress)
268 + #endif
269 + IF_OPENSSL("openssl-dhparam", &opt_openssl_dhparam)
270 ++#ifndef OPENSSL_NO_EGD
271 + IF_OPENSSL("openssl-egd", &opt_openssl_egd)
272 ++#endif
273 + #if WITH_FIPS
274 + IF_OPENSSL("openssl-fips", &opt_openssl_fips)
275 + #endif
276 +diff --git a/xioopts.h b/xioopts.h
277 +index 2a165f5..37d6883 100644
278 +--- a/xioopts.h
279 ++++ b/xioopts.h
280 +@@ -478,11 +478,13 @@ enum e_optcode {
281 + OPT_OPENSSL_CERTIFICATE,
282 + OPT_OPENSSL_CIPHERLIST,
283 + OPT_OPENSSL_COMMONNAME,
284 +-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
285 ++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
286 + OPT_OPENSSL_COMPRESS,
287 + #endif
288 + OPT_OPENSSL_DHPARAM,
289 ++#ifndef OPENSSL_NO_EGD
290 + OPT_OPENSSL_EGD,
291 ++#endif
292 + OPT_OPENSSL_FIPS,
293 + OPT_OPENSSL_KEY,
294 + OPT_OPENSSL_METHOD,
295 +--
296 +2.7.3
297 +
298
299 diff --git a/net-misc/socat/socat-2.0.0_beta9.ebuild b/net-misc/socat/socat-2.0.0_beta9.ebuild
300 index 07429de..332eb16 100644
301 --- a/net-misc/socat/socat-2.0.0_beta9.ebuild
302 +++ b/net-misc/socat/socat-2.0.0_beta9.ebuild
303 @@ -1,10 +1,10 @@
304 -# Copyright 1999-2015 Gentoo Foundation
305 +# Copyright 1999-2016 Gentoo Foundation
306 # Distributed under the terms of the GNU General Public License v2
307 # $Id$
308
309 -EAPI=5
310 +EAPI=6
311
312 -inherit autotools eutils flag-o-matic toolchain-funcs
313 +inherit autotools flag-o-matic toolchain-funcs
314
315 DESCRIPTION="Multipurpose relay (SOcket CAT)"
316 HOMEPAGE="http://www.dest-unreach.org/socat/"
317 @@ -15,24 +15,42 @@ SRC_URI="http://www.dest-unreach.org/socat/download/${MY_P}.tar.bz2"
318 LICENSE="GPL-2"
319 SLOT="0"
320 KEYWORDS=""
321 -IUSE="ssl readline ipv6 tcpd"
322 +IUSE="libressl ssl readline ipv6 tcpd"
323
324 DEPEND="
325 - ssl? ( dev-libs/openssl:0= )
326 + ssl? (
327 + !libressl? ( dev-libs/openssl:0= )
328 + libressl? ( dev-libs/libressl:= )
329 + )
330 readline? ( sys-libs/readline:= )
331 tcpd? ( sys-apps/tcp-wrappers )
332 "
333 RDEPEND="${DEPEND}"
334
335 -RESTRICT="test"
336 +RESTRICT="test
337 + ssl? ( readline? ( bindist ) )"
338
339 DOCS=(
340 BUGREPORTS CHANGES DEVELOPMENT EXAMPLES FAQ FILES PORTING README SECURITY
341 )
342
343 +PATCHES=(
344 + "${FILESDIR}"/${PN}-1.7.3.0-filan-build.patch
345 + "${FILESDIR}"/${PN}-1.7.3.1-stddef_h.patch
346 + "${FILESDIR}"/${PN}-2.0.0_beta9-libressl.patch
347 +)
348 +
349 +pkg_setup() {
350 + # bug #587740
351 + if use readline && use ssl; then
352 + elog "You are enabling both readline and openssl USE flags, the licenses"
353 + elog "for these packages conflict. You may not be able to legally"
354 + elog "redistribute the resulting binary."
355 + fi
356 +}
357 +
358 src_prepare() {
359 - epatch "${FILESDIR}"/${PN}-1.7.3.0-filan-build.patch
360 - epatch "${FILESDIR}"/${PN}-1.7.3.1-stddef_h.patch
361 + default
362
363 touch doc/${PN}.1 || die
364
365 @@ -52,5 +70,6 @@ src_configure() {
366 src_install() {
367 default
368
369 - dohtml doc/*.html doc/*.css
370 + docinto html
371 + dodoc doc/*.html doc/*.css
372 }
373
374 diff --git a/net-misc/socat/socat-9999.ebuild b/net-misc/socat/socat-9999.ebuild
375 index 076b3a1..de08044 100644
376 --- a/net-misc/socat/socat-9999.ebuild
377 +++ b/net-misc/socat/socat-9999.ebuild
378 @@ -1,9 +1,10 @@
379 -# Copyright 1999-2015 Gentoo Foundation
380 +# Copyright 1999-2016 Gentoo Foundation
381 # Distributed under the terms of the GNU General Public License v2
382 # $Id$
383
384 -EAPI=5
385 -inherit autotools eutils flag-o-matic git-r3 toolchain-funcs
386 +EAPI=6
387 +
388 +inherit autotools flag-o-matic git-r3 toolchain-funcs
389
390 DESCRIPTION="Multipurpose relay (SOcket CAT)"
391 HOMEPAGE="http://www.dest-unreach.org/socat/"
392 @@ -14,10 +15,13 @@ EGIT_REPO_URI="git://repo.or.cz/${PN}.git"
393 LICENSE="GPL-2"
394 SLOT="0"
395 KEYWORDS=""
396 -IUSE="ssl readline ipv6 tcpd"
397 +IUSE="libressl ssl readline ipv6 tcpd"
398
399 -RDEPEND="
400 - ssl? ( dev-libs/openssl:0= )
401 +DEPEND="
402 + ssl? (
403 + !libressl? ( dev-libs/openssl:0= )
404 + libressl? ( dev-libs/libressl:= )
405 + )
406 readline? ( sys-libs/readline:= )
407 tcpd? ( sys-apps/tcp-wrappers )
408 "
409 @@ -26,15 +30,29 @@ DEPEND="
410 app-text/yodl
411 "
412
413 -RESTRICT="test"
414 +RESTRICT="test
415 + ssl? ( readline? ( bindist ) )"
416
417 DOCS=(
418 BUGREPORTS CHANGES DEVELOPMENT EXAMPLES FAQ FILES PORTING README SECURITY
419 )
420
421 +PATCHES=(
422 + "${FILESDIR}"/${PN}-1.7.3.0-filan-build.patch
423 + "${FILESDIR}"/${PN}-1.7.3.1-stddef_h.patch
424 +)
425 +
426 +pkg_setup() {
427 + # bug #587740
428 + if use readline && use ssl; then
429 + elog "You are enabling both readline and openssl USE flags, the licenses"
430 + elog "for these packages conflict. You may not be able to legally"
431 + elog "redistribute the resulting binary."
432 + fi
433 +}
434 +
435 src_prepare() {
436 - epatch "${FILESDIR}"/${PN}-1.7.3.0-filan-build.patch
437 - epatch "${FILESDIR}"/${PN}-1.7.3.1-stddef_h.patch
438 + default
439
440 eautoreconf
441 }
442 @@ -52,5 +70,6 @@ src_configure() {
443 src_install() {
444 default
445
446 - dohtml doc/*.html doc/*.css
447 + docinto html
448 + dodoc doc/*.html doc/*.css
449 }