Commit graph

55 commits

Author SHA1 Message Date
Karolina Surma
8236063d9f Require at least the same expat version as used during the build
In the past we have had a versioned requirement on expat, e.g.:
https://src.fedoraproject.org/rpms/python3.13/c/c686992b6c25a39d0e4117053ddb669fd5998723
The explanation is still valid: if Python is built with an expat version
with new symbols, and used with an installed older expat, it won't work,
preventing crating new venvs, and many more.
This has happened again now with expat 2.7.2 introducing new symbols.

Reintroduce the versioned requirement and make it future-proof - the
generated version will always match at least the one present in the buildroot
during the Python build.
2026-01-07 12:28:29 +01:00
Miro Hrončok
78e3110af1 Make it easier to bootstrap new JIT stencils
Only define the JIT stencils sources when we must
(i.e. when building --wihtout jit_build_stencils)
or when the files already exist.

This allows to run rawhide CI scratch builds without the stencils,
but it also ensures the final SRPM contains them
even when built --with jit_build_stencils.

(cherry picked from python3.15 commit b2312d171d6a3280744a549f2c4daee492b66f44)
2025-12-21 16:48:00 +01:00
Miro Hrončok
e0d3024961 Remove a hack that was not needed on 3.14
When discussing whether to backport https://github.com/python/cpython/pull/141809
I discovered that this hack was not needed on this Python version.
2025-12-09 19:48:18 +01:00
Miro Hrončok
1f64e4dcdb Update to Python 3.14.2 2025-12-05 23:36:05 +01:00
Karolina Surma
d849d8f127 Update to Python 3.14.1 2025-12-05 22:26:25 +01:00
Miro Hrončok
e0af09b7c2 Inject SBOM into the installed wheels (when using the bundled ones) 2025-11-27 18:58:12 +00:00
Miro Hrončok
2986781bf7 Use prebuilt JIT stencils on platforms without LLVM 19
(cherry picked from python3.15 commit f3045380bba4fd8047571a76b233c5d955eb2577)
2025-11-25 19:29:30 +01:00
Karolina Surma
d60c500d01 Supplement tox from -freethreading-devel package 2025-10-24 13:06:09 +02:00
Karolina Surma
041b6663c5 Split freethreading package into analogs of the main Python
Assisted-By: Claude Sonnet 4.5
2025-10-18 10:51:04 +02:00
Karolina Surma
0bef7f1c35 trace is officially licensed as HPND-SMC
https://gitlab.com/fedora/legal/fedora-license-data/-/issues/657#note_2815942473
2025-10-15 11:14:33 +02:00
Karolina Surma
c6a9f6fe3b Update to Python 3.14.0 2025-10-07 17:08:27 +02:00
Karolina Surma
937d86cf62 Include licenses of incorporated software (rhbz#2133426)
Python includes a lot of differently licensed functions and
modules.
We gather the list from https://docs.python.org/3.14/license.html.

Detect changes to Doc/license.rst with file hash automatically in %prep.
2025-09-24 16:04:04 +02:00
Karolina Surma
0ca0aa8525 Update to Python 3.14.0rc3 2025-09-18 15:06:56 +02:00
Miro Hrončok
56f34b9695 Update to Python 3.14.0rc2
- The .pyc magic number was bumped
2025-08-14 18:25:42 +02:00
Fedora Release Engineering
8c03c574c2 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 11:19:30 +00:00
Miro Hrončok
482bb556a9 Update to Python 3.14.0rc1
_datetime was removed from installed files via
ecd97caaf5
2025-07-22 22:25:10 +02:00
Miro Hrončok
278f3033f3 Update to Python 3.14.0b4 2025-07-08 20:57:41 +02:00
Karolina Surma
c0c82aa771 Lower the minimal required autoconf version for EPEL 9 build 2025-06-27 08:38:41 +02:00
Karolina Surma
a419176c4c Switch the basic conditionals based on the bootstrap's value
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.
2025-06-27 08:37:59 +02:00
Karolina Surma
ed3fc5a80b Move the bootstrapping conditionals above the global metadata
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.
2025-06-25 12:48:51 +02:00
Karolina Surma
48ee6e9c72 Downstream patch: Skip tests not working with older expat version
This will ensure the tests run in Fedoras and EPEL 10, but are skipped
for EPEL 9.
2025-06-25 11:23:45 +02:00
Karolina Surma
1521b586f0 Define %python3_pkgversion based on the Python's status
Main Python should retain the value '3', non-main the major-minor one.
We need that to request the correctly versioned wheels for EPEL builds.
2025-06-24 14:26:44 +02:00
Karolina Surma
4041c8a86e Remove the upper version bound from expat library
It's already greater than 2.6 in all Fedoras.
2025-06-24 14:25:40 +02:00
Charalampos Stratakis
eb9909215c Enable PAC and BTI hardware protections for aarch64 2025-06-18 17:29:39 +02:00
Charalampos Stratakis
64000497af Revert "Add perf to the testing BuildRequires"
This reverts commit 1e24d38cd9.
2025-06-18 17:25:37 +02:00
Miro Hrončok
eda37b70f4 Update to Python 3.14.0b3
- The .pyc magic number was bumped
- python3.14-freethreading is no longer provisional
2025-06-18 00:25:23 +02:00
Python Maint
e3c3cbe96e Rebuilt for Python 3.14 2025-06-02 17:45:07 +02:00
Python Maint
b06a2a26f3 Bootstrap for Python 3.14 2025-06-02 10:51:01 +02:00
Miro Hrončok
09b6af7951 Build the _zstd module 2025-05-27 10:22:03 +02:00
Miro Hrončok
014f2b2430 Update to Python 3.14.0b2 2025-05-27 09:29:13 +02:00
Miro Hrončok
ef2d703504 Disable JIT on RHEL
For now on, until we figure out a way of building the JIT with pre-built stencils,
we disable the JIT on RHEL to avoid a dependency on a specific LLVM+clang version.

https://discuss.python.org/t/building-the-jit-with-pre-built-stencils/91838
https://src.fedoraproject.org/rpms/python3.14/pull-request/40
https://github.com/fedora-eln/eln/issues/207
2025-05-20 13:54:21 +02:00
Miro Hrončok
143d59d932 Verify bundled() provides for setuptools.whl 2025-05-13 19:29:44 +02:00
Charalampos Stratakis
1e24d38cd9 Add perf to the testing BuildRequires
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.
2025-05-12 16:39:54 +02:00
Karolina Surma
05411b4c04 Update to Python 3.14.0b1 2025-05-09 10:58:55 +02:00
Miro Hrončok
e3f12dbc36 Drop requirement on python-wheel-wheel with setuptools >= 71 2025-05-05 12:43:44 +02:00
Charalampos Stratakis
eee246a4f2 Apply Intel's CET for mitigation against control-flow hijacking attacks 2025-04-23 16:14:28 +02:00
Karolina Surma
81efe7427b Don't mangle the shebangs of test files
Shebangs are mangled from #!/bin/bash to #!/usr/bin/bash, which causes
the change in data_offset calculated in tests, resulting in a
test_zipfile failure:

FAIL: test_data_offset_with_exe_prepended
(test.test_zipfile.test_core.TestDataOffsetPrependedZip.test_data_offset_with_exe_prepended)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib64/python3.14/test/test_zipfile/test_core.py", line
  3431, in test_data_offset_with_exe_prepended
      self._test_data_offset(self.exe_zip)
      ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/usr/lib64/python3.14/test/test_zipfile/test_core.py",
  line 3428, in _test_data_offset
      self.assertEqual(zipfp.data_offset, 713)
      ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 717 != 713
2025-04-15 10:49:07 +02:00
Karolina Surma
608ee6ea09 Update to Python 3.14.0a7 2025-04-11 11:42:59 +02:00
Karolina Surma
4490e888a6 Update to Python 3.14.0a6 2025-03-18 09:03:12 +01:00
Karolina Surma
a6be165890 Update to Python 3.14.0a5 2025-02-18 08:53:49 +01:00
Miro Hrončok
71818464a3 Rebuilt with mpdecimal 4.0.0 2025-02-06 12:04:28 +01:00
Charalampos Stratakis
a9eff720fa Security fix for CVE-2025-0938
Fixes: rhbz#2343273
2025-02-04 04:26:18 +01:00
Miro Hrončok
524afa95d3 Drop version constraints from Recommends
This makes it easier for the package manager to determine "already broken" weak dependency.
When Python is updated, the Recommends now remain identical, rather than being "new".

Note that I don't know if dnf currently treats weak dependencies this way,
but the assumption is that it *might*.

The reverse dependency is versioned anyway, so the constraint is not necessary.

Intentionally not bumping the release, this can land with the next update.
2025-01-28 13:30:16 +01:00
Charalampos Stratakis
594724cb65 Remove redundant --with-system-ffi configure option
The option has been removed since Python 3.12

See: 25590eb5de
2025-01-23 02:04:40 +01:00
Karolina Surma
83a2832b2b Update to Python 3.14.0a4 2025-01-21 17:36:57 +01:00
Fedora Release Engineering
8d4a33cab3 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-18 21:09:13 +00:00
Miro Hrončok
85202ae1ee Bump the PYC magic number for a change in annotate functions 2025-01-02 11:30:18 +01:00
Karolina Surma
31971f96ff Update to Python 3.14.0a3
selftest and debugtest in tests/tests.yml exclude test_sysconfigdata_json
for now, reported upstream as:
https://github.com/python/cpython/issues/128055
2024-12-18 13:40:47 +01:00
Charalampos Stratakis
1e0faaa82b Security fix for CVE-2024-12254
Fixes: rhbz#2330928
2024-12-08 21:28:58 +01:00
Miro Hrončok
42592ff6ca Optimize patch 251 a tiny bit
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

This can be shipped together with the next alpha release.
2024-12-05 11:50:31 +01:00