diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-10 10:34:37 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 10:34:37 +0000 |
commit | a473d86313b28f91f8c8dbc1c3021506b1d068be (patch) | |
tree | 36fc9a789bc32a6f111b5ef56e1f5ddc01b15cc0 | |
parent | d3c234792944a1354f4a6920ae58f01da4056746 (diff) |
automatic import of python-setuptools-rust
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-setuptools-rust.spec | 351 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 353 insertions, 0 deletions
@@ -0,0 +1 @@ +/setuptools-rust-1.5.2.tar.gz diff --git a/python-setuptools-rust.spec b/python-setuptools-rust.spec new file mode 100644 index 0000000..5ffbe10 --- /dev/null +++ b/python-setuptools-rust.spec @@ -0,0 +1,351 @@ +%global _empty_manifest_terminate_build 0 +Name: python-setuptools-rust +Version: 1.5.2 +Release: 1 +Summary: Setuptools Rust extension plugin +License: MIT +URL: https://github.com/PyO3/setuptools-rust +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/99/db/e4ecb483ffa194d632ed44bda32cb740e564789fed7e56c2be8e2a0e2aa6/setuptools-rust-1.5.2.tar.gz +BuildArch: noarch + +Requires: python3-setuptools +Requires: python3-semantic-version +Requires: python3-typing-extensions + +%description +# Setuptools plugin for Rust extensions + +[](https://github.com/PyO3/setuptools-rust/actions/workflows/ci.yml) +[](https://pypi.org/project/setuptools-rust/) +[](https://setuptools-rust.readthedocs.io/en/latest/) +[](https://github.com/ambv/black) + +`setuptools-rust` is a plugin for `setuptools` to build Rust Python extensions implemented with [PyO3](https://github.com/PyO3/pyo3) or [rust-cpython](https://github.com/dgrunwald/rust-cpython). + +Compile and distribute Python extensions written in Rust as easily as if +they were written in C. + +## Setup + +For a complete example, see +[html-py-ever](https://github.com/PyO3/setuptools-rust/tree/main/examples/html-py-ever). + +First, you need to create a bunch of files: + +### setup.py + +```python +from setuptools import setup +from setuptools_rust import Binding, RustExtension + +setup( + name="hello-rust", + version="1.0", + rust_extensions=[RustExtension("hello_rust.hello_rust", binding=Binding.PyO3)], + packages=["hello_rust"], + # rust extensions are not zip safe, just like C-extensions. + zip_safe=False, +) +``` + +For a complete reference of the options supported by the `RustExtension` class, see the +[API reference](https://setuptools-rust.readthedocs.io/en/latest/reference.html). + +### pyproject.toml + +```toml +[build-system] +requires = ["setuptools", "wheel", "setuptools-rust"] +``` + +### MANIFEST.in + +This file is required for building source distributions + +```text +include Cargo.toml +recursive-include src * +``` + +## Usage + +You can use same commands as for c-extensions. For example: + +``` +>>> python ./setup.py develop +running develop +running egg_info +writing hello-rust.egg-info/PKG-INFO +writing top-level names to hello_rust.egg-info/top_level.txt +writing dependency_links to hello_rust.egg-info/dependency_links.txt +reading manifest file 'hello_rust.egg-info/SOURCES.txt' +writing manifest file 'hello_rust.egg-info/SOURCES.txt' +running build_ext +running build_rust +cargo build --manifest-path extensions/Cargo.toml --features python3 + Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs + +Creating /.../lib/python3.6/site-packages/hello_rust.egg-link (link to .) + +Installed hello_rust +Processing dependencies for hello_rust==1.0 +Finished processing dependencies for hello_rust==1.0 +``` + +Or you can use commands like `bdist_wheel` (after installing `wheel`). See also [the notes in the documentation about building wheels](https://setuptools-rust.readthedocs.io/en/latest/building_wheels.html). + +Cross-compiling is also supported, using one of [`crossenv`](https://github.com/benfogle/crossenv), [`cross`](https://github.com/rust-embedded/cross) or [`cargo-zigbuild`](https://github.com/messense/cargo-zigbuild). +For examples see the `test-crossenv` and `test-cross` and `test-zigbuild` Github actions jobs in [`ci.yml`](https://github.com/PyO3/setuptools-rust/blob/main/.github/workflows/ci.yml). + +By default, `develop` will create a debug build, while `install` will create a release build. + +## Commands + + - `build` - Standard build command will also build all rust extensions. + - `build_rust` - Command builds all rust extensions. + - `clean` - Standard clean command executes cargo clean for all rust + extensions. + + +%package -n python3-setuptools-rust +Summary: Setuptools Rust extension plugin +Provides: python-setuptools-rust +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-setuptools-rust +# Setuptools plugin for Rust extensions + +[](https://github.com/PyO3/setuptools-rust/actions/workflows/ci.yml) +[](https://pypi.org/project/setuptools-rust/) +[](https://setuptools-rust.readthedocs.io/en/latest/) +[](https://github.com/ambv/black) + +`setuptools-rust` is a plugin for `setuptools` to build Rust Python extensions implemented with [PyO3](https://github.com/PyO3/pyo3) or [rust-cpython](https://github.com/dgrunwald/rust-cpython). + +Compile and distribute Python extensions written in Rust as easily as if +they were written in C. + +## Setup + +For a complete example, see +[html-py-ever](https://github.com/PyO3/setuptools-rust/tree/main/examples/html-py-ever). + +First, you need to create a bunch of files: + +### setup.py + +```python +from setuptools import setup +from setuptools_rust import Binding, RustExtension + +setup( + name="hello-rust", + version="1.0", + rust_extensions=[RustExtension("hello_rust.hello_rust", binding=Binding.PyO3)], + packages=["hello_rust"], + # rust extensions are not zip safe, just like C-extensions. + zip_safe=False, +) +``` + +For a complete reference of the options supported by the `RustExtension` class, see the +[API reference](https://setuptools-rust.readthedocs.io/en/latest/reference.html). + +### pyproject.toml + +```toml +[build-system] +requires = ["setuptools", "wheel", "setuptools-rust"] +``` + +### MANIFEST.in + +This file is required for building source distributions + +```text +include Cargo.toml +recursive-include src * +``` + +## Usage + +You can use same commands as for c-extensions. For example: + +``` +>>> python ./setup.py develop +running develop +running egg_info +writing hello-rust.egg-info/PKG-INFO +writing top-level names to hello_rust.egg-info/top_level.txt +writing dependency_links to hello_rust.egg-info/dependency_links.txt +reading manifest file 'hello_rust.egg-info/SOURCES.txt' +writing manifest file 'hello_rust.egg-info/SOURCES.txt' +running build_ext +running build_rust +cargo build --manifest-path extensions/Cargo.toml --features python3 + Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs + +Creating /.../lib/python3.6/site-packages/hello_rust.egg-link (link to .) + +Installed hello_rust +Processing dependencies for hello_rust==1.0 +Finished processing dependencies for hello_rust==1.0 +``` + +Or you can use commands like `bdist_wheel` (after installing `wheel`). See also [the notes in the documentation about building wheels](https://setuptools-rust.readthedocs.io/en/latest/building_wheels.html). + +Cross-compiling is also supported, using one of [`crossenv`](https://github.com/benfogle/crossenv), [`cross`](https://github.com/rust-embedded/cross) or [`cargo-zigbuild`](https://github.com/messense/cargo-zigbuild). +For examples see the `test-crossenv` and `test-cross` and `test-zigbuild` Github actions jobs in [`ci.yml`](https://github.com/PyO3/setuptools-rust/blob/main/.github/workflows/ci.yml). + +By default, `develop` will create a debug build, while `install` will create a release build. + +## Commands + + - `build` - Standard build command will also build all rust extensions. + - `build_rust` - Command builds all rust extensions. + - `clean` - Standard clean command executes cargo clean for all rust + extensions. + + +%package help +Summary: Development documents and examples for setuptools-rust +Provides: python3-setuptools-rust-doc +%description help +# Setuptools plugin for Rust extensions + +[](https://github.com/PyO3/setuptools-rust/actions/workflows/ci.yml) +[](https://pypi.org/project/setuptools-rust/) +[](https://setuptools-rust.readthedocs.io/en/latest/) +[](https://github.com/ambv/black) + +`setuptools-rust` is a plugin for `setuptools` to build Rust Python extensions implemented with [PyO3](https://github.com/PyO3/pyo3) or [rust-cpython](https://github.com/dgrunwald/rust-cpython). + +Compile and distribute Python extensions written in Rust as easily as if +they were written in C. + +## Setup + +For a complete example, see +[html-py-ever](https://github.com/PyO3/setuptools-rust/tree/main/examples/html-py-ever). + +First, you need to create a bunch of files: + +### setup.py + +```python +from setuptools import setup +from setuptools_rust import Binding, RustExtension + +setup( + name="hello-rust", + version="1.0", + rust_extensions=[RustExtension("hello_rust.hello_rust", binding=Binding.PyO3)], + packages=["hello_rust"], + # rust extensions are not zip safe, just like C-extensions. + zip_safe=False, +) +``` + +For a complete reference of the options supported by the `RustExtension` class, see the +[API reference](https://setuptools-rust.readthedocs.io/en/latest/reference.html). + +### pyproject.toml + +```toml +[build-system] +requires = ["setuptools", "wheel", "setuptools-rust"] +``` + +### MANIFEST.in + +This file is required for building source distributions + +```text +include Cargo.toml +recursive-include src * +``` + +## Usage + +You can use same commands as for c-extensions. For example: + +``` +>>> python ./setup.py develop +running develop +running egg_info +writing hello-rust.egg-info/PKG-INFO +writing top-level names to hello_rust.egg-info/top_level.txt +writing dependency_links to hello_rust.egg-info/dependency_links.txt +reading manifest file 'hello_rust.egg-info/SOURCES.txt' +writing manifest file 'hello_rust.egg-info/SOURCES.txt' +running build_ext +running build_rust +cargo build --manifest-path extensions/Cargo.toml --features python3 + Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs + +Creating /.../lib/python3.6/site-packages/hello_rust.egg-link (link to .) + +Installed hello_rust +Processing dependencies for hello_rust==1.0 +Finished processing dependencies for hello_rust==1.0 +``` + +Or you can use commands like `bdist_wheel` (after installing `wheel`). See also [the notes in the documentation about building wheels](https://setuptools-rust.readthedocs.io/en/latest/building_wheels.html). + +Cross-compiling is also supported, using one of [`crossenv`](https://github.com/benfogle/crossenv), [`cross`](https://github.com/rust-embedded/cross) or [`cargo-zigbuild`](https://github.com/messense/cargo-zigbuild). +For examples see the `test-crossenv` and `test-cross` and `test-zigbuild` Github actions jobs in [`ci.yml`](https://github.com/PyO3/setuptools-rust/blob/main/.github/workflows/ci.yml). + +By default, `develop` will create a debug build, while `install` will create a release build. + +## Commands + + - `build` - Standard build command will also build all rust extensions. + - `build_rust` - Command builds all rust extensions. + - `clean` - Standard clean command executes cargo clean for all rust + extensions. + + +%prep +%autosetup -n setuptools-rust-1.5.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-setuptools-rust -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.5.2-1 +- Package Spec generated @@ -0,0 +1 @@ +fd3412ca77ffd6e06e2e83d0e9636084 setuptools-rust-1.5.2.tar.gz |