Free software activity in March 2025
Most of my Debian contributions this month were sponsored by Freexian.
You can also support my work directly via Liberapay.
OpenSSH
Changes in dropbear 2025.87 broke OpenSSH’s regression tests. I cherry-picked the fix.
I reviewed and merged patches from Luca
Boccassi to
send and accept the COLORTERM
and NO_COLOR
environment variables.
Python team
Following up on last month, I fixed some more uscan errors:
- python-ewokscore
- python-ewoksdask
- python-ewoksdata
- python-ewoksorange
- python-ewoksutils
- python-processview
- python-rsyncmanager
I upgraded these packages to new upstream versions:
- bitstruct
- django-modeltranslation (maintained by Freexian)
- django-yarnpkg
- flit
- isort
- jinja2 (fixing CVE-2025-27516)
- mkdocstrings-python-legacy
- mysql-connector-python (fixing CVE-2025-21548)
- psycopg3
- pydantic-extra-types
- pydantic-settings
- pytest-httpx (fixing a build failure with httpx 0.28)
- python-argcomplete
- python-cymem
- python-djvulibre
- python-ecdsa
- python-expandvars
- python-holidays
- python-json-log-formatter
- python-keycloak (fixing a build failure with httpx 0.28)
- python-limits
- python-mastodon (in the course of which I found #1101140 in blurhash-python and proposed a small cleanup to slidge)
- python-model-bakery
- python-multidict
- python-pip
- python-rsyncmanager
- python-service-identity
- python-setproctitle
- python-telethon
- python-trio
- python-typing-extensions
- responses
- setuptools-scm
- trove-classifiers
- zope.testrunner
In bookworm-backports, I updated python-django to 3:4.2.19-1.
Although Debian’s upgrade to python-click 8.2.0 was reverted for the time being, I fixed a number of related problems anyway since we’re going to have to deal with it eventually:
- celery (contributed upstream)
- magic-wormhole (closed in Debian without action, but contributed upstream)
- python-flasgger (contributed upstream)
- sqlfluff (closed in Debian without action, but contributed upstream)
dh-python dropped its dependency on python3-setuptools in 6.20250306, which was long overdue, but it had quite a bit of fallout; in most cases this was simply a question of adding build-dependencies on python3-setuptools, but in a few cases there was a missing build-dependency on python3-typing-extensions which had previously been pulled in as a dependency of python3-setuptools. I fixed these bugs resulting from this:
- beangrow
- beangulp
- beanprice
- beanquery
- beautifulsoup4
- django-choices-field
- django-modeltranslation (maintained by Freexian)
- flake8-class-newline
- flake8-quotes
- nodeenv
- pygments-ansi-color
- pytest-mypy-plugins
- python-agilent
- python-aiohttp-security
- python-aiohttp-session
- python-djvulibre
- python-ewoksutils
- python-jsonlines
- python-mastodon
- python-pydash
- python-pytest-venv
- python-redfish
- python-ring-doorbell
- python-sluurp
- python-sqlite-migrate
- python-trubar
We agreed to remove python-pytest-flake8. In support of this, I removed unnecessary build-dependencies from pytest-pylint, python-proton-core, python-pyzipper, python-tatsu, python-tatsu-lts, and python-tinycss, and filed #1101178 on eccodes-python and #1101179 on rpmlint.
There was a dnspython autopkgtest regression on s390x. I independently tracked that down to a pylsqpack bug and came up with a reduced test case before realizing that Pranav P had already been working on it; we then worked together on it and I uploaded their patch to Debian.
I fixed various other build/test failures:
- aiomysql (closed with no action needed)
- lazr.uri
- m2crypto (thanks to Sebastian Andrzej Siewior)
- mkdocstrings
- mystic
- poetry-plugin-export
- poetry
- pydantic-extra-types
- pymilter
- python-a2wsgi (contributed upstream)
- python-anyio
- python-cymem
- python-django-timescaledb (only partially successful)
- python-ewokscore
- python-ewoksorange
- python-httpx-sse
- python-ml-collections
- python-opt-einsum (contributed upstream)
- python-passlib
- python-pdoc
- python-ppmd (with a follow-up)
- python-processview
- python-respx
- python-rsyncmanager (contributed upstream: ccc5f66dc7, 51c15ca8d1)
- python-sphobjinv
- python-urllib3
- pytrainer
- tlv8-python
I enabled more tests in python-moto and contributed a supporting fix upstream.
I sponsored Maximilian Engelhardt to reintroduce zope.sqlalchemy.
I fixed various odds and ends of bugs:
- catfish: does not start because of a missing dependency
- jupyterhub: creates /usr/alembic.ini
- pgzero: please add autopkgtests (to add coverage for python3-numpy)
- pyspread: creates /usr/pyspread/share/applications/ instead of using /usr/share/applications/
- python-aiosmtpd: python3-aiosmtpd-doc/trixie misses Breaks and Replaces for python3-aiosmtpd/bookworm
- python-dateutil: will FTBFS during trixie support period (contributed upstream)
- python-passlib: bcrypt warning
- python-pip: pip3-* manual pages could be aliased
- python3-deprecation: installs deprecation-2.0.7.egg-info instead of 2.1.0-2
- quodlibet: crashes on start if libmodplug1 is not installed
- reparser: autopkgtest must be marked superficial
I contributed a small documentation improvement to pybuild-autopkgtest(1).
Rust team
I upgraded rust-asn1 to 0.20.0.
Science team
I finally gave in and joined the Debian Science Team this month, since it often has a lot of overlap with the Python team, and Freexian maintains several packages under it.
I fixed a uscan error in hdf5-blosc (maintained by Freexian), and upgraded it to a new upstream version.
I fixed python-vispy: missing dependency on numpy abi.
Other bits and pieces
I fixed debconf should automatically be noninteractive if input is /dev/null.
I fixed a build failure with GCC 15 in yubihsm-shell (maintained by Freexian).
Prompted by a CI failure in debusine, I submitted a large batch of spelling fixes and some improved static analysis to incus (#1777, #1778) and distrobuilder.
After regaining access to the repository, I fixed telegnome: missing app icon in ‘About’ dialogue and made a new 0.3.7 release.
Comments
With an account on the Fediverse or Mastodon, you can respond to this post. Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one. Known non-private replies are displayed below.
Learn how this is implemented here.