Commit graph

76 commits

Author SHA1 Message Date
Karolina Surma
36fa2b0895 Update to Python 3.14.7 2026-08-11 11:36:15 +02:00
Fedora Release Engineering
4669c6fce0 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-16 22:48:27 +00:00
Karolina Surma
f26b7fcd3a Update to Python 3.14.6 2026-06-11 16:39:30 +02:00
Python Maint
576eed68c6 Rebuilt as non-main Python on Fedora 45+ 2026-06-03 12:28:22 +02:00
Miro Hrončok
fc230a4cf1 Update to 3.14.5 2026-05-11 12:58:21 +02:00
Miro Hrončok
b04f319cc6 Update to 3.14.5rc1
Patches 479, 480, 482 merged upstream.
2026-05-06 11:28:24 +02:00
Miro Hrončok
9025dc9760 Fixup using prebuilt JIT on ELN
See f45779a0aa for context.

After autoconf 2.73 landed in Fedora ELN,
the pre-built JIT stencils were rejected because of checksum mismatch.

This new patch adds an ability to circumvent that check.

It has been offered upstream in
https://github.com/python/cpython/issues/148646
https://github.com/python/cpython/pull/148647

While this has yet to be finalized upstream and might take a while, we need to fix the ELN build right away.

(When we build the stencils on rawhide for the next release,
the problem will shift from ELN with new autoconf to old Fedoras with old autoconf.)

Cherry-picked from python3.15 commit 4a1f3dae4f24af60227469c76acf9452f02c90dd
2026-04-17 13:37:57 +02:00
Miro Hrončok
f45779a0aa When comparing the pre-built JIT stencils for identity, exclude the checksum
When autoconf was updated from 2.72 to 2.73, we observed a change in the checksum:

    + diff -u /builddir/build/SOURCES/Python-3.15.0a7-x86_64-debug-jit_stencils.h build/debug/jit_stencils-x86_64-unknown-linux-gnu.h
    --- /builddir/build/SOURCES/Python-3.15.0a7-x86_64-debug-jit_stencils.h	2026-03-10 00:00:00.000000000 +0000
    +++ build/debug/jit_stencils-x86_64-unknown-linux-gnu.h	2026-03-31 21:12:53.391262973 +0000
    @@ -1,4 +1,4 @@
    -// 5e1dc452d67c20147c4ea13e692c2d3e7b0b47b24f8847354c58988c7ffa02bc
    +// c783e3946f774d4d83e8fdcca35678ec77006e1b96b12661fcbd3ee680d10e94
     // $ python3.14 /builddir/build/BUILD/python3.14-3.15.0_a7-build/Python-3.15.0a7/Tools/jit/build.py x86_64-redhat-linux-gnu --output-dir . --pyconfig-dir . --cflags= --llvm-version= --debug

     void
    error: Bad exit status from /var/tmp/rpm-tmp.G15BYi (%check)

The autoconf-generated pyconfig.h file is part of the checksum input:
https://github.com/python/cpython/blob/v3.15.0a8/Tools/jit/_targets.py#L75

Generally, the reason for this checksum is to prevent outdated JIT stencils
when Python is re-configured with different options
(or when the stencils generation code is updated).

As suspected, the change in checksum was caused by a change in pyconfig.h:

    --- pyconfig.h
    +++ pyconfig.h
    @@ -1882,6 +1882,10 @@
     #ifndef _ALL_SOURCE
     # define _ALL_SOURCE 1
     #endif
    +/* Enable extensions on Cosmopolitan Libc. */
    +#ifndef _COSMO_SOURCE
    +# define _COSMO_SOURCE 1
    +#endif
     /* Enable general extensions on macOS.  */
     #ifndef _DARWIN_C_SOURCE
     # define _DARWIN_C_SOURCE 1

This is expected, see https://cgit.git.savannah.gnu.org/cgit/autoconf.git/tree/NEWS?h=v2.73#n99

tl;dr when a new autoconf version changes the output of pyconfig.h, the checksum changes as well.

We cannot update the pre-built stencils with the new checksum
because that would make the build fail with older autoconf.

Instead, we ignore the checksum in this check. We care for the contents, not checksums.

Cherry-picked from python3.15 commit aab847c347b141083dbfbcf33fb38fb286dc2f62
2026-04-17 13:32:26 +02:00
Charalampos Stratakis
94e3c06cd7 Security fixes for CVE-2026-1502, CVE-2026-4786, CVE-2026-5713, CVE-2026-6100
Resolves: rhbz#2457944, rhbz#2458224, rhbz#2458488, rhbz#2458016
2026-04-16 03:25:31 +02:00
Miro Hrončok
25248beb99 Explicitly build with OpenSSL 3 for now
https://fedoraproject.org/wiki/Changes/OpenSSL40
2026-04-09 13:16:25 +02:00
Karolina Surma
e9c5c0c3c4 Update to Python 3.14.4 2026-04-08 13:03:09 +02:00
Miro Hrončok
fee84f7c55 Only explicitly require expat >= installed version when expat < 2.7.4
See https://src.fedoraproject.org/rpms/expat/c/4da0543472

(cherry picked from python3.15 commit ce1bde3e67443b7cf5df33bf58cb2ec75cc2c8e2)
2026-03-26 13:57:00 +00:00
Miro Hrončok
cf66620612 Remove a no longer needed workaround
https://github.com/python/cpython/issues/98782 was fixed in 3.12.0a6+

(cherry picked from python3.15 commit 8b2d02a1ede90cfe0392a79a4e65d5a9240b14ee)
2026-03-26 13:57:00 +00:00
Lumir Balhar
ca8cc60bc4 Security fix for CVE-2026-4519 (rhbz#2449730) 2026-03-26 09:12:33 +01:00
Karolina Surma
aaf6ec2cca Fix CVE-2025-15366, CVE-2025-15367 2026-02-10 09:55:09 +01:00
Karolina Surma
406c34b53b Update to Python 3.14.3 2026-02-09 16:54:54 +01:00
Miro Hrončok
dd282ac7f3 Remove an outdated workaround
This fix landed 6 years ago in 3.9.0a5.

3c97e1e457
2026-01-26 12:10:47 +01:00
Miro Hrončok
6e767cf9f4 Don't require the JIT stencils sources when the SRPM is built on other arch
When the SRPM is built in Koji on non-JIT architecture (such as ppc64le
or s390x), the jit_build_stencils bcond is set to false.

When we don't have the JIT stencils sources yet and we do a scratch
build to generate them,
we want the SRPM creation to succeed, regardless of architecture.

This way, the sources are only defined when they are required or when
they exist.

An alternative would be to set jit_build_stencils to true/false
in an arch-independent way, and later always check for:

%{with jit} && %{with jit_build_stencils}

But I think that might be confusing.
2026-01-26 12:10:47 +01:00
Karolina Surma
b4fbfd9335 Reenable passing tests 2026-01-26 12:10:47 +01:00
Fedora Release Engineering
8f8849fb7c Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 10:40:18 +00:00
Karolina Surma
5ce9d27cf1 Extend the expat requirement to differentiate between 32 and 64 arches
(cherry picked from python3.15 commit a5ca170d3f1e6e19f5df66f21482c2b10593af42)
2026-01-13 16:26:01 +01:00
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