Accepting request 1228813 from devel:languages:python:Factory

- Update to the second development version of 3.14.0a2.
  - Tools/Demos
    - gh-126807: Fix extraction warnings in pygettext.py caused
      by mistaking function definitions for function calls.
    - gh-126167: The iOS testbed was modified so that it can be
      used by third-party projects for testing purposes.
  - Tests
    - gh-126909: Fix test_os extended attribute tests to work on
      filesystems with 1 KiB xattr size limit.
    - gh-125730: Change make test to not run GUI tests by
      default. Use make ci to run tests with GUI tests instead.
    - gh-124295: Add translation tests to the argparse module.
  - Security
    - gh-126623: Upgrade libexpat to 2.6.4
  - Library
    - gh-85957: Add missing MIME types for images with RFCs: emf,
      fits, g3fax, jp2, jpm, jpx, t38, tiff-fx and wmf. Patch by
      Hugo van Kemenade.
    - gh-126920: Fix the prefix and exec_prefix keys from
      sysconfig.get_config_vars() incorrectly having the same
      value as sys.base_prefix and sys.base_exec_prefix,
      respectively, inside virtual environments. They now
      accurately reflect sys.prefix and sys.exec_prefix.
    - gh-67877: Fix memory leaks when regular expression matching
      terminates abruptly, either because of a signal or because
      memory allocation fails.
    - gh-125063: marshal now supports slice objects. The marshal
      format version was increased to 5.
    - gh-126789: Fixed the values of sysconfig.get_config_vars(),
      sysconfig.get_paths(), and their siblings when the site
      initialization happens after sysconfig has built a cache
      for sysconfig.get_config_vars().
    - gh-126188: Update bundled pip to 24.3.1
    - gh-126766: Fix issue where urllib.request.url2pathname()
      failed to discard two leading slashes introducing an empty
      authority section.
    - gh-126705: Allow os.PathLike to be a base for Protocols.
    - gh-126699: Allow collections.abc.AsyncIterator to be a base
      for Protocols.
    - gh-126654: Fix crash when non-dict was passed to several
      functions in _interpreters module.
    - gh-104745: Limit starting a patcher (from
      unittest.mock.patch() or unittest.mock.patch.object()) more
      than once without stopping it
    - gh-126595: Fix a crash when instantiating itertools.count
      with an initial count of sys.maxsize on debug builds. Patch
      by Bénédikt Tran.
    - gh-120423: Fix issue where urllib.request.pathname2url()
      mishandled Windows paths with embedded forward slashes.
    - gh-126565: Improve performances of zipfile.Path.open() for
      non-reading modes.
    - gh-126505: Fix bugs in compiling case-insensitive regular
      expressions with character classes containing non-BMP
      characters: upper-case non-BMP character did was ignored
      and the ASCII flag was ignored when matching a character
      range whose upper bound is beyond the BMP region.
    - gh-117378: Fixed the multiprocessing "forkserver"
      start method forkserver process to correctly inherit
      the parent’s sys.path during the importing of
      multiprocessing.set_forkserver_preload() modules in the
      same manner as sys.path is configured in workers before
      executing work items.
    - This bug caused some forkserver module preloading to
      silently fail to preload. This manifested as a performance
      degration in child processes when the sys.path was required
      due to additional repeated work in every worker.
    - It could also have a side effect of "" remaining in
      sys.path during forkserver preload imports instead of the
      absolute path from os.getcwd() at multiprocessing import
      time used in the worker sys.path.
    - The sys.path differences between phases in the child
      process could potentially have caused preload to import
      incorrect things from the wrong location. We are unaware of
      that actually having happened in practice.
    - gh-125679: The multiprocessing.Lock and
      multiprocessing.RLock repr values no longer say “unknown”
      on macOS.
    - gh-126476: Raise calendar.IllegalMonthError (now a subclass
      of IndexError) for calendar.month() when the input month is
      not correct.
    - gh-126489: The Python implementation of pickle no longer
      calls pickle.Pickler.persistent_id() for the result of
      persistent_id().
    - gh-126451: Register the contextvars.Context type to
      collections.abc.Mapping.
    - gh-126175: Add msg, doc, pos, lineno and colno attributes
      to tomllib.TOMLDecodeError. Deprecate instantiating with
      free-form arguments.
    - gh-89416: Add RFC 9559 MIME types for Matroska audiovisual
      container formats. Patch by Hugo van Kemenade.
    - gh-126417: Register the multiprocessing.managers.DictProxy
      and multiprocessing.managers.ListProxy types in
      multiprocessing.managers to collections.abc.MutableMapping
      and collections.abc.MutableSequence, respectively.
    - gh-126390: Add support for returning intermixed options and
      non-option arguments in order in getopt.gnu_getopt().
    - gh-126374: Add support for options with optional arguments
      in the getopt module.
    - gh-126363: Speed up pattern parsing in pathlib.Path.glob()
      by skipping creation of a pathlib.Path object for the
      pattern.
    - gh-126353: asyncio.get_event_loop() now does not implicitly
      creates an event loop. It now raises a RuntimeError if
      there is no set event loop. Patch by Kumar Aditya.
    - gh-126313: Fix an issue in curses.napms() when
      curses.initscr() has not yet been called. Patch by Bénédikt
      Tran.
    - gh-126303: Fix pickling and copying of os.sched_param
      objects.
    - gh-126138: Fix a use-after-free crash on asyncio.Task
      objects whose underlying coroutine yields an object that
      implements an evil __getattribute__(). Patch by Nico
      Posada.
    - gh-120057: Replace the os.environ.refresh() method with a
      new os.reload_environ() function. Patch by Victor Stinner.
    - gh-126220: Fix crash in cProfile.Profile and
      _lsprof.Profiler when their callbacks were directly called
      with 0 arguments.
    - gh-126212: Fix issue where urllib.request.pathname2url()
      and url2pathname() removed slashes from Windows DOS drive
      paths and URLs.
    - gh-126223: Raise a UnicodeEncodeError instead of a
      SystemError upon calling _interpreters.create() with an
      invalid Unicode character.
    - gh-126205: Fix issue where urllib.request.pathname2url()
      generated URLs beginning with four slashes (rather than
      two) when given a Windows UNC path.
    - gh-126156: Improved performances of creating Morsel objects
      by a factor of 3.8x.
    - gh-126105: Fix a crash in ast when the ast.AST._fields
      attribute is deleted.
    - gh-126106: Fixes a possible NULL pointer dereference in
      ssl.
    - gh-126080: Fix a use-after-free crash on asyncio.Task
      objects for which the underlying event loop implements an
      evil __getattribute__(). Reported by Nico-Posada. Patch by
      Bénédikt Tran.
    - gh-125322: Correct detection of complex numbers support in
      libffi.
    - gh-126083: Fixed a reference leak in asyncio.Task objects
      when reinitializing the same object with a non-None
      context. Patch by Nico Posada.
    - gh-126068: Fix exceptions in the argparse module so that
      only error messages for ArgumentError and ArgumentTypeError
      are now translated. ArgumentError is now only used for
      command line errors, not for logical errors in the
      program. TypeError is now raised instead of ValueError for
      some logical errors.
    - gh-125413: Add pathlib.Path.scandir() method to efficiently
      fetch directory children and their file attributes. This is
      a trivial wrapper of os.scandir().
    - gh-125984: Fix use-after-free crashes on asyncio.Future
      objects for which the underlying event loop implements an
      evil __getattribute__(). Reported by Nico-Posada. Patch by
      Bénédikt Tran.
    - gh-125926: Fix urllib.parse.urljoin() for base URI with
      undefined authority. Although RFC 3986 only specify
      reference resolution for absolute base URI, urljoin()
      should continue to return sensible result for relative base
      URI.
    - gh-125969: Fix an out-of-bounds crash when an evil
      asyncio.loop.call_soon() mutates the length of the internal
      callbacks list. Patch by Bénédikt Tran.
    - gh-125966: Fix a use-after-free crash in
      asyncio.Future.remove_done_callback(). Patch by Bénédikt
      Tran.
    - gh-125789: Fix possible crash when mutating list of
      callbacks returned by asyncio.Future._callbacks. It
      now always returns a new copy in C implementation
      _asyncio. Patch by Kumar Aditya.
    - gh-126916: Allow the initial parameter of
      functools.reduce() to be passed as a keyword
      argument. Patch by Sayandip Dutta.
    - gh-124452: Fix an issue in
      email.policy.EmailPolicy.header_source_parse() and
      email.policy.Compat32.header_source_parse() that introduced
      spurious leading whitespaces into header values when the
      header includes a newline character after the header name
      delimiter (:) and before the value.
    - gh-117941: argparse.BooleanOptionalAction now rejects
      option names starting with --no-.
    - gh-125884: Fixed the bug for pdb where it can’t set
      breakpoints on functions with certain annotations.
    - gh-125355: Fix several bugs in
      argparse.ArgumentParser.parse_intermixed_args().
    -     The parser no longer changes temporarily during
      parsing.
    -     Default values are not processed twice.
    -     Required mutually exclusive groups containing
      positional arguments are now supported.
    -     The missing arguments report now includes the names of
      all required optional and positional arguments.
    -     Unknown options can be intermixed with positional
      arguments in parse_known_intermixed_args().
    - gh-125767: super objects are now pickleable and copyable.
    - gh-124969: locale.nl_langinfo(locale.ALT_DIGITS) now
      returns a string again. The returned value consists of up
      to 100 semicolon-separated symbols.
    - gh-84850: Remove URLopener and FancyURLopener classes
      from urllib.request. They had previously raised
      DeprecationWarning since Python 3.3.
    - gh-125666: Avoid the exiting the interpreter if a null byte
      is given as input in the new REPL.
    - gh-125710: [Enum] fix hashable<->nonhashable comparisons
      for member values
    - gh-125631: Restore ability to set persistent_id and
      persistent_load attributes of instances of the Pickler and
      Unpickler classes in the pickle module.
    - gh-125378: Fixed the bug in pdb where after a multi-line
      command, an empty line repeats the first line of the
      multi-line command, instead of the full command.
    - gh-125682: Reject non-ASCII digits in the Python
      implementation of json.loads() conforming to the JSON
      specification.
    - gh-125660: Reject invalid unicode escapes for Python
      implementation of json.loads().
    - gh-52551: Use wcsftime() to implement time.strftime() on
      Windows.
    - gh-125259: Fix the notes removal logic for errors thrown in
      enum initialization.
    - gh-125633: Add function inspect.ispackage() to determine
      whether an object is a package or not.
    - gh-125614: In the FORWARDREF format of annotationlib,
      fix bug where nested expressions were not returned as
      annotationlib.ForwardRef format.
    - gh-125590: Allow FrameLocalsProxy to delete and pop if the
      key is not a fast variable.
    - gh-125600: Only show stale code warning in pdb when we
      display source code.
    - gh-125542: Deprecate passing keyword-only prefix_chars
      argument to argparse.ArgumentParser.add_argument_group().
    - gh-125541: Pressing Ctrl-C while blocked in
      threading.Lock.acquire(), threading.RLock.acquire(), and
      threading.Thread.join() now interrupts the function call
      and raises a KeyboardInterrupt exception on Windows,
      similar to how those functions behave on macOS and Linux.
    - gh-125519: Improve traceback if importlib.reload() is
      called with an object that is not a module. Patch by Alex
      Waygood.
    - gh-125451: Fix deadlock when
      concurrent.futures.ProcessPoolExecutor shuts down
      concurrently with an error when feeding a job to a worker
      process.
    - gh-125115: Fixed a bug in pdb where arguments starting with
      - can’t be passed to the debugged script.
    - gh-125398: Fix the conversion of the VIRTUAL_ENV path in
      the activate script in venv when running in Git Bash for
      Windows.
    - gh-125245: Fix race condition when importing
      collections.abc, which could incorrectly return an empty
      module.
    - gh-52551: Fix encoding issues in time.strftime(), the
      strftime() method of the datetime classes datetime, date
      and time and formatting of these classes. Characters
      not encodable in the current locale are now acceptable
      in the format string. Surrogate pairs and sequence
      of surrogatescape-encoded bytes are no longer
      recombinated. Embedded null character no longer terminates
      the format string.
    - gh-124984: Fixed thread safety in ssl in the free-threaded
      build. OpenSSL operations are now protected by a per-object
      lock.
    - gh-124651: Properly quote template strings in venv
      activation scripts.
    - gh-124694: We’ve added
      concurrent.futures.InterpreterPoolExecutor, which allows
      you to run code in multiple isolated interpreters. This
      allows you to circumvent the limitations of CPU-bound
      threads (due to the GIL). Patch by Eric Snow.
    - This addition is unrelated to PEP 734.
    - gh-58032: Deprecate the argparse.FileType type converter.
    - gh-99749: Adds a feature to optionally enable suggestions
      for argument choices and subparser names if mistyped by the
      user.
    - gh-58956: Fixed a bug in pdb where sometimes the breakpoint
      won’t trigger if it was set on a function which is already
      in the call stack.
    - gh-124111: The tkinter module can now be built to use
      either the new version 9.0.0 of Tcl/Tk or the latest
      release 8.6.15 of Tcl/Tk 8. Tcl/Tk 9 includes many
      improvements, both to the Tcl language and to the
      appearance and utility of the graphical user interface
      provided by Tk.
    - gh-80958: unittest discovery supports PEP 420 namespace
      packages as start directory again.
    - gh-123370: Fix the canvas not clearing after running
      turtledemo clock.
    - gh-89083: Add uuid.uuid8() for generating UUIDv8 objects as
      specified in RFC 9562. Patch by Bénédikt Tran
    - gh-122549: Add platform.invalidate_caches() to invalidate
      cached results.
    - gh-120754: Update unbounded read calls in zipfile to
      specify an explicit size putting a limit on how much data
      they may read. This also updates handling around ZIP max
      comment size to match the standard instead of reading
      comments that are one byte too long.
    - gh-121267: Improve the performance of tarfile when writing
      files, by caching user names and group names.
    - gh-70764: Fixed an issue where inspect.getclosurevars()
      would incorrectly classify an attribute name as a global
      variable when the name exists both as an attribute name and
      a global variable.
    - gh-118289: posixpath.realpath() now raises
      NotADirectoryError when strict mode is enabled and a
      non-directory path with a trailing slash is supplied.
    - gh-119826: Always return an absolute path for
      os.path.abspath() on Windows.
    - gh-97850: Remove deprecated pkgutil.get_loader() and
      pkgutil.find_loader().
    - gh-118986: Add socket.IPV6_RECVERR constant (available
      since Linux 2.2).
    - gh-116897: Accepting objects with false values (like 0 and
      []) except empty strings, byte-like objects and None in
      urllib.parse functions parse_qsl() and parse_qs() is now
      deprecated.
    - gh-101955: Fix SystemError when match regular expression
      pattern containing some combination of possessive
      quantifier, alternative and capture group.
    - gh-71936: Fix a race condition in
      multiprocessing.pool.Pool.
    - bpo-46128: Strip unittest.IsolatedAsyncioTestCase stack
      frames from reported stacktraces.
    - gh-84852: Add MIME types for MS Embedded OpenType, OpenType
      Layout, TrueType, WOFF 1.0 and 2.0 fonts. Patch by Sahil
      Prajapati and Hugo van Kemenade.
  - Documentation
    - gh-126622: Added stub pages for removed modules explaining
      their removal, where to find replacements, and linking to
      the last Python version that supported them. Contributed by
      Ned Batchelder.
    - gh-125277: Require Sphinx 7.2.6 or later to build the
      Python documentation. Patch by Adam Turner.
    - gh-60712: Include the object type in the lists of
      documented types. Change by Furkan Onder and Martin Panter.
  - Core and Builtins
    - gh-126795: Increase the threshold for JIT code
      warmup. Depending on platform and workload, this can result
      in performance gains of 1-9% and memory savings of 3-5%.
    - gh-126341: Now ValueError is raised instead of SystemError
      when trying to iterate over a released memoryview object.
    - gh-126688: Fix a crash when calling os.fork() on some
      operating systems, including SerenityOS.
    - gh-126066: Fix importlib to not write an incomplete
      .pyc files when a ulimit or some other operating system
      mechanism is preventing the write to go through fully.
    - gh-126222: Do not include count of “peek” items in
      _PyUop_num_popped. This ensures that the correct number of
      items are popped from the stack when a micro-op exits with
      an error.
    - gh-126366: Fix crash when using yield from on an object
      that raises an exception in its __iter__.
    - gh-126209: Fix an issue with skip_file_prefixes parameter
      which resulted in an inconsistent behaviour between the C
      and Python implementations of warnings.warn(). Patch by
      Daehee Kim.
    - gh-126312: Fix crash during garbage collection on an object
      frozen by gc.freeze() on the free-threaded build.
    - gh-103951: Relax optimization requirements to allow fast
      attribute access to module subclasses.
    - gh-126072: Following gh-126101, for Code Objects like
      lambda, annotation and type alias, we no longer add None to
      its co_consts.
    - gh-126195: Improve JIT performance by 1.4% on macOS Apple
      Silicon by using platform-specific memory protection
      APIs. Patch by Diego Russo.
    - gh-126139: Provide better error location when attempting to
      use a future statement with an unknown future feature.
    - gh-126072: Add a new attribute in co_flags to indicate
      whether the first item in co_consts is the docstring. If a
      code object has no docstring, None will NOT be inserted.
    - gh-126076: Relocated objects such as tuple, bytes and
      str objects are properly tracked by tracemalloc and its
      associated hooks. Patch by Pablo Galindo.
    - gh-90370: Avoid temporary tuple creation for vararg in
      argument passing with Argument Clinic generated code (if
      arguments either vararg or positional-only).
    - gh-126018: Fix a crash in sys.audit() when passing a
      non-string as first argument and Python was compiled in
      debug mode.
    - gh-126012: The memoryview type now supports subscription,
      making it a generic type.
    - gh-125837: Adds LOAD_SMALL_INT and LOAD_CONST_IMMORTAL
      instructions. LOAD_SMALL_INT pushes a small integer equal
      to the oparg to the stack. LOAD_CONST_IMMORTAL does the
      same as LOAD_CONST but is more efficient for immortal
      objects. Removes RETURN_CONST instruction.
    - gh-125942: On Android, the errors setting of sys.stdout was
      changed from surrogateescape to backslashreplace.
    - gh-125859: Fix a crash in the free threading build when
      gc.get_objects() or gc.get_referrers() is called during an
      in-progress garbage collection.
    - gh-125868: It was possible in 3.14.0a1 only for
      attribute lookup to give the wrong value. This was
      due to an incorrect specialization in very specific
      circumstances. This is fixed in 3.14.0a2.
    - gh-125498: The JIT has been updated to leverage Clang 19’s
      new preserve_none attribute, which supports more platforms
      and is more useful than LLVM’s existing ghccc calling
      convention. This also removes the need to manually patch
      the calling convention in LLVM IR, simplifying the JIT
      compilation process.
    - gh-125703: Correctly honour tracemalloc hooks in
      specialized Py_DECREF paths. Patch by Pablo Galindo
    - gh-125593: Use color to highlight error locations in
      traceback from exception group
    - gh-125017: Fix crash on certain accesses to the
      __annotations__ of staticmethod and classmethod objects.
    - gh-125588: The Python PEG generator can now use f-strings
      in the grammar actions. Patch by Pablo Galindo
    - gh-125444: Fix illegal instruction for older Arm
      architectures. Patch by Diego Russo, testing by Ross
      Burton.
    - gh-118423: Add a new INSTRUCTION_SIZE macro to the cases
      generator which returns the current instruction size.
    - gh-125038: Fix crash when iterating over a generator
      expression after direct changes on gi_frame.f_locals. Patch
      by Mikhail Efimov.
    - gh-124855: Don’t allow the JIT and perf support to be
      active at the same time. Patch by Pablo Galindo
    - gh-123714: Update JIT compilation to use LLVM 19
    - gh-123930: Improve the error message when a script
      shadowing a module from the standard library causes
      ImportError to be raised during a “from” import. Similarly,
      improve the error message when a script shadowing a third
      party module attempts to “from” import an attribute from
      that third party module while still initialising.
    - gh-119793: The map() built-in now has an optional
      keyword-only strict flag like zip() to check that all the
      iterables are of equal length. Patch by Wannes Boeykens.
    - gh-118950: Fix bug where SSLProtocol.connection_lost wasn’t
      getting called when OSError was thrown on writing to
      socket.
    - gh-113570: Fixed a bug in reprlib.repr where it incorrectly
      called the repr method on shadowed Python built-in types.
  - C API
    - gh-126554: Fix error handling in ctypes.CDLL objects which
      could result in a crash in rare situations.
    - gh-126061: Add PyLong_IsPositive(), PyLong_IsNegative() and
      PyLong_IsZero() for checking if a PyLongObject is positive,
      negative, or zero, respectively.
    - gh-125608: Fix a bug where dictionary watchers
      (e.g., PyDict_Watch()) on an object’s attribute dictionary
      (__dict__) were not triggered when the object’s attributes
      were modified.
    - gh-123619: Added the
      PyUnstable_Object_EnableDeferredRefcount() function for
      enabling PEP 703 deferred reference counting.
    - gh-121654: Add PyType_Freeze() function to make a type
      immutable. Patch by Victor Stinner.
    - gh-120026: The Py_HUGE_VAL macro is soft deprecated.
  - Build
    - gh-126691: Removed the --with-emscripten-target configure
      flag. We unified the node and browser options and the same
      build can now be used, independent of target runtime.
    - gh-123877: Use wasm32-wasip1 as the target triple for
      WASI instead of wasm32-wasi. The latter will eventually
      be reclaimed for WASI 1.0 while CPython currently only
      supports WASI preview1.
    - gh-126458: Disable SIMD support for HACL under WASI.
    - gh-89640: Hard-code float word ordering as little endian on
      WASM.
    - gh-126206: make clinic now runs Argument Clinic using the
      --force option, thus forcefully regenerating generated
      code.
    - gh-126187: Introduced Tools/wasm/emscripten.py to simplify
      doing Emscripten builds.
    - gh-124932: For cross builds, there is now support for
      having a different install prefix than the host_prefix used
      by getpath.py. This is set to / by default for Emscripten,
      on other platforms the default behavior is the same as
      before.
    - gh-125946: The minimum supported Android version is now 7.0
      (API level 24).
    - gh-125940: The Android build now supports 16 KB page sizes.
    - gh-89640: Improve detection of float word ordering on Linux
      when link-time optimizations are enabled.
    - gh-124928: Emscripten builds now require node >= 18.
    - gh-115382: Fix cross compile failures when the host and
      target SOABIs match.
