diff --git a/_service b/_service
index e7b8ffa..7d79ed1 100644
--- a/_service
+++ b/_service
@@ -4,7 +4,7 @@
git
@PARENT_TAG@
- v2.8.1
+ v2.9.1
v(.*)
\1
diff --git a/cramjam-2.8.1.obscpio b/cramjam-2.8.1.obscpio
deleted file mode 100644
index 6b3037f..0000000
--- a/cramjam-2.8.1.obscpio
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:50e24fa65facd333951a4a0e029187e615e30244e3146137157330a5f8eee82e
-size 3311116
diff --git a/cramjam-2.8.1.tar.xz b/cramjam-2.8.1.tar.xz
deleted file mode 100644
index 331fd63..0000000
--- a/cramjam-2.8.1.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b8675fe7d3f5c26ad5927f20f1172c58d1ef3ceae105c0623966acb4599a0785
-size 843748
diff --git a/cramjam-2.9.1.tar.xz b/cramjam-2.9.1.tar.xz
new file mode 100644
index 0000000..578f27c
--- /dev/null
+++ b/cramjam-2.9.1.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b52175262a350c7aa536bdd8e1b31574de6c6ce475e83cb4e0a56a438349a8bd
+size 56142388
diff --git a/cramjam-issue193-test_variants.patch b/cramjam-issue193-test_variants.patch
new file mode 100644
index 0000000..48a0295
--- /dev/null
+++ b/cramjam-issue193-test_variants.patch
@@ -0,0 +1,28 @@
+Index: cramjam-2.9.1/tests/test_variants.py
+===================================================================
+--- cramjam-2.9.1.orig/tests/test_variants.py
++++ cramjam-2.9.1/tests/test_variants.py
+@@ -104,7 +104,7 @@ def test_variants_raise_exception(varian
+ "output_type", (bytes, bytearray, "numpy", cramjam.Buffer, cramjam.File, memoryview)
+ )
+ @pytest.mark.parametrize("variant_str", VARIANTS)
+-@given(raw_data=st.binary())
++@given(raw_data=st.binary(min_size=2))
+ def test_variants_compress_into(
+ variant_str, input_type, output_type, raw_data, tmp_path_factory, is_pypy
+ ):
+@@ -174,13 +174,10 @@ def test_variants_compress_into(
+ "output_type", (bytes, bytearray, "numpy", cramjam.Buffer, cramjam.File, memoryview)
+ )
+ @pytest.mark.parametrize("variant_str", VARIANTS)
+-@given(raw_data=st.binary())
++@given(raw_data=st.binary(min_size=2))
+ def test_variants_decompress_into(
+ variant_str, input_type, output_type, tmp_path_factory, raw_data, is_pypy
+ ):
+- if variant_str == "izlib" and output_type == "memoryview":
+- pytest.skip("See issue https://github.com/milesgranger/cramjam/issues/193")
+-
+ variant = getattr(cramjam, variant_str)
+
+ compressed = variant.compress(raw_data)
diff --git a/cramjam-opensuse-config.patch b/cramjam-opensuse-config.patch
new file mode 100644
index 0000000..20c5e15
--- /dev/null
+++ b/cramjam-opensuse-config.patch
@@ -0,0 +1,29 @@
+--- cramjam/pyproject.toml 2024-12-18 12:38:18.002576474 +0100
++++ cramjam.patch/pyproject.toml 2024-12-18 14:11:22.834831651 +0100
+@@ -14,7 +14,25 @@
+ build-backend = "maturin"
+
+ [tool.maturin]
+-strip = true
++no-default-features = true
++features = [
++ "extension-module",
++ "snappy",
++ "lz4",
++ "bzip2",
++ "brotli",
++ "zstd",
++ "xz-shared",
++ "igzip-shared",
++ "ideflate-shared",
++ "izlib-shared",
++ "use-system-isal-shared",
++ "gzip-shared",
++ "zlib-shared",
++ "deflate-shared",
++ "blosc2-shared",
++ "use-system-blosc2-shared"
++]
+
+ [project.optional-dependencies]
+ dev = [
diff --git a/cramjam.obsinfo b/cramjam.obsinfo
index e269a58..3ee3d44 100644
--- a/cramjam.obsinfo
+++ b/cramjam.obsinfo
@@ -1,4 +1,4 @@
name: cramjam
-version: 2.8.1
-mtime: 1706284751
-commit: 91a329fd1e4c8dbabc484ec1d711a20add2fcc65
+version: 2.9.1
+mtime: 1734006355
+commit: 6b30efc6ee36c80f7a4e1311cc8e9119905b03e0
diff --git a/python-cramjam.changes b/python-cramjam.changes
index 592f3fc..996fb9c 100644
--- a/python-cramjam.changes
+++ b/python-cramjam.changes
@@ -1,3 +1,37 @@
+-------------------------------------------------------------------
+Wed Dec 18 11:40:10 UTC 2024 - Ben Greiner
+
+- Update to 2.9.1
+ * Add Cargo.lock and bump patch version by @milesgranger in #192
+- Release 2.9.0
+ * Bump libcramjam/isal-rs by @milesgranger in #183
+ * Add cramjam.zlib, cramjam.experimental.izlib, and
+ cramjam.experimental.ideflate by @milesgranger in #184
+- Release 2.8.4
+ * Add cramjam.experimental.blosc2
+ * Add cramjam.experimental.igzip (on 64bit targets)
+ * Add wasm32 emscripten build and test for pyodide
+- Release 2.8.3
+ * Move LZMA / XZ out of experimental to xz submodule by
+ @milesgranger in #133
+ * Remove unused Cargo.lock files by @milesgranger in #149
+ * Fix tests that assume C char is signed by @musicinmybrain in
+ #150
+- Release 2.8.2
+ * Remove zstd-safe dep in libcramjam by @milesgranger in #132
+ * Remove relative libcramjam dep for python builds by
+ @milesgranger in #131
+ * Impl eq for python Buffer by @milesgranger in #135
+ * Fix missing LICENSE file in cramjam-cli by @musicinmybrain in
+ #137
+ * Adjust the binary name in the cramjam-cli example by
+ @musicinmybrain in #138
+ * Cargo.toml: set workspace.resolver to 2 by @veprbl in #140
+- Add cramjam-opensuse-config.patch: Use some system libraries and
+ avoid static linking
+- Add cramjam-issue193-test_variants.patch
+ gh#milesgranger/cramjam#193
+
-------------------------------------------------------------------
Wed Aug 14 15:11:07 UTC 2024 - Dirk Müller
diff --git a/python-cramjam.spec b/python-cramjam.spec
index 074e4e5..c027c90 100644
--- a/python-cramjam.spec
+++ b/python-cramjam.spec
@@ -29,24 +29,37 @@
%define modname cramjam
%{?sle15_python_module_pythons}
Name: python-cramjam%{psuffix}
-Version: 2.8.1
+Version: 2.9.1
Release: 0
Summary: Thin Python bindings to de/compression algorithms in Rust
License: MIT
URL: https://github.com/milesgranger/cramjam
Source: %{modname}-%{version}.tar.xz
Source1: vendor.tar.xz
-BuildRequires: %{python_module base >= 3.7}
+# PATCH-FEATURE-OPENSUSE cramjam-opensuse-config.patch code@bnavigator.de -- Use system libraries and avoid static linking
+Patch0: cramjam-opensuse-config.patch
+# PATCH-FIX-UPSTREAM cramjam-issue193-test_variants.patch gh#milesgranger/cramjam#193
+Patch1: cramjam-issue193-test_variants.patch
+BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module maturin >= 0.13}
BuildRequires: %{python_module pip}
+BuildRequires: autoconf
+BuildRequires: automake
BuildRequires: cargo-packaging
+BuildRequires: cmake
+BuildRequires: libtool
+BuildRequires: nasm
BuildRequires: python-rpm-macros
+BuildRequires: pkgconfig(blosc2)
+BuildRequires: pkgconfig(libisal)
+BuildRequires: pkgconfig(libzstd)
# SECTION test dependencies
%if %{with test}
BuildRequires: %{python_module %{modname} = %{version}}
BuildRequires: %{python_module hypothesis}
BuildRequires: %{python_module memory_profiler}
BuildRequires: %{python_module numpy}
+BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module pytest}
%endif
# /SECTION
@@ -58,25 +71,23 @@ Extremely thin Python bindings to de/compression algorithms in Rust.
Allows for using algorithms such as Snappy, without any system dependencies.
%prep
-%setup -q -n %{modname}-%{version} -a1
+%autosetup -p1 -n %{modname}-%{version} -a1
%build
%if %{without test}
-pushd %{modname}-python
+export ZSTD_SYS_USE_PKG_CONFIG=1
%pyproject_wheel
%endif
%install
%if %{without test}
-pushd %{modname}-python
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%endif
%check
%if %{with test}
-pushd %{modname}-python
-%pytest_arch --ignore benchmarks
+%pytest_arch -n auto --ignore benchmarks
%endif
%if %{without test}
diff --git a/vendor.tar.xz b/vendor.tar.xz
index c558e9a..d005f3b 100644
--- a/vendor.tar.xz
+++ b/vendor.tar.xz
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:30f3940da29a76a9212d4b84386e4bb580456c8236e9384e989cce2c7e88fd78
-size 18761492
+oid sha256:143bb6d8474ca2f4acbe2081bc4eb4b9e7458aafde700734f6abbb3deaf05d90
+size 19202980