commit: d43064759d03da59c88bbb015306c870a917de40 Author: Michel Ganguin <michel <AT> ganguin <DOT> net> AuthorDate: Thu Jun 21 12:18:02 2018 +0000 Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org> CommitDate: Thu Jun 21 14:04:35 2018 +0000 URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=d4306475
net-libs/libasr: musl support requires alternate random function libasr linkage error on musl because of missing res_randomid(). * Apply Alpine patch to replace res_randomid() by arc4random(). * On gentoo arc4random() is provided by dev-libs/libbsd and requires the -lbsd link flag. (in recent versions of libbsd arc4random has nothing to do with weak RC4 anymore, see man-page for details) net-libs/libasr/Manifest | 1 + ...sing-res_randomid-with-the-more-secure-ar.patch | 66 ++++++++++++++++++++++ net-libs/libasr/libasr-1.0.2.ebuild | 25 ++++++++ net-libs/libasr/metadata.xml | 11 ++++ 4 files changed, 103 insertions(+) diff --git a/net-libs/libasr/Manifest b/net-libs/libasr/Manifest new file mode 100644 index 0000000..5df96c3 --- /dev/null +++ b/net-libs/libasr/Manifest @@ -0,0 +1 @@ +DIST libasr-1.0.2.tar.gz 406428 BLAKE2B 527ad44cc4202dd195d6376cfa25b5d8946f24df9c64b91b3468ee961b6d3228f8a3d38c94299e630df7088ae0bf7b16bdb560521124f2a3ee77edb2e67539d0 SHA512 a4825a30130f70a452044c484871ac37459e1c1e6659c4c38dead7d3abbdaecb3517b7accb46586537975fee033857566fd279ecf97ae87dc80bb6bcdd467d3e diff --git a/net-libs/libasr/files/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch b/net-libs/libasr/files/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch new file mode 100644 index 0000000..7383976 --- /dev/null +++ b/net-libs/libasr/files/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch @@ -0,0 +1,66 @@ +From fb2c3b37d1022d84506ca0815c7c888c4f08e90c Mon Sep 17 00:00:00 2001 +From: xentec <xen...@aix0.eu> +Date: Sat, 11 Feb 2017 14:39:24 +0000 +Subject: [PATCH 2/3] Replace missing res_randomid() with the more secure + arc4random() + +--- + configure.ac | 2 ++ + openbsd-compat/openbsd-compat.h | 2 ++ + src/res_mkquery.c | 2 +- + src/res_send_async.c | 2 +- + 4 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 10aff04..fa0e896 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -264,6 +264,8 @@ AC_ARG_WITH([Werror], + ) + #l325 + ++LIBS="-lcrypto -lbsd $LIBS" ++ + AC_CHECK_HEADERS([ \ + crypt.h \ + dirent.h \ +diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h +index c30591c..9be2e0b 100644 +--- a/openbsd-compat/openbsd-compat.h ++++ b/openbsd-compat/openbsd-compat.h +@@ -123,4 +123,6 @@ int res_hnok(const char *); + int clock_gettime(int, struct timespec *); + #endif + ++unsigned int arc4random(void); ++ + #endif /* _OPENBSD_COMPAT_H */ +diff --git a/src/res_mkquery.c b/src/res_mkquery.c +index 27ed21e..cce4029 100644 +--- a/src/res_mkquery.c ++++ b/src/res_mkquery.c +@@ -57,7 +57,7 @@ res_mkquery(int op, const char *dname, int class, int type, + ac = asr_use_resolver(NULL); + + memset(&h, 0, sizeof h); +- h.id = res_randomid(); ++ h.id = arc4random(); + if (ac->ac_options & RES_RECURSE) + h.flags |= RD_MASK; + h.qdcount = 1; +diff --git a/src/res_send_async.c b/src/res_send_async.c +index a60aa0d..a0f4704 100644 +--- a/src/res_send_async.c ++++ b/src/res_send_async.c +@@ -380,7 +380,7 @@ setup_query(struct asr_query *as, const char *name, const char *dom, + as->as.dns.obuflen = 0; + + memset(&h, 0, sizeof h); +- h.id = res_randomid(); ++ h.id = arc4random(); + if (as->as_ctx->ac_options & RES_RECURSE) + h.flags |= RD_MASK; + h.qdcount = 1; +-- +2.11.1 + diff --git a/net-libs/libasr/libasr-1.0.2.ebuild b/net-libs/libasr/libasr-1.0.2.ebuild new file mode 100644 index 0000000..d4d513c --- /dev/null +++ b/net-libs/libasr/libasr-1.0.2.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils autotools + +DESCRIPTION="Async Resolver Library from OpenBSD/OpenSMTPD" +HOMEPAGE="https://github.com/OpenSMTPD/libasr" +SRC_URI="https://www.opensmtpd.org/archives/${P}.tar.gz" + +LICENSE="ISC BSD BSD-1 BSD-2 BSD-4" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="" + +DEPEND="dev-libs/libbsd" +RDEPEND="${DEPEND}" + +src_prepare(){ + # Patch from https://git.alpinelinux.org/cgit/aports/plain/main/libasr/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch, changed LIBS to incluse -lbsd + epatch "${FILESDIR}/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch" + default + eautoreconf +} diff --git a/net-libs/libasr/metadata.xml b/net-libs/libasr/metadata.xml new file mode 100644 index 0000000..f301cb0 --- /dev/null +++ b/net-libs/libasr/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>zx...@gentoo.org</email> + <name>Jason A. Donenfeld</name> + </maintainer> + <upstream> + <remote-id type="github">OpenSMTPD/libasr</remote-id> + </upstream> +</pkgmetadata>