Allow bootstrap
This package buildrequires flit_core to build the wheel, but flit_core requires tomli. This also allows us to use tomli instead of toml in %pyproject_buildrequires.
This commit is contained in:
		
							parent
							
								
									0aa4b934ed
								
							
						
					
					
						commit
						c49081a294
					
				| @ -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 | ||||
| 
 | ||||
| %global _description %{expand: | ||||
| Tomli is a Python library for parsing TOML. | ||||
| Tomli is fully compatible with TOML v1.0.0.} | ||||
| 
 | ||||
| %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.} | ||||
| 
 | ||||
| 
 | ||||
| %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 <mhroncok@redhat.com> - 1.2.2-2 | ||||
| - Allow a bootstrap build without flit_core | ||||
| 
 | ||||
| * Wed Oct 27 2021 Petr Viktorin <pviktori@redhat.com> - 1.2.2-1 | ||||
| - Update to version 1.2.2 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user