We always switch rpmswheels, optimizations and tests when bootstrapping
new Python version, so they can be tied to the bootstrap conditional.
With that, switching the bootstrap in Koji side tag will be possible,
letting us to avoid separate "bootstrap" and "rebuild" commits.
We need to have it above the Release field, in order for the build NVR
to contain the ~bootstrap suffix and sort correctly (lower than the main
build).
This enables bootstrapping the package directly in Koji side tag.
Perf profiling showing the Python functions is only
supported on x86_64 and aarch64 at the moment.
Adding perf as a BuildRequires allows tests that utilize the
perf binary to run.
Before:
$ python3.14 -m timeit -s 'import sysconfig' 'sysconfig.get_paths()'
2000 loops, best of 5: 157 usec per loop
$ python3.14 -m timeit -s 'import sysconfig' 'sysconfig.get_paths()'
2000 loops, best of 5: 162 usec per loop
$ python3.14 -m timeit -s 'import sysconfig' 'sysconfig.get_paths()'
1000 loops, best of 5: 146 usec per loop
After:
$ python3.14 -m timeit -s 'import sysconfig' 'sysconfig.get_paths()'
5000 loops, best of 5: 75.9 usec per loop
$ python3.14 -m timeit -s 'import sysconfig' 'sysconfig.get_paths()'
5000 loops, best of 5: 77.1 usec per loop
$ python3.14 -m timeit -s 'import sysconfig' 'sysconfig.get_paths()'
5000 loops, best of 5: 76.2 usec per loop
The results are inconclusive on 3.13,
but we want the patch to be identical (if possible).
This can be shipped with the next update.
This is for https://fedoraproject.org/wiki/Changes/Separate_dtrace_package
This already BuildRequired /usr/bin/dtrace, but it also needs the headers:
In file included from /builddir/build/BUILD/python3.13-3.13.0_b4-build/Python-3.13.0b4/Include/pydtrace.h:11,
from /builddir/build/BUILD/python3.13-3.13.0_b4-build/Python-3.13.0b4/Python/ceval.c:40:
Include/pydtrace_probes.h:10:10: fatal error: sys/sdt.h: No such file or directory
10 | #include <sys/sdt.h>
| ^~~~~~~~~~~
compilation terminated.
- bzip2 is not used directly, only via bzip2-devel
- tar is not used directly either, %autosetup uses rpmuncompress
- desktop-file-utils is only used to install idle desktop file with main_python
- libappstream-glib is only used to validate idle appdata file with main_python
- /usr/sbin/ifconfig is no longer needed for test_uuid
- gcc-c++, glibc-all-langpacks, tzdata are only used in tests
(although something pulls in tzdata even with bootstrap without tests, so this one is hard to verify)
- gmp-devel in not needed since Python 2.4 (mpz module was removed)
- libGL-devel appears unused (and hard to find why it ever was needed)
Courtesy of https://github.com/mkoncek/unbreq