Desktop Team Updates - Monday 15th March 2021

Hi everyone, below you will find the updates from the Desktop team from the last week. If you’re interested in discussing a topic please start a thread in the Desktop area of Discourse .

We also have our weekly meeting on IRC. We meet on Tuesday at 13:30 UTC in #ubuntu-desktop on Freenode. There will be an “Any Other Business” section at the end where you are welcome to raise topics. These topics might be discussed during the meeting, or afterwards depending on the time, depth of conversation, topic and so on.

Last week’s notes are here: Desktop Team Updates - Monday 8th March 2021

  • ADSys (Active directory and group policy client for Ubuntu)

    • GDM policy:
      • Apply dconf settings to user GDM.
      • Make background color and image configurable through gsettings.
    • Ubiquity:
      • Configure Kerberos and install dependencies when AD is selected at installation time.
    • Other:
      • Instigated why systemd restarts the service immediately when adsysctl stop is executed.
      • More static checks in CI with gosec
  • Ubiquity

  • ZSys

    • Investigated a report about garbage collected datasets that shouldn’t.

libreoffice24-margin Libreoffice

7.1.x for Hirsute/21.04 - git branch and PPA build

  • prepared 7.1.2~rc1 in ppa:libreoffice/libreoffice-prereleases
  • got it sponsored to the archive

7.0.x for Groovy/20.10 - git branch and PPA build

6.4.x for Focal/20.04 - git branch and PPA builds


  • investigated and fixed missing application icons for the 7.1.1 snap
  • GNOME updates (gnome-autoar, gtksourceview, libgdata, eog, gnome-calculator, gnome-disk-utility, swell-swoop, tali, evolution-data-server, evolution, evolution-ews, epiphany-browser)
  • upstreamed gnome-calculator currenty test still failing offline
  • upstreamed epiphany-browser test failing, turned out to be a webkitgtk issue which is fix commited and waiting for the next tarball now
  • added a simple build autopkgtest to libmanette
  • wrote a MIR for libmanette which webkitgtk started using gamepads handling
  • followed up on the abseil MIR review comments
  • did the packaging tweaks requested in the libdeflate MIR review, it got promoted now
  • reported the ruby-gnome autopkgtest failure to upstream webkitgtk
  • reverted undocumented changes in the gjs update which created shell issues
  • snaps
    • rebuilt quadrapassel for the recent glib CVE, verify candidate and moved to stable
    • reported a snapcraft bug about the warning for CVE-2020-27348 asking if it could include hints on how to fix
    • updated thunderbird stable to 78.1.1 and beta to 87.0b2
    • removed some outdated GNOME i386 snaps from the store, we stopped building some snaps on that architecture because the components needed were available anymore so it doesn’t make sense to keep outdated versions
    • tested some GNOME candidate builds and promoted to stable
  • versions
    • rewrote the code collecting the Debian and Ubuntu versions using apt instead of launchpadlib
    • set up caching for the teams packagesets since those don’t change often
    • the previous changes lower the refresh time to 20+ to ~10 minutes
    • added comments about CVE-2020-27348 to the snaps report
    • improved the snaps report to include informations about the beta channel and other architectures
  • other
    • triggered another hirsute langpack refresh
    • set up a cron job for the next translations refreshes
    • started working on KPIs for the ISO images

firefox24 firefox

  • prepared 86.0.1 update (which includes the fix for a startup crash) and handed over to security team

thunderbird24 thunderbird

  • uploaded 78.8.1 to hirsute, and preparing the update for groovy and focal in a PPA
  • working on the 78.x bionic update

chromium22 chromium

  • the 89.0.4389.82 stable update was published to xenial and bionic by the security team
  • updating stable to 89.0.4389.90
  • updated dev then beta to 90.0.4430.19
  • updating dev to 91.0.4442.4
  • finally figured out why autopkgtests are failing on bionic starting with chromium-browser 89: this was caused by the Ubuntu autopkgtest harness running tests as root by default, which doesn’t play well with chromium (but I’m not sure why it started failing only recently, and not on xenial), I am now testing a fix in a PPA

libreoffice24-margin libreoffice

flutter24 flutter

