Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python312 for openSUSE:Factory checked in at 2023-08-08 15:54:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python312 (Old) and /work/SRC/openSUSE:Factory/.python312.new.22712 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python312" Tue Aug 8 15:54:45 2023 rev:6 rq:1102750 version:3.12.0rc1 Changes: -------- --- /work/SRC/openSUSE:Factory/python312/python312.changes 2023-08-04 15:03:52.636450301 +0200 +++ /work/SRC/openSUSE:Factory/.python312.new.22712/python312.changes 2023-08-08 15:54:49.848954387 +0200 @@ -1,0 +2,135 @@ +Mon Aug 7 07:31:27 UTC 2023 - Daniel Garcia <daniel.gar...@suse.com> + +- Refresh all patches +- Drop Revert-gh105127-left-tests.patch, in upstream now +- Update to 3.12.0rc1: + - Reverted the :mod:`email.utils` security improvement change + released in 3.12beta4 that unintentionally caused + :mod:`email.utils.getaddresses` to fail to parse email addresses + with a comma in the quoted name field. See :gh:`106669`. + - Start initializing ob_digit during creation of + :c:type:`PyLongObject` objects. Patch by Illia Volochii. + - Increase C recursion limit for functions other than the main + interpreter from 800 to 1500. This should allow functions like + list.__repr__ and json.dumps to handle all the inputs that they + could prior to 3.12 + - Fix potential unaligned memory access on C APIs involving returned + sequences of char * pointers within the :mod:`grp` and + :mod:`socket` modules. These were revealed using a + -fsaniziter=alignment build on ARM macOS. Patch by Christopher + Chavez. + - Add the exception as the third argument to PY_UNIND callbacks in + sys.monitoring. This makes the PY_UNWIND callback consistent with + the other exception hanlding callbacks. + - Raise a ValueError when a monitoring callback funtion returns + DISABLE for events that cannot be disabled locally. + - Add a RERAISE event to sys.monitoring, which occurs when an + exception is reraised, either explicitly by a plain raise + statement, or implicitly in an except or finally block. + - Unsupported modules now always fail to be imported. + - Fix classmethod-style :func:`super` method calls (i.e., where the + second argument to :func:`super`, or the implied second argument + drawn from self/cls in the case of zero-arg super, is a type) when + the target of the call is not a classmethod. + - Python no longer crashes due an infrequent race when initialzing + per-interpreter interned strings. The crash would manifest when + the interpreter was finalized. + - Python no longer crashes due to an infrequent race in setting + Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors + (both deprecated), when simultaneously initializing two isolated + subinterpreters. Now they are only set during runtime + initialization. + - Fix a segmentation fault caused by a use-after-free bug in + frame_dealloc when the trashcan delays the deallocation of a + PyFrameObject. + - No longer suppress arbitrary errors in the __annotations__ getter + and setter in the type and module types. + - Propagate frozen_modules to multiprocessing spawned process + interpreters. + - Prevent out-of-bounds memory access during mmap.find() calls. + - Seems that in some conditions, OpenSSL will return + SSL_ERROR_SYSCALL instead of SSL_ERROR_SSL when a certification + verification has failed, but the error parameters will still + contain ERR_LIB_SSL and SSL_R_CERTIFICATE_VERIFY_FAILED. We are + now detecting this situation and raising the appropiate + ssl.SSLCertVerificationError. Patch by Pablo Galindo + - Fix :func:`types.get_original_bases` to only return + :attr:`!__orig_bases__` if it is present on cls directly. Patch by + James Hilton-Balfe. + - Prevent memory leak and use-after-free when using pointers to + pointers with ctypes + - Make :func:`gettext.pgettext` search plural definitions when + translation is not found. + - Document behavior of :func:`shutil.disk_usage` for non-mounted + filesystems on Unix. + - Do not report MultipartInvariantViolationDefect defect when the + :class:`email.parser.Parser` class is used to parse emails with + headersonly=True. + - Fix invalid result from :meth:`PurePath.relative_to` method when + attempting to walk a ".." segment in other with walk_up enabled. A + :exc:`ValueError` exception is now raised in this case. + - Fix potential missing NULL check of d2i_SSL_SESSION result in + _ssl.c. + - Update the bundled copy of pip to version 23.2.1. + - Fixed several bugs in zipfile.Path, including: in Path.match`, + Windows separators are no longer honored (and never were meant to + be); Fixed ``name/suffix/suffixes/stem operations when no filename + is present and the Path is not at the root of the zipfile; + Reworked glob for performance and more correct matching behavior. + - Add __copy__ and __deepcopy__ in :mod:`enum` + - Revert a change to :func:`colorsys.rgb_to_hls` that caused + division by zero for certain almost-white inputs. Patch by Terry + Jan Reedy. + - Instances of :class:`typing.TypeVar`, :class:`typing.ParamSpec`, + :class:`typing.ParamSpecArgs`, :class:`typing.ParamSpecKwargs`, + and :class:`typing.TypeVarTuple` once again support weak + references, fixing a regression introduced in Python 3.12.0 beta + 1. Patch by Jelle Zijlstra. + - Detect possible memory allocation failure in the libtommath + function :c:func:`mp_init` used by the _tkinter module. + - Fix crash when calling repr with a manually constructed SignalDict + object. Patch by Charlie Zhao. + - Change the default return value of + :meth:`http.client.HTTPConnection.get_proxy_response_headers` to + be None and not {}. + - Ensure gettext(msg) retrieve translations even if a plural form + exists. In other words: gettext(msg) == ngettext(msg, '', 1). + - Add documentation for :c:type:`PyInterpreterConfig` and + :c:func:`Py_NewInterpreterFromConfig`. Also clarify some of the + nearby docs relative to per-interpreter GIL. + - Document the :mod:`curses` module variables :const:`~curses.LINES` + and :const:`~curses.COLS`. + - Add a number of standard external names to nitpick_ignore. + - Add documentation on how to localize the :mod:`argparse` module. + - test_logging: Fix test_udp_reconnection() by increasing the + timeout from 100 ms to 5 minutes (LONG_TIMEOUT). Patch by Victor + Stinner. + - test_capi: Fix test_no_FatalError_infinite_loop() to no longer + write a coredump, by using test.support.SuppressCrashReport. Patch + by Victor Stinner. + - Avoid creating a reference to the test object in + :meth:`~unittest.TestResult.collectedDurations`. + - Moved tests for zipfile.Path into Lib/test/test_zipfile/_path. + Made zipfile._path a package. + - Check for linux/limits.h before including it in + Modules/posixmodule.c. + - Detect MPI compilers in :file:`configure`. + - Add experimental wasi-threads support. Patch by Takashi Yamamoto. + - Update Windows build to use OpenSSL 3.0.9 + - Update macOS installer to use OpenSSL 3.0.9. + - Fix bugs in the Argument Clinic destination <name> clear command; + the destination buffers would never be cleared, and the + destination directive parser would simply continue to the fault + handler after processing the command. Patch by Erlend E. Aasland. + - freeze now fetches CONFIG_ARGS from the original CPython instance + the Makefile uses to call utility scripts. Patch by Ijtaba + Hussain. + - :c:func:`PyModule_AddObjectRef` is now only available in the + limited API version 3.10 or later. + +------------------------------------------------------------------- +Fri Aug 4 06:37:41 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- add externally_managed.in to label this build as PEP-668 managed + +------------------------------------------------------------------- Old: ---- Python-3.12.0b4.tar.xz Python-3.12.0b4.tar.xz.asc Revert-gh105127-left-tests.patch New: ---- Python-3.12.0rc1.tar.xz Python-3.12.0rc1.tar.xz.asc externally_managed.in ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python312.spec ++++++ --- /var/tmp/diff_new_pack.YiOclk/_old 2023-08-08 15:54:52.216969206 +0200 +++ /var/tmp/diff_new_pack.YiOclk/_new 2023-08-08 15:54:52.220969230 +0200 @@ -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.12.0b4 +Version: 3.12.0rc1 Release: 0 Summary: Python 3 Interpreter License: Python-2.0 @@ -114,6 +114,7 @@ Source1: https://www.python.org/ftp/python/%{folderversion}/%{tarname}.tar.xz.asc Source2: baselibs.conf Source3: README.SUSE +Source4: externally_managed.in Source7: macros.python3 Source8: import_failed.py Source9: import_failed.map @@ -162,9 +163,6 @@ # PATCH-FIX-SLE fix_configure_rst.patch bpo#43774 mc...@suse.com # remove duplicate link targets and make documentation with old Sphinx in SLE Patch35: fix_configure_rst.patch -# PATCH-FIX-UPSTREAM Revert-gh105127-left-tests.patch bsc#1210638 mc...@suse.com -# Partially revert previous patch -Patch41: Revert-gh105127-left-tests.patch BuildRequires: autoconf-archive BuildRequires: automake BuildRequires: fdupes @@ -433,7 +431,6 @@ %patch34 -p1 # %%endif %patch35 -p1 -%patch41 -p1 # drop Autoconf version requirement sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac @@ -707,6 +704,9 @@ rm %{buildroot}%{_libdir}/pkgconfig/{python3,python3-embed}.pc %endif +# PEP-0668 mark this as a distro maintained python +sed -e 's,__PYTHONPREFIX__,%{python_pkg_name},' -e 's,__PYTHON__,python%{python_version},' < %{SOURCE4} > %{buildroot}%{sitedir}/EXTERNALLY-MANAGED + # link shared library instead of static library that tools expect ln -s ../../libpython%{python_abi}.so %{buildroot}%{_libdir}/python%{python_version}/config-%{python_abi}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}/libpython%{python_abi}.so @@ -902,6 +902,8 @@ %{_mandir}/man1/python3.1%{?ext_man} %endif %{_mandir}/man1/python%{python_version}.1%{?ext_man} +# PEP-0668 +%{sitedir}/EXTERNALLY-MANAGED # license text, not a doc because the code can use it at run-time %{sitedir}/LICENSE.txt # RPM macros ++++++ F00251-change-user-install-location.patch ++++++ --- /var/tmp/diff_new_pack.YiOclk/_old 2023-08-08 15:54:52.244969381 +0200 +++ /var/tmp/diff_new_pack.YiOclk/_new 2023-08-08 15:54:52.248969406 +0200 @@ -29,10 +29,10 @@ Lib/test/test_sysconfig.py | 17 +++++++++++-- 3 files changed, 71 insertions(+), 4 deletions(-) -Index: Python-3.12.0b1/Lib/site.py +Index: Python-3.12.0rc1/Lib/site.py =================================================================== ---- Python-3.12.0b1.orig/Lib/site.py -+++ Python-3.12.0b1/Lib/site.py +--- Python-3.12.0rc1.orig/Lib/site.py ++++ Python-3.12.0rc1/Lib/site.py @@ -377,8 +377,15 @@ def getsitepackages(prefixes=None): return sitepackages @@ -50,10 +50,10 @@ for sitedir in getsitepackages(prefixes): if os.path.isdir(sitedir): addsitedir(sitedir, known_paths) -Index: Python-3.12.0b1/Lib/sysconfig.py +Index: Python-3.12.0rc1/Lib/sysconfig.py =================================================================== ---- Python-3.12.0b1.orig/Lib/sysconfig.py -+++ Python-3.12.0b1/Lib/sysconfig.py +--- Python-3.12.0rc1.orig/Lib/sysconfig.py ++++ Python-3.12.0rc1/Lib/sysconfig.py @@ -104,6 +104,11 @@ if os.name == 'nt': else: _INSTALL_SCHEMES['venv'] = _INSTALL_SCHEMES['posix_venv'] @@ -128,10 +128,10 @@ if os.name == 'nt': # On Windows we want to substitute 'lib' for schemes rather # than the native value (without modifying vars, in case it -Index: Python-3.12.0b1/Lib/test/test_sysconfig.py +Index: Python-3.12.0rc1/Lib/test/test_sysconfig.py =================================================================== ---- Python-3.12.0b1.orig/Lib/test/test_sysconfig.py -+++ Python-3.12.0b1/Lib/test/test_sysconfig.py +--- Python-3.12.0rc1.orig/Lib/test/test_sysconfig.py ++++ Python-3.12.0rc1/Lib/test/test_sysconfig.py @@ -110,8 +110,19 @@ class TestSysConfig(unittest.TestCase): for scheme in _INSTALL_SCHEMES: for name in _INSTALL_SCHEMES[scheme]: ++++++ bpo-31046_ensurepip_honours_prefix.patch ++++++ --- /var/tmp/diff_new_pack.YiOclk/_old 2023-08-08 15:54:52.316969831 +0200 +++ /var/tmp/diff_new_pack.YiOclk/_new 2023-08-08 15:54:52.320969857 +0200 @@ -13,10 +13,10 @@ 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 -Index: Python-3.12.0b1/Doc/library/ensurepip.rst +Index: Python-3.12.0rc1/Doc/library/ensurepip.rst =================================================================== ---- Python-3.12.0b1.orig/Doc/library/ensurepip.rst -+++ Python-3.12.0b1/Doc/library/ensurepip.rst +--- Python-3.12.0rc1.orig/Doc/library/ensurepip.rst ++++ Python-3.12.0rc1/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 @@ -55,10 +55,10 @@ .. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap .. note:: -Index: Python-3.12.0b1/Lib/ensurepip/__init__.py +Index: Python-3.12.0rc1/Lib/ensurepip/__init__.py =================================================================== ---- Python-3.12.0b1.orig/Lib/ensurepip/__init__.py -+++ Python-3.12.0b1/Lib/ensurepip/__init__.py +--- Python-3.12.0rc1.orig/Lib/ensurepip/__init__.py ++++ Python-3.12.0rc1/Lib/ensurepip/__init__.py @@ -120,27 +120,27 @@ def _disable_pip_configuration_settings( os.environ['PIP_CONFIG_FILE'] = os.devnull @@ -121,10 +121,10 @@ upgrade=args.upgrade, user=args.user, verbosity=args.verbosity, -Index: Python-3.12.0b1/Lib/test/test_ensurepip.py +Index: Python-3.12.0rc1/Lib/test/test_ensurepip.py =================================================================== ---- Python-3.12.0b1.orig/Lib/test/test_ensurepip.py -+++ Python-3.12.0b1/Lib/test/test_ensurepip.py +--- Python-3.12.0rc1.orig/Lib/test/test_ensurepip.py ++++ Python-3.12.0rc1/Lib/test/test_ensurepip.py @@ -105,6 +105,17 @@ class TestBootstrap(EnsurepipMixin, unit unittest.mock.ANY, ) @@ -143,11 +143,11 @@ def test_bootstrapping_with_user(self): ensurepip.bootstrap(user=True) -Index: Python-3.12.0b1/Makefile.pre.in +Index: Python-3.12.0rc1/Makefile.pre.in =================================================================== ---- Python-3.12.0b1.orig/Makefile.pre.in -+++ Python-3.12.0b1/Makefile.pre.in -@@ -1908,7 +1908,7 @@ install: @FRAMEWORKINSTALLFIRST@ commoni +--- Python-3.12.0rc1.orig/Makefile.pre.in ++++ Python-3.12.0rc1/Makefile.pre.in +@@ -1909,7 +1909,7 @@ install: @FRAMEWORKINSTALLFIRST@ commoni install|*) ensurepip="" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -156,7 +156,7 @@ fi .PHONY: altinstall -@@ -1919,7 +1919,7 @@ altinstall: commoninstall +@@ -1920,7 +1920,7 @@ altinstall: commoninstall install|*) ensurepip="--altinstall" ;; \ esac; \ $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ @@ -165,10 +165,10 @@ fi .PHONY: commoninstall -Index: Python-3.12.0b1/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst +Index: Python-3.12.0rc1/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst =================================================================== --- /dev/null -+++ Python-3.12.0b1/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst ++++ Python-3.12.0rc1/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`. ++++++ externally_managed.in ++++++ [externally-managed] Error=To install Python packages system-wide, try zypper install __PYTHONPREFIX__-xyz, where xyz is the package you are trying to install. If you wish to install a non-rpm packaged Python package, create a virtual environment using __PYTHON__ -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. If you wish to install a non-rpm packaged Python application, it may be easiest to use `pipx install xyz`, which will manage a virtual environment for you. Install pipx via `zypper install __PYTHONPREFIX__-pipx` . ++++++ fix_configure_rst.patch ++++++ --- /var/tmp/diff_new_pack.YiOclk/_old 2023-08-08 15:54:52.356970081 +0200 +++ /var/tmp/diff_new_pack.YiOclk/_new 2023-08-08 15:54:52.360970107 +0200 @@ -3,8 +3,10 @@ Misc/NEWS | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) ---- a/Doc/using/configure.rst -+++ b/Doc/using/configure.rst +Index: Python-3.12.0rc1/Doc/using/configure.rst +=================================================================== +--- Python-3.12.0rc1.orig/Doc/using/configure.rst ++++ Python-3.12.0rc1/Doc/using/configure.rst @@ -599,13 +599,11 @@ macOS Options See ``Mac/README.rst``. @@ -19,9 +21,11 @@ .. cmdoption:: --enable-framework=INSTALLDIR Create a Python.framework rather than a traditional Unix install. Optional ---- a/Misc/NEWS -+++ b/Misc/NEWS -@@ -11318,7 +11318,7 @@ C API +Index: Python-3.12.0rc1/Misc/NEWS +=================================================================== +--- Python-3.12.0rc1.orig/Misc/NEWS ++++ Python-3.12.0rc1/Misc/NEWS +@@ -11530,7 +11530,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 ++++++ no-skipif-doctests.patch ++++++ ++++ 683 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/python312/no-skipif-doctests.patch ++++ and /work/SRC/openSUSE:Factory/.python312.new.22712/no-skipif-doctests.patch ++++++ python-3.3.0b1-fix_date_time_compiler.patch ++++++ --- /var/tmp/diff_new_pack.YiOclk/_old 2023-08-08 15:54:52.448970657 +0200 +++ /var/tmp/diff_new_pack.YiOclk/_new 2023-08-08 15:54:52.452970682 +0200 @@ -2,10 +2,10 @@ Makefile.pre.in | 7 +++++++ 1 file changed, 7 insertions(+) -Index: Python-3.12.0b1/Makefile.pre.in +Index: Python-3.12.0rc1/Makefile.pre.in =================================================================== ---- Python-3.12.0b1.orig/Makefile.pre.in -+++ Python-3.12.0b1/Makefile.pre.in +--- Python-3.12.0rc1.orig/Makefile.pre.in ++++ Python-3.12.0rc1/Makefile.pre.in @@ -1332,11 +1332,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \ $(DTRACE_OBJS) \ $(srcdir)/Modules/getbuildinfo.c ++++++ python-3.3.0b1-localpath.patch ++++++ --- /var/tmp/diff_new_pack.YiOclk/_old 2023-08-08 15:54:52.460970733 +0200 +++ /var/tmp/diff_new_pack.YiOclk/_new 2023-08-08 15:54:52.464970757 +0200 @@ -1,7 +1,7 @@ -Index: Python-3.12.0b1/Lib/site.py +Index: Python-3.12.0rc1/Lib/site.py =================================================================== ---- Python-3.12.0b1.orig/Lib/site.py -+++ Python-3.12.0b1/Lib/site.py +--- Python-3.12.0rc1.orig/Lib/site.py ++++ Python-3.12.0rc1/Lib/site.py @@ -76,7 +76,7 @@ import _sitebuiltins import io ++++++ python-3.3.0b1-test-posix_fadvise.patch ++++++ --- /var/tmp/diff_new_pack.YiOclk/_old 2023-08-08 15:54:52.476970833 +0200 +++ /var/tmp/diff_new_pack.YiOclk/_new 2023-08-08 15:54:52.480970857 +0200 @@ -2,10 +2,10 @@ Lib/test/test_posix.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: Python-3.12.0b1/Lib/test/test_posix.py +Index: Python-3.12.0rc1/Lib/test/test_posix.py =================================================================== ---- Python-3.12.0b1.orig/Lib/test/test_posix.py -+++ Python-3.12.0b1/Lib/test/test_posix.py +--- Python-3.12.0rc1.orig/Lib/test/test_posix.py ++++ Python-3.12.0rc1/Lib/test/test_posix.py @@ -431,7 +431,7 @@ class PosixTester(unittest.TestCase): def test_posix_fadvise(self): fd = os.open(os_helper.TESTFN, os.O_RDONLY) ++++++ skip-test_pyobject_freed_is_freed.patch ++++++ --- /var/tmp/diff_new_pack.YiOclk/_old 2023-08-08 15:54:52.524971133 +0200 +++ /var/tmp/diff_new_pack.YiOclk/_new 2023-08-08 15:54:52.524971133 +0200 @@ -2,8 +2,10 @@ Lib/test/test_capi/test_mem.py | 1 + 1 file changed, 1 insertion(+) ---- a/Lib/test/test_capi/test_mem.py -+++ b/Lib/test/test_capi/test_mem.py +Index: Python-3.12.0rc1/Lib/test/test_capi/test_mem.py +=================================================================== +--- Python-3.12.0rc1.orig/Lib/test/test_capi/test_mem.py ++++ Python-3.12.0rc1/Lib/test/test_capi/test_mem.py @@ -110,6 +110,7 @@ class PyMemDebugTests(unittest.TestCase) def test_pyobject_forbidden_bytes_is_freed(self): self.check_pyobject_is_freed('check_pyobject_forbidden_bytes_is_freed') ++++++ subprocess-raise-timeout.patch ++++++ --- /var/tmp/diff_new_pack.YiOclk/_old 2023-08-08 15:54:52.544971258 +0200 +++ /var/tmp/diff_new_pack.YiOclk/_new 2023-08-08 15:54:52.548971283 +0200 @@ -2,8 +2,10 @@ Lib/test/test_subprocess.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---- a/Lib/test/test_subprocess.py -+++ b/Lib/test/test_subprocess.py +Index: Python-3.12.0rc1/Lib/test/test_subprocess.py +=================================================================== +--- Python-3.12.0rc1.orig/Lib/test/test_subprocess.py ++++ Python-3.12.0rc1/Lib/test/test_subprocess.py @@ -280,7 +280,8 @@ class ProcessTestCase(BaseTestCase): "time.sleep(3600)"], # Some heavily loaded buildbots (sparc Debian 3.x) require