Freexian Collaborators: Debian Contributions: dh-python development, Python 3.14 and Ruby 3.4 transitions, Surviving scraper traffic in Debian CI and more! (by Anupa Ann Joseph)
Debian Contributions: 2025-12
Contributing to Debian
is part of Freexian s mission. This article
covers the latest achievements of Freexian and their collaborators. All of this
is made possible by organizations subscribing to our
Long Term Support contracts and
consulting services.
dh-python development, by Stefano Rivera
In Debian we build our Python packages with the help of a debhelper-compatible
tool, dh-python. Before starting the
3.14 transition (that would rebuild many packages) we landed some updates to
dh-python to fix bugs and add features. This started
a month of attention
on dh-python, iterating through several bug fixes, and a couple of unfortunate
regressions.
dh-python is used by almost all packages containing Python (over 5000). Most
of these are very simple, but some are complex and use dh-python in unexpected
ways. It s hard to avoid almost any change (including obvious bug fixes) from
causing some unexpected knock-on behaviour. There is a fair amount of complexity
in dh-python, and some rather clever code, which can make it tricky to work on.
All of this means that good QA is important. Stefano spent some time
adding type annotations
and specialized types to make it easier to see what the code is doing and catch
mistakes. This has already made work on dh-python easier.
Now that Debusine has built-in repositories
and debdiff support, Stefano could quickly test the effects of changes on many
other packages. After each big change, he could upload dh-python to
a repository,
rebuild e.g. 50 Python packages with it, and see what differences appeared in
the output. Reviewing the diffs is still a manual process, but can be improved.
Stefano did a small test
on what it would take to replace direct setuptools setup.py calls with
PEP-517 (pyproject-style) builds. There is
more work to do here.
Python 3.14 transition, by Stefano Rivera (et al.)
In December the transition to add
Python 3.14 as a supported version started in Debian unstable. To do this, we
update the list of supported versions in python3-defaults,
and then start rebuilding modules with C extensions from the leaves inwards.
This had already been tested in a PPA and Ubuntu, so many of the biggest
blocking compatibility issues with 3.14 had already been found and fixed. But
there are always new issues to discover.
Thanks to a number of people in the Debian Python team, we got through the first
bit of the transition fairly quickly. There are still a number of
open bugs
that need attention and many failed tests
blocking migration to testing.
Python 3.14.1 released just after we started the transition, and very soon
after, a follow-up 3.14.2 release came out to address a regression. We ran into
another regression in
Python 3.14.2.
Ruby 3.4 transition, by Lucas Kanashiro (et al.)
The Debian Ruby team just started the preparation to move the default Ruby
interpreter version to 3.4. At the moment, ruby3.4 source package is already
available in experimental, also ruby-defaults added support to
Ruby 3.4. Lucas rebuilt all reverse dependencies against this new version of the
interpreter and published the results here.
Lucas also reached out to some stakeholders to coordinate the work.
Next steps are: 1) announcing the results to the whole team and asking for help
to fix packages failing to build against the new interpreter; 2) file bugs
against packages FTBFSing against Ruby 3.4 which are not fixed yet; 3) once we
have a low number of build failures against Ruby 3.4, ask the Debian Release
team to start the transition in unstable.
Surviving scraper traffic in Debian CI, by Antonio Terceiro
Like most of the open web, Debian Continuous Integration
has been struggling for a while to keep up with the insatiable hunger from data
scrapers everywhere. Solving this involved a lot of trial and error; the final
result seems to be stable, and consists of two parts.
First, all Debian CI data pages, except the direct links to test log files
(such as those provided by the Release Team s testing migration excuses), now
require users to be authenticated before being accessed. This means that the
Debian CI data is no longer publicly browseable, which is a bit sad. However,
this is where we are now.
Additionally, there is now a fail2ban powered firewall-level access limitation
for clients that display an abusive access pattern. This went through several
iterations, with some of them unfortunately blocking legitimate Debian
contributors, but the current state seems to strike a good balance between
blocking scrapers and not blocking real users. Please get in touch with the team
on the #debci OFTC channel if you are affected by this.
A hybrid dependency solver for crossqa.debian.net, by Helmut Grohne
crossqa.debian.net continuously cross builds
packages from the Debian archive. Like Debian s native build infrastructure, it
uses dose-builddebcheck to determine whether a package s dependencies can be
satisfied before attempting a build. About one third of Debian s packages fail
this check, so understanding the reasons is key to improving cross building.
Unfortunately, dose-builddebcheck stops after reporting the first problem and
does not display additional ones.
To address this, a greedy solver implemented in Python now examines each
build-dependency individually and can report multiple causes. dose-builddebcheck
is still used as a fall-back when the greedy solver does not identify any
problems. The report for bazel-bootstrap
is a lengthy example.
rebootstrap, by Helmut Grohne
Due to the changes suggested by Loongson earlier, rebootstrap now adds
debhelper to its final installability test and builds a few more packages
required for installing it. It also now uses a variant of build-essential that
has been marked Multi-Arch: same
(see foundational work
from last year).
This in turn made the use of a non-default GCC version more difficult and
required more work to make it work for gcc-16 from experimental. Ongoing
archive changes temporarily regressed building fribidi and dash.
libselinux and groff have received patches for architecture specific changes
and libverto has been NMUed to remove the glib2.0 dependency.
Miscellaneous contributions
- Stefano did some administrative work on debian.social and debian.net
instances and Debian reimbursements.
- Stefano did routine updates of
python-authlib, python-mitogen, xdot.
- Stefano spent several hours discussing Debian s Python package layout with the
PyPA upstream community. Debian has ended up with a very different on-disk
installed Python layout than other distributions, and this continues to cause
some frustration in many communities that have to have special workarounds to
handle it. This ended up impacting cross builds as Helmut discovered.
- Rapha l set up Debusine workflows
for the various backports repositories on debusine.debian.net.
- Zulip is not yet in Debian (RFP in #800052),
but Rapha l helped on the French translation as he is experimenting with that
discussion platform.
- Antonio performed several routine Salsa maintenance tasks, including
fixing salsa-nm-sync,
the service that synchronizes project members data from LDAP to Salsa, which had
been broken since salsa.debian.org was upgraded to
trixie .
- Antonio deployed a new amd64 worker host for Debian CI.
- Antonio did several DebConf technical and administrative bits, including but
adding support for custom check-in/check-out dates
in the MiniDebConf registration module, publishing a
call for bids for DebConf27.
- Carles reviewed and submitted 14 Catalan translations using
po-debconf-manager.
- Carles improved
po-debconf-manager: added delete-package command,
show-information now uses properly formatted output (YAML), it now attaches
the translation on the bug reports for which a merge request has been opened too
long.
- Carles investigated why some packages appeared in
po-debconf-manager but not
in the Debian l10n list.
Turns out that some packages had debian/po/templates.pot (appearing in
po-debconf-manager) but not the POTFILES.in file as expected.
Created a script
to find out which packages were in this or similar situation and
reported bugs.
- Carles tested and documented how to set
up voices (
mbrola and festival) if using Orca speech synthesizer. Commented
a few issues and possible improvements in the debian-accessibility list.
- Helmut sent patches for 48 cross build failures and initiated discussions on
how to deal with two non-trivial matters. Besides Python mentioned above,
CMake introduced a
cmake_pkg_config builtin which is
not aware of the host architecture. He also
forwarded a Meson patch upstream.
- Thorsten uploaded a new upstream version of
cups to fix a nasty bug that was
introduced by the latest security update.
- Along with many other Python 3.14 fixes, Colin
fixed a
tricky segfault in python-confluent-kafka
after a helpful debugging hint from upstream.
- Colin upstreamed an improved version of an
OpenSSH patch we ve been carrying
since 2008 to fix misleading verbose output from scp.
- Colin used Debusine to coordinate transitions for
astroid and pygments,
and wrote up the astroid case
on his blog.
- Emilio helped with various transitions, and provided a build fix for
opencv
for the ffmpeg 8 transition.
- Emilio tested the GNOME updates for trixie proposed updates (
gnome-shell,
mutter, glib2.0).
- Santiago helped to review the status of how to test different build profiles
in parallel on the same pipeline, using the test-build-profiles job. This means,
for example, to simultaneously test build profiles such as
nocheck and nodoc
for the same git tree. Finally, Santiago provided
MR !685
to fix the documentation.
- Anupa prepared a bits post for Outreachy interns
announcement
along with T ssia Cam es Ara jo and worked on publicity team tasks.
dh-python to fix bugs and add features. This started
a month of attention
on dh-python, iterating through several bug fixes, and a couple of unfortunate
regressions.
dh-python is used by almost all packages containing Python (over 5000). Most
of these are very simple, but some are complex and use dh-python in unexpected
ways. It s hard to avoid almost any change (including obvious bug fixes) from
causing some unexpected knock-on behaviour. There is a fair amount of complexity
in dh-python, and some rather clever code, which can make it tricky to work on.
All of this means that good QA is important. Stefano spent some time
adding type annotations
and specialized types to make it easier to see what the code is doing and catch
mistakes. This has already made work on dh-python easier.
Now that Debusine has built-in repositories
and debdiff support, Stefano could quickly test the effects of changes on many
other packages. After each big change, he could upload dh-python to
a repository,
rebuild e.g. 50 Python packages with it, and see what differences appeared in
the output. Reviewing the diffs is still a manual process, but can be improved.
Stefano did a small test
on what it would take to replace direct setuptools setup.py calls with
PEP-517 (pyproject-style) builds. There is
more work to do here.
Python 3.14 transition, by Stefano Rivera (et al.)
In December the transition to add
Python 3.14 as a supported version started in Debian unstable. To do this, we
update the list of supported versions in python3-defaults,
and then start rebuilding modules with C extensions from the leaves inwards.
This had already been tested in a PPA and Ubuntu, so many of the biggest
blocking compatibility issues with 3.14 had already been found and fixed. But
there are always new issues to discover.
Thanks to a number of people in the Debian Python team, we got through the first
bit of the transition fairly quickly. There are still a number of
open bugs
that need attention and many failed tests
blocking migration to testing.
Python 3.14.1 released just after we started the transition, and very soon
after, a follow-up 3.14.2 release came out to address a regression. We ran into
another regression in
Python 3.14.2.
Ruby 3.4 transition, by Lucas Kanashiro (et al.)
The Debian Ruby team just started the preparation to move the default Ruby
interpreter version to 3.4. At the moment, ruby3.4 source package is already
available in experimental, also ruby-defaults added support to
Ruby 3.4. Lucas rebuilt all reverse dependencies against this new version of the
interpreter and published the results here.
Lucas also reached out to some stakeholders to coordinate the work.
Next steps are: 1) announcing the results to the whole team and asking for help
to fix packages failing to build against the new interpreter; 2) file bugs
against packages FTBFSing against Ruby 3.4 which are not fixed yet; 3) once we
have a low number of build failures against Ruby 3.4, ask the Debian Release
team to start the transition in unstable.
Surviving scraper traffic in Debian CI, by Antonio Terceiro
Like most of the open web, Debian Continuous Integration
has been struggling for a while to keep up with the insatiable hunger from data
scrapers everywhere. Solving this involved a lot of trial and error; the final
result seems to be stable, and consists of two parts.
First, all Debian CI data pages, except the direct links to test log files
(such as those provided by the Release Team s testing migration excuses), now
require users to be authenticated before being accessed. This means that the
Debian CI data is no longer publicly browseable, which is a bit sad. However,
this is where we are now.
Additionally, there is now a fail2ban powered firewall-level access limitation
for clients that display an abusive access pattern. This went through several
iterations, with some of them unfortunately blocking legitimate Debian
contributors, but the current state seems to strike a good balance between
blocking scrapers and not blocking real users. Please get in touch with the team
on the #debci OFTC channel if you are affected by this.
A hybrid dependency solver for crossqa.debian.net, by Helmut Grohne
crossqa.debian.net continuously cross builds
packages from the Debian archive. Like Debian s native build infrastructure, it
uses dose-builddebcheck to determine whether a package s dependencies can be
satisfied before attempting a build. About one third of Debian s packages fail
this check, so understanding the reasons is key to improving cross building.
Unfortunately, dose-builddebcheck stops after reporting the first problem and
does not display additional ones.
To address this, a greedy solver implemented in Python now examines each
build-dependency individually and can report multiple causes. dose-builddebcheck
is still used as a fall-back when the greedy solver does not identify any
problems. The report for bazel-bootstrap
is a lengthy example.
rebootstrap, by Helmut Grohne
Due to the changes suggested by Loongson earlier, rebootstrap now adds
debhelper to its final installability test and builds a few more packages
required for installing it. It also now uses a variant of build-essential that
has been marked Multi-Arch: same
(see foundational work
from last year).
This in turn made the use of a non-default GCC version more difficult and
required more work to make it work for gcc-16 from experimental. Ongoing
archive changes temporarily regressed building fribidi and dash.
libselinux and groff have received patches for architecture specific changes
and libverto has been NMUed to remove the glib2.0 dependency.
Miscellaneous contributions
- Stefano did some administrative work on debian.social and debian.net
instances and Debian reimbursements.
- Stefano did routine updates of
python-authlib, python-mitogen, xdot.
- Stefano spent several hours discussing Debian s Python package layout with the
PyPA upstream community. Debian has ended up with a very different on-disk
installed Python layout than other distributions, and this continues to cause
some frustration in many communities that have to have special workarounds to
handle it. This ended up impacting cross builds as Helmut discovered.
- Rapha l set up Debusine workflows
for the various backports repositories on debusine.debian.net.
- Zulip is not yet in Debian (RFP in #800052),
but Rapha l helped on the French translation as he is experimenting with that
discussion platform.
- Antonio performed several routine Salsa maintenance tasks, including
fixing salsa-nm-sync,
the service that synchronizes project members data from LDAP to Salsa, which had
been broken since salsa.debian.org was upgraded to
trixie .
- Antonio deployed a new amd64 worker host for Debian CI.
- Antonio did several DebConf technical and administrative bits, including but
adding support for custom check-in/check-out dates
in the MiniDebConf registration module, publishing a
call for bids for DebConf27.
- Carles reviewed and submitted 14 Catalan translations using
po-debconf-manager.
- Carles improved
po-debconf-manager: added delete-package command,
show-information now uses properly formatted output (YAML), it now attaches
the translation on the bug reports for which a merge request has been opened too
long.
- Carles investigated why some packages appeared in
po-debconf-manager but not
in the Debian l10n list.
Turns out that some packages had debian/po/templates.pot (appearing in
po-debconf-manager) but not the POTFILES.in file as expected.
Created a script
to find out which packages were in this or similar situation and
reported bugs.
- Carles tested and documented how to set
up voices (
mbrola and festival) if using Orca speech synthesizer. Commented
a few issues and possible improvements in the debian-accessibility list.
- Helmut sent patches for 48 cross build failures and initiated discussions on
how to deal with two non-trivial matters. Besides Python mentioned above,
CMake introduced a
cmake_pkg_config builtin which is
not aware of the host architecture. He also
forwarded a Meson patch upstream.
- Thorsten uploaded a new upstream version of
cups to fix a nasty bug that was
introduced by the latest security update.
- Along with many other Python 3.14 fixes, Colin
fixed a
tricky segfault in python-confluent-kafka
after a helpful debugging hint from upstream.
- Colin upstreamed an improved version of an
OpenSSH patch we ve been carrying
since 2008 to fix misleading verbose output from scp.
- Colin used Debusine to coordinate transitions for
astroid and pygments,
and wrote up the astroid case
on his blog.
- Emilio helped with various transitions, and provided a build fix for
opencv
for the ffmpeg 8 transition.
- Emilio tested the GNOME updates for trixie proposed updates (
gnome-shell,
mutter, glib2.0).
- Santiago helped to review the status of how to test different build profiles
in parallel on the same pipeline, using the test-build-profiles job. This means,
for example, to simultaneously test build profiles such as
nocheck and nodoc
for the same git tree. Finally, Santiago provided
MR !685
to fix the documentation.
- Anupa prepared a bits post for Outreachy interns
announcement
along with T ssia Cam es Ara jo and worked on publicity team tasks.
ruby3.4 source package is already
available in experimental, also ruby-defaults added support to
Ruby 3.4. Lucas rebuilt all reverse dependencies against this new version of the
interpreter and published the results here.
Lucas also reached out to some stakeholders to coordinate the work.
Next steps are: 1) announcing the results to the whole team and asking for help
to fix packages failing to build against the new interpreter; 2) file bugs
against packages FTBFSing against Ruby 3.4 which are not fixed yet; 3) once we
have a low number of build failures against Ruby 3.4, ask the Debian Release
team to start the transition in unstable.
Surviving scraper traffic in Debian CI, by Antonio Terceiro
Like most of the open web, Debian Continuous Integration
has been struggling for a while to keep up with the insatiable hunger from data
scrapers everywhere. Solving this involved a lot of trial and error; the final
result seems to be stable, and consists of two parts.
First, all Debian CI data pages, except the direct links to test log files
(such as those provided by the Release Team s testing migration excuses), now
require users to be authenticated before being accessed. This means that the
Debian CI data is no longer publicly browseable, which is a bit sad. However,
this is where we are now.
Additionally, there is now a fail2ban powered firewall-level access limitation
for clients that display an abusive access pattern. This went through several
iterations, with some of them unfortunately blocking legitimate Debian
contributors, but the current state seems to strike a good balance between
blocking scrapers and not blocking real users. Please get in touch with the team
on the #debci OFTC channel if you are affected by this.
A hybrid dependency solver for crossqa.debian.net, by Helmut Grohne
crossqa.debian.net continuously cross builds
packages from the Debian archive. Like Debian s native build infrastructure, it
uses dose-builddebcheck to determine whether a package s dependencies can be
satisfied before attempting a build. About one third of Debian s packages fail
this check, so understanding the reasons is key to improving cross building.
Unfortunately, dose-builddebcheck stops after reporting the first problem and
does not display additional ones.
To address this, a greedy solver implemented in Python now examines each
build-dependency individually and can report multiple causes. dose-builddebcheck
is still used as a fall-back when the greedy solver does not identify any
problems. The report for bazel-bootstrap
is a lengthy example.
rebootstrap, by Helmut Grohne
Due to the changes suggested by Loongson earlier, rebootstrap now adds
debhelper to its final installability test and builds a few more packages
required for installing it. It also now uses a variant of build-essential that
has been marked Multi-Arch: same
(see foundational work
from last year).
This in turn made the use of a non-default GCC version more difficult and
required more work to make it work for gcc-16 from experimental. Ongoing
archive changes temporarily regressed building fribidi and dash.
libselinux and groff have received patches for architecture specific changes
and libverto has been NMUed to remove the glib2.0 dependency.
Miscellaneous contributions
- Stefano did some administrative work on debian.social and debian.net
instances and Debian reimbursements.
- Stefano did routine updates of
python-authlib, python-mitogen, xdot.
- Stefano spent several hours discussing Debian s Python package layout with the
PyPA upstream community. Debian has ended up with a very different on-disk
installed Python layout than other distributions, and this continues to cause
some frustration in many communities that have to have special workarounds to
handle it. This ended up impacting cross builds as Helmut discovered.
- Rapha l set up Debusine workflows
for the various backports repositories on debusine.debian.net.
- Zulip is not yet in Debian (RFP in #800052),
but Rapha l helped on the French translation as he is experimenting with that
discussion platform.
- Antonio performed several routine Salsa maintenance tasks, including
fixing salsa-nm-sync,
the service that synchronizes project members data from LDAP to Salsa, which had
been broken since salsa.debian.org was upgraded to
trixie .
- Antonio deployed a new amd64 worker host for Debian CI.
- Antonio did several DebConf technical and administrative bits, including but
adding support for custom check-in/check-out dates
in the MiniDebConf registration module, publishing a
call for bids for DebConf27.
- Carles reviewed and submitted 14 Catalan translations using
po-debconf-manager.
- Carles improved
po-debconf-manager: added delete-package command,
show-information now uses properly formatted output (YAML), it now attaches
the translation on the bug reports for which a merge request has been opened too
long.
- Carles investigated why some packages appeared in
po-debconf-manager but not
in the Debian l10n list.
Turns out that some packages had debian/po/templates.pot (appearing in
po-debconf-manager) but not the POTFILES.in file as expected.
Created a script
to find out which packages were in this or similar situation and
reported bugs.
- Carles tested and documented how to set
up voices (
mbrola and festival) if using Orca speech synthesizer. Commented
a few issues and possible improvements in the debian-accessibility list.
- Helmut sent patches for 48 cross build failures and initiated discussions on
how to deal with two non-trivial matters. Besides Python mentioned above,
CMake introduced a
cmake_pkg_config builtin which is
not aware of the host architecture. He also
forwarded a Meson patch upstream.
- Thorsten uploaded a new upstream version of
cups to fix a nasty bug that was
introduced by the latest security update.
- Along with many other Python 3.14 fixes, Colin
fixed a
tricky segfault in python-confluent-kafka
after a helpful debugging hint from upstream.
- Colin upstreamed an improved version of an
OpenSSH patch we ve been carrying
since 2008 to fix misleading verbose output from scp.
- Colin used Debusine to coordinate transitions for
astroid and pygments,
and wrote up the astroid case
on his blog.
- Emilio helped with various transitions, and provided a build fix for
opencv
for the ffmpeg 8 transition.
- Emilio tested the GNOME updates for trixie proposed updates (
gnome-shell,
mutter, glib2.0).
- Santiago helped to review the status of how to test different build profiles
in parallel on the same pipeline, using the test-build-profiles job. This means,
for example, to simultaneously test build profiles such as
nocheck and nodoc
for the same git tree. Finally, Santiago provided
MR !685
to fix the documentation.
- Anupa prepared a bits post for Outreachy interns
announcement
along with T ssia Cam es Ara jo and worked on publicity team tasks.
dose-builddebcheck to determine whether a package s dependencies can be
satisfied before attempting a build. About one third of Debian s packages fail
this check, so understanding the reasons is key to improving cross building.
Unfortunately, dose-builddebcheck stops after reporting the first problem and
does not display additional ones.
To address this, a greedy solver implemented in Python now examines each
build-dependency individually and can report multiple causes. dose-builddebcheck
is still used as a fall-back when the greedy solver does not identify any
problems. The report for bazel-bootstrap
is a lengthy example.
rebootstrap, by Helmut Grohne
Due to the changes suggested by Loongson earlier, rebootstrap now adds
debhelper to its final installability test and builds a few more packages
required for installing it. It also now uses a variant of build-essential that
has been marked Multi-Arch: same
(see foundational work
from last year).
This in turn made the use of a non-default GCC version more difficult and
required more work to make it work for gcc-16 from experimental. Ongoing
archive changes temporarily regressed building fribidi and dash.
libselinux and groff have received patches for architecture specific changes
and libverto has been NMUed to remove the glib2.0 dependency.
Miscellaneous contributions
- Stefano did some administrative work on debian.social and debian.net
instances and Debian reimbursements.
- Stefano did routine updates of
python-authlib, python-mitogen, xdot.
- Stefano spent several hours discussing Debian s Python package layout with the
PyPA upstream community. Debian has ended up with a very different on-disk
installed Python layout than other distributions, and this continues to cause
some frustration in many communities that have to have special workarounds to
handle it. This ended up impacting cross builds as Helmut discovered.
- Rapha l set up Debusine workflows
for the various backports repositories on debusine.debian.net.
- Zulip is not yet in Debian (RFP in #800052),
but Rapha l helped on the French translation as he is experimenting with that
discussion platform.
- Antonio performed several routine Salsa maintenance tasks, including
fixing salsa-nm-sync,
the service that synchronizes project members data from LDAP to Salsa, which had
been broken since salsa.debian.org was upgraded to
trixie .
- Antonio deployed a new amd64 worker host for Debian CI.
- Antonio did several DebConf technical and administrative bits, including but
adding support for custom check-in/check-out dates
in the MiniDebConf registration module, publishing a
call for bids for DebConf27.
- Carles reviewed and submitted 14 Catalan translations using
po-debconf-manager.
- Carles improved
po-debconf-manager: added delete-package command,
show-information now uses properly formatted output (YAML), it now attaches
the translation on the bug reports for which a merge request has been opened too
long.
- Carles investigated why some packages appeared in
po-debconf-manager but not
in the Debian l10n list.
Turns out that some packages had debian/po/templates.pot (appearing in
po-debconf-manager) but not the POTFILES.in file as expected.
Created a script
to find out which packages were in this or similar situation and
reported bugs.
- Carles tested and documented how to set
up voices (
mbrola and festival) if using Orca speech synthesizer. Commented
a few issues and possible improvements in the debian-accessibility list.
- Helmut sent patches for 48 cross build failures and initiated discussions on
how to deal with two non-trivial matters. Besides Python mentioned above,
CMake introduced a
cmake_pkg_config builtin which is
not aware of the host architecture. He also
forwarded a Meson patch upstream.
- Thorsten uploaded a new upstream version of
cups to fix a nasty bug that was
introduced by the latest security update.
- Along with many other Python 3.14 fixes, Colin
fixed a
tricky segfault in python-confluent-kafka
after a helpful debugging hint from upstream.
- Colin upstreamed an improved version of an
OpenSSH patch we ve been carrying
since 2008 to fix misleading verbose output from scp.
- Colin used Debusine to coordinate transitions for
astroid and pygments,
and wrote up the astroid case
on his blog.
- Emilio helped with various transitions, and provided a build fix for
opencv
for the ffmpeg 8 transition.
- Emilio tested the GNOME updates for trixie proposed updates (
gnome-shell,
mutter, glib2.0).
- Santiago helped to review the status of how to test different build profiles
in parallel on the same pipeline, using the test-build-profiles job. This means,
for example, to simultaneously test build profiles such as
nocheck and nodoc
for the same git tree. Finally, Santiago provided
MR !685
to fix the documentation.
- Anupa prepared a bits post for Outreachy interns
announcement
along with T ssia Cam es Ara jo and worked on publicity team tasks.
- Stefano did some administrative work on debian.social and debian.net instances and Debian reimbursements.
- Stefano did routine updates of
python-authlib,python-mitogen,xdot. - Stefano spent several hours discussing Debian s Python package layout with the PyPA upstream community. Debian has ended up with a very different on-disk installed Python layout than other distributions, and this continues to cause some frustration in many communities that have to have special workarounds to handle it. This ended up impacting cross builds as Helmut discovered.
- Rapha l set up Debusine workflows for the various backports repositories on debusine.debian.net.
- Zulip is not yet in Debian (RFP in #800052), but Rapha l helped on the French translation as he is experimenting with that discussion platform.
- Antonio performed several routine Salsa maintenance tasks, including fixing salsa-nm-sync, the service that synchronizes project members data from LDAP to Salsa, which had been broken since salsa.debian.org was upgraded to trixie .
- Antonio deployed a new amd64 worker host for Debian CI.
- Antonio did several DebConf technical and administrative bits, including but adding support for custom check-in/check-out dates in the MiniDebConf registration module, publishing a call for bids for DebConf27.
- Carles reviewed and submitted 14 Catalan translations using po-debconf-manager.
- Carles improved
po-debconf-manager: added delete-package command, show-information now uses properly formatted output (YAML), it now attaches the translation on the bug reports for which a merge request has been opened too long. - Carles investigated why some packages appeared in
po-debconf-managerbut not in the Debian l10n list. Turns out that some packages had debian/po/templates.pot (appearing inpo-debconf-manager) but not the POTFILES.in file as expected. Created a script to find out which packages were in this or similar situation and reported bugs. - Carles tested and documented how to set
up voices (
mbrolaandfestival) if using Orca speech synthesizer. Commented a few issues and possible improvements in the debian-accessibility list. - Helmut sent patches for 48 cross build failures and initiated discussions on
how to deal with two non-trivial matters. Besides Python mentioned above,
CMake introduced a
cmake_pkg_configbuiltin which is not aware of the host architecture. He also forwarded a Meson patch upstream. - Thorsten uploaded a new upstream version of
cupsto fix a nasty bug that was introduced by the latest security update. - Along with many other Python 3.14 fixes, Colin fixed a tricky segfault in python-confluent-kafka after a helpful debugging hint from upstream.
- Colin upstreamed an improved version of an
OpenSSHpatch we ve been carrying since 2008 to fix misleading verbose output from scp. - Colin used Debusine to coordinate transitions for
astroidandpygments, and wrote up the astroid case on his blog. - Emilio helped with various transitions, and provided a build fix for
opencvfor theffmpeg 8transition. - Emilio tested the GNOME updates for trixie proposed updates (
gnome-shell,mutter,glib2.0). - Santiago helped to review the status of how to test different build profiles
in parallel on the same pipeline, using the test-build-profiles job. This means,
for example, to simultaneously test build profiles such as
nocheckandnodocfor the same git tree. Finally, Santiago provided MR !685 to fix the documentation. - Anupa prepared a bits post for Outreachy interns announcement along with T ssia Cam es Ara jo and worked on publicity team tasks.

Another short status update of what happened on my side last month. Hand holding the
release machinery for
So, for the first year, this year s DebConf had the DebConf Academic Track ,
that is, content for a one-day-long set of short sessions, for which of them
there was a written article presenting the content often with a very academic
format, but not necessarily. I hope that for future DebConfs we will continue to
hold this track, and that we can help bridge the gap: to get people that are
not usually from the academic / universitary prepare content that will be
formally expressed and included in a long-lasting, indexed book of
proceedings. We did have (informal) proceedings in many of the early DebConfs,
and I m very happy to regain that, but with 20 years of better practices.
Anyway, of course, I took the opportunity to join this experiment, and together
with my Mexican colleague Tzolkin Gardu o who is finishing her PhD here in
France (or should I say, second to her, as she is the true leading author of our
work). And here you can see the paper we submitted to the DebConf Academic
Track, which will be published soon:
On 26th and 27th April we held a Debian bug-squashing party near
Leuven, Belgium. Several longstanding and new Debian contributors
gathered to work through some of the highest priority bugs affecting
the upcoming release of Debian 13 trixie .
We were hosted by the
Having setup an
Like each month, have a look at the work funded by



It wouldn t be inaccurate to say that I ve had a lot on my plate in the last few years, and that I have a *huge* backlog of little tasks to finish. Just last week, I finally got to all my keysigning from DebConf22. This week, I m at MiniDebConf Germany in Hamburg. It s the second time I m here! And it s great already. Last year I drafted a blog entry, but never got around to publishing it. So, in order to mentally tick off yet another thing, here follows a somewhat imperfect (I had to delete a lot of short-hand because I didn t know what it means anymore), but at least published post about my activities from a year ago.
This week (well, last year) I attended my first ever in-person 

I wrote the
Wrong sort of shim, but canned language bindings would be handy
This is what I imagine it looks like inside these libraries











With the end of the year approaching fast, I thought putting my year in
retrospective via music would be a fun thing to do.
Albums
In 2022, I added 51 new albums to my collection nearly one a week! I listed
them below in the order in which I acquired them.
I purchased most of these albums when I could and borrowed the rest at
libraries. If you want to browse though, I added links to the album covers
pointing either to websites where you can buy them or to Discogs when digital
copies weren't available