%__pythonname_provides() %{lua: local python = require 'fedora.srpm.python' -- this macro is called for each file in a package, the path being in %1 -- but we don't need to know the path, so we would get for each file: Macro %1 defined but not used within scope -- in here, we expand %name conditionally on %1 to suppress the warning local name = rpm.expand('%{?1:%{name}}') local evr = rpm.expand('%{?epoch:%{epoch}:}%{version}-%{release}') local provides = python.python_altprovides_once(name, evr) -- provides is either an array/table or nil -- nil means the function was already called with the same arguments: -- either with another file in %1 or manually via %py_provides if provides then for i, provide in ipairs(provides) do print(provide .. ' ') end end } %__pythonname_obsoletes() %{?rhel:%{lua: -- On CentOS/RHEL we automatically generate Obsoletes tags in the form: -- package python3-foo -> Obsoletes: python3.XY-foo -- This provides a clean upgrade path between major versions of CentOS/RHEL. -- In Fedora this is not needed as we don't ship ecosystem packages -- for alternative Python interpreters. local python = require 'fedora.srpm.python' -- this macro is called for each file in a package, the path being in %1 -- but we don't need to know the path, so we would get for each file: Macro %1 defined but not used within scope -- in here, we expand %name conditionally on %1 to suppress the warning local name = rpm.expand('%{?1:%{name}}') local evr = rpm.expand('%{?epoch:%{epoch}:}%{version}-%{release}') local obsoletes = python.python_altobsoletes_once(name, evr) -- obsoletes is either an array/table or nil -- nil means the function was already called with the same arguments: -- either with another file in %1 or manually via %py_provides if obsoletes then for i, obsolete in ipairs(obsoletes) do print(obsolete .. ' ') end end }} %__pythonname_path ^/