public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Patrick McLean" <chutzpah@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: net-misc/socat/files/, net-misc/socat/
Date: Wed, 21 Sep 2016 18:38:32 +0000 (UTC)	[thread overview]
Message-ID: <1474483075.699d4c3617e48a9b1d66879e56b34479cf647a5f.chutzpah@gentoo> (raw)

commit:     699d4c3617e48a9b1d66879e56b34479cf647a5f
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 21 18:36:04 2016 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Sep 21 18:37:55 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=699d4c36

net-misc/socat: Add libressl and license warning to 2.0 ebuild

Port to EAPI=6

This adds libressl support (bug #565244) thanks to Marek Behun for the patch

This also adds a RESTRICT for bindist with ssl and readline

Sync 9999 ebuild with changes

Package-Manager: portage-2.3.1

 .../socat/files/socat-2.0.0_beta9-libressl.patch   | 267 +++++++++++++++++++++
 net-misc/socat/socat-2.0.0_beta9.ebuild            |  37 ++-
 net-misc/socat/socat-9999.ebuild                   |  39 ++-
 3 files changed, 324 insertions(+), 19 deletions(-)

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
new file mode 100644
index 00000000..535297c
--- /dev/null
+++ b/net-misc/socat/files/socat-2.0.0_beta9-libressl.patch
@@ -0,0 +1,267 @@
+From fbb0cc3b65a2ead522019fb461ae520371cc3ede Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@blackhole.sk>
+Date: Mon, 6 Jun 2016 18:41:30 +0200
+Subject: [PATCH] Support compiling with LibreSSL 2.4.0
+
+This patch checks for macros OPENSSL_NO_COMP, OPENSSL_NO_EGD, and
+if disables those features if they are.
+
+Also add ifdef for HAVE_SSLv3_{client/server}_method in sslcls.c,
+since these were removed from LibreSSL 2.4.0.
+---
+ sslcls.c      |  8 +++++++-
+ sslcls.h      |  4 +++-
+ xio-openssl.c | 24 ++++++++++++++++++------
+ xio-openssl.h |  4 +++-
+ xioopts.c     |  8 ++++++--
+ xioopts.h     |  4 +++-
+ 6 files changed, 40 insertions(+), 12 deletions(-)
+
+diff --git a/sslcls.c b/sslcls.c
+index ea4c303..5011ef2 100644
+--- a/sslcls.c
++++ b/sslcls.c
+@@ -55,6 +55,7 @@ const SSL_METHOD *sycSSLv2_server_method(void) {
+ }
+ #endif
+ 
++#if HAVE_SSLv3_client_method
+ const SSL_METHOD *sycSSLv3_client_method(void) {
+    const SSL_METHOD *result;
+    Debug("SSLv3_client_method()");
+@@ -62,7 +63,9 @@ const SSL_METHOD *sycSSLv3_client_method(void) {
+    Debug1("SSLv3_client_method() -> %p", result);
+    return result;
+ }
++#endif
+ 
++#if HAVE_SSLv3_server_method
+ const SSL_METHOD *sycSSLv3_server_method(void) {
+    const SSL_METHOD *result;
+    Debug("SSLv3_server_method()");
+@@ -70,6 +73,7 @@ const SSL_METHOD *sycSSLv3_server_method(void) {
+    Debug1("SSLv3_server_method() -> %p", result);
+    return result;
+ }
++#endif
+ 
+ const SSL_METHOD *sycSSLv23_client_method(void) {
+    const SSL_METHOD *result;
+@@ -347,6 +351,7 @@ void sycSSL_free(SSL *ssl) {
+    return;
+ }
+ 
++#ifndef OPENSSL_NO_EGD
+ int sycRAND_egd(const char *path) {
+    int result;
+    Debug1("RAND_egd(\"%s\")", path);
+@@ -354,6 +359,7 @@ int sycRAND_egd(const char *path) {
+    Debug1("RAND_egd() -> %d", result);
+    return result;
+ }
++#endif
+ 
+ DH *sycPEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void *u) {
+    DH *result;
+@@ -391,7 +397,7 @@ int sycFIPS_mode_set(int onoff) {
+ }
+ #endif /* WITH_FIPS */
+ 
+-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
+ const COMP_METHOD *sycSSL_get_current_compression(SSL *ssl) {
+    const COMP_METHOD *result;
+    Debug1("SSL_get_current_compression(%p)", ssl);
+diff --git a/sslcls.h b/sslcls.h
+index 152fe5b..9fd8ef2 100644
+--- a/sslcls.h
++++ b/sslcls.h
+@@ -49,7 +49,9 @@ X509 *sycSSL_get_peer_certificate(SSL *ssl);
+ int sycSSL_shutdown(SSL *ssl);
+ void sycSSL_CTX_free(SSL_CTX *ctx);
+ void sycSSL_free(SSL *ssl);
++#ifndef OPENSSL_NO_EGD
+ int sycRAND_egd(const char *path);
++#endif
+ 
+ DH *sycPEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void *u);
+ 
+@@ -57,7 +59,7 @@ BIO *sycBIO_new_file(const char *filename, const char *mode);
+ 
+ int sycFIPS_mode_set(int onoff);
+ 
+-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
+ const COMP_METHOD *sycSSL_get_current_compression(SSL *ssl);
+ const COMP_METHOD *sycSSL_get_current_expansion(SSL *ssl);
+ const char *sycSSL_COMP_get_name(const COMP_METHOD *comp);
+diff --git a/xio-openssl.c b/xio-openssl.c
+index c7f283c..38dc20d 100644
+--- a/xio-openssl.c
++++ b/xio-openssl.c
+@@ -181,9 +181,11 @@ const struct optdesc opt_openssl_key         = { "openssl-key",         "key",
+ const struct optdesc opt_openssl_dhparam     = { "openssl-dhparam",     "dh",    OPT_OPENSSL_DHPARAM,     GROUP_OPENSSL, PH_SPEC, TYPE_FILENAME, OFUNC_SPEC };
+ const struct optdesc opt_openssl_cafile      = { "openssl-cafile",     "cafile", OPT_OPENSSL_CAFILE,      GROUP_OPENSSL, PH_SPEC, TYPE_FILENAME, OFUNC_SPEC };
+ const struct optdesc opt_openssl_capath      = { "openssl-capath",     "capath", OPT_OPENSSL_CAPATH,      GROUP_OPENSSL, PH_SPEC, TYPE_FILENAME, OFUNC_SPEC };
++#ifndef OPENSSL_NO_EGD
+ const struct optdesc opt_openssl_egd         = { "openssl-egd",        "egd",    OPT_OPENSSL_EGD,         GROUP_OPENSSL, PH_SPEC, TYPE_FILENAME, OFUNC_SPEC };
++#endif
+ const struct optdesc opt_openssl_pseudo      = { "openssl-pseudo",     "pseudo", OPT_OPENSSL_PSEUDO,      GROUP_OPENSSL, PH_SPEC, TYPE_BOOL,     OFUNC_SPEC };
+-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
+ const struct optdesc opt_openssl_compress    = { "openssl-compress",   "compress", OPT_OPENSSL_COMPRESS,  GROUP_OPENSSL, PH_SPEC, TYPE_STRING,   OFUNC_SPEC };
+ #endif
+ #if WITH_FIPS
+@@ -220,7 +222,7 @@ int xio_reset_fips_mode(void) {
+ static void openssl_conn_loginfo(SSL *ssl) {
+    Notice1("SSL connection using %s", SSL_get_cipher(ssl));
+ 
+-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
+    {
+       const COMP_METHOD *comp, *expansion;
+ 
+@@ -786,7 +788,7 @@ int _xioopen_openssl_listen(struct single *xfd,
+ #endif /* WITH_LISTEN */
+ 
+ 
+-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
+ /* In OpenSSL 0.9.7 compression methods could be added using
+  * SSL_COMP_add_compression_method(3), but the implemntation is not compatible
+  * with the standard (RFC3749).
+@@ -857,8 +859,10 @@ int
+    char *opt_dhparam = NULL;	/* file name of DH params */
+    char *opt_cafile = NULL;	/* certificate authority file */
+    char *opt_capath = NULL;	/* certificate authority directory */
++#ifndef OPENSSL_NO_EGD
+    char *opt_egd = NULL;	/* entropy gathering daemon socket path */
+-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
++#endif
++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
+    char *opt_compress = NULL;  /* compression method */
+ #endif
+    bool opt_pseudo = false;	/* use pseudo entropy if nothing else */
+@@ -875,9 +879,11 @@ int
+    retropt_string(opts, OPT_OPENSSL_CAPATH, &opt_capath);
+    retropt_string(opts, OPT_OPENSSL_KEY, &opt_key);
+    retropt_string(opts, OPT_OPENSSL_DHPARAM, &opt_dhparam);
++#ifndef OPENSSL_NO_EGD
+    retropt_string(opts, OPT_OPENSSL_EGD, &opt_egd);
++#endif
+    retropt_bool(opts,OPT_OPENSSL_PSEUDO, &opt_pseudo);
+-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
+    retropt_string(opts, OPT_OPENSSL_COMPRESS, &opt_compress);
+ #endif
+ #if WITH_FIPS
+@@ -1010,9 +1016,11 @@ int
+       }
+    }
+ 
++#ifndef OPENSSL_NO_EGD
+    if (opt_egd) {
+       sycRAND_egd(opt_egd);
+    }
++#endif
+ 
+    if (opt_pseudo) {
+       long int randdata;
+@@ -1124,7 +1132,7 @@ int
+    }
+ #endif /* !defined(EC_KEY) */
+ 
+-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
+    if (opt_compress) {
+       int result;
+       result = openssl_setup_compression(*ctx, opt_compress);
+@@ -1238,7 +1246,11 @@ static int openssl_SSL_ERROR_SSL(int level, const char *funcname) {
+       if (e == ((ERR_LIB_RAND<<24)|
+ 		(RAND_F_SSLEAY_RAND_BYTES<<12)|
+ 		(RAND_R_PRNG_NOT_SEEDED)) /*0x24064064*/) {
++#ifdef OPENSSL_NO_EGD
++	 Error("too few entropy; use option \"pseudo\"");
++#else
+ 	 Error("too few entropy; use options \"egd\" or \"pseudo\"");
++#endif
+ 	 stat = STAT_NORETRY;
+       } else {
+ 	 Msg2(level, "%s(): %s", funcname, ERR_error_string(e, buf));
+diff --git a/xio-openssl.h b/xio-openssl.h
+index 62586fc..f10ee0c 100644
+--- a/xio-openssl.h
++++ b/xio-openssl.h
+@@ -21,9 +21,11 @@ extern const struct optdesc opt_openssl_key;
+ extern const struct optdesc opt_openssl_dhparam;
+ extern const struct optdesc opt_openssl_cafile;
+ extern const struct optdesc opt_openssl_capath;
++#ifndef OPENSSL_NO_EGD
+ extern const struct optdesc opt_openssl_egd;
++#endif
+ extern const struct optdesc opt_openssl_pseudo;
+-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
+ extern const struct optdesc opt_openssl_compress;
+ #endif
+ #if WITH_FIPS
+diff --git a/xioopts.c b/xioopts.c
+index 6c231f4..9a56298 100644
+--- a/xioopts.c
++++ b/xioopts.c
+@@ -303,7 +303,7 @@ const struct optname optionnames[] = {
+ #if WITH_EXT2 && defined(EXT2_COMPR_FL)
+ 	IF_ANY    ("compr",	&opt_ext2_compr)
+ #endif
+-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
+ 	IF_OPENSSL("compress",  &opt_openssl_compress)
+ #endif
+ #ifdef TCP_CONN_ABORT_THRESHOLD  /* HP_UX */
+@@ -419,7 +419,9 @@ const struct optname optionnames[] = {
+ #ifdef ECHOPRT
+ 	IF_TERMIOS("echoprt",	&opt_echoprt)
+ #endif
++#ifndef OPENSSL_NO_EGD
+ 	IF_OPENSSL("egd",	&opt_openssl_egd)
++#endif
+ 	IF_ANY    ("end-close",	&opt_end_close)
+ 	IF_TERMIOS("eof",	&opt_veof)
+ 	IF_TERMIOS("eol",	&opt_veol)
+@@ -1062,11 +1064,13 @@ const struct optname optionnames[] = {
+ 	IF_OPENSSL("openssl-certificate",	&opt_openssl_certificate)
+ 	IF_OPENSSL("openssl-cipherlist",	&opt_openssl_cipherlist)
+ 	IF_OPENSSL("openssl-commonname",	&opt_openssl_commonname)
+-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
+ 	IF_OPENSSL("openssl-compress",  &opt_openssl_compress)
+ #endif
+ 	IF_OPENSSL("openssl-dhparam",	&opt_openssl_dhparam)
++#ifndef OPENSSL_NO_EGD
+ 	IF_OPENSSL("openssl-egd",	&opt_openssl_egd)
++#endif
+ #if WITH_FIPS
+ 	IF_OPENSSL("openssl-fips",	&opt_openssl_fips)
+ #endif
+diff --git a/xioopts.h b/xioopts.h
+index 2a165f5..37d6883 100644
+--- a/xioopts.h
++++ b/xioopts.h
+@@ -478,11 +478,13 @@ enum e_optcode {
+    OPT_OPENSSL_CERTIFICATE,
+    OPT_OPENSSL_CIPHERLIST,
+    OPT_OPENSSL_COMMONNAME,
+-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
++#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
+    OPT_OPENSSL_COMPRESS,
+ #endif
+    OPT_OPENSSL_DHPARAM,
++#ifndef OPENSSL_NO_EGD
+    OPT_OPENSSL_EGD,
++#endif
+    OPT_OPENSSL_FIPS,
+    OPT_OPENSSL_KEY,
+    OPT_OPENSSL_METHOD,
+-- 
+2.7.3
+

diff --git a/net-misc/socat/socat-2.0.0_beta9.ebuild b/net-misc/socat/socat-2.0.0_beta9.ebuild
index 07429de..332eb16 100644
--- a/net-misc/socat/socat-2.0.0_beta9.ebuild
+++ b/net-misc/socat/socat-2.0.0_beta9.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI=5
+EAPI=6
 
-inherit autotools eutils flag-o-matic toolchain-funcs
+inherit autotools flag-o-matic toolchain-funcs
 
 DESCRIPTION="Multipurpose relay (SOcket CAT)"
 HOMEPAGE="http://www.dest-unreach.org/socat/"
@@ -15,24 +15,42 @@ SRC_URI="http://www.dest-unreach.org/socat/download/${MY_P}.tar.bz2"
 LICENSE="GPL-2"
 SLOT="0"
 KEYWORDS=""
-IUSE="ssl readline ipv6 tcpd"
+IUSE="libressl ssl readline ipv6 tcpd"
 
 DEPEND="
-	ssl? ( dev-libs/openssl:0= )
+	ssl? (
+		!libressl? ( dev-libs/openssl:0= )
+		libressl? ( dev-libs/libressl:= )
+	)
 	readline? ( sys-libs/readline:= )
 	tcpd? ( sys-apps/tcp-wrappers )
 "
 RDEPEND="${DEPEND}"
 
-RESTRICT="test"
+RESTRICT="test
+	ssl? ( readline? ( bindist ) )"
 
 DOCS=(
 	BUGREPORTS CHANGES DEVELOPMENT EXAMPLES FAQ FILES PORTING README SECURITY
 )
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.7.3.0-filan-build.patch
+	"${FILESDIR}"/${PN}-1.7.3.1-stddef_h.patch
+	"${FILESDIR}"/${PN}-2.0.0_beta9-libressl.patch
+)
+
+pkg_setup() {
+	# bug #587740
+	if use readline && use ssl; then
+		elog "You are enabling both readline and openssl USE flags, the licenses"
+		elog "for these packages conflict. You may not be able to legally"
+		elog "redistribute the resulting binary."
+	fi
+}
+
 src_prepare() {
-	epatch "${FILESDIR}"/${PN}-1.7.3.0-filan-build.patch
-	epatch "${FILESDIR}"/${PN}-1.7.3.1-stddef_h.patch
+	default
 
 	touch doc/${PN}.1 || die
 
@@ -52,5 +70,6 @@ src_configure() {
 src_install() {
 	default
 
-	dohtml doc/*.html doc/*.css
+	docinto html
+	dodoc doc/*.html doc/*.css
 }

diff --git a/net-misc/socat/socat-9999.ebuild b/net-misc/socat/socat-9999.ebuild
index 076b3a1..de08044 100644
--- a/net-misc/socat/socat-9999.ebuild
+++ b/net-misc/socat/socat-9999.ebuild
@@ -1,9 +1,10 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI=5
-inherit autotools eutils flag-o-matic git-r3 toolchain-funcs
+EAPI=6
+
+inherit autotools flag-o-matic git-r3 toolchain-funcs
 
 DESCRIPTION="Multipurpose relay (SOcket CAT)"
 HOMEPAGE="http://www.dest-unreach.org/socat/"
@@ -14,10 +15,13 @@ EGIT_REPO_URI="git://repo.or.cz/${PN}.git"
 LICENSE="GPL-2"
 SLOT="0"
 KEYWORDS=""
-IUSE="ssl readline ipv6 tcpd"
+IUSE="libressl ssl readline ipv6 tcpd"
 
-RDEPEND="
-	ssl? ( dev-libs/openssl:0= )
+DEPEND="
+	ssl? (
+		!libressl? ( dev-libs/openssl:0= )
+		libressl? ( dev-libs/libressl:= )
+	)
 	readline? ( sys-libs/readline:= )
 	tcpd? ( sys-apps/tcp-wrappers )
 "
@@ -26,15 +30,29 @@ DEPEND="
 	app-text/yodl
 "
 
-RESTRICT="test"
+RESTRICT="test
+	ssl? ( readline? ( bindist ) )"
 
 DOCS=(
 	BUGREPORTS CHANGES DEVELOPMENT EXAMPLES FAQ FILES PORTING README SECURITY
 )
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.7.3.0-filan-build.patch
+	"${FILESDIR}"/${PN}-1.7.3.1-stddef_h.patch
+)
+
+pkg_setup() {
+	# bug #587740
+	if use readline && use ssl; then
+		elog "You are enabling both readline and openssl USE flags, the licenses"
+		elog "for these packages conflict. You may not be able to legally"
+		elog "redistribute the resulting binary."
+	fi
+}
+
 src_prepare() {
-	epatch "${FILESDIR}"/${PN}-1.7.3.0-filan-build.patch
-	epatch "${FILESDIR}"/${PN}-1.7.3.1-stddef_h.patch
+	default
 
 	eautoreconf
 }
@@ -52,5 +70,6 @@ src_configure() {
 src_install() {
 	default
 
-	dohtml doc/*.html doc/*.css
+	docinto html
+	dodoc doc/*.html doc/*.css
 }


             reply	other threads:[~2016-09-21 18:38 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-21 18:38 Patrick McLean [this message]
  -- strict thread matches above, loose matches on Subject: below --
2016-09-21 18:38 [gentoo-commits] repo/gentoo:master commit in: net-misc/socat/files/, net-misc/socat/ Patrick McLean
2017-01-29  9:34 Jeroen Roovers
2021-01-09 13:53 Lars Wendler
2021-01-27  7:33 Sam James
2023-05-26  9:35 Sam James

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1474483075.699d4c3617e48a9b1d66879e56b34479cf647a5f.chutzpah@gentoo \
    --to=chutzpah@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox