## START: Set by rpmautospec ## (rpmautospec version 0.8.4) ## 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 # We don’t normally run benchmarks, but it’s nice to be able to. %bcond benchmarks 0 Name: python-pyroaring Version: 1.0.4 Release: %autorelease Summary: Library for handling efficiently sorted integer sets # The source contains a bundled, amalgamated copy of croaring in # pyroaring/roaring.{h,c}; these two files are (Apache-2.0 OR MIT). We remove # them in %%prep, so they do not contribute to the licenses of the binary RPMs. License: MIT SourceLicense: %{license} AND (Apache-2.0 OR MIT) URL: https://github.com/Ezibenroc/PyRoaringBitMap Source: %{url}/archive/%{version}/PyRoaringBitMap-%{version}.tar.gz # Respect system compiler flags (no -O3) # # Downstream-only because upstream validly wants to add -O3, but we have not # proven it is justified. A casual comparative benchmark on x86_64 showed no # consistent and measurable improvement, and perhaps a small loss in some # microbenchmarks. This makes sense because we use the system croaring library, # and if there are any routines that benefit from -O3, they are likely to be in # those inner “hot” loops, not in the surrounding “glue” in the Python # extension. Patch: 0001-Respect-system-compiler-flags-no-O3.patch # Do not build bundled croaring library; link libroaring # # Removing the bundled copy and dealing with include paths are outside the # scope of this patch. # # Downstream-only for now; it would be nice to suggest an easy way to use a # system copy upstream, but it’s not immediately obvious how best to do this in # an upstreamable way. Patch: 0002-Do-not-build-bundled-croaring-library-link-libroarin.patch BuildSystem: pyproject BuildOption(generate_buildrequires): --tox --toxenv=cython3 BuildOption(install): --assert-license pyroaring BuildRequires: gcc-c++ BuildRequires: pkgconfig(roaring) %if %{with benchmarks} BuildRequires: %{py3_dist pandas} BuildRequires: %{py3_dist tabulate} %endif # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} %global common_description %{expand: An efficient and light-weight ordered set of integers. This is a Python wrapper for the C library CRoaring.} %description %{common_description} %package -n python3-pyroaring Summary: %{summary} %description -n python3-pyroaring %{common_description} %prep -a # Unbundle croaring rm pyroaring/roaring.c printf '#include <%s>\n' 'roaring/roaring.h' > pyroaring/roaring.h %check -a %tox --toxenv=%{toxenv} %if %{with benchmarks} %{py3_test_envvars} %{python3} ./quick_bench.py %endif %files -n python3-pyroaring -f %{pyproject_files} %doc README.rst %changelog ## START: Generated by rpmautospec * Thu Oct 08 2026 Benjamin A. Beasley - 1.0.4-1 - Update to 1.0.4 * Thu Oct 08 2026 Benjamin A. Beasley - 1.0.3-16 - Use the pyproject declarative buildsystem * Thu Oct 08 2026 Benjamin A. Beasley - 1.0.3-15 - Add a bcond to optionally run benchmarks * Thu Oct 08 2026 Benjamin A. Beasley - 1.0.3-14 - Unbundle croaring * Thu Oct 08 2026 Benjamin A. Beasley - 1.0.3-13 - Respect system compiler flags (no -O3) * Thu Oct 08 2026 Benjamin A. Beasley - 1.0.3-12 - Use pyproject long options * Thu Oct 08 2026 Benjamin A. Beasley - 1.0.3-11 - Assert that .dist-info contains a license file * Thu Oct 08 2026 Benjamin A. Beasley - 1.0.3-10 - Update Summary and description from upstream * Wed Jul 22 2026 Python Maint - 1.0.3-5 - Rebuilt for Python 3.15.0b4 ABI change * Thu Jul 16 2026 Fedora Release Engineering - 1.0.3-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild * Wed Jun 03 2026 Python Maint - 1.0.3-3 - Rebuilt for Python 3.15 * Sat Jan 17 2026 Fedora Release Engineering - 1.0.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild * Thu Oct 09 2025 Packit - 1.0.3-1 - Update to 1.0.3 upstream release - Resolves: rhbz#2402686 * Fri Jul 25 2025 Sandro - 1.0.2-1 - Update to 1.0.2 * Fri Jul 25 2025 Fedora Release Engineering - 1.0.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild * Tue Jun 03 2025 Python Maint - 1.0.1-2 - Rebuilt for Python 3.14 * Fri May 09 2025 Packit - 1.0.1-1 - Update to 1.0.1 upstream release - Resolves: rhbz#2365187 * Sat Jan 18 2025 Fedora Release Engineering - 1.0.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild * Tue Sep 03 2024 Packit - 1.0.0-1 - Update to 1.0.0 upstream release - Resolves: rhbz#2309582 * Fri Jul 19 2024 Fedora Release Engineering - 0.4.5-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Fri Jun 07 2024 Python Maint - 0.4.5-5 - Rebuilt for Python 3.13 * Fri Jan 26 2024 Fedora Release Engineering - 0.4.5-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Mon Jan 22 2024 Fedora Release Engineering - 0.4.5-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Wed Jan 17 2024 Sandro - 0.4.5-2 - Stop building for i686 * Wed Jan 10 2024 Packit - 0.4.5-1 - [packit] 0.4.5 upstream release - Resolves rhbz#2257741 * Tue Nov 14 2023 Sandro - 0.4.4-3 - Add Packit config * Tue Sep 05 2023 Sandro - 0.4.4-1 - Update to 0.4.4 (RHBZ#2237127) - Use Cython 3.x * Thu Aug 31 2023 Sandro - 0.4.2-1 - Initial release (RHBZ#2236138) ## END: Generated by rpmautospec