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.
[Including the week before the holidays up to Jan 13]
printing-stack-snap: Updated to CUPS 2.3.1, cups-filters 1.26.2, QPDF 9.1.0, added Ghostscript 9.50 as default PDF renderer (for better output quality and to also accept PostScript input), made all building again with current snapcraft, several configuration improvements, debugging options (see last commits). Lots of testing.
cups-filters: Released 1.26.1 to make the cups-browsed-generated local print queues actually work on all OS distributions and to get legacy (not actually designed for driverless IPP) printers better working.
cups-filters: Released 1.26.2 to make the cups-browsed work with CUPS running on others than the standard port 631, needed for the snap.
driverless (or standard-based?) scanning: Tested new SANE backends (“airscan” and “escl”) for scanning on multi-function devices which do Apple AirPrint, as they then also do Apple AirScan. Did many tests for the authors to debug the backends so that my HP DeskJet 2540 and my HP OfficeJet Pro 8730 scan this way. This will enable scanning on most modern printer/scanner multi-function devices and also allows USB scanning via ippusbxd. Note that this is not PWG’s IPP Scan standard.
ippusbxd: ippusbxd does not only do IPP printing via USB, it also gives access to non-IPP HTTP services, as the web admin interface of the printer and even scanning, using AirPrint/eSCL with the new SANE backends. Also did some debugging on ippusbxd with he authors of the SANE backends and found out about the shortcomings of ippusbxd’s architecture. Especially there is a new approach for IPP-over-USB implementation which solves most of ippusbxd’s problems. Cooperation with the author of this approach (and also of airscan), Alexander Pevzner, is great.
IPP Scanning: For implementing PWG’s IPP scanning, needed to allow scanner and Multi-Function drivers (like HPLIP) in snaps, airscan and AirSane will be good code bases.
Google Summer of Code 2020: This week the application window for the organization applications will be opened and I will apply again on behalf of the Linux Foundation. We already started selecting students and give them assignments to learn about OpenPrinting. Also the project ideas pages are set up and all former mentors are informed.
Profiled activities overview performance in more detail. Found more relayouts than I expected and they’re also necessary so that’s difficult to improve and is on the backburner again.
Investigated potential rendering delays and Intel C-states behaviour reported by @popey. After careful measurement I’m now confident that state transitions to low power are not a performance problem, at least not on my machine. Need more input from @popey and others in case the problem is CPU-model-specific.
Backported xdg-desktop-portal fix for Bug 1851807 to eoan
Reviewed, tested and merged gtk-common-themes fix adding the Breeze cursor theme which greatly improves the experience of snap running on kde. The fix is in gtk-common-themes currently in the candidate channel.
• Replied to a few forum posts
• gnome-3-34 snapcraft extension:
◇ added tests
◇ have been working on fixing travis test failures
◇ trying to get it released
• finalized blogpost about the gnome-3-34 snapcraft
• LAS 2020 organization efforts
• Started to look into game mode a bit
there’s some tedious bug going on at the minute where a bad kernel is failing at a weird place that we haven’t been handling up until now - it boots, gets network and then dies part way through transferring the source package. I’ve been trying to fix that, have a proposed fix now.
started looking into how to create health metrics so the admins can know more easily how the system is doing, asked the sysadmins for advice / an environment for this.
discussed gnome/systemd improvements a bit, and got some further discussions on the table for fosdem
released gnome-session 3.35.3 upstream and packaged it too
I’ve been updating my pending snapd PRs, to make sure they pass the test suite against current master.
I think PR #7238 (systemd user service control interface) is ready with all review feedback addressed.
PR #7588 (adding a snap routine portal-info command to retrieve information about a confined process) has picked up a failure on Fedora 31 apparently related to unified cgroups support. It looks like existing similar tests are being skipped there, so maybe that is the right short term choice.
PR #7456 (a client library for talking to the user session agent) is mostly ready, but needs a proper review. The interface should be sufficient to allow the user daemons feature to proceed.
Make snapd’s xdg-open proxy call xdg-desktop-portal by default:
@mborzecki from the snapd team started working on a PR to have the xdg-open executable in the snap sandbox call the xdg-desktop-portal API for openning URIs or files in preference to the ones provided by snap userd (assuming it is available). In particular, this would get rid of the ugly Zenity dialog when opening files.
He ran into some roadblocks related to activating the portal service due to AppArmor denials (strange, since we’ve got existing C code that manages it), so I will be taking over the PR to try and solve those problems.
The AppArmor problems might be solvable by adding a AssumedAppArmorLabel=unconfined line to the D-Bus service activation file, but I’ll also need to test how things work on non-Ubuntu systems. In particular on non-AppArmor systems where current releases of xdg-desktop-portal can’t detect snap confined applications.
Over the holidays, I decided to teach myself a bit about writing actions in node.js for Github’s new CI system. I hadn’t really done anything serious with node.js or TypeScript, so it was as much learning about that framework as it was about actions themselves.
One thing I came up with was an action that installs Snapcraft and LXD, and builds a snap:
it looks like there is enough interest in this plus an action to publish snaps that it might make sense as an official project. It seems like a useful tool for cases where build.snapcraft.io is not sufficient (e.g. if you want to test a snap before publishing it).