Blob Blame History Raw
# 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\
}