diff --git a/python-tomli.spec b/python-tomli.spec index dedf833..5f2cd57 100644 --- a/python-tomli.spec +++ b/python-tomli.spec @@ -1,6 +1,12 @@ +# This package buildrequires flit_core to build the wheel, but flit_core requires tomli. +# To bootstrap, we copy the files to appropriate locations manually and create a minimal dist-info metadata. +# Note that as a pure Python package, the wheel contains no pre-built binary stuff. +# When bootstrap is enabled, we don't run tests either, just an import check. +%bcond_with bootstrap + Name: python-tomli Version: 1.2.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A little TOML parser for Python License: MIT @@ -10,14 +16,17 @@ Source0: https://github.com/hukkin/tomli/archive/refs/tags/%{version}.tar BuildArch: noarch BuildRequires: python3-devel +%if %{without bootstrap} +# Upstream test requirements are in tests/requirements.txt, +# but they're mixed together with coverage ones. Tests only need: +BuildRequires: python3-pytest +BuildRequires: python3-dateutil +%endif + %global _description %{expand: Tomli is a Python library for parsing TOML. Tomli is fully compatible with TOML v1.0.0.} -# Upstream test requirements are in tests/requirements.txt, -# but they're mixed together with coverage ones. Tests only need: -BuildRequires: python3-pytest -BuildRequires: python3-dateutil %description %_description @@ -31,21 +40,47 @@ Summary: %{summary} %autosetup -p1 -n tomli-%{version} +%if %{without bootstrap} %generate_buildrequires %pyproject_buildrequires -r +%endif %build +%if %{without bootstrap} %pyproject_wheel +%else +%global distinfo tomli-%{version}+rpmbootstrap.dist-info +mkdir %{distinfo} +cat > %{distinfo}/METADATA << EOF +Metadata-Version: 2.2 +Name: tomli +Version: %{version}+rpmbootstrap +EOF +%endif %install +%if %{without bootstrap} %pyproject_install %pyproject_save_files tomli +%else +mkdir -p %{buildroot}%{python3_sitelib} +cp -a tomli %{distinfo} %{buildroot}%{python3_sitelib} +echo '%{python3_sitelib}/tomli/' > %{pyproject_files} +echo '%{python3_sitelib}/%{distinfo}/' >> %{pyproject_files} +%endif %check +%py3_check_import tomli +%if %{without bootstrap} +# assert the properly built package has no runtime requires +# if it does, we need to change the bootstrap metadata +test -f %{buildroot}%{python3_sitelib}/tomli-%{version}.dist-info/METADATA +! grep '^Requires-Dist:' %{buildroot}%{python3_sitelib}/tomli-%{version}.dist-info/METADATA %pytest +%endif %files -n python3-tomli -f %{pyproject_files} @@ -55,6 +90,9 @@ Summary: %{summary} %changelog +* Fri Oct 29 2021 Miro HronĨok - 1.2.2-2 +- Allow a bootstrap build without flit_core + * Wed Oct 27 2021 Petr Viktorin - 1.2.2-1 - Update to version 1.2.2