python3.14-flit-core/python3.14-flit-core.spec
Tomáš Hrnčiar 36f74f2a00 Convert from Fedora for the Python 3.14 stack in RHEL
Fedora contributions by:
    Charalampos Stratakis <cstratak@redhat.com>
    Elliott Sales de Andrade <quantum.analyst@gmail.com> 0.9-1
    Gwyn Ciesla <limb@fedoraproject.org>
    Igor Gnatenko <ignatenkobrain@fedoraproject.org>
    Karolina Surma <ksurma@redhat.com>
    Lukáš Zachar <lzachar@redhat.com>
    Lumir Balhar <lbalhar@redhat.com>
    Maxwell G <gotmax@e.email>
    Michal Cyprian <mcyprian@redhat.com>
    Michel Lind <salimma@fedoraproject.org>
    Miro Hrončok <mhroncok@redhat.com>
    Mukundan Ragavan <nonamedotc@gmail.com>
    Tomas Hrcka <thrcka@redhat.com>
    Tomáš Hrnčiar <thrnciar@redhat.com>
    Yaakov Selkowitz <yselkowi@redhat.com>
2025-11-25 13:00:48 +01:00

103 lines
2.9 KiB
RPMSpec

%global python3_pkgversion 3.14
# When bootstrapping new Python we need to build flit in bootstrap mode.
# The Python RPM dependency generators and pip are not yet available.
%bcond bootstrap 1
# RHEL: disable tests due to missing dependencies
%bcond tests 0
Name: python%{python3_pkgversion}-flit-core
Version: 3.12.0
Release: %autorelease
Summary: PEP 517 build backend for packages using Flit
# flit-core is BSD-3-Clause
# flit_core/versionno.py contains a regex that is from packaging, BSD-2-Clause
License: BSD-3-Clause AND BSD-2-Clause
URL: https://flit.pypa.io/
Source: %{pypi_source flit_core}
BuildArch: noarch
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-rpm-macros
%if %{without bootstrap}
BuildRequires: python%{python3_pkgversion}-pip
%endif
%if %{with tests}
BuildRequires: python%{python3_pkgversion}-pytest
# Test deps that require flit-core to build:
BuildRequires: python%{python3_pkgversion}-testpath
%endif
%global _description %{expand:
This provides a PEP 517 build backend for packages using Flit.
The only public interface is the API specified by PEP 517,
at flit_core.buildapi.}
%description %_description
# RPM generators are not yet available when we bootstrap in Fedora,
# in RHEL we bootstrap the same way
%if %{with bootstrap}
Provides: python%{python3_pkgversion}dist(flit-core) = %{version}
Provides: python%{python3_version}dist(flit-core) = %{version}
Requires: python(abi) = %{python3_version}
%endif
%prep
%autosetup -p1 -n flit_core-%{version}
# Remove vendored tomli that flit_core includes to solve the circular dependency on older Pythons
# (flit_core requires tomli, but flit_core is needed to build tomli).
# We don't use this, as tomllib is a part of standard library since Python 3.11.
# Remove the bits looking for the license files of the vendored tomli.
rm -rf flit_core/vendor
sed -iE 's/, *"flit_core\/vendor\/\*\*\/LICENSE\*"//' pyproject.toml
%if %{without bootstrap}
%generate_buildrequires
%pyproject_buildrequires
%endif
%build
%if %{with bootstrap}
%{python3} -m flit_core.wheel
%else
%pyproject_wheel
%endif
%install
%if %{with bootstrap}
%{python3} bootstrap_install.py --install-root %{buildroot} dist/flit_core-%{version}-py3-none-any.whl
# for consistency with %%pyproject_install/brp-python-rpm-in-distinfo:
echo rpm > %{buildroot}%{python3_sitelib}/flit_core-%{version}.dist-info/INSTALLER
rm %{buildroot}%{python3_sitelib}/flit_core-%{version}.dist-info/RECORD
%else
%pyproject_install
%endif
%check
%py3_check_import flit_core flit_core.buildapi
%if %{with tests}
%pytest
%endif
%files -n python%{python3_pkgversion}-flit-core
%doc README.rst
%{python3_sitelib}/flit_core-*.dist-info/
%license %{python3_sitelib}/flit_core-*.dist-info/licenses/LICENSE
%{python3_sitelib}/flit_core/
%changelog
%autochangelog