Foundations Team Updates - Thursday 14 July 2022

Last week’s update is available at

1 Like


Dealing with an issue where installing libudev-dev upgrades libudev1 and then all reverse dependencies get removed because they depend on the old version of libudev1, for example udev Depends libudev1 (= ${binary:Version}). APT’s solver only implements upgrading packages on Breaks so a udev Depends libudev1 in combination with libudev1 Breaks udev (!= ${binary:Version}) would have had the intended effect. One would expect the versioned depends to be handled equally well.

In the course of this work, implemented two solver changes:

  • Implemented upgrading all other binaries in a source package when you upgrade (or newly install) one of them (merge request !247) - this targets kinetic.
  • Implemented upgrading installed reverse dependencies that would have broken Depends after an upgrade of the dependency (merge request !248) - to be SRUed.


  • Out Thursday and Friday (14, 15), then DebConf.

Out next week through Thursday, so sending a report early.

+1 Maintenance

  • bist: was meant to be removed from jammy-proposed when removed from jammy.
    Corrected this oversight now!
  • ruby-psych: previously removed because it build-depends on jruby which is incompatible with ruby3.0. There’s been no fixed jruby in Debian but there’s been
    another upload of ruby-psych; remove it again and add it to extra-removals to bring back if jruby gets fixed.
  • lomiri-app-launch: build-depends on libmirclient-dev, which is still present in Debian but has been removed from Ubuntu and isn’t coming back (per the Mir developers, and
    Canonical is upstream for Mir). lomiri-app-launch was removed from -proposed once before; removing it again.
  • indi-sbig: blocked because libsbig isn’t in the release pocket. libsbig has a broken
    build that builds a -dev package even if the runtime library package can’t be built. Uploaded the trivial fix, removed the binaries from unsupported archs, forwarded to
  • rally-openstack: there was an open update-excuse bug, LP: #1907228, which no longer applies. However, the current package fails to build. It does not fail to build in Debian. I didn’t investigate further so didn’t bother opening a new update-excuse bug which would show nothing more than the build log output.
  • gnunet-fuse: FTBFS because uses a non-standard pthread function call which is obsolete since glibc 2.34. As per, pthread_mutexattr_settype() should be used instead. There is a newer gnunet-fuse in Debian experimental but it still hasn’t fixed this, so made the trivial change, uploaded, forwarded to
  • pydantic: FTBFS in a non-obvious way. Not reproducible in Debian. Skipped.
  • mlucas: the binary is completely broken on ARM platforms because there’s architecture-specific code that tries to check /proc/cpuinfo, but it does it wrong, resulting in a syscall of:
    openat(AT_FDCWD, "$HOME/.mlucas.d//proc/cpuinfo", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
    There are many, many things wrong with this, but fundamentally it’s wrong for the code to be using its mlucas_fopen() wrapper instead of just calling fopen(). Patched, and sent to Unfortunately, after fixing the obvious bug, the arm64 build still fails with deeper test failures.
  • tiledarray: build-depends on libbtas-dev, which is nowhere in Debian or Ubuntu. Filed
  • libsass: symbols file differences on ppc64el due to building with -O3. Fixed and
    sent to
  • sqlmodel: all the tests fail at build time. This package uses pytest, so I checked whether the new upstream version of pytest from unstable would fix the build. It did not. Did not investigate further than this.
  • golang-github-likexian-gokit: previously removed from Ubuntu because it failed to build in both Debian and Ubuntu ( It still fails to build
    everywhere, so removing again.
  • mlton: package has self-build-depends and was removed from the archive a while ago
    due to bugginess. Verified that the new version could be built with the previous version that was removed, so requested a bootstrap build from the Launchpad team and this is now built. For the moment it’s amd64-only; if there’s interest we could also bootstrap it on armhf from the previous Ubuntu binaries, and on other archs from the Debian binaries, but I’m not sure whether it would be worth the effort or if this would just be a maintenance burden in the future, so I’ve deferred that for now.
  • gdb-avr: missing build-dependency ( This is also a
    build failure in the release pocket, so I’ve uploaded the fix.
  • massivethreads: strange error about sched_yield symbol already being defined. Had to call in @mwhudson’s support on this one, to find a solution that works around glibc 2.34’s use of assembly in redefining pthread_yield in the system headers. Uploaded and forwarded to
  • mysql-workbench: this package fails to build in Debian and Ubuntu, and also is marked in Debian as unreleasable due to upstream policies ( Removed from -proposed and blacklisted.
  • dpf-plugins: not migrating because an Ubuntu-specific upload restricted the architecture list. Checked with Erich, who will update it to be Architecture: any again.
  • muscle: all archs aside from amd64 FTBFS. Debian has removed the binaries for these
    archs, letting the amd64 package migrate to testing. Removed these binaries for muscle, and its reverse-dependency theseus, to let it migrate. Also hinted theseus to let it in despite autopkgtest failures on architectures where it no longer has binaries.
  • qwertone: build-depends on obsolete versions of rust gtk packages; removed from
    -proposed and release.
  • dioptas: build-depends on python3-pyepics, which is currently in Debian NEW.
    Skipped, assuming this will take care of itself this cycle.
  • libobject-pad-slotattr-trigger-perl, libobject-pad-slotattr-lazyinit-perl,
    libobject-pad-slotattr-isa-perl, libobject-pad-slotattr-final-perl: broken with current perl and has been removed from Debian and from release but was left behind in -proposed. Removed now.
  • lava: depends on a newer python3-bpfcc than we have; and bpfcc needs bpftool which isn’t built as a separate package from the Ubuntu kernel packaging. Filed
    LP: #1981089 to request an update to the kernel packaging.
  • libeconf: some combination of newer glibc and/or newer gcc in Ubuntu vs Debian causes a build failure from build-time static analysis of the code getting a false
    positive of a format string overflow. Suppress the compiler warning, submitted to
  • node-grunt-timer: build-depends on node-functional.js which FTBFS because it’s missing a build-dependency on gulp, but even when adding the build-dependency, the
    build fails looking for gulp-jshint which is nowhere to be found. Filed and removed node-functional.js which needs
    sourceful fixes from Debian. Leaving node-grunt-timer itself in -proposed for now.
  • ghdl: Failing to build on armhf. The current build log is misleading, the package
    now fails to build on all archs because the source is not compatible with llvm 14 (Debian is still at llvm 13 by default but Ubuntu has moved to llvm 14). documents the armhf build failure, which Debian hasn’t taken any decision on yet. Since the package also fails to build on all archs in Ubuntu due to an Ubuntu-specific incompatibility, I’ve left this alone for now.
  • tpot: Build-depends on scikit-learn >= 1.0, which needed merged from Debian.
    Force-synced scikit-learn, since it’s unclear that any of the remaining delta is still needed (mostly cherry-picks from upstream). But the new scikit-learn FTBFS on multiple architectures in Debian, impacting us (but not on ppc64el, which was the cause of the previous Ubuntu delta!). Also, after updating scikit-learn, tpot still fails to build; this build failure is reproducible in Debian, so filed
  • firmware-microbit-micropython: FTBFS with a segfault in the arm cross-toolchain. The segfaulting bit of the toolchain is lto1, which shouldn’t be run when targetting arm given that arm is a non-LTO architecture generally. Also this didn’t show up in the archive rebuild as a build failure. The only relevant difference between the archive rebuild success, and the current failure, was libstdc++-arm-none-eabi; that package is stuck in -proposed right now due to significant autopkgtest failures, basically the same lto1 crash everywhere. This turns out to be caused by a change in the packaging to include
    dpkg-buildflags at build time - which unfortunately pulls in the flags for the build architecture (amd64) instead of for the target architecture. Patched this to use the build flags for armhf instead, but this should probably be adjusted further. Uploaded libstdc++-arm-none-eabi, submitted upstream to, and successfully rebuilt firmware-microbit-micropython after this change.
  • rockhopper: Dep-wait on igv, because igv is in multiverse and rockhopper is in universe. In Debian, igv has moved to main, so I’ve moved it to universe in Ubuntu as
    well, clearing the dep-wait.


  • spice-gtk: build-depends on libphodav-2.0-dev; phodav unfortunately doesn’t provide an unversioned -dev package name. Attempting to do a straight replacement of the build-dep in debian/control didn’t work, the package fails to build - but it also appears to fail to build without this change. Left this alone for now.
  • libsrt1.4-gnutls: uploaded a round of no-change rebuilds for the reverse-dependencies.
  • osmcoastline: stuck in -proposed and blocking libgdal30 transition because pandoc is out of date on armhf and s390x, and no solution seems to be forthcoming. osmcoastline has no reverse-dependencies, so removed the armhf and s390x binaries from the release pocket to let this migrate.
  • kdb: blocking libicu70 removal because the arm64 build failed to upload.
    Retriggered the build.
  • xjig: blocks removal of libnetpbm10-dev; updating the build-dep to libnetpbm11-dev is not sufficient, nor is adjusting include paths. This package builds using xmkmf and hasn’t had a maintainer upload since 2013. Bug filed at and package removed from kinetic.
  • unfortunately this is insufficient to remove libnetpbm10-dev, because also build-depends on it and needs porting, and has substantial reverse-dependencies so we can’t just remove it. Skipping this for now.
  • python-rocksdb: blocks librocksdb6.11 removal; FTBFS in Debian and Ubuntu, reported at and no reverse-dependencies, so removed from kinetic.

Archive Administration

  • Various rounds of NEW package processing, primarily of Debian syncs
  • Ran process-removals to catch up with Debian removals since the beginning of June


  • Partial SRU shift on Friday, mostly following up on SRUs that I had reviewed with comments last week
  • subiquity
    • PR: 1345 - added an additional linter step to CI running from Kinetic, in hopes of catching newer errors. PR: 1344 was an example of something that would have been caught with a newer linter.
    • PR: 1346 - remove a fragile calculation in guided storage with resize, which was broken due to an unaccounted for spacer between logical partitions.
    • PR: 1348 - remove a now-unused endpoint that was superseded by the newer, resize and existing space friendly, form.
    • PR: 1349 - use newer curtin (see below GPT fixes)
    • PR: 1350 - add fix for a crash during autoinstall if certain values of interactive-sections were used. LP: #1974077
    • Help with test snap builds for LP: #1978139
    • Starting work on fixes related to extended and logical partitions
    • Review PR: 1343, 1344, 1347
    • Spec reviews
  • curtin
    • MP: 426651 - fix preserved partitions on GPT tables - finish tests and documentation. Preserve a few more gpt fields for safety.
    • Review MP: 426569
  • cloud-init
    • discussions on cloud-init / autoinstall interactions and informal review of PR: 1572
  • pytest
    • do test rebuilds against pytest-7 and gather data on what it means if we start this transition. Requested sponsorship, which @ginggs was kind enough to do. LP: #1981475




  • some mid-cycle planing (“netplan everywhere” starter document)


  • tcpreplay no build on armhf (LP 1981635)

    • The immediate cause of this is that armhf is not enabled in debian/control. When armhf is re-enabled, it FTBFS with That can be worked-around by patching to set FORCE_ALIGN on arm* arches. But, then there is another bug ( that causes FTBFS.

      It seems that the second bug is a todo item for the next upstream release, so maybe it is best to just wait for the next upstream release to resolve this.

  • gtk-gnutella FTBFS (LP 1981474)

    • The FTBFS is due to checking PTHREAD_STACK_MIN != 0 with preprocessor directives. But, PTHREAD_STACK_MIN may be defined dynamically, so it should be checked at run time.
  • pydantic FTBFS (LP 1981341)

    • The failing test interacts with environment variables to initialize a configuration (as a Python object). The test adds a ‘v’ field to the class, with the default value of ‘default’. The test case expects that this class will not be changed by the execution environment. However, in launchpad builds, the env var V=1 is configured. This causes the assertion failure seen in FTBFS log.
  • fastapi FTBFS

  • sqlmodel FTBFS

  • ruby-jwt FTBFS

    • The ruby-jwt package does not yet support openssl 3.0, so it is FTBFS. There is work being done upstream on this, so I just created LP 1981456 (with relevant upstream links), and tagged it update-excuse.
  • ruby-certificate-authority FTBFS (LP 1981458)

    • There was a print format change for the x509 v3 authority key identifier field in openssl 3.0, and this test suite appears to depend on that format. Changing the expected test string to match the new format fixes the issue.
  • ruby-html-proofer

    • Did not spend too long looking at this one. I get different (and disjoint) sets of failures in my local sbuild and on launchpad builders.
  • probabel FTBFS

    • I think this is a candidate for removal. The Debian maintainer has also indicated this (, which is noted in the package’s debian/Readme.Debian.

      $ reverse-depends src:probabel -r kinetic

      • med-bio (for probabel)
      • med-cloud (for probabel)
        Packages without architectures listed are reverse-dependencies in: amd64, arm64, armhf, i386, ppc64el, s390x

      $ reverse-depends src:probabel -r kinetic -a source
      No reverse dependencies found

  • reprotest FTBFS (LP 1981624)

    • This package hardcodes py39 in tox.ini, so when python 3.10 is the default this FTBFS. This package should dynamically set the tox env in debian/rules.



The Ubuntu QA Team’s status can be found here:




  • Pushed 1.19 rc1, 1.19 rc2, and 1.18.4 to Debian Salsa
  • Merged all 3 of the above versions from Debian
  • Investigating failing build time test on 1.18.4


  • proposed-migration: curl
    • Uploaded -1ubuntu1 version with patch submitted by Helmut
    • Later synced the Debian version with the same patch
    • Retried lots of autopkgtests
  • Reviewing @enr0n +1 maintenance changes
  • Uploaded raspi-config (thanks to @sil2100 for adding to the raspi PPU) (LP: #1972982)
  • and discovered an issue in netplan while working on it (LP: #1981071)
  • Prepped raspi-config bug for SRU (testing will take a long time) (LP: #1972982)
  • More flash-kernel updates, including one for @alexghiti (LP: #1978798 and LP: #1980929)
  • Worked on confirming wireless issue on the Zero 2W (false-positive error) (LP: #1980668)
  • Finished investigating multi-CPU squashfs (LP: #1980861)
  • Tested the Pi watchdog hardware under Ubuntu Server (responding to internal request on m/m; it works out of the box with systemd’s watchdog support)
  • Point release meeting
  • Pi meetings


  • cannot be booted with KVM and smp on riscv64 (LP #1980594)
    Problem was in kernel. Kernel patch available upstreams.

Test environment for network applications (DPDK, SPDK, OpenVSwitch, rdma-core)*

  • Network set up works now
  • Next steps work out test examples and implement scripts

** Testing image **

  • Nezha - image nearly ok
  • VisionFive - image ok