package24 other

  • Finally deployed the new proposed-migration, after some final fixes (work with IS), yay! It’s now building its initial database, going to take quite a few hours.
  • Helped test and sponsor a libgweather fix, which should be SRUed to all stable releases I think (help welcome there).
  • Some behind the scenes work for our open position
  • (mysterious) Bit more testing of package updaters for an internal request
  • Reviewed and merged seb’s MIR branch
  • CUPS/CUPS Snap: All needed interface auto-connections are in place now and so the CUPS Snap can be loaded from the Snap Store and is immediately ready to use! Also everything what the CUPS Snap had as a patch is now incorporated upstream in CUPS, so the Snap does not apply any patches any more nor does it do manipulations on the CUPS source code with sed. Renamed CUPS slots to standard cups and cups-control, removed slots: [cups-control, cups] line from cupsd app definition, make the included command line tools work without needing a Snap-internal interface connection, do not call snapctl on administrative inquiries from the same Snap’s tools, load CUPS source code from GitHub master to not need to wait for the 2.4.0 release to have the Snap free of patches, updated to QPDF 10.3.1 plus several smaller fixes and documentation updates.
  • PostScript Printer Application: Found and fixed some crashers after a user tested it.
  • CUPS: Reviewed and discussed Michael Sweet’s addition of AirPrint and Mopria support (as a server). It is merged now and with this included in the CUPS Snap. The support is much more complete than with my primitive patch in former versions of the CUPS Snaps and the Debian package of CUPS. Now you can print on a CUPS-shared printer from iOS devices (iPhone, iPad, …), phones with Mopria app installed and Windows 10 clients. Great to be free of Apple now and able to add features again, especially approaching the new printing architecture. CUPS 2.4.0 gets close.
  • Calls for Testing of CUPS Snap: Both on Discourse and on the Snapcraft Forum I got feedback and several likes., especially that systemctl mask is the trick to get rid of the original, classically installed CUPS without uninstalling it.
  • CUPS Snap in the snapd environment: On @jamesh’s pull request to make cups an implicit interface of the system discussed auto-connection of the cups interface and came to the conclusion that it is only safe when the confined Snap’s cups plug connects to the CUPS Snap’s cups slot, as the Snap always has a cupsd doing Snap mediation, whereas classically installed cupsd has Snap mediation only from Hirsute on and not in other, non-Ubuntu distributions.
  • PAPPL: With a lot of testing of the PostScript Printer Application posted two new bug reports, one because queue names of only digits are always rejected as already existing names and one as the Mopria app on a phone does not show a “Print Test Page” button for printers of Printer Applications. Michael Sweet is investigating.
  • QPDF: Synced 10.3.1 from Debian into Hirsute.
  • sane-airscan: Still waiting for the MIR to get reviewed by the security team. Feature Freeze for Hirsute has passed, and I had posted the MIR in time for Groovy already.
  • Google Summer of Code 2021: The Linux Foundation got accepted as mentoring organization. Invited 26 mentors for all the posted projects of the different workgroups (probably even more mentors to come). Continued mentoring candidates on working on cups-filters and CUPS GitHub issues as part of the selection process.
  • Laptop refresh: My Lenovo X1 Nano arrived!! Setting it up right now … Switched back to
  • Bugs.


  • Continued the work in the screen shield branch
  • Fixed a11y settings handling for input devices [MR]
  • Fixed handling of input settings under X11 [MR]
  • Wrote a signals manager for gnome-shell [commits]
  • Fixed gjs access to finalized (or disposed) objects [MR]
  • Lots of upstream reviews, helped Jonas with landing tear-down fixes for mutter and shell [MR1, MR2]
  • Landed some fixes and sync calls slowdowns in the appindicator extension [commits]
  • Fixed accountsservice username change handling [MR] and other memory fixes, which were actually already proposed, so ended up reviewing them instead.
  • Upstreamed my AccountService dbusmock implementation that I was using for g-c-c and that will be needed by mutter and shell [MR]


  • ADSys (Active directory and group policy client for Ubuntu)

    • GDM policy:
      • Apply dconf settings to user GDM.
      • Make background color and image configurable through gsettings.
    • Ubiquity:
      • Configure Kerberos and install dependencies when AD is selected at installation time.
    • Other:
      • Investigated why systemd restarts the service immediately when adsysctl stop is executed.
      • More static checks in CI with gosec
  • Ubiquity

  • ZSys

    • Investigated a report about garbage collected datasets that shouldn’t.
  • Misc:

    • MIR reviews and package promotions

general snapd work:

  • Updated snapd PR #9963 to cover remaining review suggestions.
  • Still working on PR to produce a clean error for snap start/stop/restart (or snapctl equivalent) with user daemons.
  • Worked on a concrete draft of polkit interface, refining the proposal I made a few years back. Still need to finish it up and publish it.

CUPS snap:

  • I gave some feedback on @till-kamppeter’s interface auto-connection request for the CUPS snap, with some suggestions about how he could simplify the plugs and slots, and remove the need for self connections. As part of that review, I put together a couple of snapd pull requests to help with the process.
  • snapd PR #10023 introduces an implicit system:cups slot on classic systems. The rationale is that if we want application snaps to migrate from cups-control to cups, then there should be a cups slot available in all cases where there is a cups-control slot. There has been some push back against this that I don’t really agree with, but we’re working through it.
  • snapd PR #10024 introduces another exit code for snapctl is-connected to represent "peer has not connected the interface, but belongs to the same snap. The AppArmor rules for slots like cups-control or audio-record give access to the corresponding socket. So a utility distributed as part of the same snap as the daemon could potentially connect to the daemon without a corresponding interface connection. This new exit code would allow the daemon to recognise such access without having to parse AppArmor labels or similar.