Toshaan Bharvani
1 year ago
commit
3105a27479
2 changed files with 245 additions and 0 deletions
@ -0,0 +1,120 @@
@@ -0,0 +1,120 @@
|
||||
From 78965633be625fba3fee6fbbf3b24e22d9d349cc Mon Sep 17 00:00:00 2001 |
||||
From: Christian Heimes <christian@python.org> |
||||
Date: Mon, 26 Jul 2021 12:29:12 +0200 |
||||
Subject: [PATCH] Replace semantic_version with packaging |
||||
|
||||
Use the "packaging" package instead of semantic_version package to parse |
||||
Rust version and spec. Packaging is used by setuptools to parse version |
||||
strings and specs. |
||||
|
||||
This also solves a deprecation warning with semamtic_version. The |
||||
partial argument to Version() has been deprecated. |
||||
|
||||
Signed-off-by: Christian Heimes <christian@python.org> |
||||
--- |
||||
setup.cfg | 2 +- |
||||
setuptools_rust/check.py | 4 ++-- |
||||
setuptools_rust/extension.py | 4 ++-- |
||||
setuptools_rust/test.py | 4 ++-- |
||||
setuptools_rust/utils.py | 4 ++-- |
||||
5 files changed, 9 insertions(+), 9 deletions(-) |
||||
|
||||
diff --git a/setup.cfg b/setup.cfg |
||||
index 5b6ddf0..19b2b84 100644 |
||||
--- a/setup.cfg |
||||
+++ b/setup.cfg |
||||
@@ -26,7 +26,7 @@ classifiers = |
||||
[options] |
||||
packages = setuptools_rust |
||||
zip_safe = True |
||||
-install_requires = setuptools>=46.1; semantic_version>=2.6.0; toml>=0.9.0 |
||||
+install_requires = setuptools>=46.1; packaging; toml>=0.9.0 |
||||
setup_requires = setuptools>=46.1; setuptools_scm[toml]>=3.4.3 |
||||
python_requires = >=3.6 |
||||
|
||||
diff --git a/setuptools_rust/check.py b/setuptools_rust/check.py |
||||
index 4fe1d83..62e666b 100644 |
||||
--- a/setuptools_rust/check.py |
||||
+++ b/setuptools_rust/check.py |
||||
@@ -7,13 +7,13 @@ from distutils.errors import ( |
||||
DistutilsExecError, |
||||
) |
||||
|
||||
-import semantic_version |
||||
+from packaging.specifiers import SpecifierSet |
||||
|
||||
from .command import RustCommand |
||||
from .extension import RustExtension |
||||
from .utils import rust_features |
||||
|
||||
-MIN_VERSION = semantic_version.Spec(">=1.16") |
||||
+MIN_VERSION = SpecifierSet(">=1.16") |
||||
|
||||
|
||||
class check_rust(RustCommand): |
||||
diff --git a/setuptools_rust/extension.py b/setuptools_rust/extension.py |
||||
index f8e7205..cc445cb 100644 |
||||
--- a/setuptools_rust/extension.py |
||||
+++ b/setuptools_rust/extension.py |
||||
@@ -4,7 +4,7 @@ from distutils.errors import DistutilsSetupError |
||||
from enum import IntEnum, auto |
||||
from typing import Dict, List, Optional, Union |
||||
|
||||
-import semantic_version |
||||
+from packaging.specifiers import SpecifierSet |
||||
|
||||
|
||||
class Binding(IntEnum): |
||||
@@ -149,7 +149,7 @@ class RustExtension: |
||||
if self.rust_version is None: |
||||
return None |
||||
try: |
||||
- return semantic_version.SimpleSpec.parse(self.rust_version) |
||||
+ return SpecifierSet(self.rust_version) |
||||
except ValueError: |
||||
raise DistutilsSetupError( |
||||
"Can not parse rust compiler version: %s", self.rust_version |
||||
diff --git a/setuptools_rust/test.py b/setuptools_rust/test.py |
||||
index 93beba1..1f5ce9a 100644 |
||||
--- a/setuptools_rust/test.py |
||||
+++ b/setuptools_rust/test.py |
||||
@@ -4,12 +4,12 @@ import subprocess |
||||
from distutils.cmd import Command |
||||
from distutils.errors import CompileError, DistutilsFileError, DistutilsExecError |
||||
|
||||
-import semantic_version |
||||
+from packaging.specifiers import SpecifierSet |
||||
|
||||
from .extension import RustExtension |
||||
from .utils import rust_features, get_rust_version |
||||
|
||||
-MIN_VERSION = semantic_version.Spec(">=1.15") |
||||
+MIN_VERSION = SpecifierSet(">=1.15") |
||||
|
||||
|
||||
class test_rust(Command): |
||||
diff --git a/setuptools_rust/utils.py b/setuptools_rust/utils.py |
||||
index 4b0220d..0564f26 100644 |
||||
--- a/setuptools_rust/utils.py |
||||
+++ b/setuptools_rust/utils.py |
||||
@@ -2,7 +2,7 @@ import sys |
||||
import subprocess |
||||
from distutils.errors import DistutilsPlatformError |
||||
|
||||
-import semantic_version |
||||
+from packaging.version import Version |
||||
|
||||
from .extension import Binding |
||||
|
||||
@@ -35,7 +35,7 @@ def rust_features(ext=True, binding=Binding.PyO3): |
||||
def get_rust_version(min_version=None): |
||||
try: |
||||
output = subprocess.check_output(["rustc", "-V"]).decode("latin-1") |
||||
- return semantic_version.Version(output.split(" ")[1], partial=True) |
||||
+ return Version(output.split(" ")[1]) |
||||
except (subprocess.CalledProcessError, OSError): |
||||
raise DistutilsPlatformError( |
||||
"can't find Rust compiler\n\n" |
||||
-- |
||||
2.31.1 |
||||
|
@ -0,0 +1,125 @@
@@ -0,0 +1,125 @@
|
||||
%if 0%{?rhel} |
||||
%bcond_with tests |
||||
%else |
||||
%bcond_without tests |
||||
%endif |
||||
|
||||
Name: python-setuptools-rust |
||||
Version: 0.12.1 |
||||
Release: 4%{?dist} |
||||
Summary: Setuptools Rust extension plugin |
||||
|
||||
License: MIT |
||||
URL: https://github.com/PyO3/setuptools-rust |
||||
Source0: %{pypi_source setuptools-rust} |
||||
Patch0001: 0001-Replace-semantic_version-with-packaging.patch |
||||
BuildArch: noarch |
||||
ExclusiveArch: %{rust_arches} |
||||
|
||||
BuildRequires: python3-devel |
||||
BuildRequires: python3dist(setuptools) |
||||
BuildRequires: python3dist(packaging) |
||||
BuildRequires: python3dist(toml) >= 0.9.0 |
||||
%if 0%{?fedora} |
||||
BuildRequires: python3dist(setuptools-scm) >= 3.4.3 |
||||
BuildRequires: python3dist(wheel) |
||||
BuildRequires: rust-packaging >= 1.45 |
||||
%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 python3-setuptools-rust |
||||
Summary: %{summary} |
||||
%if 0%{?fedora} |
||||
Requires: rust-packaging >= 1.45 |
||||
%else |
||||
Requires: rust-toolset >= 1.45 |
||||
%endif |
||||
|
||||
%description -n python3-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 -p1 -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/tomlgen |
||||
%cargo_prep |
||||
sed -i 's/"0\.[0-9.]*"/"^0"/g' setup.cfg |
||||
PYTHONPATH=%{buildroot}%{python3_sitelib} %{__python3} setup.py build |
||||
cd ../.. |
||||
%endif |
||||
|
||||
|
||||
%files -n python3-setuptools-rust |
||||
%doc README.md CHANGELOG.md |
||||
%license LICENSE |
||||
%{python3_sitelib}/setuptools_rust/ |
||||
%{python3_sitelib}/setuptools_rust-%{version}-py%{python3_version}.egg-info/ |
||||
|
||||
%changelog |
||||
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 0.12.1-4 |
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags |
||||
Related: rhbz#1991688 |
||||
|
||||
* Mon Jul 26 2021 Christian Heimes <cheimes@redhat.com> - 0.12.1-3 |
||||
- Replace semantic_version with packaging |
||||
- Resolves: rhbz#1980994 |
||||
|
||||
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 0.12.1-2 |
||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 |
||||
|
||||
* 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 |
Loading…
Reference in new issue