Package: python3.14 / 3.14.0~rc1-1

Metadata

Package Version Patches format
python3.14 3.14.0~rc1-1 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
deb locations.diff | (download)

Lib/pydoc.py | 4 4 + 0 - 0 !
Misc/python.man | 2 1 + 1 - 0 !
2 files changed, 5 insertions(+), 1 deletion(-)

 debian: adjust locations of directories to debian policy
distutils install layout.diff | (download)

Lib/_distutils_system_mod.py | 164 164 + 0 - 0 !
Lib/pydoc.py | 1 1 + 0 - 0 !
Lib/site.py | 23 21 + 2 - 0 !
Lib/test/test_site.py | 10 5 + 5 - 0 !
4 files changed, 191 insertions(+), 7 deletions(-)

 debian: add a distutils option --install-layout=deb
 This option:
  - installs into $prefix/dist-packages instead of $prefix/site-packages.
  - doesn't encode the python version into the egg name.
 .
 We install modules into dist-packages so that a local admin can build their
 own cpython from source, and they won't see each others' installed modules.
 This keeps Debian packaged applications working correctly, isolated from the
 local cpython.
 .
 Customize site.py to import from Debian's dist-packages layout.

sysconfig debian schemes.diff | (download)

Lib/sysconfig/__init__.py | 41 38 + 3 - 0 !
Lib/test/test_sysconfig.py | 2 1 + 1 - 0 !
2 files changed, 39 insertions(+), 4 deletions(-)

---
tkinter import.diff | (download)

Lib/tkinter/__init__.py | 5 4 + 1 - 0 !
Lib/turtle.py | 5 4 + 1 - 0 !
2 files changed, 8 insertions(+), 2 deletions(-)

 suggest installation of python3-tk package
 We split Tk out into a separate binary package. Help users who try to import
 it, without it installed.

gdbm import.diff | (download)

Lib/dbm/gnu.py | 5 4 + 1 - 0 !
Lib/dbm/ndbm.py | 5 4 + 1 - 0 !
2 files changed, 8 insertions(+), 2 deletions(-)

 debian: suggest installation of python3-gdbm package
 We split gdbm out into a separate binary package. Help users who try to import
 it, without it installed.

link opt.diff | (download)

configure.ac | 6 3 + 3 - 0 !
1 file changed, 3 insertions(+), 3 deletions(-)

 call the linker with -o1 -bsymbolic-functions
 We do symbolic-functions as policy in Ubuntu.

 Could be forwarded in the form of a configure flag.

setup modules.diff | (download)

Modules/Setup | 16 5 + 11 - 0 !
1 file changed, 5 insertions(+), 11 deletions(-)

 configure linking for c-library wrapping modules
 Use the system C libraries, rather than sources bundled with cPython, or
 anything from /usr/local.
 This is for performance, to avoid unnecessary C extension imports at start-up.

profiled build.diff | (download)

Makefile.pre.in | 11 10 + 1 - 0 !
1 file changed, 10 insertions(+), 1 deletion(-)

 ignore errors in the profile task.
 This is a rewrite of the profile task. We run the tests sequentially, and only
 once at a time.

langpack gettext.diff | (download)

Lib/gettext.py | 15 15 + 0 - 0 !
1 file changed, 15 insertions(+)

 ubuntu: support separate langpack packages
 Support alternative gettext tree in /usr/share/locale-langpack; if a file is
 present in both trees, prefer the newer one.
 Ubuntu collates gettext from packages on the DVD into language packs, to
 reduce disk-space on the image.
 This is Ubuntu-Specific.

disable sem check.diff | (download)

configure.ac | 13 9 + 4 - 0 !
1 file changed, 9 insertions(+), 4 deletions(-)

 debian: don't autodetect whether semephores are present
 Assume working semaphores, don't rely on running kernel for the check.

 This is not something that's approriate for us to detect at build time.
 Potentially forwadable, if redesigned.

multiarch.diff | (download)

Lib/sysconfig/__init__.py | 6 6 + 0 - 0 !
Makefile.pre.in | 1 1 + 0 - 0 !
2 files changed, 7 insertions(+)

 debian: configure multiarch tuple.
 1. Expose multiarchsubdir in sysconfig.
    Some packages in Debian are depending on this.
 2. Install the .pc file into the multiarch path.

ensurepip disabled.diff | (download)

Lib/ensurepip/__init__.py | 33 33 + 0 - 0 !
Lib/venv/__init__.py | 22 20 + 2 - 0 !
2 files changed, 53 insertions(+), 2 deletions(-)

 disable ensurepip for the system installation
 We have a python3-pip package, for users who want pip.
 We just need ensurepip to seed pip in virtual environments.

destshared location.diff | (download)

Makefile.pre.in | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 keep the lib-dynload dir in the same place when configuring with
 --libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
 The C extensions already have multiarch paths in their filenames.

min tempfile.diff | (download)

Lib/tempfile.py | 195 193 + 2 - 0 !
1 file changed, 193 insertions(+), 2 deletions(-)

 debian: degrade tempfile gracefully without shutil
 python3.X-minimal includes tempfile but not shutil. Use a fallback racy
 rmtree, if shutil can't be imported.

 This needs constant maintainance, as the code is a copy.

min lib argparse.diff | (download)

