hack this ancient beastie to work with lua 5.4, maintainer, please update this to the current upstream release at your earliest convenience

This commit is contained in:
Tom Callaway 2020-06-30 00:24:29 -04:00
parent d26cf6065b
commit 54024c2ba9
4 changed files with 222 additions and 2 deletions

54
bit32.lua Normal file
View File

@ -0,0 +1,54 @@
local bit32 = {}
function bit32.bnot (a)
return ~a & 0xFFFFFFFF
end
function bit32.band (x, y, z, ...)
if not z then
return ((x or -1) & (y or -1)) & 0xFFFFFFFF
else
local arg = {...}
local res = x & y & z
for i = 1, #arg do res = res & arg[i] end
return res & 0xFFFFFFFF
end
end
function bit32.bor (x, y, z, ...)
if not z then
return ((x or 0) | (y or 0)) & 0xFFFFFFFF
else
local arg = {...}
local res = x | y | z
for i = 1, #arg do res = res | arg[i] end
return res & 0xFFFFFFFF
end
end
return bit32
--[[
*****************************************************************************
* Copyright (C) 1994-2016 Lua.org, PUC-Rio.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*****************************************************************************
]]

View File

@ -0,0 +1,12 @@
diff -up luaposix-release-v33.3.1/ext/include/_helpers.c.54 luaposix-release-v33.3.1/ext/include/_helpers.c
--- luaposix-release-v33.3.1/ext/include/_helpers.c.54 2020-06-29 23:52:30.433291702 -0400
+++ luaposix-release-v33.3.1/ext/include/_helpers.c 2020-06-29 23:52:53.714914130 -0400
@@ -67,7 +67,7 @@
# endif
#endif
-#if LUA_VERSION_NUM == 502 || LUA_VERSION_NUM == 503
+#if LUA_VERSION_NUM == 502 || LUA_VERSION_NUM == 503 || LUA_VERSION_NUM == 504
# define lua_objlen lua_rawlen
# define lua_strlen lua_rawlen
# define luaL_openlib(L,n,l,nup) luaL_setfuncs((L),(l),(nup))

138
lua-posix-local-bit32.patch Normal file
View File

