aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2016-07-27 01:19:47 +0200
committerJakub Jirutka <jakub@jirutka.cz>2016-07-27 01:23:11 +0200
commitc116ce8d2debc2207ddb347f4281003ef969cbd7 (patch)
treeceed632f6aef53f21d13d07b2f7e95fea0b71cc0
parent36f053994712af243b50bfb8969e43b7bcc18bb8 (diff)
downloadaports-c116ce8d2debc2207ddb347f4281003ef969cbd7.tar.bz2
aports-c116ce8d2debc2207ddb347f4281003ef969cbd7.tar.xz
testing/lua-lunix: add new aport
https://github.com/wahern/lunix Comprehensive Unix API Module for Lua
-rw-r--r--testing/lua-lunix/APKBUILD51
-rw-r--r--testing/lua-lunix/fix-musl-siglist.patch65
2 files changed, 116 insertions, 0 deletions
diff --git a/testing/lua-lunix/APKBUILD b/testing/lua-lunix/APKBUILD
new file mode 100644
index 0000000000..9b8533fb50
--- /dev/null
+++ b/testing/lua-lunix/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+_luaversions="5.1 5.2 5.3"
+pkgname=lua-lunix
+_pkgname=lunix
+pkgver=20150923
+pkgrel=0
+pkgdesc="Comprehensive Unix API Module for Lua"
+url="https://github.com/wahern/lunix"
+arch="noarch"
+license="MIT"
+depends=""
+makedepends=""
+subpackages=""
+for _v in $_luaversions; do
+ makedepends="$makedepends lua$_v-dev"
+ subpackages="$subpackages lua$_v-$_pkgname:_package"
+done
+source="$pkgname-$pkgver.tar.gz::https://github.com/wahern/lunix/archive/tag-$pkgver.tar.gz
+ fix-musl-siglist.patch"
+builddir="$srcdir/$_pkgname-tag-$pkgver"
+
+build() {
+ cd "$builddir"
+
+ local lver; for lver in $_luaversions; do
+ msg "Building for Lua $lver..."
+ make all$lver || return 1
+ done
+}
+
+package() {
+ mkdir -p "$pkgdir"
+}
+
+_package() {
+ local lver="${subpkgname:3:3}"
+ pkgdesc="$pkgdesc $lver"
+ arch="all"
+ install_if="lua$lver $pkgname=$pkgver-r$pkgrel"
+
+ cd "$builddir"
+ make prefix="/usr" DESTDIR="$subpkgdir" install$lver
+}
+
+md5sums="b7341c5f4a5cf5bb0ac1b9fdc3eb174a lua-lunix-20150923.tar.gz
+479fd7d993059e6ea657c0ac4ed5c510 fix-musl-siglist.patch"
+sha256sums="1c395d1fb46813effd9348708ddd240bd7c39dc68d73216fae184f60fd6d8517 lua-lunix-20150923.tar.gz
+39151eefb5003b8919bb6c78d905019fe2ace51b5b4c40587dcf15f2ab3532c5 fix-musl-siglist.patch"
+sha512sums="cf9fb83ebf99387b79de7afb741f6b8a496911c981be1fd5d51842f2e42c5accc9415e9a026bc17e05b1cade14782f123f6508f8024a8b146e726d26ea8cbdec lua-lunix-20150923.tar.gz
+4e797cb6a6dc353f0082315b3141862ac8c640bc4b21e856c66e23b24322984b1864dd5df1972fd676c47038080d5122c76a76af1dbc1c1f71c068a3a32535b9 fix-musl-siglist.patch"
diff --git a/testing/lua-lunix/fix-musl-siglist.patch b/testing/lua-lunix/fix-musl-siglist.patch
new file mode 100644
index 0000000000..4db73425da
--- /dev/null
+++ b/testing/lua-lunix/fix-musl-siglist.patch
@@ -0,0 +1,65 @@
+From dc5a24c459da3f169fb289e5f72149c63e3b26d0 Mon Sep 17 00:00:00 2001
+From: William Ahern <william+alpine@25thandClement.com>
+Date: Thu, 14 Apr 2016 20:10:15 +0000
+Subject: [PATCH] musl libc has mt-safe strsignal
+
+---
+ src/unix.c | 17 ++++++++++++++---
+ 1 file changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/src/unix.c b/src/unix.c
+index 516be9e..46ca166 100644
+--- a/src/unix.c
++++ b/src/unix.c
+@@ -82,6 +82,9 @@
+
+ #define UCLIBC_PREREQ(M, m, p) (defined __UCLIBC__ && (__UCLIBC_MAJOR__ > M || (__UCLIBC_MAJOR__ == M && __UCLIBC_MINOR__ > m) || (__UCLIBC_MAJOR__ == M && __UCLIBC_MINOR__ == m && __UCLIBC_SUBLEVEL__ >= p)))
+
++/* NB: uClibc defines __GLIBC__ */
++#define MUSL_MAYBE (__linux && !__BIONIC__ && !__GLIBC__ && !__UCLIBC__)
++
+ #define NETBSD_PREREQ(M, m) __NetBSD_Prereq__(M, m, 0)
+
+ #define FREEBSD_PREREQ(M, m) (defined __FreeBSD_version && __FreeBSD_version >= ((M) * 100000) + ((m) * 1000))
+@@ -318,11 +321,11 @@
+ #endif
+
+ #ifndef HAVE_SYS_SIGLIST
+-#define HAVE_SYS_SIGLIST 1
++#define HAVE_SYS_SIGLIST (!MUSL_MAYBE && !__sun && !_AIX)
+ #endif
+
+ #ifndef HAVE_DECL_SYS_SIGLIST
+-#define HAVE_DECL_SYS_SIGLIST 1
++#define HAVE_DECL_SYS_SIGLIST HAVE_SYS_SIGLIST
+ #endif
+
+ #ifndef STRERROR_R_CHAR_P
+@@ -2607,6 +2610,7 @@ static void unixL_random_buf(lua_State *L, void *buf, size_t bufsiz, const unsig
+ * returns NULL on bad signo
+ * Linux/glibc : safe'ish since 1998; TLS buffer for bad signo;
+ * gettext for good signo (is gettext thread-safe?)
++ * Linux/musl : safe; localized; locale structures never deallocated
+ * FreeBSD : safe since 8.1; TLS buffer
+ * NetBSD : not safe as of 6.1; static buffer
+ * OpenBSD : not safe as of 5.6; static buffer
+@@ -2621,11 +2625,18 @@ static void unixL_random_buf(lua_State *L, void *buf, size_t bufsiz, const unsig
+ * has _sys_siglistp instead of sys_siglist. But we use strsignal on those
+ * platforms.
+ */
++#ifndef HAVE_MTSAFE_STRSIGNAL
++#define HAVE_MTSAFE_STRSIGNAL_ \
++ (__sun || GLIBC_PREREQ(0,0) || MUSL_MAYBE || \
++ FREEBSD_PREREQ(8,1) || defined __APPLE__ || defined _AIX)
++#define HAVE_MTSAFE_STRSIGNAL (HAVE_STRSIGNAL && HAVE_MTSAFE_STRSIGNAL_)
++#endif
++
+ static const char *unixL_strsignal(lua_State *L, int signo) {
+ const char *info;
+ unixL_State *U;
+
+-#if HAVE_STRSIGNAL && (USE_STRSIGNAL || __sun || GLIBC_PREREQ(0,0) || FREEBSD_PREREQ(8,1) || defined __APPLE__ || defined _AIX)
++#if HAVE_MTSAFE_STRSIGNAL
+ /* AIX strsignal(3) cannot handle bad signo */
+ if (signo >= 0 && signo < NSIG && (info = strsignal(signo)))
+ return info;