SHA256
10
0
forked from pool/lua-macros

1 Commits

Author SHA256 Message Date
adf544bb37 WIP fix: make macros.lua work with RPM 4.14.3 on Leap 15.5 2025-10-18 21:30:42 +02:00

View File

@@ -6,12 +6,12 @@ local f = io.popen("lua -e 'print(_VERSION)'")
local output = f:read("*a") local output = f:read("*a")
f:close() f:close()
local ver = output:match("Lua (%d%.%d)") local ver = output:match("Lua (%d%.%d)")
print(ver) print(ver:gsub("^%s*(.-)%s*$", "%1"))
} }
%lua_version_nodots %{lua: %lua_version_nodots %{lua:
local ver = rpm.expand("%{lua_version}") local ver = rpm.expand("%{lua_version}")
local nodots = ver:gsub("%.", "") local nodots = ver:gsub("%.", "")
print(nodots) print(nodots:gsub("^%s*(.-)%s*$", "%1"))
} }
# compiled modules should go here # compiled modules should go here
%lua_archdir %{lua: %lua_archdir %{lua:
@@ -64,30 +64,47 @@ print(result)
} }
# Lua default version # Lua default version
# This REQUIRES macro %{mod_name} to be defined. # This REQUIRES macro %{mod_name} to be defined.
# -e: Exclude lua prefix # Optionally you can define macro `lua_provides_type`, which can
# -n: Specify name # have two different values:
%lua_provides(en:) %{lua: # 'exclude-prefix' which excludes lua prefix, or
# anything else which is used as the provided symbol
%lua_provides %{lua:
local mod_name = rpm.expand("%{?mod_name}") local mod_name = rpm.expand("%{?mod_name}")
if mod_name == "" then if mod_name == "" then
print("-- Error: %{mod_name} is not defined!") print("-- Error: %{mod_name} is not defined!")
return return
end end
print([[
%if "%{lua_version_nodots}" == "%{lua_version_default_nodots}" local current_ver = rpm.expand("%{lua_version_nodots}"):gsub("^%s*(.-)%s*$", "%1")
%if 0%{?-n:1} local default_ver = rpm.expand("%{lua_version_default_nodots}"):gsub("^%s*(.-)%s*$", "%1")
Provides: %{-n*} = %{version}-%{release}
Obsoletes: %{-n*} < %{version}-%{release} local output = ""
%else
%if 0%{?-e:1} -- Check if we are building for the default Lua version
Provides: %{mod_name} = %{version}-%{release} if current_ver == default_ver then
Obsoletes: %{mod_name} < %{version}-%{release}
%else local package_type = rpm.expand("%{?lua_provides_type}"):gsub("^%s*(.-)%s*$", "%1")
Provides: lua-%{mod_name} = %{version}-%{release} local package_name = mod_name
Obsoletes: lua-%{mod_name} < %{version}-%{release}
%endif -- Check for type defined externally (e.g., via --define 'lua_provides_type package-name')
%endif if package_type == "exclude-prefix" then
%endif -- Use name without "lua-" prefix
]]) package_name = mod_name
elseif package_type ~= "" then
-- Use custom name defined by package_type
package_name = package_type
else
-- Default: Use 'lua-' prefix
package_name = "lua-" .. mod_name
end
local version = rpm.expand("%{version}")
local release = rpm.expand("%{release}")
output = "Provides: " .. package_name .. " = " .. version .. "-" .. release .. " Obsoletes: " .. package_name .. " < " .. version .. "-" .. release
end
print(output)
} }
# LuaRocks # LuaRocks