如何为 Fedora 35 安装 `python39-rpm-macros`?

How do I install `python39-rpm-macros` for Fedora 35?

在 Fedora 35 上从 .spec 文件构建 RPM 时如何 select Python 版本?

CentOS/RHEL 文档说

Configure the particular Python 3 version in the BuildRequires of the SPEC file to python36-rpm-macros, python38-rpm-macros, or python39-rpm-macros.

CHAPTER 40. PACKAGING PYTHON 3 RPMS

Fedora 只有 python3.9 包和 python3-rpm-macros 包。

如何设置Python版本?我怎样才能让这个 selection 在 Fedora、RHEL 和其他企业 Linux 风格之间移植?

尝试解决

%define __python3 /usr/bin/python3.9
%{?fedora:BuildRequires: python3.9}
%{?rhel:BuildRequires: python39-devel}

这是正确的吗?

%global python_minimum_version 3.9.0

%{?fedora:Requires: python3 >= %{python_minimum_version}}
%{?rhel:Requires: python39 >= %{python_minimum_version}}

%{?fedora:BuildRequires: python3-devel >= %{python_minimum_version}}
# yes, I do crazy things in the rpm build, and I need pip
%{?fedora:BuildRequires: python3-pip}
# without wheel the installed files lack `python_qpid_proton-0.37.0.dist-info`
%{?fedora:BuildRequires: python3-wheel}
%{?rhel:BuildRequires: python39-devel >= %{python_minimum_version}}
%{?rhel:BuildRequires: python39-pip}
%{?rhel:BuildRequires: python39-wheel}
%{?rhel:BuildRequires: python39-rpm-macros}

这似乎生成了一个在 Fedora 和 CentOS Stream 8 上都表现良好的软件包。

在 Fedora 上,使用最新的 Python,在 CentOS 上我得到 Python 3.9,脚本中的 #! 行被重写以自动使用 Python 3.9 .

我认为这是成功的。