From 319eba6ebbe6a0aa2c02f97efe298c5a2acf5d68 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 20 Jan 2025 15:33:51 -0500 Subject: [PATCH] Update to a pre-release snapshot of 2.10.0 - Disable experimental features (blosc2/isa-l) --- .gitignore | 1 + 196.patch | 20 ------------- python-cramjam.spec | 73 ++++++++++++++------------------------------- sources | 2 +- 4 files changed, 24 insertions(+), 72 deletions(-) delete mode 100644 196.patch diff --git a/.gitignore b/.gitignore index 787522c..bbba7f4 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /cramjam-2.9.0rc1.tar.gz /cramjam-2.9.0.tar.gz /cramjam-2.9.1.tar.gz +/cramjam-61564e7761e38e5ec55e7939ccd6a276c2c55d11-filtered.tar.gz diff --git a/196.patch b/196.patch deleted file mode 100644 index 89f17fb..0000000 --- a/196.patch +++ /dev/null @@ -1,20 +0,0 @@ -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" } diff --git a/python-cramjam.spec b/python-cramjam.spec index 1a226e6..060645e 100644 --- a/python-cramjam.spec +++ b/python-cramjam.spec @@ -1,10 +1,10 @@ %bcond tests 1 -# isa-l is ExcludeArch: i686 -%bcond isal %[ 0%{?__isa_bits} != 32 ] +%global commit 61564e7761e38e5ec55e7939ccd6a276c2c55d11 +%global snapdate 20250104 Name: python-cramjam -Version: 2.9.1 +Version: 2.10.0~%{snapdate}git%{sub %{commit} 1 7} Release: %autorelease Summary: Thin Python bindings to de/compression algorithms in Rust @@ -33,10 +33,6 @@ Source1: get_source %endif -# 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 BuildRequires: cargo-rpm-macros >= 24 @@ -91,6 +87,24 @@ tomcli set pyproject.toml false 'profile.release.strip' # 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="$( @@ -109,24 +123,6 @@ 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 @@ -150,30 +146,6 @@ export RUSTFLAGS='%{build_rustflags}' %check %pyproject_check_import %if %{with tests} -%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. -# -# […] -# 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)" - -%if 0%{?fedora} > 41 # Test failures in test_variants_decompress_into with recent hypothesis # versions # https://github.com/milesgranger/cramjam/issues/201 @@ -184,9 +156,8 @@ k="${k-}${k+ and }not (test_variants and [blosc2)" # 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" -%endif -%pytest -k "${k-}" -v -n auto +%pytest -k "${k-}" --ignore=benchmarks/test_bench.py -v -n auto %endif diff --git a/sources b/sources index cf0327b..2b5c828 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (cramjam-2.9.1.tar.gz) = a2bcb6f98c8f7ffdf026fe9ffc061b3a462368a9bb69eea79697f7cba5091b1beb52cde9c298423d3a7538f86c1d6b15fdd083ccfd26fa2700c024c6d2a0437f +SHA512 (cramjam-61564e7761e38e5ec55e7939ccd6a276c2c55d11-filtered.tar.gz) = 2c0eaafaa63b1a0c65ba217a77c13ae71871c73e67466ea9bb86ca169e7c42af744ffb48e27294824350137297ee40c9ddd0a61a1290ce48b9ea18de2fbcdb1f