%global python3_pkgversion 3.11 %bcond tests 0 Name: python-cramjam Version: 2.8.3 Release: 2.ac15.py3.11%{?dist} Summary: Thin Python bindings to de/compression algorithms in Rust # SPDX License: MIT URL: https://github.com/milesgranger/cramjam # The PyPI sdist is structured like the git repository, but with pyproject.toml # moved to the top level from cramjam-python/ and # manifest-path = "cramjam-python/Cargo.toml" # added to the [tool.maturin] section. We find it easiest to just build from # the GitHub source archive. Source: %{url}/archive/v%{version}/cramjam-%{version}.tar.gz BuildRequires: python%{python3_pkgversion}-devel BuildRequires: tomcli BuildRequires: cargo-rpm-macros >= 24 %global common_description %{expand: %{summary}.} %description %{common_description} %package -n python%{python3_pkgversion}-cramjam Summary: %{summary} # 0BSD OR MIT OR Apache-2.0 # Apache-2.0 # BSD-3-Clause # BSD-3-Clause AND MIT # MIT # MIT OR Apache-2.0 # MIT OR Zlib OR Apache-2.0 License: %{shrink: (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND BSD-3-Clause AND MIT AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) } # LICENSE.dependencies contains a full license breakdown %description -n python%{python3_pkgversion}-cramjam %{common_description} %prep %autosetup -n cramjam-%{version} # Do not strip the compiled Python module; we need useful debuginfo. Upstream # set this intentionally, so this makes sense to keep downstream-only. tomcli set cramjam-python/pyproject.toml false 'tool.maturin.strip' # Downstream-only: patch out linters/formatters/etc. from the “dev” extra so we # can use it to generate test dependencies. # https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters tomcli set cramjam-python/pyproject.toml lists delitem --type regex \ 'project.optional-dependencies.dev' '(black)\b.*' # Downstream-only: patch out the generate-import-lib feature, which is only # relevant on Windows, and which depends on the corresponding pyo3 feature – # which is not packaged for that reason. tomcli set cramjam-python/Cargo.toml del 'features.generate-import-lib' # Remove bundled rust-libcramjam and the sources for cramjam-cli, which is # versioned and released separately. Keep only the contents of cramjam-python/ # and the LICENSE file. find . -mindepth 1 -maxdepth 1 ! -type d ! -name LICENSE -print -delete find . -mindepth 1 -maxdepth 1 -type d ! -name cramjam-python \ -exec rm -rv '{}' '+' cd cramjam-python %cargo_prep %generate_buildrequires cd cramjam-python %pyproject_buildrequires %{?with_tests:-x dev} %cargo_generate_buildrequires %build export RUSTFLAGS='%{build_rustflags}' cd cramjam-python %cargo_license_summary %{cargo_license} > ../LICENSES.dependencies %pyproject_wheel %install cd cramjam-python %pyproject_install %pyproject_save_files cramjam %check cd cramjam-python %pyproject_check_import %if %{with tests} %pytest -v -n auto --ignore-glob='benchmarks/*' %endif for b in $(find %{buildroot}%{_bindir}/ -type f) ; do mv "$b" $(sed -re "s|(.*)$|\1-%{python3_pkgversion}|"<<<"$b"); done for m in $(find %{buildroot}%{_mandir}/ -type f) ; do mv "$m" $(sed -re "s|(.*).([1-8])(.*)$|\1-%{python3_pkgversion}.\2\3|"<<<"$m"); done for m in $(find %{buildroot}%{_datadir}/locale/* -type f) ; do mv "$m" $(sed -re "s|(.*).mo$|\1-%{python3_pkgversion}.mo|"<<<"$m"); done for l in $(find %{buildroot}/usr/lib64/lib* -type f -o -type l) ; do mv "$l" $(sed -re "s|(.*).so(.*)$|\1-py%{python3_pkgversion}.so\2|"<<<"$l"); done for p in $(find %{buildroot}/usr/lib64/pkgconfig/* -type f) ; do mv "$p" $(sed -re "s|(.*).pc$|\1-py%{python3_pkgversion}.pc|"<<<"$p"); done %files -n python%{python3_pkgversion}-cramjam -f %{pyproject_files} %license LICENSE LICENSES.dependencies %doc cramjam-python/README.md %changelog * Sun Apr 28 2024 Ding-Yi Chen - 2.8.3-2.ac15.py3.11 - Cut corner packaging