Your message dated Sun, 18 Oct 2026 20:44:13 +0000
with message-id <[email protected]>
and subject line Bug#1147234: fixed in poetry 2.3.4-3
has caused the Debian Bug report #1147234,
regarding poetry: FTBFS against python 3.15rc2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1147234: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1147234
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:poetry
Version: 2.3.4-2
User: [email protected]
Usertags: python3.15
Tags: patch, ftbfs, forky, sid
Severity: important

Hi!

While rebuilding the python related packages against the Python 3.15rc2
version we found that poetry fails to build from source [1].

To fix it, I've added a backport of upstream commit f47e6b2f: [PATCH]
Fix MetadataNotFound from importlib.metadata on Python 3.15+ (#10860)
[2].

I've applied the upstream fix in the sandbox [3] to verify that it
builds successfully, please consider applying the patch to support the
upcoming 3.15 version.

BTW, upstream is already at 2.4.3, which includes this fix and other
fixes. Upgrading to the latest upstream version would also fix this
issue.

Setting the severity to important for now. Once Python 3.15 is released,
it will be added to python3-defaults and this bug will become release
critical.

Happy hacking,

[1]: https://debusine.debian.net/debian/r-python-python3.15/artifact/4524773/
[2]: 
https://github.com/python-poetry/poetry/commit/f47e6b2f73e6ea6e1f81fa8963ec0fde30815345
[3]: https://debusine.debian.net/debian/r-python-python3.15/

--
"Can you imagine what I would do if I could do all I can?" -- Sun Tzu
Saludos /\/\ /\ >< `/
From f47e6b2f73e6ea6e1f81fa8963ec0fde30815345 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lum=C3=ADr=20=27Frenzy=27=20Balhar?= <[email protected]>
Date: Fri, 1 May 2026 06:41:17 +0200
Subject: [PATCH] Fix MetadataNotFound from importlib.metadata on Python 3.15+
 (#10860)

In Python 3.15, importlib.metadata raises MetadataNotFound
(a FileNotFoundError subclass) when a dist-info directory has no
METADATA file. Previously, it returned None.
---
 src/poetry/repositories/installed_repository.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/poetry/repositories/installed_repository.py b/src/poetry/repositories/installed_repository.py
index 9a28ada0..81cf888c 100644
--- a/src/poetry/repositories/installed_repository.py
+++ b/src/poetry/repositories/installed_repository.py
@@ -270,7 +270,12 @@ class InstalledRepository(Repository):
                 if path in skipped:
                     continue
 
-                dist_metadata = distribution.metadata  # type: ignore[attr-defined]
+                try:
+                    dist_metadata = distribution.metadata  # type: ignore[attr-defined]
+                except FileNotFoundError:
+                    # Python 3.15+ raises MetadataNotFound (a FileNotFoundError subclass)
+                    # when a dist-info directory has no METADATA file
+                    dist_metadata = None
                 name = (
                     dist_metadata.get("name")  # type: ignore[attr-defined]
                     if dist_metadata
-- 
Index: poetry/tests/console/commands/debug/test_info.py
===================================================================
--- poetry.orig/tests/console/commands/debug/test_info.py
+++ poetry/tests/console/commands/debug/test_info.py
@@ -63,7 +63,7 @@ Platform:   darwin
 OS:         posix
 Python:     {".".join(str(v) for v in sys.version_info[:3])}
 Path:       {Path("/base/prefix")}
-Executable: python
+Executable: python3
 """
 
     assert tester.io.fetch_output() == expected
Index: poetry/tests/console/test_application_command_not_found.py
===================================================================
--- poetry.orig/tests/console/test_application_command_not_found.py
+++ poetry/tests/console/test_application_command_not_found.py
@@ -21,7 +21,6 @@ def tester() -> ApplicationTester:
 @pytest.mark.parametrize(
     ("command", "suggested"),
     [
-        ("x", None),
         ("en", ["env activate", "env info", "env list", "env remove", "env use"]),
         ("sou", ["source add", "source remove", "source show"]),
     ],
Index: poetry/tests/utils/env/python/test_manager.py
===================================================================
--- poetry.orig/tests/utils/env/python/test_manager.py
+++ poetry/tests/utils/env/python/test_manager.py
@@ -137,7 +137,7 @@ def test_get_by_name_version(
 
 
 def test_get_by_name_python(without_mocked_findpython: None) -> None:
-    python = Python.get_by_name("python")
+    python = Python.get_by_name("python3")
     assert python is not None
     assert python.version.major == 3
     assert python.version.minor == sys.version_info.minor
Index: poetry/tests/utils/env/test_env.py
===================================================================
--- poetry.orig/tests/utils/env/test_env.py
+++ poetry/tests/utils/env/test_env.py
@@ -464,7 +464,7 @@ def test_env_finds_fallback_executables_
         venv._bin_dir.joinpath(major_executable).unlink(missing_ok=True)
         venv._bin_dir.joinpath(major_pip_executable).unlink(missing_ok=True)
 
-        expected_executable = default_executable
+        expected_executable = default_executable + "3"
         expected_pip_executable = default_pip_executable
 
     else:
Index: poetry/tests/utils/test_python_manager.py
===================================================================
--- poetry.orig/tests/utils/test_python_manager.py
+++ poetry/tests/utils/test_python_manager.py
@@ -61,7 +61,7 @@ def test_python_get_preferred_default(co
     python = Python.get_preferred_python(config)
 
     assert python.executable.resolve() == Path(sys.executable).resolve()
-    assert python.version == python_version
+    assert python.version in {python_version, Python.get_system_python().version}
 
 
 def test_get_preferred_python_use_poetry_python_disabled(

--- End Message ---
--- Begin Message ---
Source: poetry
Source-Version: 2.3.4-3
Done: Nico Della Torre <[email protected]>

We believe that the bug you reported is fixed in the latest version of
poetry, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Nico Della Torre <[email protected]> (supplier of updated poetry package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Sun, 18 Oct 2026 00:43:18 +0200
Source: poetry
Architecture: source
Version: 2.3.4-3
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Nico Della Torre <[email protected]>
Closes: 1147234
Changes:
 poetry (2.3.4-3) unstable; urgency=medium
 .
   * Team upload.
   * Backport upstream commit f47e6b2f: handle importlib.metadata raising
     MetadataNotFound for a dist-info directory without METADATA on
     Python 3.15+ (Closes: #1147234)
   * debian/patches/fix-tests.patch: accept the version reported by
     Python.get_system_python() in test_python_get_preferred_default,
     which drops the pre-release suffix (e.g. 3.15.0rc1).
Checksums-Sha1:
 5c838707cedc79461acac15a6208dfbbacc17f25 3349 poetry_2.3.4-3.dsc
 41bafde0e5dcc46ab9f63c6412af025b59b8bec2 10732 poetry_2.3.4-3.debian.tar.xz
 21d8e52d2ccbc2f8a38d6cc7191b86c155c6a0cc 10218 poetry_2.3.4-3_source.buildinfo
Checksums-Sha256:
 2b3e4a47198a80ba0dc1db7f22fdaf0c324d5399cd8d056300b404fc4bf63465 3349 
poetry_2.3.4-3.dsc
 3e265b7d9d79ec9ed07259c3b22a22e5cbf9806256637bf5b5d87a18927f4a7b 10732 
poetry_2.3.4-3.debian.tar.xz
 cfad1ff7dbb790b984c568c464508d7164a101ea24a8c5fdaa608d3c41fc759a 10218 
poetry_2.3.4-3_source.buildinfo
Files:
 48ae121a99318157e44a2a141b524183 3349 python optional poetry_2.3.4-3.dsc
 2ad38edc5ea11a70ba41529fe7bb9777 10732 python optional 
poetry_2.3.4-3.debian.tar.xz
 f056c48bd1cabeecaacdeef82b93e6c1 10218 python optional 
poetry_2.3.4-3_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEj23hBDd/OxHnQXSHMfMURUShdBoFAmrVJqEACgkQMfMURUSh
dBpneQ//ZkkJhUjJcgKogzxdlPKwlDngt5lRRnBBkR21sSDT6Laid/fR0qyYthsy
R3HkbvfqqxjsXLCgtSVjVPoBlwSNEZi9mupkVq/ikX4QhzkkXW9kGN0puUekn02I
c6/a2vjDTEAj+PVfw4u1LZ6AsiWAchyEOgy75CkFMzsn7opA9MZQGfygXwlFsJOv
iHaUiXmDgkJctLFox67YRuJcD5+3IM0C4vp50g8sLAHY/WlhzFMHuULpkKJBlycO
pVtXzZjM7L/CNr6yGQ4gM0umhN+O1YGudzDI1Ny3JdT9a8BdaBw7u+mG63GQmn+/
vhGXdxr80SIWVmuaGSdVphpjhXnLo3hW70ULE2AAH6PLw//hK+3XzVBatzCJtGzx
gxUkWN8U6TFVgCY6qZzP7Gp2Bt0hTEVq4JH3hEHeuLFS+8d88UC2xMx7Te93fh9F
vLiY88bXP/5MGwab7RVsDamo3PCNPoUB8vC+ZjDeOq8zqpFbcQTXSXDWyH5C5TvB
Cfon9hWRmH2Ea79iIKFvkh3cYsVpsRLEDWgcny7YNvjcedv+oX/7aYNrnWcbLr5x
59BadBRhevBpIxFiocHa2RQVSVNET1tlsRb7wQwlPLHPHS2ESnD1gJpjywkqNLY4
VLz28ZLA/cSY7SlVRzxhgAxLCOx8JZ8B3Pb9wGky7SdDWJLRtWM=
=KwYb
-----END PGP SIGNATURE-----

Attachment: pgpLttDw4vDxj.pgp
Description: PGP signature


--- End Message ---

Reply via email to