- Update to 3.14.0~b3:

- Tests
    - gh-132815: Fix test__opcode: add JUMP_BACKWARD to
      specialization stats.
    - gh-135489: Show verbose output for failing tests during PGO
      profiling step with –enable-optimizations.
    - gh-135120: Add test.support.subTests().
  - Security
    - gh-135462: Fix quadratic complexity in processing specially
      crafted input in html.parser.HTMLParser. End-of-file errors
      are now handled according to the HTML5 specs – comments and
      declarations are automatically closed, tags are ignored.
    - gh-135034: Fixes multiple issues that allowed tarfile
      extraction filters (filter="data" and filter="tar") to be
      bypassed using crafted symlinks and hard links.
      Addresses CVE 2024-12718, CVE 2025-4138, CVE 2025-4330, and
      CVE 2025-4517.
  - Library
    - gh-65697: configparser’s error message when attempting to
      write an invalid key is now more helpful.
    - gh-135497: Fix os.getlogin() failing for longer usernames
      on BSD-based platforms.
    - gh-135429: Fix the argument mismatch in _lsprof for
      PY_THROW event.
    - gh-135368: Fix unittest.mock.Mock generation on
      dataclasses.dataclass() objects. Now all special attributes
      are set as it was before gh-124429.
    - gh-133967: Do not normalize locale name ‘C.UTF-8’ to
      ‘en_US.UTF-8’.
    - gh-135321: Raise a correct exception for values greater

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=73
This commit is contained in:
2025-06-21 22:34:13 +00:00
committed by Matěj Cepl
parent 92dfccd87c
commit 9424e36edf
7 changed files with 11 additions and 528 deletions

BIN
Python-3.14.0b2.tar.xz (Stored with Git LFS)

Binary file not shown.

File diff suppressed because one or more lines are too long

