Freexian Collaborators: Debian Contributions: OpenMPI transitions, cPython 3.12.7+ update uploads, Python 3.13 Transition, and more! (by Anupa Ann Joseph, Stefano Rivera)
Debian Contributions: 2024-11
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.
Transition management, by Emilio Pozuelo Monfort
Emilio has been helping finish the mpi-defaults switch to mpich on 32-bit
architectures, and the openmpi transitions.
This involves filing bugs for the reverse dependencies, doing NMUs, and
requesting removals for outdated (Not Built from Source) binaries on 32-bit
architectures where openmpi is no longer available. Those transitions got
entangled with a few others, such as the petsc stack, and were blocking many
packages from migrating to testing. These transitions were completed in early
December.
cPython 3.12.7+ update uploads, by Stefano Rivera
Python 3.12 had failed to build on mips64el,
due to an obscure dh_strip
failure. The mips64el porters never figured it out,
but the missing build on mips64el was blocking migration to Debian testing.
After waiting a month, enough changes had accumulated in the upstream 3.12
maintenance git branch that we could apply them in the hope of changing the
output enough to avoid breaking dh_strip
. This worked.
Of course there were other things to deal with too. A test started failing due
to a Debian-specific patch we carry for python3.x-minimal, and it needed to be
reworked. And Stefano forgot to strip the trailing + from PY_VERSION
, which
confuses some python
libraries. This always requires another patch when applying git updates from the
maintenance branch. Stefano added a build-time check to catch this mistake in
the future. Python 3.12.7 migrated.
Python 3.13 Transition, by Stefano Rivera and Colin Watson
During November the Python 3.13-add
transition
started. This is the first stage of supporting a new version of Python in Debian
archive (after preparatory work), adding it as a new supported but non-default
version. All packages with compiled Python extensions need to be re-built to add
support for the new version.
We have covered the lead-up to this transition in the past. Due to preparation,
many of the failures we hit were expected and we had patches waiting in the bug
tracker. These could be NMUed to get the transition moving. Others had been
known about but hadn t been worked on, yet.
Some other packages ran into new issues, as we got further into the transition
than we d been able to in preparation. The whole Debian Python team has been
helping with this work.
The rebuild stage of the 3.13-add transition is now over, but many packages
need work before
britney will let python3-defaults migrate to testing.
Limiting build concurrency based on available RAM, by Helmut Grohne
In recent years, the concurrency of CPUs has been increasing as has the demand
for RAM by linkers. What has not been increasing as quickly is the RAM supply in
typical machines. As a result, we more frequently run into situations where the
package builds exhaust memory when building at full concurrency. Helmut
initiated a
discussion about
generalizing an approach to this in Debian packages. Researching existing code
that limits concurrency as well as providing possible extensions to debhelper
and dpkg
to provide concurrency limits based on available system RAM. Thus far
there is consensus on the need for a more general solution, but ideas are still
being collected for the precise solution.
MiniDebConf Toulouse at Capitole du Libre
The whole Freexian Collaborator team attended MiniDebConf
Toulouse, part of the Capitole du
Libre event. Several members of the team gave
talks:
- Santiago spoke on Linux Live Patching in
Debian,
presenting an update on the idea since DebConf 24. This includes the
initial requirements for the livepatch package format, that would be used to
distribute the livepatches.
- Stefano, Colin, Enrico, and Carles spoke on Using Debusine to Automate
QA.
- Santiago and Roberto spoke on How LTS Goes Beyond
LTS.
- Helmut spoke on Cross
Building.
- Carles gave a lightning talk on
po-debconf-manager.
Stefano and Anupa worked as part of the video team, streaming and recording the
event s talks.
Miscellaneous contributions
-
Stefano looked into packaging the latest upstream python-falcon version in
Debian, in support of the Python 3.13 transition. This appeared to break
python-hug, which is sadly looking neglected upstream, and the best course of
action is probably its removal from Debian.
-
Stefano uploaded videos from various 2024 Debian events to PeerTube and
YouTube.
-
Stefano and Santiago visited the site for DebConf 2025 in Brest, after the
MiniDebConf in Toulouse, to meet with the local team and scout out the venue.
The on-going DebConf 25 organization work of last month also included
handling the logo and artwork call for
proposals.
-
Stefano helped the press team to edit a post for bits.debian.org on
OpenStreetMap s migration to
Debian.
-
Carles implemented multiple language support on
po-debconf-manager and
tested it using Portuguese-Brazilian during MiniDebConf Toulouse. The system was
also tested and improved by reviewing more than 20 translations to Catalan,
creating merge requests for those packages, and providing user support to new
users. Additionally, Carles implemented better status transitions, configuration
keys management and other small improvements.
-
Helmut sent 32 patches for cross build failures. The
wireplumber one was an interactive
collaboration with Dylan A ssi.
-
Helmut continued to monitor the
/usr
-move, sent a patch for lib64readline8
and continued several older patch conversations. lintian
now reports some
aliasing issues in unstable
.
-
Helmut initiated a discussion on the semantics of *-for-host
packages. More
feedback is welcome.
-
Helmut improved the crossqa.debian.net
infrastructure to fail running
lintian
less often in larger packages.
-
Helmut continued maintaining
rebootstrap
mostly dropping applied patches and
continuing discussions of submitted patches.
-
Helmut prepared a non-maintainer upload of
gzip
for several long-standing
bugs.
-
Colin came up with a plan for resolving the multipart vs. python-multipart
name conflict, and began work on converting
reverse-dependencies.
-
Colin upgraded 42 Python packages to new upstream versions. Some were
complex: python-catalogue had some upstream version
confusion, pydantic and
rpds-py involved several Rust package upgrades as prerequisites, and
python-urllib3 involved first packaging python-quart-trio and then vendoring an
unpackaged test-dependency.
-
Colin contributed Incus support to needrestart upstream.
-
Lucas set up a machine to do a rebuild of all ruby reverse dependencies to
check what will be broken by adding ruby 3.3 as an alternative interpreter. The
tool used for this is
mass-rebuild and the initial
rebuilds have already started. The ruby interpreter maintainers are planning to
experiment with debusine next time.
-
Lucas is organizing a Debian Ruby
sprint towards the end of
January in Paris. The plan of the team is to finish any missing bits of Ruby 3.3
transition at the time, try to push Rails 7 transition and fix RC bugs affecting
the ruby ecosystem in Debian.
-
Anupa attended a Debian Publicity team meeting in-person during MiniDebCamp
Toulouse.
-
Anupa moderated and posted in the Debian Administrator group in LinkedIn.
cPython 3.12.7+ update uploads, by Stefano Rivera
Python 3.12 had failed to build on mips64el,
due to an obscure dh_strip
failure. The mips64el porters never figured it out,
but the missing build on mips64el was blocking migration to Debian testing.
After waiting a month, enough changes had accumulated in the upstream 3.12
maintenance git branch that we could apply them in the hope of changing the
output enough to avoid breaking dh_strip
. This worked.
Of course there were other things to deal with too. A test started failing due
to a Debian-specific patch we carry for python3.x-minimal, and it needed to be
reworked. And Stefano forgot to strip the trailing + from PY_VERSION
, which
confuses some python
libraries. This always requires another patch when applying git updates from the
maintenance branch. Stefano added a build-time check to catch this mistake in
the future. Python 3.12.7 migrated.
Python 3.13 Transition, by Stefano Rivera and Colin Watson
During November the Python 3.13-add
transition
started. This is the first stage of supporting a new version of Python in Debian
archive (after preparatory work), adding it as a new supported but non-default
version. All packages with compiled Python extensions need to be re-built to add
support for the new version.
We have covered the lead-up to this transition in the past. Due to preparation,
many of the failures we hit were expected and we had patches waiting in the bug
tracker. These could be NMUed to get the transition moving. Others had been
known about but hadn t been worked on, yet.
Some other packages ran into new issues, as we got further into the transition
than we d been able to in preparation. The whole Debian Python team has been
helping with this work.
The rebuild stage of the 3.13-add transition is now over, but many packages
need work before
britney will let python3-defaults migrate to testing.
Limiting build concurrency based on available RAM, by Helmut Grohne
In recent years, the concurrency of CPUs has been increasing as has the demand
for RAM by linkers. What has not been increasing as quickly is the RAM supply in
typical machines. As a result, we more frequently run into situations where the
package builds exhaust memory when building at full concurrency. Helmut
initiated a
discussion about
generalizing an approach to this in Debian packages. Researching existing code
that limits concurrency as well as providing possible extensions to debhelper
and dpkg
to provide concurrency limits based on available system RAM. Thus far
there is consensus on the need for a more general solution, but ideas are still
being collected for the precise solution.
MiniDebConf Toulouse at Capitole du Libre
The whole Freexian Collaborator team attended MiniDebConf
Toulouse, part of the Capitole du
Libre event. Several members of the team gave
talks:
- Santiago spoke on Linux Live Patching in
Debian,
presenting an update on the idea since DebConf 24. This includes the
initial requirements for the livepatch package format, that would be used to
distribute the livepatches.
- Stefano, Colin, Enrico, and Carles spoke on Using Debusine to Automate
QA.
- Santiago and Roberto spoke on How LTS Goes Beyond
LTS.
- Helmut spoke on Cross
Building.
- Carles gave a lightning talk on
po-debconf-manager.
Stefano and Anupa worked as part of the video team, streaming and recording the
event s talks.
Miscellaneous contributions
-
Stefano looked into packaging the latest upstream python-falcon version in
Debian, in support of the Python 3.13 transition. This appeared to break
python-hug, which is sadly looking neglected upstream, and the best course of
action is probably its removal from Debian.
-
Stefano uploaded videos from various 2024 Debian events to PeerTube and
YouTube.
-
Stefano and Santiago visited the site for DebConf 2025 in Brest, after the
MiniDebConf in Toulouse, to meet with the local team and scout out the venue.
The on-going DebConf 25 organization work of last month also included
handling the logo and artwork call for
proposals.
-
Stefano helped the press team to edit a post for bits.debian.org on
OpenStreetMap s migration to
Debian.
-
Carles implemented multiple language support on
po-debconf-manager and
tested it using Portuguese-Brazilian during MiniDebConf Toulouse. The system was
also tested and improved by reviewing more than 20 translations to Catalan,
creating merge requests for those packages, and providing user support to new
users. Additionally, Carles implemented better status transitions, configuration
keys management and other small improvements.
-
Helmut sent 32 patches for cross build failures. The
wireplumber one was an interactive
collaboration with Dylan A ssi.
-
Helmut continued to monitor the
/usr
-move, sent a patch for lib64readline8
and continued several older patch conversations. lintian
now reports some
aliasing issues in unstable
.
-
Helmut initiated a discussion on the semantics of *-for-host
packages. More
feedback is welcome.
-
Helmut improved the crossqa.debian.net
infrastructure to fail running
lintian
less often in larger packages.
-
Helmut continued maintaining
rebootstrap
mostly dropping applied patches and
continuing discussions of submitted patches.
-
Helmut prepared a non-maintainer upload of
gzip
for several long-standing
bugs.
-
Colin came up with a plan for resolving the multipart vs. python-multipart
name conflict, and began work on converting
reverse-dependencies.
-
Colin upgraded 42 Python packages to new upstream versions. Some were
complex: python-catalogue had some upstream version
confusion, pydantic and
rpds-py involved several Rust package upgrades as prerequisites, and
python-urllib3 involved first packaging python-quart-trio and then vendoring an
unpackaged test-dependency.
-
Colin contributed Incus support to needrestart upstream.
-
Lucas set up a machine to do a rebuild of all ruby reverse dependencies to
check what will be broken by adding ruby 3.3 as an alternative interpreter. The
tool used for this is
mass-rebuild and the initial
rebuilds have already started. The ruby interpreter maintainers are planning to
experiment with debusine next time.
-
Lucas is organizing a Debian Ruby
sprint towards the end of
January in Paris. The plan of the team is to finish any missing bits of Ruby 3.3
transition at the time, try to push Rails 7 transition and fix RC bugs affecting
the ruby ecosystem in Debian.
-
Anupa attended a Debian Publicity team meeting in-person during MiniDebCamp
Toulouse.
-
Anupa moderated and posted in the Debian Administrator group in LinkedIn.
Limiting build concurrency based on available RAM, by Helmut Grohne
In recent years, the concurrency of CPUs has been increasing as has the demand
for RAM by linkers. What has not been increasing as quickly is the RAM supply in
typical machines. As a result, we more frequently run into situations where the
package builds exhaust memory when building at full concurrency. Helmut
initiated a
discussion about
generalizing an approach to this in Debian packages. Researching existing code
that limits concurrency as well as providing possible extensions to debhelper
and dpkg
to provide concurrency limits based on available system RAM. Thus far
there is consensus on the need for a more general solution, but ideas are still
being collected for the precise solution.
MiniDebConf Toulouse at Capitole du Libre
The whole Freexian Collaborator team attended MiniDebConf
Toulouse, part of the Capitole du
Libre event. Several members of the team gave
talks:
- Santiago spoke on Linux Live Patching in
Debian,
presenting an update on the idea since DebConf 24. This includes the
initial requirements for the livepatch package format, that would be used to
distribute the livepatches.
- Stefano, Colin, Enrico, and Carles spoke on Using Debusine to Automate
QA.
- Santiago and Roberto spoke on How LTS Goes Beyond
LTS.
- Helmut spoke on Cross
Building.
- Carles gave a lightning talk on
po-debconf-manager.
Stefano and Anupa worked as part of the video team, streaming and recording the
event s talks.
Miscellaneous contributions
-
Stefano looked into packaging the latest upstream python-falcon version in
Debian, in support of the Python 3.13 transition. This appeared to break
python-hug, which is sadly looking neglected upstream, and the best course of
action is probably its removal from Debian.
-
Stefano uploaded videos from various 2024 Debian events to PeerTube and
YouTube.
-
Stefano and Santiago visited the site for DebConf 2025 in Brest, after the
MiniDebConf in Toulouse, to meet with the local team and scout out the venue.
The on-going DebConf 25 organization work of last month also included
handling the logo and artwork call for
proposals.
-
Stefano helped the press team to edit a post for bits.debian.org on
OpenStreetMap s migration to
Debian.
-
Carles implemented multiple language support on
po-debconf-manager and
tested it using Portuguese-Brazilian during MiniDebConf Toulouse. The system was
also tested and improved by reviewing more than 20 translations to Catalan,
creating merge requests for those packages, and providing user support to new
users. Additionally, Carles implemented better status transitions, configuration
keys management and other small improvements.
-
Helmut sent 32 patches for cross build failures. The
wireplumber one was an interactive
collaboration with Dylan A ssi.
-
Helmut continued to monitor the
/usr
-move, sent a patch for lib64readline8
and continued several older patch conversations. lintian
now reports some
aliasing issues in unstable
.
-
Helmut initiated a discussion on the semantics of *-for-host
packages. More
feedback is welcome.
-
Helmut improved the crossqa.debian.net
infrastructure to fail running
lintian
less often in larger packages.
-
Helmut continued maintaining
rebootstrap
mostly dropping applied patches and
continuing discussions of submitted patches.
-
Helmut prepared a non-maintainer upload of
gzip
for several long-standing
bugs.
-
Colin came up with a plan for resolving the multipart vs. python-multipart
name conflict, and began work on converting
reverse-dependencies.
-
Colin upgraded 42 Python packages to new upstream versions. Some were
complex: python-catalogue had some upstream version
confusion, pydantic and
rpds-py involved several Rust package upgrades as prerequisites, and
python-urllib3 involved first packaging python-quart-trio and then vendoring an
unpackaged test-dependency.
-
Colin contributed Incus support to needrestart upstream.
-
Lucas set up a machine to do a rebuild of all ruby reverse dependencies to
check what will be broken by adding ruby 3.3 as an alternative interpreter. The
tool used for this is
mass-rebuild and the initial
rebuilds have already started. The ruby interpreter maintainers are planning to
experiment with debusine next time.
-
Lucas is organizing a Debian Ruby
sprint towards the end of
January in Paris. The plan of the team is to finish any missing bits of Ruby 3.3
transition at the time, try to push Rails 7 transition and fix RC bugs affecting
the ruby ecosystem in Debian.
-
Anupa attended a Debian Publicity team meeting in-person during MiniDebCamp
Toulouse.
-
Anupa moderated and posted in the Debian Administrator group in LinkedIn.
- Santiago spoke on Linux Live Patching in Debian, presenting an update on the idea since DebConf 24. This includes the initial requirements for the livepatch package format, that would be used to distribute the livepatches.
- Stefano, Colin, Enrico, and Carles spoke on Using Debusine to Automate QA.
- Santiago and Roberto spoke on How LTS Goes Beyond LTS.
- Helmut spoke on Cross Building.
- Carles gave a lightning talk on po-debconf-manager.
Miscellaneous contributions
-
Stefano looked into packaging the latest upstream python-falcon version in
Debian, in support of the Python 3.13 transition. This appeared to break
python-hug, which is sadly looking neglected upstream, and the best course of
action is probably its removal from Debian.
-
Stefano uploaded videos from various 2024 Debian events to PeerTube and
YouTube.
-
Stefano and Santiago visited the site for DebConf 2025 in Brest, after the
MiniDebConf in Toulouse, to meet with the local team and scout out the venue.
The on-going DebConf 25 organization work of last month also included
handling the logo and artwork call for
proposals.
-
Stefano helped the press team to edit a post for bits.debian.org on
OpenStreetMap s migration to
Debian.
-
Carles implemented multiple language support on
po-debconf-manager and
tested it using Portuguese-Brazilian during MiniDebConf Toulouse. The system was
also tested and improved by reviewing more than 20 translations to Catalan,
creating merge requests for those packages, and providing user support to new
users. Additionally, Carles implemented better status transitions, configuration
keys management and other small improvements.
-
Helmut sent 32 patches for cross build failures. The
wireplumber one was an interactive
collaboration with Dylan A ssi.
-
Helmut continued to monitor the
/usr
-move, sent a patch for lib64readline8
and continued several older patch conversations. lintian
now reports some
aliasing issues in unstable
.
-
Helmut initiated a discussion on the semantics of *-for-host
packages. More
feedback is welcome.
-
Helmut improved the crossqa.debian.net
infrastructure to fail running
lintian
less often in larger packages.
-
Helmut continued maintaining
rebootstrap
mostly dropping applied patches and
continuing discussions of submitted patches.
-
Helmut prepared a non-maintainer upload of
gzip
for several long-standing
bugs.
-
Colin came up with a plan for resolving the multipart vs. python-multipart
name conflict, and began work on converting
reverse-dependencies.
-
Colin upgraded 42 Python packages to new upstream versions. Some were
complex: python-catalogue had some upstream version
confusion, pydantic and
rpds-py involved several Rust package upgrades as prerequisites, and
python-urllib3 involved first packaging python-quart-trio and then vendoring an
unpackaged test-dependency.
-
Colin contributed Incus support to needrestart upstream.
-
Lucas set up a machine to do a rebuild of all ruby reverse dependencies to
check what will be broken by adding ruby 3.3 as an alternative interpreter. The
tool used for this is
mass-rebuild and the initial
rebuilds have already started. The ruby interpreter maintainers are planning to
experiment with debusine next time.
-
Lucas is organizing a Debian Ruby
sprint towards the end of
January in Paris. The plan of the team is to finish any missing bits of Ruby 3.3
transition at the time, try to push Rails 7 transition and fix RC bugs affecting
the ruby ecosystem in Debian.
-
Anupa attended a Debian Publicity team meeting in-person during MiniDebCamp
Toulouse.
-
Anupa moderated and posted in the Debian Administrator group in LinkedIn.
/usr
-move, sent a patch for lib64readline8
and continued several older patch conversations. lintian
now reports some
aliasing issues in unstable
.
lintian
less often in larger packages.
rebootstrap
mostly dropping applied patches and
continuing discussions of submitted patches.
gzip
for several long-standing
bugs.