# # spec file for package python-orjson # # Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %{?sle15_python_module_pythons} Name: python-orjson Version: 3.10.15 Release: 1.2 Summary: Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy License: Apache-2.0 OR MIT URL: https://github.com/ijl/orjson # Update: Change version and run `osc rm orjson-*.tar.gz && 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: https://files.pythonhosted.org/packages/source/o/orjson/orjson-%{version}.tar.gz Source3: devendor-sdist.sh Source4: PACKAGING_README.md BuildRequires: %{python_module base >= 3.8} BuildRequires: %{python_module maturin >= 1} BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module wheel} BuildRequires: cargo-packaging BuildRequires: fdupes BuildRequires: python-rpm-macros # SECTION test requirements BuildRequires: %{python_module numpy} BuildRequires: %{python_module psutil} BuildRequires: %{python_module pytest} BuildRequires: %{python_module python-dateutil} BuildRequires: %{python_module pytz} BuildRequires: %{python_module xxhash} BuildRequires: timezone # /SECTION %python_subpackages %description orjson is a fast JSON library for Python. It benchmarks as the fastest Python library for JSON. %prep %autosetup -a1 -n orjson-%{version} %build %pyproject_wheel %install %pyproject_install %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 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-%{version}.dist-info %changelog * Fri Feb 7 2025 John Paul Adrian Glaubitz <adrian.glaubitz@suse.com> - Update to 3.10.15 * Publish PyPI manylinux aarch64 wheels built and tested on aarch64. * Publish PyPI musllinux aarch64 and arm7l wheels built and tested on aarch64. * Publish PyPI manylinux Python 3.13 wheels for i686, arm7l, ppc64le, and s390x. * Fri Jan 10 2025 Ben Greiner <code@bnavigator.de> - Update to 3.10.14 * Specify build system dependency on maturin>=1,<2 again. * Allocate memory using PyMem_Malloc() and similar APIs for integration with pymalloc, mimalloc, and tracemalloc. * Source distribution does not ship compressed test documents and relevant tests skip if fixtures are not present. * Build now depends on Rust 1.82 or later instead of 1.72. - Release 3.10.13 * Fix compatibility with maturin introducing a breaking change in 1.8.0 and specify a fixed version of maturin. Projects relying on any previous version being buildable from source by end users (via PEP 517) must upgrade to at least this version. - Remove pendulum from tests: Not desired in Ring1 and not maintained upstream. It's only supported on x86_64. * Mon Dec 2 2024 Johannes Kastl <opensuse_buildservice@ojkastl.de> - update to 3.10.12: * Changed - Publish PyPI manylinux i686 wheels. - Publish PyPI musllinux i686 and arm7l wheels. - Publish PyPI macOS wheels for Python 3.10 or later built on macOS 15. - Publish PyPI Windows wheels using trusted publishing. - update to 3.10.11: * Changed - Improve performance of UUIDs. - Publish PyPI wheels with trusted publishing and PEP 740 attestations. - Include text of licenses for vendored dependencies. - update to 3.10.10: * Fixed - Fix int serialization on s390x. This was introduced in 3.10.8. * Changed - Publish aarch64 manylinux_2_17 wheel for 3.13 to PyPI. - update to 3.10.9: * Fixed - Fix int serialization on 32-bit Python 3.8, 3.9, 3.10. This was introduced in 3.10.8. - update to 3.10.8: * Changed - int serialization no longer chains OverflowError to the - the __cause__ attribute of orjson.JSONEncodeError when range exceeded. - Compatibility with CPython 3.14 alpha 1. - Improve performance. * Mon Sep 9 2024 John Paul Adrian Glaubitz <adrian.glaubitz@suse.com> - Update to 3.10.7 * Improve performance of stable Rust amd64 builds. - from version 3.10.6 * Improve performance. - from version 3.10.5 * Improve performance. - from version 3.10.4 * Improve performance. - from version 3.10.3 * `manylinux` amd64 builds include runtime-detected AVX-512 `str` implementation. * Tests now compatible with numpy v2. - from version 3.10.2 * Fix crash serializing `str` introduced in 3.10.1. * Improve performance. * Drop support for arm7. - from version 3.10.1 * Serializing `numpy.ndarray` with non-native endianness raises `orjson.JSONEncodeError`. * Improve performance of serializing. - from version 3.10.0 * Support serializing `numpy.float16` (`numpy.half`). * sdist uses metadata 2.3 instead of 2.1. * Improve Windows PyPI builds. * Thu Feb 29 2024 Daniel Garcia <daniel.garcia@suse.com> - Update to 3.9.15 (bsc#1220489, CVE-2024-27454): * Implement recursion limit of 1024 on orjson.loads(). * Use byte-exact read on str formatting SIMD path to avoid crash. - 3.9.14: * Fix crash serializing str introduced in 3.9.11. * Build now depends on Rust 1.72 or later. - 3.9.13: * Serialization str escape uses only 128-bit SIMD. * Fix compatibility with CPython 3.13 alpha 3. * Publish musllinux_1_2 instead of musllinux_1_1 wheels. * Serialization uses small integer optimization in CPython 3.12 or later. - 3.9.12: * Minimal musllinux_1_1 build due to sporadic CI failure. - 3.9.11: * Improve performance of serializing. str is significantly faster. Documents using dict, list, and tuple are somewhat faster. * Sun Jan 14 2024 Ben Greiner <code@bnavigator.de> - Update to 3.9.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 2023 ecsos <ecsos@opensuse.org> - Add %%{?sle15_python_module_pythons} * Thu Apr 13 2023 Matej Cepl <mcepl@suse.com> - Update to 3.8.10: - Fix compatibility with CPython 3.12.0a7. - Fix compatibility with big-endian architectures. - Fix crash in serialization. - Fix parallel initialization of orjson. * Mon Jan 2 2023 Dirk Müller <dmueller@suse.com> - update to 3.8.3: * `orjson.dumps()` accepts `option=None` per `Optional[int]` type. * Fix tests on 32-bit for `numpy.intp` and `numpy.uintp`. * Build now depends on rustc 1.60 or later. * Support building with maturin 0.13 or 0.14. * Fri Oct 28 2022 Yogalakshmi Arunachalam <yarunachalam@suse.com> - Update to 3.8.1 - Build maintenance for Python 3.11. * Wed Sep 21 2022 Matej Cepl <mcepl@suse.com> - Update to 3.8.0: - Support serializing numpy.int16 and numpy.uint16. - Fix datetime regression tests with tzinfo 2022b. * Wed Sep 21 2022 John Vandenberg <jayvdb@gmail.com> - Activate test suite - Tidy spec * Wed Jul 13 2022 Adrian Schröter <adrian@suse.de> - initial package of version 3.7.7