Compare commits

88 Commits

Author SHA256 Message Date
dc2622e3f9 Accepting request 1297122 from devel:languages:python:Factory
- 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).

OBS-URL: https://build.opensuse.org/request/show/1297122
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=20
2025-08-03 11:37:35 +00:00
c92a103129 Accepting request 1295248 from devel:languages:python:Factory
- 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 wasn’t 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.InterpreterPoolExecutor’s 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.

OBS-URL: https://build.opensuse.org/request/show/1295248
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=19
2025-07-23 14:35:49 +00:00
11b7e4b95a datetime is now built-in
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=87
2025-07-23 08:28:26 +00:00
ce17a8111c - 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 wasn’t 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.InterpreterPoolExecutor’s default thread
      name.
    - gh-136476: Fix a bug that was causing the

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=86
2025-07-23 08:11:40 +00:00
d75ee26429 Accepting request 1294540 from devel:languages:python:Factory
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1294540
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=18
2025-07-21 18:00:24 +00:00
3cf400580a Fix wrapping of changelog
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=84
2025-07-12 21:42:03 +00:00
3799c65698 Accepting request 1291661 from devel:languages:python:Factory
- Fix gil/nogil package description, bsc#1246229

OBS-URL: https://build.opensuse.org/request/show/1291661
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=17
2025-07-10 20:13:39 +00:00
5bf090d7ef - Fix gil/nogil package description, bsc#1246229
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=82
2025-07-10 10:18:28 +00:00
6b2ca0649e Accepting request 1291400 from devel:languages:python:Factory
- 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
      socket’s 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 Fraction’s
      formatting. Patch by Sergey B Kirpichev.
    - gh-87790: Support underscore and comma as thousands
      separators in the fractional part for Decimal’s
      formatting. Patch by Sergey B Kirpichev.
    - gh-130664: Handle corner-case for Fraction’s 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
      float’s.
  - 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 GC’ed objects
      and untrack them while in the trashcan to prevent the GC
      and trashcan mechanisms conflicting.
    - gh-135607: Fix potential weakref races in an object’s
      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

