- Update to 3.13.0a3

- Security
    - gh-113659: Skip .pth files with names starting with a dot or
      hidden file attribute.
    - gh-112302: Created a Software Bill-of-Materials document and
      tooling for tracking dependencies.
  - Core and Builtins
    - gh-107901: Compiler duplicates basic blocks that have an eval
      breaker check, no line number, and multiple predecessors.
    - gh-107901: A jump leaving an exception handler back to normal
      code no longer checks the eval breaker.
    - gh-113655: Set the C recursion limit to 4000 on Windows, and
      10000 on Linux/OSX. This seems to be near the sweet spot to
      maintain safety, but not compromise backwards compatibility.
    - gh-113710: Add typed stack effects to the interpreter DSL, along
      with various instruction annotations.
    - gh-77046: On Windows, file descriptors wrapping Windows handles
      are now created non inheritable by default (PEP 446). Patch by
      Zackery Spytz and Victor Stinner.
    - gh-113853: Guarantee that all executors make progress. This then
      guarantees that tier 2 execution always makes progress.
    - gh-113753: Fix an issue where the finalizer of PyAsyncGenASend
      objects might not be called if they were allocated from a free
      list.
    - gh-107901: Compiler changed so that synthetic jumps which are
      not at loop end no longer check the eval breaker.
    - gh-113703: Fix a regression in the codeop module that was
      causing it to incorrectly identify incomplete f-strings. Patch
      by Pablo Galindo
    - gh-89811: Check for a valid tp_version_tag before performing

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python313?expand=0&rev=3
This commit is contained in:
Daniel Garcia 2024-02-08 08:18:19 +00:00 committed by Git OBS Bridge
parent 9bce840ac0
commit cf67592415
15 changed files with 694 additions and 74 deletions

View File

@ -29,11 +29,11 @@ Co-authored-by: Lumír Balhar <frenzy.madness@gmail.com>
Lib/test/test_sysconfig.py | 17 +++++++++++--
3 files changed, 71 insertions(+), 4 deletions(-)
Index: Python-3.13.0a1/Lib/site.py
Index: Python-3.13.0a3/Lib/site.py
===================================================================
--- Python-3.13.0a1.orig/Lib/site.py
+++ Python-3.13.0a1/Lib/site.py
@@ -377,8 +377,15 @@ def getsitepackages(prefixes=None):
--- Python-3.13.0a3.orig/Lib/site.py
+++ Python-3.13.0a3/Lib/site.py
@@ -395,8 +395,15 @@ def getsitepackages(prefixes=None):
return sitepackages
def addsitepackages(known_paths, prefixes=None):
@ -50,11 +50,11 @@ Index: Python-3.13.0a1/Lib/site.py
for sitedir in getsitepackages(prefixes):
if os.path.isdir(sitedir):
addsitedir(sitedir, known_paths)
Index: Python-3.13.0a1/Lib/test/test_sysconfig.py
Index: Python-3.13.0a3/Lib/test/test_sysconfig.py
===================================================================
--- Python-3.13.0a1.orig/Lib/test/test_sysconfig.py
+++ Python-3.13.0a1/Lib/test/test_sysconfig.py
@@ -113,8 +113,19 @@ class TestSysConfig(unittest.TestCase):
--- Python-3.13.0a3.orig/Lib/test/test_sysconfig.py
+++ Python-3.13.0a3/Lib/test/test_sysconfig.py
@@ -115,8 +115,19 @@ class TestSysConfig(unittest.TestCase):
for scheme in _INSTALL_SCHEMES:
for name in _INSTALL_SCHEMES[scheme]:
expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars)
@ -75,7 +75,7 @@ Index: Python-3.13.0a1/Lib/test/test_sysconfig.py
os.path.normpath(expected),
)
@@ -338,7 +349,7 @@ class TestSysConfig(unittest.TestCase):
@@ -340,7 +351,7 @@ class TestSysConfig(unittest.TestCase):
self.assertTrue(os.path.isfile(config_h), config_h)
def test_get_scheme_names(self):
@ -84,7 +84,7 @@ Index: Python-3.13.0a1/Lib/test/test_sysconfig.py
if HAS_USER_BASE:
wanted.extend(['nt_user', 'osx_framework_user', 'posix_user'])
self.assertEqual(get_scheme_names(), tuple(sorted(wanted)))
@@ -350,6 +361,8 @@ class TestSysConfig(unittest.TestCase):
@@ -352,6 +363,8 @@ class TestSysConfig(unittest.TestCase):
cmd = "-c", "import sysconfig; print(sysconfig.get_platform())"
self.assertEqual(py.call_real(*cmd), py.call_link(*cmd))

View File

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

View File

@ -1,18 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQKTBAABCgB9FiEEcWlgX2LHUTVtBUomqCHmgOX6YwUFAmVd5DFfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDcx
Njk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUACgkQqCHmgOX6
YwXX6Q/+LJMSSTRUCTPY4ZBsMqZRJCZDbo7vCVedHwOPKT5PiID9tKQ/wrpPX3at
mBSQ4RD35WwuBidDMAz4WT5UcK/bWQbv+ZKRIPPW8P4YpgTae+7lpOgD1R48yUdB
XNxZ1BO1zl127ZajpO0MkGBcgQv0Yz+juVNfPxwLCRVJPRg5sl03BfnmN+GBC+XC
cdEYHmcOYZELwZZfQZQrUkh+sybFfM0hAKvaFIXnzA7VxHDR0qTh/1xf6ekQmXZq
2qpAxy0C5Eey2X1VZevl1Gk76Lv8cE5NL8wrtMMDTJNAT9S5dZR4rdcCaPTfYQUN
WI3FvKGeWMFuVffxXXv+YTHl1KitePPUhpsawEjBgF+5n6f5PWgDBL2tF0aKd+Mn
dE9EdCFoe0iPeuPTJqQ3zpIVP8LmFnKuZePCVIyLigaWclbLYFxttp9N+wnjTvAt
1kk4olNMJwFr6YP9o0pyrE/NVPOmGhG5P30TmDToMIiolDwYaeFiKdC/HXOFD0zZ
25HowszQR7mePVr7bBgd+TZRcfc/nfkfVti0JxqPsvOX/e6PmhLS+YgqgEH2fYtl
JpNVhc2AmMfCSK2/XxiT3VAJhBr3d9NneUJUV9FLkHZL2miY5MfGUUHFRJhDxj/k
DyM7AT9EKNNnlV/sZWY4SO13Jo0QsyzNbRltWkou5CZVNBUkclI=
=R8U5
-----END PGP SIGNATURE-----

