diff --git a/CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch b/CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
index 1fcc621..2ebfe4e 100644
--- a/CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
+++ b/CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
@@ -19,7 +19,7 @@
def start_element(name, _):
--- a/Lib/test/test_sax.py
+++ b/Lib/test/test_sax.py
-@@ -1240,6 +1240,9 @@ class ExpatReaderTest(XmlTestBase):
+@@ -1241,6 +1241,9 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), start + b"")
diff --git a/Python-3.13.0.tar.xz b/Python-3.13.0.tar.xz
deleted file mode 100644
index ae97bcf..0000000
--- a/Python-3.13.0.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:086de5882e3cb310d4dca48457522e2e48018ecd43da9cdf827f6a0759efb07d
-size 22532980
diff --git a/Python-3.13.0.tar.xz.asc b/Python-3.13.0.tar.xz.asc
deleted file mode 100644
index 3bb64df..0000000
--- a/Python-3.13.0.tar.xz.asc
+++ /dev/null
@@ -1,18 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQKTBAABCgB9FiEEcWlgX2LHUTVtBUomqCHmgOX6YwUFAmcDjiVfFIAAAAAALgAo
-aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDcx
-Njk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUACgkQqCHmgOX6
-YwVfzg/8DjSks9r9qRY4JfQ1cPV39scH0jhMTF6xKQshMQt7joSySFB+D73S88MY
-J1guRc3hAvNhAKv9fb8ckG7Lcjd7g6lqyEjRFH1udYcNVYnLEmGacbPscQVIQHqT
-OF6A3QaQyE0bLN6BM6XUM0Jp3ial3yUOHoggkleEnZClnfmIJuUKBGTj9FkCvoPq
-wE9nhaYPRudqpNzG6usuVbXcz6tYnzpd6xztWIgHhCfL02i2cYvO9ytBxh2DczA8
-mI8WoDO9MqMxf2fvWZJGL1CvQS2bFnCDBh/fFlLp4grJqNehoggA8a63UJot++fa
-NRSH1Rl2hL9kEh+6Qy9/XwdU/fnJW95zBzyTjyJAwUng/kJ01AQ2rSw+SK3i7XQ7
-BziKuItmAf51NgFjGAXxA32sUH9R5XmPNIe3Ae9QCFa2+OxqBTYRFxHaXntWc9oV
-bCDCsc0+vXfP9Pb3rHwTSqE3aCqbOk2qM6013+Y74/I2/EFCqWhrwrTGFYSRihpv
-8BOoL49NxtodasARlAefoETJKytMvXhDH5WuVqcF/51fShID5NqkPBIEcHyFgeU0
-oS3O28Vs353ym0jMnVWYd9qRIcWlvZWrDvS2QImbdjVl8/FTX7CFkDK0rbNKeYWe
-IwxGju22KrUs/HTFVqe6MmUUgzsztUA2JxOhJGeyCUAS7FOX8G0=
-=r6IQ
------END PGP SIGNATURE-----
diff --git a/Python-3.14.0a1.tar.xz b/Python-3.14.0a1.tar.xz
new file mode 100644
index 0000000..6ee67d6
--- /dev/null
+++ b/Python-3.14.0a1.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3e464b0cbb7535e2db34262fd19a0a393d0e62be0f43b1513ed98379b054ead4
+size 22613224
diff --git a/Python-3.14.0a1.tar.xz.sigstore b/Python-3.14.0a1.tar.xz.sigstore
new file mode 100644
index 0000000..8faf344
--- /dev/null
+++ b/Python-3.14.0a1.tar.xz.sigstore
@@ -0,0 +1 @@
+{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzTCCAlOgAwIBAgIUXNqbdBZJ9fps7cdl20sumJAq9qYwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQxMDE1MjMwNDE2WhcNMjQxMDE1MjMxNDE2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEcg+1tju2Qlwd/FxtfGT0xvTr74Z2Y4BSc2TvaDBBmRA/PtimxzlSdMhGDsfqHQLGi+b8OuTFW3Zox2aqHpqDCaOCAXIwggFuMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUVSMKNgZVgAfm3Hd9XuRrKl5zt40wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABkpJsy7QAAAQDAEYwRAIgfOwKhNkvL09iC5/uS5iTGmnIQbXjbUM1woNbLOSYA8sCIEb2hbK7hH+jGAxJQEG9OUlqHb9GwD7TVMxHdVMzpmoOMAoGCCqGSM49BAMDA2gAMGUCMCBvcdz/4awBy5UdMRubMhvQD3eF8sdlrEhkk1ymjVZzJW2gD1KQdzIxHNK/7F9hegIxAJ+lw+fOlGvkIB+txzmL6pg9Pcsf2x9DVpisHPW4WUUbB7VORIamogW8OSAuQsZ6tQ=="}, "tlogEntries": [{"logIndex": "140392200", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1729033456", "inclusionPromise": {"signedEntryTimestamp": "MEUCIEXI2s1U7Sve7CZ/p571004SLB9u5/ZT3Hf4tW9plQL/AiEAvvOg7se8XhZ+UNi7Qujx6bQxP0nHTrORgbP0Rg+xLGQ="}, "inclusionProof": {"logIndex": "18487938", "rootHash": "hSjsoi7BjBrhzW7Ceq8eDHavGqCXfJDqV1uLCH43rP0=", "treeSize": "18487939", "hashes": ["u79/W8pLop367cAKW1nkrasjLkk950s+chPOGd+YM7g=", "6/AN6/VWkeVC6ibK0wOaJWLDgeGYUPzGu++z5+WRpLw=", "XDRVudeM0USBGv0wfrkbUFLX5UPIMbXd7Jn+1FaHfXw=", "scHEQm8K7oRERzNSJaNlqN0E1OdiAscc4j9riGrA62g=", "/mosl9RAejdUfiMbl+lvD5kTT8EMHe3G8ceEh5ZmcAs=", "DPPCrptvLQKGtAJAKyVPBnf+K6vDmh24s1GP202TKto=", "dXjYLwyHqcxTI9MyukBet+9OyYvXCMvvLJJl9sIYKyA=", "rAAfgmPXo8TJp1LmkVDhAYrf0WzE4X4/mDuW1pwVM3Y=", "gf+9m552B3PnkWnO0o4KdVvjcT3WVHLrCbf1DoVYKFw="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n18487939\nhSjsoi7BjBrhzW7Ceq8eDHavGqCXfJDqV1uLCH43rP0=\n\n\u2014 rekor.sigstore.dev wNI9ajBGAiEAgDgD5PWqYAJ4/g3gd2iOpEzZI/0I/WH5zpJyi9r4DcECIQC+1ibcP0dHlJ6v7Jd7rq8ojgP5eTKxsEv7tTU8erfyTQ==\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIzZTQ2NGIwY2JiNzUzNWUyZGIzNDI2MmZkMTlhMGEzOTNkMGU2MmJlMGY0M2IxNTEzZWQ5ODM3OWIwNTRlYWQ0In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQVRMMFNVQnVnWW5NSFZjbzYrcGtPTTkxSVd3cHQ3bis3VTdmZlNCeXU1WUFpQXU0RkxJSzJiU1puSmxranFkOUgwV3hBdnE3NmVPeFZ4L21JZytxN0N0NkE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZWRU5EUVd4UFowRjNTVUpCWjBsVldFNXhZbVJDV2tvNVpuQnpOMk5rYkRJd2MzVnRTa0Z4T1hGWmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFJlRTFFUlRGTmFrMTNUa1JGTWxkb1kwNU5hbEY0VFVSRk1VMXFUWGhPUkVVeVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZqWnlzeGRHcDFNbEZzZDJRdlJuaDBaa2RVTUhoMlZISTNORm95V1RSQ1UyTXlWSFlLWVVSQ1FtMVNRUzlRZEdsdGVIcHNVMlJOYUVkRWMyWnhTRkZNUjJrcllqaFBkVlJHVnpOYWIzZ3lZWEZJY0hGRVEyRlBRMEZZU1hkblowWjFUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZXVTAxTENrNW5XbFpuUVdadE0waGtPVmgxVW5KTGJEVjZkRFF3ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVZGWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpjS1FraHJRV1IzUWpGQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnJjRXB6ZVRkUlFRcEJRVkZFUVVWWmQxSkJTV2RtVDNkTGFFNXJka3d3T1dsRE5TOTFVelZwVkVkdGJrbFJZbGhxWWxWTk1YZHZUbUpNVDFOWlFUaHpRMGxGWWpKb1lrczNDbWhJSzJwSFFYaEtVVVZIT1U5VmJIRklZamxIZDBRM1ZGWk5lRWhrVmsxNmNHMXZUMDFCYjBkRFEzRkhVMDAwT1VKQlRVUkJNbWRCVFVkVlEwMURRbllLWTJSNkx6UmhkMEo1TlZWa1RWSjFZazFvZGxGRU0yVkdPSE5rYkhKRmFHdHJNWGx0YWxaYWVrcFhNbWRFTVV0UlpIcEplRWhPU3k4M1JqbG9aV2RKZUFwQlNpdHNkeXRtVDJ4SGRtdEpRaXQwZUhwdFREWndaemxRWTNObU1uZzVSRlp3YVhOSVVGYzBWMVZWWWtJM1ZrOVNTV0Z0YjJkWE9FOVRRWFZSYzFvMkNuUlJQVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}]}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "PkZLDLt1NeLbNCYv0ZoKOT0OYr4PQ7FRPtmDebBU6tQ="}, "signature": "MEQCIATL0SUBugYnMHVco6+pkOM91IWwpt7n+7U7ffSByu5YAiAu4FLIK2bSZnJlkjqd9H0WxAvq76eOxVx/mIg+q7Ct6A=="}}
diff --git a/baselibs.conf b/baselibs.conf
index fe24766..d43116d 100644
--- a/baselibs.conf
+++ b/baselibs.conf
@@ -1,3 +1,3 @@
-python313-base
-python313
-libpython3_13-1_0
+python314-base
+python314
+libpython3_14-1_0
diff --git a/bpo-31046_ensurepip_honours_prefix.patch b/bpo-31046_ensurepip_honours_prefix.patch
index d2a5ad9..557d669 100644
--- a/bpo-31046_ensurepip_honours_prefix.patch
+++ b/bpo-31046_ensurepip_honours_prefix.patch
@@ -119,7 +119,7 @@ Co-Authored-By: Xavier de Gaye
verbosity=args.verbosity,
--- a/Lib/test/test_ensurepip.py
+++ b/Lib/test/test_ensurepip.py
-@@ -101,6 +101,17 @@ class TestBootstrap(EnsurepipMixin, unit
+@@ -100,6 +100,17 @@ class TestBootstrap(EnsurepipMixin, unit
unittest.mock.ANY,
)
@@ -139,7 +139,7 @@ Co-Authored-By: Xavier de Gaye
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
-@@ -2157,7 +2157,7 @@ install: @FRAMEWORKINSTALLFIRST@ @INSTAL
+@@ -2209,7 +2209,7 @@ install: @FRAMEWORKINSTALLFIRST@ @INSTAL
install|*) ensurepip="" ;; \
esac; \
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@@ -148,7 +148,7 @@ Co-Authored-By: Xavier de Gaye
fi
.PHONY: altinstall
-@@ -2168,7 +2168,7 @@ altinstall: commoninstall
+@@ -2220,7 +2220,7 @@ altinstall: commoninstall
install|*) ensurepip="--altinstall" ;; \
esac; \
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
diff --git a/fix-test-recursion-limit-15.6.patch b/fix-test-recursion-limit-15.6.patch
index fcfe563..1d91f6e 100644
--- a/fix-test-recursion-limit-15.6.patch
+++ b/fix-test-recursion-limit-15.6.patch
@@ -4,7 +4,7 @@
--- a/Lib/test/test_compile.py
+++ b/Lib/test/test_compile.py
-@@ -21,6 +21,9 @@ from test.support import (script_helper,
+@@ -24,6 +24,9 @@ from test.support import (script_helper,
from test.support.bytecode_helper import instructions_with_positions
from test.support.os_helper import FakePath
@@ -14,7 +14,7 @@
class TestSpecifics(unittest.TestCase):
def compile_single(self, source):
-@@ -117,6 +120,7 @@ class TestSpecifics(unittest.TestCase):
+@@ -120,6 +123,7 @@ class TestSpecifics(unittest.TestCase):
self.assertEqual(d['z'], 12)
@unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI")
@@ -22,7 +22,7 @@
def test_extended_arg(self):
repeat = int(get_c_recursion_limit() * 0.9)
longexpr = 'x = x or ' + '-x' * repeat
-@@ -701,6 +705,7 @@ class TestSpecifics(unittest.TestCase):
+@@ -704,6 +708,7 @@ class TestSpecifics(unittest.TestCase):
@support.cpython_only
@unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI")
diff --git a/python-3.3.0b1-fix_date_time_compiler.patch b/python-3.3.0b1-fix_date_time_compiler.patch
index 6b739fa..ab4e2e6 100644
--- a/python-3.3.0b1-fix_date_time_compiler.patch
+++ b/python-3.3.0b1-fix_date_time_compiler.patch
@@ -4,7 +4,7 @@
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
-@@ -1679,11 +1679,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
+@@ -1730,11 +1730,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
$(DTRACE_OBJS) \
$(srcdir)/Modules/getbuildinfo.c
$(CC) -c $(PY_CORE_CFLAGS) \
diff --git a/python313-rpmlintrc b/python314-rpmlintrc
similarity index 100%
rename from python313-rpmlintrc
rename to python314-rpmlintrc
diff --git a/python313.changes b/python314.changes
similarity index 99%
rename from python313.changes
rename to python314.changes
index ba5bdc5..3b05033 100644
--- a/python313.changes
+++ b/python314.changes
@@ -1,3 +1,19 @@
+-------------------------------------------------------------------
+Wed Oct 16 07:00:15 UTC 2024 - Matej Cepl
+
+- Update to the first development version of 3.14.0a1.
+ Many new features for Python 3.14 are still being planned and
+ written. Among the new major new features and changes so far:
+ - PEP 649: deferred evaluation of annotations
+ - Improved error messages
+- Upstream doesn't sign tarballs with GPG anymore, but uses
+ sigstore.
+- Patches rebased and refreshed:
+ - CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
+ - bpo-31046_ensurepip_honours_prefix.patch
+ - fix-test-recursion-limit-15.6.patch
+ - python-3.3.0b1-fix_date_time_compiler.patch
+
-------------------------------------------------------------------
Thu Oct 10 11:18:19 UTC 2024 - Matej Cepl
diff --git a/python313.spec b/python314.spec
similarity index 98%
rename from python313.spec
rename to python314.spec
index 0dd92b8..c53c6b5 100644
--- a/python313.spec
+++ b/python314.spec
@@ -1,5 +1,5 @@
#
-# spec file for package python313
+# spec file for package python314
#
# Copyright (c) 2024 SUSE LLC
#
@@ -73,10 +73,10 @@
%endif
%endif
-%define python_pkg_name python313
+%define python_pkg_name python314
%if %{without GIL}
-%define python_pkg_name python313-nogil
-%define base_pkg_name python313
+%define python_pkg_name python314-nogil
+%define base_pkg_name python314
%endif
%if "%{python_pkg_name}" == "%{primary_python}"
@@ -103,7 +103,7 @@
# based on the current source tarball
%define python_version_abitag %(c=%{python_version}; echo ${c//./})
# FIXME %%define python_version_soname %%(c=%%{python_version}; echo ${c//./_})
-%define python_version_soname 3_13
+%define python_version_soname 3_14
# %%if 0%%(test -n "%%{tar_suffix}" && echo 1)
# %%define _version %%(echo "%%{_version}~%%{tar_suffix}")
# %%define tarversion %%{version}
@@ -111,7 +111,7 @@
# %%define tarversion %%{version}
# %%endif
# We don't process beta signs well
-%define folderversion 3.13.0
+%define folderversion 3.14.0
%define sitedir %{_libdir}/python%{python_version}
# three possible ABI kinds: m - pymalloc, d - debug build; see PEP 3149
%define abi_kind %{nil}
@@ -149,15 +149,15 @@
# _md5.cpython-38m-x86_64-linux-gnu.so
%define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so
Name: %{python_pkg_name}%{psuffix}
-Version: 3.13.0
-%define tarversion 3.13.0
+Version: 3.14.0
+%define tarversion 3.14.0a1
%define tarname Python-%{tarversion}
Release: 0
Summary: Python 3 Interpreter
License: Python-2.0
URL: https://www.python.org/
Source0: https://www.python.org/ftp/python/%{folderversion}/%{tarname}.tar.xz
-Source1: https://www.python.org/ftp/python/%{folderversion}/%{tarname}.tar.xz.asc
+Source1: https://www.python.org/ftp/python/%{folderversion}/%{tarname}.tar.xz.sigstore
Source2: baselibs.conf
Source3: README.SUSE
Source4: externally_managed.in
@@ -174,10 +174,7 @@ Source20: idle3.appdata.xml
# 3. mkdir Vendor && mv usr/include/* Vendor/
# 4. tar cJf bluez-devel-vendor.tar.xz Vendor/
Source21: bluez-devel-vendor.tar.xz
-Source98: python313-rpmlintrc
-# Tarball is signed by the GPG key of Pablo Galindo Salgado (0x64E628F8D684696D)
-# https://keybase.io/pablogsal/pgp_keys.asc?fingerprint=a035c8c19219ba821ecea86b64e628f8d684696d
-Source99: python.keyring
+Source98: python314-rpmlintrc
# The following files are not used in the build.
# They are listed here to work around missing functionality in rpmbuild,
# which would otherwise exclude them from distributed src.rpm files.
@@ -655,7 +652,7 @@ EXCLUDE="$EXCLUDE test_uuid"
# bsc#1195140 and bpo#37169 - test_capi is failing on openSUSE, and not sure why
EXCLUDE="$EXCLUDE test_capi"
-# Failing tests on python 3.13
+# Failing tests on python 3.14
EXCLUDE="$EXCLUDE test_regrtest test_sysconfig"
# Limit virtual memory to avoid spurious failures
@@ -750,7 +747,7 @@ install -d -m 755 %{buildroot}%{_sysconfdir}/idle%{python_abi}
# keep just idle3.X
rm %{buildroot}%{_bindir}/idle3
-# mve idle binary to idle3.13t to avoid conflict
+# mve idle binary to idle3.14t to avoid conflict
%if %{without GIL}
mv %{buildroot}%{_bindir}/idle%{python_version} %{buildroot}%{_bindir}/idle%{python_abi}
%endif