BIN
Python-3.14.0b3.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -2,9 +2,11 @@
Lib/test/test_compile.py | 5 +++++
1 file changed, 5 insertions(+)
--- a/Lib/test/test_compile.py
+++ b/Lib/test/test_compile.py
@@ -25,6 +25,9 @@ from test.support import (script_helper,
Index: Python-3.14.0b3/Lib/test/test_compile.py
===================================================================
--- Python-3.14.0b3.orig/Lib/test/test_compile.py 2025-06-22 00:32:01.975698954 +0200
+++ Python-3.14.0b3/Lib/test/test_compile.py 2025-06-22 00:32:07.740981155 +0200
@@ -24,6 +24,9 @@
from test.support.bytecode_helper import instructions_with_positions
from test.support.os_helper import FakePath

View File

@@ -1,522 +1,3 @@
-------------------------------------------------------------------
Wed Oct 15 09:22:40 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Use sed to remove "--fail-on-warning" config from Makefile instead
of the patch gh139257-Support-docutils-0.22.patch
-------------------------------------------------------------------
Thu Oct 9 09:10:23 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Fix python314:doc package build with docutils 0.22. Remove the
"SPHINXERRORHANDLING = --fail-on-warning" from Doc/Makefile using
the gh139257-Support-docutils-0.22.patch.
-------------------------------------------------------------------
Wed Oct 8 08:55:51 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Summary Release highlights
Python 3.14 is the latest stable release of the Python
programming language, with a mix of changes to the language,
the implementation, and the standard library. The biggest
changes include template string literals, deferred evaluation
of annotations, and support for subinterpreters in the standard
library.
The library changes include significantly improved capabilities
for introspection in asyncio, support for Zstandard via a new
compression.zstd module, syntax highlighting in the REPL, as
well as the usual deprecations and removals, and improvements
in user-friendliness and correctness.
- Interpreter improvements:
- PEP 649 and PEP 749: Deferred evaluation of annotations
- PEP 734: Multiple interpreters in the standard library
- PEP 750: Template strings
- PEP 758: Allow except and except* expressions without
brackets
- PEP 765: Control flow in finally blocks
- PEP 768: Safe external debugger interface for CPython
- A new type of interpreter
- Free-threaded mode improvements
- Improved error messages
- Incremental garbage collection
- Significant improvements in the standard library:
- PEP 784: Zstandard support in the standard library
- Asyncio introspection capabilities
- Concurrent safe warnings control
- Syntax highlighting in the default interactive shell, and
color output in several standard library CLIs
- C API improvements:
- PEP 741: Python configuration C API
- Platform support:
- PEP 776: Emscripten is now an officially supported
platform, at tier 3.
- Release changes:
- PEP 779: Free-threaded Python is officially supported
- PEP 761: PGP signatures have been discontinued for official
releases
- Windows and macOS binary releases now support the
experimental just-in-time compiler
- Binary releases for Android are now provided
-------------------------------------------------------------------
Wed Oct 1 05:31:47 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Add _zstd to the built package and libzstd as BuildRequries, boo#1250659
-------------------------------------------------------------------
Mon Sep 29 06:52:07 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Add gh139257-Support-docutils-0.22.patch to fix build with latest
docutils (>=0.22) gh#python/cpython#139257
-------------------------------------------------------------------
Thu Sep 18 16:17:21 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Update to 3.14.0~rc3:
- Tools/Demos
- gh-137873: The iOS test runner has been simplified,
resolving some issues that have been observed using
the runner in GitHub Actions and Azure Pipelines test
environments.
- Security
- gh-135661: Fix CDATA section parsing in
html.parser.HTMLParser according to the HTML5 standard: ]
]> and ]] > no longer end the CDATA section. Add private
method _set_support_cdata() which can be used to specify
how to parse <[CDATA[ — as a CDATA section in foreign
content (SVG or MathML) or as a bogus comment in the HTML
namespace.
- Library
- gh-138998: Update bundled libexpat to 2.7.2
- gh-118803: Add back collections.abc.ByteString and
typing.ByteString. Both had been removed in prior alpha,
beta and release candidates for Python 3.14, but their
removal has now been postponed to Python 3.17.
- gh-137226: Fix typing.get_type_hints() calls on generic
typing.TypedDict classes defined with string annotations.
- gh-138804: Raise TypeError instead of AttributeError when
an argument of incorrect type is passed to shlex.quote().
This restores the behavior of the function prior to 3.14.
- gh-128636: Fix crash in PyREPL when os.environ is
overwritten with an invalid value for mac
- gh-138514: Raise ValueError when a multi-character string
is passed to the echo_char parameter of getpass.getpass().
Patch by Benjamin Johnson.
- gh-138515: email is added to Emscripten build.
- gh-99948: ctypes.util.find_library() now works in
Emscripten build.
- gh-138253: Add the block parameter in the put() and
get() methods of the concurrent.interpreters queues for
compatibility with the queue.Queue interface.
- gh-138133: Prevent infinite traceback loop when sending
CTRL^C to Python through strace.
- gh-134869: Fix an issue where pressing Ctrl+C during tab
completion in the REPL would leave the autocompletion menu
in a corrupted state.
- gh-90548: Fix musl detection for platform.libc_ver() on
Alpine Linux if compiled with strip-all.
- gh-136134: SMTP.auth_cram_md5() now raises an SMTPException
instead of a ValueError if Python has been built without
MD5 support. In particular, SMTP clients will not attempt
to use this method even if the remote server is assumed to
support it. Patch by Bénédikt Tran.
- gh-136134: IMAP4.login_cram_md5 now raises an IMAP4.error
if CRAM-MD5 authentication is not supported. Patch by
Bénédikt Tran.
- gh-134953: Expand _colorize theme with keyword_constant and
implement in repl.
- Core and Builtins
- gh-71810: Raise OverflowError for (-1).to_bytes() for
signed conversions when bytes count is zero. Patch by
Sergey B Kirpichev.
- gh-138192: Fix contextvars initialization so that all
subinterpreters are assigned the MISSING value.
- gh-138479: Fix a crash when a generic objects
__typing_subst__ returns an object that isnt a tuple.
- gh-138372: Fix SyntaxWarning emitted for erroneous
subscript expressions involving template string literals.
Patch by Brian Schubert.
- gh-138318: The default REPL now avoids highlighting
built-in names (for instance set or format()) when they
are used as attribute names (for instance in value.set or
text.format).
- gh-138349: Fix crash in certain cases where a module
contains both a module-level annotation and a
comprehension.
- gh-137384: Fix a crash when using the warnings module in a
finalizer at shutdown. Patch by Kumar Aditya.
- gh-137883: Fix runaway recursion when calling a function
with keyword arguments.
- gh-137079: Fix keyword typo recognition when parsing files.
Patch by Pablo Galindo.
- gh-137728: Fix the JITs handling of many local variables.
This previously caused a segfault.
- gh-137576: Fix for incorrect source code being shown in
tracebacks from the Basic REPL when PYTHONSTARTUP is given.
Patch by Adam Hartz.
-------------------------------------------------------------------
Fri Sep 12 07:46:55 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Add gh138131-exclude-pycache-from-digest.patch fixing reproducible
build for python-nogil.
(bsc#1244680, gh#python/cpython#138131)
-------------------------------------------------------------------
Tue Sep 9 07:48:08 UTC 2025 - Dirk Müller <dmueller@suse.com>
- fix import_failed.map for python 3.14
-------------------------------------------------------------------
Fri Sep 5 06:47:57 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Move compression folder to python-base where it should be. This
module is used internally in gzip.py.
-------------------------------------------------------------------
Fri Aug 15 14:12:35 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Update to 3.14.0~rc2:
- Library
- gh-137426: Remove the code deprecation of
importlib.abc.ResourceLoader. It is documented as
deprecated, but left for backwards compatibility with other
classes in importlib.abc.
- gh-137282: Fix tab completion and dir() on
concurrent.futures.
- gh-137257: Bump the version of pip bundled in ensurepip to
version 25.2
- gh-137226: Fix behavior of
annotationlib.ForwardRef.evaluate() when the type_params
parameter is passed and the name of a type param is also
present in an enclosing scope.
- gh-130522: Fix unraisable TypeError raised during
interpreter shutdown in the threading module.
- gh-137059: Fix handling of file URLs with a
Windows drive letter in the URL authority by
urllib.request.url2pathname(). This fixes a regression in
earlier pre-releases of Python 3.14.
- gh-130577: tarfile now validates archives to ensure member
offsets are non-negative. (Contributed by Alexander Enrique
Urieles Nieto in gh-130577; CVE-2025-8194, bsc#1247249).
- gh-135228: When dataclasses replaces a class with a slotted
dataclass, the original class can now be garbage collected
again. Earlier changes in Python 3.14 caused this class to
always remain in existence together with the replacement
class synthesized by dataclasses.
- Documentation
- gh-136155: We are now checking for fatal errors in EPUB
builds in CI.
- Core and Builtins
- gh-137400: Fix a crash in the free threading
build when disabling profiling or tracing across
all threads with PyEval_SetProfileAllThreads()
or PyEval_SetTraceAllThreads() or their Python
equivalents threading.settrace_all_threads() and
threading.setprofile_all_threads().
- gh-137314: Fixed a regression where raw f-strings
incorrectly interpreted escape sequences in format
specifications. Raw f-strings now properly preserve literal
backslashes in format specs, matching the behavior from
Python 3.11. For example, rf"{obj:\xFF}" now correctly
produces '\\xFF' instead of 'ÿ'. Patch by Pablo Galindo.
- gh-137308: A standalone docstring in a node body is
optimized as a pass statement to ensure that the nodes
body is never empty. There was a ValueError in compile()
otherwise.
- gh-137288: Fix bug where some bytecode instructions of a
boolean expression are not associated with the correct
exception handler.
- gh-134291: Remove some newer macOS API usage from the JIT
compiler in order to restore compatibility with older OSX
10.15 deployment targets.
- gh-131338: Disable computed stack limit checks on non-glibc
linux platforms to fix crashes on deep recursion.
- gh-136870: Fix data races while de-instrumenting bytecode
of code objects running concurrently in threads.
- C API
- gh-137573: Mark _PyOptimizer_Optimize as Py_NO_INLINE to
prevent stack overflow crashes on macOS.
- Build
- gh-132339: Add support for OpenSSL 3.5.
- Replaces upstreamed patches:
- CVE-2025-8194-tarfile-no-neg-offsets.patch
-------------------------------------------------------------------
Fri Aug 1 20:09:24 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Add CVE-2025-8194-tarfile-no-neg-offsets.patch which now
validates archives to ensure member offsets are non-negative
(gh#python/cpython#130577, CVE-2025-8194, bsc#1247249).
-------------------------------------------------------------------
Wed Jul 23 08:05:20 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Update to 3.14.0~rc1:
- Tools/Demos
- gh-136251: Fixes and usability improvements for
Tools/wasm/emscripten/web_example
- Security
- gh-135661: Fix parsing attributes with whitespaces around
the = separator in html.parser.HTMLParser according to the
HTML5 standard.
- gh-118350: Fix support of escapable raw text mode (elements
“textarea” and “title”) in html.parser.HTMLParser.
- Library
- gh-136170: Removed the unreleased
zipfile.ZipFile.data_offset property added in 3.14.0a7 as
it wasnt fully clear which behavior it should have in some
situations so the result was not always what a user might
expect.
- gh-124621: pyrepl now works in Emscripten.
- gh-136874: Discard URL query and fragment in
urllib.request.url2pathname().
- gh-130645: Enable color help by default in argparse.
- gh-136549: Fix signature of threading.excepthook().
- gh-136523: Fix wave.Wave_write emitting an unraisable when
open raises.
- gh-52876: Add missing keepends (default True)
parameter to codecs.StreamReaderWriter.readline() and
codecs.StreamReaderWriter.readlines().
- gh-136470: Correct
concurrent.futures.InterpreterPoolExecutors default thread
name.
- gh-136476: Fix a bug that was causing the
get_async_stack_trace function to miss some frames in the
stack trace.
- gh-136434: Fix docs generation of UnboundItem in
concurrent.interpreters when running with -OO.
- gh-136380: Raises AttributeError when accessing
concurrent.futures.InterpreterPoolExecutor and
subinterpreters are not available.
- gh-134759: Fix UnboundLocalError in
email.message.Message.get_payload() when the payload to
decode is a bytes object. Patch by Kliment Lamonov.
- gh-134657: asyncio: Remove some private names from
asyncio.__all__.
- Core and Builtins
- gh-136801: Fix PyREPL syntax highlighting on match cases
after multi-line case. Contributed by Olga Matoula.
- gh-136421: Fix crash when initializing datetime
concurrently.
- gh-136541: Fix some issues with the perf trampolines
on x86-64 and aarch64. The trampolines were not being
generated correctly for some cases, which could lead to
the perf integration not working correctly. Patch by Pablo
Galindo.
- gh-136517: Fixed a typo that prevented printing of
uncollectable objects when the gc.DEBUG_UNCOLLECTABLE mode
was set.
- gh-136525: Fix issue where per-thread bytecode was not
instrumented for newly created threads.
- gh-132661: Interpolation.expression now has a default, the
empty string.
- gh-132661: Reflect recent PEP 750 change.
- Disallow concatenation of string.templatelib.Template and
str. Also, disallow implicit concatenation of t-string
literals with string or f-string literals.
- gh-116738: Make functions in grp thread-safe on the free
threaded build.
- gh-135148: Fixed a bug where f-string debug expressions
(using =) would incorrectly strip out parts of strings
containing escaped quotes and # characters. Patch by Pablo
Galindo.
- gh-133136: Limit excess memory usage in the free threading
build when a large dictionary or list is resized and
accessed by multiple threads.
- gh-91153: Fix a crash when a bytearray is concurrently
mutated during item assignment.
- gh-127971: Fix off-by-one read beyond the end of a string
in string search.
- C API
- gh-112068: Revert support of nullable arguments in
PyArg_Parse().
- gh-133296: New variants for the critical section API that
accept one or two PyMutex pointers rather than PyObject
instances are now public in the non-limited C API.
- gh-134009: Expose PyMutex_IsLocked() as part of the public
C API.
- Build
- gh-135621: PyREPL no longer depends on the curses standard
library. Contributed by Łukasz Langa.
-------------------------------------------------------------------
Thu Jul 10 10:17:47 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Fix gil/nogil package description, bsc#1246229
-------------------------------------------------------------------
Wed Jul 9 05:50:32 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Update to 3.14.0~b4:
- Tools/Demos
- gh-135968: Stubs for strip are now provided as part of an
iOS install.
- gh-133600: Backport file reorganization for Tools/wasm/wasi
This should make backporting future code changes easier. It
also simplifies instructions around how to do WASI builds
in the devguide.
- Tests
- gh-135966: The iOS testbed now handles the app_packages
folder as a site directory.
- gh-135494: Fix regrtest to support excluding tests from
--pgo tests. Patch by Victor Stinner.
- Security
- gh-136053: marshal: fix a possible crash when deserializing
slice objects.
- gh-135661: Fix parsing start and end tags in
html.parser.HTMLParser according to the HTML5 standard.
- Whitespaces no longer accepted between </ and the tag
name. E.g. </ script> does not end the script section.
- Vertical tabulation (\v) and non-ASCII whitespaces no
longer recognized as whitespaces. The only whitespaces
are \t\n\r\f and space.
- Null character (U+0000) no longer ends the tag name.
- Attributes and slashes after the tag name in end tags are
now ignored, instead of terminating after the first > in
quoted attribute value. E.g. </script/foo=">"/>.
- Multiple slashes and whitespaces between the last
attribute and closing > are now ignored in both start and
end tags. E.g. <a foo=bar/ //>.
- Multiple = between attribute name and value are no longer
collapsed. E.g. <a foo==bar> produces attribute “foo”
with value “=bar”.
- Whitespaces between the = separator and attribute name or
value are no longer ignored. E.g. <a foo =bar> produces
two attributes “foo” and “=bar”, both with value None; <a
foo= bar> produces two attributes: “foo” with value “”
and “bar” with value None.
- gh-102555: Fix comment parsing in html.parser.HTMLParser
according to the HTML5 standard. --!> now ends the comment.
-- > no longer ends the comment. Support abnormally ended
empty comments <--> and <--->.
- Library
- gh-136286: Fix pickling failures for protocols 0 and 1 for
many objects realted to subinterpreters.
- gh-136316: Improve support for evaluating nested forward
references in typing.evaluate_forward_ref().
- gh-85702: If zoneinfo._common.load_tzdata is given a
package without a resource a zoneinfo.ZoneInfoNotFoundError
is raised rather than a PermissionError. Patch by Victor
Stinner.
- gh-136028: Fix parsing month names containing “İ”
(U+0130, LATIN CAPITAL LETTER I WITH DOT ABOVE) in
time.strptime(). This affects locales az_AZ, ber_DZ, ber_MA
and crh_UA.
- gh-135995: In the palmos encoding, make byte 0x9b decode to
(U+203A - SINGLE RIGHT-POINTING ANGLE QUOTATION MARK).
- gh-53203: Fix time.strptime() for %c and %x formats on
locales byn_ER, wal_ET and lzh_TW, and for %X format on
locales ar_SA, bg_BG and lzh_TW.
- gh-91555: An earlier change, which was introduced in
3.14.0b2, has been reverted. It disabled logging for
a logger during handling of log messages for that
logger. Since the reversion, the behaviour should be as it
was before 3.14.0b2.
- gh-135878: Fixes a crash of types.SimpleNamespace on free
threading builds, when several threads were calling its
__repr__() method at the same time.
- gh-135836: Fix IndexError in
asyncio.loop.create_connection() that could occur when
non-OSError exception is raised during connection and
sockets close() raises OSError.
- gh-135836: Fix IndexError in
asyncio.loop.create_connection() that could occur when the
Happy Eyeballs algorithm resulted in an empty exceptions
list during connection attempts.
- gh-135855: Raise TypeError instead of SystemError when
_interpreters.set___main___attrs() is passed a non-dict
object. Patch by Brian Schubert.
- gh-135815: netrc: skip security checks if os.getuid() is
missing. Patch by Bénédikt Tran.
- gh-135640: Address bug where it was possible to call
xml.etree.ElementTree.ElementTree.write() on an ElementTree
object with an invalid root element. This behavior blanked
the file passed to write if it already existed.
- gh-135645: Added supports_isolated_interpreters field to
sys.implementation.
- gh-135646: Raise consistent NameError exceptions in
annotationlib.ForwardRef.evaluate()
- gh-135557: Fix races on heapq updates and list reads on the
free threaded build.
- gh-119180: Only fetch globals and locals if necessary in
annotationlib.get_annotations()
- gh-135561: Fix a crash on DEBUG builds when an HACL* HMAC
routine fails. Patch by Bénédikt Tran.
- gh-135487: Fix reprlib.Repr.repr_int() when given integers
with more than sys.get_int_max_str_digits() digits. Patch
by Bénédikt Tran.
- gh-135335: multiprocessing: Flush stdout and stderr after
preloading modules in the forkserver.
- gh-135069: Fix the “Invalid error handling” exception in
encodings.idna.IncrementalDecoder to correctly replace the
errors parameter.
- gh-130662: +Accept leading zeros in precision and width
fields for +:class:Decimal formatting, for example
format(Decimal(1.25), '.016f').
- gh-130662: Accept leading zeros in precision and
width fields for Fraction formatting, for example
format(Fraction(1, 3), '.016f').
- gh-87790: Support underscore and comma as thousands
separators in the fractional part for Fractions
formatting. Patch by Sergey B Kirpichev.
- gh-87790: Support underscore and comma as thousands
separators in the fractional part for Decimals
formatting. Patch by Sergey B Kirpichev.
- gh-130664: Handle corner-case for Fractions formatting:
treat zero-padding (preceding the width field by a zero
('0') character) as an equivalent to a fill character of
'0' with an alignment type of '=', just as in case of
floats.
- Documentation
- gh-136155: EPUB builds are fixed by excluding
non-XHTML-compatible tags.
- Core and Builtins
- gh-109700: Fix memory error handling in
PyDict_SetDefault().
- gh-78465: Fix error message for cls.__new__(cls, ...) where
cls is not instantiable builtin or extension type (with
tp_new set to NULL).
- gh-129958: Differentiate between t-strings and f-strings
in syntax error for newlines in format specifiers of
single-quoted interpolated strings.
- gh-135871: Non-blocking mutex lock attempts now return
immediately when the lock is busy instead of briefly
spinning in the free threading build.
- gh-135106: Restrict the trashcan mechanism to GCed objects
and untrack them while in the trashcan to prevent the GC
and trashcan mechanisms conflicting.
- gh-135607: Fix potential weakref races in an objects
destructor on the free threaded build.
- gh-135608: Fix a crash in the JIT involving attributes of
modules.
- gh-135543: Emit sys.remote_exec audit event
when sys.remote_exec() is called and migrate
remote_debugger_script to cpython.remote_debugger_script.
- gh-134280: Disable constant folding for ~ with a boolean
argument. This moves the deprecation warning from compile
time to runtime.
- C API
- gh-135906: Fix compilation errors when compiling the
internal headers with a C++ compiler.
- Build
- gh-134273: Add support for configuring compiler flags for
the JIT with CFLAGS_JIT
-------------------------------------------------------------------
Wed Jul 2 13:14:28 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Add bsc1243155-sphinx-non-determinism.patch (bsc#1243155) to
generate ids for audit_events using docname (reproducible
builds).
-------------------------------------------------------------------
Tue Jul 1 08:24:53 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Use one core to build doc. This will make sphinx doc build
reproducible.
bsc#1243155
-------------------------------------------------------------------
Sat Jun 21 22:30:08 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
- Update to 3.14.0~b3:

View File

@@ -162,8 +162,8 @@
# _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.14.0~b2
%define tarversion 3.14.0b2
Version: 3.14.0~b3
%define tarversion 3.14.0b3
%define tarname Python-%{tarversion}
Release: 0
Summary: Python 3 Interpreter