3
Python-3.13.0a3.tar.xz Normal file
View File

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

View File

@ -0,0 +1,18 @@
-----BEGIN PGP SIGNATURE-----
iQKTBAABCgB9FiEEcWlgX2LHUTVtBUomqCHmgOX6YwUFAmWnxORfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDcx
Njk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUACgkQqCHmgOX6
YwVLIw//SF9sDGaLIosuQval4pD4zm5cvXwOfWbLepaw/pfY4m9VUyQX9MsnaQQ9
4IGTjNsHZvRsThkPNUt9FuxIHeJsetK+pE0yc87/d/xTeokd1f52KU7K5EKgnW0D
o/omL0dqZE6yq3QWWccVe5kPNc9pIzZIYpG5I3OcfbxzgHVDuNI7QJGAr4z4tBu7
ic5Fdylr/f9S/LNfD7/4tZNSmaKojFc3tbu9wp6AaYQgXPMMCq+s/WA2dZiH5Ftl
xaX4hyxwClo1LqQODf3jiG8w02hmjTFT2de+xQIS81Ez+wBeX3hh0htiyZzGebsn
qUMC3rWRuX1KZB3C2Brk9GHCjic+lDLdU1EWqF0ZzRBApnWz2g1Jp7MDuX718aPN
zNXuIDigSIp2387BenvZyp+ASvgWqFesy3n2cJut1/f2C874qGjECSgnyI0r/ViV
q1saOgAeOV6hEWlWtNFeh0IoJ8yEbHe+aSTTCIZu/2zdaP3ij160rOEcQDDV+lfL
rzZtkyVCdeONpf2YQfjYqiyWhIuqPYdEufApjScBl8jSLyNBPrljJJRQoOPRTJ0l
CR6+kRWXZo5M0Qb+4kgRpgOpOqjq04rNUgulAitI9AoATcZYfmu5rJatytiU3emy
Qrc/3cSDcbzil/rYGweYLjxoEOG1VSFqMf0wAAzErZi3uLEe5J4=
=kGSc
-----END PGP SIGNATURE-----

View File

@ -13,8 +13,10 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
5 files changed, 34 insertions(+), 9 deletions(-)
create mode 100644 Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
--- a/Doc/library/ensurepip.rst
+++ b/Doc/library/ensurepip.rst
Index: Python-3.13.0a3/Doc/library/ensurepip.rst
===================================================================
--- Python-3.13.0a3.orig/Doc/library/ensurepip.rst
+++ Python-3.13.0a3/Doc/library/ensurepip.rst
@@ -59,8 +59,9 @@ is at least as recent as the one availab
By default, ``pip`` is installed into the current virtual environment
(if one is active) or into the system site packages (if there is no
@ -53,8 +55,10 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
.. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap
.. note::
--- a/Lib/ensurepip/__init__.py
+++ b/Lib/ensurepip/__init__.py
Index: Python-3.13.0a3/Lib/ensurepip/__init__.py
===================================================================
--- Python-3.13.0a3.orig/Lib/ensurepip/__init__.py
+++ Python-3.13.0a3/Lib/ensurepip/__init__.py
@@ -120,27 +120,27 @@ def _disable_pip_configuration_settings(
os.environ['PIP_CONFIG_FILE'] = os.devnull
@ -117,8 +121,10 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
upgrade=args.upgrade,
user=args.user,
verbosity=args.verbosity,
--- a/Lib/test/test_ensurepip.py
+++ b/Lib/test/test_ensurepip.py
Index: Python-3.13.0a3/Lib/test/test_ensurepip.py
===================================================================
--- Python-3.13.0a3.orig/Lib/test/test_ensurepip.py
+++ Python-3.13.0a3/Lib/test/test_ensurepip.py
@@ -105,6 +105,17 @@ class TestBootstrap(EnsurepipMixin, unit
unittest.mock.ANY,
)
@ -137,9 +143,11 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
def test_bootstrapping_with_user(self):
ensurepip.bootstrap(user=True)
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1976,7 +1976,7 @@ install: @FRAMEWORKINSTALLFIRST@ commoni
Index: Python-3.13.0a3/Makefile.pre.in
===================================================================
--- Python-3.13.0a3.orig/Makefile.pre.in
+++ Python-3.13.0a3/Makefile.pre.in
@@ -1991,7 +1991,7 @@ install: @FRAMEWORKINSTALLFIRST@ commoni
install|*) ensurepip="" ;; \
esac; \
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@ -148,7 +156,7 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
fi
.PHONY: altinstall
@@ -1987,7 +1987,7 @@ altinstall: commoninstall
@@ -2002,7 +2002,7 @@ altinstall: commoninstall
install|*) ensurepip="--altinstall" ;; \
esac; \
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@ -157,7 +165,9 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
fi
.PHONY: commoninstall
Index: Python-3.13.0a3/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
===================================================================
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
+++ Python-3.13.0a3/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
@@ -0,0 +1 @@
+A directory prefix can now be specified when using :mod:`ensurepip`.

View File

@ -2,9 +2,11 @@
Misc/NEWS | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -13972,7 +13972,7 @@ C API
Index: Python-3.13.0a3/Misc/NEWS
===================================================================
--- Python-3.13.0a3.orig/Misc/NEWS
+++ Python-3.13.0a3/Misc/NEWS
@@ -14868,7 +14868,7 @@ C API
- bpo-40939: Removed documentation for the removed ``PyParser_*`` C API.
- bpo-43795: The list in :ref:`limited-api-list` now shows the public name

