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.
Several minor investigations: lower bandwidth texture filtering, half floats/mediump shaders, auditing the optimality of clipping, auditing the number of flushes/uploads/batching. Only the last one was fruitful (see icon grid optimization above).
opened a MIR for nacl (optional for libssh and enabled in Debian), then following the feedback there started talking to upstream about using libsodium instead
Snapcraft/CUPS Snap: @jdstrand has coded the new “cups” and “cups-control” snapd interfaces and submitted a PR to snapd, waiting for review. He has also sent me test packages of snapd and the CUPS Snap with the appropriate modifications for testing. I tested and all CUPS functionality is working, in addition if the client is a Snap, it can do administrative CUPS tasks (create print queue, remove anyone else’s jobs, …) only when using the “cups-control” interface and only print and check jobs when using only the “cups” interface. Also D-Bus notifications of the snapped CUPS to the outside world work.
cups-filters: Completed moving over the PPD handling functions of libcups into the new libppd. Now some more private functions need to get moved into the public API and also some functions of CUPS’ ippeveps utility added.
cups-filters: Added new pclmtoraster filter to extract raster image data from raster-only PDF files, contributed by Vikrant Malik, one of this year’s GSoC students.
cups-filters: Fixed gstopdf filter to support number of copies as embedded command in PostScript input (Issue #255).
Google Summer of Code 2020: First evaluation round (after first month of coding) has opened. The 7 students all did great work. Determined who is the mentor for each one responsible for filling in the evaluation and reminded them to do so in time.
Linux Foundation Mentorship Program: OpenPrinting got accepted and will have 2 student slots for 3-month projects. We will let one student work on wrapping classic, proprietary printer/scanner drivers into Printer Applications and another implement support for IPP Fax Out.
OpenPrinting web site: Worked with former GSoC students on the new Upcoming Technologies section. We also accept user comments on many pages, not only for the Upcoming Technologies section but also for the News posts.
Updated nodejs{,-mozilla} to 12.18 in preparation for firefox 78.0
Investigating a regression which makes firefox 78.0 RC builds hang at startup on xenial, caused by this upstream commit that unfortunately landed between the last beta build and the first RC. It turns out we don’t need to build that code any longer as we’re statically linking against a more recent version of libstdc++ (from the gcc-mozilla package) since version 73, and this fixes the problem.
snapd PR #8748 (refuse to install snaps providing user daemons on Ubuntu 14.04) was merged.
snapd PR #8860 (D-Bus bus configuration for snaps) and snapd PR #8861 (D-Bus service conflict detection) updated based on review comments. I expect these both to be merged this week.
snapd PR #8943 started with the remaining features from the original pull request: actually installing D-Bus service files and adding the spread tests. At present it is built on the top of #8860, so will probably need the others to land before it is easily reviewable.
snapd desktop-launch interface.
Reviewed Alan’s snapd PR #8699. I will be providing some help with a spread test for the PR.
font support for snaps
Investigated bug #1858636, about problems with snapd’s fc-cache-v7 binary not producing a correct fontconfig cache for some fonts.
The underlying problem was that it was a static binary combining bionic’s fontconfig with xenial’s freetype. The older freetype did not support some font formats and font features, in particular those used by colour emoji fonts.
One realisation that came from this is that the contents of fontconfig caches are not just dependent on the fontconfig version number. Given all the possible (freetype, fontconfig) version pairs, it’s not clear we should even try to reuse the host system fontconfig cache from inside the sandbox. When it works, we should see it as a lucky coincidence. We should move to a model with a private fontconfig cache for each gnome platform snap.