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") | 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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user