- Remove upstreamed patches:
  - fix_test_generated_data.patch
  - fix_test_ftp_error.patch
  - gh125535-Lib_IntVector_Intrinsics_vec128.patch
- Don't limit clang to clang18.

OBS-URL: https://build.opensuse.org/request/show/1228813
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=3
This commit is contained in:
2024-12-08 10:37:19 +00:00
committed by Git OBS Bridge
15 changed files with 562 additions and 190 deletions

View File

@@ -24,58 +24,12 @@ Co-authored-by: Miro Hrončok <miro@hroncok.cz>
Co-authored-by: Michal Cyprian <m.cyprian@gmail.com>
Co-authored-by: Lumír Balhar <frenzy.madness@gmail.com>
---
Lib/site.py | 9 ++++++-
Lib/sysconfig.py | 49 +++++++++++++++++++++++++++++++++++++-
Lib/test/test_sysconfig.py | 17 +++++++++++--
3 files changed, 71 insertions(+), 4 deletions(-)
Lib/sysconfig/__init__.py | 51 ++++++++++++++++++++++++++++++++++++++++++++-
Lib/test/test_sysconfig.py | 17 +++++++++++++--
2 files changed, 65 insertions(+), 3 deletions(-)
Index: Python-3.13.0b4/Lib/test/test_sysconfig.py
===================================================================
--- Python-3.13.0b4.orig/Lib/test/test_sysconfig.py
+++ Python-3.13.0b4/Lib/test/test_sysconfig.py
@@ -121,8 +121,19 @@ class TestSysConfig(unittest.TestCase):
for scheme in _INSTALL_SCHEMES:
for name in _INSTALL_SCHEMES[scheme]:
expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars)
+ tested = get_path(name, scheme)
+ # https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
+ if tested.startswith('/usr/local'):
+ # /usr/local should only be used in posix_prefix
+ self.assertEqual(scheme, 'posix_prefix')
+ # Fedora CI runs tests for venv and virtualenv that check for other prefixes
+ self.assertEqual(sys.prefix, '/usr')
+ # When building the RPM of Python, %check runs this with RPM_BUILD_ROOT set
+ # Fedora CI runs this with RPM_BUILD_ROOT unset
+ self.assertNotIn('RPM_BUILD_ROOT', os.environ)
+ tested = tested.replace('/usr/local', '/usr')
self.assertEqual(
- os.path.normpath(get_path(name, scheme)),
+ os.path.normpath(tested),
os.path.normpath(expected),
)
@@ -377,7 +388,7 @@ class TestSysConfig(unittest.TestCase):
self.assertTrue(os.path.isfile(config_h), config_h)
def test_get_scheme_names(self):
- wanted = ['nt', 'posix_home', 'posix_prefix', 'posix_venv', 'nt_venv', 'venv']
+ wanted = ['nt', 'posix_home', 'posix_prefix', 'posix_venv', 'nt_venv', 'venv', 'rpm_prefix']
if HAS_USER_BASE:
wanted.extend(['nt_user', 'osx_framework_user', 'posix_user'])
self.assertEqual(get_scheme_names(), tuple(sorted(wanted)))
@@ -389,6 +400,8 @@ class TestSysConfig(unittest.TestCase):
cmd = "-c", "import sysconfig; print(sysconfig.get_platform())"
self.assertEqual(py.call_real(*cmd), py.call_link(*cmd))
+ @unittest.skipIf('RPM_BUILD_ROOT' not in os.environ,
+ "Test doesn't expect Fedora's paths")
def test_user_similar(self):
# Issue #8759: make sure the posix scheme for the users
# is similar to the global posix_prefix one
Index: Python-3.13.0b4/Lib/sysconfig/__init__.py
===================================================================
--- Python-3.13.0b4.orig/Lib/sysconfig/__init__.py
+++ Python-3.13.0b4/Lib/sysconfig/__init__.py
--- a/Lib/sysconfig/__init__.py
+++ b/Lib/sysconfig/__init__.py
@@ -106,6 +106,11 @@ if os.name == 'nt':
else:
_INSTALL_SCHEMES['venv'] = _INSTALL_SCHEMES['posix_venv']
@@ -88,7 +42,7 @@ Index: Python-3.13.0b4/Lib/sysconfig/__init__.py
def _get_implementation():
return 'Python'
@@ -167,6 +172,19 @@ if _HAS_USER_BASE:
@@ -167,13 +172,28 @@ if _HAS_USER_BASE:
},
}
@@ -108,7 +62,16 @@ Index: Python-3.13.0b4/Lib/sysconfig/__init__.py
_SCHEME_KEYS = ('stdlib', 'platstdlib', 'purelib', 'platlib', 'include',
'scripts', 'data')
@@ -261,11 +279,40 @@ def _extend_dict(target_dict, other_dict
_PY_VERSION = sys.version.split()[0]
_PY_VERSION_SHORT = f'{sys.version_info[0]}.{sys.version_info[1]}'
_PY_VERSION_SHORT_NO_DOT = f'{sys.version_info[0]}{sys.version_info[1]}'
+_PREFIX = os.path.normpath(sys.prefix)
_BASE_PREFIX = os.path.normpath(sys.base_prefix)
+_EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
_BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
# Mutex guarding initialization of _CONFIG_VARS.
_CONFIG_VARS_LOCK = threading.RLock()
@@ -259,11 +279,40 @@ def _extend_dict(target_dict, other_dict
target_dict[key] = value
@@ -150,3 +113,44 @@ Index: Python-3.13.0b4/Lib/sysconfig/__init__.py
if os.name == 'nt':
# On Windows we want to substitute 'lib' for schemes rather
# than the native value (without modifying vars, in case it
--- a/Lib/test/test_sysconfig.py
+++ b/Lib/test/test_sysconfig.py
@@ -130,8 +130,19 @@ class TestSysConfig(unittest.TestCase):
for scheme in _INSTALL_SCHEMES:
for name in _INSTALL_SCHEMES[scheme]:
expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars)
+ tested = get_path(name, scheme)
+ # https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
+ if tested.startswith('/usr/local'):
+ # /usr/local should only be used in posix_prefix
+ self.assertEqual(scheme, 'posix_prefix')
+ # Fedora CI runs tests for venv and virtualenv that check for other prefixes
+ self.assertEqual(sys.prefix, '/usr')
+ # When building the RPM of Python, %check runs this with RPM_BUILD_ROOT set
+ # Fedora CI runs this with RPM_BUILD_ROOT unset
+ self.assertNotIn('RPM_BUILD_ROOT', os.environ)
+ tested = tested.replace('/usr/local', '/usr')
self.assertEqual(
- os.path.normpath(get_path(name, scheme)),
+ os.path.normpath(tested),
os.path.normpath(expected),
)
@@ -386,7 +397,7 @@ class TestSysConfig(unittest.TestCase):
self.assertTrue(os.path.isfile(config_h), config_h)
def test_get_scheme_names(self):
- wanted = ['nt', 'posix_home', 'posix_prefix', 'posix_venv', 'nt_venv', 'venv']
+ wanted = ['nt', 'posix_home', 'posix_prefix', 'posix_venv', 'nt_venv', 'venv', 'rpm_prefix']
if HAS_USER_BASE:
wanted.extend(['nt_user', 'osx_framework_user', 'posix_user'])
self.assertEqual(get_scheme_names(), tuple(sorted(wanted)))
@@ -398,6 +409,8 @@ class TestSysConfig(unittest.TestCase):
cmd = "-c", "import sysconfig; print(sysconfig.get_platform())"
self.assertEqual(py.call_real(*cmd), py.call_link(*cmd))
+ @unittest.skipIf('RPM_BUILD_ROOT' not in os.environ,
+ "Test doesn't expect Fedora's paths")
def test_user_similar(self):
# Issue #8759: make sure the posix scheme for the users
# is similar to the global posix_prefix one

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3e464b0cbb7535e2db34262fd19a0a393d0e62be0f43b1513ed98379b054ead4
size 22613224

View File

@@ -1 +0,0 @@
{"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=="}}