View File

@ -4,10 +4,10 @@ unchanged:
Doc/library/turtle.rst | 81 -------------------------------------------------
1 file changed, 81 deletions(-)
Index: Python-3.13.0a1/Doc/library/turtle.rst
Index: Python-3.13.0a3/Doc/library/turtle.rst
===================================================================
--- Python-3.13.0a1.orig/Doc/library/turtle.rst
+++ Python-3.13.0a1/Doc/library/turtle.rst
--- Python-3.13.0a3.orig/Doc/library/turtle.rst
+++ Python-3.13.0a3/Doc/library/turtle.rst
@@ -449,7 +449,6 @@ Turtle motion
turtle is headed.

View File

@ -2,9 +2,11 @@
Makefile.pre.in | 7 +++++++
1 file changed, 7 insertions(+)
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1375,11 +1375,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
Index: Python-3.13.0a3/Makefile.pre.in
===================================================================
--- Python-3.13.0a3.orig/Makefile.pre.in
+++ Python-3.13.0a3/Makefile.pre.in
@@ -1380,11 +1380,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
$(DTRACE_OBJS) \
$(srcdir)/Modules/getbuildinfo.c
$(CC) -c $(PY_CORE_CFLAGS) \

View File

@ -1,9 +1,9 @@
Index: Python-3.13.0a1/Lib/site.py
Index: Python-3.13.0a3/Lib/site.py
===================================================================
--- Python-3.13.0a1.orig/Lib/site.py
+++ Python-3.13.0a1/Lib/site.py
@@ -76,7 +76,7 @@ import _sitebuiltins
import io
--- Python-3.13.0a3.orig/Lib/site.py
+++ Python-3.13.0a3/Lib/site.py
@@ -77,7 +77,7 @@ import io
import stat
# Prefixes for site-packages; add additional prefixes like /usr/local here
-PREFIXES = [sys.prefix, sys.exec_prefix]

View File

@ -2,8 +2,10 @@
Lib/test/test_posix.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/Lib/test/test_posix.py
+++ b/Lib/test/test_posix.py
Index: Python-3.13.0a3/Lib/test/test_posix.py
===================================================================
--- Python-3.13.0a3.orig/Lib/test/test_posix.py
+++ Python-3.13.0a3/Lib/test/test_posix.py
@@ -433,7 +433,7 @@ class PosixTester(unittest.TestCase):
def test_posix_fadvise(self):
fd = os.open(os_helper.TESTFN, os.O_RDONLY)

View File

