# This file is used _only_ to override macros which exist in RHEL. # It should be used very sparingly. # Override %__python3 here based on %%python3_pkgversion to avoid relying on the finicky # python3X-rpm-macros packages. # Backported from https://src.fedoraproject.org/rpms/python-rpm-macros/c/a8b26546eb699afe0dbfcef913a2aa7085fc5afb?branch=rawhide # # EPEL specific, RHEL defines this in the python3X-rpm-macros packages # and the default is /usr/libexec/platform-python. # Usually, we don't want EPEL packages to use platform-python. # Packages that want to do that can explicitly override this. # # When %%python3_pkgveresion is set to 3 (i.e. the default), we override # %%__python3 to /usr/bin/python3.6 to ensure that programs are always run with # python3.6, even if /usr/bin/python3 is a symlink to a different interpreter. # # See https://lists.fedoraproject.org/archives/list/epel-devel@lists.fedoraproject.org/thread/RE3PG72B5AX7NTACPDSBGOWCMN7I3OQJ/ %__python3 %{lua: local bin = "/usr/bin/python" if rpm.expand("%python3_pkgversion") == "3" then bin = bin .. "3.6" else bin = bin .. rpm.expand("%{_python3_pkgversion_with_dot}") end print(bin) } # RHEL 8's %%pytest does not work properly on non-default Python versions. # Backported from https://src.fedoraproject.org/rpms/python-rpm-macros/c/02536540768555dde6d675935db45df81bcab7bf?branch=rawhide # https://bugzilla.redhat.com/show_bug.cgi?id=2091462 %__pytest /usr/bin/pytest%(test %{python3_pkgversion} == 3 && echo -3 || echo -%{python3_version}) # RHEL 8's %%py3_dist does not work properly on non-default Python versions. # This is copied here from https://git.centos.org/rpms/python-rpm-macros/pull-request/1 # until that lands in RHEL. # https://bugzilla.redhat.com/show_bug.cgi?id=2090007 # 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:\ python3_pkgversion_with_dot = rpm.expand("%_python3_pkgversion_with_dot")\ 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("python" .. python3_pkgversion_with_dot .. "dist(" .. canonical .. ") ");\ end\ }