Compare commits
	
		
			14 Commits
		
	
	
		
	
	| Author | SHA256 | Date | |
|---|---|---|---|
| fdd5092d42 | |||
| d1f0f1035b | |||
| 60b20c88fb | |||
| 6e7d7d058f | |||
| 8ee4d34fad | |||
| c1d442702b | |||
| d4f21b0c0c | |||
| 984b4bf4f2 | |||
| 21cfcf02e2 | |||
| 22fe4289a4 | |||
| db9766d6bd | |||
| df6ced835e | |||
| efd19cb701 | |||
| 91f3720965 | 
							
								
								
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							| @@ -21,3 +21,4 @@ | ||||
| *.xz filter=lfs diff=lfs merge=lfs -text | ||||
| *.zip filter=lfs diff=lfs merge=lfs -text | ||||
| *.zst filter=lfs diff=lfs merge=lfs -text | ||||
| *.changes merge=merge-changes | ||||
|   | ||||
							
								
								
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1 +1,9 @@ | ||||
| .osc | ||||
| _scmsync.obsinfo | ||||
| _buildconfig-* | ||||
| _buildinfo-*.xml | ||||
| lua-macros-*-build/ | ||||
| *.obscpio | ||||
| *.osc | ||||
| _build.* | ||||
| .pbuild | ||||
|   | ||||
							
								
								
									
										18
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| all: | ||||
| 	mkdir -p build && cd build/ \ | ||||
| 	&& cmake .. \ | ||||
| 		'-GUnix Makefiles' \ | ||||
| 		-DCMAKE_INSTALL_PREFIX:PATH=/usr \ | ||||
| 		-DCMAKE_BUILD_TYPE=RelWithDebInfo '-DCMAKE_C_FLAGS=-O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g' \ | ||||
| 		'-DCMAKE_EXE_LINKER_FLAGS=-flto=auto -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now' \ | ||||
| 		'-DCMAKE_MODULE_LINKER_FLAGS=-flto=auto -Wl,--as-needed' \ | ||||
| 		'-DCMAKE_SHARED_LINKER_FLAGS=-flto=auto -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now' \ | ||||
| 		-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ | ||||
| 		-DBUILD_SHARED_LIBS:BOOL=ON \ | ||||
| 		-DCMAKE_COLOR_MAKEFILE:BOOL=OFF \ | ||||
| 		-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ | ||||
| 		-DLUA_INCLUDE_DIR:PATH=$(shell pkgconf --variable=includedir lua) \ | ||||
| 	&& make | ||||
|  | ||||
| clean: | ||||
| 	rm -rf build CMakeCache.txt | ||||
							
								
								
									
										15
									
								
								install-lua-rock.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								install-lua-rock.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| #!/bin/bash | ||||
