Initial package (close RHBZ#2257285)

This commit is contained in:
Benjamin A. Beasley 2024-02-14 08:01:04 -05:00
commit 5bbaf014cf
6 changed files with 171 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/cramjam-2.8.1.tar.gz

View file

@ -0,0 +1,28 @@
From d9bd99591c52a8114d38e2a799a2f6101410eb4b Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
Date: Fri, 2 Feb 2024 12:51:24 -0500
Subject: [PATCH] Downstream-only: do not strip the compiled Python extension
module
We need useful debuginfo. Upstream set this intentionally, so this makes
sense to keep downstream-only.
---
cramjam-python/pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cramjam-python/pyproject.toml b/cramjam-python/pyproject.toml
index 2a4aa85..16ed5b8 100644
--- a/cramjam-python/pyproject.toml
+++ b/cramjam-python/pyproject.toml
@@ -14,7 +14,7 @@ requires = ["maturin>=0.14"]
build-backend = "maturin"
[tool.maturin]
-strip = true
+strip = false
[project.optional-dependencies]
dev = [
--
2.43.0

View file

@ -0,0 +1,30 @@
From ccea06b962959b69596eada330c5acc055a5f195 Mon Sep 17 00:00:00 2001
From: Miles <miles59923@gmail.com>
Date: Sat, 3 Feb 2024 10:19:05 +0100
Subject: [PATCH] Remove relative libcramjam dep for python builds (#131)
---
cramjam-cli/Cargo.toml | 2 +-
cramjam-python/Cargo.toml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/cramjam-cli/Cargo.toml b/cramjam-cli/Cargo.toml
index 73ccbbe..633f585 100644
--- a/cramjam-cli/Cargo.toml
+++ b/cramjam-cli/Cargo.toml
@@ -8,4 +8,4 @@ edition = "2021"
[dependencies]
clap = { version = "^4.2", features = ["derive"] }
bytesize = "^1"
-libcramjam = { path = "../libcramjam" }
+libcramjam = "0.2.0"
diff --git a/cramjam-python/Cargo.toml b/cramjam-python/Cargo.toml
index 8092eb5..20a72b7 100644
--- a/cramjam-python/Cargo.toml
+++ b/cramjam-python/Cargo.toml
@@ -19,4 +19,4 @@ extension-module = ["pyo3/extension-module"]
[dependencies]
pyo3 = { version = "^0.20", default-features = false, features = ["macros"] }
-libcramjam = { path = "../libcramjam" }
+libcramjam = "0.2.0"

2
python-cramjam.rpmlintrc Normal file
View file

@ -0,0 +1,2 @@
# “de/compression”
addFilter(r"spelling-error.*'de'")

109
python-cramjam.spec Normal file
View 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

1
sources Normal file
View file

@ -0,0 +1 @@
SHA512 (cramjam-2.8.1.tar.gz) = d908a09f52cebe9a5f7638a91158262e4eea4f8faf57e65d7effab734d12442a65823fb04415d4bea9fd7e42c6569c67459605c655284d5189c59038ff9292e4