BIN
Python-3.14.0a2.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

@@ -139,7 +139,7 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -2209,7 +2209,7 @@ install: @FRAMEWORKINSTALLFIRST@ @INSTAL
@@ -2228,7 +2228,7 @@ install: @FRAMEWORKINSTALLFIRST@ @INSTAL
install|*) ensurepip="" ;; \
esac; \
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@@ -148,7 +148,7 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
fi
.PHONY: altinstall
@@ -2220,7 +2220,7 @@ altinstall: commoninstall
@@ -2239,7 +2239,7 @@ altinstall: commoninstall
install|*) ensurepip="--altinstall" ;; \
esac; \
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \

View File

@@ -4,7 +4,7 @@
--- a/Lib/test/test_compile.py
+++ b/Lib/test/test_compile.py
@@ -24,6 +24,9 @@ from test.support import (script_helper,
@@ -25,6 +25,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):
@@ -120,6 +123,7 @@ class TestSpecifics(unittest.TestCase):
@@ -121,6 +124,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
@@ -704,6 +708,7 @@ class TestSpecifics(unittest.TestCase):
@@ -709,6 +713,7 @@ class TestSpecifics(unittest.TestCase):
@support.cpython_only
@unittest.skipIf(support.is_wasi, "exhausts limited stack on WASI")