@ -1,3 +1,607 @@
-------------------------------------------------------------------
Thu Feb 8 08:10:09 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
- Update to 3.13.0a3
- Security
- gh-113659: Skip .pth files with names starting with a dot or
hidden file attribute.
- gh-112302: Created a Software Bill-of-Materials document and
tooling for tracking dependencies.
- Core and Builtins
- gh-107901: Compiler duplicates basic blocks that have an eval
breaker check, no line number, and multiple predecessors.
- gh-107901: A jump leaving an exception handler back to normal
code no longer checks the eval breaker.
- gh-113655: Set the C recursion limit to 4000 on Windows, and
10000 on Linux/OSX. This seems to be near the sweet spot to
maintain safety, but not compromise backwards compatibility.
- gh-113710: Add typed stack effects to the interpreter DSL, along
with various instruction annotations.
- gh-77046: On Windows, file descriptors wrapping Windows handles
are now created non inheritable by default (PEP 446). Patch by
Zackery Spytz and Victor Stinner.
- gh-113853: Guarantee that all executors make progress. This then
guarantees that tier 2 execution always makes progress.
- gh-113753: Fix an issue where the finalizer of PyAsyncGenASend
objects might not be called if they were allocated from a free
list.
- gh-107901: Compiler changed so that synthetic jumps which are
not at loop end no longer check the eval breaker.
- gh-113703: Fix a regression in the codeop module that was
causing it to incorrectly identify incomplete f-strings. Patch
by Pablo Galindo
- gh-89811: Check for a valid tp_version_tag before performing
bytecode specializations that rely on this value being usable.
- gh-111488: Changed error message in case of no in keyword
after for in list comprehensions
- gh-113657: Fix an issue that caused important instruction
pointer updates to be optimized out of tier two traces.
- gh-113603: Fixed bug where a redundant NOP is not removed,
causing an assertion to fail in the compiler in debug mode.
- gh-113602: Fix an error that was causing the parser to try to
overwrite existing errors and crashing in the process. Patch by
Pablo Galindo
- gh-113486: No longer issue spurious PY_UNWIND events for
optimized calls to classes.
- gh-113297: Fix segfault in the compiler on with statement with
19 context managers.
- gh-113212: Improve super error messages.
- gh-111375: Only use NULL in the exception stack to indicate an
exception was handled. Patch by Carey Metcalfe.
- gh-112215: Increase the C recursion limit by a factor of 3 for
non-debug builds, except for webassembly and s390 platforms
which are unchanged. This mitigates some regressions in 3.12
with deep recursion mixing builtin (C) and Python code.
- gh-113054: Fixed bug where a redundant NOP is not removed,
causing an assertion to fail in the compiler in debug mode.
- gh-106905: Use per AST-parser state rather than global state to
track recursion depth within the AST parser to prevent potential
race condition due to simultaneous parsing.
- The issue primarily showed up in 3.11 by multithreaded users of
ast.parse(). In 3.12 a change to when garbage collection can be
triggered prevented the race condition from occurring.
- gh-108866: Change the API and contract of _PyExecutorObject to
return the next_instr pointer, instead of the frame, and to
always execute at least one instruction.
- gh-90350: Optimize builtin functions min() and max().
- gh-112943: Correctly compute end column offsets for multiline
tokens in the tokenize module. Patch by Pablo Galindo
- gh-112125: Fix None.__ne__(None) returning NotImplemented
instead of False
- gh-74616: input() now raises a ValueError when output on the
terminal if the prompt contains embedded null characters instead
of silently truncating it.
- gh-112716: Fix SystemError in the import statement and in
__reduce__() methods of builtin types when __builtins__ is not a
dict.
- gh-112730: Use color to highlight error locations in tracebacks.
Patch by Pablo Galindo
- gh-112625: Fixes a bug where a bytearray object could be cleared
while iterating over an argument in the bytearray.join() method
that could result in reading memory after it was freed.
- gh-112660: Do not clear unexpected errors during formatting
error messages for ImportError and AttributeError for modules.
- gh-105967: Workaround a bug in Apples macOS platform zlib
library where zlib.crc32() and binascii.crc32() could produce
incorrect results on multi-gigabyte inputs. Including when using
zipfile on zips containing large data.
- gh-95754: Provide a better error message when accessing invalid
attributes on partially initialized modules. The origin of the
module being accessed is now included in the message to help
with the common issue of shadowing other modules.
- gh-112217: Add check for the type of __cause__ returned from
calling the type T in raise from T.
- gh-111058: Change coro.cr_frame/gen.gi_frame to return None
after the coroutine/generator has been closed. This fixes a bug
where getcoroutinestate() and getgeneratorstate() return the
wrong state for a closed coroutine/generator.
- gh-112388: Fix an error that was causing the parser to try to
overwrite tokenizer errors. Patch by pablo Galindo
- gh-112387: Fix error positions for decoded strings with
backwards tokenize errors. Patch by Pablo Galindo
- gh-99606: Make code generated for an empty f-string identical to
the code of an empty normal string.
- gh-112367: Avoid undefined behaviour when using the perf
trampolines by not freeing the code arenas until shutdown. Patch
by Pablo Galindo
- gh-112320: The Tier 2 translator now tracks the confidence level
for staying “on trace” (i.e. not exiting back to the Tier 1
interpreter) for branch instructions based on the number of bits
set in the branch “counter”. Trace translation ends when the
confidence drops below 1/3rd.
- gh-109598: PyComplex_RealAsDouble()/PyComplex_ImagAsDouble() now
tries to convert an object to a complex instance using its
__complex__() method before falling back to the __float__()
method. Patch by Sergey B Kirpichev.
- gh-94606: Fix UnicodeEncodeError when
email.message.get_payload() reads a message with a Unicode
surrogate character and the message content is not well-formed
for surrogateescape encoding. Patch by Sidney Markowitz.
- bpo-21861: Use the objects actual class name in
_io.FileIO.__repr__(), _io._WindowsConsoleIO() and
_io.TextIOWrapper.__repr__(), to make these methods subclass
friendly.
- bpo-45369: Remove LibreSSL workarounds as per PEP 644.
- bpo-34392: Added sys._is_interned(). Libr- ary
- gh-114077: Fix possible OverflowError in
socket.socket.sendfile() when pass count larger than 2 GiB on
32-bit platform.
- gh-111803: plistlib now supports loading more deeply nested
lists in binary format.
- gh-114014: Fixed a bug in fractions.Fraction where an invalid
string using d in the decimals part creates a different error
compared to other invalid letters/characters. Patch by Jeremiah
Gabriel Pascual.
- gh-108364: sqlite3.Connection.iterdump() now ensures that
foreign key support is disabled before dumping the database
schema, if there is any foreign key violation. Patch by Erlend
E. Aasland and Mariusz Felisiak.
- gh-113971: The zipfile.ZipInfo previously protected
._compresslevel attribute has been made public as
.compress_level with the old _compresslevel name remaining
available as a property to retain compatibility.
- gh-113877: Fix tkinter method winfo_pathname() on 64-bit
Windows.
- gh-113868: Added mmap.MAP_NORESERVE, mmap.MAP_NOEXTEND,
mmap.MAP_HASSEMAPHORE, mmap.MAP_NOCACHE, mmap.MAP_JIT,
mmap.MAP_RESILIENT_CODESIGN, mmap.MAP_RESILIENT_MEDIA,
mmap.MAP_32BIT, mmap.MAP_TRANSLATED_ALLOW_EXECUTE,
mmap.MAP_UNIX03 and mmap.MAP_TPRO. All of them are mmap(2) flags
on macOS.
- gh-113848: asyncio.TaskGroup() and asyncio.timeout() context
managers now handle CancelledError subclasses as well as exact
CancelledError.
- gh-113661: unittest runner: Dont exit 5 if tests were skipped.
The intention of exiting 5 was to detect issues where the test
suite wasnt discovered at all. If we skipped tests, it was
correctly discovered.
- gh-96037: Insert TimeoutError in the context of the exception
that was raised during exiting an expired asyncio.timeout()
block.
- gh-113781: Silence unraisable AttributeError when warnings are
emitted during Python finalization.
- gh-113238: Add Anchor to importlib.resources (in order for the
code to comply with the documentation)
- gh-111693: asyncio.Condition.wait() now re-raises the same
CancelledError instance that may have caused it to be
interrupted. Fixed race condition in asyncio.Semaphore.aquire()
when interrupted with a CancelledError.
- gh-113791: Add CLOCK_MONOTONIC_RAW_APPROX and
CLOCK_UPTIME_RAW_APPROX to time on macOS. These are clocks
available on macOS 10.12 or later.
- gh-112932: Restore the ability for zipfile to extractall from
zip files with a “/” directory entry in them as is commonly
added to zips by some wiki or bug tracker data exporters.
- gh-113568: Raise deprecation warnings from pathlib.PurePath and
not its private base class PurePathBase.
- gh-113594: Fix UnicodeEncodeError in email when re-fold lines
that contain unknown-8bit encoded part followed by
non-unknown-8bit encoded part.
- gh-113538: In asyncio.StreamReaderProtocol.connection_made(),
there is callback that logs an error if the task wrapping the
“connected callback” fails. This callback would itself fail if
the task was cancelled. Prevent this by checking whether the
task was cancelled first. If so, close the transport but dont
log an error.
- gh-113626: Add support for the allow_code argument in the
marshal module. Passing allow_code=False prevents serialization
and de-serialization of code objects which is incompatible
between Python versions.
- gh-85567: Fix resource warnings for unclosed files in pickle and
pickletools command line interfaces.
- gh-113537: Support loads str in plistlib.loads().
- gh-89850: Add default implementations of
pickle.Pickler.persistent_id() and
pickle.Unpickler.persistent_load() methods in the C
implementation. Calling super().persistent_id() and
super().persistent_load() in subclasses of the C implementation
of pickle.Pickler and pickle.Unpickler classes no longer causes
infinite recursion.
- gh-113569: Indicate if there were no actual calls in unittest
assert_has_calls() failure.
- gh-101225: Increase the backlog for
multiprocessing.connection.Listener objects created by
multiprocessing.manager and multiprocessing.resource_sharer to
significantly reduce the risk of getting a connection refused
error when creating a multiprocessing.connection.Connection to
them.
- gh-113568: Raise audit events from pathlib.Path and not its
private base class PathBase.
- gh-113543: Make sure that webbrowser.MacOSXOSAScript sends
webbrowser.open audit event.
- gh-113028: When a second reference to a string appears in the
input to pickle, and the Python implementation is in use, we are
guaranteed that a single copy gets pickled and a single object
is shared when reloaded. Previously, in protocol 0, when a
string contained certain characters (e.g. newline) it resulted
in duplicate objects.
- gh-113421: Fix multiprocessing logger for %(filename)s.
- gh-111784: Fix segfaults in the _elementtree module. Fix first
segfault during deallocation of _elementtree.XMLParser instances
by keeping strong reference to pyexpat module in module state
for capsule lifetime. Fix second segfault which happens in the
same deallocation process by keeping strong reference to
_elementtree module in XMLParser structure for _elementtree
module lifetime.
- gh-113407: Fix import of unittest.mock when CPython is built
without docstrings.
- gh-113320: Fix regression in Python 3.12 where Protocol classes
that were not marked as runtime-checkable would be unnecessarily
introspected, potentially causing exceptions to be raised if the
protocol had problematic members. Patch by Alex Waygood.
- gh-53502: Add a new option aware_datetime in plistlib to loads
or dumps aware datetime.
- gh-113358: Fix rendering tracebacks with exceptions with a
broken __getattr__
- gh-113214: Fix an AttributeError during asyncio SSL protocol
aborts in SSL-over-SSL scenarios.
- gh-113246: Update bundled pip to 23.3.2.
- gh-87264: Fixed tarfile list() method to show file type.
- gh-112182: asyncio.futures.Future.set_exception() now transforms
StopIteration into RuntimeError instead of hanging or other
misbehavior. Patch contributed by Jamie Phan.
- gh-113225: Speed up pathlib.Path.glob() by using
os.DirEntry.path where possible.
- gh-113149: Improve error message when a JSON array or object
contains a trailing comma. Patch by Carson Radtke.
- gh-113117: The subprocess module can now use the
os.posix_spawn() function with close_fds=True on platforms where
posix_spawn_file_actions_addclosefrom_np is available. Patch by
Jakub Kulik.
- gh-113199: Make http.client.HTTPResponse.read1 and
http.client.HTTPResponse.readline close IO after reading all
data when content length is known. Patch by Illia Volochii.
- gh-113191: Add support of os.fchmod() and a file descriptor in
os.chmod() on Windows.
- gh-113188: Fix shutil.copymode() and shutil.copystat() on
Windows. Previously they worked differenly if dst is a symbolic
link: they modified the permission bits of dst itself rather
than the file it points to if follow_symlinks is true or src is
not a symbolic link, and did not modify the permission bits if
follow_symlinks is false and src is a symbolic link.
- gh-113119: os.posix_spawn() now accepts env=None, which makes
the newly spawned process use the current process environment.
Patch by Jakub Kulik.
- gh-113202: Add a strict option to batched() in the itertools
module.
- gh-61648: Detect line numbers of properties in doctests.
- gh-113175: Sync with importlib_metadata 7.0, including improved
type annotations, fixed issue with symlinked packages in
package_distributions, added EntryPoints.__repr__, introduced
the diagnose script, added Distribution.origin property, and
removed deprecated EntryPoint access by numeric index (tuple
behavior).
- gh-59616: Add support of os.lchmod() and the follow_symlinks
argument in os.chmod() on Windows. Note that the default value
of follow_symlinks in os.lchmod() is False on Windows.
- gh-112559: signal.signal() and signal.getsignal() no longer call
repr on callable handlers. asyncio.run() and
asyncio.Runner.run() no longer call repr on the task results.
Patch by Yilei Yang.
- gh-112962: dis module functions add cache information to the
Instruction instance rather than creating fake Instruction
instances to represent the cache entries.
- gh-112989: Reduce overhead to connect sockets with asyncio
SelectorEventLoop.
- gh-112970: Use closefrom() on Linux where available (e.g.
glibc-2.34), rather than only FreeBSD.
- gh-110190: Fix ctypes structs with array on PPC64LE platform by
setting MAX_STRUCT_SIZE to 64 in stgdict. Patch by Diego Russo.
- gh-112540: The statistics.geometric_mean() function now returns
zero for datasets containing a zero. Formerly, it would raise an
exception.
- gh-87286: Added LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH,
LOG_INSTALL, LOG_RAS, and LOG_LAUNCHD tot the syslog module, all
of them constants on used on macOS.
- gh-112800: Fix asyncio SubprocessTransport.close() not to throw
PermissionError when used with setuid executables.
- gh-51944: Add the following constants to the termios module.
These values are present in macOS system headers: ALTWERASE,
B14400, B28800, B7200, B76800, CCAR_OFLOW, CCTS_OFLOW,
CDSR_OFLOW, CDTR_IFLOW, CIGNORE, CRTS_IFLOW, EXTPROC, IUTF8,
MDMBUF, NL2, NL3, NOKERNINFO, ONOEOT, OXTABS, VDSUSP, VSTATUS.
- gh-79325: Fix an infinite recursion error in
tempfile.TemporaryDirectory() cleanup on Windows.
- gh-94692: shutil.rmtree() now only catches OSError exceptions.
Previously a symlink attack resistant version of shutil.rmtree()
could ignore or pass to the error handler arbitrary exception
when invalid arguments were provided.
- gh-112736: The use of del-safe symbols in subprocess was
refactored to allow for use in cross-platform build
environments.
- gh-112727: Speed up pathlib.Path.absolute(). Patch by Barney
Gale.
- gh-74690: Speedup issubclass() checks against simple
runtime-checkable protocols by around 6%. Patch by Alex Waygood.
- gh-74690: Speedup isinstance() checks by roughly 20% for
runtime-checkable protocols that only have one callable member.
Speedup issubclass() checks for these protocols by roughly 10%.
Patch by Alex Waygood.
- gh-112645: Remove deprecation error on passing onerror to
shutil.rmtree().
- gh-112640: Add kwdefaults parameter to types.FunctionType to set
default keyword argument values.
- gh-112622: Ensure name parameter is passed to event loop in
asyncio.create_task().
- gh-112618: Fix a caching bug relating to typing.Annotated.
Annotated[str, True] is no longer identical to Annotated[str,
1].
- gh-112334: Fixed a performance regression in 3.12s subprocess
on Linux where it would no longer use the fast-path vfork()
system call when it could have due to a logic bug, instead
falling back to the safe but slower fork().
- Also fixed a second 3.12.0 potential security bug. If a value of
extra_groups=[] was passed to subprocess.Popen or related APIs,
the underlying setgroups(0, NULL) system call to clear the
groups list would not be made in the child process prior to
exec().
- This was identified via code inspection in the process of fixing
the first bug.
- gh-110190: Fix ctypes structs with array on Arm platform by
setting MAX_STRUCT_SIZE to 32 in stgdict. Patch by Diego Russo.
- gh-81194: Fix a crash in socket.if_indextoname() with specific
value (UINT_MAX). Fix an integer overflow in
socket.if_indextoname() on 64-bit non-Windows platforms.
- gh-112578: Fix a spurious RuntimeWarning when executing the
zipfile module.
- gh-112516: Update the bundled copy of pip to version 23.3.1.
- gh-112510: Add readline.backend for the backend readline uses
(editline or readline)
- gh-112328: [Enum] Make EnumDict, EnumDict.member_names,
EnumType._add_alias_ and EnumType._add_value_alias_ public.
- gh-112509: Fix edge cases that could cause a key to be present
in both the __required_keys__ and __optional_keys__ attributes
of a typing.TypedDict. Patch by Jelle Zijlstra.
- gh-101336: Add keep_alive keyword parameter for
AbstractEventLoop.create_server() and
BaseEventLoop.create_server().
- gh-63284: Added support for TLS-PSK (pre-shared key) mode to the
ssl module.
- gh-112414: Fix regression in Python 3.12 where calling repr() on
a module that had been imported using a custom loader could fail
with AttributeError. Patch by Alex Waygood.
- gh-112358: Revert change to struct.Struct initialization that
broke some cases of subclassing.
- gh-112405: Optimize pathlib.PurePath.relative_to(). Patch by
Alex Waygood.
- gh-94722: Fix bug where comparison between instances of DocTest
fails if one of them has None as its lineno.
- gh-112361: Speed up a small handful of pathlib methods by
removing some temporary objects.
- gh-112345: Improve error message when trying to call
issubclass() against a typing.Protocol that has non-method
members. Patch by Randolf Scholz.
- gh-112137: Change dis output to display no-lineno as “–” instead
of “None”.
- gh-112332: Deprecate the exc_type field of
traceback.TracebackException. Add exc_type_str to replace it.
- gh-81620: Add extra tests for random.binomialvariate()
- gh-112292: Fix a crash in readline when imported from a sub
interpreter. Patch by Anthony Shaw
- gh-77621: Slightly improve the import time of the pathlib module
by deferring some imports. Patch by Barney Gale.
- gh-112137: Change dis output to display logical labels for jump
targets instead of offsets.
- gh-112139: Add Signature.format() to format signatures to string
with extra options. And use it in pydoc to render more readable
signatures that have new lines between parameters.
- gh-112105: Make readline.set_completer_delims() work with
libedit
- gh-106922: Display multiple lines with traceback when errors
span multiple lines.
- gh-111874: When creating a typing.NamedTuple class, ensure
__set_name__() is called on all objects that define __set_name__
and exist in the values of the NamedTuple classs class
dictionary. Patch by Alex Waygood.
- gh-68166: Add support of the “vsapi” element type in
tkinter.ttk.Style.element_create().
- gh-110275: Named tuples methods _replace() and __replace__()
now raise TypeError instead of ValueError for invalid keyword
arguments.
- gh-99367: Do not mangle sys.path[0] in pdb if safe_path is set
- gh-111615: Fix a regression caused by a fix to gh-93162 whereby
you couldnt configure a QueueHandler without specifying
handlers.
- gh-75666: Fix the behavior of tkinter widgets unbind() method
with two arguments. Previously, widget.unbind(sequence, funcid)
destroyed the current binding for sequence, leaving sequence
unbound, and deleted the funcid command. Now it removes only
funcid from the binding for sequence, keeping other commands,
and deletes the funcid command. It leaves sequence unbound only
if funcid was the last bound command.
- gh-67790: Implement basic formatting support (minimum width,
alignment, fill) for fractions.Fraction.
- gh-111049: Fix crash during garbage collection of the io.BytesIO
buffer object.
- gh-102980: Redirect the output of interact command of pdb to the
same channel as the debugger. Add tests and improve docs.
- gh-102988: email.utils.getaddresses() and
email.utils.parseaddr() now return ('', '') 2-tuples in more
situations where invalid email addresses are encountered instead
of potentially inaccurate values. Add optional strict parameter
to these two functions: use strict=False to get the old
behavior, accept malformed inputs. getattr(email.utils,
'supports_strict_parsing', False) can be use to check if the
strict paramater is available. Patch by Thomas Dwyer and Victor
Stinner to improve the CVE-2023-27043 fix.
- gh-52161: cmd.Cmd.do_help() now cleans docstrings with
inspect.cleandoc() before writing them. Patch by Filip
Łapkiewicz.
- gh-82300: Add track parameter to
multiprocessing.shared_memory.SharedMemory that allows using
shared memory blocks without having to register with the POSIX
resource tracker that automatically releases them upon process
exit.
- gh-110109: Add private pathlib._PurePathBase class: a base class
for pathlib.PurePath that omits certain magic methods. It may be
made public (along with _PathBase) in future.
- gh-109858: Protect zipfile from “quoted-overlap” zipbomb. It now
raises BadZipFile when try to read an entry that overlaps with
other entry or central directory.
- gh-109786: Fix possible reference leaks and crash when re-enter
the __next__() method of itertools.pairwise.
- gh-91539: Small (10 - 20%) and trivial performance improvement
of urrlib.request.getproxies_environment(), typically useful
when there are many environment variables to go over.
- gh-103363: Add follow_symlinks keyword-only argument to
pathlib.Path.owner() and group(), defaulting to True.
- gh-102130: Support tab completion in cmd for editline.
- gh-99437: runpy.run_path() now decodes path-like objects, making
sure __file__ and sys.argv[0] of the module being run are always
strings.
- gh-104003: Add warnings.deprecated(), a decorator to mark
deprecated functions to static type checkers and to warn on
usage of deprecated classes and functions. See PEP 702. Patch by
Jelle Zijlstra.
- gh-103708: Make hardcoded python name, a configurable parameter
so that different implementations of python can override it
instead of making huge diffs in sysconfig.py
- gh-66515: mailbox.MH now supports folders that do not contain a
.mh_sequences file (e.g. Claws Mail IMAP-cache folders). Patch
by Serhiy Storchaka.
- gh-83162: Renamed re.error to PatternError for clarity, and kept
re.error for backward compatibility. Patch by Matthias
Bussonnier and Adam Chhina.
- gh-91133: Fix a bug in tempfile.TemporaryDirectory cleanup,
which now no longer dereferences symlinks when working around
file system permission errors.
- bpo-43153: On Windows, tempfile.TemporaryDirectory previously
masked a PermissionError with NotADirectoryError during
directory cleanup. It now correctly raises PermissionError if
errors are not ignored. Patch by Andrei Kulakov and Ken Jin.
- bpo-32731: getpass.getuser() now raises OSError for all failures
rather than ImportError on systems lacking the pwd module or
KeyError if the password database is empty.
- bpo-34321: mmap.mmap now has a trackfd parameter on Unix; if it
is False, the file descriptor specified by fileno will not be
duplicated.
- bpo-35332: The shutil.rmtree() function now ignores errors when
calling os.close() when ignore_errors is True, and os.close() no
longer retried after error.
- bpo-35928: io.TextIOWrapper now correctly handles the decoding
buffer after read() and write().
- bpo-26791: shutil.move() now moves a symlink into a directory
when that directory is the target of the symlink. This provides
the same behavior as the mv shell command. The previous behavior
raised an exception. Patch by Jeffrey Kintscher.
- bpo-41422: Fixed memory leaks of pickle.Pickler and
pickle.Unpickler involving cyclic references via the internal
memo mapping.
- bpo-19821: The pydoc.ispackage() function has been deprecated.
- bpo-40262: The ssl.SSLSocket.recv_into() method no longer
requires the buffer argument to implement __len__ and supports
buffers with arbitrary item size.
- bpo-39912: warnings.filterwarnings() and warnings.simplefilter()
now raise appropriate exceptions instead of AssertionError.
Patch contributed by Rémi Lapeyre.
- bpo-37260: Fixed a race condition in shutil.rmtree() in which
directory entries removed by another process or thread while
shutil.rmtree() is running can cause it to raise
FileNotFoundError. Patch by Jeffrey Kintscher.
- bpo-36959: Fix some error messages for invalid ISO format string
combinations in strptime() that referred to directives not
contained in the format string. Patch by Gordon P. Hemsley.
- bpo-18060: Fixed a class inheritance issue that can cause
segfaults when deriving two or more levels of subclasses from a
base class of Structure or Union.
- bpo-29779: Add a new PYTHON_HISTORY environment variable to set
the location of a .python_history file.
- bpo-21360: mailbox.Maildir now ignores files with a leading dot.
- Documentation
- gh-111699: Relocate smtpd deprecation notice to its own section
rather than under locale in Whats New in Python 3.12 document
- gh-110746: Improved markup for valid options/values for methods
ttk.treeview.column and ttk.treeview.heading, and for Layouts.
- gh-95649: Document that the asyncio module contains code taken
from v0.16.0 of the uvloop project, as well as the required MIT
licensing information.
- Tests
- gh-111798: Disable test_super_deep() from test_call under
pydebug builds on WASI; the stack depth is too small to make the
test useful.
- gh-111801: Lower the recursion limit in test_isinstance for
test_infinitely_many_bases(). This prevents a stack overflow on
a pydebug build of WASI.
- gh-111802: Specify a low recursion depth for test_bad_getattr()
in test.pickletester to avoid exhausting the stack under a
pydebug build for WASI.
- gh-44626: Fix os.path.isabs() incorrectly returning True when
given a path that starts with exactly one (back)slash on
Windows.
- Fix pathlib.PureWindowsPath.is_absolute() incorrectly returning
False for some paths beginning with two (back)slashes.
- gh-113633: Use module state for the _testcapi extension module.
- gh-109980: Fix test_tarfile_vs_tar in test_shutil for macOS,
where system tar can include more information in the archive
than shutil.make_archive.
- gh-112769: The tests now correctly compare zlib version when
zlib.ZLIB_RUNTIME_VERSION contains non-integer suffixes. For
example zlib-ng defines the version as 1.3.0.zlib-ng.
- gh-112334: Adds a regression test to verify that vfork() is used
when expected by subprocess on vfork enabled POSIX systems
(Linux).
- gh-108927: Fixed order dependence in running tests in the same
process when a test that has submodules (e.g. test_importlib)
follows a test that imports its submodule (e.g.
test_importlib.util) and precedes a test (e.g. test_unittest or
test_compileall) that uses that submodule.
- bpo-40648: Test modes that file can get with chmod() on Windows.
- Build
- gh-114013: Fix Tools/wasm/wasi.py to not include the path to
python.wasm as part of HOSTRUNNER. The environment variable is
meant to specify how to run the WASI host only, having
python.wasm and relevant flags appended to the HOSTRUNNER. This
fixes make test work.
- gh-113258: Changed the Windows build to write out generated
frozen modules into the build tree instead of the source tree.
- gh-112305: Fixed the check-clean-src step performed on out of
tree builds to detect errant $(srcdir)/Python/frozen_modules/*.h
files and recommend appropriate source tree cleanup steps to get
a working build again.
- gh-112536: Add support for thread sanitizer (TSAN)
- gh-112867: Fix the build for the case that
WITH_PYMALLOC_RADIX_TREE=0 set.
- gh-103065: Introduce Tools/wasm/wasi.py to simplify doing a WASI
build.
- bpo-11102: The os.major(), os.makedev(), and os.minor()
functions are now available on HP-UX v3.
- bpo-36351: Do not set ipv6type when cross-compiling.
- IDLE
- gh-72284: Improve the lists of features, editor key bindings,
and shell key bingings in the IDLE doc.
- gh-113903: Fix rare failure of test.test_idle, in
test_configdialog.
- gh-113729: Fix the “Help -> IDLE Doc” menu bug in 3.11.7 and
3.12.1.
- gh-113269: Fix test_editor hang on macOS Catalina.
- gh-112898: Fix processing unsaved files when quitting IDLE on
macOS.
- bpo-13586: Enter the selected text when opening the “Replace”
dialog.
- C API
- gh-106560: Fix redundant declarations in the public C API.
Declare PyBool_Type, PyLong_Type and PySys_Audit() only once.
Patch by Victor Stinner.
- gh-112438: Fix support of format units “es”, “et”, “es#”, and
“et#” in nested tuples in PyArg_ParseTuple()-like functions.
- gh-111545: Add Py_HashPointer() function to hash a pointer.
Patch by Victor Stinner.
- gh-65210: Change the declaration of the keywords parameter of
PyArg_ParseTupleAndKeywords() and
PyArg_VaParseTupleAndKeywords() for better compatibility with
C++.
- Refresh all patches
- F00251-change-user-install-location.patch
- bpo-31046_ensurepip_honours_prefix.patch
- fix_configure_rst.patch
- no-skipif-doctests.patch
- python-3.3.0b1-fix_date_time_compiler.patch
- python-3.3.0b1-localpath.patch
- python-3.3.0b1-test-posix_fadvise.patch
- skip-test_pyobject_freed_is_freed.patch
- subprocess-raise-timeout.patch
-------------------------------------------------------------------
Sat Nov 25 16:10:53 UTC 2023 - Matej Cepl <mcepl@cepl.eu>

View File

@ -105,7 +105,7 @@
%define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so
%bcond_without profileopt
Name: %{python_pkg_name}%{psuffix}
Version: 3.13.0a2
Version: 3.13.0a3
Release: 0
Summary: Python 3 Interpreter
License: Python-2.0
@ -415,19 +415,19 @@ other applications.
%prep
%setup -q -n %{tarname}
%patch02 -p1
%patch07 -p1
%patch08 -p1
%patch09 -p1
%patch15 -p1
%patch29 -p1
%patch -P 02 -p1
%patch -P 07 -p1
%patch -P 08 -p1
%patch -P 09 -p1
%patch -P 15 -p1
%patch -P 29 -p1
# %%if 0%%{?suse_version} <= 1500
%patch33 -p1
%patch -P 33 -p1
# %%endif
# %%if 0%%{?sle_version} && 0%%{?sle_version} <= 150300
%patch34 -p1
%patch -P 34 -p1
# %%endif
%patch35 -p1
%patch -P 35 -p1
# drop Autoconf version requirement
sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac

View File

@ -2,10 +2,10 @@
Lib/test/test_capi/test_mem.py | 1 +
1 file changed, 1 insertion(+)
Index: Python-3.13.0a1/Lib/test/test_capi/test_mem.py
Index: Python-3.13.0a3/Lib/test/test_capi/test_mem.py
===================================================================
--- Python-3.13.0a1.orig/Lib/test/test_capi/test_mem.py
+++ Python-3.13.0a1/Lib/test/test_capi/test_mem.py
--- Python-3.13.0a3.orig/Lib/test/test_capi/test_mem.py
+++ Python-3.13.0a3/Lib/test/test_capi/test_mem.py
@@ -109,6 +109,7 @@ class PyMemDebugTests(unittest.TestCase)
def test_pyobject_forbidden_bytes_is_freed(self):
self.check_pyobject_is_freed('check_pyobject_forbidden_bytes_is_freed')

View File

@ -2,10 +2,10 @@
Lib/test/test_subprocess.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: Python-3.13.0a1/Lib/test/test_subprocess.py
Index: Python-3.13.0a3/Lib/test/test_subprocess.py
===================================================================
--- Python-3.13.0a1.orig/Lib/test/test_subprocess.py
+++ Python-3.13.0a1/Lib/test/test_subprocess.py
--- Python-3.13.0a3.orig/Lib/test/test_subprocess.py
+++ Python-3.13.0a3/Lib/test/test_subprocess.py
@@ -281,7 +281,8 @@ class ProcessTestCase(BaseTestCase):
"time.sleep(3600)"],
# Some heavily loaded buildbots (sparc Debian 3.x) require