SHA256
10
0
forked from pool/lua-macros

3 Commits

6 changed files with 51 additions and 97 deletions

1
.gitattributes vendored
View File

@@ -21,4 +21,3 @@
*.xz filter=lfs diff=lfs merge=lfs -text *.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text
*.changes merge=merge-changes

8
.gitignore vendored
View File

@@ -1,9 +1 @@
.osc .osc
_scmsync.obsinfo
_buildconfig-*
_buildinfo-*.xml
lua-macros-*-build/
*.obscpio
*.osc
_build.*
.pbuild

5
_scmsync.obsinfo Normal file
View File

@@ -0,0 +1,5 @@
mtime: 1760224634
commit: 984b4bf4f2aada9069ea10fd24cedbfd7304d1b1bc74d792201a56543a747683
url: https://src.opensuse.org/lua/lua-macros.git
revision: 984b4bf4f2aada9069ea10fd24cedbfd7304d1b1bc74d792201a56543a747683
projectscmsync: https://src.opensuse.org/lua/_ObsPrj.git

3
build.specials.obscpio Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6f0dab0a704216725773db8af2af8e8f5bcdd83271b6ca6bb810062d99a0be44
size 356

View File

@@ -1,18 +1,3 @@
-------------------------------------------------------------------
Tue Oct 14 23:16:09 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Fix %luarocks_* macros.
-------------------------------------------------------------------
Mon Oct 13 20:24:01 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Fix %%lua_provides.
-------------------------------------------------------------------
Mon Oct 13 17:20:42 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Quote %%lua_archdir macro.
------------------------------------------------------------------- -------------------------------------------------------------------
Sat Oct 11 16:45:06 UTC 2025 - Matej Cepl <mcepl@cepl.eu> Sat Oct 11 16:45:06 UTC 2025 - Matej Cepl <mcepl@cepl.eu>

View File

@@ -6,43 +6,38 @@ 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:gsub("^%s*(.-)%s*$", "%1")) print(ver)
} }
%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:gsub("^%s*(.-)%s*$", "%1")) print(nodots)
} }
# compiled modules should go here # compiled modules should go here
%lua_archdir %{lua: %lua_archdir %(pkgconf --variable=INSTALL_CMOD lua)
local handle = io.popen("pkgconf --variable=INSTALL_CMOD lua 2>/dev/null")
local result = handle:read("*a")
handle:close()
result = result:gsub("^%s*(.-)%s*$", "%1")
print(result)
}
# pure Lua modules should go here # pure Lua modules should go here
%lua_noarchdir %{lua: %lua_noarchdir %{lua:
local output = "" local output = ""
local f = io.popen("pkgconf --variable=INSTALL_LMOD lua 2>/dev/null") local f = io.popen("pkgconf --variable=INSTALL_LMOD lua")
if f ~= nil then if f ~= nil then
output = f:read("*a"):gsub("^%s*(.-)%s*$", "%1") output = f:read("*a"):gsub("^%s*(.-)%s*$", "%1")
f:close() f:close()
end end
if output:len() > 0 then if output:len() > 0 then
print(output) print(output)
return return
end end
print(rpm.expand("%{_datadir}/lua/%{lua_version}")) print(rpm.expand("%{_datadir}/lua/%{lua_version}"))
} }
# lua includes folder # lua includes folder
%lua_incdir %{lua: %lua_incdir %(pkgconf --variable=includedir lua)
local handle = io.popen("pkgconf --variable=includedir lua 2>/dev/null")
local result = handle:read("*a")
handle:close()
result = result:gsub("^%s*(.-)%s*$", "%1")
print(result)
}
%lua_version_default %{lua: %lua_version_default %{lua:
local result = 5.4 local result = 5.4
local ver = rpm.expand("%{?suse_version}") local ver = rpm.expand("%{?suse_version}")
@@ -50,71 +45,46 @@ if #ver > 0 then
ver = tonumber(ver) ver = tonumber(ver)
if ver < 1500 then if ver < 1500 then
result = 5.1 result = 5.1
elseif ver < 1600 then elseif ver == 1500 then
result = 5.3 result = 5.3
end end
end end
print(result) print(result)
} }
# Define a conditional that evaluates true when building for the default Lua version %lua_version_default_nodots %(lua -e 'print((string.gsub("%{lua_version_default}", "%.", "")))')
%lua_version_default_nodots %{lua:
local ver = rpm.expand("%{lua_version_default}") %ifluadefault \
local nodots = ver:gsub("%.", "") %if %{lua_version_nodots} == %{lua_version_default_nodots} \
print(nodots) %{nil}
}
# Lua default version # Lua default version
# This REQUIRES macro %{mod_name} to be defined. # This REQUIRES macro %{mod_name} to be defined.
# Optionally you can define macro `lua_provides_type`, which can # -e: Exclude lua prefix
# have two different values: # -n: Specify name
# 'exclude-prefix' which excludes lua prefix, or %lua_provides(en:) \
# anything else which is used as the provided symbol %ifluadefault \
%lua_provides %{lua: %if 0%{?-n:1} \
local mod_name = rpm.expand("%{?mod_name}") Provides: %{-n*} = %{version}-%{release} \
if mod_name == "" then Obsoletes: %{-n*} < %{version}-%{release} \
print("-- Error: %{mod_name} is not defined!") %else \
return %if 0%{?-e:1} \
end Provides: %{mod_name} = %{version}-%{release} \
Obsoletes: %{mod_name} < %{version}-%{release} \
local current_ver = rpm.expand("%{lua_version_nodots}"):gsub("^%s*(.-)%s*$", "%1") %else \
local default_ver = rpm.expand("%{lua_version_default_nodots}"):gsub("^%s*(.-)%s*$", "%1") Provides: lua-%{mod_name} = %{version}-%{release} \
Obsoletes: lua-%{mod_name} < %{version}-%{release} \
local output = "" %endif \
%endif \
-- Check if we are building for the default Lua version %endif \
if current_ver == default_ver then %{nil}
local package_type = rpm.expand("%{?lua_provides_type}"):gsub("^%s*(.-)%s*$", "%1")
local package_name = mod_name
-- Check for type defined externally (e.g., via --define 'lua_provides_type package-name')
if package_type == "exclude-prefix" then
-- 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
%luarocks_build \ %luarocks_build \
luarocks --lua-version "%{lua_version}" make --deps-mode none --pack-binary-rock luarocks --lua-version "%{lua_version}" \\\
make --pack-binary-rock --deps-mode none
%luarocks_treedir %{_prefix}/lib/luarocks/rocks-%{lua_version}
%luarocks_install \ %luarocks_install \
/bin/sh -c 'luarocks --lua-version="%{lua_version}" --tree="%{buildroot}%{_prefix}" install --deps-mode=none --no-manifest "$@" && \ luarocks --lua-version="%{lua_version}" --tree="%{buildroot}%{_prefix}" \\\
source_dir="%{buildroot}%{luarocks_treedir}/%{mod_name}/%{rock_version}" && \ install --deps-mode=none --no-manifest
[ -d "${source_dir}" ] && [ "$(ls -A "${source_dir}" | wc -l)" -gt 0 ] && \
mv -v "${source_dir}" __rocktree' -- %luarocks_treedir %{_prefix}/lib/luarocks/rocks-%{lua_version}