| set -ex | ||||
|  | ||||
| # 1. %{lua_version} | ||||
| # 2. %{buildroot}%{_prefix} | ||||
| # 3. %{buildroot}%{luarocks_treedir}/%{mod_name} | ||||
|  | ||||
| SOURCE_DIR="$3" | ||||
| luarocks --lua-version="$1" --tree="$2" install --deps-mode=none --no-manifest "${*:$#}" | ||||
|  | ||||
| if  [ -d "${SOURCE_DIR}" ] && [ "$(find "${SOURCE_DIR}" -type f | wc -l)" -gt 0 ] | ||||
| then | ||||
|   mkdir -p __rocktree | ||||
|   mv -v "${SOURCE_DIR}"/*/* __rocktree | ||||
| fi | ||||
| @@ -1,3 +1,44 @@ | ||||
| ------------------------------------------------------------------- | ||||
| Mon Oct 20 21:30:36 UTC 2025 - Matej Cepl <mcepl@cepl.eu> | ||||
|  | ||||
| - Rewrite %luarocks_install to use a shell script | ||||
|   install-lua-rock.sh, which is packaged as well. | ||||
|  | ||||
| ------------------------------------------------------------------- | ||||
| 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> | ||||
|  | ||||
| - Rework Lua version and path macros using RPM Lua blocks. | ||||
|  | ||||
| ------------------------------------------------------------------- | ||||
| Fri Oct 10 10:56:01 UTC 2025 - Matej Cepl <mcepl@cepl.eu> | ||||
|  | ||||
| - Make %{lua_noarchdir} work even without lua-devel installed. | ||||
|  | ||||
| ------------------------------------------------------------------- | ||||
| Thu Oct  9 22:44:04 UTC 2025 - Matej Cepl <mcepl@cepl.eu> | ||||
|  | ||||
| - Make definition of variables dynamic based on pkgconf output. | ||||
|  | ||||
| ------------------------------------------------------------------- | ||||
| Tue Aug  5 14:05:41 UTC 2025 - Matej Cepl <mcepl@cepl.eu> | ||||
|  | ||||
| - On Factory BR lua-interpreter. | ||||
|  | ||||
| ------------------------------------------------------------------- | ||||
| Fri Nov 25 19:15:41 UTC 2022 - Michal Suchanek <msuchanek@suse.com> | ||||
|  | ||||
|   | ||||
| @@ -27,10 +27,14 @@ License:        MIT | ||||
| Group:          Development/Languages/Other | ||||
| URL:            https://www.lua.org | ||||
| Source0:        macros.lua | ||||
| %if 0%{?suse_version} >= 1500 | ||||
| Source1:        install-lua-rock.sh | ||||
| %if 0%{?suse_version} > 1600 | ||||
| Requires:       lua-interpreter | ||||
| %elif 0%{?suse_version} >= 1500 | ||||
| # on SLE 12 lua is lua5.2 unconditionally, avoid | ||||
| Requires:       lua | ||||
| %endif | ||||
| Requires:       pkgconfig | ||||
| BuildArch:      noarch | ||||
|  | ||||
| %description | ||||
| @@ -38,17 +42,16 @@ RPM macros for lua packaging | ||||
|  | ||||
| %prep | ||||
| cp -p %{SOURCE0} . | ||||
| %if 0%{?rhel} || 0%{?fedora} | ||||
| sed -i -e '/includedir/s!/lua!&-!' macros.lua | ||||
| %endif | ||||
|  | ||||
| %build | ||||
| : | ||||
|  | ||||
| %install | ||||
| install -Dm644 macros.lua %{buildroot}%{_rpmmacrodir}/macros.lua | ||||
| install -Dm644 %{SOURCE0} %{buildroot}%{_rpmmacrodir}/macros.lua | ||||
| install -Dm755 %{SOURCE1} %{buildroot}%{_rpmconfigdir}/install-lua-rock.sh | ||||
|  | ||||
| %files | ||||
| %{_rpmmacrodir}/macros.lua | ||||
| %{_rpmconfigdir}/install-lua-rock.sh | ||||
|  | ||||
| %changelog | ||||
|   | ||||
							
								
								
									
										126
									
								
								macros.lua
									
									
									
									
									
								
							
							
						
						
									
										126
									
								
								macros.lua
									
									
									
									
									
								
							| @@ -1,64 +1,108 @@ | ||||
| # RPM macros for Lua | ||||
|  | ||||
| # The major.minor version of Lua | ||||
| %lua_version %(lua -e 'print(_VERSION)' | cut -d ' ' -f 2) | ||||
| %lua_version_nodots %(lua -e 'print((string.gsub("%{lua_version}", "%.", "")))') | ||||
|  | ||||
| %lua_version %{lua: | ||||
| local f = io.popen("lua -e 'print(_VERSION)'") | ||||
| local output = f:read("*a") | ||||
| f:close() | ||||
| local ver = output:match("Lua (%d%.%d)") | ||||
| print(ver) | ||||
| } | ||||
| %lua_version_nodots %{lua: | ||||
|   local ver = rpm.expand("%{lua_version}") | ||||
|   local nodots = ver:gsub("%.", "") | ||||
|   print(nodots) | ||||
| } | ||||
| # compiled modules should go here | ||||
| %lua_archdir %{_libdir}/lua/%{lua_version} | ||||
|  | ||||
| %lua_archdir %{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 | ||||
| %lua_noarchdir %{_datadir}/lua/%{lua_version} | ||||
|  | ||||
| %lua_noarchdir %{lua: | ||||
| local output = "" | ||||
| local f = io.popen("pkgconf --variable=INSTALL_LMOD lua 2>/dev/null") | ||||
| if f ~= nil then | ||||
|     output = f:read("*a"):gsub("^%s*(.-)%s*$", "%1") | ||||
|     f:close() | ||||
| end | ||||
| if output:len() > 0 then | ||||
|     print(output) | ||||
|     return | ||||
| end | ||||
| print(rpm.expand("%{_datadir}/lua/%{lua_version}")) | ||||
| } | ||||
| # lua includes folder | ||||
| %lua_incdir %{_includedir}/lua%{lua_version} | ||||
|  | ||||
| %lua_incdir %{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: | ||||
| local result = 5.4 | ||||
| local result = "5.4" | ||||
| local ver = rpm.expand("%{?suse_version}") | ||||
| if #ver > 0 then | ||||
|     ver = tonumber(ver) | ||||
|     if ver < 1500 then | ||||
|         result = 5.1 | ||||
|     elseif ver == 1500 then | ||||
|         result = 5.3 | ||||
|         result = "5.1" | ||||
|     elseif ver < 1600 then | ||||
|         result = "5.3" | ||||
|     end | ||||
| end | ||||
| print(result) | ||||
| } | ||||
| %lua_version_default_nodots %(lua -e 'print((string.gsub("%{lua_version_default}", "%.", "")))') | ||||
|  | ||||
| %ifluadefault \ | ||||
| %if %{lua_version_nodots} == %{lua_version_default_nodots} \ | ||||
| %{nil} | ||||
|  | ||||
| # Define a conditional that evaluates true when building for the default Lua version | ||||
| %lua_version_default_nodots %{lua: | ||||
|   local ver = rpm.expand("%{lua_version_default}") | ||||
|   local nodots = ver:gsub("%.", "") | ||||
|   print(nodots) | ||||
| } | ||||
| # Lua default version | ||||
| # This REQUIRES macro %%{mod_name} to be defined. | ||||
| # -e: Exclude lua prefix | ||||
| # -n: Specify name | ||||
| %lua_provides(en:) \ | ||||
| %ifluadefault \ | ||||
| %if 0%{?-n:1} \ | ||||
| Provides: %{-n*} = %{version}-%{release} \ | ||||
| Obsoletes: %{-n*} < %{version}-%{release} \ | ||||
| %else \ | ||||
| %if 0%{?-e:1} \ | ||||
| Provides: %{mod_name} = %{version}-%{release} \ | ||||
| Obsoletes: %{mod_name} < %{version}-%{release} \ | ||||
| %else \ | ||||
| Provides: lua-%{mod_name} = %{version}-%{release} \ | ||||
| Obsoletes: lua-%{mod_name} < %{version}-%{release} \ | ||||
| %endif \ | ||||
| %endif \ | ||||
| %endif \ | ||||
| %{nil} | ||||
| %lua_provides(en:) %{lua: | ||||
| local mod_name = rpm.expand("%{?mod_name}") | ||||
| if mod_name == "" or mod_name == "%{?mod_name}" then | ||||
|     print("-- Error: %%{mod_name} is not defined!") | ||||
|     return | ||||
| end | ||||
|  | ||||
| local lua_ver_nodots = rpm.expand("%{lua_version_nodots}") | ||||
| local lua_ver_default_nodots = rpm.expand("%{lua_version_default_nodots}") | ||||
| local flavor = rpm.expand("%{flavor}") | ||||
| local version = rpm.expand("%{version}") | ||||
| local release = rpm.expand("%{release}") | ||||
|  | ||||
| local provides_name | ||||
| if rpm.expand("%{-n*}") ~= "" then | ||||
|     provides_name = rpm.expand("%{-n*}") | ||||
| elseif rpm.expand("%{-e:1}") == "1" then | ||||
|     provides_name = mod_name | ||||
| else | ||||
|     provides_name = "lua-" .. mod_name | ||||
| end | ||||
|  | ||||
| if lua_ver_nodots == lua_ver_default_nodots then | ||||
|     print("Provides: " .. provides_name .. " = " .. version .. "-" .. release .. "\\n") | ||||
|     print("Obsoletes: " .. provides_name .. " < " .. version .. "-" .. release .. "\\n") | ||||
| end | ||||
|  | ||||
| if flavor == "luajit" then | ||||
|     print("Obsoletes: lua51-" .. mod_name .. " <= " .. version .. "-" .. release .. "\\n") | ||||
| end | ||||
| } | ||||
|  | ||||
| # LuaRocks | ||||
| %luarocks_build \ | ||||
| luarocks --lua-version "%{lua_version}" \\\ | ||||
| make --pack-binary-rock --deps-mode none | ||||
|  | ||||
| %luarocks_install \ | ||||
| luarocks --lua-version="%{lua_version}" --tree="%{buildroot}%{_prefix}" \\\ | ||||
| install --deps-mode=none --no-manifest | ||||
| luarocks --lua-version "%{lua_version}" make --deps-mode none --pack-binary-rock | ||||
|  | ||||
| %luarocks_treedir %{_prefix}/lib/luarocks/rocks-%{lua_version} | ||||
|  | ||||
| %luarocks_install \ | ||||
|   %{_rpmconfigdir}/install-lua-rock.sh "%{lua_version}" "%{buildroot}%{_prefix}" "%{buildroot}%{luarocks_treedir}/%{mod_name}" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user