Your message dated Thu, 01 Oct 2026 21:35:29 +0000
with message-id <[email protected]>
and subject line Bug#1148031: fixed in datalad 1.6.5-1
has caused the Debian Bug report #1148031,
regarding datalad: 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.)
--
1148031: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1148031
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:datalad
Version: 1.3.1-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 datalad fails to build from source [1].
The error was:
Download error on https://pypi.org/simple/keyrings.alt/: [Errno -3] Temporary
failure in name resolution -- Some packages may not be found!
To fix this and other issues, I had to make a number of changes to the
package:
- Make sure it doesn't use the network while building
- Add upstream patch 8f078923de85308307efbd5ea1f1cfa199d8d190: fix:
Avoid use of return in a finally block
- Add patch to use fork with multiprocessing, avoid using the forkserver
- Avoid using the setuptools deprecated develop call
- Ignore commonprefix deprecation warning
- Update PYBUILD_BEFORE_TEST to ensure bin/ shims are regenerated
I've applied these fixes in the sandbox [2] to verify that it builds
successfully, please consider applying the patch to support the upcoming
3.15 version.
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/4514128/
[2]: 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 /\/\ /\ >< `/
diff --git a/debian/changelog b/debian/changelog
index 9a9c37406..c9b038d7d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+datalad (1.3.1-3) UNRELEASED; urgency=medium
+
+ * Team upload.
+ * Add --no-deps to setup.py develop
+ * Fix Python 3.15 test failures: ignore commonprefix deprecation warning and set multiprocessing start method to fork
+ * Use pip install instead of deprecated setup.py develop
+ * Add python3-pip to Build-Depends
+
+ -- Maximiliano Curia <[email protected]> Tue, 15 Sep 2026 11:54:20 +0200
+
datalad (1.3.1-2) unstable; urgency=medium
* Team upload.
diff --git a/debian/patches/deb_disable_pytest_warn b/debian/patches/deb_disable_pytest_warn
index 8504d2be2..2bc5444ba 100644
--- a/debian/patches/deb_disable_pytest_warn
+++ b/debian/patches/deb_disable_pytest_warn
@@ -9,10 +9,11 @@ Last-Update: 2022-09-23
--- a/tox.ini
+++ b/tox.ini
-@@ -68,10 +68,6 @@ commands = sphinx-build -E -W -b html so
+@@ -68,10 +68,7 @@ commands = sphinx-build -E -W -b html so
[pytest]
filterwarnings =
error::DeprecationWarning:^datalad
++ ignore:os.path.commonprefix\(\) is deprecated:DeprecationWarning
- # TODO: https://github.com/datalad/datalad/issues/7435
- ignore:pkg_resources is deprecated:DeprecationWarning:
- error:.*yield tests:pytest.PytestCollectionWarning
diff --git a/debian/patches/fix-finally-return.patch b/debian/patches/fix-finally-return.patch
new file mode 100644
index 000000000..45cb99c98
--- /dev/null
+++ b/debian/patches/fix-finally-return.patch
@@ -0,0 +1,34 @@
+From 8f078923de85308307efbd5ea1f1cfa199d8d190 Mon Sep 17 00:00:00 2001
+From: "Christopher J. Markiewicz" <[email protected]>
+Date: Thu, 5 Mar 2026 14:58:49 -0500
+Subject: [PATCH] fix: Avoid use of return in a finally block
+
+---
+ datalad/utils.py | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/datalad/utils.py b/datalad/utils.py
+index 8e037b966..b3eba3197 100644
+--- a/datalad/utils.py
++++ b/datalad/utils.py
+@@ -1975,12 +1975,12 @@ def make_tempfile(content: str | bytes | None = None, wrapped: Optional[Callable
+ # For paranoid yoh who stepped into this already ones ;-)
+ lgr.warning("It is unlikely that it was intended to remove all"
+ " files matching %r. Skipping" % filename_)
+- return
+- for f in filenames:
+- try:
+- rmtemp(f)
+- except OSError: # pragma: no cover
+- pass
++ else:
++ for f in filenames:
++ try:
++ rmtemp(f)
++ except OSError: # pragma: no cover
++ pass
+
+
+ def _path_(*p: str) -> str:
+--
+2.53.0
diff --git a/debian/patches/py315-multiprocessing.patch b/debian/patches/py315-multiprocessing.patch
new file mode 100644
index 000000000..14227f210
--- /dev/null
+++ b/debian/patches/py315-multiprocessing.patch
@@ -0,0 +1,24 @@
+Description: Set multiprocessing start method to fork for test suite
+ Under Python 3.15, forkserver is the default start method on POSIX, which
+ fails in the test harness when tracking child processes across runners.
+Author: Maximiliano Curia <[email protected]>
+Forwarded: not-needed
+
+Index: datalad/datalad/conftest.py
+===================================================================
+--- datalad.orig/datalad/conftest.py
++++ datalad/datalad/conftest.py
+@@ -28,6 +28,13 @@ test_http_server = None
+ @pytest.fixture(autouse=True, scope="session")
+ def setup_package():
+ import tempfile
++ import multiprocessing
++
++ if 'fork' in multiprocessing.get_all_start_methods():
++ try:
++ multiprocessing.set_start_method('fork')
++ except RuntimeError:
++ pass
+
+ from datalad import consts
+ from datalad.support.annexrepo import AnnexRepo
diff --git a/debian/patches/python3.patch b/debian/patches/python3.patch
index 4d9963666..3a6b23de6 100644
--- a/debian/patches/python3.patch
+++ b/debian/patches/python3.patch
@@ -3,8 +3,10 @@ Description: use python3 interpreter, not python by default in Makefile
are no longer needed/adopted upstream
Last-Modified: 2019-09-06
---- a/Makefile
-+++ b/Makefile
+Index: datalad/Makefile
+===================================================================
+--- datalad.orig/Makefile
++++ datalad/Makefile
@@ -1,7 +1,7 @@
# simple makefile to simplify repetitive build env management tasks under posix
# Ideas borrowed from scikit-learn's and PyMVPA Makefiles -- thanks!
@@ -14,3 +16,12 @@ Last-Modified: 2019-09-06
MODULE ?= datalad
+@@ -15,7 +15,7 @@ clean:
+
+ bin:
+ mkdir -p $@
+- PYTHONPATH="bin:$(PYTHONPATH)" $(PYTHON) setup.py develop --install-dir $@
++ PYTHONPATH="bin:$(PYTHONPATH)" $(PYTHON) setup.py install_scripts --install-dir $@
+
+ trailing-spaces:
+ find $(MODULE) -name "*.py" -exec perl -pi -e 's/[ \t]*$$//' {} \;
diff --git a/debian/patches/series b/debian/patches/series
index 34078900b..0fd581549 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,3 +4,5 @@ deb_disable_pytest_warn
deb_no_utf8
python3.patch
deb-looseversion.patch
+fix-finally-return.patch
+py315-multiprocessing.patch
diff --git a/debian/rules b/debian/rules
index 45e1cd36b..361e877e7 100755
--- a/debian/rules
+++ b/debian/rules
@@ -16,7 +16,7 @@ export https_proxy=
# We need to copy .egg-info so entry points are discovered. And also need
# to generate then per-Python version since some module requirements differ
-export PYBUILD_BEFORE_TEST=PYTHONPATH=$(CURDIR)/bin python{version} setup.py develop --install-dir bin/ && cp -rp datalad.egg-info {build_dir}/;
+export PYBUILD_BEFORE_TEST=PYTHONPATH=$(CURDIR)/bin python{version} setup.py install_scripts --install-dir bin/ && cp -rp datalad.egg-info {build_dir}/;
# Set SOURCE_DATE_EPOCH based on changelog in a most portable (older dpkg) way
# following https://reproducible-builds.org/docs/source-date-epoch/
@@ -28,11 +28,11 @@ export DATALAD_SOURCE_EPOCH=$(SOURCE_DATE_EPOCH)
clean::
dh_clean
- -rm -rf bin build .pybuild datalad.egg-info .pytest_cache docs/source/generated/man
+ -rm -rf bin build .pybuild datalad.egg-info *.dist-info .pytest_cache docs/source/generated/man
-find . -name '*.pyc' -delete
override_dh_auto_configure:
- # cheap fake of an installed datalad, so we get .egg-info with entry points
+ # cheap fake of an installed datalad, so we get metadata with entry points
$(MAKE) bin
# and leave the rest for dh_python* runs
mkdir -p build; \
--- End Message ---
--- Begin Message ---
Source: datalad
Source-Version: 1.6.5-1
Done: Yaroslav Halchenko <[email protected]>
We believe that the bug you reported is fixed in the latest version of
datalad, 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.
Yaroslav Halchenko <[email protected]> (supplier of updated datalad 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: Thu, 01 Oct 2026 08:36:59 -0400
Source: datalad
Architecture: source
Version: 1.6.5-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Yaroslav Halchenko <[email protected]>
Closes: 1148031
Changes:
datalad (1.6.5-1) unstable; urgency=medium
.
[ Maximiliano Curia ]
* Fix Python 3.15 test failures:
set multiprocessing start method to fork (Closes: #1148031)
.
[ Yaroslav Halchenko ]
* Fresh upstream update with fixes for 3.15 and fakeroot compatibility
(hence dropped up-getuid patch)
* d/patches - refreshed
* d/control - add python3-psutil to B-D and Recommends
(needed for tracking open files functionality/tests)
Checksums-Sha1:
28ee4e008c71d0f87f94d1c21afd14c63be0be70 2705 datalad_1.6.5-1.dsc
782b1239032f63ea58bfb8ce3090337656aa0e5d 1550407 datalad_1.6.5.orig.tar.gz
e179b437f630ab8d2f8f725f94f0f9fe5355603f 19324 datalad_1.6.5-1.debian.tar.xz
9c9974a372e8fdfcc4016635c017e5933ddda528 9703 datalad_1.6.5-1_amd64.buildinfo
Checksums-Sha256:
5578e2cdfc8f7977d7e2da087640cea8aa753d15104ae85606152a6ae1037af4 2705
datalad_1.6.5-1.dsc
f23c4b6eeb0699f6a275a0d6ba9b4fcd267af2cea26c67b60df6566fe384e811 1550407
datalad_1.6.5.orig.tar.gz
984b21552782dcb588bfa50f39b57236d2a47f5504dec864ffbe97107ca0c653 19324
datalad_1.6.5-1.debian.tar.xz
ba431808bff01b59ac55191e07b77fd38f712eef69c9cff3de912ff24ed4be7b 9703
datalad_1.6.5-1_amd64.buildinfo
Files:
bc7dc5c850d2b89ad6107cbc398bfd22 2705 science optional datalad_1.6.5-1.dsc
0896216036b6c3384915f26ba001524b 1550407 science optional
datalad_1.6.5.orig.tar.gz
d11789cd011887fd1b371ed735e0a62b 19324 science optional
datalad_1.6.5-1.debian.tar.xz
829720f7eed1560bdd477859bdaf74e2 9703 science optional
datalad_1.6.5-1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEExbkF8OjZ/ZZo/zZvot4jUGLaM/oFAmq+yusACgkQot4jUGLa
M/rl6RAAiIivN6PnIYhuTQvaRWI1xOdr9g3eoFukCEcORoxlVEzLIykJQA/Gx2+M
XlaTmzK4Bck3IwbIBUw8oGuhWAruVP8dYcF6bWtDSnuQp0NVVzXiT9K6asHhq8Nt
xdEiXyQ1P3vL5nO3RXhQvrtVNSByG0ti8Dp9N8LWTg507RPlPlwHOrdLGa3RDsF2
V3DYkYqFqQmijaQ/+x3q0pFznPfKTCpYx56Kr4BVvHPVaJsjGKQ0iRCP3f5iYx7V
EG+8ayfEByMG3IEfRN0b11TyXCyBKd/ovTYHOqWwpiCqmL9iTyGesHYxzuG/W65n
b4/DoZqi+RD9Av2hduqOI8DoZrYVjCKx8QC/8+jkvoI4TxmGhpSYA/N4LktgwDZw
QrGcQ/u0gjxuM6iM4vRv8OIZAEUutH9XWljgFSBImw8cesm02UN+v1ioUWITuKx8
WgI1+najqnRg4dehGo7F86wPRYOH9RgYd4t3E77C6+OYcx60P0TZ7epI30kbnn8u
AOXKLdtu5KXlG4LzeNDog1271OnnjCN4DKNkSa8G+ZR349R9gtsHnoTBWvLuGeoC
s4BuzOlfVzvEYeFiubbmMldJx3CpRI3zpmU4gorZrMZ3jcO++/1z+7jW/PB2LEnE
Nz1e0JzWbJUhYehWsKwvmtoMBzKmA6bXwMgdg3jEZDtUuQQf8Bw=
=NLrI
-----END PGP SIGNATURE-----
pgpo0rlhvu23b.pgp
Description: PGP signature
--- End Message ---