Compare commits

..

6 commits

Author SHA1 Message Date
Benjamin A. Beasley
655812e7c9 Remove conditional for F42+; the branches diverged 2025-05-04 06:51:29 -04:00
Benjamin A. Beasley
1c354a3120 Report and skip test that fails with miniz_oxide>0.8.5 2025-05-04 06:50:51 -04:00
Benjamin A. Beasley
2015ea4d69 Add a tomcli version bound, matching F42+
[skip changelog]
2025-05-04 06:48:54 -04:00
Benjamin A. Beasley
48e07eecc6 Expect maturin to handle license files 2025-05-04 06:45:31 -04:00
Benjamin A. Beasley
af1aea506d Don’t need to manually export RUSTFLAGS
[skip changelog]
2025-05-04 06:44:55 -04:00
Benjamin A. Beasley
e0d4568742 No longer need to patch pyproject.toml to keep maturin from stripping binaries
We were failing to adjust profile.release.strip correctly anyway; it’s in Cargo.toml
2025-05-04 06:44:49 -04:00
4 changed files with 84 additions and 44 deletions

7
.gitignore vendored
View file

@ -6,10 +6,3 @@
/cramjam-2.9.0rc1.tar.gz
/cramjam-2.9.0.tar.gz
/cramjam-2.9.1.tar.gz
/cramjam-61564e7761e38e5ec55e7939ccd6a276c2c55d11-filtered.tar.gz
/cramjam-cdc7d307d0f592f89b3319a7037fd875a5371ef3-filtered.tar.gz
/cramjam-2.10.0rc1.tar.gz
/cramjam-2.10.0.tar.gz
/cramjam-2.11.0rc2.tar.gz
/cramjam-2.11.0rc3.tar.gz
/cramjam-2.11.0.tar.gz

20
196.patch Normal file
View file

@ -0,0 +1,20 @@
From 7a993e9d4418a5e44c0c775a11c438f248b333c7 Mon Sep 17 00:00:00 2001
From: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com>
Date: Mon, 30 Dec 2024 19:49:23 +0530
Subject: [PATCH] Add a `version` key in the `[project]` table
---
pyproject.toml | 1 +
1 file changed, 1 insertion(+)
diff --git a/pyproject.toml b/pyproject.toml
index 038e21ae..acb2a183 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,5 +1,6 @@
[project]
name = "cramjam"
+version = "2.9.1"
keywords = ["compression", "decompression", "snappy", "zstd", "bz2", "gzip", "lz4", "brotli", "deflate", "blosc2"]
requires-python = ">=3.8"
license = { file = "LICENSE" }

View file

