Desktop Team Updates - Monday 11th January 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 21st December 2020 🎄


:desktop_computer: Gnome Shell and friends:

:chart_with_downwards_trend: Bug tracking:

  • Caught up on two weeks of bug reports from the holidays.
  • Backlog tracking is back to normal.


  • Finish dconf integration. We can now generate dconf policies from a Windows admx generically.
  • Add authentication framework with different polkit rules to validate non sudo call
  • Implement policy autorefresh without the need to provide a ticket (reuse existing ones)
  • Add packaging
  • Misc fixes and polish


  • Getting back into it a bit
  • Some back and forth with Debian people on @gunnarhj’s forthcoming application (yay)
  • A lot more work on the staging autopkgtest. I’m feeling good about this now, will be ready to turn it into production soon.
    • It now uses an lxd cluster for the armhf workers, so we don’t bother trying to send work to a backend instance if it goes down
    • Access to that cluster is mediated by a new haproxy so the API address isn’t a SPOF
    • The system now has metrics. This lets the admins and anyone look at the health of it much more easily.
  • Reviewed ubiquity and uploaded it to hirsute.
  • FourDollars found a bug in our update-manager/focal upload, hassled Julian to sort that out
  • Wrote one or two more metric collectors for the environment linked above. I want to populate it with some useful stuff so that when I announce it (later this week?) people can see how it’s something to get on board with.
  • Helped a bit on some image building weirdness. One day there was a stuck job preventing other builds from completing properly. Another day s390x builds were busted, pointed that out to xnox and then reviewed/landed the fix.
  • Nudged quite a few things along in hirsute-proposed, most of them migrated now.
  • Worked 3 days only
  • Catching up with things still post holidays
  • Desktop updates and merges with Debian

Short week, I came back from holidays on Thursday.

firefox24 firefox

  • updated to 84.0.2 for all supported releases
  • started reviewing our distro patches to understand which ones can be dropped and which ones should be upstreamed

thunderbird24 thunderbird

  • updated to 78.6.1

chromium22 chromium

  • removed Flash support from chromium 88+, now that it’s EOL
  • updated stable to 87.0.4280.141
  • updating dev to 89.0.4381.6

package24 other

  • some +1 maintenance, although I didn’t do the complete 2-day shift I was booked for
  • Still getting organized from the holidays. Changed my daily driver to a different system with 2 monitors and a fresh groovy install… and a new ups! got through the crazy amount of email there was too.
  • LO deb bug triage… went through the new bugs filed over the holidays. There are a couple of Kubuntu ones that would be good to solve so looking for time to tackle them.
  • worked on adding yaru icons to LO snap
  • Picked back up the network-manager snap discussion, refreshed pi with new core 20 image and tested holiday patch that fixed wifi AP support.

snapd pull requests:

  • There were some large refactoring in snapd’s daemon package that resulted in a number of merge conflicts for some of my pending PRs (snapd PR #9268, snapd PR #9043, and snapd PR #9292).
  • I finally got some review feedback from security on snapd PR #9132 (extend snapctl is-connected to check connected state of clients). This is the one that @till-kamppeter needs for his CUPS snap, so hopefully we can get it merged soon.
  • Before the break, I put together snapd PR #9805, which adds a flag to the desktop interface plug to prevent mounting /var/cache/fontconfig. This is intended to prevent snaps using the flag from ever seeing the system fontconfig caches, which have been a source of bugs. This has received review feedback, but there is an open question about what the attribute should be named.
  • After the end of year break, snapd’s CI started failing due to a change in one of the static analysis tools it uses. I put together snapd PR #9806 to fix that. The long term fix will probably be to move to Go’s module aware build mode, which would make it possible to lock the versions of these tools in the go.mod file and avoid these surprises.

snapd dbus activation support

  • At the snapd review meeting, we agreed to put together a checklist for what’s needed to enable the user-daemons and dbus-activation experimental features by default.
  • I don’t think they need to be enabled together as a pair: user-daemons on its own can be useful for e.g. creating user session timeers, and dbus-activation on its own enables activation on the D-Bus system bus. I suspect dbus-activation will be the easier one to sell.

xdg-desktop-portal PRs:

  • Over the break, xdg-desktop-portal PR #550 was merged. This gives the document portal knowledge of some paths that a snap will be able to access without being proxied through the FUSE file system. In short, this means that a snap that plugs the home interface should see a real file path from the portal file chooser if the user picks a file in the user’s home directory.

I got a few small PRs merged to Snapcraft:

  • snapcraft PR #3392 was merged before the break, allowing v2 plugins to indicate that they can perform out-of-source-tree builds (a feature that hadn’t been ported forward from v1 plugins). It also updates the cmake and meson plugins to work in this mode.
  • snapcraft PR #3391 was merged before the break, adding a qmake v2 plugin for use with core20 based snaps.
  • snapcraft PR #3408 was merged, which extracts the symbol versions defined by a shared library. I wanted to see if I could write a better check for unused libraries, or libraries provided by a base snap or platform snap, and this was one of the missing pieces of data needed.
  • Got the new platform snap and build snap built and published
    • gnome-3-38-2004-sdk and gnome-3-38-2004
  • PR submitted to snapcraft adding gnome-3-38 extension


  • Finish dconf integration. We can now generate dconf policies from a Windows admx generically.
  • Add authentication framework with different polkit rules to validate non sudo call
  • Implement policy autorefresh without the need to provide a ticket (reuse existing ones)
  • Add packaging
  • Misc fixes and polish
  • PostScript Printer Application: Completed querying/polling settings from the printer, both for installable hardware accessories and for option default settings. The queries can be triggered by buttons on the “Device Settings” web interface page for the printer and the results (not all options/accessories are queriable) are shown. Unfortunately there is no way to query the media loaded in each tray of the printer. Started investigating and devloping support for the user adding his own PPDs via the web interface (like non-free PPDs we cannot include), the last of the planned major features.
  • Retro-fitting drivers into Printer Applications: My idea is to take the PostScript Printer Application as base for a general retro-fitting framework, renaming the GitHub project into “retro-fit-printer-app”, extending with filter support, and control with conditional compiling which code pieces get used. Then for each individual Printer Application a GitHub project for snapping it will get added (like “ps-printer-app”).
  • PAPPL: Reported some issues about manual paper tray and custom page sizes which came up during the devlopment of the PostScript Printer Application (PAPPL issues: open, closed).
  • CUPS: Fixed an AppArmor profile problem discovered by stuck proposed migration. The new OpenPrinting CUPS upstream runs CUPS with systemd service type “notify” and so CUPS needs access to systemd’s notification socket. So CUPS in Hirsute is coming from the new upstream now.
  • CUPS Snap: Still waiting for @jamesh’s API extension of snapd to pass Canonical’s security team review so that the CUPS Snap makes it into the Snap Store. Good news: Security team is had a look on it and posted comments.
  • sane-airscan: Waiting for the MIR to get reviewed by the security team.
  • Google Summer of Code 2021: Mentored several candidates on working on cups-filters and CUPS GitHub issues as part of the selection process.
  • Bugs.