diff --git a/_service b/_service
index f0b22d8..5419ad0 100644
--- a/_service
+++ b/_service
@@ -1,9 +1,8 @@
- orjson-*.tar.gz
+ orjson-*-devendored.tar.xz
xz
true
-
diff --git a/cargo_config b/cargo_config
deleted file mode 100644
index 6fb4ff4..0000000
--- a/cargo_config
+++ /dev/null
@@ -1,5 +0,0 @@
-[source.crates-io]
-replace-with = "vendored-sources"
-
-[source.vendored-sources]
-directory = "vendor"
\ No newline at end of file
diff --git a/devendor-sdist.sh b/devendor-sdist.sh
new file mode 100644
index 0000000..ccc29de
--- /dev/null
+++ b/devendor-sdist.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+file=$(find . -maxdepth 1 -name 'orjson-*.tar.gz' -print | sort -rn | tail -1)
+echo "Removing the cargo vendoring from upstream ${file}"
+dir=${file%.tar.gz}
+tar -x -z -f $file
+rm ${dir}/Cargo.lock
+rm -r ${dir}/include/cargo
+rm -r ${dir}/.cargo
+outfile=${dir}-devendored.tar.xz
+echo "Repackaging to ${outfile}"
+tar -c -J -f ${outfile} ${dir}
diff --git a/orjson-3.8.10.tar.gz b/orjson-3.8.10.tar.gz
deleted file mode 100644
index 978a0d4..0000000
--- a/orjson-3.8.10.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:dcf6adb4471b69875034afab51a14b64f1026bc968175a2bb02c5f6b358bd413
-size 836541
diff --git a/orjson-3.9.10-devendored.tar.xz b/orjson-3.9.10-devendored.tar.xz
new file mode 100644
index 0000000..322c602
--- /dev/null
+++ b/orjson-3.9.10-devendored.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c6c32df8331d4d6aa83a86a7eacc42c4ab74d7007dd85b999ca643a98c512fe8
+size 618568
diff --git a/orjson-3.9.10.tar.gz b/orjson-3.9.10.tar.gz
new file mode 100644
index 0000000..aaa989c
--- /dev/null
+++ b/orjson-3.9.10.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9ebbdbd6a046c304b1845e96fbcc5559cd296b4dfd3ad2509e33c4d9ce07d6a1
+size 5361203
diff --git a/python-orjson.changes b/python-orjson.changes
index cd60804..f58b114 100644
--- a/python-orjson.changes
+++ b/python-orjson.changes
@@ -1,3 +1,53 @@
+-------------------------------------------------------------------
+Sun Jan 14 14:46:13 UTC 2024 - Ben Greiner
+
+- Update to 3.8.10
+ * Fix debug assert failure on 3.12 --profile=dev build.
+- Release 3.9.9
+ * orjson module metadata explicitly marks subinterpreters as not
+ supported.
+- Release 3.9.8
+ * Improve performance.
+ * Drop support for Python 3.7.
+- Release 3.9.7
+ * Fix crash in orjson.loads() due to non-reentrant handling of
+ persistent buffer. This was introduced in 3.9.3.
+ * Handle some FFI removals in CPython 3.13.
+- Release 3.9.6
+ * Fix numpy reference leak on unsupported array dtype.
+ * Fix numpy.datetime64 reference handling.
+ * Minor performance improvements.
+- Release 3.9.5
+ * Remove futex from module import and initialization path.
+- Release 3.9.4
+ * Fix hash builder using default values.
+ * Fix non-release builds of orjson copying large deserialization
+ buffer from stack to heap. This was introduced in 3.9.3.
+- Release 3.9.3
+ * Fix compatibility with CPython 3.12.
+ * Support i686/x86 32-bit Python installs on Windows.
+- Release 3.9.2
+ * Fix the __cause__ exception on orjson.JSONEncodeError possibly
+ being denormalized, i.e., of type str instead of Exception.
+- Release 3.9.1
+ * Fix memory leak on chained tracebacks of exceptions raised in
+ default. This was introduced in 3.8.12.
+- Release 3.9.0
+ * orjson.Fragment includes already-serialized JSON in a document.
+- Release 3.8.13
+ * Source distribution contains all source code required for an
+ offline build.
+ * Build uses maturin v1.
+- Release 3.8.12
+ * Exceptions raised in default are now chained as the __cause__
+ attribute on orjson.JSONEncodeError.
+- Release 3.8.11
+ * orjson.loads() on an empty document has a specific error
+ message.
+- Avoid cargo_audit error because of shipped old vulnerable
+ zerocopy: Devendor the shipped cargo and update the cargo_vendor
+ service
+
-------------------------------------------------------------------
Sat Jun 10 17:38:51 UTC 2023 - ecsos
diff --git a/python-orjson.spec b/python-orjson.spec
index ade004d..3d15aeb 100644
--- a/python-orjson.spec
+++ b/python-orjson.spec
@@ -1,7 +1,7 @@
#
# spec file for package python-orjson
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,15 +18,18 @@
%{?sle15_python_module_pythons}
Name: python-orjson
-Version: 3.8.10
+Version: 3.9.10
Release: 0
Summary: Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy
License: Apache-2.0 OR MIT
URL: https://github.com/ijl/orjson
-Source: https://files.pythonhosted.org/packages/source/o/orjson/orjson-%{version}.tar.gz
+# Update: Run `osc service runall download_files && sh ./devendor-sdist.sh && osc service runall cargo_vendor`
+Source0: orjson-%{version}-devendored.tar.xz
Source1: vendor.tar.xz
-Source2: cargo_config
-BuildRequires: %{python_module maturin >= 0.12.19}
+Source2: https://files.pythonhosted.org/packages/source/o/orjson/orjson-%{version}.tar.gz
+Source3: devendor-sdist.sh
+BuildRequires: %{python_module base >= 3.8}
+BuildRequires: %{python_module maturin >= 1}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
@@ -51,8 +54,6 @@ It benchmarks as the fastest Python library for JSON.
%prep
%autosetup -a1 -n orjson-%{version}
-mkdir .cargo
-cp %{SOURCE2} .cargo/config
%build
%pyproject_wheel
@@ -62,13 +63,22 @@ cp %{SOURCE2} .cargo/config
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%check
+donttest="bydefaultnothingfails"
+%ifarch %ix86 %arm32
# test_numpy_array_d1_uintp and test_numpy_array_d1_intp fail on 32bit
+donttest="$donttest or test_numpy_array_d1_intp or test_numpy_array_d1_uintp"
+%endif
+%ifarch ppc64le
# test_memory_loads_keys occasionally fails on crashes on ppc64le
-%pytest_arch -k "not (test_numpy_array_d1_intp or test_numpy_array_d1_uintp or test_memory_loads_keys)"
+donttest="$donttest or test_memory_loads_keys"
+%endif
+
+%pytest_arch -k "not ($donttest)"
%files %{python_files}
%doc README.md CHANGELOG.md
%license LICENSE-APACHE LICENSE-MIT
-%{python_sitearch}/orjson*
+%{python_sitearch}/orjson
+%{python_sitearch}/orjson-%{version}.dist-info
%changelog
diff --git a/vendor.tar.xz b/vendor.tar.xz
index e9e47b7..87127d5 100644
--- a/vendor.tar.xz
+++ b/vendor.tar.xz
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4212333980ea33f43d2d9713e375d4a5dca888b1908ee3ced90d6d3b1dd8e21e
-size 1641596
+oid sha256:cd62c556274a51ac794081438ec9444bd979e91a6976383055804fec4fd82812
+size 2166832