Initial package (close RHBZ#2257285)
This commit is contained in:
parent
7871648e38
commit
5bbaf014cf
6 changed files with 171 additions and 0 deletions
109
python-cramjam.spec
Normal file
109
python-cramjam.spec
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
%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
|
||||
Loading…
Add table
Add a link
Reference in a new issue