OBS-URL: https://build.opensuse.org/request/show/1291400
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=16
2025-07-09 15:28:24 +00:00
0d138f00f9 - 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/ //>.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=80
2025-07-09 05:57:00 +00:00
0c9c9afe8c Accepting request 1289981 from devel:languages:python:Factory
- Add bsc1243155-sphinx-non-determinism.patch (bsc#1243155) to
  generate ids for audit_events using docname (reproducible
  builds).

- Use one core to build doc. This will make sphinx doc build
  reproducible.
  bsc#1243155

OBS-URL: https://build.opensuse.org/request/show/1289981
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=15
2025-07-02 16:17:30 +00:00
53b782d3a6 - Add bsc1243155-sphinx-non-determinism.patch (bsc#1243155) to
generate ids for audit_events using docname (reproducible
  builds).

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=78
2025-07-02 13:18:20 +00:00
35294a40a4 - Use one core to build doc. This will make sphinx doc build
reproducible.
  bsc#1243155

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=77
2025-07-02 13:17:19 +00:00
66dec9ba75 Accepting request 1288600 from devel:languages:python:Factory
Also addresses bsc#1244705 (CVE-2025-6069) and CVE-2025-4435 (gh#135034, bsc#1244061).

OBS-URL: https://build.opensuse.org/request/show/1288600
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=14
2025-06-26 09:38:10 +00:00
940abe7147 Also addreses bsc#1244705, CVE-2025-6069 and CVE-2025-4435 (gh#135034, bsc#1244061).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=75
2025-06-25 19:57:48 +00:00
9a13683c02 Accepting request 1287713 from devel:languages:python:Factory
- 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
      than 0x7fffffff for the BINSTRING opcode in the C
      implementation of pickle.
    - gh-135276: Backported bugfixes in zipfile.Path from
      zipp 3.23. Fixed .name, .stem and other basename-based
      properties on Windows when working with a zipfile on disk.
    - gh-135244: uuid: when the MAC address cannot be
      determined, the 48-bit node ID is now generated with a
      cryptographically-secure pseudo-random number generator
      (CSPRNG) as per RFC 9562, §6.10.3. This affects uuid1() and
      uuid6().
    - gh-134970: Fix the “unknown action” exception in
      argparse.ArgumentParser.add_argument_group() to correctly
      replace the action class.
    - gh-134718: ast.dump() now only omits None and [] values if
      they are default values.
    - gh-134939: Add the concurrent.interpreters module. See PEP
      734.
    - gh-134885: Fix possible crash in the compression.zstd
      module related to setting parameter types. Patch by Jelle
      Zijlstra.
    - gh-134857: Improve error report for doctests run with
      unittest. Remove doctest module frames from tracebacks and
      redundant newline character from a failure message.
    - gh-128840: Fix parsing long IPv6 addresses with embedded
      IPv4 address.
    - gh-134637: Fix performance regression in calling a ctypes
      function pointer in free threading.
    - gh-134696: Built-in HACL* and OpenSSL implementations of
      hash function constructors now correctly accept the same
      documented named arguments. For instance, md5() could be
      previously invoked as md5(data=data) or md5(string=string)
      depending on the underlying implementation but these calls
      were not compatible. Patch by Bénédikt Tran.
    - gh-134151: email: Fix TypeError in
      email.utils.decode_params() when sorting RFC 2231
      continuations that contain an unnumbered section.
    - gh-134210: curses.window.getch() now correctly handles
      signals. Patch by Bénédikt Tran.
    - gh-134152: email: Fix parsing of email message ID with
      invalid domain.
    - gh-133489: random.getrandbits() can now generate more that
      231 bits. random.randbytes() can now generate more that 256
      MiB.
    - gh-132813: Improve error messages for incorrect types and
      values of csv.Dialect attributes.
    - gh-132969: Prevent the ProcessPoolExecutor executor thread,
      which remains running when shutdown(wait=False), from
      attempting to adjust the pool’s worker processes after the
      object state has already been reset during shutdown. A
      combination of conditions, including a worker process
      having terminated abormally, resulted in an exception and
      a potential hang when the still-running executor thread
      attempted to replace dead workers within the pool.
    - gh-127081: Fix libc thread safety issues with os by
      replacing getlogin with getlogin_r re-entrant version.
    - gh-131884: Fix formatting issues in json.dump() when both
      indent and skipkeys are used.
    - gh-130999: Avoid exiting the new REPL and offer suggestions
      even if there are non-string candidates when errors occur.
  - Documentation
    - gh-135171: Document that the iterator for the leftmost for
      clause in the generator expression is created immediately.
    - bpo-45210: Document that error indicator may be set in
      tp_dealloc, and how to avoid clobbering it.
  - Core and Builtins
    - gh-135496: Fix typo in the f-string conversion type error
      (“exclamanation” -> “exclamation”).
    - gh-135371: Fixed asyncio debugging tools to properly
      display internal coroutine call stacks alongside external
      task dependencies. The python -m asyncio ps and python
      -m asyncio pstree commands now show complete execution
      context. Patch by Pablo Galindo.
    - gh-127319: Set the allow_reuse_port class variable to False
      on the XMLRPC, logging, and HTTP servers. This matches the
      behavior in prior Python releases, which is to not allow
      port reuse.
    - gh-135171: Reverts the behavior of async generator
      expressions when created with object w/o __aiter__ method
      to the pre-3.13 behavior of raising a TypeError.
    - gh-130077: Properly raise custom syntax errors when
      incorrect syntax containing names that are prefixes of soft
      keywords is encountered. Patch by Pablo Galindo.
    - gh-135171: Reverts the behavior of generator expressions
      when created with a non-iterable to the pre-3.13 behavior
      of raising a TypeError. It is no longer possible to
      cause a crash in the debugger by altering the generator
      expression’s local variables. This is achieved by moving
      the GET_ITER instruction back to the creation of the
      generator expression and adding an additional check to
      FOR_ITER.
    - gh-116738: Make methods in heapq thread-safe on the free
      threaded build.
    - gh-134876: Add support to PEP 768 remote debugging for
      Linux kernels which don’t have CONFIG_CROSS_MEMORY_ATTACH
      configured.
    - gh-134889: Fix handling of a few opcodes that leave
      operands on the stack when optimizing LOAD_FAST.
    - gh-134908: Fix crash when iterating over lines in a text
      file on the free threaded build.
    - gh-132617: Fix dict.update() modification check that could
      incorrectly raise a “dict mutated during update” error when
      a different dictionary was modified that happens to share
      the same underlying keys object.
    - gh-134679: Fix crash in the free threading build’s QSBR
      code that could occur when changing an object’s __dict__
      attribute.
    - gh-127682: No longer call __iter__ twice in list
      comprehensions. This brings the behavior of list
      comprehensions in line with other forms of iteration
    - gh-133912: Fix the C API function PyObject_GenericSetDict
      to handle extension classes with inline values.
  - C API
    - gh-134989: Fix Py_RETURN_NONE, Py_RETURN_TRUE and
      Py_RETURN_FALSE macros in the limited C API 3.11 and
      older: don’t treat Py_None, Py_True and Py_False as
      immortal. Patch by Victor Stinner.
    - gh-134989: Implement PyObject_DelAttr() and
      PyObject_DelAttrString() as macros in the limited C API
      3.12 and older. Patch by Victor Stinner.
    - gh-133968: Add PyUnicodeWriter_WriteASCII() function to
      write an ASCII string into a PyUnicodeWriter. The function
      is faster than PyUnicodeWriter_WriteUTF8(), but has an
      undefined behavior if the input string contains non-ASCII
      characters. Patch by Victor Stinner.
  - Build
    - gh-119132: Remove “experimental” tag from the CPython
      free-threading build.
    - gh-135497: Fix the detection of MAXLOGNAME in the
      configure.ac script.
    - gh-134923: Windows builds with profile-guided optimization
      enabled now use /GENPROFILE and /USEPROFILE instead of
      deprecated /LTCG: options.
    - gh-134774: Fix Py_DEBUG macro redefinition warnings on
      Windows debug builds. Patch by Chris Eibl.
    - gh-134632: Fixed build-details.json generation to use
      INCLUDEPY, in order to reference the pythonX.Y subdirectory
      of the include directory, as required in PEP 739, instead
      of the top-level include directory.

OBS-URL: https://build.opensuse.org/request/show/1287713
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=13
2025-06-23 13:04:26 +00:00
324e027d67 - 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
2025-06-21 22:34:13 +00:00
b12a4b472c Accepting request 1281134 from devel:languages:python:Factory
- Update to 3.14.0~b2:
  - Tools/Demos
    - gh-134215: REPL import autocomplete only suggests private
      modules when explicitly specified.
  - Tests
    - gh-133744: Fix multiprocessing interrupt test. Add an event
      to synchronize the parent process with the child process:
      wait until the child process starts sleeping. Patch by
      Victor Stinner.
    - gh-133682: Fixed test case
      test.test_annotationlib.TestStringFormat.test_displays
      which ensures proper handling of complex data structures
      (lists, sets, dictionaries, and tuples) in string
      annotations.
    - gh-133639: Fix
      TestPyReplAutoindent.test_auto_indent_default() doesn’t run
      input_code.
  - Security
    - gh-133767: Fix use-after-free in the “unicode-escape”
      decoder with a non-“strict” error handler (CVE-2025-4516
      bsc#1243273).
    - gh-128840: Short-circuit the processing of long IPv6
      addresses early in ipaddress to prevent excessive memory
      consumption and a minor denial-of-service.
  - Library
    - gh-132710: If possible, ensure that uuid.getnode()
      returns the same result even across different
      processes. Previously, the result was constant only within
      the same process. Patch by Bénédikt Tran.
    - gh-80334: multiprocessing.freeze_support() now checks for

OBS-URL: https://build.opensuse.org/request/show/1281134
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=12
2025-05-30 12:37:50 +00:00
79e939b48a - Update to 3.14.0~b2:
- Tools/Demos
    - gh-134215: REPL import autocomplete only suggests private
      modules when explicitly specified.
  - Tests
    - gh-133744: Fix multiprocessing interrupt test. Add an event
      to synchronize the parent process with the child process:
      wait until the child process starts sleeping. Patch by
      Victor Stinner.
    - gh-133682: Fixed test case
      test.test_annotationlib.TestStringFormat.test_displays
      which ensures proper handling of complex data structures
      (lists, sets, dictionaries, and tuples) in string
      annotations.
    - gh-133639: Fix
      TestPyReplAutoindent.test_auto_indent_default() doesn’t run
      input_code.
  - Security
    - gh-133767: Fix use-after-free in the “unicode-escape”
      decoder with a non-“strict” error handler (CVE-2025-4516
      bsc#1243273).
    - gh-128840: Short-circuit the processing of long IPv6
      addresses early in ipaddress to prevent excessive memory
      consumption and a minor denial-of-service.
  - Library
    - gh-132710: If possible, ensure that uuid.getnode()
      returns the same result even across different
      processes. Previously, the result was constant only within
      the same process. Patch by Bénédikt Tran.
    - gh-80334: multiprocessing.freeze_support() now checks for

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=71
2025-05-29 11:50:01 +00:00
7e8729c910 Accepting request 1278108 from devel:languages:python:Factory
- Add CVE-2025-4516-DecodeError-handler.patch fixing
  CVE-2025-4516 (bsc#1243273) blocking DecodeError handling
  vulnerability, which could lead to DoS.

OBS-URL: https://build.opensuse.org/request/show/1278108
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=11
2025-05-20 07:36:12 +00:00
288d337519 update the patch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=69
2025-05-17 06:53:38 +00:00
a4883c39a6 update the patch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=68
2025-05-17 06:47:24 +00:00
70a5881572 - Add CVE-2025-4516-DecodeError-handler.patch fixing
CVE-2025-4516 (bsc#1243273) blocking DecodeError handling
  vulnerability, which could lead to DoS.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=67
2025-05-16 13:45:27 +00:00
041db29d48 Accepting request 1277634 from devel:languages:python:Factory
OBS-URL: https://build.opensuse.org/request/show/1277634
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=10
2025-05-15 15:01:52 +00:00
5397122a9a - Skip test_multiprocessing_spawn, test_remote_pdb, test_sys in qemu
linux-user emulation

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=65
2025-05-15 08:34:57 +00:00
8f9bb7c680 Accepting request 1276737 from devel:languages:python:Factory
- Update to 3.14.0~b1:
  - Tools/Demos
    - gh-130453: Allow passing multiple keyword arguments with
      the same function name in pygettext.
    - gh-130195: Add warning messages when pygettext
      unimplemented -a/--extract-all option is called.
  - Tests
    - gh-133131: The iOS testbed will now select the most
      recently released “SE-class” device for testing if a device
      isn’t explicitly specified.
    - gh-91048: Add ability to externally inspect all pending
      asyncio tasks, even if no task is currently entered on the
      event loop.
    - gh-109981: The test helper that counts the list of open
      file descriptors now uses the optimised /dev/fd approach on
      all Apple platforms, not just macOS. This avoids crashes
      caused by guarded file descriptors.
    - gh-132678: Add --prioritize to -m test. This option allows
      the user to specify which selected tests should execute
      first, even if the order is otherwise randomized. This is
      particularly useful for tests that run the longest.
    - gh-131290: Tests in Lib/test can now be correctly executed
      as standalone scripts.
  - Security
    - gh-115322: The underlying extension modules behind
      readline:, subprocess, and ctypes now raise audit events
      on previously uncovered code paths that could lead to file
      system access related to C function calling and external
      binary execution. The ctypes.call_function audit hook has
      also been fixed to use an unsigned value for its function
      pointer.
  - Library
    - gh-133490: Add color support to PDB in remote mode.
    - gh-132493: Avoid eagerly evaluating annotations in
      functions decorated with reprlib.recursive_repr().
    - gh-130645: Add color to stdlib argparse CLIs. Patch by Hugo
      van Kemenade.
    - gh-119180: Make annotationlib.get_annotations() succeed
      with the FORWARDREF format if evaluating the annotations
      throws an exception other than NameError or AttributeError.
    - gh-133351: Fix remote PDB to correctly request tab
      completions for Python expressions from the server when
      completing a continuation line of a multi-line Python
      block.
    - gh-133367: Add the --feature-version, --optimize,
      and --show-empty options to the ast command-line
      interface. Patch by Semyon Moroz.
    - gh-133363: The cmd.Cmd class has been fixed to reliably
      call the completedefault method whenever the do_shell
      method is not defined and tab completion is requested for a
      line beginning with !.
    - gh-113081: Highlight syntax on source code in pdb.
    - gh-133349: Introduced auto-indent in pdb multi-line input.
    - gh-133306: Use \z instead of \Z in fnmatch.translate() and
      glob.translate().
    - gh-133306: Support \z as a synonym for \Z in regular
      expressions.
    - gh-133300: Make argparse.ArgumentParser’s suggest_on_error
      a keyword-only parameter. Patch by Hugo van Kemenade.
    - gh-133290: Fix attribute caching issue when setting
      ctypes._Pointer._type_ in the undocumented and deprecated
      ctypes.SetPointerType() function and the undocumented
      set_type() method.
    - gh-133223: When PDB is attached to a remote process, do a
      better job of intercepting Ctrl+C and forwarding it to the
      remote process.
    - gh-133153: Do not complete pdb commands in interact mode of
      pdb.
    - gh-133139: Add the curses.assume_default_colors() function,
      a refinement of the curses.use_default_colors() function
      which allows to change the color pair 0.
    - gh-133089: Use original timeout value for
      subprocess.TimeoutExpired when the func subprocess.run()
      is called with a timeout instead of sometimes a confusing
      partial remaining time out value used internally on the
      final wait().
    - gh-133036: codecs.open() is now deprecated. Use open()
      instead. Contributed by Inada Naoki.
    - gh-132987: Many builtin and extension functions which
      accept an unsigned integer argument, now use __index__() if
      available.
    - gh-124703: Set return code to 1 when aborting process from
      pdb.
    - gh-133005: Support passing preset option to tarfile.open()
      when using 'w|xz' mode.
    - gh-115032: Support for custom logging handlers with the
      strm argument is deprecated and scheduled for removal in
      Python 3.16. Define handlers with the stream argument
      instead. Patch by Mariusz Felisiak.
    - gh-132991: Add socket.IP_FREEBIND constant on Linux 2.4 and
      later.
    - gh-132995: Bump the version of pip bundled in ensurepip to
      version 25.1.1
    - gh-132933: The zipapp module now applies the filter when
      creating the list of files to add, rather than waiting
      until the file is being added to the archive.
    - gh-121249: Always support the float complex and double
      complex C types in the struct module. Patch by Sergey B
      Kirpichev.
    - gh-132915: fcntl.fcntl() and fcntl.ioctl() can now detect
      a buffer overflow and raise SystemError. The stack and
      memory can be corrupted in such case, so treat this error
      as fatal.
    - gh-132017: Fix error when pyrepl is suspended, then resumed
      and terminated.
    - gh-132893: Improved statistics.NormalDist.cdf() accuracy
      for inputs smaller than the mean.
    - gh-130328: Speedup pasting in PyREPL on Windows. Fix by
      Chris Eibl.
    - gh-132882: Fix copying of typing.Union objects containing
      objects that do not support the | operator.
    - gh-93696: Fixed the breakpoint display error for frozen
      modules in pdb.
    - gh-129965: Add MIME types for .7z, .apk, .deb, .glb, .gltf,
      .gz, .m4v, .php, .rar, .rpm, .stl and .wmv. Patch by Hugo
      van Kemenade.
    - gh-132742: fcntl.fcntl() now supports arbitrary bytes-like
      objects, not only bytes. fcntl.ioctl() now automatically
      retries system calls failing with EINTR and releases the
      GIL during a system call even for large bytes-like object.
    - gh-132451: The CLI for the PDB debugger now accepts a -p
      PID argument to allow attaching to a running process. The
      process must be running the same version of Python as the
      one running PDB.
    - gh-125618: Add a format parameter to
      annotationlib.ForwardRef.evaluate(). Evaluating annotations
      in the FORWARDREF format now succeeds in more cases that
      would previously have raised an exception.
    - gh-132805: Fix incorrect handling of nested non-constant
      values in the FORWARDREF format in annotationlib.
    - gh-132734: Add new constants for Bluetooth sockets.
    - gh-132673: Fix AssertionError raised on ctypes.Structure
      with _align_ = 0 and _fields_ = [].
    - gh-132578: Rename the threading.Thread._handle field
      to avoid shadowing methods defined on subclasses of
      threading.Thread.
    - gh-132561: Fix the public locked method of
      multiprocessing.SemLock class. Also adding 2 tests for the
      derivated multiprocessing.Lock and multiprocessing.RLock
      classes.
    - gh-121468: Add pdb.set_trace_async() function to support
      await statements in pdb.
    - gh-132493: typing.Protocol now uses
      annotationlib.get_annotations() when checking whether
      or not an instance implements the protocol with
      isinstance(). This enables support for isinstance checks
      against classes with deferred annotations.
    - gh-132536: Do not disable PY_THROW event in bdb because it
      can’t be disabled.
    - gh-132527: Include the valid typecode ‘w’ in the error
      message when an invalid typecode is passed to array.array.
    - gh-132099: The Bluetooth socket with the BTPROTO_HCI
      protocol on Linux now accepts an address in the format of
      an integer device_id, not only a tuple (device_id,).
    - gh-81793: Fix os.link() on platforms (like Linux)
      where the system link() function does not follow
      symlinks. On Linux, it now follows symlinks by default
      or if follow_symlinks=True is specified. On Windows, it
      now raises an error if follow_symlinks=True is passed. On
      macOS, it now raises an error if follow_symlinks=False is
      passed and the system linkat() function is not available at
      runtime.
    - gh-132493: Support creation of typing.Protocol classes with
      annotations that cannot be resolved at class creation time.
    - gh-132491: Rename annotationlib.value_to_string to
      annotationlib.type_repr() and provide better handling for
      function objects.
    - gh-132426: Add
      annotationlib.get_annotate_from_class_namespace() as a
      helper for accessing annotations in metaclasses, and remove
      annotationlib.get_annotate_function.
    - gh-70145: Add support for channels in Bluetooth HCI
      protocol (BTPROTO_HCI).
    - gh-131913: Add a shortcut function
      multiprocessing.Process.interrupt() alongside the
      existing multiprocessing.Process.terminate() and
      multiprocessing.Process.kill() for an improved control over
      child process termination.
    - gh-132439: Fix PyREPL on Windows: characters entered via
      AltGr are swallowed. Patch by Chris Eibl.
    - gh-132429: Fix support of Bluetooth sockets on NetBSD
      and DragonFly BSD. Add support for cid and bdaddr_type
      in the BTPROTO_L2CAP address on FreeBSD. Return cid in
      getsockname() for BTPROTO_L2CAP if it is not zero.
    - gh-132106: QueueListener.start now raises a RuntimeError if
      the listener is already started.
    - gh-132417: Fix a NULL pointer dereference when a C function
      called using ctypes with restype py_object returns NULL.
    - gh-132385: Fix instance error suggestions trigger potential
      exceptions in object.__getattr__() in traceback.
    - gh-125866: Add optional add_scheme argument to
      urllib.request.pathname2url(); when set to true, a complete
      URL is returned. Likewise add optional require_scheme
      argument to url2pathname(); when set to true, a complete
      URL is accepted.
    - gh-132308: A traceback.TracebackException now correctly
      renders the __context__ and __cause__ attributes from
      falsey Exception, and the exceptions attribute from falsey
      ExceptionGroup.
    - gh-130645: Add colour to argparse help output. Patch by
      Hugo van Kemenade.
    - gh-127495: In PyREPL, append a new entry to the
      PYTHON_HISTORY file after every statement. This should
      preserve command-line history after interpreter is
      terminated. Patch by Sergey B Kirpichev.
    - gh-129463: Comparison of annotationlib.ForwardRef objects
      no longer uses the internal __code__ and __ast_node__
      attributes, which are used as caches.
    - gh-132250: Fixed the SystemError in cProfile when locating
      the actual C function of a method raises an exception.
    - gh-132064: annotationlib.get_annotations() now uses
      the __annotate__ attribute if it is present, even if
      __annotations__ is not present. Additionally, the function
      now raises a TypeError if it is passed an object that does
      not have any annotatins.
    - gh-130664: Support the '_' digit separator in formatting
      of the integral part of Decimal’s. Patch by Sergey B
      Kirpichev.
    - gh-131952: Add color output to the json CLI. Patch by Tomas
      Roun.
    - gh-132063: Prevent exceptions that evaluate as
      falsey (namely, when their __bool__ method returns
      False or their __len__ method returns 0) from being
      ignored by concurrent.futures.ProcessPoolExecutor and
      concurrent.futures.ThreadPoolExecutor.
    - gh-132106: logging.handlers.QueueListener now implements
      the context manager protocol, allowing it to be used in a
      with statement.
    - gh-132054: The application/yaml mime type (RFC 9512) is now
      supported by mimetypes. Patch by Sasha “Nelie” Chernykh and
      Hugo van Kemenade.
    - gh-119605: Respect follow_wrapped for __init__() and
      __new__() methods when getting the class signature for a
      class with inspect.signature(). Preserve class signature
      after wrapping with warnings.deprecated(). Patch by Xuehai
      Pan.
    - gh-118761: Improve import times by up to 33x for the shlex
      module, and improve the performance of shlex.quote() by up
      to 12x. Patch by Adam Turner.
    - gh-85302: Add support for BTPROTO_SCO in sockets on
      FreeBSD.
    - gh-131757: Make functools.lru_cache() call the cached
      function unlocked to allow concurrency.
    - gh-131423: ssl can show descriptions for errors added in
      OpenSSL 3.4.1. Patch by Bénédikt Tran.
    - gh-131434: Improve error reporting for incorrect format in
      time.strptime().
    - gh-131524: Add help message to platform command-line
      interface. Contributed by Harry Lees.
    - gh-100926: Move ctypes.POINTER() types cache from
      a global internal cache (_pointer_type_cache) to
      the ctypes._CData.__pointer_type__ attribute of the
      corresponding ctypes types. This will stop the cache from
      growing without limits in some situations.
    - gh-85702: If zoneinfo._common.load_tzdata is given a
      package without a resource a ZoneInfoNotFoundError is
      raised rather than a IsADirectoryError.
    - gh-123471: Make concurrent iterations over itertools.repeat
      safe under free-threading.
    - gh-131127: Systems using LibreSSL now successfully build.
    - gh-89157: Make the pure Python implementation of
      datetime.date.fromisoformat(), only accept ASCII strings
      for consistency with the C implementation.
    - gh-130941: Fix configparser.ConfigParser parsing empty
      interpolation with allow_no_value set to True.
    - gh-110067: Make heapq max-heap functions
      heapq.heapify_max(), heapq.heappush_max(),
      heapq.heappop_max(), and heapq.heapreplace_max()
      public. Previous underscored naming is kept for backwards
      compatibility. Additionally, the missing function
      heapq.heappushpop_max() has been added to both the C and
      Python implementations.
    - gh-129098: Fix REPL traceback reporting when using
      compile() with an inexisting file. Patch by Bénédikt Tran.
    - gh-130631: http.cookiejar.join_header_words() is now more
      similar to the original Perl version. It now quotes the
      same set of characters and always quote values that end
      with "\n".
    - gh-130482: Add ability to specify name for
      tkinter.OptionMenu and tkinter.ttk.OptionMenu.
    - gh-77065: Add keyword-only optional argument echo_char for
      getpass.getpass() for optional visual keyboard feedback
      support. Patch by Semyon Moroz.
    - gh-130317: Fix PyFloat_Pack2() and PyFloat_Unpack2()
      for NaN’s with payload. This corrects round-trip for
      struct.unpack() and struct.pack() in case of the IEEE
      754 binary16 “half precision” type. Patch by Sergey B
      Kirpichev.
    - gh-130402: Joining running daemon threads during
      interpreter shutdown now raises PythonFinalizationError.
    - gh-130167: Improve speed of difflib.IS_LINE_JUNK(). Patch
      by Semyon Moroz.
    - gh-101410: Added more detailed messages for domain errors
      in the math module.
    - gh-128384: Make warnings.catch_warnings use a context
      variable for holding the warning filtering state if
      the sys.flags.context_aware_warnings flag is set to
      true. This makes using the context manager thread-safe
      in multi-threaded programs. The flag is true by default
      in free-threaded builds and is otherwise false. The
      value of the flag can be overridden by the the -X
      context_aware_warnings command-line option or by the
      PYTHON_CONTEXT_AWARE_WARNINGS environment variable.
    - gh-129719: Fix missing socket.CAN_RAW_ERR_FILTER constant
      in the socket module on Linux systems. It was missing since
      Python 3.11.
    - gh-129027: Raise DeprecationWarning for
      sys._clear_type_cache(). This function was deprecated in
      Python 3.13 but it didn’t raise a runtime warning.
    - gh-128307: Add eager_start keyword argument to
      asyncio.loop.create_task()
    - gh-127604: Add support for printing the C stack trace on
      systems that support it via faulthandler.dump_c_stack() or
      via the c_stack argument in faulthandler.enable().
    - gh-127385: Add the F_DUPFD_QUERY constant to the fcntl
      module.
    - gh-126838: Add resolve_host keyword-only parameter to
      urllib.request.url2pathname(), and fix handling of file
      URLs with authorities.
    - gh-82129: Fix NameError when calling
      typing.get_type_hints() on a dataclasses.dataclass()
      created by dataclasses.make_dataclass() with un-annotated
      fields.
    - gh-122559: Remove __reduce__() and __reduce_ex__() methods
      that always raise TypeError in the C implementation
      of io.FileIO, io.BufferedReader, io.BufferedWriter
      and io.BufferedRandom and replace them with default
      __getstate__() methods that raise TypeError. This restores
      fine details of behavior of Python 3.11 and older versions.
    - gh-122179: hashlib.file_digest() now raises BlockingIOError
      when no data is available during non-blocking I/O. Before,
      it added spurious null bytes to the digest.
    - gh-53032: Expose decimal.IEEEContext() to support creation
      of contexts corresponding to the IEEE 754 (2008) decimal
      interchange formats. Patch by Sergey B Kirpichev.
    - gh-120220: Deprecate the tkinter.Variable
      methods trace_variable(), trace_vdelete() and
      trace_vinfo(). Methods trace_add(), trace_remove() and
      trace_info() can be used instead.
    - gh-113539: webbrowser: Names in the BROWSER environment
      variable can now refer to already registered web browsers,
      instead of always generating a new browser command.
      This makes it possible to set BROWSER to the value of one
      of the supported browsers on macOS.
    - bpo-44172: Keep a reference to original curses windows in
      subwindows so that the original window does not get deleted
      before subwindows.
    - gh-75223: Deprecate undotted extensions in
      mimetypes.MimeTypes.add_type(). Patch by Hugo van Kemenade.
  - IDLE
    - gh-112936: fix IDLE: no Shell menu item in single-process
      mode.
  - Documentation
    - gh-107006: Move documentation and example code for
      threading.local from its docstring to the official docs.
    - gh-125142: As part of the builtin help intro text, show the
      keyboard shortcuts for the new, non-basic REPL (F1, F2, and
      F3).
  - Core and Builtins
    - gh-133336: -J is no longer reserved for use by
      Jython. Patch by Adam Turner.
    - gh-133261: Fix bug where the cycle GC could untrack
      objects in the trashcan because they looked like they were
      immortal. When objects are added to the trashcan, we take
      care to ensure they keep a mortal reference count.
    - gh-133346: Added experimental color theming support to the
      _colorize module.
    - gh-132917: For the free-threaded build, check the process
      memory usage increase before triggering a full automatic
      garbage collection. If the memory used has not increased
      10% since the last collection then defer it.
    - gh-91048: Add a new python -m asyncio ps PID command-line
      interface to inspect asyncio tasks in a running Python
      process. Displays a flat table of await relationships. A
      variant showing a tree view is also available as python -m
      asyncio pstree PID. Both are useful for debugging async
      code. Patch by Pablo Galindo, Łukasz Langa, Yury Selivanov,
      and Marta Gomez Macias.
    - gh-133304: Workaround NaN’s “canonicalization” in
      PyFloat_Pack4() and PyFloat_Unpack4() on RISC-V.
    - gh-133197: Improve SyntaxError error messages for
      incompatible string / bytes prefixes.
    - gh-133231: Add new utilities of observing JIT compilation:
      sys._jit.is_available(), sys._jit.is_enabled(), and
      sys._jit.is_active().
    - gh-133194: ast.parse() will no longer parse new PEP 758
      syntax with older feature_version passed.
    - gh-131798: Split CALL_LEN into several uops allowing the
      JIT to remove them when optimizing. Patch by Diego Russo.
    - gh-131798: Use sym_new_type instead of sym_new_not_null for
      _BUILD_STRING, _BUILD_SET
    - gh-132942: Fix two races in the type lookup cache. This
      affected the free-threaded build and could cause crashes
      (apparently quite difficult to trigger).
    - gh-131798: Propagate the return type of
      _BINARY_OP_SUBSCR_TUPLE_INT in JIT. Patch by Tomas Roun
    - gh-132952: Speed up startup with the -S argument by
      importing the private _io module instead of io. This fixes
      a performance regression introduced earlier in Python 3.14
      development and restores performance to the level of Python
      3.13.
    - gh-131798: Allow the JIT to remove int guards after
      _CALL_LEN by setting the return type to int. Patch by Diego
      Russo
    - gh-131798: Split CALL_TUPLE_1 into several uops allowing
      the JIT to remove some of them. Patch by Tomas Roun
    - gh-131798: Split CALL_STR_1 into several uops allowing the
      JIT to remove some of them. Patch by Tomas Roun
    - gh-132825: Enhance unhashable key/element error messages
      for dict and set. Patch by Victor Stinner.
    - gh-131591: Reset any PEP 768 remote debugging pending call
      in children after os.fork() calls.
    - gh-132713: Fix repr(list) race condition: hold a strong
      reference to the item while calling repr(item). Patch by
      Victor Stinner.
    - gh-132661: Implement PEP 750 (Template Strings). Add
      new syntax for t-strings and implement new
      internal string.templatelib.Template and
      string.templatelib.Interpolation types.
    - gh-132479: Fix compiler crash in certain circumstances
      where multiple module-level annotations include
      comprehensions and other nested scopes.
    - gh-132747: Fix a crash when calling __get__() of a method
      with a None second argument.
    - gh-132744: Certain calls now check for runaway recursion
      and respect the system recursion limit.
    - gh-132449: Syntax errors that look like misspellings of
      Python keywords now provide a helpful fix suggestion for
      the typo. Contributed by Pablo Galindo Salgado.
    - gh-132737: Support profiling code that requires __main__,
      such as pickle.
    - gh-132639: Added PyLong_AsNativeBytes(),
      PyLong_FromNativeBytes() and
      PyLong_FromUnsignedNativeBytes() to the limited C API.
    - gh-100239: Add specialisation for BINARY_OP/SUBSCR on list
      and slice.
    - gh-132508: Uses tagged integers on the evaluation stack
      to represent the instruction offsets when reraising an
      exception. This avoids the need to box the integer which
      could fail in low memory conditions.
    - gh-124476: Fix decoding from the locale encoding in the
      C.UTF-8 locale.
    - gh-131927: Compiler warnings originating from the same
      module and line number are now only emitted once, matching
      the behaviour of warnings emitted from user code. This can
      also be configured with warnings filters.
    - gh-132457: Make staticmethod() and classmethod() generic.
    - gh-131798: Use sym_new_type instead of sym_new_not_null for
      _BUILD_LIST, _BUILD_SET, _BUILD_MAP
    - gh-131798: Split CALL_TYPE_1 into several uops allowing the
      JIT to remove some of them.
    - gh-132386: Fix crash when passing a dict subclass as the
      globals parameter to exec().
    - gh-127682: No longer call __iter__ twice when creating and
      executing a generator expression. Creating a generator
      expression from a non-interable will raise only when the
      generator expression is executed. This brings the behavior
      of generator expressions in line with other generators.
    - gh-132261: The internal storage for annotations and
      annotate functions on classes now uses different keys in
      the class dictionary. This eliminates various edge cases
      where access to the __annotate__ and __annotations__
      attributes would behave unpredictably.
    - gh-132284: Don’t wrap base PyCFunction slots on class
      creation if not overridden.
    - gh-130415: Improve the JIT’s ability to remove unused
      constant and local variable loads, and fix an issue where
      deallocating unused values could cause JIT code to crash or
      behave incorrectly.
    - gh-126703: Fix possible use after free in cases where a
      method’s definition has the same lifetime as its self.
    - gh-132286: Fix that type.__annotate__ was not deleted, when
      type.__annotations__ was deleted.
    - gh-131798: Allow the JIT to remove an extra _TO_BOOL_BOOL
      instruction after _CONTAINS_OP_DICT by setting the return
      type to bool.
    - gh-124715: Prevents against stack overflows when calling
      Py_DECREF(). Third-party extension objects no longer need
      to use the “trashcan” mechanism, as protection is now built
      into the Py_DECREF() macro.
    - gh-131798: Allow the JIT compiler to remove some type
      checks for operations on lists, tuples, dictionaries, and
      sets.
    - gh-128398: Improve error message when an object supporting
      the synchronous (resp. asynchronous) context manager
      protocol is entered using async with (resp. with) instead
      of with (resp. async with). Patch by Bénédikt Tran.
    - gh-131798: Allow the JIT to remove unicode guards after
      _BINARY_OP_SUBSCR_STR_INT by setting the return type to
      string.
    - gh-131878: Handle uncaught exceptions in the main input
      loop for the new REPL.
    - gh-131878: Fix support of unicode characters with two or
      more codepoints on Windows in the new REPL.
    - gh-126835: Move constant folding to the peephole
      optimizer. Rename AST optimization related files
      (Python/ast_opt.c -> Python/ast_preprocess.c), structs
      (_PyASTOptimizeState -> _PyASTPreprocessState) and
      functions (_PyAST_Optimize -> _PyAST_Preprocess,
      _PyCompile_AstOptimize -> _PyCompile_AstPreprocess).
    - gh-114809: Add support for macOS multi-arch builds with the
      JIT enabled
    - gh-131507: PyREPL now supports syntax
      highlighing. Contributed by Łukasz Langa.
    - gh-130907: If the __annotations__ of a module object
      are accessed while the module is executing, return the
      annotations that have been defined so far, without caching
      them.
    - gh-130104: Three-argument pow() now try calling __rpow__()
      if necessary. Previously it was only called in two-argument
      pow() and the binary power operator.
    - gh-130070: Fixed an assertion error for exec() passed a
      string source and a non-None closure. Patch by Bartosz
      Sławecki.
    - gh-129958: Fix a bug that was allowing newlines
      inconsitently in format specifiers for single-quoted
      f-strings. Patch by Pablo Galindo.
    - gh-129858: elif statements that follow an else block now
      have a specific error message.
    - gh-69605: Add module autocomplete to PyREPL.
    - gh-128555: Add the sys.flags.thread_inherit_context flag.
        - This flag is set to true by default on the
          free-threaded build and false otherwise. If the flag
          is true, starting a new thread using threading.Thread
          will, by default, use a copy of the contextvars.Context
          from the caller of threading.Thread.start() rather than
          using an empty context.
        - Add the -X thread_inherit_context command-line option
          and PYTHON_THREAD_INHERIT_CONTEXT environment variable,
          which set the thread_inherit_context flag.
        - Add the context keyword parameter to Thread. It can be
          used to explicitly pass a context value to be used by a
          new thread.
        - Make the _contextvars module built-in.
    - gh-123539: Improve SyntaxError message for using import ...
      as and from ... import ... as with not a name.
    - gh-102567: -X importtime now accepts value 2, which
      indicates that an importtime entry should also be printed
      if an imported module has already been loaded. Patch by
      Noah Kim and Adam Turner.
    - gh-116436: Improve error message when TypeError occurs
      during dict.update()
    - gh-103997: String arguments passed to “-c” are now
      automatically dedented as if by textwrap.dedent(). This
      allows “python -c” invocations to be indented in shell
      scripts without causing indentation errors. (Patch by Jon
      Crall and Steven Sun)
    - gh-89562: Remove hostflags member from PySSLContext struct.
  - C API
    - gh-133166: Fix regression where PyType_GetModuleByDef()
      returns NULL without setting TypeError when a static type
      is passed.
    - gh-133164: Add
      PyUnstable_Object_IsUniqueReferencedTemporary() function
      for determining if an object exists as a unique temporary
      variable on the interpreter’s stack. This is a replacement
      for some cases where checking that Py_REFCNT() is one is
      no longer sufficient to determine if it’s safe to modify a
      Python object in-place with no visible side effects.
    - gh-133140: Add PyUnstable_Object_IsUniquelyReferenced()
      as a replacement for Py_REFNCT(op) == 1 on free threaded
      builds of Python.
    - gh-131747: On non-Windows platforms, deprecate using
      ctypes.Structure._pack_ to use a Windows-compatible layout
      on non-Windows platforms. The layout should be specified
      explicitly by setting ctypes.Structure._layout_ to 'ms'.
    - gh-128972: For non-free-threaded builds, the memory layout
      of PyASCIIObject is reverted to match Python 3.13. (Note
      that the structure is not part of stable ABI and so its
      memory layout is guaranteed to remain stable.)
    - gh-133079: The undocumented APIs Py_C_RECURSION_LIMIT and
      PyThreadState.c_recursion_remaining, added in 3.13, are
      removed without a deprecation period.
    - gh-132987: The k and K formats in PyArg_Parse() now support
      the __index__() special method, like all other integer
      formats.
    - gh-132909: Fix an overflow when handling the K format in
      Py_BuildValue(). Patch by Bénédikt Tran.
    - gh-132798: Deprecated and undocumented
      functions PyUnicode_AsEncodedObject(),
      PyUnicode_AsDecodedObject(), PyUnicode_AsEncodedUnicode()
      and PyUnicode_AsDecodedUnicode() are scheduled for removal
      in 3.15.
    - gh-132470: Creating a ctypes.CField with a byte_size that
      does not match the actual type size now raises a ValueError
      instead of crashing the interpreter.
    - gh-112068: Add support of nullable arguments in
      PyArg_Parse() and similar functions. Adding ? after any
      format unit makes None be accepted as a value.
    - gh-50333: Non-tuple sequences are deprecated as argument
      for the (items) format unit in PyArg_ParseTuple() and other
      argument parsing functions if items contains format units
      which store a borrowed buffer or a borrowed reference.
  - Build
    - gh-113464: Use the cpython-bin-deps “externals” repository
      for Windows LLVM dependency management. Installing LLVM
      manually is no longer necessary for Windows JIT builds.
    - gh-133183: iOS compiler shims now include
      IPHONEOS_DEPLOYMENT_TARGET in target triples, ensuring that
      SDK version minimums are honored.
    - gh-133167: Fix compilation process with
      --enable-optimizations and --without-docstrings.
    - gh-133171: Since free-threaded builds do not support the
      experimental JIT compiler, prevent these configurations
      from being combined.
    - gh-132758: Fix building with tail call interpreter and
      pystats.
    - gh-132649: The PClayout script now allows passing
      --include-tcltk on Windows ARM64.
    - gh-132257: Change the default LTO flags on GCC to not
      pass -flto-partition=none, and allow parallelization of
      LTO. For newer GNU makes and GCC, this has a multiple
      factor speedup for LTO build times, with no noticeable loss
      in performance.
    - gh-132026: Fix use of undefined identifiers in platform
      triplet detection on MIPS Linux platforms.
- Disabled GIL and experimental JIT cannot be combined.
- Remove python-3.3.0b1-test-posix_fadvise.patch (not needed
  since kernel 3.6-rc1)
- _contextvars is not a dynamic module any more
  (gh#python/cpython#128384)
- rename _testexternalinspection to _remotedebugging
  (gh#python/cpython!133284)

OBS-URL: https://build.opensuse.org/request/show/1276737
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=9
2025-05-12 14:51:31 +00:00
d5f7289dc9 - Simplify python-3.3.0b1-fix_date_time_compiler.patch not to
change getbuildinfo.c, normalizations are already done by gcc.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=63
2025-05-12 11:03:58 +00:00
b22a5b6895 remove string from general
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=62
2025-05-12 06:34:09 +00:00
fb2d2de9c8 compression should go general
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=61
2025-05-12 00:08:33 +00:00
219d04a564 try
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=60
2025-05-11 23:17:59 +00:00
bcecd415f0 try
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=59
2025-05-11 22:52:14 +00:00
00c73b878c try
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=58
2025-05-11 22:42:15 +00:00
ffa51c1d70 - rename _testexternalinspection to _remotedebugging
(gh#python/cpython!133284)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=57
2025-05-11 22:23:36 +00:00
bd8190196b - Remove python-3.3.0b1-test-posix_fadvise.patch (not needed
since kernel 3.6-rc1)
- _contextvars is not a dynamic module any more
  (gh#python/cpython#128384)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=56
2025-05-11 22:07:32 +00:00
ce7b31e84c - Remove python-3.3.0b1-test-posix_fadvise.patch (not needed
since kernel 3.6-rc1)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=55
2025-05-10 11:43:49 +00:00
2dd8922f18 - Disabled GIL and experimental JIT cannot be combined.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=54
2025-05-10 09:46:32 +00:00
0b9e0525eb - Update to 3.14.0~b1:
- Tools/Demos
    - gh-130453: Allow passing multiple keyword arguments with
      the same function name in pygettext.
    - gh-130195: Add warning messages when pygettext
      unimplemented -a/--extract-all option is called.
  - Tests
    - gh-133131: The iOS testbed will now select the most
      recently released “SE-class” device for testing if a device
      isn’t explicitly specified.
    - gh-91048: Add ability to externally inspect all pending
      asyncio tasks, even if no task is currently entered on the
      event loop.
    - gh-109981: The test helper that counts the list of open
      file descriptors now uses the optimised /dev/fd approach on
      all Apple platforms, not just macOS. This avoids crashes
      caused by guarded file descriptors.
    - gh-132678: Add --prioritize to -m test. This option allows
      the user to specify which selected tests should execute
      first, even if the order is otherwise randomized. This is
      particularly useful for tests that run the longest.
    - gh-131290: Tests in Lib/test can now be correctly executed
      as standalone scripts.
  - Security
    - gh-115322: The underlying extension modules behind
      readline:, subprocess, and ctypes now raise audit events
      on previously uncovered code paths that could lead to file
      system access related to C function calling and external
      binary execution. The ctypes.call_function audit hook has
      also been fixed to use an unsigned value for its function

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=53
2025-05-09 08:51:17 +00:00
8ed89cbb85 Accepting request 1273280 from devel:languages:python:Factory
- Update to 3.14.0~a7:
  - Tools/Demos
    - gh-132121: Always escape non-printable Unicode characters in
      pygettext.
    - gh-131852: msgfmt no longer adds the POT-Creation-Date to
      generated .mo files for consistency with GNU msgfmt.
  - Tests
    - gh-131277: Allow to unset one or more environment variables
      at once via EnvironmentVarGuard.unset(). Patch by Bénédikt
      Tran.
    - gh-131050: test_ssl.test_dh_params is skipped if the
      underlying TLS library does not support finite-field
      ephemeral Diffie-Hellman.
  - Security
    - gh-131809: Update bundled libexpat to 2.7.1
    - gh-131261: Upgrade to libexpat 2.7.0
    - gh-121284: Fix bug in the folding of rfc2047 encoded-words
      when flattening an email message using a modern email
      policy. Previously when an encoded-word was too long for
      a line, it would be decoded, split across lines, and
      re-encoded. But commas and other special characters in the
      original text could be left unencoded and unquoted. This
      could theoretically be used to spoof header lines using a
      carefully constructed encoded-word if the resulting rendered
      email was transmitted or re-parsed.
  - Library
    - gh-132174: Fix function name in error message of
      _interpreters.run_string.
    - gh-132171: Fix crash of _interpreters.run_string on string
      subclasses.

OBS-URL: https://build.opensuse.org/request/show/1273280
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=8
2025-04-29 14:41:31 +00:00
4a9e333027 Another attempt to fix %files
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=51
2025-04-29 00:25:29 +00:00
e3c6266f22 Fix hmac %files
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=50
2025-04-28 22:04:23 +00:00
4a7c0d6f4d _hmac is conditional
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=49
2025-04-16 22:07:28 +00:00
a14458a112 Fix %files
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=48
2025-04-13 00:38:45 +00:00
c92dd19832 Fix typo
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=47
2025-04-12 22:43:06 +00:00
5b45f7d9c2 Fix typo
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=46
2025-04-12 22:13:26 +00:00
5e9c8316a3 Fix version of clang
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=45
2025-04-12 22:08:04 +00:00
3ed435649a - Update to 3.14.0~a7:
- Tools/Demos
    - gh-132121: Always escape non-printable Unicode characters in
      pygettext.
    - gh-131852: msgfmt no longer adds the POT-Creation-Date to
      generated .mo files for consistency with GNU msgfmt.
  - Tests
    - gh-131277: Allow to unset one or more environment variables
      at once via EnvironmentVarGuard.unset(). Patch by Bénédikt
      Tran.
    - gh-131050: test_ssl.test_dh_params is skipped if the
      underlying TLS library does not support finite-field
      ephemeral Diffie-Hellman.
  - Security
    - gh-131809: Update bundled libexpat to 2.7.1
    - gh-131261: Upgrade to libexpat 2.7.0
    - gh-121284: Fix bug in the folding of rfc2047 encoded-words
      when flattening an email message using a modern email
      policy. Previously when an encoded-word was too long for
      a line, it would be decoded, split across lines, and
      re-encoded. But commas and other special characters in the
      original text could be left unencoded and unquoted. This
      could theoretically be used to spoof header lines using a
      carefully constructed encoded-word if the resulting rendered
      email was transmitted or re-parsed.
  - Library
    - gh-132174: Fix function name in error message of
      _interpreters.run_string.
    - gh-132171: Fix crash of _interpreters.run_string on string
      subclasses.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=44
2025-04-12 21:58:51 +00:00
f52da509da Accepting request 1251945 from devel:languages:python:Factory
- Skip PGO with %want_reproducible_builds (bsc#1239210).

OBS-URL: https://build.opensuse.org/request/show/1251945
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=7
2025-03-11 19:44:48 +00:00
b459adb683 Fix bug reference in the changelog
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=42
2025-03-11 06:16:57 +00:00
67f03bbbc0 Accepting request 1251861 from home:bmwiedemann:branches:devel:languages:python:Factory
Skip PGO with %want_reproducible_builds (boo#1040589)

OBS-URL: https://build.opensuse.org/request/show/1251861
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=41
2025-03-10 18:10:57 +00:00
35eb81a93f Accepting request 1245486 from devel:languages:python:Factory
- Update to the fifth development version of 3.14.0:
  - Tools/Demos
    - gh-129248: The iOS test runner now strips the log prefix
      from each line output by the test suite.
    - gh-104400: Fix several bugs in extraction by switching to
      an AST parser in pygettext.
  - Tests
    - gh-129386: Add test.support.reset_code, which can be used
      to reset various bytecode-level optimizations and local
      instrumentation for a function.
    - gh-128474: Disable test_embed test cases that segfault on
      BOLT instrument binaries. The tests are only disabled when
      BOLT is enabled.
    - gh-128003: Add an option --parallel-threads=N to the
      regression test runner that runs individual tests in
      multiple threads in parallel in order to find concurrency
      bugs. Note that most of the test suite is not yet reviewed
      for thread-safety or annotated with @thread_unsafe when
      necessary.
  - Security
    - gh-105704: When using urllib.parse.urlsplit() and
      urllib.parse.urlparse() host parsing would not reject
      domain names containing square brackets ([ and ]). Square
      brackets are only valid for IPv6 and IPvFuture hosts
      according to RFC 3986 Section 3.2.2. (bsc#1236705,
      CVE-2025-0938, gh#python/cpython#105704).
    - gh-126108: Fix a possible NULL pointer dereference in
      PySys_AddWarnOptionUnicode().
    - gh-80222: Fix bug in the folding of quoted strings
      when flattening an email message using a modern email
      policy. Previously when a quoted string was folded so
      that it spanned more than one line, the surrounding
      quotes and internal escapes would be omitted. This could
      theoretically be used to spoof header lines using a
      carefully constructed quoted string if the resulting
      rendered email was transmitted or re-parsed.
    - gh-119511: Fix a potential denial of service in the imaplib
      module. When connecting to a malicious server, it could
      cause an arbitrary amount of memory to be allocated. On
      many systems this is harmless as unused virtual memory is
      only a mapping, but if this hit a virtual address size
      limit it could lead to a MemoryError or other process
      crash. On unusual systems or builds where all allocated
      memory is touched and backed by actual ram or storage
      it could’ve consumed resources doing so until similarly
      crashing.
  - Library
    - gh-129939: Comparison pages with highlighted changes
      generated by the difflib.HtmlDiff class now support dark
      mode.
    - gh-129928: Raise sqlite3.ProgrammingError if a user-defined
      SQL function with invalid number of parameters is
      created. Patch by Erlend Aasland.
    - gh-129583: Update bundled pip to 25.0.1
    - gh-129766: Fix crash in warnings, when calling
      _release_lock() with no existing lock.
    - gh-129005: _pyio.FileIO.readall() now allocates, resizes,
      and fills a data buffer using the same algorithm
      _io.FileIO.readall() uses.
    - gh-129646: Update the locale alias mapping in the locale
      module to match the latest X Org locale alias mapping and
      support new locales in Glibc 2.41.
    - gh-128317: Put CLI calendar highlighting in private class,
      removing highlight_day from public calendar.TextCalendar
      API. Patch by Hugo van Kemenade.
    - gh-129603: Fix bugs where sqlite3.Row objects could
      segfault if their inherited description was set to
      None. Patch by Erlend Aasland.
    - gh-129559: Add bytearray.resize() method so bytearray can
      be efficiently resized in place.
    - gh-129502: Unlikely errors in preparing arguments for
      ctypes callback are now handled in the same way as errors
      raised in the callback of in converting the result of
      the callback – using sys.unraisablehook() instead of
      sys.excepthook() and not setting sys.last_exc and other
      variables.
    - gh-129403: Corrected ValueError message for asyncio.Barrier
      and threading.Barrier.
    - gh-129409: Fix an integer overflow in the csv module when
      writing a data field larger than 2GB.
    - gh-126400: Add a socket timeout keyword argument to
      logging.handlers.SysLogHandler.
    - gh-118761: Always lazy import warnings in threading. Patch
      by Taneli Hukkinen.
    - gh-118761: Improve import time of subprocess by lazy
      importing locale and signal. Patch by Taneli Hukkinen.
    - gh-129346: In sqlite3, handle out-of-memory when creating
      user-defined SQL functions.
    - gh-129005: Optimize _pyio.FileIO.readinto by avoiding
      unnecessary objects and copies using os.readinto().
    - gh-129195: Support reporting call graph information from
      asyncio.staggered.staggered_race().
    - gh-129205: Add os.readinto() to read into a buffer object
      from a file descriptor.
    - gh-128772: Fix pydoc for methods with the __module__
      attribute equal to None.
    - gh-129061: Fix FORCE_COLOR and NO_COLOR when empty
      strings. Patch by Hugo van Kemenade.
    - gh-92897: Scheduled the deprecation of the check_home
      argument of sysconfig.is_python_build() to Python 3.15.
    - gh-129064: Deprecate sysconfig.expand_makefile_vars(),
      in favor of using sysconfig.get_paths() with the vars
      argument.
    - gh-128550: Removed an incorrect optimization relating
      to eager tasks in asyncio.TaskGroup that resulted in
      cancellations being missed.
    - gh-128991: Release the enter frame reference within bdb
      callback
    - gh-118761: Reduce import time of pstats and zipfile by up
      to 20%, by removing unnecessary imports to typing. Patch by
      Bénédikt Tran.
    - gh-128978: Fix a NameError in
      sysconfig.expand_makefile_vars(). Patch by Bénédikt Tran.
    - gh-128961: Fix a crash when setting state on an exhausted
      array.array iterator.
    - gh-128894: Fix
      traceback.TracebackException._format_syntax_error not to
      fail on exceptions with custom metadata.
    - gh-128916: Do not attempt to set SO_REUSEPORT on sockets of
      address families other than AF_INET and AF_INET6, as it is
      meaningless with these address families, and the call with
      fail with Linux kernel 6.12.9 and newer.
    - gh-118761: Improve import time of tomllib by removing
      typing, string, and tomllib._types imports. Patch by Taneli
      Hukkinen.
    - gh-128679: tracemalloc: Fix race conditions when
      tracemalloc.stop() is called by a thread, while other
      threads are tracing memory allocations. Patch by Victor
      Stinner.
    - gh-128891: Add specialized opcodes to opcode.opname.
    - gh-118761: Reduce import time of gettext by up to ten
      times, by importing re on demand. In particular, re is
      no longer implicitly exposed as gettext.re. Patch by Eli
      Schwartz.
    - gh-118761: Reduce the import time of optparse when no help
      text is printed. Patch by Eli Schwartz.
    - gh-128657: Fix possible extra reference when using objects
      returned by hashlib.sha256() under free threading.
    - gh-118761: Reduce the import time of csv by up to five
      times, by importing re on demand. In particular, re is no
      more implicitly exposed as csv.re. Patch by Bénédikt Tran.
    - gh-128308: Support the name keyword argument
      for eager tasks in asyncio.loop.create_task(),
      asyncio.create_task() and asyncio.TaskGroup.create_task(),
      by passing on all kwargs to the task factory set by
      asyncio.loop.set_task_factory().
    - gh-118761: Improve the performance of base64.b16decode()
      by up to ten times by more efficiently checking the
      byte-string for hexadecimal digits. Reduce the import
      time of base64 by up to six times, by no longer importing
      re. Patch by Bénédikt Tran, Chris Markiewicz, and Adam
      Turner.
    - gh-128156: When using macOS system libffi, support for
      complex types in ctypes is now checked at runtime (macOS
      10.15 or newer). The types must also be available at build
      time.
    - gh-128636: Fix PyREPL failure when os.environ is
      overwritten with an invalid value.
    - gh-128498: Default to stdout isatty for color detection
      instead of stderr. Patch by Hugo van Kemenade.
    - gh-128384: Add locking to warnings to avoid some
      data races when free-threading is used. Change
      _warnings_runtime_state.mutex to be a recursive mutex
      and expose it to warnings, via the _acquire_lock() and
      _release_lock() functions. The lock is held when filters
      and _filters_version are updated.
    - gh-128509: Add sys._is_immortal() for identifying immortal
      objects at runtime.
    - gh-128479: Fix asyncio.staggered.staggered_race() leaking
      tasks and issuing an unhandled exception.
    - gh-128427: uuid.NIL and uuid.MAX are now available to
      represent the Nil and Max UUID formats as defined by RFC
      9562.
    - gh-91279: zipfile.ZipFile.writestr() now respect
      SOURCE_DATE_EPOCH that distributions can set centrally
      and have build tools consume this in order to produce
      reproducible output.
    - gh-112064: Fix incorrect handling of negative read sizes in
      HTTPResponse.read. Patch by Yury Manushkin.
    - gh-58956: Fixed a frame reference leak in bdb.
    - gh-128131: Completely support random access of uncompressed
      unencrypted read-only zip files obtained by ZipFile.open.
    - gh-127975: Avoid reusing quote types in ast.unparse() if
      not needed.
    - gh-115514: Fix exceptions and incomplete writes after
      asyncio._SelectorTransport is closed before writes are
      completed.
    - gh-121604: Add missing Deprecation warnings for
      importlib.machinery.DEBUG_BYTECODE_SUFFIXES,
      importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXES,
      importlib.machinery.WindowsRegistryFinder,
      importlib.abc.ResourceLoader,
      importlib.abc.SourceLoader.path_mtime().
    - gh-127873: When -E is set, only ignore PYTHON_COLORS
      and not FORCE_COLOR/NO_COLOR/TERM when colourising
      output. Patch by Hugo van Kemenade.
    - gh-125413: Add pathlib.Path.info attribute, which stores
      an object implementing the pathlib.types.PathInfo protocol
      (also new). The object supports querying the file type and
      internally caching stat() results. Path objects generated
      by iterdir() are initialized with file type information
      gleaned from scanning the parent directory.
    - gh-127712: Fix handling of the secure argument of
      logging.handlers.SMTPHandler.
    - gh-127096: Do not recreate unnamed section on every read in
      configparser.ConfigParser. Patch by Andrey Efremov.
    - gh-124369: Deprecate pdb.Pdb.curframe_locals
    - gh-126332: Fix _pyrepl crash when entering a double CTRL-Z
      on an overflowing line.
    - gh-125553: Fix round-trip invariance for backslash
      continuations in tokenize.untokenize().
    - gh-91048: Add asyncio.capture_call_graph() and
      asyncio.print_call_graph() functions.
    - gh-124703: Quitting pdb in inline mode will emit a
      confirmation prompt and exit gracefully now, instead of
      printing an exception traceback.
    - gh-123987: Fixed issue in NamespaceReader where a non-path
      item in a namespace path, such as a sentinel added by an
      editable installer, would break resource loading.
    - gh-119349: Add the ctypes.util.dllist() function to list
      the loaded shared libraries for the current process.
    - gh-55454: Add IMAP4 IDLE support to the imaplib
      module. Patch by Forest.
    - gh-119257: Show tab completions menu below the current
      line, which results in less janky behaviour, and fixes a
      cursor movement bug. Patch by Daniel Hollas
    - gh-101410: Support custom messages for domain errors in the
      math module (math.sqrt(), math.log() and math.atanh() were
      modified as examples). Patch by Charlie Zhao and Sergey B
      Kirpichev.
    - gh-81340: Use os.copy_file_range() in shutil.copy(),
      shutil.copy2(), and shutil.copyfile() functions by
      default. An underlying Linux system call gives filesystems
      an opportunity to implement the use of copy-on-write (in
      case of btrfs and XFS) or server-side copy (in the case of
      NFS.) Patch by Illia Volochii.
    - bpo-27307: Add attribute and item access support to
      string.Formatter in auto-numbering mode, which allows
      format strings like ‘{.name}’ and ‘{[1]}’.
  - IDLE
    - gh-129873: Simplify displaying the IDLE doc by only copying
      the text section of idle.html to idlelib/help.html. Patch
      by Stan Ulbrych.
  - Documentation
    - gh-125722: Require Sphinx 8.1.3 or later to build the
      Python documentation. Patch by Adam Turner.
    - gh-67206: Document that string.printable is not
      printable in the POSIX sense. In particular,
      string.printable.isprintable() returns False. Patch by
      Bénédikt Tran.
  - Core and Builtins
    - gh-100239: Replace the opcode BINARY_SUBSCR and its family
      by BINARY_OP with oparg NB_SUBSCR.
    - gh-129732: Fixed a race in _Py_qsbr_reserve in the free
      threading build.
    - gh-129763: Remove the internal LLTRACE macro (use Py_DEBUG
      instead).
    - gh-129715: Improve JIT performance for generators.
    - gh-129643: Fix thread safety of PyList_Insert() in
      free-threading builds.
    - gh-129668: Fix race condition when raising MemoryError in
      the free threaded build.
    - gh-129643: Fix thread safety of PyList_SetItem() in
      free-threading builds. Patch by Kumar Aditya.
    - gh-128563: Fix an issue where the “lltrace” debug feature
      could have been incorrectly enabled for some frames.
    - gh-129393: On FreeBSD, sys.platform doesn’t contain the
      major version anymore. It is always 'freebsd', instead of
      'freebsd13' or 'freebsd14'.
    - gh-129345: Fix null pointer dereference in syslog.openlog()
      when an audit hook raises an exception.
    - gh-129231: Improve memory layout of JIT traces. Patch by
      Diego Russo
    - gh-129149: Add fast path for medium-size integers in
      PyLong_FromUnsignedLong(), PyLong_FromUnsignedLongLong()
      and PyLong_FromSize_t().
    - gh-129201: The free-threaded version of the cyclic garbage
      collector has been optimized to conditionally use CPU
      prefetch instructions during the collection. This can
      reduce collection times by making it more likely that
      data is in the CPU cache when it is needed. The prefetch
      instructions are enabled if the number of long-lived
      objects (objects surviving a full collection) exceeds a
      threshold.
    - gh-129093: Fix f-strings such as f'{expr=}' sometimes not
      displaying the full expression when the expression contains
      !=.
    - gh-124363: Treat debug expressions in f-string as raw
      strings. Patch by Pablo Galindo
    - gh-128714: Fix the potential races in get/set dunder
      methods __annotations__, __annotate__ and __type_params__
      for function object, and add related tests.
    - gh-128799: Add frame of except* to traceback when it wraps
      a naked exception.
    - gh-128842: Collect JIT memory stats using pystats. Patch by
      Diego Russo.
    - gh-100239: Specialize BINARY_OP for bitwise logical
      operations on compact ints.
    - gh-128910: Undocumented and unused private C-API functions
      _PyTrash_begin and _PyTrash_end are removed.
    - gh-128807: Add a marking phase to the free-threaded
      GC. This is similar to what was done in gh-126491. Since
      the free-threaded GC does not have generations and is
      not incremental, the marking phase looks for all objects
      reachable from known roots. The roots are objects known to
      not be garbage, like the module dictionary for sys. For
      most programs, this marking phase should make the GC a bit
      faster since typically less work is done per object.
    - gh-100239: Add opcode BINARY_OP_EXTEND which executes a
      pair of functions (guard and specialization functions)
      accessed from the inline cache.
    - gh-128563: A new type of interpreter has been added
      to CPython. This interpreter uses tail calls for its
      instruction handlers. Preliminary benchmark results suggest
      7-11% geometric mean faster on pyperformance (depending
      on platform), and up to 30% faster on Python-intensive
      workloads. This interpreter currently only works on newer
      compilers, such as clang-19. Other compilers will continue
      using the old interpreter. Patch by Ken Jin, with ideas on
      how to implement this in CPython by Mark Shannon, Garret
      Gu, Haoran Xu, and Josh Haberman.
    - gh-126703: Improve performance of iterating over lists and
      tuples by using a freelist for the iterator objects.
    - gh-127953: The time to handle a LINE event in
      sys.monitoring (and sys.settrace) is now independent of the
      number of lines in the code object.
    - gh-128330: Restore terminal control characters on REPL
      exit.
    - gh-128016: Improved the SyntaxWarning message for invalid
      escape sequences to clarify that such sequences will raise
      a SyntaxError in future Python releases. The new message
      also suggests a potential fix, i.e., Did you mean "\\e"?.
    - gh-126004: Fix handling of UnicodeError.start and
      UnicodeError.end values in the codecs.replace_errors()
      error handler. Patch by Bénédikt Tran.
    - gh-126004: Fix handling of UnicodeError.start
      and UnicodeError.end values in the
      codecs.backslashreplace_errors() error handler. Patch by
      Bénédikt Tran.
    - gh-126004: Fix handling of UnicodeError.start
      and UnicodeError.end values in the
      codecs.xmlcharrefreplace_errors() error handler. Patch by
      Bénédikt Tran.
    - gh-127119: Slightly optimize the int deallocator.
    - gh-127349: Fixed the error when resizing terminal in Python
      REPL. Patch by Semyon Moroz.
    - gh-125723: Fix crash with gi_frame.f_locals when generator
      frames outlive their generator. Patch by Mikhail Efimov.
    - gh-126349: Add turtle.fill(), turtle.poly() and
      turtle.no_animation() context managers. Patch by Marie
      Roald and Yngve Mardal Moe.
    - gh-115911: If the current working directory cannot be
      determined due to permissions, then import will no longer
      raise PermissionError. Patch by Alex Willmer.
    - gh-112713: Added support for the Partitioned cookie flag in
      http.cookies.
  - C API
    - gh-129533: Update PyGC_Enable(), PyGC_Disable(),
      PyGC_IsEnabled() to use atomic operation for thread-safety
      at free-threading build. Patch by Donghee Na.
    - gh-89188: Implement PyUnicode_KIND() and PyUnicode_DATA()
      as function, in addition to the macros with the same
      names. The macros rely on C bit fields which have
      compiler-specific layout. Patch by Victor Stinner.
    - gh-91417: Remove PySequence_Fast() from the limited
      C API, since this function has to be used with
      PySequence_Fast_GET_ITEM which never worked in the limited
      C API. Patch by Victor Stinner.
    - gh-128509: Add PyUnstable_IsImmortal() for determining
      whether an object is immortal.
    - gh-129033: Remove _PyInterpreterState_GetConfigCopy() and
      _PyInterpreterState_SetConfig() private functions. Use
      instead PyConfig_Get() and PyConfig_Set(), public C API
      added by PEP 741 “Python Configuration C API”. Patch by
      Victor Stinner.
    - gh-129033: Remove the private _Py_InitializeMain()
      function. It was a provisional API added to Python 3.8 by
      PEP 587. Patch by Victor Stinner.
    - gh-128844: Add PyUnstable_TryIncRef() and
      PyUnstable_EnableTryIncRef() unstable APIs. These
      are helpers for dealing with unowned references in a
      thread-safe way, particularly in the free threading build.
    - gh-128911: Add PyImport_ImportModuleAttr() and
      PyImport_ImportModuleAttrString() helper functions to
      import a module and get an attribute of the module. Patch
      by Victor Stinner.
    - gh-128863: The following private functions are deprecated
      and planned for removal in Python 3.18:
        _PyBytes_Join(): use PyBytes_Join().
        _PyDict_GetItemStringWithError(): use PyDict_GetItemStringRef().
        _PyDict_Pop(): use PyDict_Pop().
        _PyLong_Sign(): use PyLong_GetSign().
        _PyLong_FromDigits() and _PyLong_New(): use PyLongWriter_Create().
        _PyThreadState_UncheckedGet(): use PyThreadState_GetUnchecked().
        _PyUnicode_AsString(): use PyUnicode_AsUTF8().
        _Py_HashPointer(): use Py_HashPointer().
        _Py_fopen_obj(): use Py_fopen().
    The pythoncapi-compat project can be used to get these new
    public functions on Python 3.13 and older. Patch by Victor Stinner.
    - gh-126599: Remove some internal test APIs for the
      experimental JIT compiler.
    - gh-127925: Convert the decimal module to use PEP 757 C API
      (export-import integers), offering some speed-up if the
      integer part of the Decimal instance is small. Patch by
      Sergey B Kirpichev.
  - Build
    - gh-129660: Drop test_embed from PGO training, whose
      contribution in recent versions is considered to be
      ignorable.
    - gh-128902: Fix compile errors with Clang 9 and older due to
      lack of __attribute__((fallthrough)) support.
- Remove upstreamed patches:
    - CVE-2025-0938-sq-brackets-domain-names.patch
    - 314a4-no-SO_REUSEPORT.patch

OBS-URL: https://build.opensuse.org/request/show/1245486
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=6
2025-02-13 17:39:01 +00:00
aa6f469fcc according to RFC 3986 Section 3.2.2. (bsc#1236705,
CVE-2025-0938, gh#python/cpython#105704).

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=39
2025-02-12 21:33:08 +00:00
d5816cb839 - Update to the fifth development version of 3.14.0:
- Tools/Demos
    - gh-129248: The iOS test runner now strips the log prefix
      from each line output by the test suite.
    - gh-104400: Fix several bugs in extraction by switching to
      an AST parser in pygettext.
  - Tests
    - gh-129386: Add test.support.reset_code, which can be used
      to reset various bytecode-level optimizations and local
      instrumentation for a function.
    - gh-128474: Disable test_embed test cases that segfault on
      BOLT instrument binaries. The tests are only disabled when
      BOLT is enabled.
    - gh-128003: Add an option --parallel-threads=N to the
      regression test runner that runs individual tests in
      multiple threads in parallel in order to find concurrency
      bugs. Note that most of the test suite is not yet reviewed
      for thread-safety or annotated with @thread_unsafe when
      necessary.
  - Security
    - gh-105704: When using urllib.parse.urlsplit() and
      urllib.parse.urlparse() host parsing would not reject
      domain names containing square brackets ([ and ]). Square
      brackets are only valid for IPv6 and IPvFuture hosts
      according to RFC 3986 Section 3.2.2.
    - gh-126108: Fix a possible NULL pointer dereference in
      PySys_AddWarnOptionUnicode().
    - gh-80222: Fix bug in the folding of quoted strings
      when flattening an email message using a modern email
      policy. Previously when a quoted string was folded so

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=38
2025-02-12 21:26:50 +00:00
8659ae7c2d Accepting request 1244271 from devel:languages:python:Factory
- Add CVE-2025-0938-sq-brackets-domain-names.patch which
  disallows square brackets ([ and ]) in domain names for parsed
  URLs (bsc#1236705, CVE-2025-0938, gh#python/cpython#105704)
- Add 314a4-no-SO_REUSEPORT.patch to fix build on new kernel
  (gh#python/cpython#128916).
- Configure externally_managed with a bcond
  https://en.opensuse.org/openSUSE:Python:Externally_managed
  bsc#1228165
- Update to the fourth development version of 3.14.0:
  - Tools/Demos
    - gh-128152: Fix a bug where Argument Clinic’s C
      pre-processor parser tried to parse pre-processor
      directives inside C comments. Patch by Erlend Aasland.
  - Tests
    - gh-128690: Temporarily do not use test_embed in PGO profile
      builds until the problem with test_init_pyvenv_cfg failing
      in some configurations is resolved.
  - Library
    - gh-128731: Fix ResourceWarning in
      urllib.robotparser.RobotFileParser.read().
    - gh-71339: Add new assertion methods for unittest:
      assertHasAttr(), assertNotHasAttr(), assertIsSubclass(),
      assertNotIsSubclass() assertStartsWith(),
      assertNotStartsWith(), assertEndsWith() and
      assertNotEndsWith().
    - gh-118761: Improve import time of pickle by 25% by removing
      an unnecessary regular expression. As such, re is no more
      implicitly available as pickle.re. Patch by Bénédikt Tran.
    - gh-128661: Fixes typing.evaluate_forward_ref() not showing
      deprecation when type_params arg is not passed.
    - gh-128562: Fix possible conflicts in generated tkinter
      widget names if the widget class name ends with a digit.
    - gh-128559: Improved import time of asyncio.
    - gh-128552: Fix cyclic garbage introduced
      by asyncio.loop.create_task() and
      asyncio.TaskGroup.create_task() holding a reference to the
      created task if it is eager.
    - gh-128340: Add internal thread safe handle to be used
      in asyncio.loop.call_soon_threadsafe() for thread safe
      cancellation.
    - gh-128182: Fix crash when using ctypes pointers
      concurrently on the free threaded build.
    - gh-128400: Only show the current thread in faulthandler on
      the free threaded build to prevent races.
    - gh-128400: Fix crash when using
      faulthandler.dump_traceback() while other threads are
      active on the free threaded build.
    - gh-128388: Fix PyREPL on Windows to support more
      keybindings, like the Control-← and Control-→ word-skipping
      keybindings and those with meta (i.e. Alt), e.g. Alt-d to
      kill-word or Alt-Backspace backward-kill-word.
    - gh-88834: Unify the instance check for typing.Union and
      types.UnionType: Union now uses the instance checks against
      its parameters instead of the subclass checks.
    - gh-128302: Fix
      xml.dom.xmlbuilder.DOMEntityResolver.resolveEntity(), which
      was broken by the Python 3.0 transition.
    - gh-128317: Highlight today in colour in calendar’s CLI
      output. Patch by Hugo van Kemenade.
    - gh-128302: Allow xml.dom.xmlbuilder.DOMParser.parse()
      to correctly handle xml.dom.xmlbuilder.DOMInputSource
      instances that only have a systemId attribute set.
    - gh-128151: Improve generation of UUID objects version 3,
      4, 5, and 8 via their dedicated functions by 30%. Patch by
      Bénédikt Tran.
    - gh-128118: Improve performance of copy.copy() by 30% via a
      fast path for atomic types and container types.
    - gh-127946: Fix crash when modifying ctypes._CFuncPtr
      objects concurrently on the free threaded build.
    - gh-128062: Revert the font of turtledemo’s menu bar to its
      default value and display the shortcut keys in the correct
      position.
    - gh-128014: Fix resetting the default window icon by passing
      default='' to the tkinter method wm_iconbitmap().
    - gh-41872: Fix quick extraction of module docstrings from
      a file in pydoc. It now supports docstrings with single
      quotes, escape sequences, raw string literals, and other
      Python syntax.
    - gh-127060: Set TERM environment variable to “dumb” to
      disable traceback colors in IDLE, since IDLE doesn’t
      understand ANSI escape sequences. Patch by Victor Stinner.
    - gh-126742: Fix support of localized error messages reported
      by dlerror(3) and gdbm_strerror in ctypes and dbm.gnu
      functions respectively. Patch by Bénédikt Tran.
    - gh-122548: Adds two new local events to sys.monitoring,
      BRANCH_LEFT and BRANCH_RIGHT. This allows the two arms
      of the branch to be disabled independently, which should
      hugely improve performance of branch-level coverage
      tools. The old branch event, BRANCH is now deprecated.
    - gh-127847: Fix the position when doing interleaved seeks
      and reads in uncompressed, unencrypted zip files returned
      by zipfile.ZipFile.open().
    - gh-127688: Add the SCHED_DEADLINE and SCHED_NORMAL
      constants to the os module.
    - gh-83662: Add missing __class_getitem__ method to the
      Python implementation of functools.partial(), to make it
      compatible with the C version. This is mainly relevant for
      alternative Python implementations like PyPy and GraalPy,
      because CPython will usually use the C-implementation of
      that function.
    - gh-127586: multiprocessing.pool.Pool now properly restores
      blocked signal handlers of the parent thread when creating
      processes via either spawn or forkserver.
    - gh-98188: Fix an issue in
      email.message.Message.get_payload() where data cannot be
      decoded if the Content Transfer Encoding mechanism contains
      trailing whitespaces or additional junk text. Patch by Hui
      Liu.
    - gh-127529: Correct behavior of
      asyncio.selector_events.BaseSelectorEventLoop._accept_connection()
      in handling ConnectionAbortedError in a loop. This improves
      performance on OpenBSD.
    - gh-127360: When a descriptive error message cannot be
      provided for an ssl.SSLError, the “unknown error” message
      now shows the internal error code (as retrieved by
      ERR_get_error and similar OpenSSL functions).
    - gh-127196: Fix crash when dict with keys in invalid
      encoding were passed to several functions in _interpreters
      module.
    - gh-124130: Fix a bug in matching regular expression \B in
      empty input string. Now it is always the opposite of \b. To
      get an old behavior, use (?!\A\Z)\B. To get a new behavior
      in old Python versions, use (?!\b).
    - gh-126639: tempfile.NamedTemporaryFile will now issue
      a ResourceWarning when it is finalized by the garbage
      collector without being explicitly closed.
    - gh-126624: Expose error code XML_ERROR_NOT_STARTED of Expat
      >=2.6.4 in xml.parsers.expat.errors.
    - gh-126225: getopt and optparse are no longer marked as
      deprecated. There are legitimate reasons to use one of
      these modules in preference to argparse, and none of these
      modules are at risk of being removed from the standard
      library. Of the three, argparse remains the recommended
      default choice, unless one of the concerns noted at the top
      of the optparse module documentation applies.
    - gh-124761: Add SO_REUSEPORT_LB constant to socket for
      FreeBSD.
    - gh-121720: enum.EnumDict can now be used without resorting
      to private API.
    - gh-123424: Add zipfile.ZipInfo._for_archive() setting
      default properties on ZipInfo objects. Patch by Bénédikt
      Tran and Jason R. Coombs.
    - gh-121676: Deprecate calling the Python implementation of
      functools.reduce() with a function or sequence as a keyword
      argument. This will be forbidden in Python 3.16 in order to
      match the C implementation.
    - gh-112015: ctypes.memoryview_at() now exists to create
      a memoryview object that refers to the supplied pointer
      and length. This works like ctypes.string_at() except
      it avoids a buffer copy, and is typically useful when
      implementing pure Python callback functions that are passed
      dynamically-sized buffers.
    - gh-95371: Added support for other image formats (PNG, PGM,
      and PPM) to the turtle module. Patch by Shin-myoung-serp.
  - Core and Builtins
    - gh-128078: Fix a SystemError when using anext() with a
      default tuple value. Patch by Bénédikt Tran.
    - gh-128717: Fix a crash when setting the recursion limit
      while other threads are active on the free threaded build.
    - gh-124483: Treat Py_DECREF and variants as escaping when
      generating opcode and uop metadata. This prevents the
      possibility of a __del__ method causing the JIT to behave
      incorrectly.
    - gh-126703: Improve performance of class methods by using a
      freelist.
    - gh-128137: Update PyASCIIObject layout to handle interned
      field with the atomic operation. Patch by Donghee Na.
    - gh-128192: Upgrade HTTP digest authentication algorithm for
      urllib.request by supporting SHA-256 digest authentication
      as specified in RFC 7616.
    - gh-126868: Increase usage of freelist for int allocation.
    - gh-114203: Optimize Py_BEGIN_CRITICAL_SECTION for simple
      recursive calls.
    - gh-127705: Adds stackref debugging when Py_STACKREF_DEBUG
      Inis set. Finds all double-closes and leaks, logging the
      Inorigin and last borrow. spired by HPy’s debug mode.
      Inhttps://docs.hpyproject.org/en/latest/debug-mode.html
    - gh-128079: Fix a bug where except* does not properly check
      the return value of an ExceptionGroup’s split() function,
      leading to a crash in some cases. Now when split() returns
      an invalid object, except* raises a TypeError with the
      original raised ExceptionGroup object chained to it.
    - gh-128030: Avoid error from calling
      PyModule_GetFilenameObject on a non-module object when
      importing a non-existent symbol from a non-module object.
    - gh-128035: Indicate through ssl.HAS_PHA whether the
      ssl module supports TLSv1.3 post-handshake client
      authentication (PHA). Patch by Will Childs-Klein.
    - gh-127274: Add a new flag, CO_METHOD, to co_flags that
      indicates whether the code object belongs to a function
      defined in class scope.
    - gh-66409: During the path initialization, we now check if
      base_exec_prefix is the same as base_prefix before falling
      back to searching the Python interpreter directory.
    - gh-127970: We now use the location of the libpython
      runtime library used in the current proccess to determine
      sys.base_prefix on all platforms implementing the dladdr
      function defined by the UNIX standard — this includes
      Linux, Android, macOS, iOS, FreeBSD, etc. This was already
      the case on Windows and macOS Framework builds.
    - gh-127773: Do not use the type attribute cache for types
      with incompatible MRO.
    - gh-127903: Objects/unicodeobject.c: fix a crash on DEBUG
      builds in _copy_characters when there is nothing to copy.
    - gh-127809: Fix an issue where the experimental JIT may
      infer an incorrect result type for exponentiation (** and
      **=), leading to bugs or crashes.
    - gh-126862: Fix a possible overflow when a class inherits
      from an absurd number of super-classes. Reported by Valery
      Fedorenko. Patch by Bénédikt Tran.
  - C API
    - gh-128400: Py_FatalError() no longer shows all threads on
      the free threaded build to prevent crashes.
    - gh-128629: Add macros Py_PACK_VERSION() and
      Py_PACK_FULL_VERSION() for bit-packing Python version
      numbers.
    - gh-128008: Add PyWeakref_IsDead() function, which tests if
      a weak reference is dead.
    - gh-127350: Add Py_fopen() function to open a file. Similar
      to the fopen() function, but the path parameter is a
      Python object and an exception is set on error. Add also
      Py_fclose() function to close a file, function needed for
      Windows support. Patch by Victor Stinner.
  - Build
    - gh-128627: For Emscripten builds the function pointer cast
      call trampoline now uses the wasm-gc ref.test instruction
      if it’s available instead of Wasm JS type reflection.
    - gh-128472: Skip BOLT optimization of functions using
      computed gotos, fixing errors on build with LLVM 19.
    - gh-115765: GNU Autoconf 2.72 is now required to generate
      !configure. Patch by Erlend Aasland.
    - gh-123925: Fix building the curses module on platforms with
      libncurses but without libncursesw.
    - gh-90905: Add support for cross-compiling to x86_64 on
      aarch64/arm64 macOS.
    - gh-128321: Set LIBS instead of LDFLAGS when checking if
      sqlite3 library functions are available. This fixes the
      ordering of linked libraries during checks, which was
      incorrect when using a statically linked libsqlite3.
    - gh-100384: Error on unguarded-availability in macOS builds,
      preventing invalid use of symbols that are not available in
      older versions of the OS.
    - gh-128104: Remove Py_STRFTIME_C99_SUPPORT conditions in
      favor of requiring C99 strftime(3) specifier support at
      build time. When cross-compiling, there is no build time
      check and support is assumed.
    - gh-127951: Add option --pystats to the Windows build to
      enable performance statistics collection.

OBS-URL: https://build.opensuse.org/request/show/1244271
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=5
2025-02-09 19:01:38 +00:00
b3baeedca9 - Add 314a4-no-SO_REUSEPORT.patch to fix build on new kernel
(gh#python/cpython#128916).

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=36
2025-02-07 19:25:18 +00:00
fb6c6692db Fix changelog
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=35
2025-02-07 18:54:16 +00:00
8b94bc8090 - Add CVE-2025-0938-sq-brackets-domain-names.patch which
disallows square brackets ([ and ]) in domain names for parsed
  URLs (bsc#1236705, CVE-2025-0938, gh#python/cpython#105704)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=34
2025-02-07 18:53:28 +00:00
666a05a468 - Configure externally_managed with a bcond
https://en.opensuse.org/openSUSE:Python:Externally_managed
  bsc#1228165

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=33
2025-02-03 14:13:15 +00:00
b7a4629611 - Update to the fourth development version of 3.14.0:
- Tools/Demos
    - gh-128152: Fix a bug where Argument Clinic’s C
      pre-processor parser tried to parse pre-processor
      directives inside C comments. Patch by Erlend Aasland.
  - Tests
    - gh-128690: Temporarily do not use test_embed in PGO profile
      builds until the problem with test_init_pyvenv_cfg failing
      in some configurations is resolved.
  - Library
    - gh-128731: Fix ResourceWarning in
      urllib.robotparser.RobotFileParser.read().
    - gh-71339: Add new assertion methods for unittest:
      assertHasAttr(), assertNotHasAttr(), assertIsSubclass(),
      assertNotIsSubclass() assertStartsWith(),
      assertNotStartsWith(), assertEndsWith() and
      assertNotEndsWith().
    - gh-118761: Improve import time of pickle by 25% by removing
      an unnecessary regular expression. As such, re is no more
      implicitly available as pickle.re. Patch by Bénédikt Tran.
    - gh-128661: Fixes typing.evaluate_forward_ref() not showing
      deprecation when type_params arg is not passed.
    - gh-128562: Fix possible conflicts in generated tkinter
      widget names if the widget class name ends with a digit.
    - gh-128559: Improved import time of asyncio.
    - gh-128552: Fix cyclic garbage introduced
      by asyncio.loop.create_task() and
      asyncio.TaskGroup.create_task() holding a reference to the
      created task if it is eager.
    - gh-128340: Add internal thread safe handle to be used

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=32
2025-01-17 23:07:33 +00:00
1f2a8a5568 Accepting request 1233306 from devel:languages:python:Factory
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1233306
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=4
2024-12-26 11:24:12 +00:00
5305209e15 Fix %%files
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=30
2024-12-18 09:09:12 +00:00
27c84829c0 Add _sysconfig_*.json file to %%files.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=29
2024-12-18 06:23:32 +00:00
b4a03c8ca5 - Update to the third development version of 3.14.0:
- Tools/Demos
    - gh-126700: Add support for multi-argument gettext functions
      in pygettext.py.
  - Tests
    - gh-127906: Test the limited C API in test_cppext. Patch by
      Victor Stinner.
    - gh-127637: Add tests for the dis command-line
      interface. Patch by Bénédikt Tran.
    - gh-126925: iOS test results are now streamed during test
      execution, and the deprecated xcresulttool is no longer
      used.
    - gh-127076: Disable strace based system call tests when
      LD_PRELOAD is set.
    - gh-127076: Filter out memory-related mmap, munmap, and
      mprotect calls from file-related ones when testing io
      behavior using strace.
  - Security
    - gh-127655: Fixed the
      asyncio.selector_events._SelectorSocketTransport
      transport not pausing writes for the protocol when
      the buffer reaches the high water mark when using
      asyncio.WriteTransport.writelines().
  - Library
    - gh-126907: Fix crash when using atexit concurrently on the
      free-threaded build.
    - gh-127870: Detect recursive calls in ctypes _as_parameter_
      handling. Patch by Victor Stinner.
    - gh-127732: The platform module now correctly detects
      Windows Server 2025.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=28
2024-12-18 00:35:19 +00:00
fce5013011 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
2024-12-08 10:37:19 +00:00
c7164168dc Update F00251-change-user-install-location.patch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=26
2024-12-06 15:35:06 +00:00
0596163e48 - Don't limit clang to clang18.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=25
2024-11-19 23:25:44 +00:00
809f944b62 Don't limit to clang18
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=24
2024-11-19 23:19:44 +00:00
9d574d767b - 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

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=23
2024-11-19 22:16:13 +00:00
5478a684d8 Accepting request 1224239 from devel:languages:python:Factory
- Remove -IVendor/ from python-config boo#1231795
- Require exact clang18 and llvm18, because apparently CPython is
  not ready for 19 yet (gh#python/cpython!125499).

OBS-URL: https://build.opensuse.org/request/show/1224239
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=2
2024-11-15 14:42:33 +00:00
7561ffd453 - Remove -IVendor/ from python-config boo#1231795
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=21
2024-11-14 07:06:50 +00:00
bad4db9a6e - Require exact clang18 and llvm18, because apparently CPython is
not ready for 19 yet (gh#python/cpython!125499).

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=20
2024-11-11 17:21:00 +00:00
ec6360c6b5 Accepting request 1218446 from devel:languages:python:Factory
new version of the Python interpreter

OBS-URL: https://build.opensuse.org/request/show/1218446
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python314?expand=0&rev=1
2024-10-28 14:17:52 +00:00
c070616633 - Fix version number to 3.14.0~a1
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=18
2024-10-25 20:36:04 +00:00
fff9b66773 Recover patch CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=17
2024-10-17 12:40:45 +00:00
a15f7b0fad - Add fix_test_generated_data.patch to skip failing test
(gh#python/cpython#121938).

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=16
2024-10-17 12:39:27 +00:00
3f3cf2ab15 requiring network access, and explicitly declare we have no
network.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=15
2024-10-17 11:26:41 +00:00
3a5dd04770 More debugging
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=14
2024-10-17 11:08:35 +00:00
a7b3239561 I cannot believe this would fix the patch.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=13
2024-10-17 10:31:44 +00:00
8bad2f513e Use %%autosetup
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=12
2024-10-17 07:35:40 +00:00
a0ad707487 Escape macros in comments
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=11
2024-10-17 06:41:36 +00:00
a07e4323d1 Fix fix_test_ftp_error.patch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=10
2024-10-17 05:35:58 +00:00
80e1e18481 - Binary module _opcode is not build any more
(gh#python/cpython!121555)
- Add fix_test_ftp_error.patch to mark test_ftp_error as
  requiring network access.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=9
2024-10-16 13:13:17 +00:00
194f2f3598 Fix changes
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=8
2024-10-16 11:33:27 +00:00
9eb4265634 - Binary module _opcode is not build any more.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=7
2024-10-16 08:26:01 +00:00
2ccc1ee586 sigstore. Remove python.keyring.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=6
2024-10-16 07:25:32 +00:00
90379ac38c - With python311-Sphinx we don't need no-skipif-doctests.patch
any more.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=5
2024-10-16 07:24:52 +00:00
d3604bc82f - Add patch to fix build:
- gh125535-Lib_IntVector_Intrinsics_vec128.patch
    (gh#python/cpython#125535)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=4
2024-10-16 07:20:31 +00:00
7bbbc4808d - Update to the first development version of 3.14.0a1.
Many new features for Python 3.14 are still being planned and
  written. Among the new major new features and changes so far:
  - PEP 649: deferred evaluation of annotations
  - Improved error messages
- Upstream doesn't sign tarballs with GPG anymore, but uses
  sigstore.
- Patches rebased and refreshed:
  - CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
  - bpo-31046_ensurepip_honours_prefix.patch
  - fix-test-recursion-limit-15.6.patch
  - python-3.3.0b1-fix_date_time_compiler.patch

- Add warning about no-GIL builds being experimental.

- Update to 3.13.0:
  Major new features of the 3.13 series, compared to 3.12
  Some of the new major new features and changes in Python 3.13 are:
  - New features
    - A new and improved interactive interpreter, based on
      PyPy's, featuring multi-line editing and color support, as
      well as colorized exception tracebacks.
    - An experimental free-threaded build mode, which disables
      the Global Interpreter Lock, allowing threads to run
      more concurrently. The build mode is available as an
      experimental feature in the Windows and macOS installers as
      well.
    - A preliminary, experimental JIT, providing the ground work
      for significant performance improvements.
    - The locals() builtin function (and its C equivalent)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=3
2024-10-16 07:07:46 +00:00
28ba05e717 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=2 2024-10-16 05:31:22 +00:00
22 changed files with 0 additions and 627 deletions

View File

@@ -1,480 +0,0 @@
From 3a939ff2298d147459116f98a09549d0f1954039 Mon Sep 17 00:00:00 2001
From: Serhiy Storchaka <storchaka@gmail.com>
Date: Tue, 4 Feb 2025 11:44:39 +0200
Subject: Fix use-after-free in the unicode-escape decoder with error handler
If the error handler is used, a new bytes object is created to set as
the object attribute of UnicodeDecodeError, and that bytes object then
replaces the original data. A pointer to the decoded data will became invalid
after destroying that temporary bytes object. So we need other way to return
the first invalid escape from _PyUnicode_DecodeUnicodeEscapeInternal().
_PyBytes_DecodeEscape() does not have such issue, because it does not
use the error handlers registry, but it should be changed for compatibility
with _PyUnicode_DecodeUnicodeEscapeInternal().
---
Include/internal/pycore_bytesobject.h | 5
Include/internal/pycore_unicodeobject.h | 12 +-
Lib/test/test_codeccallbacks.py | 39 +++++++
Lib/test/test_codecs.py | 52 ++++++++--
Misc/NEWS.d/next/Security/2025-05-09-20-22-54.gh-issue-133767.kN2i3Q.rst | 2
Objects/bytesobject.c | 41 ++++---
Objects/unicodeobject.c | 46 +++++---
Parser/string_parser.c | 26 +++--
8 files changed, 160 insertions(+), 63 deletions(-)
Index: Python-3.14.0b1/Include/internal/pycore_bytesobject.h
===================================================================
--- Python-3.14.0b1.orig/Include/internal/pycore_bytesobject.h 2025-05-06 15:33:52.000000000 +0000
+++ Python-3.14.0b1/Include/internal/pycore_bytesobject.h 2025-05-17 06:44:53.614667081 +0000
@@ -20,8 +20,9 @@
// Helper for PyBytes_DecodeEscape that detects invalid escape chars.
// Export for test_peg_generator.
-PyAPI_FUNC(PyObject*) _PyBytes_DecodeEscape(const char *, Py_ssize_t,
- const char *, const char **);
+PyAPI_FUNC(PyObject*) _PyBytes_DecodeEscape2(const char *, Py_ssize_t,
+ const char *,
+ int *, const char **);
// Substring Search.
Index: Python-3.14.0b1/Include/internal/pycore_unicodeobject.h
===================================================================
--- Python-3.14.0b1.orig/Include/internal/pycore_unicodeobject.h 2025-05-06 15:33:52.000000000 +0000
+++ Python-3.14.0b1/Include/internal/pycore_unicodeobject.h 2025-05-17 06:44:53.614817134 +0000
@@ -139,14 +139,18 @@
// Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape
// chars.
// Export for test_peg_generator.
-PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscapeInternal(
+PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscapeInternal2(
const char *string, /* Unicode-Escape encoded string */
Py_ssize_t length, /* size of string */
const char *errors, /* error handling */
Py_ssize_t *consumed, /* bytes consumed */
- const char **first_invalid_escape); /* on return, points to first
- invalid escaped char in
- string. */
+ int *first_invalid_escape_char, /* on return, if not -1, contain the first
+ invalid escaped char (<= 0xff) or invalid
+ octal escape (> 0xff) in string. */
+ const char **first_invalid_escape_ptr); /* on return, if not NULL, may
+ point to the first invalid escaped
+ char in string.
+ May be NULL if errors is not NULL. */
/* --- Raw-Unicode-Escape Codecs ---------------------------------------------- */
Index: Python-3.14.0b1/Lib/test/test_codeccallbacks.py
===================================================================
--- Python-3.14.0b1.orig/Lib/test/test_codeccallbacks.py 2025-05-17 06:44:47.673341939 +0000
+++ Python-3.14.0b1/Lib/test/test_codeccallbacks.py 2025-05-17 06:44:53.615018793 +0000
@@ -2,6 +2,7 @@
import codecs
import html.entities
import itertools
+import re
import sys
import unicodedata
import unittest
@@ -1125,7 +1126,7 @@
text = 'abc<def>ghi'*n
text.translate(charmap)
- def test_mutatingdecodehandler(self):
+ def test_mutating_decode_handler(self):
baddata = [
("ascii", b"\xff"),
("utf-7", b"++"),
@@ -1160,6 +1161,42 @@
for (encoding, data) in baddata:
self.assertEqual(data.decode(encoding, "test.mutating"), "\u4242")
+ def test_mutating_decode_handler_unicode_escape(self):
+ decode = codecs.unicode_escape_decode
+ def mutating(exc):
+ if isinstance(exc, UnicodeDecodeError):
+ r = data.get(exc.object[:exc.end])
+ if r is not None:
+ exc.object = r[0] + exc.object[exc.end:]
+ return ('\u0404', r[1])
+ raise AssertionError("don't know how to handle %r" % exc)
+
+ codecs.register_error('test.mutating2', mutating)
+ data = {
+ br'\x0': (b'\\', 0),
+ br'\x3': (b'xxx\\', 3),
+ br'\x5': (b'x\\', 1),
+ }
+ def check(input, expected, msg):
+ with self.assertWarns(DeprecationWarning) as cm:
+ self.assertEqual(decode(input, 'test.mutating2'), (expected, len(input)))
+ self.assertIn(msg, str(cm.warning))
+
+ check(br'\x0n\z', '\u0404\n\\z', r'"\z" is an invalid escape sequence')
+ check(br'\x0n\501', '\u0404\n\u0141', r'"\501" is an invalid octal escape sequence')
+ check(br'\x0z', '\u0404\\z', r'"\z" is an invalid escape sequence')
+
+ check(br'\x3n\zr', '\u0404\n\\zr', r'"\z" is an invalid escape sequence')
+ check(br'\x3zr', '\u0404\\zr', r'"\z" is an invalid escape sequence')
+ check(br'\x3z5', '\u0404\\z5', r'"\z" is an invalid escape sequence')
+ check(memoryview(br'\x3z5x')[:-1], '\u0404\\z5', r'"\z" is an invalid escape sequence')
+ check(memoryview(br'\x3z5xy')[:-2], '\u0404\\z5', r'"\z" is an invalid escape sequence')
+
+ check(br'\x5n\z', '\u0404\n\\z', r'"\z" is an invalid escape sequence')
+ check(br'\x5n\501', '\u0404\n\u0141', r'"\501" is an invalid octal escape sequence')
+ check(br'\x5z', '\u0404\\z', r'"\z" is an invalid escape sequence')
+ check(memoryview(br'\x5zy')[:-1], '\u0404\\z', r'"\z" is an invalid escape sequence')
+
# issue32583
def test_crashing_decode_handler(self):
# better generating one more character to fill the extra space slot
Index: Python-3.14.0b1/Lib/test/test_codecs.py
===================================================================
--- Python-3.14.0b1.orig/Lib/test/test_codecs.py 2025-05-17 06:44:47.696604117 +0000
+++ Python-3.14.0b1/Lib/test/test_codecs.py 2025-05-17 06:44:53.615449954 +0000
@@ -1196,23 +1196,39 @@
check(br"[\1010]", b"[A0]")
check(br"[\x41]", b"[A]")
check(br"[\x410]", b"[A0]")
+
+ def test_warnings(self):
+ decode = codecs.escape_decode
+ check = coding_checker(self, decode)
for i in range(97, 123):
b = bytes([i])
if b not in b'abfnrtvx':
- with self.assertWarns(DeprecationWarning):
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\%c" is an invalid escape sequence' % i):
check(b"\\" + b, b"\\" + b)
- with self.assertWarns(DeprecationWarning):
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\%c" is an invalid escape sequence' % (i-32)):
check(b"\\" + b.upper(), b"\\" + b.upper())
- with self.assertWarns(DeprecationWarning):
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\8" is an invalid escape sequence'):
check(br"\8", b"\\8")
with self.assertWarns(DeprecationWarning):
check(br"\9", b"\\9")
- with self.assertWarns(DeprecationWarning):
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\\xfa" is an invalid escape sequence') as cm:
check(b"\\\xfa", b"\\\xfa")
for i in range(0o400, 0o1000):
- with self.assertWarns(DeprecationWarning):
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\%o" is an invalid octal escape sequence' % i):
check(rb'\%o' % i, bytes([i & 0o377]))
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\z" is an invalid escape sequence'):
+ self.assertEqual(decode(br'\x\z', 'ignore'), (b'\\z', 4))
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\501" is an invalid octal escape sequence'):
+ self.assertEqual(decode(br'\x\501', 'ignore'), (b'A', 6))
+
def test_errors(self):
decode = codecs.escape_decode
self.assertRaises(ValueError, decode, br"\x")
@@ -2661,24 +2677,40 @@
check(br"[\x410]", "[A0]")
check(br"\u20ac", "\u20ac")
check(br"\U0001d120", "\U0001d120")
+
+ def test_decode_warnings(self):
+ decode = codecs.unicode_escape_decode
+ check = coding_checker(self, decode)
for i in range(97, 123):
b = bytes([i])
if b not in b'abfnrtuvx':
- with self.assertWarns(DeprecationWarning):
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\%c" is an invalid escape sequence' % i):
check(b"\\" + b, "\\" + chr(i))
if b.upper() not in b'UN':
- with self.assertWarns(DeprecationWarning):
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\%c" is an invalid escape sequence' % (i-32)):
check(b"\\" + b.upper(), "\\" + chr(i-32))
- with self.assertWarns(DeprecationWarning):
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\8" is an invalid escape sequence'):
check(br"\8", "\\8")
with self.assertWarns(DeprecationWarning):
check(br"\9", "\\9")
- with self.assertWarns(DeprecationWarning):
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\\xfa" is an invalid escape sequence') as cm:
check(b"\\\xfa", "\\\xfa")
for i in range(0o400, 0o1000):
- with self.assertWarns(DeprecationWarning):
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\%o" is an invalid octal escape sequence' % i):
check(rb'\%o' % i, chr(i))
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\z" is an invalid escape sequence'):
+ self.assertEqual(decode(br'\x\z', 'ignore'), ('\\z', 4))
+ with self.assertWarnsRegex(DeprecationWarning,
+ r'"\\501" is an invalid octal escape sequence'):
+ self.assertEqual(decode(br'\x\501', 'ignore'), ('\u0141', 6))
+
def test_decode_errors(self):
decode = codecs.unicode_escape_decode
for c, d in (b'x', 2), (b'u', 4), (b'U', 4):
Index: Python-3.14.0b1/Misc/NEWS.d/next/Security/2025-05-09-20-22-54.gh-issue-133767.kN2i3Q.rst
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ Python-3.14.0b1/Misc/NEWS.d/next/Security/2025-05-09-20-22-54.gh-issue-133767.kN2i3Q.rst 2025-05-17 06:44:53.615887918 +0000
@@ -0,0 +1,2 @@
+Fix use-after-free in the "unicode-escape" decoder with a non-"strict" error
+handler.
Index: Python-3.14.0b1/Objects/bytesobject.c
===================================================================
--- Python-3.14.0b1.orig/Objects/bytesobject.c 2025-05-06 15:33:52.000000000 +0000
+++ Python-3.14.0b1/Objects/bytesobject.c 2025-05-17 06:44:53.616354335 +0000
@@ -1075,10 +1075,11 @@
}
/* Unescape a backslash-escaped string. */
-PyObject *_PyBytes_DecodeEscape(const char *s,
+PyObject *_PyBytes_DecodeEscape2(const char *s,
Py_ssize_t len,
const char *errors,
- const char **first_invalid_escape)
+ int *first_invalid_escape_char,
+ const char **first_invalid_escape_ptr)
{
int c;
char *p;
@@ -1092,7 +1093,8 @@
return NULL;
writer.overallocate = 1;
- *first_invalid_escape = NULL;
+ *first_invalid_escape_char = -1;
+ *first_invalid_escape_ptr = NULL;
end = s + len;
while (s < end) {
@@ -1130,9 +1132,10 @@
c = (c<<3) + *s++ - '0';
}
if (c > 0377) {
- if (*first_invalid_escape == NULL) {
- *first_invalid_escape = s-3; /* Back up 3 chars, since we've
- already incremented s. */
+ if (*first_invalid_escape_char == -1) {
+ *first_invalid_escape_char = c;
+ /* Back up 3 chars, since we've already incremented s. */
+ *first_invalid_escape_ptr = s - 3;
}
}
*p++ = c;
@@ -1173,9 +1176,10 @@
break;
default:
- if (*first_invalid_escape == NULL) {
- *first_invalid_escape = s-1; /* Back up one char, since we've
- already incremented s. */
+ if (*first_invalid_escape_char == -1) {
+ *first_invalid_escape_char = (unsigned char)s[-1];
+ /* Back up one char, since we've already incremented s. */
+ *first_invalid_escape_ptr = s - 1;
}
*p++ = '\\';
s--;
@@ -1195,18 +1199,19 @@
Py_ssize_t Py_UNUSED(unicode),
const char *Py_UNUSED(recode_encoding))
{
- const char* first_invalid_escape;
- PyObject *result = _PyBytes_DecodeEscape(s, len, errors,
- &first_invalid_escape);
+ int first_invalid_escape_char;
+ const char *first_invalid_escape_ptr;
+ PyObject *result = _PyBytes_DecodeEscape2(s, len, errors,
+ &first_invalid_escape_char,
+ &first_invalid_escape_ptr);
if (result == NULL)
return NULL;
- if (first_invalid_escape != NULL) {
- unsigned char c = *first_invalid_escape;
- if ('4' <= c && c <= '7') {
+ if (first_invalid_escape_char != -1) {
+ if (first_invalid_escape_char > 0xff) {
if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
- "b\"\\%.3s\" is an invalid octal escape sequence. "
+ "b\"\\%o\" is an invalid octal escape sequence. "
"Such sequences will not work in the future. ",
- first_invalid_escape) < 0)
+ first_invalid_escape_char) < 0)
{
Py_DECREF(result);
return NULL;
@@ -1216,7 +1221,7 @@
if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
"b\"\\%c\" is an invalid escape sequence. "
"Such sequences will not work in the future. ",
- c) < 0)
+ first_invalid_escape_char) < 0)
{
Py_DECREF(result);
return NULL;
Index: Python-3.14.0b1/Objects/unicodeobject.c
===================================================================
--- Python-3.14.0b1.orig/Objects/unicodeobject.c 2025-05-06 15:33:52.000000000 +0000
+++ Python-3.14.0b1/Objects/unicodeobject.c 2025-05-17 06:44:53.617547540 +0000
@@ -6621,13 +6621,15 @@
/* --- Unicode Escape Codec ----------------------------------------------- */
PyObject *
-_PyUnicode_DecodeUnicodeEscapeInternal(const char *s,
+_PyUnicode_DecodeUnicodeEscapeInternal2(const char *s,
Py_ssize_t size,
const char *errors,
Py_ssize_t *consumed,
- const char **first_invalid_escape)
+ int *first_invalid_escape_char,
+ const char **first_invalid_escape_ptr)
{
const char *starts = s;
+ const char *initial_starts = starts;
_PyUnicodeWriter writer;
const char *end;
PyObject *errorHandler = NULL;
@@ -6635,7 +6637,8 @@
_PyUnicode_Name_CAPI *ucnhash_capi;
// so we can remember if we've seen an invalid escape char or not
- *first_invalid_escape = NULL;
+ *first_invalid_escape_char = -1;
+ *first_invalid_escape_ptr = NULL;
if (size == 0) {
if (consumed) {
@@ -6723,9 +6726,12 @@
}
}
if (ch > 0377) {
- if (*first_invalid_escape == NULL) {
- *first_invalid_escape = s-3; /* Back up 3 chars, since we've
- already incremented s. */
+ if (*first_invalid_escape_char == -1) {
+ *first_invalid_escape_char = ch;
+ if (starts == initial_starts) {
+ /* Back up 3 chars, since we've already incremented s. */
+ *first_invalid_escape_ptr = s - 3;
+ }
}
}
WRITE_CHAR(ch);
@@ -6820,9 +6826,12 @@
goto error;
default:
- if (*first_invalid_escape == NULL) {
- *first_invalid_escape = s-1; /* Back up one char, since we've
- already incremented s. */
+ if (*first_invalid_escape_char == -1) {
+ *first_invalid_escape_char = c;
+ if (starts == initial_starts) {
+ /* Back up one char, since we've already incremented s. */
+ *first_invalid_escape_ptr = s - 1;
+ }
}
WRITE_ASCII_CHAR('\\');
WRITE_CHAR(c);
@@ -6867,19 +6876,20 @@
const char *errors,
Py_ssize_t *consumed)
{
- const char *first_invalid_escape;
- PyObject *result = _PyUnicode_DecodeUnicodeEscapeInternal(s, size, errors,
+ int first_invalid_escape_char;
+ const char *first_invalid_escape_ptr;
+ PyObject *result = _PyUnicode_DecodeUnicodeEscapeInternal2(s, size, errors,
consumed,
- &first_invalid_escape);
+ &first_invalid_escape_char,
+ &first_invalid_escape_ptr);
if (result == NULL)
return NULL;
- if (first_invalid_escape != NULL) {
- unsigned char c = *first_invalid_escape;
- if ('4' <= c && c <= '7') {
+ if (first_invalid_escape_char != -1) {
+ if (first_invalid_escape_char > 0xff) {
if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
- "\"\\%.3s\" is an invalid octal escape sequence. "
+ "\"\\%o\" is an invalid octal escape sequence. "
"Such sequences will not work in the future. ",
- first_invalid_escape) < 0)
+ first_invalid_escape_char) < 0)
{
Py_DECREF(result);
return NULL;
@@ -6889,7 +6899,7 @@
if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
"\"\\%c\" is an invalid escape sequence. "
"Such sequences will not work in the future. ",
- c) < 0)
+ first_invalid_escape_char) < 0)
{
Py_DECREF(result);
return NULL;
Index: Python-3.14.0b1/Parser/string_parser.c
===================================================================
--- Python-3.14.0b1.orig/Parser/string_parser.c 2025-05-06 15:33:52.000000000 +0000
+++ Python-3.14.0b1/Parser/string_parser.c 2025-05-17 06:44:53.618734552 +0000
@@ -196,15 +196,18 @@
len = (size_t)(p - buf);
s = buf;
- const char *first_invalid_escape;
- v = _PyUnicode_DecodeUnicodeEscapeInternal(s, (Py_ssize_t)len, NULL, NULL, &first_invalid_escape);
+ int first_invalid_escape_char;
+ const char *first_invalid_escape_ptr;
+ v = _PyUnicode_DecodeUnicodeEscapeInternal2(s, (Py_ssize_t)len, NULL, NULL,
+ &first_invalid_escape_char,
+ &first_invalid_escape_ptr);
// HACK: later we can simply pass the line no, since we don't preserve the tokens
// when we are decoding the string but we preserve the line numbers.
- if (v != NULL && first_invalid_escape != NULL && t != NULL) {
- if (warn_invalid_escape_sequence(parser, s, first_invalid_escape, t) < 0) {
- /* We have not decref u before because first_invalid_escape points
- inside u. */
+ if (v != NULL && first_invalid_escape_ptr != NULL && t != NULL) {
+ if (warn_invalid_escape_sequence(parser, s, first_invalid_escape_ptr, t) < 0) {
+ /* We have not decref u before because first_invalid_escape_ptr
+ points inside u. */
Py_XDECREF(u);
Py_DECREF(v);
return NULL;
@@ -217,14 +220,17 @@
static PyObject *
decode_bytes_with_escapes(Parser *p, const char *s, Py_ssize_t len, Token *t)
{
- const char *first_invalid_escape;
- PyObject *result = _PyBytes_DecodeEscape(s, len, NULL, &first_invalid_escape);
+ int first_invalid_escape_char;
+ const char *first_invalid_escape_ptr;
+ PyObject *result = _PyBytes_DecodeEscape2(s, len, NULL,
+ &first_invalid_escape_char,
+ &first_invalid_escape_ptr);
if (result == NULL) {
return NULL;
}
- if (first_invalid_escape != NULL) {
- if (warn_invalid_escape_sequence(p, s, first_invalid_escape, t) < 0) {
+ if (first_invalid_escape_ptr != NULL) {
+ if (warn_invalid_escape_sequence(p, s, first_invalid_escape_ptr, t) < 0) {
Py_DECREF(result);
return NULL;
}

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=="}}

View File

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

File diff suppressed because one or more lines are too long

View File

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

View File

@@ -1 +0,0 @@
{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzjCCAlWgAwIBAgIUDuq8kxtpL3by1SpAOIOeKKlsrjYwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjQxMjE3MTYwNzI2WhcNMjQxMjE3MTYxNzI2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEbmMPLFZSDjmfOKJGlOu6KqXbfARpxcurVugL1gOpPciVb/cVrPk9lP7V6B8zpnMK5ax2CbG3otAfweTtDWrnjqOCAXQwggFwMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUDct7Hl3MxAxfP1dhgpDF6PSlUuMwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABk9Vfz7QAAAQDAEgwRgIhALGA/GkNojAPK5EODrVG03RxOEr/0bFyv5wxxxx9otO0AiEAt8SElgsdc7QW/vevYc0lQ6aA1BmxAsjG6O333PTx2hwwCgYIKoZIzj0EAwMDZwAwZAIwd8VqF3+Jxkb1Un90vEsxZAHErNq4ed7BStBPTL+z9ngwBpNcR2NySohOZxgBZuP0AjA5hXuw9WbV15D9do4x4gSiOpCe5AMpgoU/ld0YZfbwN0v/h2rIF64Cp2J04V1RYkw="}, "tlogEntries": [{"logIndex": "156043087", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1734451646", "inclusionPromise": {"signedEntryTimestamp": "MEUCIQD1bn+1BlbnvdMGTX8cRvOVMdhE9Imcz9FMgKSDo4q3yAIgJT+Nibv1h0auGmm6in89ane7DKqcH1e6JxT4sXHO1bQ="}, "inclusionProof": {"logIndex": "34138825", "rootHash": "7Qt+3ioEkHd/WQ+ZF4zkdbZ1JExMNGx/pF6U2cmtM/Q=", "treeSize": "34138826", "hashes": ["460W3n1CZaOKfLd1/YSC0H5L84wbbSFUNol1ZwDndoM=", "y7NhKWl4yggGf0GhUE9xHzlnejEw3Hip+npVOBmV31I=", "dV++dwKBz/zC/+rg8FF5eQt3qeYLLCBeALXUFzUUDvk=", "Fxn6iOFXoaUrdLXwrSYOGfimcHgNjfjb9TnhpIjuaCc=", "BkTein2wmT1o/gL3lyKvg06L/h4CKSyJUadCatxLBTI=", "M1nIbSb6tTZeslPr6Qyo3LT16Jr+lJ+fgJD3il4tqkc=", "dvMxr6G8Mnh7ppC7ZlLdoid1OKb+1L5aNmhT6oEy3og=", "NTLDQYFQUNEJKfKO4iPdERTA3qiw5W+1lj7tBj6ucO0=", "KSSbh1+IusMZKVSTJMSjnahGEacBezafZFvtTDmdcng=", "oj35HyCM3EqQ5Lil2RUr9boiRWZlouxLnqNA7z28Glc=", "vemyaMj0Na1LMjbB/9Dmkq8T+jAb3o+yCESgAayUABU="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n34138826\n7Qt+3ioEkHd/WQ+ZF4zkdbZ1JExMNGx/pF6U2cmtM/Q=\n\n\u2014 rekor.sigstore.dev wNI9ajBEAiAk3Vso0Awrs2GLdUg8Ol1Ck4ChMQGcLf/nLMpOmTHQ3AIgIGkpE6mkns2HjIewM4H4D+BPv0UWGBaEYuDx9NXJ5Tg=\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI5NDM0OWRmMjA3NDU2YTU3NWE4ODY3YzIwYjRjYTQzNGY4NzBlMTkyMGRjZGNjOGZkZjc5N2UxYWY0OWFiZTkwIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJRGRodWh6cmtJOHZrZjVVSlNiOGRIT0w5OEtpWXIvd1NwWjFVK3JNd2tQbEFpQTVCbXZjamNNaTNPMlMyak56bDVzd20zVXpXTysxSGk1VnpqTGM5bVlKcFE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZha05EUVd4WFowRjNTVUpCWjBsVlJIVnhPR3Q0ZEhCTU0ySjVNVk53UVU5SlQyVkxTMnh6Y21wWmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFJlRTFxUlROTlZGbDNUbnBKTWxkb1kwNU5hbEY0VFdwRk0wMVVXWGhPZWtreVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZpYlUxUVRFWmFVMFJxYldaUFMwcEhiRTkxTmt0eFdHSm1RVkp3ZUdOMWNsWjFaMHdLTVdkUGNGQmphVlppTDJOV2NsQnJPV3hRTjFZMlFqaDZjRzVOU3pWaGVESkRZa2N6YjNSQlpuZGxWSFJFVjNKdWFuRlBRMEZZVVhkblowWjNUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZFWTNRM0NraHNNMDE0UVhobVVERmthR2R3UkVZMlVGTnNWWFZOZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVhkWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWprS1FraHpRV1ZSUWpOQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnJPVlptZWpkUlFRcEJRVkZFUVVWbmQxSm5TV2hCVEVkQkwwZHJUbTlxUVZCTE5VVlBSSEpXUnpBelVuaFBSWEl2TUdKR2VYWTFkM2g0ZUhnNWIzUlBNRUZwUlVGME9GTkZDbXhuYzJSak4xRlhMM1psZGxsak1HeFJObUZCTVVKdGVFRnpha2MyVHpNek0xQlVlREpvZDNkRFoxbEpTMjlhU1hwcU1FVkJkMDFFV25kQmQxcEJTWGNLWkRoV2NVWXpLMHA0YTJJeFZXNDVNSFpGYzNoYVFVaEZjazV4TkdWa04wSlRkRUpRVkV3cmVqbHVaM2RDY0U1alVqSk9lVk52YUU5YWVHZENXblZRTUFwQmFrRTFhRmgxZHpsWFlsWXhOVVE1Wkc4MGVEUm5VMmxQY0VObE5VRk5jR2R2VlM5c1pEQlpXbVppZDA0d2RpOW9NbkpKUmpZMFEzQXlTakEwVmpGU0NsbHJkejBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}]}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "lDSd8gdFaldaiGfCC0ykNPhw4ZINzcyP33l+GvSavpA="}, "signature": "MEQCIDdhuhzrkI8vkf5UJSb8dHOL98KiYr/wSpZ1U+rMwkPlAiA5BmvcjcMi3O2S2jNzl5swm3UzWO+1Hi5VzjLc9mYJpQ=="}}

View File

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

View File

@@ -1 +0,0 @@
{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzzCCAlWgAwIBAgIUTNqrmr/M2mihtEwN8O2FyM2q1q4wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUwMTE0MTYwMTUwWhcNMjUwMTE0MTYxMTUwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXFyDvDOdj/YAUw6VwCbccPuaGXVlONd/+yU2w6pjOucN7XNrKQzRc2p0B87e6fBJNtrvoQskKm5g5RZRNIaTraOCAXQwggFwMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU+FemmqqSGkLeHpehmVT+O/2VD1MwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABlGWMvxkAAAQDAEgwRgIhAMdC5GErGZYgWadLhCcmCxR3wAZ8jSVhTikA8HyIMUjKAiEAjZQMpnwoXgxNEXGAs8J/Myxxp5Lky719397l9nhdPk8wCgYIKoZIzj0EAwMDaAAwZQIxAMcST1Hx0VxHs8dH4fVNnJHRqHV70g4gWXOUahXOh86pLbvOOsGqM3w8o3kUhjO7oAIwRCZiVhDjDq59iDX6/IO7mG/gwNXBVqKSPdcYRS6l/SxM3JRORz8QCQK3HtM5TPvm"}, "tlogEntries": [{"logIndex": "162324179", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1736870510", "inclusionPromise": {"signedEntryTimestamp": "MEQCIAXgFU1gThdT0mhc6q0AXzD3bBXTiacgiLtvj81gdZF4AiBN9qUrwxowhsD9xRkTFuRk/l7pkEkkF84mJouMltHlqw=="}, "inclusionProof": {"logIndex": "40419917", "rootHash": "sQcmJqkpVAfxguDGAn46H0Jx7wI/seLoX5hw8YAhpzE=", "treeSize": "40419918", "hashes": ["qjl0o9LTqPs1qAydDqJeuEjAe7m0r28edbu6YhwigVs=", "ld8TM/ZFyvOEsuFo6tzdkPMu1WXFFF7FkLeePNxTZgQ=", "msMDMUPWOxenW8+fKcA9KtYwJh+qOm8eJ6hD6qMLxgo=", "HB3n8ruKgQ4/hsnPPqqgZqgqrIY+bil6MZEN48iQf5o=", "s4485wmLHDIJ3Uz0cZtlQJMaGl/NcoVYyRSxf8iaGF0=", "ipeSaii1joKqXMjR8vQt0JqN3F2T64mYFe55cZTSE7k=", "Zh8tfYPsaKKLrwZBF7ddhto+2SATy+XV9dtLPctNAlU=", "GVSyTNVOEKppJTUqz+nM5IM0FJ34fKBEIv5VAyJ7Dv4=", "tlaG/ckV5gypfBxP4OGlhhoLQ/VcEe+s4IdoNM+5CJk=", "LxTVSFPuriQ2RUI8Dbu2hz4wzAG1G271/Jivqrd1etw=", "vemyaMj0Na1LMjbB/9Dmkq8T+jAb3o+yCESgAayUABU="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n40419918\nsQcmJqkpVAfxguDGAn46H0Jx7wI/seLoX5hw8YAhpzE=\n\n\u2014 rekor.sigstore.dev wNI9ajBGAiEAv+PVAciPszI4zlpSunN4bfTvMqVTy5p62XGhyX7jQwACIQCNHJdBqkgiBk7OICiGqlcnklnK9wf4okEYP4iC2UpSUQ==\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJjMjRmMDc4ODE4NzNjMWQ0NjAyMjg3OTVjYTZjYThjOTkxMzBlMzBjNzczYzkxNDYzZDMwZDdlYThmZjBlNzBiIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUROejA2OHVmUE1tRUNZL3JldUdNSGRBbUhoazc1MHNaNHdTKytsY1g1Z0xRSWdLdzN1S1oydm9Jd2FMSWk1dFl3d2JBOUZUaFVHK05NUDViYmwyS0xSYXZjPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZla05EUVd4WFowRjNTVUpCWjBsVlZFNXhjbTF5TDAweWJXbG9kRVYzVGpoUE1rWjVUVEp4TVhFMGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFZkMDFVUlRCTlZGbDNUVlJWZDFkb1kwNU5hbFYzVFZSRk1FMVVXWGhOVkZWM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZZUm5sRWRrUlBaR292V1VGVmR6WldkME5pWTJOUWRXRkhXRlpzVDA1a0x5dDVWVElLZHpad2FrOTFZMDQzV0U1eVMxRjZVbU15Y0RCQ09EZGxObVpDU2s1MGNuWnZVWE5yUzIwMVp6VlNXbEpPU1dGVWNtRlBRMEZZVVhkblowWjNUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlVyUm1WdENtMXhjVk5IYTB4bFNIQmxhRzFXVkN0UEx6SldSREZOZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVhkWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWprS1FraHpRV1ZSUWpOQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnNSMWROZG5oclFRcEJRVkZFUVVWbmQxSm5TV2hCVFdSRE5VZEZja2RhV1dkWFlXUk1hRU5qYlVONFVqTjNRVm80YWxOV2FGUnBhMEU0U0hsSlRWVnFTMEZwUlVGcVdsRk5DbkJ1ZDI5WVozaE9SVmhIUVhNNFNpOU5lWGg0Y0RWTWEzazNNVGt6T1Rkc09XNW9aRkJyT0hkRFoxbEpTMjlhU1hwcU1FVkJkMDFFWVVGQmQxcFJTWGdLUVUxalUxUXhTSGd3Vm5oSWN6aGtTRFJtVms1dVNraFNjVWhXTnpCbk5HZFhXRTlWWVdoWVQyZzRObkJNWW5aUFQzTkhjVTB6ZHpodk0ydFZhR3BQTndwdlFVbDNVa05hYVZab1JHcEVjVFU1YVVSWU5pOUpUemR0Unk5bmQwNVlRbFp4UzFOUVpHTlpVbE0yYkM5VGVFMHpTbEpQVW5vNFVVTlJTek5JZEUwMUNsUlFkbTBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}]}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "wk8HiBhzwdRgIoeVymyoyZEw4wx3PJFGPTDX6o/w5ws="}, "signature": "MEUCIQDNz068ufPMmECY/reuGMHdAmHhk750sZ4wS++lcX5gLQIgKw3uKZ2voIwaLIi5tYwwbA9FThUG+NMP5bbl2KLRavc="}}

View File

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

View File

@@ -1 +0,0 @@
{"mediaType": "application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial": {"certificate": {"rawBytes": "MIICzjCCAlSgAwIBAgIUDwqRiJH4afgF7PkW1Qo6rr2v0lkwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjUwNDA4MTQxMDA1WhcNMjUwNDA4MTQyMDA1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZMgeduxSbRvf4+rxh9JLHe0ESc4Xexly0NaNWHeiTHLmdg+PRLNa5wLOEMZnjbZejU7znxttN65MnOzV5cOcoKOCAXMwggFvMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUJQXlBvRXJEBKte20LxybMfGrT6YwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wHQYDVR0RAQH/BBMwEYEPaHVnb0BweXRob24ub3JnMCwGCisGAQQBg78wAQEEHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDAuBgorBgEEAYO/MAEIBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9sb2dpbi9vYXV0aDCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABlhW8oHwAAAQDAEcwRQIhALZwxAQ5nnFRozZP8YRDJAl6S1kWfYD5oV7AEPrj0s5CAiA5CY5C5cBFEcjroS+wQAWg1LW4HqvRZ0KVR99kcb4a/TAKBggqhkjOPQQDAwNoADBlAjAHbpNPV8nJ2q37EdYR8NElF7p7qVBSdT9VzBLh0X0WL0Df0ub0LiBPYPNELQ/n0rQCMQDd2OPfzn42qBrwT/TUP2yR0/0h9nsqGOsinLhLH/euLXXJ+xK0iHMRLfk4cABvoFs="}, "tlogEntries": [{"logIndex": "193881744", "logId": {"keyId": "wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion": {"kind": "hashedrekord", "version": "0.0.1"}, "integratedTime": "1744121405", "inclusionPromise": {"signedEntryTimestamp": "MEUCIQDZCZJVW+h+35nY12Z9y9tOkwStyIEVZmXSPx7mQUy0DwIgYWnL18yNoypHlLRSb2WIkcRxcD589pZdPORUS442MhU="}, "inclusionProof": {"logIndex": "71977482", "rootHash": "5SzvaU4/6U0MtwYjXGh0z1gIbnBbXfoMCLyL7PyEzE8=", "treeSize": "71977483", "hashes": ["+kSGTHFAaROPxw/+007Kwz3MXdUvY3V+rrY6sn3rTWc=", "gArlaOWkPW1lG6zUi9fwcxm6cyXspC+A2q3O5EzUI28=", "9TNwbV6fOnLuQ0CrvdKWO4n2fooZCvdCTwrFZCo6a8E=", "phHq2powa3InqGTI+IN0To1CKFgq/QLjjjUOmMz73pU=", "3tDvwrpMz/XYloigErVZuQZphUjJ7mX16wnR7tq2tMY=", "QReFEOB9XSZtDKsjRtA0fGnYGMYD2Z7qn50auG1YlWo=", "K26LG80DXyb+bC58c4Nw00WigG52v0PCsZGY3ExGsts=", "WEm5OgPzJpYROv+4CcrieexCYyQKrLUH3hbxmcQQ+DM=", "7v8qPHNDLerpduaMx06eb/MwgoQwczTn/cYGKX/9wZ4="], "checkpoint": {"envelope": "rekor.sigstore.dev - 1193050959916656506\n71977483\n5SzvaU4/6U0MtwYjXGh0z1gIbnBbXfoMCLyL7PyEzE8=\n\n\u2014 rekor.sigstore.dev wNI9ajBFAiEAxksfGmVyE0Zi4wa9fM67aL5JUeJSsJUyWeU2jqqH/yoCIHfCdL/guuSIxD8tEK6/qQoRdbugANBBjI6gG96bkluH\n"}}, "canonicalizedBody": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI3MWFkYmNlYzNhYzllZGY5MzMwOGU1NWNmYjQxODRmMmViNGIxNmZkYTJiYjBhNWEzODI5MjllZDI5YzgzODZkIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUR3U3lCQ2swa2t3NytBNDlSL0UxVmdrRUtORXhKYUt4ejU3SjYzUWdTSlhBSWdMdUVpNGNqMnMvTFZ1VEdaaThGMkxZZVhzOUJtYXA0cnVyU3NWWHI5L21VPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVTjZha05EUVd4VFowRjNTVUpCWjBsVlJIZHhVbWxLU0RSaFptZEdOMUJyVnpGUmJ6WnljakoyTUd4cmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFZkMDVFUVRSTlZGRjRUVVJCTVZkb1kwNU5hbFYzVGtSQk5FMVVVWGxOUkVFeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZhVFdkbFpIVjRVMkpTZG1ZMEszSjRhRGxLVEVobE1FVlRZelJZWlhoc2VUQk9ZVTRLVjBobGFWUklURzFrWnl0UVVreE9ZVFYzVEU5RlRWcHVhbUphWldwVk4zcHVlSFIwVGpZMVRXNVBlbFkxWTA5amIwdFBRMEZZVFhkblowWjJUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZLVVZoc0NrSjJVbGhLUlVKTGRHVXlNRXg0ZVdKTlprZHlWRFpaZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDBoUldVUldVakJTUVZGSUwwSkNUWGRGV1VWUVlVaFdibUl3UW5kbFdGSnZZakkwZFdJelNtNU5RM2RIUTJselIwRlJVVUpuTnpoM1FWRkZSUXBJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx6WWpKa2NHSnBPWFpaV0ZZd1lVUkJkVUpuYjNKQ1owVkZRVmxQTDAxQlJVbENRMEZOQ2todGFEQmtTRUo2VDJrNGRsb3liREJoU0ZacFRHMU9kbUpUT1hOaU1tUndZbWs1ZGxsWVZqQmhSRU5DYVdkWlMwdDNXVUpDUVVoWFpWRkpSVUZuVWpnS1FraHZRV1ZCUWpKQlRqQTVUVWR5UjNoNFJYbFplR3RsU0Vwc2JrNTNTMmxUYkRZME0ycDVkQzgwWlV0amIwRjJTMlUyVDBGQlFVSnNhRmM0YjBoM1FRcEJRVkZFUVVWamQxSlJTV2hCVEZwM2VFRlJOVzV1UmxKdmVscFFPRmxTUkVwQmJEWlRNV3RYWmxsRU5XOVdOMEZGVUhKcU1ITTFRMEZwUVRWRFdUVkRDalZqUWtaRlkycHliMU1yZDFGQlYyY3hURmMwU0hGMlVsb3dTMVpTT1RsclkySTBZUzlVUVV0Q1oyZHhhR3RxVDFCUlVVUkJkMDV2UVVSQ2JFRnFRVWdLWW5CT1VGWTRia295Y1RNM1JXUlpVamhPUld4R04zQTNjVlpDVTJSVU9WWjZRa3hvTUZnd1Ywd3dSR1l3ZFdJd1RHbENVRmxRVGtWTVVTOXVNSEpSUXdwTlVVUmtNazlRWm5wdU5ESnhRbkozVkM5VVZWQXllVkl3THpCb09XNXpjVWRQYzJsdVRHaE1TQzlsZFV4WVdFb3JlRXN3YVVoTlVreG1helJqUVVKMkNtOUdjejBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}]}, "messageSignature": {"messageDigest": {"algorithm": "SHA2_256", "digest": "ca287DrJ7fkzCOVc+0GE8utLFv2iuwpaOCkp7SnIOG0="}, "signature": "MEUCIQDwSyBCk0kkw7+A49R/E1VgkEKNExJaKxz57J63QgSJXAIgLuEi4cj2s/LVuTGZi8F2LYeXs9Bmap4rurSsVXr9/mU="}}

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

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)