View File

@@ -1,40 +0,0 @@
---
Lib/test/test_urllib2.py | 9 +++++++++
1 file changed, 9 insertions(+)
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -1,3 +1,4 @@
+import logging
import unittest
from test import support
from test.support import os_helper
@@ -29,6 +30,10 @@ import http.client
support.requires_working_socket(module=True)
+logging.basicConfig(format='%(levelname)s:%(funcName)s:%(message)s',
+ level=logging.DEBUG)
+log = logging.getLogger()
+
# XXX
# Request
# CacheFTPHandler (hard to write)
@@ -731,6 +736,9 @@ def sanepathname2url(path):
class HandlerTests(unittest.TestCase):
+ def setUp(self):
+ log.debug('Is network available: {}'.format(support.is_resource_enabled('network')))
+
def test_ftp(self):
class MockFTPWrapper:
def __init__(self, data):
@@ -794,6 +802,7 @@ class HandlerTests(unittest.TestCase):
self.assertEqual(headers.get("Content-type"), mimetype)
self.assertEqual(int(headers["Content-length"]), len(data))
+ @support.requires_resource('network')
def test_ftp_error(self):
class ErrorFTPHandler(urllib.request.FTPHandler):
def __init__(self, exception):

View File

@@ -1,34 +0,0 @@
---
Lib/test/test_ctypes/test_generated_structs.py | 7 +++++++
1 file changed, 7 insertions(+)
--- a/Lib/test/test_ctypes/test_generated_structs.py
+++ b/Lib/test/test_ctypes/test_generated_structs.py
@@ -12,6 +12,7 @@ Run this module to regenerate the files:
import unittest
from test.support import import_helper
import re
+import sys
from dataclasses import dataclass
from functools import cached_property
@@ -21,6 +22,11 @@ from ctypes import sizeof, alignment, po
_ctypes_test = import_helper.import_module("_ctypes_test")
+def is_32bit():
+ # or alternatively (slightly slower)
+ # (struct.calcsize("P") * 8) == 32
+ return not (sys.maxsize > 2**32)
+
# ctypes erases the difference between `c_int` and e.g.`c_int16`.
# To keep it, we'll use custom subclasses with the C name stashed in `_c_name`:
class c_bool(ctypes.c_bool):
@@ -415,6 +421,7 @@ class AnonBitfields(Structure):
class GeneratedTest(unittest.TestCase):
+ @unittest.skipIf(is_32bit(), 'fails on 32bit platform (gh#python/cpython#121938)')
def test_generated_data(self):
"""Check that a ctypes struct/union matches its C equivalent.

View File

@@ -1,37 +0,0 @@
From 091fd6240c6b263d848e8a5d20da042258f648b5 Mon Sep 17 00:00:00 2001
From: Jonathan Protzenko <protz@microsoft.com>
Date: Thu, 10 Oct 2024 11:59:06 +0200
Subject: [PATCH 1/2] Try for Debian x86
---
Misc/sbom.spdx.json | 4 ++--
Modules/_hacl/libintvector.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
--- a/Misc/sbom.spdx.json
+++ b/Misc/sbom.spdx.json
@@ -804,11 +804,11 @@
"checksums": [
{
"algorithm": "SHA1",
- "checksumValue": "d5d85ee8f0bd52781fe470d0bf73ec388ddb3999"
+ "checksumValue": "f4a33ad535768b860362ab0bd033a70da0b524b7"
},
{
"algorithm": "SHA256",
- "checksumValue": "9a421b998add98fe366374641c4edb27617ff539a59f0963879f345065d3d39d"
+ "checksumValue": "433cdf4ba80bc72e0cea5d4b420ff18676baeafdb5ba19adf5b7fb33e90b424b"
}
],
"fileName": "Modules/_hacl/libintvector.h"
--- a/Modules/_hacl/libintvector.h
+++ b/Modules/_hacl/libintvector.h
@@ -19,7 +19,7 @@
#define Lib_IntVector_Intrinsics_bit_mask64(x) -((x) & 1)
-#if defined(__x86_64__) || defined(_M_X64)
+#if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86)
#if defined(HACL_CAN_COMPILE_VEC128)

View File

@@ -4,7 +4,7 @@
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1730,11 +1730,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
@@ -1743,11 +1743,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
$(DTRACE_OBJS) \
$(srcdir)/Modules/getbuildinfo.c
$(CC) -c $(PY_CORE_CFLAGS) \
@@ -22,4 +22,4 @@
+
Modules/getpath.o: $(srcdir)/Modules/getpath.c Python/frozen_modules/getpath.h Makefile $(PYTHON_HEADERS)
$(CC) -c $(PY_CORE_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
-DPREFIX='"$(prefix)"' \
-DPREFIX='"$(host_prefix)"' \

View File

@@ -4,7 +4,7 @@
--- a/Lib/test/test_posix.py
+++ b/Lib/test/test_posix.py
@@ -435,7 +435,7 @@ class PosixTester(unittest.TestCase):
@@ -437,7 +437,7 @@ class PosixTester(unittest.TestCase):
def test_posix_fadvise(self):
fd = os.open(os_helper.TESTFN, os.O_RDONLY)
try:

View File

@@ -1,3 +1,491 @@
-------------------------------------------------------------------
Tue Nov 19 22:08:24 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
- Update to the second development version of 3.14.0a2.
- Tools/Demos
- gh-126807: Fix extraction warnings in pygettext.py caused
by mistaking function definitions for function calls.
- gh-126167: The iOS testbed was modified so that it can be
used by third-party projects for testing purposes.
- Tests
- gh-126909: Fix test_os extended attribute tests to work on
filesystems with 1 KiB xattr size limit.
- gh-125730: Change make test to not run GUI tests by
default. Use make ci to run tests with GUI tests instead.
- gh-124295: Add translation tests to the argparse module.
- Security
- gh-126623: Upgrade libexpat to 2.6.4
- Library
- gh-85957: Add missing MIME types for images with RFCs: emf,
fits, g3fax, jp2, jpm, jpx, t38, tiff-fx and wmf. Patch by
Hugo van Kemenade.
- gh-126920: Fix the prefix and exec_prefix keys from
sysconfig.get_config_vars() incorrectly having the same
value as sys.base_prefix and sys.base_exec_prefix,
respectively, inside virtual environments. They now
accurately reflect sys.prefix and sys.exec_prefix.
- gh-67877: Fix memory leaks when regular expression matching
terminates abruptly, either because of a signal or because
memory allocation fails.
- gh-125063: marshal now supports slice objects. The marshal
format version was increased to 5.
- gh-126789: Fixed the values of sysconfig.get_config_vars(),
sysconfig.get_paths(), and their siblings when the site
initialization happens after sysconfig has built a cache
for sysconfig.get_config_vars().
- gh-126188: Update bundled pip to 24.3.1
- gh-126766: Fix issue where urllib.request.url2pathname()
failed to discard two leading slashes introducing an empty
authority section.
- gh-126705: Allow os.PathLike to be a base for Protocols.
- gh-126699: Allow collections.abc.AsyncIterator to be a base
for Protocols.
- gh-126654: Fix crash when non-dict was passed to several
functions in _interpreters module.
- gh-104745: Limit starting a patcher (from
unittest.mock.patch() or unittest.mock.patch.object()) more
than once without stopping it
- gh-126595: Fix a crash when instantiating itertools.count
with an initial count of sys.maxsize on debug builds. Patch
by Bénédikt Tran.
- gh-120423: Fix issue where urllib.request.pathname2url()
mishandled Windows paths with embedded forward slashes.
- gh-126565: Improve performances of zipfile.Path.open() for
non-reading modes.
- gh-126505: Fix bugs in compiling case-insensitive regular
expressions with character classes containing non-BMP
characters: upper-case non-BMP character did was ignored
and the ASCII flag was ignored when matching a character
range whose upper bound is beyond the BMP region.
- gh-117378: Fixed the multiprocessing "forkserver"
start method forkserver process to correctly inherit
the parents sys.path during the importing of
multiprocessing.set_forkserver_preload() modules in the
same manner as sys.path is configured in workers before
executing work items.
- This bug caused some forkserver module preloading to
silently fail to preload. This manifested as a performance
degration in child processes when the sys.path was required
due to additional repeated work in every worker.
- It could also have a side effect of "" remaining in
sys.path during forkserver preload imports instead of the
absolute path from os.getcwd() at multiprocessing import
time used in the worker sys.path.
- The sys.path differences between phases in the child
process could potentially have caused preload to import
incorrect things from the wrong location. We are unaware of
that actually having happened in practice.
- gh-125679: The multiprocessing.Lock and
multiprocessing.RLock repr values no longer say “unknown”
on macOS.
- gh-126476: Raise calendar.IllegalMonthError (now a subclass
of IndexError) for calendar.month() when the input month is
not correct.
- gh-126489: The Python implementation of pickle no longer
calls pickle.Pickler.persistent_id() for the result of
persistent_id().
- gh-126451: Register the contextvars.Context type to
collections.abc.Mapping.
- gh-126175: Add msg, doc, pos, lineno and colno attributes
to tomllib.TOMLDecodeError. Deprecate instantiating with
free-form arguments.
- gh-89416: Add RFC 9559 MIME types for Matroska audiovisual
container formats. Patch by Hugo van Kemenade.
- gh-126417: Register the multiprocessing.managers.DictProxy
and multiprocessing.managers.ListProxy types in
multiprocessing.managers to collections.abc.MutableMapping
and collections.abc.MutableSequence, respectively.
- gh-126390: Add support for returning intermixed options and
non-option arguments in order in getopt.gnu_getopt().
- gh-126374: Add support for options with optional arguments
in the getopt module.
- gh-126363: Speed up pattern parsing in pathlib.Path.glob()
by skipping creation of a pathlib.Path object for the
pattern.
- gh-126353: asyncio.get_event_loop() now does not implicitly
creates an event loop. It now raises a RuntimeError if
there is no set event loop. Patch by Kumar Aditya.
- gh-126313: Fix an issue in curses.napms() when
curses.initscr() has not yet been called. Patch by Bénédikt
Tran.
- gh-126303: Fix pickling and copying of os.sched_param
objects.
- gh-126138: Fix a use-after-free crash on asyncio.Task
objects whose underlying coroutine yields an object that
implements an evil __getattribute__(). Patch by Nico
Posada.
- gh-120057: Replace the os.environ.refresh() method with a
new os.reload_environ() function. Patch by Victor Stinner.
- gh-126220: Fix crash in cProfile.Profile and
_lsprof.Profiler when their callbacks were directly called
with 0 arguments.
- gh-126212: Fix issue where urllib.request.pathname2url()
and url2pathname() removed slashes from Windows DOS drive
paths and URLs.
- gh-126223: Raise a UnicodeEncodeError instead of a
SystemError upon calling _interpreters.create() with an
invalid Unicode character.
- gh-126205: Fix issue where urllib.request.pathname2url()
generated URLs beginning with four slashes (rather than
two) when given a Windows UNC path.
- gh-126156: Improved performances of creating Morsel objects
by a factor of 3.8x.
- gh-126105: Fix a crash in ast when the ast.AST._fields
attribute is deleted.
- gh-126106: Fixes a possible NULL pointer dereference in
ssl.
- gh-126080: Fix a use-after-free crash on asyncio.Task
objects for which the underlying event loop implements an
evil __getattribute__(). Reported by Nico-Posada. Patch by
Bénédikt Tran.
- gh-125322: Correct detection of complex numbers support in
libffi.
- gh-126083: Fixed a reference leak in asyncio.Task objects
when reinitializing the same object with a non-None
context. Patch by Nico Posada.
- gh-126068: Fix exceptions in the argparse module so that
only error messages for ArgumentError and ArgumentTypeError
are now translated. ArgumentError is now only used for
command line errors, not for logical errors in the
program. TypeError is now raised instead of ValueError for
some logical errors.
- gh-125413: Add pathlib.Path.scandir() method to efficiently
fetch directory children and their file attributes. This is
a trivial wrapper of os.scandir().
- gh-125984: Fix use-after-free crashes on asyncio.Future
objects for which the underlying event loop implements an
evil __getattribute__(). Reported by Nico-Posada. Patch by
Bénédikt Tran.
- gh-125926: Fix urllib.parse.urljoin() for base URI with
undefined authority. Although RFC 3986 only specify
reference resolution for absolute base URI, urljoin()
should continue to return sensible result for relative base
URI.
- gh-125969: Fix an out-of-bounds crash when an evil
asyncio.loop.call_soon() mutates the length of the internal
callbacks list. Patch by Bénédikt Tran.
- gh-125966: Fix a use-after-free crash in
asyncio.Future.remove_done_callback(). Patch by Bénédikt
Tran.
- gh-125789: Fix possible crash when mutating list of
callbacks returned by asyncio.Future._callbacks. It
now always returns a new copy in C implementation
_asyncio. Patch by Kumar Aditya.
- gh-126916: Allow the initial parameter of
functools.reduce() to be passed as a keyword
argument. Patch by Sayandip Dutta.
- gh-124452: Fix an issue in
email.policy.EmailPolicy.header_source_parse() and
email.policy.Compat32.header_source_parse() that introduced
spurious leading whitespaces into header values when the
header includes a newline character after the header name
delimiter (:) and before the value.
- gh-117941: argparse.BooleanOptionalAction now rejects
option names starting with --no-.
- gh-125884: Fixed the bug for pdb where it cant set
breakpoints on functions with certain annotations.
- gh-125355: Fix several bugs in
argparse.ArgumentParser.parse_intermixed_args().
- The parser no longer changes temporarily during
parsing.
- Default values are not processed twice.
- Required mutually exclusive groups containing
positional arguments are now supported.
- The missing arguments report now includes the names of
all required optional and positional arguments.
- Unknown options can be intermixed with positional
arguments in parse_known_intermixed_args().
- gh-125767: super objects are now pickleable and copyable.
- gh-124969: locale.nl_langinfo(locale.ALT_DIGITS) now
returns a string again. The returned value consists of up
to 100 semicolon-separated symbols.
- gh-84850: Remove URLopener and FancyURLopener classes
from urllib.request. They had previously raised
DeprecationWarning since Python 3.3.
- gh-125666: Avoid the exiting the interpreter if a null byte
is given as input in the new REPL.
- gh-125710: [Enum] fix hashable<->nonhashable comparisons
for member values
- gh-125631: Restore ability to set persistent_id and
persistent_load attributes of instances of the Pickler and
Unpickler classes in the pickle module.
- gh-125378: Fixed the bug in pdb where after a multi-line
command, an empty line repeats the first line of the
multi-line command, instead of the full command.
- gh-125682: Reject non-ASCII digits in the Python
implementation of json.loads() conforming to the JSON
specification.
- gh-125660: Reject invalid unicode escapes for Python
implementation of json.loads().
- gh-52551: Use wcsftime() to implement time.strftime() on
Windows.
- gh-125259: Fix the notes removal logic for errors thrown in
enum initialization.
- gh-125633: Add function inspect.ispackage() to determine
whether an object is a package or not.
- gh-125614: In the FORWARDREF format of annotationlib,
fix bug where nested expressions were not returned as
annotationlib.ForwardRef format.
- gh-125590: Allow FrameLocalsProxy to delete and pop if the
key is not a fast variable.
- gh-125600: Only show stale code warning in pdb when we
display source code.
- gh-125542: Deprecate passing keyword-only prefix_chars
argument to argparse.ArgumentParser.add_argument_group().
- gh-125541: Pressing Ctrl-C while blocked in
threading.Lock.acquire(), threading.RLock.acquire(), and
threading.Thread.join() now interrupts the function call
and raises a KeyboardInterrupt exception on Windows,
similar to how those functions behave on macOS and Linux.
- gh-125519: Improve traceback if importlib.reload() is
called with an object that is not a module. Patch by Alex
Waygood.
- gh-125451: Fix deadlock when
concurrent.futures.ProcessPoolExecutor shuts down
concurrently with an error when feeding a job to a worker
process.
- gh-125115: Fixed a bug in pdb where arguments starting with
- cant be passed to the debugged script.
- gh-125398: Fix the conversion of the VIRTUAL_ENV path in
the activate script in venv when running in Git Bash for
Windows.
- gh-125245: Fix race condition when importing
collections.abc, which could incorrectly return an empty
module.
- gh-52551: Fix encoding issues in time.strftime(), the
strftime() method of the datetime classes datetime, date
and time and formatting of these classes. Characters
not encodable in the current locale are now acceptable
in the format string. Surrogate pairs and sequence
of surrogatescape-encoded bytes are no longer
recombinated. Embedded null character no longer terminates
the format string.
- gh-124984: Fixed thread safety in ssl in the free-threaded
build. OpenSSL operations are now protected by a per-object
lock.
- gh-124651: Properly quote template strings in venv
activation scripts.
- gh-124694: Weve added
concurrent.futures.InterpreterPoolExecutor, which allows
you to run code in multiple isolated interpreters. This
allows you to circumvent the limitations of CPU-bound
threads (due to the GIL). Patch by Eric Snow.
- This addition is unrelated to PEP 734.
- gh-58032: Deprecate the argparse.FileType type converter.
- gh-99749: Adds a feature to optionally enable suggestions
for argument choices and subparser names if mistyped by the
user.
- gh-58956: Fixed a bug in pdb where sometimes the breakpoint
wont trigger if it was set on a function which is already
in the call stack.
- gh-124111: The tkinter module can now be built to use
either the new version 9.0.0 of Tcl/Tk or the latest
release 8.6.15 of Tcl/Tk 8. Tcl/Tk 9 includes many
improvements, both to the Tcl language and to the
appearance and utility of the graphical user interface
provided by Tk.
- gh-80958: unittest discovery supports PEP 420 namespace
packages as start directory again.
- gh-123370: Fix the canvas not clearing after running
turtledemo clock.
- gh-89083: Add uuid.uuid8() for generating UUIDv8 objects as
specified in RFC 9562. Patch by Bénédikt Tran
- gh-122549: Add platform.invalidate_caches() to invalidate
cached results.
- gh-120754: Update unbounded read calls in zipfile to
specify an explicit size putting a limit on how much data
they may read. This also updates handling around ZIP max
comment size to match the standard instead of reading
comments that are one byte too long.
- gh-121267: Improve the performance of tarfile when writing
files, by caching user names and group names.
- gh-70764: Fixed an issue where inspect.getclosurevars()
would incorrectly classify an attribute name as a global
variable when the name exists both as an attribute name and
a global variable.
- gh-118289: posixpath.realpath() now raises
NotADirectoryError when strict mode is enabled and a
non-directory path with a trailing slash is supplied.
- gh-119826: Always return an absolute path for
os.path.abspath() on Windows.
- gh-97850: Remove deprecated pkgutil.get_loader() and
pkgutil.find_loader().
- gh-118986: Add socket.IPV6_RECVERR constant (available
since Linux 2.2).
- gh-116897: Accepting objects with false values (like 0 and
[]) except empty strings, byte-like objects and None in
urllib.parse functions parse_qsl() and parse_qs() is now
deprecated.
- gh-101955: Fix SystemError when match regular expression
pattern containing some combination of possessive
quantifier, alternative and capture group.
- gh-71936: Fix a race condition in
multiprocessing.pool.Pool.
- bpo-46128: Strip unittest.IsolatedAsyncioTestCase stack
frames from reported stacktraces.
- gh-84852: Add MIME types for MS Embedded OpenType, OpenType
Layout, TrueType, WOFF 1.0 and 2.0 fonts. Patch by Sahil
Prajapati and Hugo van Kemenade.
- Documentation
- gh-126622: Added stub pages for removed modules explaining
their removal, where to find replacements, and linking to
the last Python version that supported them. Contributed by
Ned Batchelder.
- gh-125277: Require Sphinx 7.2.6 or later to build the
Python documentation. Patch by Adam Turner.
- gh-60712: Include the object type in the lists of
documented types. Change by Furkan Onder and Martin Panter.
- Core and Builtins
- gh-126795: Increase the threshold for JIT code
warmup. Depending on platform and workload, this can result
in performance gains of 1-9% and memory savings of 3-5%.
- gh-126341: Now ValueError is raised instead of SystemError
when trying to iterate over a released memoryview object.
- gh-126688: Fix a crash when calling os.fork() on some
operating systems, including SerenityOS.
- gh-126066: Fix importlib to not write an incomplete
.pyc files when a ulimit or some other operating system
mechanism is preventing the write to go through fully.
- gh-126222: Do not include count of “peek” items in
_PyUop_num_popped. This ensures that the correct number of
items are popped from the stack when a micro-op exits with
an error.
- gh-126366: Fix crash when using yield from on an object
that raises an exception in its __iter__.
- gh-126209: Fix an issue with skip_file_prefixes parameter
which resulted in an inconsistent behaviour between the C
and Python implementations of warnings.warn(). Patch by
Daehee Kim.
- gh-126312: Fix crash during garbage collection on an object
frozen by gc.freeze() on the free-threaded build.
- gh-103951: Relax optimization requirements to allow fast
attribute access to module subclasses.
- gh-126072: Following gh-126101, for Code Objects like
lambda, annotation and type alias, we no longer add None to
its co_consts.
- gh-126195: Improve JIT performance by 1.4% on macOS Apple
Silicon by using platform-specific memory protection
APIs. Patch by Diego Russo.
- gh-126139: Provide better error location when attempting to
use a future statement with an unknown future feature.
- gh-126072: Add a new attribute in co_flags to indicate
whether the first item in co_consts is the docstring. If a
code object has no docstring, None will NOT be inserted.
- gh-126076: Relocated objects such as tuple, bytes and
str objects are properly tracked by tracemalloc and its
associated hooks. Patch by Pablo Galindo.
- gh-90370: Avoid temporary tuple creation for vararg in
argument passing with Argument Clinic generated code (if
arguments either vararg or positional-only).
- gh-126018: Fix a crash in sys.audit() when passing a
non-string as first argument and Python was compiled in
debug mode.
- gh-126012: The memoryview type now supports subscription,
making it a generic type.
- gh-125837: Adds LOAD_SMALL_INT and LOAD_CONST_IMMORTAL
instructions. LOAD_SMALL_INT pushes a small integer equal
to the oparg to the stack. LOAD_CONST_IMMORTAL does the
same as LOAD_CONST but is more efficient for immortal
objects. Removes RETURN_CONST instruction.
- gh-125942: On Android, the errors setting of sys.stdout was
changed from surrogateescape to backslashreplace.
- gh-125859: Fix a crash in the free threading build when
gc.get_objects() or gc.get_referrers() is called during an
in-progress garbage collection.
- gh-125868: It was possible in 3.14.0a1 only for
attribute lookup to give the wrong value. This was
due to an incorrect specialization in very specific
circumstances. This is fixed in 3.14.0a2.
- gh-125498: The JIT has been updated to leverage Clang 19s
new preserve_none attribute, which supports more platforms
and is more useful than LLVMs existing ghccc calling
convention. This also removes the need to manually patch
the calling convention in LLVM IR, simplifying the JIT
compilation process.
- gh-125703: Correctly honour tracemalloc hooks in
specialized Py_DECREF paths. Patch by Pablo Galindo
- gh-125593: Use color to highlight error locations in
traceback from exception group
- gh-125017: Fix crash on certain accesses to the
__annotations__ of staticmethod and classmethod objects.
- gh-125588: The Python PEG generator can now use f-strings
in the grammar actions. Patch by Pablo Galindo
- gh-125444: Fix illegal instruction for older Arm
architectures. Patch by Diego Russo, testing by Ross
Burton.
- gh-118423: Add a new INSTRUCTION_SIZE macro to the cases
generator which returns the current instruction size.
- gh-125038: Fix crash when iterating over a generator
expression after direct changes on gi_frame.f_locals. Patch
by Mikhail Efimov.
- gh-124855: Dont allow the JIT and perf support to be
active at the same time. Patch by Pablo Galindo
- gh-123714: Update JIT compilation to use LLVM 19
- gh-123930: Improve the error message when a script
shadowing a module from the standard library causes
ImportError to be raised during a “from” import. Similarly,
improve the error message when a script shadowing a third
party module attempts to “from” import an attribute from
that third party module while still initialising.
- gh-119793: The map() built-in now has an optional
keyword-only strict flag like zip() to check that all the
iterables are of equal length. Patch by Wannes Boeykens.
- gh-118950: Fix bug where SSLProtocol.connection_lost wasnt
getting called when OSError was thrown on writing to
socket.
- gh-113570: Fixed a bug in reprlib.repr where it incorrectly
called the repr method on shadowed Python built-in types.
- C API
- gh-126554: Fix error handling in ctypes.CDLL objects which
could result in a crash in rare situations.
- gh-126061: Add PyLong_IsPositive(), PyLong_IsNegative() and
PyLong_IsZero() for checking if a PyLongObject is positive,
negative, or zero, respectively.
- gh-125608: Fix a bug where dictionary watchers
(e.g., PyDict_Watch()) on an objects attribute dictionary
(__dict__) were not triggered when the objects attributes
were modified.
- gh-123619: Added the
PyUnstable_Object_EnableDeferredRefcount() function for
enabling PEP 703 deferred reference counting.
- gh-121654: Add PyType_Freeze() function to make a type
immutable. Patch by Victor Stinner.
- gh-120026: The Py_HUGE_VAL macro is soft deprecated.
- Build
- gh-126691: Removed the --with-emscripten-target configure
flag. We unified the node and browser options and the same
build can now be used, independent of target runtime.
- gh-123877: Use wasm32-wasip1 as the target triple for
WASI instead of wasm32-wasi. The latter will eventually
be reclaimed for WASI 1.0 while CPython currently only
supports WASI preview1.
- gh-126458: Disable SIMD support for HACL under WASI.
- gh-89640: Hard-code float word ordering as little endian on
WASM.
- gh-126206: make clinic now runs Argument Clinic using the
--force option, thus forcefully regenerating generated
code.
- gh-126187: Introduced Tools/wasm/emscripten.py to simplify
doing Emscripten builds.
- gh-124932: For cross builds, there is now support for
having a different install prefix than the host_prefix used
by getpath.py. This is set to / by default for Emscripten,
on other platforms the default behavior is the same as
before.
- gh-125946: The minimum supported Android version is now 7.0
(API level 24).
- gh-125940: The Android build now supports 16 KB page sizes.
- gh-89640: Improve detection of float word ordering on Linux
when link-time optimizations are enabled.
- gh-124928: Emscripten builds now require node >= 18.
- gh-115382: Fix cross compile failures when the host and
target SOABIs match.
- Remove upstreamed patches:
- fix_test_generated_data.patch
- fix_test_ftp_error.patch
- gh125535-Lib_IntVector_Intrinsics_vec128.patch
- Don't limit clang to clang18.
-------------------------------------------------------------------
Thu Nov 14 07:06:20 UTC 2024 - Matej Cepl <mcepl@cepl.eu>

View File

@@ -149,8 +149,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~a1
%define tarversion 3.14.0a1
Version: 3.14.0~a2
%define tarversion 3.14.0a2
%define tarname Python-%{tarversion}
Release: 0
Summary: Python 3 Interpreter
@@ -209,15 +209,6 @@ Patch39: CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
# Skip some failing tests in test_compile for i586 arch in 15.6.
Patch40: fix-test-recursion-limit-15.6.patch
#### Python 3.14 DEVELOPMENT PATCHES
# PATCH-FIX-UPSTREAM gh125535-Lib_IntVector_Intrinsics_vec128.patch gh#python/cpython#125535 mcepl@suse.com
# Patch from gh#python/cpython!125244
Patch41: gh125535-Lib_IntVector_Intrinsics_vec128.patch
# PATCH-FIX-UPSTREAM fix_test_ftp_error.patch gh#python/cpython#125584 mcepl@suse.com
# Patch from gh#python/cpython!125586
Patch42: fix_test_ftp_error.patch
# PATCH-FIX-UPSTREAM fix_test_generated_data.patch gh#python/cpython#121938 mcepl@suse.com
# skip the failing test on 32bit arch
Patch43: fix_test_generated_data.patch
BuildRequires: autoconf-archive
BuildRequires: automake
BuildRequires: fdupes
@@ -261,8 +252,8 @@ BuildRequires: python3-python-docs-theme >= 2022.1
%if %{with experimental_jit}
# needed for experimental_jit
BuildRequires: clang18
BuildRequires: llvm18
BuildRequires: clang
BuildRequires: llvm
%endif
%if %{without GIL}

View File

@@ -4,7 +4,7 @@
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -280,7 +280,8 @@ class ProcessTestCase(BaseTestCase):
@@ -281,7 +281,8 @@ class ProcessTestCase(BaseTestCase):
"time.sleep(3600)"],
# Some heavily loaded buildbots (sparc Debian 3.x) require
# this much time to start and print.