Free software activity in December 2025
About 95% of my Debian contributions this month were sponsored by Freexian.
You can also support my work directly via Liberapay or GitHub Sponsors.
Python packaging
I upgraded these packages to new upstream versions:
- aiosmtplib
- astroid (fixing a build failure with Python 3.14, as I wrote about recently in Preparing a transition in Debusine)
- billiard (fixing a syntax warning with Python 3.14)
- celery (contributed follow-up fix upstream)
- cloudpickle (fixing a build failure with Python 3.14)
- csvkit
- deepdiff (fixing a build failure with Python 3.14)
- django-auditlog
- django-phonenumber-field
- flake8-builtins
- flufl.lock
- kombu
- peewee
- psycopg2
- pydantic-extra-types
- pygments (prepared transition in Debusine with diff-cover, pydata-sphinx-theme, pymdown-extensions, python-readme-renderer, and python-stack-data; contributed python-stack-data fix upstream)
- pylint (fixing a build failure with Python 3.14)
- pymdown-extensions
- python-aiojobs (fixing a build failure)
- python-aiostream
- python-asttokens (fixing a build failure with astroid 4)
- python-auditwheel
- python-blockbuster
- python-boolean.py
- python-confluent-kafka
- python-django-crispy-forms
- python-django-pgbulk
- python-django-pgtransaction
- python-django-pgtrigger (fixing a build failure with mkdocstrings-python-handlers >= 2)
- python-evalidate
- python-exchangelib (fixing a build failure with Python 3.14)
- python-holidays
- python-lsp-server
- python-lz4
- python-mashumaro (fixing many build failures in other packages with Python 3.14)
- python-moto
- python-persistent
- python-pytest-run-parallel
- python-roman
- python-rx (fixing a build failure with Python 3.14)
- python-telethon
- python-uvicorn (fixing a test failure with current uvloop)
- python-wheezy.template
- python-wslink
- rpds-py
- sphinx-autoapi
- sqlparse
- zope.testing (fixing a build failure with Python 3.14)
Python 3.14 is now a supported version in unstable, and we’re working to get that into testing. As usual this is a pretty arduous effort because it requires going round and fixing lots of odds and ends across the whole ecosystem. We can deal with a fair number of problems by keeping up with upstream (see above), but there tends to be a long tail of packages whose upstreams are less active and where we need to chase them, or where problems only show up in Debian for one reason or another. I spent a lot of time working on this:
- actdiag’s autopkgtests failed when there are multiple supported Python versions
- khard: FTBFS: dh_auto_test: error: pybuild —test -i python{version} -p “3.14 3.13” returned exit code 13 (contributed upstream)
- pydantic-settings: FTBFS: example.py: error: unrecognized arguments: —bad-arg (forwarded upstream and cherry-picked their fix)
- pydantic: FTBFS: dh_auto_test: error: pybuild —test —test-pytest -i python{version} -p “3.14 3.13” returned exit code 13
- pygame: FTBFS with Python 3.14: sys.getrefcount() AssertionError
- python-auditwheel: FTBFS: dh_auto_test: error: pybuild —test —test-pytest -i python{version} -p “3.14 3.13” returned exit code 13 (contributed upstream)
- python-charset-normalizer could silently build without support for some supported Python versions
- python-confluent-kafka: FTBFS with Python 3.14: Segmentation fault in test_create_topics_api (forwarded upstream and fixed after a debugging hint from them)
- python-django: FTBFS with Python 3.14 (also fixing many build failures in other packages)
- python-memray: FTBFS with Python 3.14: Segmentation fault (some initial debugging; upstream has since got a lot further)
- python-telethon: FTBFS: dh_auto_test: error: pybuild —test —test-pytest -i python{version} -p “3.14 3.13” returned exit code 13 (contributed upstream)
- python-typing-extensions: FTBFS: dh_auto_test: error: pybuild —test -i python{version} -p “3.14 3.13” returned exit code 13
- python-wheezy.template: FTBFS with Python 3.14 (contributed upstream, although they opted for doing it a bit differently)
- storm (made an upstream release with Python 3.14 support)
- twisted: Autopkgtests fail with Python 3.14: builtins.RuntimeError: There is no current event loop in thread ‘MainThread’ (forwarded upstream and cherry-picked their fix)
- zope.proxy and zope.security had a bootstrapping loop when adding new supported Python versions; I broke this loop so it shouldn’t bother us again in the future.
Fixes for pytest 9:
- celery (contributed upstream)
- pytest-pylint (contributed upstream)
- python-expandvars (contributed upstream)
- python-inline-snapshot
I filed lintian: Report Python egg-info files/directories to help us track the migration to pybuild-plugin-pyproject.
I did some work on dh-python: Normalize names in pydist lookups and pyproject plugin: Support headers (the latter of which allowed converting python-persistent and zope.proxy to pybuild-plugin-pyproject, although it needed a follow-up fix).
I fixed or helped to fix several other build/test failures:
- dpath-python
- flask-bcrypt: FTBFS: E ValueError: password cannot be longer than 72 bytes, truncate manually if necessary (e.g. my_password[:72])
- python-aiosmtpd
- python-aiostream
- python-auditwheel on i386 (contributed upstream)
- python-auditwheel on riscv64 (contributed upstream)
- python-bcrypt: Accept pyo3 0.27
- python-django-crum
- python-django-guid
- python-inline-snapshot
- python-laspy
- python-mnemonic
- python-ncls on 32-bit architectures (contributed upstream)
- python-papermill
- python-phonenumbers
- python-pluggy
- python-pycddl: Accept pyo3 0.27
- python-sphinx-autodoc2 (contributed upstream)
- python-structlog
- python-wikkid: FTBFS: AttributeError: ‘TestBaseParent’ object has no attribute ‘assertEquals’ (contributed follow-up fix upstream)
- python-wslink
Other bugs:
- python-bcrypt: ValueError: password cannot be longer than 72 bytes, truncate manually if necessary
- python-notify2: Directly Build-Depends on dbus
- python-packaging: Mark python3-packaging Multi-Arch: foreign
- python-pyproject-parser: python3-pyproject-parser needs a dependency on python3-consolekit
- sphinx: Please backport upstream’s fix on roman-numerals
Other bits and pieces
- db1-compat: Please remove/replace usage of dh_movetousr
- debmirror: Refresh mirror_size documentation
- groff: FTBFS randomly
- openssh: Misleading verbose output for local-to-local or standard remote-to-remote copies (upstreamed an improved version of a patch we’ve been carrying since 2008)
- pcmciautils: Please remove/replace usage of dh_movetousr
Code reviews
- openssh: Fix binary name in ssh-askpass-gnome.desktop (still in discussion)
- python-lsp-server: Increase tests timeout further
- rope: New upstream version 1.14.0 (merged and uploaded)
- trn4: Update/add Catalan po-debconf translation (merged)