Accepting request 1192365 from devel:languages:python:Factory
- Update to 3.12.5: - Tests - gh-59022: Add tests for pkgutil.extend_path(). Patch by Andreas Stocker. - gh-99242: os.getloadavg() may throw OSError when running regression tests under certain conditions (e.g. chroot). This error is now caught and ignored, since reporting load average is optional. - gh-121084: Fix test_typing random leaks. Clear typing ABC caches when running tests for refleaks (-R option): call _abc_caches_clear() on typing abstract classes and their subclasses. Patch by Victor Stinner. - gh-121160: Add a test for readline.set_history_length(). Note that this test may fail on readline libraries. - gh-121200: Fix test_expanduser_pwd2() of test_posixpath. Call getpwnam() to get pw_dir, since it can be different than getpwall() pw_dir. Patch by Victor Stinner. - gh-121188: When creating the JUnit XML file, regrtest now escapes characters which are invalid in XML, such as the chr(27) control character used in ANSI escape sequences. Patch by Victor Stinner. - Security - gh-121957: Fixed missing audit events around interactive use of Python, now also properly firing for python -i, as well as for python -m asyncio. The event in question is cpython.run_stdin. - gh-122133: Authenticate the socket connection for the socket.socketpair() fallback on platforms where AF_UNIX is OBS-URL: https://build.opensuse.org/request/show/1192365 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python312?expand=0&rev=18
This commit is contained in:
commit
e33fbc932e
@ -4,8 +4,10 @@
|
||||
Misc/NEWS.d/next/Library/2022-12-01-16-57-44.gh-issue-91133.LKMVCV.rst | 2
|
||||
3 files changed, 131 insertions(+)
|
||||
|
||||
--- a/Lib/tempfile.py
|
||||
+++ b/Lib/tempfile.py
|
||||
Index: Python-3.12.4/Lib/tempfile.py
|
||||
===================================================================
|
||||
--- Python-3.12.4.orig/Lib/tempfile.py
|
||||
+++ Python-3.12.4/Lib/tempfile.py
|
||||
@@ -285,6 +285,22 @@ def _resetperms(path):
|
||||
_dont_follow_symlinks(chflags, path, 0)
|
||||
_dont_follow_symlinks(_os.chmod, path, 0o700)
|
||||
@ -29,9 +31,11 @@
|
||||
|
||||
# User visible interfaces.
|
||||
|
||||
--- a/Lib/test/test_tempfile.py
|
||||
+++ b/Lib/test/test_tempfile.py
|
||||
@@ -1781,6 +1781,103 @@ class TestTemporaryDirectory(BaseTestCas
|
||||
Index: Python-3.12.4/Lib/test/test_tempfile.py
|
||||
===================================================================
|
||||
--- Python-3.12.4.orig/Lib/test/test_tempfile.py
|
||||
+++ Python-3.12.4/Lib/test/test_tempfile.py
|
||||
@@ -1803,6 +1803,103 @@ class TestTemporaryDirectory(BaseTestCas
|
||||
new_flags = os.stat(dir1).st_flags
|
||||
self.assertEqual(new_flags, old_flags)
|
||||
|
||||
@ -135,7 +139,7 @@
|
||||
@support.cpython_only
|
||||
def test_del_on_collection(self):
|
||||
# A TemporaryDirectory is deleted when garbage collected
|
||||
@@ -1955,6 +2052,22 @@ class TestTemporaryDirectory(BaseTestCas
|
||||
@@ -1977,6 +2074,22 @@ class TestTemporaryDirectory(BaseTestCas
|
||||
|
||||
def check_flags(self, flags):
|
||||
# skip the test if these flags are not supported (ex: FreeBSD 13)
|
||||
@ -158,8 +162,10 @@
|
||||
filename = os_helper.TESTFN
|
||||
try:
|
||||
open(filename, "w").close()
|
||||
Index: Python-3.12.4/Misc/NEWS.d/next/Library/2022-12-01-16-57-44.gh-issue-91133.LKMVCV.rst
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ b/Misc/NEWS.d/next/Library/2022-12-01-16-57-44.gh-issue-91133.LKMVCV.rst
|
||||
+++ Python-3.12.4/Misc/NEWS.d/next/Library/2022-12-01-16-57-44.gh-issue-91133.LKMVCV.rst
|
||||
@@ -0,0 +1,2 @@
|
||||
+Fix a bug in :class:`tempfile.TemporaryDirectory` cleanup, which now no longer
|
||||
+dereferences symlinks when working around file system permission errors.
|
||||
|
152
F00251-change-user-install-location.patch
Normal file
152
F00251-change-user-install-location.patch
Normal file
@ -0,0 +1,152 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
|
||||
Date: Mon, 15 Feb 2021 12:19:27 +0100
|
||||
Subject: [PATCH] 00251: Change user install location
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Set values of base and platbase in sysconfig from /usr
|
||||
to /usr/local when RPM build is not detected
|
||||
to make pip and similar tools install into separate location.
|
||||
|
||||
Fedora Change: https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
|
||||
Downstream only.
|
||||
|
||||
We've tried to rework in Fedora 36/Python 3.10 to follow https://bugs.python.org/issue43976
|
||||
but we have identified serious problems with that approach,
|
||||
see https://bugzilla.redhat.com/2026979 or https://bugzilla.redhat.com/2097183
|
||||
|
||||
pypa/distutils integration: https://github.com/pypa/distutils/pull/70
|
||||
|
||||
Co-authored-by: Petr Viktorin <encukou@gmail.com>
|
||||
Co-authored-by: Miro Hrončok <miro@hroncok.cz>
|
||||
Co-authored-by: Michal Cyprian <m.cyprian@gmail.com>
|
||||
Co-authored-by: Lumír Balhar <frenzy.madness@gmail.com>
|
||||
---
|
||||
Lib/site.py | 9 ++++++-
|
||||
Lib/sysconfig.py | 49 +++++++++++++++++++++++++++++++++++++-
|
||||
Lib/test/test_sysconfig.py | 17 +++++++++++--
|
||||
3 files changed, 71 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: Python-3.12.4/Lib/sysconfig.py
|
||||
===================================================================
|
||||
--- Python-3.12.4.orig/Lib/sysconfig.py
|
||||
+++ Python-3.12.4/Lib/sysconfig.py
|
||||
@@ -104,6 +104,11 @@ if os.name == 'nt':
|
||||
else:
|
||||
_INSTALL_SCHEMES['venv'] = _INSTALL_SCHEMES['posix_venv']
|
||||
|
||||
+# For a brief period of time in the Fedora 36 life cycle,
|
||||
+# this installation scheme existed and was documented in the release notes.
|
||||
+# For backwards compatibility, we keep it here (at least on 3.10 and 3.11).
|
||||
+_INSTALL_SCHEMES['rpm_prefix'] = _INSTALL_SCHEMES['posix_prefix']
|
||||
+
|
||||
|
||||
# NOTE: site.py has copy of this function.
|
||||
# Sync it when modify this function.
|
||||
@@ -163,6 +168,19 @@ if _HAS_USER_BASE:
|
||||
},
|
||||
}
|
||||
|
||||
+# This is used by distutils.command.install in the stdlib
|
||||
+# as well as pypa/distutils (e.g. bundled in setuptools).
|
||||
+# The self.prefix value is set to sys.prefix + /local/
|
||||
+# if neither RPM build nor virtual environment is
|
||||
+# detected to make distutils install packages
|
||||
+# into the separate location.
|
||||
+# https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
|
||||
+if (not (hasattr(sys, 'real_prefix') or
|
||||
+ sys.prefix != sys.base_prefix) and
|
||||
+ 'RPM_BUILD_ROOT' not in os.environ):
|
||||
+ _prefix_addition = '/local'
|
||||
+
|
||||
+
|
||||
_SCHEME_KEYS = ('stdlib', 'platstdlib', 'purelib', 'platlib', 'include',
|
||||
'scripts', 'data')
|
||||
|
||||
@@ -263,11 +281,40 @@ def _extend_dict(target_dict, other_dict
|
||||
target_dict[key] = value
|
||||
|
||||
|
||||
+_CONFIG_VARS_LOCAL = None
|
||||
+
|
||||
+
|
||||
+def _config_vars_local():
|
||||
+ # This function returns the config vars with prefixes amended to /usr/local
|
||||
+ # https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
|
||||
+ global _CONFIG_VARS_LOCAL
|
||||
+ if _CONFIG_VARS_LOCAL is None:
|
||||
+ _CONFIG_VARS_LOCAL = dict(get_config_vars())
|
||||
+ _CONFIG_VARS_LOCAL['base'] = '/usr/local'
|
||||
+ _CONFIG_VARS_LOCAL['platbase'] = '/usr/local'
|
||||
+ return _CONFIG_VARS_LOCAL
|
||||
+
|
||||
+
|
||||
def _expand_vars(scheme, vars):
|
||||
res = {}
|
||||
if vars is None:
|
||||
vars = {}
|
||||
- _extend_dict(vars, get_config_vars())
|
||||
+
|
||||
+ # when we are not in a virtual environment or an RPM build
|
||||
+ # we change '/usr' to '/usr/local'
|
||||
+ # to avoid surprises, we explicitly check for the /usr/ prefix
|
||||
+ # Python virtual environments have different prefixes
|
||||
+ # we only do this for posix_prefix, not to mangle the venv scheme
|
||||
+ # posix_prefix is used by sudo pip install
|
||||
+ # we only change the defaults here, so explicit --prefix will take precedence
|
||||
+ # https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
|
||||
+ if (scheme == 'posix_prefix' and
|
||||
+ _PREFIX == '/usr' and
|
||||
+ 'RPM_BUILD_ROOT' not in os.environ):
|
||||
+ _extend_dict(vars, _config_vars_local())
|
||||
+ else:
|
||||
+ _extend_dict(vars, get_config_vars())
|
||||
+
|
||||
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.4/Lib/test/test_sysconfig.py
|
||||
===================================================================
|
||||
--- Python-3.12.4.orig/Lib/test/test_sysconfig.py
|
||||
+++ Python-3.12.4/Lib/test/test_sysconfig.py
|
||||
@@ -110,8 +110,19 @@ class TestSysConfig(unittest.TestCase):
|
||||
for scheme in _INSTALL_SCHEMES:
|
||||
for name in _INSTALL_SCHEMES[scheme]:
|
||||
expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars)
|
||||
+ tested = get_path(name, scheme)
|
||||
+ # https://fedoraproject.org/wiki/Changes/Making_sudo_pip_safe
|
||||
+ if tested.startswith('/usr/local'):
|
||||
+ # /usr/local should only be used in posix_prefix
|
||||
+ self.assertEqual(scheme, 'posix_prefix')
|
||||
+ # Fedora CI runs tests for venv and virtualenv that check for other prefixes
|
||||
+ self.assertEqual(sys.prefix, '/usr')
|
||||
+ # When building the RPM of Python, %check runs this with RPM_BUILD_ROOT set
|
||||
+ # Fedora CI runs this with RPM_BUILD_ROOT unset
|
||||
+ self.assertNotIn('RPM_BUILD_ROOT', os.environ)
|
||||
+ tested = tested.replace('/usr/local', '/usr')
|
||||
self.assertEqual(
|
||||
- os.path.normpath(get_path(name, scheme)),
|
||||
+ os.path.normpath(tested),
|
||||
os.path.normpath(expected),
|
||||
)
|
||||
|
||||
@@ -344,7 +355,7 @@ class TestSysConfig(unittest.TestCase):
|
||||
self.assertTrue(os.path.isfile(config_h), config_h)
|
||||
|
||||
def test_get_scheme_names(self):
|
||||
- wanted = ['nt', 'posix_home', 'posix_prefix', 'posix_venv', 'nt_venv', 'venv']
|
||||
+ wanted = ['nt', 'posix_home', 'posix_prefix', 'posix_venv', 'nt_venv', 'venv', 'rpm_prefix']
|
||||
if HAS_USER_BASE:
|
||||
wanted.extend(['nt_user', 'osx_framework_user', 'posix_user'])
|
||||
self.assertEqual(get_scheme_names(), tuple(sorted(wanted)))
|
||||
@@ -356,6 +367,8 @@ class TestSysConfig(unittest.TestCase):
|
||||
cmd = "-c", "import sysconfig; print(sysconfig.get_platform())"
|
||||
self.assertEqual(py.call_real(*cmd), py.call_link(*cmd))
|
||||
|
||||
+ @unittest.skipIf('RPM_BUILD_ROOT' not in os.environ,
|
||||
+ "Test doesn't expect Fedora's paths")
|
||||
def test_user_similar(self):
|
||||
# Issue #8759: make sure the posix scheme for the users
|
||||
# is similar to the global posix_prefix one
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:56bfef1fdfc1221ce6720e43a661e3eb41785dd914ce99698d8c7896af4bdaa1
|
||||
size 20625068
|
@ -1,18 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAABCgB9FiEEcWlgX2LHUTVtBUomqCHmgOX6YwUFAmYVDdNfFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDcx
|
||||
Njk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUACgkQqCHmgOX6
|
||||
YwU8Vg//aP8bxzPTDIM9Af1LLJj5LNLIuZOl5QysWQVbakoCpS8Z8ZiK3LyzGi7H
|
||||
pQ5uJEnRjhULnOi+va2TPBDqiYvY1CkVizYzmUe1dMtzHdJUBE1TzybfON02JzPD
|
||||
62oDHxUC1hvITyLE8tjnsgBuP9bbYYHnS+qqmDgBWS1M60i4bqcBiSdlWZp7ZTI4
|
||||
KIxIy9eyNujHnNQrQQ1oqIoj7ty1Hrtkfqia/3cVq7rkQT8HecBIW0K82WuIXizm
|
||||
/Ua/TQslTJsypslFYpoJBoIkWG2nk7RhJvfU5iLxQHen6cr7JOUo/u3jv0DIJyJs
|
||||
LdBWG6noTIiqKJb65UswLUxexM5f3Y7gLEZ4FCqlbAOAPG16xwwC8Xd7LIF33cHK
|
||||
133BvYCkwdl0MCpmsQuxi8i6Kql0MaEqJ9MEj6UN66ZJVpRx8hOm2FtZGhn5ZNxx
|
||||
r5C2zXGw/IjXeS01wgD8cSRVA0XJdN4bu88vmvhqMuezg3CDF5bX85isoFUaLUjS
|
||||
c5Lv1HNrqPiaWHOctnvzasy0djpwze+WCzsXFMI6VfejPpYwNlhmnxS7i3R9A4RK
|
||||
gBwViMd5q5rwx365tCfRfGcBW6OOvrHZalhSGYmUw13sBarFliW9CvN4ghN9kWbN
|
||||
YQwSggf5KD6v5mAAyReMrOJTyBG6B5hMlxKai5CzbRLlG25T2wI=
|
||||
=ZQxz
|
||||
-----END PGP SIGNATURE-----
|
3
Python-3.12.5.tar.xz
Normal file
3
Python-3.12.5.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fa8a2e12c5e620b09f53e65bcd87550d2e5a1e2e04bf8ba991dcc55113876397
|
||||
size 20422396
|
18
Python-3.12.5.tar.xz.asc
Normal file
18
Python-3.12.5.tar.xz.asc
Normal file
@ -0,0 +1,18 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAABCgB9FiEEcWlgX2LHUTVtBUomqCHmgOX6YwUFAmayiFtfFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDcx
|
||||
Njk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUACgkQqCHmgOX6
|
||||
YwUr4g//VyVs9tvbtiSp8pGe8f1gYErEw54r124sL/CBuNii8Irts1j5ymGxcm+l
|
||||
hshPK5UlqRnhd5dCJWFTvLTXa5Ko2R1L3JyyxfGd1hmDuMhrWsDHijI0R7L/mGM5
|
||||
6X2LTaadBVNvk8HaNKvR8SEWvo68rdnOuYElFA9ir7uqwjO26ZWz9FfH80YDGwo8
|
||||
Blef2NYw8rNhiaZMFV0HYV7D+YyUAZnFNfW8M7Fd4oskUyj1tD9J89T9FFLYN09d
|
||||
BcCIf+EdiEfqRpKxH89bW2g52kDrm4jYGONtpyF8eruyS3YwYSbvbuWioBYKmlxC
|
||||
s51mieXz6G325GTZnmPxLek3ywPv6Gil9y0wH3fIr2BsWsmXust4LBpjDGt56Fy6
|
||||
seokGBg8xzsBSk3iEqNoFmNsy/QOiuCcDejX4XqBDNodOlETQPJb07TkTI2iOmg9
|
||||
NG4Atiz1HvGVxK68UuK9IIcNHyaWUmH8h4VQFGvc6KV6feP5Nm21Y12PZ5XIqJBO
|
||||
Y8M/VJIJ5koaNPQfnBbbI5YBkUr4BVpIXIpY5LM/L5sUo2C3R7hMi0VGK88HGfSQ
|
||||
KV4JmZgf6RMBNmrWY12sryS1QQ6q3P110GTUGQWB3sxxNbhmfcrK+4viqHc83yDz
|
||||
ifmk33HuqaQGU7OzUMHeNcoCJIPo3H1FpoHOn9wLLCtA1pT+as4=
|
||||
=t0Rk
|
||||
-----END PGP SIGNATURE-----
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a17f3fb420bf6bd577dde9e2b256cdb1df179ba552abb7172863321208a4713f
|
||||
size 25308
|
||||
oid sha256:4624c6ab6543ec4875bdd5c6c58c874d487128e44e54c8ef1924ec1d48e35928
|
||||
size 25328
|
||||
|
@ -13,10 +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
|
||||
|
||||
Index: Python-3.12.2/Doc/library/ensurepip.rst
|
||||
Index: Python-3.12.4/Doc/library/ensurepip.rst
|
||||
===================================================================
|
||||
--- Python-3.12.2.orig/Doc/library/ensurepip.rst
|
||||
+++ Python-3.12.2/Doc/library/ensurepip.rst
|
||||
--- Python-3.12.4.orig/Doc/library/ensurepip.rst
|
||||
+++ Python-3.12.4/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 @@ Index: Python-3.12.2/Doc/library/ensurepip.rst
|
||||
.. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap
|
||||
|
||||
.. note::
|
||||
Index: Python-3.12.2/Lib/ensurepip/__init__.py
|
||||
Index: Python-3.12.4/Lib/ensurepip/__init__.py
|
||||
===================================================================
|
||||
--- Python-3.12.2.orig/Lib/ensurepip/__init__.py
|
||||
+++ Python-3.12.2/Lib/ensurepip/__init__.py
|
||||
--- Python-3.12.4.orig/Lib/ensurepip/__init__.py
|
||||
+++ Python-3.12.4/Lib/ensurepip/__init__.py
|
||||
@@ -120,27 +120,27 @@ def _disable_pip_configuration_settings(
|
||||
os.environ['PIP_CONFIG_FILE'] = os.devnull
|
||||
|
||||
@ -121,10 +121,10 @@ Index: Python-3.12.2/Lib/ensurepip/__init__.py
|
||||
upgrade=args.upgrade,
|
||||
user=args.user,
|
||||
verbosity=args.verbosity,
|
||||
Index: Python-3.12.2/Lib/test/test_ensurepip.py
|
||||
Index: Python-3.12.4/Lib/test/test_ensurepip.py
|
||||
===================================================================
|
||||
--- Python-3.12.2.orig/Lib/test/test_ensurepip.py
|
||||
+++ Python-3.12.2/Lib/test/test_ensurepip.py
|
||||
--- Python-3.12.4.orig/Lib/test/test_ensurepip.py
|
||||
+++ Python-3.12.4/Lib/test/test_ensurepip.py
|
||||
@@ -105,6 +105,17 @@ class TestBootstrap(EnsurepipMixin, unit
|
||||
unittest.mock.ANY,
|
||||
)
|
||||
@ -143,11 +143,11 @@ Index: Python-3.12.2/Lib/test/test_ensurepip.py
|
||||
def test_bootstrapping_with_user(self):
|
||||
ensurepip.bootstrap(user=True)
|
||||
|
||||
Index: Python-3.12.2/Makefile.pre.in
|
||||
Index: Python-3.12.4/Makefile.pre.in
|
||||
===================================================================
|
||||
--- Python-3.12.2.orig/Makefile.pre.in
|
||||
+++ Python-3.12.2/Makefile.pre.in
|
||||
@@ -1912,7 +1912,7 @@ install: @FRAMEWORKINSTALLFIRST@ commoni
|
||||
--- Python-3.12.4.orig/Makefile.pre.in
|
||||
+++ Python-3.12.4/Makefile.pre.in
|
||||
@@ -1914,7 +1914,7 @@ install: @FRAMEWORKINSTALLFIRST@ commoni
|
||||
install|*) ensurepip="" ;; \
|
||||
esac; \
|
||||
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
|
||||
@ -156,7 +156,7 @@ Index: Python-3.12.2/Makefile.pre.in
|
||||
fi
|
||||
|
||||
.PHONY: altinstall
|
||||
@@ -1923,7 +1923,7 @@ altinstall: commoninstall
|
||||
@@ -1925,7 +1925,7 @@ altinstall: commoninstall
|
||||
install|*) ensurepip="--altinstall" ;; \
|
||||
esac; \
|
||||
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
|
||||
@ -165,9 +165,9 @@ Index: Python-3.12.2/Makefile.pre.in
|
||||
fi
|
||||
|
||||
.PHONY: commoninstall
|
||||
Index: Python-3.12.2/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
|
||||
Index: Python-3.12.4/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ Python-3.12.2/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
|
||||
+++ Python-3.12.4/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`.
|
||||
|
56
docs-docutils_014-Sphinx_420.patch
Normal file
56
docs-docutils_014-Sphinx_420.patch
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
Doc/tools/extensions/c_annotations.py | 6 +++++-
|
||||
Doc/tools/extensions/glossary_search.py | 12 ++++++++++--
|
||||
Doc/tools/extensions/pyspecific.py | 5 ++++-
|
||||
3 files changed, 19 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/Doc/tools/extensions/c_annotations.py
|
||||
+++ b/Doc/tools/extensions/c_annotations.py
|
||||
@@ -118,7 +118,11 @@ def add_annotations(app: Sphinx, doctree
|
||||
state = app.env.domaindata["c_annotations"]
|
||||
refcount_data = state["refcount_data"]
|
||||
stable_abi_data = state["stable_abi_data"]
|
||||
- for node in doctree.findall(addnodes.desc_content):
|
||||
+ try:
|
||||
+ findall = doctree.findall
|
||||
+ except AttributeError:
|
||||
+ findall = doctree.traverse
|
||||
+ for node in findall(addnodes.desc_content):
|
||||
par = node.parent
|
||||
if par["domain"] != "c":
|
||||
continue
|
||||
--- a/Doc/tools/extensions/glossary_search.py
|
||||
+++ b/Doc/tools/extensions/glossary_search.py
|
||||
@@ -30,8 +30,16 @@ def process_glossary_nodes(
|
||||
else:
|
||||
terms = app.env.glossary_terms = {}
|
||||
|
||||
- for node in doctree.findall(glossary):
|
||||
- for glossary_item in node.findall(nodes.definition_list_item):
|
||||
+ try:
|
||||
+ findall = doctree.findall
|
||||
+ except AttributeError:
|
||||
+ findall = doctree.traverse
|
||||
+ for node in findall(glossary):
|
||||
+ try:
|
||||
+ node_findall = node.findall
|
||||
+ except AttributeError:
|
||||
+ node_findall = node.traverse
|
||||
+ for glossary_item in node_findall(nodes.definition_list_item):
|
||||
term = glossary_item[0].astext()
|
||||
definition = glossary_item[-1]
|
||||
|
||||
--- a/Doc/tools/extensions/pyspecific.py
|
||||
+++ b/Doc/tools/extensions/pyspecific.py
|
||||
@@ -27,7 +27,10 @@ from sphinx.locale import _ as sphinx_ge
|
||||
from sphinx.util import logging
|
||||
from sphinx.util.docutils import SphinxDirective
|
||||
from sphinx.writers.text import TextWriter, TextTranslator
|
||||
-from sphinx.util.display import status_iterator
|
||||
+try:
|
||||
+ from sphinx.util.display import status_iterator
|
||||
+except ModuleNotFoundError:
|
||||
+ from sphinx.util import status_iterator
|
||||
|
||||
|
||||
ISSUE_URI = 'https://bugs.python.org/issue?@action=redirect&bpo=%s'
|
@ -5,7 +5,7 @@
|
||||
|
||||
--- a/Doc/using/configure.rst
|
||||
+++ b/Doc/using/configure.rst
|
||||
@@ -631,13 +631,11 @@ macOS Options
|
||||
@@ -640,13 +640,11 @@ macOS Options
|
||||
|
||||
See ``Mac/README.rst``.
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
Create a Python.framework rather than a traditional Unix install. Optional
|
||||
--- a/Misc/NEWS
|
||||
+++ b/Misc/NEWS
|
||||
@@ -13428,7 +13428,7 @@ C API
|
||||
@@ -13832,7 +13832,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
|
||||
|
@ -1,7 +1,7 @@
|
||||
python311-curses: curses _curses _curses_panel
|
||||
python311-dbm: dbm _dbm _gdbm
|
||||
python311-idle: idlelib
|
||||
python311-testsuite: test _ctypes_test _testbuffer _testcapi _testinternalcapi _testimportmultiple _testmultiphase xxlimited
|
||||
python311-tk: tkinter _tkinter
|
||||
python311-tools: turtledemo
|
||||
python311: sqlite3 readline _sqlite3 nis
|
||||
python312-curses: curses _curses
|
||||
python312-dbm: dbm _dbm _gdbm
|
||||
python312-idle: idlelib
|
||||
python312-testsuite: test _ctypes_test _testbuffer _testcapi _testclinic _testinternalcapi _testimportmultiple _testmultiphase _testsinglephase _xxinterpchannels _xxtestfuzz
|
||||
python312-tk: tkinter _tkinter
|
||||
python312-tools: turtledemo
|
||||
python312: sqlite3 readline _sqlite3 nis
|
||||
|
@ -2,11 +2,11 @@
|
||||
Makefile.pre.in | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
Index: Python-3.12.2/Makefile.pre.in
|
||||
Index: Python-3.12.4/Makefile.pre.in
|
||||
===================================================================
|
||||
--- Python-3.12.2.orig/Makefile.pre.in
|
||||
+++ Python-3.12.2/Makefile.pre.in
|
||||
@@ -1335,11 +1335,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
|
||||
--- Python-3.12.4.orig/Makefile.pre.in
|
||||
+++ Python-3.12.4/Makefile.pre.in
|
||||
@@ -1337,11 +1337,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
|
||||
$(DTRACE_OBJS) \
|
||||
$(srcdir)/Modules/getbuildinfo.c
|
||||
$(CC) -c $(PY_CORE_CFLAGS) \
|
||||
|
@ -1,3 +1,477 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 7 18:05:57 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
|
||||
|
||||
- Update to 3.12.5:
|
||||
- Tests
|
||||
- gh-59022: Add tests for pkgutil.extend_path(). Patch by
|
||||
Andreas Stocker.
|
||||
- gh-99242: os.getloadavg() may throw OSError when
|
||||
running regression tests under certain conditions (e.g.
|
||||
chroot). This error is now caught and ignored, since
|
||||
reporting load average is optional.
|
||||
- gh-121084: Fix test_typing random leaks. Clear typing ABC
|
||||
caches when running tests for refleaks (-R option): call
|
||||
_abc_caches_clear() on typing abstract classes and their
|
||||
subclasses. Patch by Victor Stinner.
|
||||
- gh-121160: Add a test for
|
||||
readline.set_history_length(). Note that this test may fail
|
||||
on readline libraries.
|
||||
- gh-121200: Fix test_expanduser_pwd2() of
|
||||
test_posixpath. Call getpwnam() to get pw_dir, since it
|
||||
can be different than getpwall() pw_dir. Patch by Victor
|
||||
Stinner.
|
||||
- gh-121188: When creating the JUnit XML file, regrtest
|
||||
now escapes characters which are invalid in XML, such
|
||||
as the chr(27) control character used in ANSI escape
|
||||
sequences. Patch by Victor Stinner.
|
||||
- Security
|
||||
- gh-121957: Fixed missing audit events around interactive
|
||||
use of Python, now also properly firing for python -i, as
|
||||
well as for python -m asyncio. The event in question is
|
||||
cpython.run_stdin.
|
||||
- gh-122133: Authenticate the socket connection for the
|
||||
socket.socketpair() fallback on platforms where AF_UNIX is
|
||||
not available like Windows.
|
||||
- Patch by Gregory P. Smith <greg@krypto.org> and Seth Larson
|
||||
<seth@python.org>. Reported by Ellie <el@horse64.org>
|
||||
- Library
|
||||
- gh-122744: Bump the version of pip bundled in ensurepip to
|
||||
version 24.2.
|
||||
- gh-122334: Fix crash when importing ssl after the main
|
||||
interpreter restarts.
|
||||
- gh-87320: In code.InteractiveInterpreter, handle exceptions
|
||||
caused by calling a non-default sys.excepthook(). Before,
|
||||
the exception bubbled up to the caller, ending the REPL.
|
||||
- gh-122400: Handle ValueErrors raised by os.stat() in
|
||||
filecmp.dircmp and filecmp.cmpfiles(). Patch by Bénédikt
|
||||
Tran.
|
||||
- gh-122311: Fix some error messages in pickle.
|
||||
- gh-121650: email headers with embedded newlines are
|
||||
now quoted on output. The generator will now refuse to
|
||||
serialize (write) headers that are unsafely folded or
|
||||
delimited; see verify_generated_headers. (Contributed by
|
||||
Bas Bloemsaat and Petr Viktorin in gh-121650; bsc#1228780,
|
||||
CVE-2024-6923).
|
||||
- gh-122332: Fixed segfault with asyncio.Task.get_coro() when
|
||||
using an eager task factory.
|
||||
- gh-122170: Handle ValueErrors raised by os.stat() in
|
||||
linecache. Patch by Bénédikt Tran.
|
||||
- gh-121723: Make logging.config.dictConfig() accept any
|
||||
object implementing the Queue public API. See the queue
|
||||
configuration section for details. Patch by Bénédikt Tran.
|
||||
- gh-82951: Serializing objects with complex __qualname__
|
||||
(such as unbound methods and nested classes) by name no
|
||||
longer involves serializing parent objects by value in
|
||||
pickle protocols < 4.
|
||||
- gh-120930: Fixed a bug introduced by gh-92081 that added an
|
||||
incorrect extra blank to encoded words occurring in wrapped
|
||||
headers.
|
||||
- gh-121474: Fix missing sanity check for parties arg in
|
||||
threading.Barrier constructor. Patch by Clinton Christian
|
||||
(pygeek).
|
||||
- gh-121025: Improve the __repr__() of
|
||||
functools.partialmethod. Patch by Bénédikt Tran.
|
||||
- gh-121018: Fixed issues where
|
||||
argparse.ArgumentParser.parse_args() did not honor
|
||||
exit_on_error=False. Based on patch by Ben Hsing.
|
||||
- gh-119614: Fix truncation of strings with embedded null
|
||||
characters in some internal operations in tkinter.
|
||||
- gh-120910: When reading installed files from an egg, use
|
||||
relative_to(walk_up=True) to honor files installed outside
|
||||
of the installation root.
|
||||
- gh-101830: Accessing the tkinter object’s string
|
||||
representation no longer converts the underlying Tcl object
|
||||
to a string on Windows.
|
||||
- gh-120811: Fix possible memory leak in
|
||||
contextvars.Context.run().
|
||||
- gh-120769: Make empty line in pdb repeats the last command
|
||||
even when the command is from cmdqueue.
|
||||
- gh-120732: Fix name passing to unittest.mock.Mock object
|
||||
when using unittest.mock.create_autospec().
|
||||
- gh-120495: Fix incorrect exception handling in Tab
|
||||
Nanny. Patch by Wulian233.
|
||||
- gh-120343: Fix column offset reporting for tokens that come
|
||||
after multiline f-strings in the tokenize module.
|
||||
- gh-119600: Fix unittest.mock.patch() to not read attributes
|
||||
of the target when new_callable is set. Patch by Robert
|
||||
Collins.
|
||||
- gh-120289: Fixed the use-after-free issue in cProfile by
|
||||
disallowing disable() and clear() in external timers.
|
||||
- gh-114053: Fix edge-case bug where typing.get_type_hints()
|
||||
would produce incorrect results if type parameters in a
|
||||
class scope were overridden by assignments in a class scope
|
||||
and from __future__ import annotations semantics were
|
||||
enabled. Patch by Alex Waygood.
|
||||
- gh-114053: Fix erroneous NameError when calling
|
||||
inspect.get_annotations() with eval_str=True` on a class
|
||||
that made use of PEP 695 type parameters in a module that
|
||||
had from __future__ import annotations at the top of the
|
||||
file. Patch by Alex Waygood.
|
||||
- gh-120268: Prohibit passing None to pure-Python
|
||||
datetime.date.fromtimestamp() to achieve consistency with
|
||||
C-extension implementation.
|
||||
- gh-120244: Fix memory leak in re.sub() when the replacement
|
||||
string contains backreferences.
|
||||
- gh-120211: Fix tkinter.ttk with Tcl/Tk 9.0.
|
||||
- gh-71587: Fix crash in C version of
|
||||
datetime.datetime.strptime() when called again on the
|
||||
restarted interpreter.
|
||||
- gh-117983: Defer the threading import in importlib.util
|
||||
until lazy loading is used.
|
||||
- gh-119698: Fix symtable.Class.get_methods() and document
|
||||
its behaviour. Patch by Bénédikt Tran.
|
||||
- gh-120121: Add concurrent.futures.InvalidStateError to
|
||||
module’s __all__.
|
||||
- gh-112672: Support building tkinter with Tcl 9.0.
|
||||
- gh-65454: unittest.mock.Mock.attach_mock() no longer
|
||||
triggers a call to a PropertyMock being attached.
|
||||
- gh-81936: help() and showtopic() methods now respect a
|
||||
configured output argument to pydoc.Helper and not use the
|
||||
pager in such cases. Patch by Enrico Tröger.
|
||||
- gh-119577: The DeprecationWarning emitted when testing
|
||||
the truth value of an xml.etree.ElementTree.Element now
|
||||
describes unconditionally returning True in a future
|
||||
version rather than raising an exception in Python 3.14.
|
||||
- gh-119506: Fix io.TextIOWrapper.write() method breaks
|
||||
internal buffer when the method is called again during
|
||||
flushing internal buffer.
|
||||
- gh-119189: When using the ** operator or pow() with
|
||||
Fraction as the base and an exponent that is not rational,
|
||||
a float, or a complex, the fraction is no longer converted
|
||||
to a float.
|
||||
- gh-105623: Fix performance degradation in
|
||||
logging.handlers.RotatingFileHandler. Patch by Craig
|
||||
Robson.
|
||||
- bpo-39324: Add mime type mapping for .md <-> text/markdown
|
||||
- IDLE
|
||||
- gh-122482: Change About IDLE to direct users to
|
||||
discuss.python.org instead of the now unused idle-dev email
|
||||
and mailing list.
|
||||
- gh-78889: Stop Shell freezes by blocking user access to
|
||||
non-method sys.stdout.shell attributes, which are all
|
||||
private.
|
||||
- gh-120104: Fix padding in config and search dialog windows
|
||||
in IDLE.
|
||||
- Documentation
|
||||
- gh-121749: Fix documentation for PyModule_AddObjectRef().
|
||||
- gh-120012: Clarify the behaviours of
|
||||
multiprocessing.Queue.empty() and
|
||||
multiprocessing.SimpleQueue.empty() on closed queues. Patch
|
||||
by Bénédikt Tran.
|
||||
- gh-121871: Documentation HTML varies from timestamp. Patch by
|
||||
Bernhard M. Wiedemann (bsc#1227999).
|
||||
- Core and Builtins
|
||||
- gh-122208: Dictionary watchers now only deliver the
|
||||
PyDict_EVENT_ADDED event when the insertion is in a known
|
||||
good state to succeed.
|
||||
- gh-122300: Preserve AST nodes for f-string with
|
||||
single-element format specifiers. Patch by Pablo Galindo
|
||||
- gh-122029: Emit c_call events in sys.setprofile() when a
|
||||
PyMethodObject pointing to a PyCFunction is called.
|
||||
- gh-122026: Fix a bug that caused the tokenizer to not
|
||||
correctly identify mismatched parentheses inside f-strings
|
||||
in some situations. Patch by Pablo Galindo
|
||||
- gh-121657: Improve the SyntaxError message if the user
|
||||
tries to use yield from outside a function.
|
||||
- gh-117482: Unexpected slot wrappers are no longer created
|
||||
for builtin static types in subinterpreters.
|
||||
- gh-121439: Allow tuples of length 20 in the freelist to be
|
||||
reused.
|
||||
- gh-121130: Fix f-strings with debug expressions in format
|
||||
specifiers. Patch by Pablo Galindo
|
||||
- gh-120722: Correctly set the bytecode position on return
|
||||
instructions within lambdas. Patch by Jelle Zijlstra.
|
||||
- gh-120384: Fix an array out of bounds crash in
|
||||
list_ass_subscript, which could be invoked via some
|
||||
specificly tailored input: including concurrent
|
||||
modification of a list object, where one thread assigns a
|
||||
slice and another clears it.
|
||||
- gh-120380: Fix Python implementation of pickle.Pickler for
|
||||
bytes and bytearray objects when using protocol version
|
||||
5. Patch by Bénédikt Tran.
|
||||
- gh-93691: Fix source locations of instructions generated
|
||||
for the iterator of a for statement.
|
||||
- gh-120198: Fix a crash when multiple threads read and write
|
||||
to the same __class__ of an object concurrently.
|
||||
- gh-120298: Fix use-after free in list_richcompare_impl
|
||||
which can be invoked via some specificly tailored evil
|
||||
input.
|
||||
- gh-119666: Fix a compiler crash in the case where two
|
||||
comprehensions in class scope both reference __class__.
|
||||
- bpo-24766: Fix handling of doc argument to subclasses of
|
||||
property.
|
||||
- Build
|
||||
- gh-120671: Fix failing configure tests due to a missing
|
||||
space when appending to CFLAGS.
|
||||
- gh-115983: Skip building test modules that must be built as
|
||||
shared under WASI.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 7 13:40:44 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
|
||||
|
||||
- %{profileopt} variable is set according to the variable
|
||||
%{do_profiling} (bsc#1227999)
|
||||
- Update bluez-devel-vendor.tar.xz
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 22 21:20:55 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
|
||||
|
||||
- Remove %suse_update_desktop_file macro as it is not useful any
|
||||
more.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 4 16:04:05 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
|
||||
|
||||
- Stop using %%defattr, it seems to be breaking proper executable
|
||||
attributes on /usr/bin/ scripts (bsc#1227378).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 2 10:33:52 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Add F00251-change-user-install-location.patch to make pip and
|
||||
modern tools install directly in /usr/local when used by the user.
|
||||
bsc#1225660
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 26 20:00:38 UTC 2024 - Matej Cepl <mcepl@suse.com>
|
||||
|
||||
- Add docs-docutils_014-Sphinx_420.patch make building docs
|
||||
compatible with Sphinx 4_2_0 and docutils 0.14.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 26 08:08:19 UTC 2024 - Andreas Schwab <schwab@suse.de>
|
||||
|
||||
- Update import_failed.map for python 3.12
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 24 12:14:52 UTC 2024 - Andreas Schwab <schwab@suse.de>
|
||||
|
||||
- Reenable test_multiprocessing_forkserver test_multiprocessing_spawn
|
||||
test_subprocess tests in qemu build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 7 10:44:55 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
|
||||
|
||||
- Update to 3.12.4:
|
||||
- Security
|
||||
- gh-118486: os.mkdir() on Windows now accepts mode of 0o700
|
||||
to restrict the new directory to the current user. This
|
||||
fixes CVE-2024-4030 affecting tempfile.mkdtemp() in
|
||||
scenarios where the base temporary directory is more
|
||||
permissive than the default (bsc#1227152).
|
||||
- gh-116741: Update bundled libexpat to 2.6.2
|
||||
- gh-117233: Detect BLAKE2, SHA3, Shake, & truncated SHA512
|
||||
support in the OpenSSL-ish libcrypto library at build
|
||||
time. This allows hashlib to be used with libraries that do
|
||||
not to support every algorithm that upstream OpenSSL does.
|
||||
- Core and Builtins
|
||||
- gh-119821: Fix execution of annotation scopes within
|
||||
classes when globals is set to a non-dict. Patch by Jelle
|
||||
Zijlstra.
|
||||
- gh-118263: Speed up os.path.normpath() with a direct C
|
||||
call.
|
||||
- gh-119311: Fix bug where names are unexpectedly mangled in
|
||||
the bases of generic classes.
|
||||
- gh-119395: Fix bug where names appearing after a generic
|
||||
class are mangled as if they are in the generic class.
|
||||
- gh-118507: Fix os.path.isfile() on Windows for pipes.
|
||||
- gh-119213: Non-builtin modules built with argument clinic
|
||||
were crashing if used in a subinterpreter before the main
|
||||
interpreter. The objects that were causing the problem by
|
||||
leaking between interpreters carelessly have been fixed.
|
||||
- gh-119011: Fixes type.__type_params__ to return an empty
|
||||
tuple instead of a descriptor.
|
||||
- gh-118997: Fix _Py_ClearImmortal() assertion: use
|
||||
_Py_IsImmortal() to tolerate reference count lower than
|
||||
_Py_IMMORTAL_REFCNT. Fix the assertion for the stable
|
||||
ABI, when a C extension is built with Python 3.11 or
|
||||
lower. Patch by Victor Stinner.
|
||||
- gh-118513: Fix incorrect UnboundLocalError when two
|
||||
comprehensions in the same function both reference the same
|
||||
name, and in one comprehension the name is bound while in
|
||||
the other it’s an implicit global.
|
||||
- gh-118164: Break a loop between the Python implementation
|
||||
of the decimal module and the Python code for integer
|
||||
to string conversion. Also optimize integer to string
|
||||
conversion for values in the range from 9_000 to 135_000
|
||||
decimal digits.
|
||||
- gh-118272: Fix bug where generator.close does not free the
|
||||
generator frame’s locals.
|
||||
- gh-116767: Fix crash in compiler on ‘async with’ that has
|
||||
many context managers.
|
||||
- gh-117894: Prevent agen.aclose() objects being re-used
|
||||
after .throw().
|
||||
- gh-117881: prevent concurrent access to an async generator
|
||||
via athrow().throw() or asend().throw()
|
||||
- gh-115874: Fixed a possible segfault during garbage
|
||||
collection of _asyncio.FutureIter objects
|
||||
- Library
|
||||
- gh-119819: Fix regression to allow logging configuration
|
||||
with multiprocessing queue types.
|
||||
- gh-89727: Fix issue with shutil.rmtree() where a
|
||||
RecursionError is raised on deep directory trees.
|
||||
- gh-89727: Partially fix issue with shutil.rmtree()
|
||||
where a RecursionError is raised on deep directory
|
||||
trees. A recursion error is no longer raised when
|
||||
rmtree.avoids_symlink_attacks is false.
|
||||
- gh-119118: Fix performance regression in the tokenize
|
||||
module by caching the line token attribute and calculating
|
||||
the column offset more efficiently.
|
||||
- gh-89727: Fix issue with os.fwalk() where a RecursionError
|
||||
was raised on deep directory trees by adjusting the
|
||||
implementation to be iterative instead of recursive.
|
||||
- gh-113892: Now, the method sock_connect of
|
||||
asyncio.ProactorEventLoop raises a ValueError if given
|
||||
socket is not in non-blocking mode, as well as in other
|
||||
loop implementations.
|
||||
- gh-119174: Fix high DPI causes turtledemo(turtle-graphics
|
||||
examples) windows blurry Patch by Wulian233 and Terry Jan
|
||||
Reedy
|
||||
- gh-118643: Fix an AttributeError in the email module
|
||||
when re-fold a long address list. Also fix more cases of
|
||||
incorrect encoding of the address separator in the address
|
||||
list.
|
||||
- gh-58933: Make pdb return to caller frame correctly when
|
||||
f_trace of the caller frame is not set
|
||||
- gh-118868: Fixed issue where kwargs were no longer passed
|
||||
to the logging handler QueueHandler
|
||||
- gh-118164: The Python implementation of the decimal
|
||||
module could appear to hang in relatively small power
|
||||
cases (like 2**117) if context precision was set to a
|
||||
very high value. A different method to check for exactly
|
||||
representable results is used now that doesn’t rely on
|
||||
computing 10**precision (which could be effectively too
|
||||
large to compute).
|
||||
- gh-118404: Fix inspect.signature() for non-comparable
|
||||
callables.
|
||||
- gh-118314: Fix an edge case in binascii.a2b_base64() strict
|
||||
mode, where excessive padding is not detected when no
|
||||
padding is necessary.
|
||||
- gh-118042: Fix an unraisable exception in
|
||||
telnetlib.Telnet.__del__() when the __init__() method was
|
||||
not called.
|
||||
- gh-118221: Fix a bug where sqlite3.iterdump() could fail if
|
||||
a custom row factory was used. Patch by Erlend Aasland.
|
||||
- gh-118013: Fix regression introduced in gh-103193 that
|
||||
meant that calling inspect.getattr_static() on an instance
|
||||
would cause a strong reference to that instance’s class to
|
||||
persist in an internal cache in the inspect module. This
|
||||
caused unexpected memory consumption if the class was
|
||||
dynamically created, the class held strong references to
|
||||
other objects which took up a significant amount of memory,
|
||||
and the cache contained the sole strong reference to the
|
||||
class. The fix for the regression leads to a slowdown
|
||||
in getattr_static(), but the function should still be
|
||||
significantly faster than it was in Python 3.11. Patch by
|
||||
Alex Waygood.
|
||||
- gh-90848: Fixed unittest.mock.create_autospec() to
|
||||
configure parent mock with keyword arguments.
|
||||
- gh-118168: Fix incorrect argument substitution when
|
||||
typing.Unpack is used with the builtin tuple. typing.Unpack
|
||||
now raises TypeError when used with certain invalid
|
||||
types. Patch by Jelle Zijlstra.
|
||||
- gh-118033: Fix dataclasses.dataclass() not creating a
|
||||
__weakref__ slot when subclassing typing.Generic.
|
||||
- gh-117535: Do not try to get the source line for made up
|
||||
file name “sys” in warnings.
|
||||
- gh-114053: Fix erroneous NameError when calling
|
||||
typing.get_type_hints() on a class that made use of PEP 695
|
||||
type parameters in a module that had from __future__ import
|
||||
annotations at the top of the file. Patch by Alex Waygood.
|
||||
- gh-117995: Don’t raise DeprecationWarning when a
|
||||
sequence of parameters is used to bind indexed, nameless
|
||||
placeholders. See also gh-100668.
|
||||
- gh-80361: Fix TypeError in
|
||||
email.message.Message.get_payload() when the charset is RFC
|
||||
2231 encoded.
|
||||
- gh-86650: Fix IndexError when parse some emails with
|
||||
invalid Message-ID (including one-off addresses generated
|
||||
by Microsoft Outlook).
|
||||
- gh-117691: Improve the error messages emitted by tarfile
|
||||
deprecation warnings relating to PEP 706. If a filter
|
||||
argument is not provided to extract() or extractall, the
|
||||
deprecation warning now points to the line in the user’s
|
||||
code where the relevant function was called. Patch by Alex
|
||||
Waygood.
|
||||
- gh-77102: site module now parses .pth file with UTF-8
|
||||
first, and locale encoding if UnicodeDecodeError
|
||||
happened. It supported only locale encoding before.
|
||||
- gh-117692: Fixes a bug when doctest.DocTestFinder was
|
||||
failing on wrapped builtin_function_or_method.
|
||||
- gh-117566: ipaddress.IPv6Address.is_loopback() will now
|
||||
return True for IPv4-mapped loopback addresses, i.e.
|
||||
addresses in the ::ffff:127.0.0.0/104 address space.
|
||||
- gh-117503: Fix support of non-ASCII user names in bytes
|
||||
paths in os.path.expanduser() on Posix.
|
||||
- gh-117313: Only treat '\n', '\r' and '\r\n' as line
|
||||
separators in re-folding the email messages. Preserve
|
||||
control characters '\v', '\f', '\x1c', '\x1d' and '\x1e'
|
||||
and Unicode line separators '\x85', '\u2028' and '\u2029'
|
||||
as is.
|
||||
- gh-113171 (bsc#1226448, CVE-2024-4032): Fixed various false
|
||||
positives and false negatives in
|
||||
ipaddress.IPv4Address.is_private (see these docs for details)
|
||||
ipaddress.IPv4Address.is_global
|
||||
ipaddress.IPv6Address.is_private
|
||||
ipaddress.IPv6Address.is_global
|
||||
Also in the corresponding ipaddress.IPv4Network and
|
||||
ipaddress.IPv6Network attributes.
|
||||
- gh-103956: Fix lack of newline characters in trace module
|
||||
output when line tracing is enabled but source code line
|
||||
for current frame is not available.
|
||||
- gh-92081: Fix missing spaces in email headers when the
|
||||
spaces are mixed with encoded 8-bit characters.
|
||||
- gh-103194: Prepare Tkinter for C API changes in Tcl 8.7/9.0
|
||||
to avoid _tkinter.Tcl_Obj being unexpectedly returned
|
||||
instead of bool, str, bytearray, or int.
|
||||
- gh-87106: Fixed handling in inspect.Signature.bind() of
|
||||
keyword arguments having the same name as positional-only
|
||||
arguments when a variadic keyword argument (e.g. **kwargs)
|
||||
is present.
|
||||
- bpo-45767: Fix integer conversion in os.major(),
|
||||
os.minor(), and os.makedev(). Support device numbers larger
|
||||
than 2**63-1. Support non-existent device number (NODEV).
|
||||
- bpo-40943: Fix several IndexError when parse emails with
|
||||
truncated Message-ID, address, routes, etc, e.g. example@.
|
||||
- bpo-30988: Fix parsing of emails with invalid address
|
||||
headers having a leading or trailing dot. Patch by tsufeki.
|
||||
- gh-67693: Fix urllib.parse.urlunparse() and
|
||||
urllib.parse.urlunsplit() for URIs with path starting with
|
||||
multiple slashes and no authority. Based on patch by Ashwin
|
||||
Ramaswami.
|
||||
- bpo-15010: unittest.TestLoader.discover() now saves the
|
||||
original value of unittest.TestLoader._top_level_dir and
|
||||
restores it at the end of the call.
|
||||
- Documentation
|
||||
- gh-117928: The minimum Sphinx version required for the
|
||||
documentation is now 6.2.1.
|
||||
- gh-91565: Changes to documentation files and config
|
||||
outputs to reflect the new location for reporting bugs -
|
||||
i.e. GitHub rather than bugs.python.org.
|
||||
- Tests
|
||||
- gh-119050: regrtest test runner: Add XML support to the
|
||||
refleak checker (-R option). Patch by Victor Stinner.
|
||||
- IDLE
|
||||
- bpo-34774: Use user-selected color theme for Help => IDLE
|
||||
Doc.
|
||||
- C API
|
||||
- gh-119585: Fix crash when a thread state that was
|
||||
created by PyGILState_Ensure() calls a destructor that
|
||||
during PyThreadState_Clear() that calls back into
|
||||
PyGILState_Ensure() and PyGILState_Release(). This
|
||||
might occur when in the free-threaded build or when
|
||||
using thread-local variables whose destructors call
|
||||
PyGILState_Ensure().
|
||||
- gh-117534: Improve validation logic in the C implementation
|
||||
of datetime.fromisoformat() to better handle invalid
|
||||
years. Patch by Vlad Efanov.
|
||||
- Updated patches:
|
||||
- CVE-2023-6597-TempDir-cleaning-symlink.patch
|
||||
- bpo-31046_ensurepip_honours_prefix.patch
|
||||
- fix_configure_rst.patch
|
||||
- python-3.3.0b1-fix_date_time_compiler.patch
|
||||
- subprocess-raise-timeout.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 15 10:31:32 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
@ -28,7 +502,7 @@ Wed Apr 10 14:41:07 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
|
||||
- gh-114572: ssl.SSLContext.cert_store_stats() and
|
||||
ssl.SSLContext.get_ca_certs() now correctly lock access to
|
||||
the certificate store, when the ssl.SSLContext is shared
|
||||
across multiple threads.
|
||||
across multiple threads (bsc#1226447, CVE-2024-0397).
|
||||
- Core and Builtins
|
||||
- gh-109120: Added handle of incorrect star expressions, e.g
|
||||
f(3, *). Patch by Grigoryev Semyon
|
||||
|
@ -36,6 +36,12 @@
|
||||
%bcond_without general
|
||||
%endif
|
||||
|
||||
%if 0%{?do_profiling}
|
||||
%bcond_without profileopt
|
||||
%else
|
||||
%bcond_with profileopt
|
||||
%endif
|
||||
|
||||
%define python_pkg_name python312
|
||||
%if "%{python_pkg_name}" == "%{primary_python}"
|
||||
%define primary_interpreter 1
|
||||
@ -103,9 +109,8 @@
|
||||
# pyexpat.cpython-35m-armv7-linux-gnueabihf
|
||||
# _md5.cpython-38m-x86_64-linux-gnu.so
|
||||
%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.3
|
||||
Version: 3.12.5
|
||||
Release: 0
|
||||
Summary: Python 3 Interpreter
|
||||
License: Python-2.0
|
||||
@ -136,6 +141,13 @@ Source99: python.keyring
|
||||
# They are listed here to work around missing functionality in rpmbuild,
|
||||
# which would otherwise exclude them from distributed src.rpm files.
|
||||
Source100: PACKAGING-NOTES
|
||||
# PATCH-FEATURE-UPSTREAM F00251-change-user-install-location.patch bsc#[0-9]+ mcepl@suse.com
|
||||
# Fix installation in /usr/local (boo#1071941), originally from Fedora
|
||||
# https://src.fedoraproject.org/rpms/python3.12/blob/rawhide/f/00251-change-user-install-location.patch
|
||||
# Set values of prefix and exec_prefix in distutils install command
|
||||
# to /usr/local if executable is /usr/bin/python* and RPM build
|
||||
# is not detected to make pip and distutils install into separate location
|
||||
Patch02: F00251-change-user-install-location.patch
|
||||
# support finding packages in /usr/local, install to /usr/local by default
|
||||
Patch07: python-3.3.0b1-localpath.patch
|
||||
# replace DATE, TIME and COMPILER by fixed definitions to aid reproducible builds
|
||||
@ -171,6 +183,9 @@ Patch39: CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
|
||||
# PATCH-FIX-OPENSUSE fix-test-recursion-limit-15.6.patch gh#python/cpython#115083
|
||||
# Skip some failing tests in test_compile for i586 arch in 15.6.
|
||||
Patch40: fix-test-recursion-limit-15.6.patch
|
||||
# PATCH-FIX-SLE docs-docutils_014-Sphinx_420.patch bsc#[0-9]+ mcepl@suse.com
|
||||
# related to gh#python/cpython#119317
|
||||
Patch41: docs-docutils_014-Sphinx_420.patch
|
||||
BuildRequires: autoconf-archive
|
||||
BuildRequires: automake
|
||||
BuildRequires: fdupes
|
||||
@ -212,7 +227,6 @@ BuildRequires: gettext
|
||||
BuildRequires: readline-devel
|
||||
BuildRequires: sqlite-devel
|
||||
BuildRequires: timezone
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: pkgconfig(ncurses)
|
||||
BuildRequires: pkgconfig(tk)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
@ -428,6 +442,9 @@ other applications.
|
||||
%setup -q -n %{tarname}
|
||||
%autopatch -p1
|
||||
|
||||
# Fix devhelp doc build gh#python/cpython#120150
|
||||
echo "master_doc = 'contents'" >> Doc/conf.py
|
||||
|
||||
# drop Autoconf version requirement
|
||||
sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac
|
||||
|
||||
@ -551,7 +568,12 @@ EXCLUDE="$EXCLUDE test_faulthandler"
|
||||
%endif
|
||||
# some tests break in QEMU
|
||||
%if 0%{?qemu_user_space_build}
|
||||
EXCLUDE="$EXCLUDE test_faulthandler test_multiprocessing_forkserver test_multiprocessing_spawn test_os test_posix test_signal test_socket test_subprocess"
|
||||
# test_faulthandler: test_register_chain is racy
|
||||
# test_os: test_fork_warns_when_non_python_thread_exists fails
|
||||
# test_posix: qemu does not support fexecve in test_fexecve
|
||||
# test_signal: qemu crashes in test_stress_modifying_handlers
|
||||
# test_socket: many CmsgTrunc tests fail
|
||||
EXCLUDE="$EXCLUDE test_faulthandler test_os test_posix test_signal test_socket"
|
||||
%endif
|
||||
|
||||
# This test (part of test_uuid) requires real network interfaces
|
||||
@ -663,7 +685,6 @@ done
|
||||
cp %{SOURCE19} idle%{python_version}.desktop
|
||||
sed -i -e 's:idle3:idle%{python_version}:g' idle%{python_version}.desktop
|
||||
install -m 644 -D -t %{buildroot}%{_datadir}/applications idle%{python_version}.desktop
|
||||
%suse_update_desktop_file idle%{python_version}
|
||||
|
||||
cp %{SOURCE20} idle%{python_version}.appdata.xml
|
||||
sed -i -e 's:idle3.desktop:idle%{python_version}.desktop:g' idle%{python_version}.appdata.xml
|
||||
@ -762,6 +783,9 @@ LD_LIBRARY_PATH=. ./python -O -c "from py_compile import compile; compile('$FAIL
|
||||
cd $FAILDIR
|
||||
while read package modules; do
|
||||
for module in $modules; do
|
||||
%if 0%{?suse_version} >= 1599
|
||||
test $module = nis && continue
|
||||
%endif
|
||||
ln import_failed.py $module.py
|
||||
pushd __pycache__
|
||||
for i in import_failed*; do
|
||||
@ -776,23 +800,19 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
|
||||
|
||||
%if %{with general}
|
||||
%files -n %{python_pkg_name}-tk
|
||||
%defattr(644, root, root, 755)
|
||||
%{sitedir}/tkinter
|
||||
%{dynlib _tkinter}
|
||||
|
||||
%files -n %{python_pkg_name}-curses
|
||||
%defattr(644, root, root, 755)
|
||||
%{sitedir}/curses
|
||||
%{dynlib _curses}
|
||||
|
||||
%files -n %{python_pkg_name}-dbm
|
||||
%defattr(644, root, root, 755)
|
||||
%{sitedir}/dbm
|
||||
%{dynlib _dbm}
|
||||
%{dynlib _gdbm}
|
||||
|
||||
%files -n %{python_pkg_name}
|
||||
%defattr(644, root, root, 755)
|
||||
%dir %{sitedir}
|
||||
%dir %{sitedir}/lib-dynload
|
||||
%{sitedir}/sqlite3
|
||||
@ -803,7 +823,6 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
|
||||
%endif
|
||||
|
||||
%files -n %{python_pkg_name}-idle
|
||||
%defattr(644, root, root, 755)
|
||||
%{sitedir}/idlelib
|
||||
%dir %{_sysconfdir}/idle%{python_version}
|
||||
%config %{_sysconfdir}/idle%{python_version}/*
|
||||
@ -840,11 +859,9 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
|
||||
%postun -n libpython%{so_version} -p /sbin/ldconfig
|
||||
|
||||
%files -n libpython%{so_version}
|
||||
%defattr(644, root,root)
|
||||
%{_libdir}/libpython%{python_abi}.so.%{so_major}.%{so_minor}
|
||||
|
||||
%files -n %{python_pkg_name}-tools
|
||||
%defattr(644, root, root, 755)
|
||||
%{sitedir}/turtledemo
|
||||
%if %{primary_interpreter}
|
||||
%{_bindir}/2to3
|
||||
@ -853,7 +870,6 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
|
||||
%doc %{_docdir}/%{name}/Tools
|
||||
|
||||
%files -n %{python_pkg_name}-devel
|
||||
%defattr(644, root, root, 755)
|
||||
%{_libdir}/libpython%{python_abi}.so
|
||||
%if %{primary_interpreter}
|
||||
%{_libdir}/libpython3.so
|
||||
@ -861,7 +877,6 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
|
||||
%{_libdir}/pkgconfig/*
|
||||
%{_includedir}/python%{python_abi}
|
||||
%{sitedir}/config-%{python_abi}-*
|
||||
%defattr(755, root, root)
|
||||
%{_bindir}/python%{python_abi}-config
|
||||
%if %{primary_interpreter}
|
||||
%{_bindir}/python3-config
|
||||
@ -874,7 +889,6 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
|
||||
%{_datadir}/gdb/auto-load/%{_libdir}/libpython%{python_abi}.so.%{so_major}.%{so_minor}-gdb.py
|
||||
|
||||
%files -n %{python_pkg_name}-testsuite
|
||||
%defattr(644, root, root, 755)
|
||||
%{sitedir}/test
|
||||
# %%{sitedir}/*/test
|
||||
# %%{sitedir}/*/tests
|
||||
@ -893,7 +907,6 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
|
||||
%dir %{sitedir}/tkinter
|
||||
|
||||
%files -n %{python_pkg_name}-base
|
||||
%defattr(644, root, root, 755)
|
||||
# docs
|
||||
%dir %{_docdir}/%{name}
|
||||
%doc %{_docdir}/%{name}/README.rst
|
||||
|
@ -2,11 +2,11 @@
|
||||
Lib/test/test_subprocess.py | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: Python-3.12.2/Lib/test/test_subprocess.py
|
||||
Index: Python-3.12.4/Lib/test/test_subprocess.py
|
||||
===================================================================
|
||||
--- Python-3.12.2.orig/Lib/test/test_subprocess.py
|
||||
+++ Python-3.12.2/Lib/test/test_subprocess.py
|
||||
@@ -281,7 +281,8 @@ class ProcessTestCase(BaseTestCase):
|
||||
--- Python-3.12.4.orig/Lib/test/test_subprocess.py
|
||||
+++ Python-3.12.4/Lib/test/test_subprocess.py
|
||||
@@ -280,7 +280,8 @@ class ProcessTestCase(BaseTestCase):
|
||||
"time.sleep(3600)"],
|
||||
# Some heavily loaded buildbots (sparc Debian 3.x) require
|
||||
# this much time to start and print.
|
||||
|
Loading…
Reference in New Issue
Block a user