Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
home:illuusio:buildbot-worker
python-rpm-macros
macros.python-srpm
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File macros.python-srpm of Package python-rpm-macros
# python3_pkgversion specifies the version of Python 3 in the distro. It can be # a specific version (e.g. 34 in Fedora EPEL7) %python3_pkgversion 3 # Set to /bin/true to avoid %ifdefs and %{? in specfiles %__python3_other /bin/true %py3_other_build /bin/true %py3_other_install /bin/true # === Macros for Build/Requires tags using Python dist tags === # - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages # - These macros need to be in macros.python-srpm, because BuildRequires tags # get rendered as runtime requires into the metadata of SRPMs. # Converts Python dist name to a canonical format %py_dist_name() %{lua:\ name = rpm.expand("%{?1:%{1}}");\ canonical = string.gsub(string.lower(name), "[^%w%.]+", "-");\ print(canonical);\ } # Creates Python 2 dist tag(s) after converting names to canonical format # Needs to first put all arguments into a list, because invoking a different # macro (%py_dist_name) overwrites them %py2_dist() %{lua:\ args = {}\ arg = 1\ while (true) do\ name = rpm.expand("%{?" .. arg .. ":%{" .. arg .. "}}");\ if (name == nil or name == '') then\ break\ end\ args[arg] = name\ arg = arg + 1\ end\ for arg, name in ipairs(args) do\ canonical = rpm.expand("%py_dist_name " .. name);\ print("python2dist(" .. canonical .. ") ");\ end\ } # Creates Python 3 dist tag(s) after converting names to canonical format # Needs to first put all arguments into a list, because invoking a different # macro (%py_dist_name) overwrites them %py3_dist() %{lua:\ args = {}\ arg = 1\ while (true) do\ name = rpm.expand("%{?" .. arg .. ":%{" .. arg .. "}}");\ if (name == nil or name == '') then\ break\ end\ args[arg] = name\ arg = arg + 1\ end\ for arg, name in ipairs(args) do\ canonical = rpm.expand("%py_dist_name " .. name);\ print("python3dist(" .. canonical .. ") ");\ end\ } # Macro to replace overly complicated references to PyPI source files. # Expands to the pythonhosted URL for a package # Accepts zero to three arguments: # 1: The PyPI project name, defaulting to %srcname if it is defined, then # %pypi_name if it is defined, then just %name. # 2: The PYPI version, defaulting to %version with tildes stripped. # 3: The file extension, defaulting to "tar.gz". (A period will be added # automatically.) # Requires %__pypi_url and %__pypi_default_extension to be defined. %__pypi_url https://files.pythonhosted.org/packages/source/ %__pypi_default_extension tar.gz %pypi_source() %{lua: local src = rpm.expand('%1') local ver = rpm.expand('%2') local ext = rpm.expand('%3') local url = rpm.expand('%__pypi_url') \ -- If no first argument, try %srcname, then %pypi_name, then %name -- Note that rpm leaves macros unchanged if they are not defined. if src == '%1' then src = rpm.expand('%srcname') end if src == '%srcname' then src = rpm.expand('%pypi_name') end if src == '%pypi_name' then src = rpm.expand('%name') end \ -- If no second argument, use %version if ver == '%2' then ver = rpm.expand('%version'):gsub('~', '') end \ -- If no third argument, use the preset default extension if ext == '%3' then ext = rpm.expand('%__pypi_default_extension') end \ local first = string.sub(src, 1, 1) \ print(url .. first .. '/' .. src .. '/' .. src .. '-' .. ver .. '.' .. ext) } # Python packages in RHEL 8 should not provide unversioned python- names # so this macro here is just a compatibility layer and only provides the given name. %py_provides() %{lua: local name = rpm.expand('%1') if name == '%1' then rpm.expand('%{error:%%py_provides requires at least 1 argument, the name to provide}') end local evr = rpm.expand('%2') if evr == '%2' then evr = rpm.expand('%{?epoch:%{epoch}:}%{version}-%{release}') end print('Provides: ' .. name .. ' = ' .. evr .. '\\n') }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor