parlay

yet another gentoo overlay
git clone https://git.parazyd.org/parlay
Log | Files | Refs | README

commit 6fdfbffd912c5887cfe0deca236ab85123a1e59d
parent 1d6159e20e823f91b1ee3da584a431c6a22305f4
Author: parazyd <parazyd@dyne.org>
Date:   Mon, 24 Oct 2016 23:09:58 +0200

net-misc/soca: Add 1.7.3.1 wih musl support.

Diffstat:
Anet-misc/socat/Manifest | 1+
Anet-misc/socat/files/socat-1.7.3.0-filan-build.patch | 30++++++++++++++++++++++++++++++
Anet-misc/socat/files/socat-1.7.3.1-libressl.patch | 277+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Anet-misc/socat/files/socat-1.7.3.1-netdb-internal.patch | 13+++++++++++++
Anet-misc/socat/files/socat-1.7.3.1-stddef_h.patch | 38++++++++++++++++++++++++++++++++++++++
Anet-misc/socat/files/socat-1.7.3.1-use-linux-headers.patch | 11+++++++++++
Anet-misc/socat/socat-1.7.3.1-r99.ebuild | 75+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 445 insertions(+), 0 deletions(-)

diff --git a/net-misc/socat/Manifest b/net-misc/socat/Manifest @@ -0,0 +1 @@ +DIST socat-1.7.3.1.tar.bz2 488467 SHA256 d2da659540c38139f388e9437bfaae16bb458d174d056cb3228432a8f489fbaa SHA512 463340f578d4d1d54458b8ef9573ad3eff51dbcc736205e1b62e9a4782770d4bb76e6a07506350fd35405b130660559aaa79dfa2664c53ea268d7d64231f9b32 WHIRLPOOL 09f0fc537eaad194cac97cce73971c9f69047c648f03788fa69ac3444673ff73f143b2657d0ed28d082e2cfc36829304ed7bf0ff79c7ed75e96c991292f94dd4 diff --git a/net-misc/socat/files/socat-1.7.3.0-filan-build.patch b/net-misc/socat/files/socat-1.7.3.0-filan-build.patch @@ -0,0 +1,30 @@ +From aae2ea107b543fa908956f2fdcdf6db684e4a2e6 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@chromium.org> +Date: Fri, 24 Apr 2015 23:06:37 -0400 +Subject: [PATCH] filan: fix depend list + +The link line contains more objects than the depend line; sync them like +procan does. Otherwise, parallel builds randomly fail. +--- + Makefile.in | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index f2a6edb..0c00459 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -118,8 +118,9 @@ PROCAN_OBJS=procan_main.o procan.o procan-cdefs.o hostan.o error.o sycls.o sysut + procan: $(PROCAN_OBJS) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(PROCAN_OBJS) $(CLIBS) + +-filan: filan_main.o filan.o fdname.o error.o sycls.o sysutils.o utils.o +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ filan_main.o filan.o fdname.o error.o sycls.o sysutils.o utils.o vsnprintf_r.o snprinterr.o $(CLIBS) ++FILAN_OBJS=filan_main.o filan.o fdname.o error.o sycls.o sysutils.o utils.o vsnprintf_r.o snprinterr.o ++filan: $(FILAN_OBJS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(FILAN_OBJS) $(CLIBS) + + libxio.a: $(XIOOBJS) $(UTLOBJS) + $(AR) r $@ $(XIOOBJS) $(UTLOBJS) +-- +2.3.5 + diff --git a/net-misc/socat/files/socat-1.7.3.1-libressl.patch b/net-misc/socat/files/socat-1.7.3.1-libressl.patch @@ -0,0 +1,277 @@ +From 1106527e9ca2be33af03d99393aa43069918df1a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@blackhole.sk> +Date: Mon, 6 Jun 2016 18:43:56 +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 | 6 +++++- + xio-openssl.c | 24 ++++++++++++++++++------ + xio-openssl.h | 4 +++- + xioopts.c | 8 ++++++-- + xioopts.h | 4 +++- + 6 files changed, 42 insertions(+), 12 deletions(-) + +diff --git a/sslcls.c b/sslcls.c +index 6ddc077..a4de26b 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; +@@ -331,6 +335,7 @@ void sycSSL_free(SSL *ssl) { + return; + } + ++#ifndef OPENSSL_NO_EGD + int sycRAND_egd(const char *path) { + int result; + Debug1("RAND_egd(\"%s\")", path); +@@ -338,6 +343,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; +@@ -375,7 +381,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 aece28a..5a4f8b1 100644 +--- a/sslcls.h ++++ b/sslcls.h +@@ -47,7 +47,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); + +@@ -55,7 +57,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); +@@ -98,7 +100,9 @@ const char *sycSSL_COMP_get_name(const COMP_METHOD *comp); + #define sycSSL_shutdown(s) SSL_shutdown(s) + #define sycSSL_CTX_free(c) SSL_CTX_free(c) + #define sycSSL_free(s) SSL_free(s) ++#ifndef OPENSSL_NO_EGD + #define sycRAND_egd(p) RAND_egd(p) ++#endif + + #define sycPEM_read_bio_DHparams(b,x,p,u) PEM_read_bio_DHparams(b,x,p,u) + +diff --git a/xio-openssl.c b/xio-openssl.c +index b7e95c1..03cc9ff 100644 +--- a/xio-openssl.c ++++ b/xio-openssl.c +@@ -108,9 +108,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 +@@ -147,7 +149,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; + +@@ -651,7 +653,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). +@@ -722,8 +724,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 */ +@@ -741,9 +745,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 +@@ -877,9 +883,11 @@ int + } + } + ++#ifndef OPENSSL_NO_EGD + if (opt_egd) { + sycRAND_egd(opt_egd); + } ++#endif + + if (opt_pseudo) { + long int randdata; +@@ -991,7 +999,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); +@@ -1105,7 +1113,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 9cad8f4..bfe69ee 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 3b0f300..e50c26c 100644 +--- a/xioopts.c ++++ b/xioopts.c +@@ -296,7 +296,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 */ +@@ -412,7 +412,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) +@@ -1098,11 +1100,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 ebcf315..305e018 100644 +--- a/xioopts.h ++++ b/xioopts.h +@@ -474,11 +474,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/files/socat-1.7.3.1-netdb-internal.patch b/net-misc/socat/files/socat-1.7.3.1-netdb-internal.patch @@ -0,0 +1,13 @@ +--- socat-1.7.2.4.orig/compat.h ++++ socat-1.7.2.4/compat.h +@@ -656,6 +656,10 @@ + # define NETDB_INTERNAL h_NETDB_INTERNAL + #endif + ++#if !defined(NETDB_INTERNAL) ++# define NETDB_INTERNAL (-1) ++#endif ++ + #ifndef INET_ADDRSTRLEN + # define INET_ADDRSTRLEN sizeof(struct sockaddr_in) + #endif diff --git a/net-misc/socat/files/socat-1.7.3.1-stddef_h.patch b/net-misc/socat/files/socat-1.7.3.1-stddef_h.patch @@ -0,0 +1,38 @@ +When disabling OpenSSL support, nestlex.c still needs stddef.h which is +magically included through the OpenSSL headers otherwise. + +--- a/configure.in ++++ b/configure.in +@@ -61,7 +61,7 @@ + AC_CHECK_HEADERS(inttypes.h) + AC_HEADER_SYS_WAIT + AC_CHECK_HEADERS(fcntl.h limits.h strings.h sys/param.h sys/ioctl.h sys/time.h syslog.h unistd.h) +-AC_CHECK_HEADERS(pwd.h grp.h stdint.h sys/types.h poll.h sys/poll.h sys/socket.h sys/uio.h sys/stat.h netdb.h sys/un.h) ++AC_CHECK_HEADERS(pwd.h grp.h stddef.h stdint.h sys/types.h poll.h sys/poll.h sys/socket.h sys/uio.h sys/stat.h netdb.h sys/un.h) + AC_CHECK_HEADERS(pty.h) + AC_CHECK_HEADERS(netinet/in.h netinet/in_systm.h) + AC_CHECK_HEADERS(netinet/ip.h, [], [], [AC_INCLUDES_DEFAULT +--- a/config.h.in ++++ b/config.h.in +@@ -189,6 +189,9 @@ + /* Define if you have the <grp.h> header file. */ + #undef HAVE_GRP_H + ++/* Define if you have the <stddef.h> header file. */ ++#undef HAVE_STDDEF_H ++ + /* Define if you have the <stdint.h> header file. */ + #undef HAVE_STDINT_H + +--- a/sysincludes.h ++++ b/sysincludes.h +@@ -51,6 +51,9 @@ + #if HAVE_SYS_TIME_H + #include <sys/time.h> /* select(); OpenBSD: struct timespec */ + #endif ++#if HAVE_STDDEF_H ++#include <stddef.h> ++#endif + #if HAVE_STDINT_H + #include <stdint.h> /* uint8_t */ + #endif diff --git a/net-misc/socat/files/socat-1.7.3.1-use-linux-headers.patch b/net-misc/socat/files/socat-1.7.3.1-use-linux-headers.patch @@ -0,0 +1,11 @@ +--- socat-1.7.2.4.orig/sysincludes.h ++++ socat-1.7.2.4/sysincludes.h +@@ -134,7 +134,7 @@ + #include <netpacket/packet.h> + #endif + #if HAVE_NETINET_IF_ETHER_H +-#include <netinet/if_ether.h> ++#include <linux/if_ether.h> + #endif + #if HAVE_LINUX_IF_TUN_H + #include <linux/if_tun.h> diff --git a/net-misc/socat/socat-1.7.3.1-r99.ebuild b/net-misc/socat/socat-1.7.3.1-r99.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit autotools flag-o-matic toolchain-funcs + +DESCRIPTION="Multipurpose relay (SOcket CAT)" +HOMEPAGE="http://www.dest-unreach.org/socat/" +MY_P=${P/_beta/-b} +S="${WORKDIR}/${MY_P}" +SRC_URI="http://www.dest-unreach.org/socat/download/${MY_P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="bindist libressl ssl readline ipv6 tcpd" + +DEPEND=" + ssl? ( + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:= ) + ) + readline? ( sys-libs/readline:= ) + tcpd? ( sys-apps/tcp-wrappers ) +" +RDEPEND="${DEPEND}" + +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}-1.7.3.1-libressl.patch + "${FILESDIR}"/${PN}-1.7.3.1-netdb-internal.patch + "${FILESDIR}"/${PN}-1.7.3.1-use-linux-headers.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() { + default + + eautoreconf +} + +src_configure() { + filter-flags '-Wno-error*' #293324 + tc-export AR + econf \ + $(use_enable ssl openssl) \ + $(use_enable readline) \ + $(use_enable ipv6 ip6) \ + $(use_enable tcpd libwrap) +} + +src_install() { + default + + docinto html + dodoc doc/*.html doc/*.css +}