python-cramjam/python-cramjam.spec
Benjamin A. Beasley 50b1df8572 Update to 2.8.3
2024-03-26 14:15:51 -04:00

113 lines
3.1 KiB
RPMSpec
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

%bcond tests 1
Name: python-cramjam
Version: 2.8.3
Release: %autorelease
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: python3-devel
BuildRequires: tomcli
BuildRequires: cargo-rpm-macros >= 24
%global common_description %{expand:
%{summary}.}
%description %{common_description}
%package -n python3-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 python3-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
%files -n python3-cramjam -f %{pyproject_files}
%license LICENSE LICENSES.dependencies
%doc cramjam-python/README.md
%changelog
%autochangelog