@ -0,0 +1,138 @@
diff -up luaposix-release-v33.3.1/lib/posix/compat.lua.pbit32 luaposix-release-v33.3.1/lib/posix/compat.lua
--- luaposix-release-v33.3.1/lib/posix/compat.lua.pbit32 2020-06-30 00:18:20.418176545 -0400
+++ luaposix-release-v33.3.1/lib/posix/compat.lua 2020-06-30 00:18:54.540622774 -0400
@@ -11,7 +11,7 @@
]]
local _argcheck = require "posix._argcheck"
-local bit = require "bit32"
+local bit = require "posix.bit32"
local argerror, argtypeerror, badoption =
_argcheck.argerror, _argcheck.argtypeerror, _argcheck.badoption
@@ -137,7 +137,7 @@ local M = {
-- @see chmod(2)
-- @usage P.chmod ('bin/dof', '+x')
-local bit = require "bit32"
+local bit = require "posix.bit32"
local st = require "posix.sys.stat"
local _chmod, stat = st.chmod, st.stat
@@ -179,7 +179,7 @@ end
-- @usage
-- fd = P.creat ("data", "rw-r-----")
-local bit = require "bit32"
+local bit = require "posix.bit32"
local fcntl = require "posix.fcntl"
local st = require "posix.sys.stat"
@@ -218,7 +218,7 @@ end
-- @treturn[2] string error message
-- @treturn[2] int errnum
-local bit = require "bit32"
+local bit = require "posix.bit32"
local st = require "posix.sys.stat"
local _mkdir = st.mkdir
@@ -248,7 +248,7 @@ end
-- @treturn[2] string error message
-- @treturn[2] int errnum
-local bit = require "bit32"
+local bit = require "posix.bit32"
local st = require "posix.sys.stat"
local _mkfifo = st.mkfifo
@@ -281,7 +281,7 @@ end
-- @treturn[2] int errnum
-- @see msgget(2)
-local bit = require "bit32"
+local bit = require "posix.bit32"
local msg = require "posix.sys.msg"
local st = require "posix.sys.stat"
@@ -332,7 +332,7 @@ end
-- @usage
-- fd = P.open ("data", bit.bor (P.O_CREAT, P.O_RDWR), "rw-r-----")
-local bit = require "bit32"
+local bit = require "posix.bit32"
local fcntl = require "posix.fcntl"
local _open, O_CREAT = fcntl.open, fcntl.O_CREAT
@@ -376,7 +376,7 @@ end
-- @treturn[2] string error message
-- @treturn[2] int errnum
-local bit = require "bit32"
+local bit = require "posix.bit32"
local log = require "posix.syslog"
local bor = bit.bor
diff -up luaposix-release-v33.3.1/lib/posix/deprecated.lua.pbit32 luaposix-release-v33.3.1/lib/posix/deprecated.lua
--- luaposix-release-v33.3.1/lib/posix/deprecated.lua.pbit32 2020-06-30 00:19:01.594508297 -0400
+++ luaposix-release-v33.3.1/lib/posix/deprecated.lua 2020-06-30 00:19:16.466266944 -0400
@@ -11,7 +11,7 @@
]]
local _argcheck = require "posix._argcheck"
-local bit = require "bit32"
+local bit = require "posix.bit32"
-- Lua 5.3 has table.unpack but not _G.unpack
-- Lua 5.2 has table.unpack and _G.unpack
@@ -748,7 +748,7 @@ end
-- `LOG_LOCAL0` through `LOG_LOCAL7`
-- @see syslog(3)
-local bit = require "bit32"
+local bit = require "posix.bit32"
local log = require "posix.syslog"
local bor = bit.bor
diff -up luaposix-release-v33.3.1/lib/posix/init.lua.pbit32 luaposix-release-v33.3.1/lib/posix/init.lua
--- luaposix-release-v33.3.1/lib/posix/init.lua.pbit32 2020-06-30 00:17:53.219617951 -0400
+++ luaposix-release-v33.3.1/lib/posix/init.lua 2020-06-30 00:18:10.467338039 -0400
@@ -14,7 +14,7 @@
@module posix
]]
-local bit = require "bit32"
+local bit = require "posix.bit32"
local M = {}
@@ -151,7 +151,7 @@ end
-- @return[2] nil
-- @treturn[2] string error message
-local bit = require "bit32"
+local bit = require "posix.bit32"
local fcntl = require "posix.fcntl"
local stdlib = require "posix.stdlib"
local unistd = require "posix.unistd"
diff -up luaposix-release-v33.3.1/lib/posix.lua.in.pbit32 luaposix-release-v33.3.1/lib/posix.lua.in
--- luaposix-release-v33.3.1/lib/posix.lua.in.pbit32 2020-06-30 00:19:28.732067880 -0400
+++ luaposix-release-v33.3.1/lib/posix.lua.in 2020-06-30 00:19:40.803871968 -0400
@@ -14,7 +14,7 @@
@module posix
]]
-local bit = require "bit32"
+local bit = require "posix.bit32"
local M = {}
@@ -151,7 +151,7 @@ end
-- @return[2] nil
-- @treturn[2] string error message
-local bit = require "bit32"
+local bit = require "posix.bit32"
local fcntl = require "posix.fcntl"
local stdlib = require "posix.stdlib"
local unistd = require "posix.unistd"

View File

@ -6,11 +6,19 @@
Name: lua-posix
Version: 33.3.1
Release: 16%{?dist}
Release: 17%{?dist}
Summary: A POSIX library for Lua
License: MIT
URL: http://luaforge.net/projects/luaposix/
Source0: https://github.com/luaposix/luaposix/archive/release-v%{version}.tar.gz
# bit32 is gone in lua 5.4
# this file is a hack to add functions that use the lua native bitwise operators
# taken from lua-5.4.0-tests/bitwise.lua
Source1: bit32.lua
# This patch tells lua-posix to use the local bit32
Patch0: lua-posix-local-bit32.patch
# Use the same tricks that the helpers use for 5.2/5.3
Patch1: lua-posix-helpers-5.4.patch
BuildRequires: gcc
BuildRequires: lua-devel
BuildRequires: ncurses-devel
@ -24,7 +32,11 @@ to Lua programs.
%prep
%setup -q -n luaposix-release-v%{version}
%patch0 -p1 -b .pbit32
%patch1 -p1 -b .54
# allow lua 5.4
sed -i 's|5.4|5.5|g' configure
%build
%configure --libdir=%{lua_libdir} --datadir=/%{lua_pkgdir}
@ -33,7 +45,7 @@ make V=1 %{?_smp_mflags}
%install
make install DESTDIR=$RPM_BUILD_ROOT
cp -a %{SOURCE1} $RPM_BUILD_ROOT%{lua_pkgdir}/posix/
%check
make V=1 check
@ -49,6 +61,10 @@ make V=1 check
%changelog
* Mon Jun 29 2020 Tom Callaway <spot@fedoraproject.org> - 33.3.1-17
- hack this ancient beastie to work with lua 5.4
- maintainer, please update this to the current upstream release at your earliest convenience
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 33.3.1-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild