As part of my work at Collabora, I work among other things on Apertis which is a Debian derivative. Because upstreaming our work is a key part of the Apertis policy and more broadly to the Collabora policy, thus it allows me to contribute to Debian.

Debian

Here is a list of contribution I have done during the previous month:

  • pipewire, the new default audio server of all major Linux distributions, was updated to 1.0.1. As usual, this new version was also uploaded to bookworm-backports and to bullseye-backports-sloppy allowing users of previous Debian releases to enjoy improvements of PipeWire.
  • wireplumber, the session/policy manager of PipeWire, was updated to 0.4.81 in the experimental repository making it easier for users to test the future 0.5 version. Based on the Debian Popularity Contest, some users are already playing with this new version. So, don’t hesitate to join the party and to report any bugs to ensure the future 0.5 doesn’t contain any regression.
  • roc-toolkit, a library for real-time audio streaming over the network, this is an optional dependency of pipewire with a long-standing user request to build the pipewire module. roc-toolkit was finally packaged in Debian in November, but without all features enabled. Indeed, it relies on openfec (which was not avaible in Debian) to recover lost data with unreliable networks. This feature is now enabled in the last revision of the Debian package.
  • openfec was accepted in Debian after having clarified a license issue with the original author of the LDPC codes.

  • libcamera, an open source camera stack and framework allowing to control embedded cameras. It was updated to 0.2.0. Not sure yet how to handle the backport since this version introduce a SONAME change and the related pipewire changes are not backward compatible that means I will have to revert them to continue backporting new pipewire versions or I will have to backport libcamera0.2. Not sure if it’s allowed by the Debian backport policy due to the SONAME change. Let’s see how I will manage that without hurting our friends from Mobian which are probably the main users of libcamera.
  • weston, the reference implementation of a Wayland compositor, was updated to 13.0.0. For a nice summary by Marius Vlad see his blog post.
  • wayland-protocols, adds functionality not available in the Wayland core protocol, was updated to 1.33. This new version is required by the next version of Mutter.

  • optee-os, a kind of mini OS running in the ARM TrustZone. optee-os is used to enable u-boot support for some boards like SK-AM62. It was initially rejected from Debian because of the embedded libraries with sensitive parts like mbedtls and libtomcrypt which obviously doesn’t make the life of the Debian Security Team easier. I re-uploaded this package by trying to explain that optee-os is not a standard component of Debian, but a firmware which cannot use libraries from Debian. Let’s hope that’s enough to get it accepted in Debian.
  • onnxruntime, a cross-platform inference and training machine-learning accelerator, was also rejected from Debian because the upstream tarball contains a lot of datasets with unclear license. See the unofficial Debian ML-Policy for a nice explanation. So, I excluded all datasets from the upstream tarball, at least until upstream clarifies their license, and re-uploaded the package to the NEW queue. Unfortunately, due to missing datasets I had to disable tests at build time for now. The packaged version is not the latest one since the latest version depends on random snapshot of other components that needs to be sync in Debian. But, because pytorch in Debian depends on other snapshot of the same set of components, it’s not easy to sort out this mess.

  • svt-av1, an AV1 encoder and decoder, was updat… heu no… I only updated its salsa repo to 1.8.0. I am a bit hesitant to update this package. Upstream doesn’t care about ABI breakage without SONAME change #2095 & #2099 which leads to downstream issues #1041302 & #1059068. I don’t have time to check if there is any ABI breakages for each new version and because I don’t use this package, I am thinking about orphaning it :(.

Apertis

Of course, most the Debian contributions above landed in Apertis (or will land in the next Apertis releases). Here’s some potentially interesting work I did in Apertis:

  • I worked on adding a new job in the ci-package-builder pipeline allowing to test the freshly built packages directly on target devices (like Raspberry Pi 4 or other Apertis Reference Hardware) via our LAVA system. As explained in the documentation I tried to make it partially compatible with Debian autopkgtests.

  • Apertis has a dashboard to monitor packages, over the past months it was improved to check more and more potential issues. But now, it reports too much issues, most of them are false positives which make the true positives issues hidden. I created a bunch of merge requests to stop reporting wrong issues. It should now be easier to identify which packages need love.

  • I updated agl-compositor, this is the default Wayland compositor used in Apertis. This compositor comes from the Automotive Grade Linux project. This new version is aligned to the last version of AGL aka Prickly Pike v16.0.3. It will probably be the final update because Apertis may switch to Weston instead.

  • I evaluated which parts of opencv need to be disabled to make opencv compliant with Apertis’s License Expectations. OpenCV is the biggest computer vision library, so it seems obvious we need it in Apertis as our platform was initially developed for the automotive industry. I mean how cars can be more autonomous without vision :).

  • Continue to homogenize the docker images used in our different gitlab pipelines, by moving away from Bullseye (ci-package-builder) and Ubuntu (apertis-toolchain) for Bookworm.

  • And finally, last day of the month, I added an Apertis profile to dpkg allowing us to enable more default build flags. For now, only -Wformat-overflow=2 and -Wformat-truncation=2 are enabled in addition to the Debian ones. These flags should not have real effects except reporting more warnings during a build about potential issues with format strings.

No promise, but I will try to publish updates like this every month with the hope it contains useful information, at least that should help me remember what I did :-D.

References

– Dylan