## START: Set by rpmautospec
## (rpmautospec version 0.3.5)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 5;
    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

%if 0%{?rhel}
%bcond_with tests
%else
%bcond_without tests
%endif

Name:           python-setuptools-rust
Version:        1.6.0
Release:        %autorelease
Summary:        Setuptools Rust extension plugin

License:        MIT
URL:            https://github.com/PyO3/setuptools-rust
Source0:        %{pypi_source setuptools-rust}
BuildArch:      noarch
ExclusiveArch:  %{rust_arches}

BuildRequires:  python%{python3_pkgversion}-devel
BuildRequires:  python%{python3_pkgversion}dist(setuptools) > 46.1
BuildRequires:  python%{python3_pkgversion}dist(semantic-version) >= 2.8.2
BuildRequires:  python%{python3_pkgversion}dist(typing-extensions) >= 3.7.4.4
%if 0%{?fedora}
BuildRequires:  python%{python3_pkgversion}dist(wheel)
BuildRequires:  rust-packaging
%else
# RHEL has rust-toolset and neither setuptools-scm nor wheel
BuildRequires:  rust-toolset >= 1.45
%endif
%if %{with tests}
BuildRequires:  rust-pyo3+default-devel
%endif

%description
Setuptools helpers for Rust Python extensions. Compile and distribute Python
extensions written in Rust as easily as if they were written in C.

%package -n     python%{python3_pkgversion}-setuptools-rust
Summary:        %{summary}
%if 0%{?fedora}
Requires:       rust-packaging
%else
Requires:       rust-toolset >= 1.45
%endif

%description -n python%{python3_pkgversion}-setuptools-rust
Setuptools helpers for Rust Python extensions. Compile and distribute Python
extensions written in Rust as easily as if they were written in C.

%prep
%autosetup -n setuptools-rust-%{version}
# Remove bundled egg-info
rm -rf setuptools-rust.egg-info

%if ! 0%{?fedora}
# RHEL doesn't have setuptools-scm
# remove setuptools-scm
rm pyproject.toml
sed -i 's/setup_requires.*//' setup.cfg

# create version.py without setuptools-scm
cat > setuptools_rust/version.py << EOF
version = '%{VERSION}'
version_tuple = ($(echo %{VERSION} | sed 's/\./, /g'))
EOF
%endif


%build
%py3_build

%install
%py3_install

%check
PYTHONPATH=%{buildroot}%{python3_sitelib} \
    %{__python3} -c "from setuptools_rust import RustExtension, version"

%if %{with tests}
cd examples/hello-world
%cargo_prep
PYTHONPATH=%{buildroot}%{python3_sitelib} %{__python3} setup.py build
cd ../..
%endif


%files -n python%{python3_pkgversion}-setuptools-rust
%doc README.md CHANGELOG.md
%license LICENSE
%{python3_sitelib}/setuptools_rust/
%{python3_sitelib}/setuptools_rust-%{version}-py%{python3_version}.egg-info/

%changelog
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Wed Jun 14 2023 Python Maint <python-maint@redhat.com> - 1.6.0-4
- Rebuilt for Python 3.12

* Thu Jun 08 2023 Miro Hrončok <miro@hroncok.cz> - 1.6.0-3
- Try to switch to the proper branch

* Thu Jun 08 2023 Miro Hrončok <miro@hroncok.cz> - 1.6.0-2
- CI: Build python-cryptography

* Mon May 22 2023 Maxwell G <maxwell@gtmx.me> - 1.6.0-1
- Update to 1.6.0. Fixes rhbz#2190299.

* Mon May 22 2023 Fabio Valentini <decathorpe@gmail.com> - 1.5.2-3
- Remove bogus dependency restriction on rust-packaging

* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Mon Dec 19 2022 Tomáš Hrnčiar <thrnciar@redhat.com> - 1.5.2-1
- Update to 1.5.2

* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Tue Jun 14 2022 Python Maint <python-maint@redhat.com> - 1.2.0-2
- Rebuilt for Python 3.11

* Wed Mar 23 2022 Christian Heimes <cheimes@redhat.com> - 1.2.0-1
- Update to 1.2.0, fixes RHBZ#2066883

* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Mon Dec 06 2021 Christian Heimes <cheimes@redhat.com> - 1.1.2-1
- Update to 1.1.2, fixes RHBZ#2027601

* Mon Nov 22 2021 Christian Heimes <cheimes@redhat.com> - 1.0.0-1
- Update to 1.0.0, fixes RHBZ#2025354

* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.12.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Wed Jun 02 2021 Python Maint <python-maint@redhat.com> - 0.12.1-2
- Rebuilt for Python 3.10

* Thu Mar 11 2021 Christian Heimes <cheimes@redhat.com> - 0.12.1-1
- Update to 0.12.1

* Tue Mar 09 2021 Christian Heimes <cheimes@redhat.com> - 0.12.0-1
- Update to 0.12.0 (#1936679)
- Run tomlgen example as test case

* Thu Feb 11 2021 Christian Heimes <cheimes@redhat.com> - 0.11.6-4
- Fix RHEL build: remove wheel build requirements, use rust-toolset

* Thu Feb 11 2021 Christian Heimes <cheimes@redhat.com> - 0.11.6-3
- Add RHEL packaging support

* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.11.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Thu Jan 14 2021 Christian Heimes <cheimes@redhat.com> - 0.11.6-1
- Initial package.
- Resolves: rhbz#1906490

