diff --git a/community/lua-bitop/APKBUILD b/community/lua-bitop/APKBUILD index b7e615fc4a5..86d38dbbb18 100644 --- a/community/lua-bitop/APKBUILD +++ b/community/lua-bitop/APKBUILD @@ -2,12 +2,13 @@ # Maintainer: Natanael Copa pkgname=lua-bitop pkgver=1.0.2 -pkgrel=0 +pkgrel=1 pkgdesc="Bitwise operations on numbers" url="https://bitop.luajit.org/" arch="all" license="MIT" -source="https://bitop.luajit.org/download/LuaBitOp-$pkgver.tar.gz" +source="https://bitop.luajit.org/download/LuaBitOp-$pkgver.tar.gz + lua5.3.patch" builddir="$srcdir/LuaBitOp-$pkgver" _luaversions="5.1 5.2 5.3 5.4" @@ -27,7 +28,14 @@ prepare() { build() { local lver; for lver in $_luaversions; do msg "Building for Lua $lver..." - make -C "$builddir-$lver" LUA="lua$lver" + make -C "$builddir-$lver" LUA="lua$lver" INCLUDES="$(pkg-config --cflags lua$lver)" + done +} + +check() { + local lver; for lver in $_luaversions; do + msg "Test for Lua $lver..." + make -C "$builddir-$lver" LUA="lua$lver" test done } @@ -45,4 +53,7 @@ _subpackage() { install -Dm 644 bit.so "$subpkgdir/usr/lib/lua/$lver/bit.so" } -sha512sums="a652050ea5c6fbeb8a28b05e2bc4a3550c854cc45f7f42c8c1b0a81f5b76773cdf061e6a839cdb339614118169e578b6e3efa5a3efbe59a2f01874b2fa2b4f2e LuaBitOp-1.0.2.tar.gz" +sha512sums=" +a652050ea5c6fbeb8a28b05e2bc4a3550c854cc45f7f42c8c1b0a81f5b76773cdf061e6a839cdb339614118169e578b6e3efa5a3efbe59a2f01874b2fa2b4f2e LuaBitOp-1.0.2.tar.gz +5bd70b9f619cdddc4a930cfe0c091a3a016ebea2bf197d338435b945900b8480f5c57551aeee6b38a11388172eecd9e48a1b335c437414a076f0b93a0f01307f lua5.3.patch +" diff --git a/community/lua-bitop/lua5.3.patch b/community/lua-bitop/lua5.3.patch new file mode 100644 index 00000000000..ed4a93b2491 --- /dev/null +++ b/community/lua-bitop/lua5.3.patch @@ -0,0 +1,84 @@ +Patch from: https://github.com/LuaJIT/LuaJIT/issues/384 + +diff -ur LuaBitOp-1.0.2/bit.c LuaBitOp-1.0.3/bit.c +--- LuaBitOp-1.0.2/bit.c 2012-05-08 15:15:00.000000000 -0400 ++++ LuaBitOp-1.0.3/bit.c 2018-01-20 21:41:00.037749052 -0500 +@@ -26,7 +26,7 @@ + ** [ MIT license: http://www.opensource.org/licenses/mit-license.php ] + */ + +-#define LUA_BITOP_VERSION "1.0.2" ++#define LUA_BITOP_VERSION "1.0.3" + + #define LUA_LIB + #include "lua.h" +@@ -46,7 +46,7 @@ + + typedef union { + lua_Number n; +-#ifdef LUA_NUMBER_DOUBLE ++#if defined(LUA_NUMBER_DOUBLE) || defined(LUA_FLOAT_DOUBLE) + uint64_t b; + #else + UBits b; +@@ -63,24 +63,25 @@ + #else + bn.n = luaL_checknumber(L, idx); + #endif +-#if defined(LUA_NUMBER_DOUBLE) ++#if defined(LUA_NUMBER_DOUBLE) || defined(LUA_FLOAT_DOUBLE) + bn.n += 6755399441055744.0; /* 2^52+2^51 */ + #ifdef SWAPPED_DOUBLE + b = (UBits)(bn.b >> 32); + #else + b = (UBits)bn.b; + #endif +-#elif defined(LUA_NUMBER_INT) || defined(LUA_NUMBER_LONG) || \ +- defined(LUA_NUMBER_LONGLONG) || defined(LUA_NUMBER_LONG_LONG) || \ +- defined(LUA_NUMBER_LLONG) ++#elif defined(LUA_NUMBER_INT) || defined(LUA_INT_INT) || \ ++ defined(LUA_NUMBER_LONG) || defined(LUA_INT_LONG) || \ ++ defined(LUA_NUMBER_LONGLONG) || defined(LUA_INT_LONGLONG) || \ ++ defined(LUA_NUMBER_LONG_LONG) || defined(LUA_NUMBER_LLONG) + if (sizeof(UBits) == sizeof(lua_Number)) + b = bn.b; + else + b = (UBits)(SBits)bn.n; +-#elif defined(LUA_NUMBER_FLOAT) ++#elif defined(LUA_NUMBER_FLOAT) || defined(LUA_FLOAT_FLOAT) + #error "A 'float' lua_Number type is incompatible with this library" + #else +-#error "Unknown number type, check LUA_NUMBER_* in luaconf.h" ++#error "Unknown number type, check LUA_NUMBER_*, LUA_FLOAT_*, LUA_INT_* in luaconf.h" + #endif + #if LUA_VERSION_NUM < 502 + if (b == 0 && !lua_isnumber(L, idx)) { +@@ -91,7 +92,11 @@ + } + + /* Return bit type. */ ++#if LUA_VERSION_NUM < 503 + #define BRET(b) lua_pushnumber(L, (lua_Number)(SBits)(b)); return 1; ++#else ++#define BRET(b) lua_pushinteger(L, (lua_Integer)(SBits)(b)); return 1; ++#endif + + static int bit_tobit(lua_State *L) { BRET(barg(L, 1)) } + static int bit_bnot(lua_State *L) { BRET(~barg(L, 1)) } +@@ -163,11 +168,15 @@ + LUALIB_API int luaopen_bit(lua_State *L) + { + UBits b; ++#if LUA_VERSION_NUM < 503 + lua_pushnumber(L, (lua_Number)1437217655L); ++#else ++ lua_pushinteger(L, (lua_Integer)1437217655L); ++#endif + b = barg(L, -1); + if (b != (UBits)1437217655L || BAD_SAR) { /* Perform a simple self-test. */ + const char *msg = "compiled with incompatible luaconf.h"; +-#ifdef LUA_NUMBER_DOUBLE ++#if defined(LUA_NUMBER_DOUBLE) || defined(LUA_FLOAT_DOUBLE) + #ifdef _WIN32 + if (b == (UBits)1610612736L) + msg = "use D3DCREATE_FPU_PRESERVE with DirectX";