Lib/argparse.py | 13 12 + 1 - 0 !
1 file changed, 12 insertions(+), 1 deletion(-)

 debian: degrade argparse gracefully without gettext
 python3.X-minimal includes argparse but not gettext. Use a fallback noop
 gettext, if it can't be imported.

min argparse no shutil.diff | (download)

Lib/argparse.py | 9 6 + 3 - 0 !
1 file changed, 6 insertions(+), 3 deletions(-)

 debian: degrade argparse gracefully without shutil
 python3.X-minimal includes argparse but not shutil. Use a fixed terminal
 width, if shutil can't be imported.

min ntpath import.diff | (download)

Lib/pathlib/__init__.py | 4 3 + 1 - 0 !
1 file changed, 3 insertions(+), 1 deletion(-)

 ntpath is not in python-minimal, replace module-level imports with
 local imports in functions that actually require ntpath.
min compileall.diff | (download)

Lib/compileall.py | 11 7 + 4 - 0 !
1 file changed, 7 insertions(+), 4 deletions(-)

 avoid tripping over the multiprocessing import in compileall
 Minimal includes compileall but not multiprocessing.
min pyrepl import.dff | (download)

Modules/main.c | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

 _pyrepl (and its dependencies) are not shipped in -minimal
 Fall back to the basic REPL.
makefile bootstrap.diff | (download)

Makefile.pre.in | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
test freeze strip libdir.diff | (download)

Tools/freeze/test/freeze.py | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 [patch] strip absolute --libdir paths from configure args in
 test_freeze

We are trying to install into a prefix, any absolute path would not
necessarily be writeable. e.g. if Python is configured with
--libdir=/usr/lib/$(MULTIARCH)/ during a Debian build.

stable abi multiarch.diff | (download)

Doc/c-api/stable.rst | 3 2 + 1 - 0 !
Makefile.pre.in | 1 1 + 0 - 0 !
Misc/NEWS.d/next/C_API/2024-08-12-09-48-04.gh-issue-122931.QwHc2l.rst | 2 2 + 0 - 0 !
Python/dynload_shlib.c | 3 3 + 0 - 0 !
4 files changed, 8 insertions(+), 1 deletion(-)

 [patch 1/3] gh-122917 allow stable api extensions to include a
 multiarch tuple in the filename

This permits stable ABI extensions for multiple architectures to be
co-installed into the same directory, without clashing with each other,
the same way (non-stable ABI) regular extensions can.

It is listed below the current .abi3 suffix because setuptools will
select the first suffix containing .abi3, as the target filename.
We do this to protect older Python versions predating this patch.

gchead alignment.diff | (download)

Include/Python.h | 13 0 + 13 - 0 !
Include/cpython/unicodeobject.h | 120 59 + 61 - 0 !
Include/internal/pycore_interp_structs.h | 3 2 + 1 - 0 !
Include/object.h | 9 8 + 1 - 0 !
Include/pymacro.h | 82 52 + 30 - 0 !
Misc/NEWS.d/next/Build/2024-12-04-10-00-35.gh-issue-127545.t0THjE.rst | 1 1 + 0 - 0 !
6 files changed, 122 insertions(+), 106 deletions(-)

 [patch] gh-127545: add _py_aligned_def(n, t) and use it for pyobject
 (GH-135209)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* Replace _Py_ALIGN_AS(V) by _Py_ALIGNED_DEF(N, T)

This is now a common faade for the various `_Alignas` alternatives,
which behave in interesting ways -- see the source comment.

The new macro (and MSVC's `__declspec(align)`) should not be used
on a variable/member declaration that includes a struct declaraton.
A workaround is to separate the struct definition.
Do that for `PyASCIIObject.state`.

* Specify minimum PyGC_Head and PyObject alignment

As documented in InternalDocs/garbage_collector.md, the garbage collector
stores flags in the least significant two bits of the _gc_prev pointer
in struct PyGC_Head. Consequently, this pointer is only capable of storing
a location that's aligned to a 4-byte boundary.

Encode this requirement using _Py_ALIGNED_DEF.

This patch fixes a segfault in m68k, which was previously investigated
by Adrian Glaubitz here:
https://lists.debian.org/debian-68k/2024/11/msg00020.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1087600
Original patch (using the GCC-only Py_ALIGNED) by Finn Thain.

Co-authored-by: Finn Thain <fthain@linux-m68k.org>
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>

man page fixes.diff | (download)

Misc/python.man | 36 19 + 17 - 0 !
1 file changed, 19 insertions(+), 17 deletions(-)

 [patch] manpage formatting tweaks

Following on from GH-132291 this is the second part of the patch from
https://bugs.debian.org/1101406

This tweaks the formatting of a few bits of the manpage.

Add Debian specific documentation path to IDLE menu.diff | (download)

Lib/idlelib/editor.py | 10 9 + 1 - 0 !
1 file changed, 9 insertions(+), 1 deletion(-)

 add debian specific documentation path to idle menu

sphinx no fail on warning.diff | (download)

Doc/Makefile | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
min difflib import.diff | (download)

Lib/argparse.py | 8 6 + 2 - 0 !
1 file changed, 6 insertions(+), 2 deletions(-)

---
min traceback.diff | (download)

Lib/traceback.py | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 debian: degrade traceback gracefully without codeop
 python3.X-minimal includes traceback but not codeop.
 We don't need suggestions in python3.X-minimal.