diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2016-01-21 22:50:19 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2016-01-21 22:54:15 +0000 |
commit | fb54758165a8e19a5cb36728e733334b0f087d8c (patch) | |
tree | 3d05cb94dfe886f8d1211796d899a81b69e01a6b | |
parent | 05179150230fe589495b06db4242d73e4236a373 (diff) | |
download | aports-fb54758165a8e19a5cb36728e733334b0f087d8c.tar.bz2 aports-fb54758165a8e19a5cb36728e733334b0f087d8c.tar.xz |
testing/asio: new aport
A cross-platform C++ library for network programming
https://think-async.com
-rw-r--r-- | testing/asio/APKBUILD | 52 | ||||
-rw-r--r-- | testing/asio/fix-strerror_r.patch | 42 |
2 files changed, 94 insertions, 0 deletions
diff --git a/testing/asio/APKBUILD b/testing/asio/APKBUILD new file mode 100644 index 0000000000..4e13fe3357 --- /dev/null +++ b/testing/asio/APKBUILD @@ -0,0 +1,52 @@ +# Maintainer: Natanael Copa <ncopa@alpinelinux.org> +pkgname=asio +pkgver=1.10.6 +_ver=${pkgver//./-} +pkgrel=0 +pkgdesc="A cross-platform C++ library for network programming" +url="https://think-async.com" +arch="all" +license="Boost" +depends="" +depends_dev="boost-dev openssl-dev" +makedepends="$depends_dev" +install="" +subpackages="$pkgname-dev" +source="http://downloads.sourceforge.net/project/asio/asio/${pkgver}%20%28Stable%29/asio-$pkgver.tar.bz2 + fix-strerror_r.patch + " + +_builddir="$srcdir"/asio-$pkgver +prepare() { + local i + cd "$_builddir" + update_config_sub || return 1 + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done +} + +build() { + cd "$_builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --mandir=/usr/share/man \ + || return 1 + make || return 1 +} + +package() { + cd "$_builddir" + make DESTDIR="$pkgdir" install || return 1 +} + +md5sums="85d014a356a6e004cd30ccd4c9b6a5c2 asio-1.10.6.tar.bz2 +dfc0d5d1c14ca0a247d835c944e400a6 fix-strerror_r.patch" +sha256sums="e0d71c40a7b1f6c1334008fb279e7361b32a063e020efd21e40d9d8ff037195e asio-1.10.6.tar.bz2 +0b3eb6d74c9dd11e08368da0f9e09446e2383b5fc840e630581fef3672db95ac fix-strerror_r.patch" +sha512sums="7146e75a378de57daab88e7ba509ae01367ffa0d7c4c90481e221977a6b9f4fd80e9caac5c6b4c27bc7652e44cd210e2c6cabf5681d7c62747df14bbc25e8c23 asio-1.10.6.tar.bz2 +a023e305a9efa6b93489374dfe9881c447d748a8d48ff803e0ac7ff1be618460b57de024e79da8c08dab4bcd214cbf2c3991d963eef678ca8dbd48b3c8933a70 fix-strerror_r.patch" diff --git a/testing/asio/fix-strerror_r.patch b/testing/asio/fix-strerror_r.patch new file mode 100644 index 0000000000..f05a519c81 --- /dev/null +++ b/testing/asio/fix-strerror_r.patch @@ -0,0 +1,42 @@ +From 52d862c4e8af60a31f0067e1070b8625e805cdc3 Mon Sep 17 00:00:00 2001 +From: Natanael Copa <ncopa@alpinelinux.org> +Date: Thu, 21 Jan 2016 23:37:32 +0100 +Subject: [PATCH] Fix use of strerror_r() + +Don't try keep track of all platforms which follows posix standard. +Instead, make the platform which don't follow standard to an exception +and fall back to standard implementation for everything else. + +This fixes building with musl libc. + +Fixes #94 +--- + asio/include/asio/impl/error_code.ipp | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git a/asio/include/asio/impl/error_code.ipp b/asio/include/asio/impl/error_code.ipp +index b996773..3a1cff1 100644 +--- a/include/asio/impl/error_code.ipp ++++ b/include/asio/impl/error_code.ipp +@@ -98,17 +98,14 @@ public: + #if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__) + using namespace std; + return strerror(value); +-#elif defined(__MACH__) && defined(__APPLE__) \ +- || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \ +- || defined(_AIX) || defined(__hpux) || defined(__osf__) \ +- || defined(__ANDROID__) ++#elif defined(__GLIBC__) && defined(_GNU_SOURCE) ++ char buf[256] = ""; ++ return strerror_r(value, buf, sizeof(buf)); ++#else + char buf[256] = ""; + using namespace std; + strerror_r(value, buf, sizeof(buf)); + return buf; +-#else +- char buf[256] = ""; +- return strerror_r(value, buf, sizeof(buf)); + #endif + #endif // defined(ASIO_WINDOWS_DESKTOP) || defined(__CYGWIN__) + } |