## START: Set by rpmautospec ## (rpmautospec version 0.3.5) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 7; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec # RHEL does not have packaged rust libraries %bcond packaged_rust_libraries %{undefined rhel} # The integration tests depend on the presence of these libraries %bcond integration_tests %{with packaged_rust_libraries} # Regex of integration tests to skip. # * html-py-ever requires unpackaged rust crates %global integration_tests_exc '^(html-py-ever)' Name: python-setuptools-rust Version: 1.7.0 Release: %autorelease Summary: Setuptools Rust extension plugin License: MIT URL: https://github.com/PyO3/setuptools-rust Source0: %{pypi_source setuptools-rust} BuildArch: noarch BuildRequires: python3-devel BuildRequires: %{py3_dist pytest} %if 0%{?fedora} BuildRequires: rust-packaging %else # RHEL has rust-toolset instead of rust-packaging BuildRequires: rust-toolset >= 1.45 %endif %if %{with integration_tests} BuildRequires: %{py3_dist cffi} %endif %global _description %{expand: Setuptools helpers for Rust Python extensions. Compile and distribute Python extensions written in Rust as easily as if they were written in C.} %description %{_description} %package -n python3-setuptools-rust Summary: %{summary} %if 0%{?fedora} Requires: rust-packaging %else Requires: rust-toolset >= 1.45 %endif %description -n python3-setuptools-rust %{_description} %prep %autosetup -n setuptools-rust-%{version} %cargo_prep %if %{with integration_tests} for example in $(ls examples/ | grep -vE %{integration_tests_exc}); do cd "examples/${example}" %cargo_prep cd - done %endif %generate_buildrequires %pyproject_buildrequires %if %{with integration_tests} for example in $(ls examples/ | grep -vE %{integration_tests_exc}); do cd "examples/${example}" %cargo_generate_buildrequires cd - >&2 done %endif %build %pyproject_wheel %install %pyproject_install %pyproject_save_files setuptools_rust %check %pyproject_check_import # Disable tests that require internet access and/or test Windows functionality %global test_ignores %{shrink: not test_adjusted_local_rust_target_windows_msvc and not test_get_lib_name_namespace_package } %if %{without packaged_rust_libraries} %global test_ignores %{shrink:%{test_ignores} and not test_metadata_contents and not test_metadata_cargo_log } %endif %pytest tests/ setuptools_rust/ --import-mode importlib -k '%{test_ignores}' %if %{with integration_tests} export %{py3_test_envvars} %global _pyproject_wheeldir dist for example in $(ls examples/ | grep -vE %{integration_tests_exc}); do cd "examples/${example}" %pyproject_wheel if [ -d "tests/" ]; then %{python3} -m venv venv --system-site-packages ./venv/bin/pip install dist/*.whl ./venv/bin/python -Pm pytest tests/ fi cd - done %endif %files -n python3-setuptools-rust -f %{pyproject_files} %doc README.md CHANGELOG.md %license LICENSE %changelog * Thu Aug 31 2023 Maxwell G - 1.7.0-7 - Fix inaccurate RHEL comment * Thu Aug 31 2023 Maxwell G - 1.7.0-6 - Use pyproject_wheel instead of calling hook directly * Thu Aug 31 2023 Maxwell G - 1.7.0-5 - Use direct paths instead of activating venvs * Thu Aug 31 2023 Maxwell G - 1.7.0-4 - Use %%py3_test_envvars instead of manually setting PYTHONPATH * Wed Aug 23 2023 Maxwell G - 1.7.0-3 - Modernize the specfile and run all tests * Wed Aug 23 2023 Maxwell G - 1.7.0-2 - Remove obsolete `ExcludeArch: %%{rust_arches}` * Wed Aug 23 2023 Christian Heimes - 1.7.0-1 - Update to 1.7.0, fixes rhbz#2233656 - modernize packaging, upstream has remove setup.py - remove setup.cfg hacks for RHEL * Fri Jul 21 2023 Fedora Release Engineering - 1.6.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Wed Jun 14 2023 Python Maint - 1.6.0-4 - Rebuilt for Python 3.12 * Thu Jun 08 2023 Miro Hrončok - 1.6.0-3 - Try to switch to the proper branch * Thu Jun 08 2023 Miro Hrončok - 1.6.0-2 - CI: Build python-cryptography * Mon May 22 2023 Maxwell G - 1.6.0-1 - Update to 1.6.0. Fixes rhbz#2190299. * Mon May 22 2023 Fabio Valentini - 1.5.2-3 - Remove bogus dependency restriction on rust-packaging * Fri Jan 20 2023 Fedora Release Engineering - 1.5.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Mon Dec 19 2022 Tomáš Hrnčiar - 1.5.2-1 - Update to 1.5.2 * Fri Jul 22 2022 Fedora Release Engineering - 1.2.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Tue Jun 14 2022 Python Maint - 1.2.0-2 - Rebuilt for Python 3.11 * Wed Mar 23 2022 Christian Heimes - 1.2.0-1 - Update to 1.2.0, fixes RHBZ#2066883 * Fri Jan 21 2022 Fedora Release Engineering - 1.1.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Mon Dec 06 2021 Christian Heimes - 1.1.2-1 - Update to 1.1.2, fixes RHBZ#2027601 * Mon Nov 22 2021 Christian Heimes - 1.0.0-1 - Update to 1.0.0, fixes RHBZ#2025354 * Fri Jul 23 2021 Fedora Release Engineering - 0.12.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Wed Jun 02 2021 Python Maint - 0.12.1-2 - Rebuilt for Python 3.10 * Thu Mar 11 2021 Christian Heimes - 0.12.1-1 - Update to 0.12.1 * Tue Mar 09 2021 Christian Heimes - 0.12.0-1 - Update to 0.12.0 (#1936679) - Run tomlgen example as test case * Thu Feb 11 2021 Christian Heimes - 0.11.6-4 - Fix RHEL build: remove wheel build requirements, use rust-toolset * Thu Feb 11 2021 Christian Heimes - 0.11.6-3 - Add RHEL packaging support * Wed Jan 27 2021 Fedora Release Engineering - 0.11.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Thu Jan 14 2021 Christian Heimes - 0.11.6-1 - Initial package. - Resolves: rhbz#1906490