Freexian Collaborators: Debian Contributions: Tracker.debian.org updates, Salsa CI improvements, Coinstallable build-essential, Python 3.13 transition, Ruby 3.3 transition and more! (by Anupa Ann Joseph, Stefano Rivera)
Debian Contributions: 2024-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.
Tracker.debian.org updates, by Rapha l Hertzog
Profiting from end-of-year vacations, Rapha l prepared for
tracker.debian.org to be upgraded to Debian 12 bookworm by
getting rid of the remnants of python3-django-jsonfield
in the code (it was
superseded by a Django-native field). Thanks to Philipp Kern from the Debian
System Administrators team, the upgrade happened on December 23rd.
Rapha l also improved distro-tracker to better deal with invalid Maintainer
fields which recently caused multiples issues in the regular data updates
(#1089985,
MR 105).
While working on this, he filed
#1089648 asking
dpkg tools to error out early when maintainers make such mistakes.
Finally he provided feedback to multiple issues and merge requests
(MR 106,
issues #21,
#76,
#77), there seems to
be a surge of interest in distro-tracker lately. It would be nice if those new
contributors could stick around and help out with the significant backlog of
issues (in the Debian BTS, in
Salsa).
Salsa CI improvements, by Santiago Ruano Rinc n
Given that the Debian buildd network now relies on sbuild using the unshare
backend, and that Salsa CI s reproducibility testing needs to be reworked
(#399), Santiago
resumed the work for moving the build job to use sbuild. There was some related
work a few months ago that was focused on sbuild with the schroot and the sudo
backends, but those attempts were stalled for different reasons, including
discussions around the convenience of the move
(#296).
However, using sbuild and unshare avoids all of the drawbacks that have been
identified so far. Santiago is preparing two merge requests:
!568 to
introduce a new build image, and
!569
that moves all the extract-source related tasks to the build job. As mentioned
in the previous reports, this change will make it possible for more projects to
use the pipeline to build the packages (See
#195).
Additional advantages of this change include a more optimal way to test if a
package builds twice in a row: instead of actually building it twice, the Salsa
CI pipeline will configure sbuild to check if the clean target of debian/rules
correctly restores the source tree, saving some CPU cycles by avoiding one
build. Also, the images related to Ubuntu won t be needed anymore, since the
build job will create chroots for different distributions and vendors from a
single common build image. This will save space in the container registry. More
changes are to come, especially those related to handling projects that
customize the pipeline and make use of the extract-source job.
Coinstallable build-essential
, by Helmut Grohne
Building on the gcc-for-host
work of last December,
a notable patch turning build-essential
Multi-Arch: same
became feasible. Whilst the change is small, its implications
and foundations are not. We still install crossbuild-essential-$ARCH
for cross
building and due to a britney2
limitation, we cannot have it depend on the
host s C library. As a result, there are workarounds in place for
sbuild
and pbuilder.
In turning build-essential
Multi-Arch: same
, we may actually express these
dependencies directly as we install build-essential:$ARCH
instead.
The crossbuild-essential-$ARCH
packages will continue to be available as
transitional dummy packages.
Python 3.13 transition, by Colin Watson and Stefano Rivera
Building on last month s work,
Colin, Stefano, and other members of the Debian Python team fixed 3.13 compatibility
bugs in many more packages, allowing 3.13 to now be a supported but non-default
version in testing. The next stage will be to switch to it as the default version,
which will start soon. Stefano did some test-rebuilds of packages that only build
for the default Python 3 version, to find issues that will block the transition.
The default version transition typically shakes out some more issues in applications
that (unlike libraries) only test with the default Python version.
Colin also fixed Sphinx 8.0 compatibility issues
in many packages, which otherwise threatened to get in the way of this transition.
Ruby 3.3 transition, by Lucas Kanashiro
The Debian Ruby team decided to ship Ruby 3.3 in the next Debian release, and
Lucas took the lead of the interpreter transition with the assistance of the
rest of the team. In order to understand the impact of the new interpreter in
the ruby ecosystem, ruby-defaults was uploaded to experimental
adding ruby3.3 as an alternative interpreter, and a mass rebuild of reverse
dependencies was done here.
Initially, a couple of hundred packages were failing to build, after many rounds
of rebuilds, adjustments, and many uploads we are down to 30 package build failures,
of those, 21 packages were asked to be removed from testing and for the other 9,
bugs were filled.
All the information to track this transition can be found here.
Now, we are waiting for PHP 8.4 to finish to avoid any collision. Once it is done
the Ruby 3.3 transition will start in unstable.
Miscellaneous contributions
- Enrico Zini redesigned the way nm.debian.org stores
historical audit logs and personal data backups.
- Carles Pina submitted a new package (python-firebase-messaging) and prepared
updates for python3-ring-doorbell.
- Carles Pina developed further po-debconf-manager: better state transition,
fixed bugs, automated assigning translators and reviewers on edit, updating
po header files automatically, fixed bugs, etc.
- Carles Pina reviewed, submitted and followed up the debconf templates
translation (more than 20 packages) and translated some packages (about 5).
- Santiago continued to work on DebConf 25 organization related tasks,
including handling the logo survey and results. Stefano spent time on DebConf 25 too.
- Santiago continued the exploratory work about linux livepatching with Emmanuel Arias.
Santiago and Emmanuel found a challenge since kpatch won t fully support linux
in trixie and newer, so they are exploring alternatives such as
klp-build.
- Helmut maintained the /usr-move transition filing bugs in e.g.
bubblewrap
,
e2fsprogs
, libvpd-2.2-3
, and pam-tmpdir
and corresponding on related
issues such as kexec-tools
and live-build
. The removal of the usrmerge
package unfortunately broke debootstrap
and was quickly reverted. Continued
fallout is expected and will continue until trixie
is released.
- Helmut sent patches for 10 cross build failures and worked with Sandro Knau
on stuck Qt/KDE patches related to cross building.
- Helmut continued to maintain rebootstrap removing the need to build
gnu-efi
in the process.
- Helmut collaborated with Emanuele Rocca and Jochen Sprickerhof on an interesting
adventure in diagnosing why gcc would FTBFS in recent
sbuild.
- Helmut proposed supporting build concurrency limits in
coreutils s nproc.
As it turns out
nproc
is not a good place for this functionality.
- Colin worked with Sandro Tosi and Andrej Shadura to finish resolving the multipart
vs. python-multipart name conflict, as
mentioned last month.
- Colin upgraded 48 Python packages to new upstream versions, fixing four CVEs
and a number of compatibility bugs with recent Python versions.
- Colin issued an openssh bookworm update
with a number of fixes that had accumulated over the last year, especially
fixing GSS-API key exchange which had been quite broken in bookworm.
- Stefano fixed a minor bug in debian-reimbursements that was disallowing
combination PDFs containing JAL tickets, encoded in UTF-16.
- Stefano uploaded a stable update to PyPy3 in bookworm, catching up with security
issues resolved in cPython.
- Stefano fixed a regression in the eventlet from his Python 3.13 porting patch.
- Stefano continued discussing a forwarded patch (renaming the sysconfigdata module)
with cPython upstream, ending in a decision to drop the patch from Debian.
This will need some continued work.
- Anupa participated in the Debian Publicity team meeting in December,
which discussed the team activities done in 2024 and projects for 2025.
python3-django-jsonfield
in the code (it was
superseded by a Django-native field). Thanks to Philipp Kern from the Debian
System Administrators team, the upgrade happened on December 23rd.
Rapha l also improved distro-tracker to better deal with invalid Maintainer
fields which recently caused multiples issues in the regular data updates
(#1089985,
MR 105).
While working on this, he filed
#1089648 asking
dpkg tools to error out early when maintainers make such mistakes.
Finally he provided feedback to multiple issues and merge requests
(MR 106,
issues #21,
#76,
#77), there seems to
be a surge of interest in distro-tracker lately. It would be nice if those new
contributors could stick around and help out with the significant backlog of
issues (in the Debian BTS, in
Salsa).
Salsa CI improvements, by Santiago Ruano Rinc n
Given that the Debian buildd network now relies on sbuild using the unshare
backend, and that Salsa CI s reproducibility testing needs to be reworked
(#399), Santiago
resumed the work for moving the build job to use sbuild. There was some related
work a few months ago that was focused on sbuild with the schroot and the sudo
backends, but those attempts were stalled for different reasons, including
discussions around the convenience of the move
(#296).
However, using sbuild and unshare avoids all of the drawbacks that have been
identified so far. Santiago is preparing two merge requests:
!568 to
introduce a new build image, and
!569
that moves all the extract-source related tasks to the build job. As mentioned
in the previous reports, this change will make it possible for more projects to
use the pipeline to build the packages (See
#195).
Additional advantages of this change include a more optimal way to test if a
package builds twice in a row: instead of actually building it twice, the Salsa
CI pipeline will configure sbuild to check if the clean target of debian/rules
correctly restores the source tree, saving some CPU cycles by avoiding one
build. Also, the images related to Ubuntu won t be needed anymore, since the
build job will create chroots for different distributions and vendors from a
single common build image. This will save space in the container registry. More
changes are to come, especially those related to handling projects that
customize the pipeline and make use of the extract-source job.
Coinstallable build-essential
, by Helmut Grohne
Building on the gcc-for-host
work of last December,
a notable patch turning build-essential
Multi-Arch: same
became feasible. Whilst the change is small, its implications
and foundations are not. We still install crossbuild-essential-$ARCH
for cross
building and due to a britney2
limitation, we cannot have it depend on the
host s C library. As a result, there are workarounds in place for
sbuild
and pbuilder.
In turning build-essential
Multi-Arch: same
, we may actually express these
dependencies directly as we install build-essential:$ARCH
instead.
The crossbuild-essential-$ARCH
packages will continue to be available as
transitional dummy packages.
Python 3.13 transition, by Colin Watson and Stefano Rivera
Building on last month s work,
Colin, Stefano, and other members of the Debian Python team fixed 3.13 compatibility
bugs in many more packages, allowing 3.13 to now be a supported but non-default
version in testing. The next stage will be to switch to it as the default version,
which will start soon. Stefano did some test-rebuilds of packages that only build
for the default Python 3 version, to find issues that will block the transition.
The default version transition typically shakes out some more issues in applications
that (unlike libraries) only test with the default Python version.
Colin also fixed Sphinx 8.0 compatibility issues
in many packages, which otherwise threatened to get in the way of this transition.
Ruby 3.3 transition, by Lucas Kanashiro
The Debian Ruby team decided to ship Ruby 3.3 in the next Debian release, and
Lucas took the lead of the interpreter transition with the assistance of the
rest of the team. In order to understand the impact of the new interpreter in
the ruby ecosystem, ruby-defaults was uploaded to experimental
adding ruby3.3 as an alternative interpreter, and a mass rebuild of reverse
dependencies was done here.
Initially, a couple of hundred packages were failing to build, after many rounds
of rebuilds, adjustments, and many uploads we are down to 30 package build failures,
of those, 21 packages were asked to be removed from testing and for the other 9,
bugs were filled.
All the information to track this transition can be found here.
Now, we are waiting for PHP 8.4 to finish to avoid any collision. Once it is done
the Ruby 3.3 transition will start in unstable.
Miscellaneous contributions
- Enrico Zini redesigned the way nm.debian.org stores
historical audit logs and personal data backups.
- Carles Pina submitted a new package (python-firebase-messaging) and prepared
updates for python3-ring-doorbell.
- Carles Pina developed further po-debconf-manager: better state transition,
fixed bugs, automated assigning translators and reviewers on edit, updating
po header files automatically, fixed bugs, etc.
- Carles Pina reviewed, submitted and followed up the debconf templates
translation (more than 20 packages) and translated some packages (about 5).
- Santiago continued to work on DebConf 25 organization related tasks,
including handling the logo survey and results. Stefano spent time on DebConf 25 too.
- Santiago continued the exploratory work about linux livepatching with Emmanuel Arias.
Santiago and Emmanuel found a challenge since kpatch won t fully support linux
in trixie and newer, so they are exploring alternatives such as
klp-build.
- Helmut maintained the /usr-move transition filing bugs in e.g.
bubblewrap
,
e2fsprogs
, libvpd-2.2-3
, and pam-tmpdir
and corresponding on related
issues such as kexec-tools
and live-build
. The removal of the usrmerge
package unfortunately broke debootstrap
and was quickly reverted. Continued
fallout is expected and will continue until trixie
is released.
- Helmut sent patches for 10 cross build failures and worked with Sandro Knau
on stuck Qt/KDE patches related to cross building.
- Helmut continued to maintain rebootstrap removing the need to build
gnu-efi
in the process.
- Helmut collaborated with Emanuele Rocca and Jochen Sprickerhof on an interesting
adventure in diagnosing why gcc would FTBFS in recent
sbuild.
- Helmut proposed supporting build concurrency limits in
coreutils s nproc.
As it turns out
nproc
is not a good place for this functionality.
- Colin worked with Sandro Tosi and Andrej Shadura to finish resolving the multipart
vs. python-multipart name conflict, as
mentioned last month.
- Colin upgraded 48 Python packages to new upstream versions, fixing four CVEs
and a number of compatibility bugs with recent Python versions.
- Colin issued an openssh bookworm update
with a number of fixes that had accumulated over the last year, especially
fixing GSS-API key exchange which had been quite broken in bookworm.
- Stefano fixed a minor bug in debian-reimbursements that was disallowing
combination PDFs containing JAL tickets, encoded in UTF-16.
- Stefano uploaded a stable update to PyPy3 in bookworm, catching up with security
issues resolved in cPython.
- Stefano fixed a regression in the eventlet from his Python 3.13 porting patch.
- Stefano continued discussing a forwarded patch (renaming the sysconfigdata module)
with cPython upstream, ending in a decision to drop the patch from Debian.
This will need some continued work.
- Anupa participated in the Debian Publicity team meeting in December,
which discussed the team activities done in 2024 and projects for 2025.
build-essential
, by Helmut Grohne
Building on the gcc-for-host
work of last December,
a notable patch turning build-essential
Multi-Arch: same
became feasible. Whilst the change is small, its implications
and foundations are not. We still install crossbuild-essential-$ARCH
for cross
building and due to a britney2
limitation, we cannot have it depend on the
host s C library. As a result, there are workarounds in place for
sbuild
and pbuilder.
In turning build-essential
Multi-Arch: same
, we may actually express these
dependencies directly as we install build-essential:$ARCH
instead.
The crossbuild-essential-$ARCH
packages will continue to be available as
transitional dummy packages.
Python 3.13 transition, by Colin Watson and Stefano Rivera
Building on last month s work,
Colin, Stefano, and other members of the Debian Python team fixed 3.13 compatibility
bugs in many more packages, allowing 3.13 to now be a supported but non-default
version in testing. The next stage will be to switch to it as the default version,
which will start soon. Stefano did some test-rebuilds of packages that only build
for the default Python 3 version, to find issues that will block the transition.
The default version transition typically shakes out some more issues in applications
that (unlike libraries) only test with the default Python version.
Colin also fixed Sphinx 8.0 compatibility issues
in many packages, which otherwise threatened to get in the way of this transition.
Ruby 3.3 transition, by Lucas Kanashiro
The Debian Ruby team decided to ship Ruby 3.3 in the next Debian release, and
Lucas took the lead of the interpreter transition with the assistance of the
rest of the team. In order to understand the impact of the new interpreter in
the ruby ecosystem, ruby-defaults was uploaded to experimental
adding ruby3.3 as an alternative interpreter, and a mass rebuild of reverse
dependencies was done here.
Initially, a couple of hundred packages were failing to build, after many rounds
of rebuilds, adjustments, and many uploads we are down to 30 package build failures,
of those, 21 packages were asked to be removed from testing and for the other 9,
bugs were filled.
All the information to track this transition can be found here.
Now, we are waiting for PHP 8.4 to finish to avoid any collision. Once it is done
the Ruby 3.3 transition will start in unstable.
Miscellaneous contributions
- Enrico Zini redesigned the way nm.debian.org stores
historical audit logs and personal data backups.
- Carles Pina submitted a new package (python-firebase-messaging) and prepared
updates for python3-ring-doorbell.
- Carles Pina developed further po-debconf-manager: better state transition,
fixed bugs, automated assigning translators and reviewers on edit, updating
po header files automatically, fixed bugs, etc.
- Carles Pina reviewed, submitted and followed up the debconf templates
translation (more than 20 packages) and translated some packages (about 5).
- Santiago continued to work on DebConf 25 organization related tasks,
including handling the logo survey and results. Stefano spent time on DebConf 25 too.
- Santiago continued the exploratory work about linux livepatching with Emmanuel Arias.
Santiago and Emmanuel found a challenge since kpatch won t fully support linux
in trixie and newer, so they are exploring alternatives such as
klp-build.
- Helmut maintained the /usr-move transition filing bugs in e.g.
bubblewrap
,
e2fsprogs
, libvpd-2.2-3
, and pam-tmpdir
and corresponding on related
issues such as kexec-tools
and live-build
. The removal of the usrmerge
package unfortunately broke debootstrap
and was quickly reverted. Continued
fallout is expected and will continue until trixie
is released.
- Helmut sent patches for 10 cross build failures and worked with Sandro Knau
on stuck Qt/KDE patches related to cross building.
- Helmut continued to maintain rebootstrap removing the need to build
gnu-efi
in the process.
- Helmut collaborated with Emanuele Rocca and Jochen Sprickerhof on an interesting
adventure in diagnosing why gcc would FTBFS in recent
sbuild.
- Helmut proposed supporting build concurrency limits in
coreutils s nproc.
As it turns out
nproc
is not a good place for this functionality.
- Colin worked with Sandro Tosi and Andrej Shadura to finish resolving the multipart
vs. python-multipart name conflict, as
mentioned last month.
- Colin upgraded 48 Python packages to new upstream versions, fixing four CVEs
and a number of compatibility bugs with recent Python versions.
- Colin issued an openssh bookworm update
with a number of fixes that had accumulated over the last year, especially
fixing GSS-API key exchange which had been quite broken in bookworm.
- Stefano fixed a minor bug in debian-reimbursements that was disallowing
combination PDFs containing JAL tickets, encoded in UTF-16.
- Stefano uploaded a stable update to PyPy3 in bookworm, catching up with security
issues resolved in cPython.
- Stefano fixed a regression in the eventlet from his Python 3.13 porting patch.
- Stefano continued discussing a forwarded patch (renaming the sysconfigdata module)
with cPython upstream, ending in a decision to drop the patch from Debian.
This will need some continued work.
- Anupa participated in the Debian Publicity team meeting in December,
which discussed the team activities done in 2024 and projects for 2025.
Miscellaneous contributions
- Enrico Zini redesigned the way nm.debian.org stores
historical audit logs and personal data backups.
- Carles Pina submitted a new package (python-firebase-messaging) and prepared
updates for python3-ring-doorbell.
- Carles Pina developed further po-debconf-manager: better state transition,
fixed bugs, automated assigning translators and reviewers on edit, updating
po header files automatically, fixed bugs, etc.
- Carles Pina reviewed, submitted and followed up the debconf templates
translation (more than 20 packages) and translated some packages (about 5).
- Santiago continued to work on DebConf 25 organization related tasks,
including handling the logo survey and results. Stefano spent time on DebConf 25 too.
- Santiago continued the exploratory work about linux livepatching with Emmanuel Arias.
Santiago and Emmanuel found a challenge since kpatch won t fully support linux
in trixie and newer, so they are exploring alternatives such as
klp-build.
- Helmut maintained the /usr-move transition filing bugs in e.g.
bubblewrap
,
e2fsprogs
, libvpd-2.2-3
, and pam-tmpdir
and corresponding on related
issues such as kexec-tools
and live-build
. The removal of the usrmerge
package unfortunately broke debootstrap
and was quickly reverted. Continued
fallout is expected and will continue until trixie
is released.
- Helmut sent patches for 10 cross build failures and worked with Sandro Knau
on stuck Qt/KDE patches related to cross building.
- Helmut continued to maintain rebootstrap removing the need to build
gnu-efi
in the process.
- Helmut collaborated with Emanuele Rocca and Jochen Sprickerhof on an interesting
adventure in diagnosing why gcc would FTBFS in recent
sbuild.
- Helmut proposed supporting build concurrency limits in
coreutils s nproc.
As it turns out
nproc
is not a good place for this functionality.
- Colin worked with Sandro Tosi and Andrej Shadura to finish resolving the multipart
vs. python-multipart name conflict, as
mentioned last month.
- Colin upgraded 48 Python packages to new upstream versions, fixing four CVEs
and a number of compatibility bugs with recent Python versions.
- Colin issued an openssh bookworm update
with a number of fixes that had accumulated over the last year, especially
fixing GSS-API key exchange which had been quite broken in bookworm.
- Stefano fixed a minor bug in debian-reimbursements that was disallowing
combination PDFs containing JAL tickets, encoded in UTF-16.
- Stefano uploaded a stable update to PyPy3 in bookworm, catching up with security
issues resolved in cPython.
- Stefano fixed a regression in the eventlet from his Python 3.13 porting patch.
- Stefano continued discussing a forwarded patch (renaming the sysconfigdata module)
with cPython upstream, ending in a decision to drop the patch from Debian.
This will need some continued work.
- Anupa participated in the Debian Publicity team meeting in December,
which discussed the team activities done in 2024 and projects for 2025.
bubblewrap
,
e2fsprogs
, libvpd-2.2-3
, and pam-tmpdir
and corresponding on related
issues such as kexec-tools
and live-build
. The removal of the usrmerge
package unfortunately broke debootstrap
and was quickly reverted. Continued
fallout is expected and will continue until trixie
is released.gnu-efi
in the process.nproc
is not a good place for this functionality.