0ae2849f20
This still works on Fedora 37/38. EL 9 uses a different setuptools version for tests.
111 lines
3.3 KiB
RPMSpec
111 lines
3.3 KiB
RPMSpec
Name: python-setuptools
|
|
# on the CI we test different version of setuptools on different Fedora versions
|
|
# don't package software like this in Fedora please
|
|
%if 0%{?fedora} || 0%{?rhel} >= 10
|
|
Version: 67.7.2
|
|
%else
|
|
Version: 59.6.0
|
|
%endif
|
|
Release: 0%{?dist}
|
|
Summary: Easily build and distribute Python packages
|
|
# see the real Fedora package for explanation:
|
|
License: MIT and (BSD or ASL 2.0)
|
|
URL: https://pypi.python.org/pypi/setuptools
|
|
Source: %{pypi_source setuptools %{version}}
|
|
|
|
# Patch from Fedora proper
|
|
%if 0%{?fedora} || 0%{?rhel} >= 10
|
|
Patch: https://src.fedoraproject.org/rpms/python-setuptools/raw/8ae9b2a777c/f/Remove-optional-or-unpackaged-test-deps.patch
|
|
%else
|
|
Patch: https://src.fedoraproject.org/rpms/python-setuptools/raw/6fc093d6b3d/f/0001-Remove-optional-or-unpackaged-test-deps.patch
|
|
%endif
|
|
|
|
BuildArch: noarch
|
|
|
|
BuildRequires: python3-devel
|
|
BuildRequires: pyproject-rpm-macros
|
|
BuildRequires: gcc
|
|
|
|
# too many missing tests deps in EPEL 9
|
|
%if 0%{?fedora}
|
|
%bcond_without tests
|
|
%else
|
|
%bcond_with tests
|
|
%endif
|
|
|
|
%description
|
|
This package tests 2 things:
|
|
|
|
- %%{_pyproject_builddir} does not leak to pytest collection (rhzb#1935212)
|
|
- TODO %%{pyproject_files} has escaped spaces (rhzb#1976363)
|
|
|
|
|
|
%package -n python3-setuptools
|
|
Summary: %{summary}
|
|
|
|
# For users who might see ModuleNotFoundError: No module named 'pkg_resoureces'
|
|
%py_provides python3-pkg_resources
|
|
%py_provides python3-pkg-resources
|
|
|
|
%description -n python3-setuptools
|
|
...
|
|
|
|
|
|
%prep
|
|
%autosetup -p1 -n setuptools-%{version}
|
|
|
|
%if 0%{?rhel} && 0%{?rhel} < 10
|
|
# The following test deps are optional and either not desired or not available in Fedora:
|
|
sed -Ei setup.cfg -e '/\bpytest-(checkdocs|black|cov|mypy|enabler)\b/d' \
|
|
-e '/\bflake8\b/d' \
|
|
-e '/\bpaver\b/d'
|
|
# Strip pytest options from the above
|
|
sed -i pytest.ini -e 's/ --flake8//' \
|
|
-e 's/ --cov//'
|
|
%endif
|
|
|
|
|
|
|
|
%generate_buildrequires
|
|
%pyproject_buildrequires -r %{?with_tests:-x testing}
|
|
|
|
|
|
%build
|
|
%pyproject_wheel
|
|
|
|
|
|
%install
|
|
%pyproject_install
|
|
%pyproject_save_files setuptools pkg_resources _distutils_hack
|
|
|
|
# https://github.com/pypa/setuptools/issues/2709
|
|
rm -rf %{buildroot}%{python3_sitelib}/pkg_resources/tests/
|
|
sed -i '/tests/d' %{pyproject_files}
|
|
|
|
|
|
%check
|
|
# https://github.com/pypa/setuptools/discussions/2607
|
|
rm pyproject.toml
|
|
|
|
%if %{with tests}
|
|
# We only run a subset of tests to speed things up and be less fragile
|
|
PRE_BUILT_SETUPTOOLS_WHEEL=%{_pyproject_wheeldir}/setuptools-%{version}-py3-none-any.whl \
|
|
PYTHONPATH=$(pwd) %pytest --ignore=pavement.py \
|
|
--ignore=setuptools/tests/test_develop.py \
|
|
--ignore=setuptools/tests/test_editable_install.py \
|
|
--ignore=setuptools/tests/config/test_apply_pyprojecttoml.py \
|
|
-k "sdist" -n %{_smp_build_ncpus}
|
|
%else
|
|
%pyproject_check_import
|
|
%endif
|
|
|
|
# Internal check that license file was recognized correctly
|
|
grep '^%%license' %{pyproject_files} > tested.license
|
|
echo '%%license %{python3_sitelib}/setuptools-%{version}.dist-info/LICENSE' > expected.license
|
|
diff tested.license expected.license
|
|
|
|
|
|
%files -n python3-setuptools -f %{pyproject_files}
|
|
%doc docs/* CHANGES.rst README.rst
|
|
%{python3_sitelib}/distutils-precedence.pth
|