## START: Set by rpmautospec ## (rpmautospec version 0.7.3) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec # SPDX-License-Identifier: MIT # License text: https://spdx.org/licenses/MIT.html # Copyright (c) 2023 Maxwell G # Copyright (c) Fedora Project Authors # Specfile compatability: EPEL >= 9 or Fedora >= 37 and RPM >= 4.16 %bcond tests 1 Name: python-orjson Version: 3.10.12 Release: %autorelease Summary: Fast, correct Python JSON library License: Apache-2.0 OR MIT URL: https://github.com/ijl/orjson Source: %{pypi_source orjson} BuildRequires: tomcli BuildRequires: python3-devel BuildRequires: %{py3_dist pytest-forked} # Upstream restricts these test dependencies to particular Python interpreter # versions and architectures, but we would like to run the corresponding tests # everywhere. BuildRequires: %{py3_dist numpy} BuildRequires: %{py3_dist pendulum} # These are not in tests/requirements.txt, but they enable additional tests %ifnarch %{ix86} BuildRequires: %{py3_dist pandas} %endif BuildRequires: %{py3_dist psutil} BuildRequires: rust-packaging %global _description %{expand: orjson is a fast, correct Python JSON library supporting dataclasses, datetimes, and numpy} %description %{_description} %package -n python3-orjson Summary: %{summary} # (Apache-2.0 OR MIT) AND BSD-3-Clause # Apache-2.0 OR BSL-1.0 # Apache-2.0 OR MIT # BSL-1.0 # MIT # MIT OR Apache-2.0 (duplicate) # Unlicense OR MIT # # Bundled PyO3 crates in include/pyo3/ are also (Apache-2.0 OR MIT). License: %{shrink: (Apache-2.0 OR MIT) AND BSD-3-Clause AND (Apache-2.0 OR BSL-1.0) AND BSL-1.0 AND MIT AND (Unlicense OR MIT) } # Path to using published versions of pyo3-ffi/pyo3-build-config again? # https://github.com/ijl/orjson/issues/524 # # “You are welcome to work to upstream the diff if you find the vendoring # unsuitable for your organization's own preferences.” # # Note that the vendored crates are actually *forked* from a snapshot, # https://github.com/PyO3/pyo3/commit/dc415fae9f5eaa8ac0f6d0ea769b9ab28860898f; # see https://github.com/ijl/orjson/issues/524#issuecomment-2424170405 for # details. Provides: bundled(crate(pyo3-build-config)) = 0.23.0~dev^20241018gitdc415fa Provides: bundled(crate(pyo3-ffi)) = 0.23.0~dev^20241018gitdc415fa %description -n python3-orjson %{_description} %prep %autosetup -p1 -n orjson-%{version} %cargo_prep # Remove unstable features that require rust nightly; the avx512 feature also # requires the x86_64 architecture tomcli-set Cargo.toml del 'features.unstable-simd' tomcli-set Cargo.toml del 'features.avx512' # Remove unwind feature, which is not useful here: the comment above it says # “Avoid bundling libgcc on musl.” tomcli-set Cargo.toml del 'features.unwind' tomcli-set Cargo.toml del 'dependencies.unwinding' # Remove strict dependencies sed -Ei 's|(version = ")=|\1|' Cargo.toml # Remove bundled rust crates rm -r include/cargo # Remove bundled yyjson. rm -rv include/yyjson/ # Collect licenses for remaining vendored crates mkdir -p LICENSES.vendored/pyo3 cp -vp include/pyo3/LICENSE* LICENSES.vendored/pyo3/ # Remove unpackaged PyPI plugin sed -i '/pytest-random-order/d' test/requirements.txt %generate_buildrequires %pyproject_buildrequires %{?with_tests:test/requirements.txt} %cargo_generate_buildrequires for dir in include/pyo3/*/ do pushd "${dir}" >/dev/null %cargo_generate_buildrequires popd >/dev/null done %build export RUSTFLAGS='%{build_rustflags}' %cargo_license_summary %{cargo_license} > LICENSES.dependencies %pyproject_wheel %install %pyproject_install %pyproject_save_files orjson %check %pyproject_check_import %if %{with tests} # --forked: protect the pytest process against test segfaults # -rs: print the reasons for skipped tests %pytest --forked -rs %endif %files -n python3-orjson -f %{pyproject_files} %license LICENSE-MIT LICENSE-APACHE LICENSES.dependencies LICENSES.vendored/ %doc README.md %changelog ## START: Generated by rpmautospec * Mon Nov 25 2024 Benjamin A. Beasley - 3.10.12-1 - Update to 3.10.12. Fixes rhbz#2328508 * Sun Nov 03 2024 Benjamin A. Beasley - 3.10.11-1 - Update to 3.10.11. Fixes rhbz#2319918 - Both pyo3-ffi and pyo3-build-config are now vendored and forked - Add license files for vendored PyO3 crates * Sun Aug 11 2024 Benjamin A. Beasley - 3.10.7-1 - Update to 3.10.7. Fixes rhbz#2303811 * Mon Jul 22 2024 Benjamin A. Beasley - 3.10.6-1 - Update to 3.10.6. Fixes rhbz#2291190. * Fri Jul 19 2024 Fedora Release Engineering - 3.10.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Sat Jun 08 2024 Python Maint - 3.10.3-2 - Rebuilt for Python 3.13 * Sat Jun 01 2024 Benjamin A. Beasley - 3.10.3-1 - Update to 3.10.3. Fixes rhbz#2278078. * Fri May 24 2024 Benjamin A. Beasley - 3.10.1-2 - Rebuild with Rust 1.78 to fix incomplete debuginfo and backtraces * Mon Apr 15 2024 Maxwell G - 3.10.1-1 - Update to 3.10.1. Fixes rhbz#2264126. * Tue Feb 6 2024 Maxwell G - 3.9.13-1 - Update to 3.9.13. Fixes rhbz#2262570. * Fri Jan 26 2024 Fedora Release Engineering - 3.9.12-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Mon Jan 22 2024 Fedora Release Engineering - 3.9.12-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Thu Jan 18 2024 Maxwell G - 3.9.12-1 - Update to 3.9.12. Fixes rhbz#2259025. * Wed Nov 22 2023 Maxwell G - 3.9.10-1 - Update to 3.9.10. Fixes rhbz#2243767. * Tue Oct 10 2023 Maxwell G - 3.9.8-1 - Update to 3.9.8. Fixes rhbz#2229530. * Tue Jul 25 2023 Tomáš Hrnčiar - 3.9.2-2 - Backport patch to add PyType_GetDict for Python 3.12 - Fixes: rhbz#2220383 * Fri Jul 21 2023 Maxwell G - 3.9.2-1 - Update to 3.9.2. Fixes rhbz#2211703. * Fri Jul 21 2023 Maxwell G - 3.8.14-1 - Update to 3.8.14. * Fri Jul 21 2023 Fedora Release Engineering - 3.8.12-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Tue Jun 27 2023 Python Maint - 3.8.12-2 - Rebuilt for Python 3.12 * Thu May 18 2023 Maxwell G - 3.8.12-1 - Update to 3.8.12. - Use maturin as a build system when available * Fri May 5 2023 Maxwell G - 3.8.11-1 - Update to 3.8.11. Fixes rhbz#2193468. * Wed Apr 12 2023 Maxwell G - 3.8.10-1 - Initial package (rhbz#2184237). ## END: Generated by rpmautospec