March 25, 2020

Packaging Glacier for postmarketOS

About 3 years ago, before I started working on postmarketOS, I learned of the existence of Glacier. Back then I still used my Jolla Phone and the promise of a completely FOSS UI instead of the proprietary one that came with SailfishOS was very exciting to me. However, it was still very much a work in progress system back then, and I kind of forgot about it. Last year I came by it again, and since I started working on postmarketOS, it seemed only right to package it. But, it still depending on the EOL Qt 5.6 prevented me from doing anything interesting with it. We were on Qt 5.12 after all and there was no chance we’d separately package an older Qt version just for this UI.

Since Nemo Mobile has come “back to live” recently, and it talks about porting to Qt 5.12, I decided to take another shot at packaging Mer and eventually Glacier. Now, first to temper any excitements anyone may have, no it doesn’t work, yet. The first problem is that while working on Qt 5.12 is nice, postmarketOS is actually on Qt 5.14. It should however be a relatively small upgrade from 5.12, rather than coming from 5.6.

Problems encountered

While packaging Mer components, you’ll notice it isn’t made to run on a non-glibc, non-systemd system. Because of this you encounter some, relatively small, problems. Luckily they were quite easy to resolve, and I’ve tried to upstream the fixes wherever possible. Some of these merge requests have even been merged already!

Of course there is also some stuff that isn’t fit for upstreaming. For example, to make nemo-qml-plugin-systemsettings compile, I had to completely remove the developer mode settings page. Luckily this page doesn’t make sense anyway on postmarketOS as it’s very tied to SailfishOS, so it can’t hurt to remove it.

Work left to do still

Besides having to wait till at least lipstick (the Wayland compositor used by Glacier) works on Qt 5.14 (without patches to Qt!), there is more to package. So far only the base Mer components have been packaged, and even then not everything yet. Now the base work is done however, I can start working on packaging Glacier components.

Hopefully I’ll soon have something for you all to test!

You can see the packages so far in the feature/sailfish branch of pmaports.

By the way, there is also work being done to package Glacier for Arch Linux! Check it out here.