%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 [![github actions](https://github.com/PyO3/setuptools-rust/actions/workflows/ci.yml/badge.svg)](https://github.com/PyO3/setuptools-rust/actions/workflows/ci.yml) [![pypi package](https://badge.fury.io/py/setuptools-rust.svg)](https://pypi.org/project/setuptools-rust/) [![readthedocs](https://readthedocs.org/projects/pip/badge/)](https://setuptools-rust.readthedocs.io/en/latest/) [![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](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 [![github actions](https://github.com/PyO3/setuptools-rust/actions/workflows/ci.yml/badge.svg)](https://github.com/PyO3/setuptools-rust/actions/workflows/ci.yml) [![pypi package](https://badge.fury.io/py/setuptools-rust.svg)](https://pypi.org/project/setuptools-rust/) [![readthedocs](https://readthedocs.org/projects/pip/badge/)](https://setuptools-rust.readthedocs.io/en/latest/) [![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](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 [![github actions](https://github.com/PyO3/setuptools-rust/actions/workflows/ci.yml/badge.svg)](https://github.com/PyO3/setuptools-rust/actions/workflows/ci.yml) [![pypi package](https://badge.fury.io/py/setuptools-rust.svg)](https://pypi.org/project/setuptools-rust/) [![readthedocs](https://readthedocs.org/projects/pip/badge/)](https://setuptools-rust.readthedocs.io/en/latest/) [![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](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 - 1.5.2-1 - Package Spec generated