commit: 82ec52025ddd5471fbe3c8c0e0fa2a5524f43164
Author: callmetango <callmetango <AT> users <DOT> noreply <DOT> github
<DOT> com>
AuthorDate: Sat May 18 09:00:35 2019 +0000
Commit: Stefan Strogin <steils <AT> gentoo <DOT> org>
CommitDate: Mon May 20 16:28:30 2019 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=82ec5202
net-libs/serf: fix OPENSSL_malloc_init not found
* added libressl patch of Alpine Linux to fix 'OPENSSL_malloc_init not found'
in subversion
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
net-libs/serf/Manifest | 1 +
net-libs/serf/files/serf-1.3.8-openssl.patch | 28 ++++++++++
net-libs/serf/files/serf-1.3.8-static-lib.patch | 49 +++++++++++++++++
net-libs/serf/files/serf-1.3.9-libressl.patch | 11 ++++
net-libs/serf/metadata.xml | 11 ++++
net-libs/serf/serf-1.3.9.ebuild | 72 +++++++++++++++++++++++++
6 files changed, 172 insertions(+)
diff --git a/net-libs/serf/Manifest b/net-libs/serf/Manifest
new file mode 100644
index 0000000..28e866e
--- /dev/null
+++ 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
new file mode 100644
index 0000000..4cc3719
--- /dev/null
+++ 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
new file mode 100644
index 0000000..1538328
--- /dev/null
+++ 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/files/serf-1.3.9-libressl.patch
b/net-libs/serf/files/serf-1.3.9-libressl.patch
new file mode 100644
index 0000000..7a89cea
--- /dev/null
+++ b/net-libs/serf/files/serf-1.3.9-libressl.patch
@@ -0,0 +1,11 @@
+--- ./buckets/ssl_buckets.c.orig
++++ ./buckets/ssl_buckets.c
+@@ -52,7 +52,7 @@
+ #define APR_ARRAY_PUSH(ary,type) (*((type *)apr_array_push(ary)))
+ #endif
+
+-#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+ #define USE_OPENSSL_1_1_API
+ #endif
+
diff --git a/net-libs/serf/metadata.xml b/net-libs/serf/metadata.xml
new file mode 100644
index 0000000..9e50e18
--- /dev/null
+++ b/net-libs/serf/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>[email protected]</email>
+ </maintainer>
+ <maintainer type="project">
+ <email>[email protected]</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/net-libs/serf/serf-1.3.9.ebuild b/net-libs/serf/serf-1.3.9.ebuild
new file mode 100644
index 0000000..6e00bb2
--- /dev/null
+++ b/net-libs/serf/serf-1.3.9.ebuild
@@ -0,0 +1,72 @@
+# 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"
+
+ if use libressl; then
+ epatch "${FILESDIR}/${PN}-1.3.9-libressl.patch"
+ fi
+
+ # https://code.google.com/p/serf/issues/detail?id=133
+ sed -e "/env.Append(CCFLAGS=\['-O2'\])/d" -i SConstruct
+
+ # 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}"
+}