Blob Blame History Raw
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 -l

# 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