109 lines
3 KiB
RPMSpec
109 lines
3 KiB
RPMSpec
%bcond tests 1
|
|
|
|
Name: python-cramjam
|
|
Version: 2.8.1
|
|
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
|
|
|
|
# Remove relative libcramjam dep for python builds
|
|
# See: https://github.com/milesgranger/cramjam/pull/131
|
|
Patch: %{url}/commit/ccea06b962959b69596eada330c5acc055a5f195.patch
|
|
# Do not strip the compiled Python module; we need useful debuginfo. Upstream
|
|
# set this intentionally, so this makes sense to keep downstream-only.
|
|
Patch: 0001-Downstream-only-do-not-strip-the-compiled-Python-ext.patch
|
|
|
|
BuildRequires: python3-devel
|
|
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} -p1
|
|
|
|
# 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
|
|
sed -r -i 's/^([[:blank:]]*)("(black)\b)/\1# \2/' cramjam-python/pyproject.toml
|
|
|
|
# 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
|