aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2016-01-21 22:50:19 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2016-01-21 22:54:15 +0000
commitfb54758165a8e19a5cb36728e733334b0f087d8c (patch)
tree3d05cb94dfe886f8d1211796d899a81b69e01a6b
parent05179150230fe589495b06db4242d73e4236a373 (diff)
downloadaports-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/APKBUILD52
-rw-r--r--testing/asio/fix-strerror_r.patch42
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__)
+ }