GNOME Software and postmarketOS: a bumpy road

submited by
Style Pass
2023-03-19 08:30:07

Nowadays, any user installing a GNOME-based (Phosh, I’m looking at you) UI in postmarketOS will probably not experience many issues with GNOME Software (GS). They will most likely play a bit around, enjoy the nice UX, search for some apps, install some of their favorites, and move on. They probably won’t give it much thought. They probably won’t know, that one to two years ago, it looked like this

And was barely functional. The only (sort of) reliable functionality were upgrades, but only when few of them were queued and GS could handle them without timing out. You don’t have to take my word for it, you can look at Distrowatch’s review. so then, what has changed in the last 1 and a half years?

Unfortunately, to have a nice-looking Software app store, some additional bits of infrastructure are necessary. To be able to present the users with a set of apps to install, GS needs to know which apps are actually available, and extra information about each of them. The AppStream (AS) specification exists exactly for that reason. Following the spec, app developers create metainfo files, where they add information about their apps. Then, distributions are responsible for extracting all those files from their repositories, put them all together following a standarized format, and place them in users’ machines.

One and a half years ago, the infrastructure to extract the metainfo files, and make them available for download was in place thanks to Cogitri. Cogitri had written a backend for alpine’s packaging format in appstream-generator, which takes care of exactly that. However, alpine’s infrastructure[1][2] had stopped working and needed some love. I put the effort to fix it, and recently wrote alpine-appstream-downloader, a small python script that makes us compliant with the requirement that we should place those files in a pre-defined location in users’ machines. Before, that was done in GS, but was less reliable and was not able to handle changes in repository data. There was quite a discussion about those of those points in this issue in pmaports.

Leave a Comment