@ -1,10 +1,10 @@
%bcond tests 1
#global commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#global snapdate YYYYMMDD
# isa-l is ExcludeArch: i686
%bcond isal %[ 0%{?__isa_bits} != 32 ]
Name: python-cramjam
Version: 2.11.0
Version: 2.9.1
Release: %autorelease
Summary: Thin Python bindings to de/compression algorithms in Rust
@ -33,9 +33,11 @@ Source1: get_source
%endif
BuildSystem: pyproject
BuildOption(install): -l cramjam
# Updates for Maturin 1.8: add a version key in the project metadata
# https://github.com/milesgranger/cramjam/pull/196
Patch: %{url}/pull/196.patch
BuildRequires: python3-devel
BuildRequires: tomcli >= 0.8.0
BuildRequires: cargo-rpm-macros >= 24
@ -44,6 +46,7 @@ BuildRequires: cargo-rpm-macros >= 24
# dev extra in pyproject.toml.
BuildRequires: %{py3_dist numpy}
BuildRequires: %{py3_dist pytest}
BuildRequires: %{py3_dist pytest-xdist}
BuildRequires: %{py3_dist hypothesis}
%endif
@ -57,6 +60,7 @@ BuildRequires: %{py3_dist hypothesis}
Summary: %{summary}
# 0BSD OR MIT OR Apache-2.0
# Apache-2.0
# Apache-2.0 OR MIT
# BSD-3-Clause
# BSD-3-Clause AND MIT
# MIT
@ -74,30 +78,14 @@ License: %{shrink:
%description -n python3-cramjam %{common_description}
%prep -a
%prep
%autosetup -n cramjam-%{srcversion}
# 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 Cargo.toml del 'features.generate-import-lib'
# Downstream-only: patch out the wasm-compat feature, which is unnecessary and
# would bring in unwanted dependencies
tomcli set Cargo.toml del 'features.wasm32-compat'
# Downstream-only: patch out the "experimental" feature and all of the features
# related to blosc2 and isa-l support. We only want to build the Python
# extension with the default features, and we only want maturin to check
# dependencies for those features.
blosc2_isal_features="$(
tomcli get Cargo.toml features -F newline-keys |
grep -E 'blosc2|ideflate|igzip|isal|izlib' |
tr '\n' ' '
)"
for feature in experimental ${blosc2_isal_features}
do
tomcli set Cargo.toml del "features.${feature}"
done
# Downstream-only: remove all the static-linking features, and make the
# dynamic-linking ones default, as we do in rust-libcramjam.
static_features="$(
@ -116,36 +104,75 @@ do
fi
done
# Downstream-only: patch out the wasm-compat feature, which requires an
# unavailable blosc2 crate feature.
tomcli set Cargo.toml del 'features.wasm32-compat'
%if %{without isal}
tomcli set Cargo.toml lists delitem --type regex \
'features.default' 'i(gzip|deflate|zlib)'
isal_features="$(
tomcli get Cargo.toml features -F newline-keys |
grep -E '^i(gzip|deflate|zlib)|-isal-' |
tr '\n' ' '
)"
for sf in ${isal_features}
do
tomcli set Cargo.toml del "features.${sf}"
done
%endif
%cargo_prep
%generate_buildrequires -a
%generate_buildrequires
%pyproject_buildrequires
%cargo_generate_buildrequires
%build -p
%build
%cargo_license_summary
%{cargo_license} > LICENSES.dependencies
%pyproject_wheel
%check -a
%install
%pyproject_install
%pyproject_save_files -l cramjam
%check
%pyproject_check_import
%if %{with tests}
# Test failures in test_variants_decompress_into with recent hypothesis
# versions: https://github.com/milesgranger/cramjam/issues/201
%ifarch s390x
# Even after serious effort by upstream (see
# https://github.com/milesgranger/blosc2-rs/issues/23), several blosc2-rs tests
# still fail on s390x, and therefore blosc2-related tests may also fail in this
# package. Making this package ExcludeArch would have a ripple effect on
# a whole tree of packages that depend on it, and which probably do not even
# use its blosc2 support. We consider that outcome even worse than shipping
# broken blosc2 support on s390x. Note that the endianness issues are probably
# in the C blosc2 library (and that the blosc2 package ignores any and all
# test failures on s390x), and see also:
# https://github.com/Blosc/c-blosc2/issues/467.
#
# It is hard to be really sure what is going on here. The failures are
# concerning, and might (or might not) reflect a serious problem. Nevertheless,
# since the problem appears to be linked to newer hypothesis versions, theres
# not reason to believe that the package has *new* problems. It *might* have
# newly *revealed* problems. This merits further investigation.
k="${k-}${k+ and }not test_variants_decompress_into"
# […]
# E cramjam.DecompressionError: Blosc2(InvalidHeader)
# […]
# tests/test_variants.py:55: DecompressionError
k="${k-}${k+ and }not test_variants_different_dtypes[blosc2]"
%endif
# Some tests in test_variants.py may produce segmentation faults
# https://github.com/milesgranger/cramjam/issues/190
k="${k-}${k+ and }not (test_variants and [blosc2)"
# Regression with miniz_oxide>0.8.5
# https://github.com/milesgranger/cramjam/issues/211
# Failed: DID NOT RAISE <class 'cramjam.DecompressionError'>
k="${k-}${k+ and }not test_variants_raise_exception[deflate]"
%pytest -k "${k-}" --ignore=benchmarks/test_bench.py -v
%pytest -k "${k-}" -v -n auto
%endif

View file

@ -1 +1 @@
SHA512 (cramjam-2.11.0.tar.gz) = d92446c0c0ef885f3544783caa1f179fd50b6a6290ada011495b7385411527f75a2544c0c8cdc36910c83c879dbac7dd130f4fe8f3dc3b885a84a45286cb3695
SHA512 (cramjam-2.9.1.tar.gz) = a2bcb6f98c8f7ffdf026fe9ffc061b3a462368a9bb69eea79697f7cba5091b1beb52cde9c298423d3a7538f86c1d6b15fdd083ccfd26fa2700c024c6d2a0437f