forked from pool/lua-macros
		
	WIP fix: make macros.lua work with RPM 4.14.3 on Leap 15.5
This commit is contained in:
		
							
								
								
									
										59
									
								
								macros.lua
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								macros.lua
									
									
									
									
									
								
							| @@ -6,12 +6,12 @@ local f = io.popen("lua -e 'print(_VERSION)'") | ||||
| local output = f:read("*a") | ||||
| f:close() | ||||
| local ver = output:match("Lua (%d%.%d)") | ||||
| print(ver) | ||||
| print(ver:gsub("^%s*(.-)%s*$", "%1")) | ||||
| } | ||||
| %lua_version_nodots %{lua: | ||||
|   local ver = rpm.expand("%{lua_version}") | ||||
|   local nodots = ver:gsub("%.", "") | ||||
|   print(nodots) | ||||
|   print(nodots:gsub("^%s*(.-)%s*$", "%1")) | ||||
| } | ||||
| # compiled modules should go here | ||||
| %lua_archdir %{lua: | ||||
| @@ -64,30 +64,47 @@ print(result) | ||||
| } | ||||
| # Lua default version | ||||
| # This REQUIRES macro %{mod_name} to be defined. | ||||
| # -e: Exclude lua prefix | ||||
| # -n: Specify name | ||||
| %lua_provides(en:) %{lua: | ||||
| # Optionally you can define macro `lua_provides_type`, which can | ||||
| # have two different values: | ||||
| # '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}") | ||||
| if mod_name == "" then | ||||
|     print("-- Error: %{mod_name} is not defined!") | ||||
|     return | ||||
| end | ||||
| print([[ | ||||
| %if "%{lua_version_nodots}" == "%{lua_version_default_nodots}" | ||||
| %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 | ||||
| ]]) | ||||
|  | ||||
| local current_ver = rpm.expand("%{lua_version_nodots}"):gsub("^%s*(.-)%s*$", "%1") | ||||
| local default_ver = rpm.expand("%{lua_version_default_nodots}"):gsub("^%s*(.-)%s*$", "%1") | ||||
|  | ||||
| local output = "" | ||||
|  | ||||
| -- Check if we are building for the default Lua version | ||||
| if current_ver == default_ver then | ||||
|  | ||||
|     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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user