logo

overlay

My (experimental) gentoo overlay
commit: 1bd9365a8f445853ce233238a79a2a5a1e0ed208
parent: d462cb5dde875a7803dac88f2438a1e6a27566d1
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Mon, 11 Feb 2019 19:17:50 +0100

net-libs/serf: Bump to 1.3.9 with LibreSSL fix (based on ::gentoo)

Diffstat:

Anet-libs/serf/Manifest1+
Anet-libs/serf/files/serf-1.3.8-openssl.patch28++++++++++++++++++++++++++++
Anet-libs/serf/files/serf-1.3.8-static-lib.patch49+++++++++++++++++++++++++++++++++++++++++++++++++
Anet-libs/serf/metadata.xml8++++++++
Anet-libs/serf/serf-1.3.9.ebuild70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 156 insertions(+), 0 deletions(-)

diff --git a/net-libs/serf/Manifest b/net-libs/serf/Manifest @@ -0,0 +1 @@ +DIST serf-1.3.9.tar.bz2 145132 BLAKE2B 59776f85b409b2eaea81f3e07b0301515e20cbd2aa0ef05c1c38aa8152a6d5627e526e4bc160abb1fd438e9fa46f97096c639860729d2ea8e0b2fcfcf8222002 SHA512 9f5418d991840a08d293d1ecba70cd9534a207696d002f22dbe62354e7b005955112a0d144a76c89c7f7ad3b4c882e54974441fafa0c09c4aa25c49c021ca75d diff --git a/net-libs/serf/files/serf-1.3.8-openssl.patch b/net-libs/serf/files/serf-1.3.8-openssl.patch @@ -0,0 +1,28 @@ +the build doesn't actually use the openssl var for anything useful. +it blindly adds it to the -I/-L paths which causes problems when you +cross-compile and when you link (it also adds it to -rpath). punt +the setting and forget about it. + +--- a/SConstruct ++++ b/SConstruct +@@ -354,8 +354,6 @@ else: + apr_libs = '' + apu_libs = '' + +- env.Append(CPPPATH=['$OPENSSL/include']) +- env.Append(LIBPATH=['$OPENSSL/lib']) + + + # If build with gssapi, get its information and define SERF_HAVE_GSSAPI +@@ -369,8 +369,9 @@ if sys.platform == 'win32': + # On some systems, the -R values that APR describes never make it into actual + # RPATH flags. We'll manually map all directories in LIBPATH into new + # flags to set RPATH values. +-for d in env['LIBPATH']: +- env.Append(RPATH=':'+d) ++if env.get('LIBPATH', None): ++ for d in env['LIBPATH']: ++ env.Append(RPATH=':'+d) + + # Set up the construction of serf-*.pc + pkgconfig = env.Textfile('serf-%d.pc' % (MAJOR,), diff --git a/net-libs/serf/files/serf-1.3.8-static-lib.patch b/net-libs/serf/files/serf-1.3.8-static-lib.patch @@ -0,0 +1,49 @@ +respect the active archiver tool instead of using `ar` all the time. +same for `ranlib`. + +also add support for BUILD_STATIC bool for controlling the libserf.a. + +--- a/SConstruct ++++ b/SConstruct +@@ -103,6 +103,9 @@ + BoolVariable('APR_STATIC', + "Enable using a static compiled APR", + False), ++ RawListVariable('AR', "Command name or path of the archiver", None), ++ RawListVariable('RANLIB', "Command name or path of the archiver indexer", None), ++ BoolVariable('BUILD_STATIC', 'Build libserf static library', True), + RawListVariable('CC', "Command name or path of the C compiler", None), + RawListVariable('CFLAGS', "Extra flags for the C compiler (space-separated)", + None), +@@ -193,6 +196,7 @@ if gssapi and os.path.isdir(gssapi): + + debug = env.get('DEBUG', None) + aprstatic = env.get('APR_STATIC', None) ++build_static = env.get('BUILD_STATIC', True) + + Help(opts.GenerateHelpText(env)) + opts.Save(SAVED_CONFIG, env) +@@ -384,7 +388,9 @@ pkgconfig = env.Textfile('serf-%d.pc' % (MAJOR,), + env.get('GSSAPI_LIBS', '')), + }) + +-env.Default(lib_static, lib_shared, pkgconfig) ++env.Default(lib_shared, pkgconfig) ++if build_static: ++ env.Default(lib_static) + + if CALLOUT_OKAY: + conf = Configure(env) +@@ -420,8 +420,10 @@ if sys.platform == 'darwin': + % (target_install_shared_path, + install_shared_path))) + +-env.Alias('install-lib', [install_static, install_shared, +- ]) ++install_libs = [install_shared] ++if build_static: ++ install_libs.append(install_static) ++env.Alias('install-lib', install_libs) + env.Alias('install-inc', env.Install(incdir, HEADER_FILES)) + env.Alias('install-pc', env.Install(os.path.join(libdir, 'pkgconfig'), + pkgconfig)) diff --git a/net-libs/serf/metadata.xml b/net-libs/serf/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>contact@hacktivis.me</email> + <name>Haelwenn (lanodan) Monnier</name> + </maintainer> +</pkgmetadata> diff --git a/net-libs/serf/serf-1.3.9.ebuild b/net-libs/serf/serf-1.3.9.ebuild @@ -0,0 +1,70 @@ +# Copyright 2008-2018 Arfrever Frehtes Taifersar Arahesis and others +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +inherit eutils scons-utils toolchain-funcs flag-o-matic + +DESCRIPTION="HTTP client library" +HOMEPAGE="https://serf.apache.org/" +SRC_URI="mirror://apache/${PN}/${P}.tar.bz2" + +LICENSE="Apache-2.0" +SLOT="1" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" +IUSE="kerberos static-libs libressl" +RESTRICT="test" + +RDEPEND="dev-libs/apr:1= + dev-libs/apr-util:1= + !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) + sys-libs/zlib:0= + kerberos? ( virtual/krb5 )" +DEPEND="${RDEPEND} + >=dev-util/scons-2.3.0" + +src_prepare() { + epatch "${FILESDIR}/${PN}-1.3.8-static-lib.patch" + epatch "${FILESDIR}/${PN}-1.3.8-openssl.patch" + + # https://code.google.com/p/serf/issues/detail?id=133 + sed -e "/env.Append(CCFLAGS=\['-O2'\])/d" -i SConstruct || die + + sed 's/OPENSSL_malloc_init/CRYPTO_malloc_init/' -i test/server/test_sslserver.c buckets/ssl_buckets.c || die + + # need limits.h for PATH_MAX (only when EXTENSIONS is enabled) + [[ ${CHOST} == *-solaris* ]] && append-cppflags -D__EXTENSIONS__ +} + +src_compile() { + myesconsargs=( + PREFIX="${EPREFIX}/usr" + LIBDIR="${EPREFIX}/usr/$(get_libdir)" + # These config scripts are sent through a shell with an empty env + # which breaks the SYSROOT usage in them. Set the vars inline to + # avoid that. + APR="SYSROOT='${SYSROOT}' ${SYSROOT}${EPREFIX}/usr/bin/apr-1-config" + APU="SYSROOT='${SYSROOT}' ${SYSROOT}${EPREFIX}/usr/bin/apu-1-config" + BUILD_STATIC=$(usex static-libs) + AR="$(tc-getAR)" + RANLIB="$(tc-getRANLIB)" + CC="$(tc-getCC)" + CPPFLAGS="${CPPFLAGS}" + CFLAGS="${CFLAGS}" + LINKFLAGS="${LDFLAGS}" + ) + + if use kerberos; then + myesconsargs+=( GSSAPI="${SYSROOT}${EPREFIX}/usr/bin/krb5-config" ) + fi + + escons +} + +src_test() { + escons check +} + +src_install() { + escons install --install-sandbox="${D}" +}