#1149393 bidict: FTBFS against python 3.15rc2 (invalid PYTHONPATH when calling sphinx)

Package:
src:bidict
Source:
src:bidict
Submitter:
Margarita Manterola
Date:
2026-09-29 20:17:02 UTC
Severity:
normal
Tags:
#1149393#5
Date:
2026-09-29 20:13:59 UTC
From:
To:
Hi!

While rebuilding the python related packages against the Python 3.15rc2
version we found that bidict fails to build from source:
https://debusine.debian.net/debian/r-python-python3.15/artifact/4855712/

 From the log, the error is:

    dh_installdocs -i -O--buildsystem=pybuild
    debian/rules override_dh_sphinxdoc
make[1]: Entering directory '/build/reproducible-path/bidict-0.24.1'
PYTHONPATH=/build/reproducible-path/bidict-0.24.1/.pybuild/cpython3_3.14_bidict/build
/build/reproducible-path/bidict-0.24.1/.pybuild/cpython3_3.15_bidict/build
\
python3 -m sphinx -b html docs \
	/build/reproducible-path/bidict-0.24.1/debian/python-bidict-doc/usr/share/doc/python-bidict-doc/html
/bin/sh: 1:
/build/reproducible-path/bidict-0.24.1/.pybuild/cpython3_3.15_bidict/build:
Permission denied
make[1]: *** [debian/rules:12: override_dh_sphinxdoc] Error 126
make[1]: Leaving directory '/build/reproducible-path/bidict-0.24.1'

This happens because the PYTHONPATH variable has a star expansion that
turns into two separate values:
override_dh_sphinxdoc:
ifeq (,$(findstring nodocs, $(DEB_BUILD_OPTIONS)))
	PYTHONPATH=$(wildcard $(CURDIR)/.pybuild/cpython3_*/build) \
	python3 -m sphinx -b html docs \
		$(CURDIR)/debian/python-bidict-doc/usr/share/doc/python-bidict-doc/html
	dh_sphinxdoc
	rm -f
$(CURDIR)/debian/python-bidict-doc/usr/share/doc/python-bidict-doc/html/_static/custom.js
endif

Rather than using a star, you should use the default Python version,
using the output of `py3version -d`.

Also, I was confounded at first because I was looking at the code in
salsa and it didn't have this issue, then I realized that the package in
the archive is different than what's in salsa. Please update the code in
salsa. Thanks.

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