packages icon indicating copy to clipboard operation
packages copied to clipboard

Replace appstream-glib usage with appstream

Open joebonrichie opened this issue 7 months ago • 3 comments

Summary

appstream-glib is in "heavy-maintenance", and we have a lot of issues fixing idiosyncrasies with appstream-builder.

Appstream is newer, controls the specification and is better maintained.

This PR introduces support for:

  • appstream-generator with a backend supporting solus
  • Moves solus-sc to use appstream instead of appstream-glib APIs
  • Converts appstream-data to use the catalog produced by appstream-generator
  • Removes the legacy symlink path support from appstream-data

Test Plan

Build a solus catalog from local and remote sources both locally and on infra with appstream-generator Ensure solus-sc continues to work as expected. Ensure solus-sc, gnome-software and discover load the new appstream-data successfully.

Checklist

  • [x] Package was built and tested against unstable
  • [x] This change could gainfully be listed in the weekly sync notes once merged

joebonrichie avatar Apr 25 '25 22:04 joebonrichie

Finally had a chance to look this over in detail. I have one question: Would it be acceptable to add a step of compressing all the individual tarballs into one large one in the ansible playbook from https://github.com/getsolus/infrastructure-tooling/pull/79? I would love to be able to use a yupdate wrapper here rather than having to copy/paste all these sources. I think that step is more error-prone than it needs to be. The task can theoretically even do this all in one step, from generate to upload to yupdate, then even automatically build the package for testing and set up the commit... thoughts?

I'm super excited to get this in, FWIW. I'd be OK with merging this as is and taking on further streamlining in the near future- just want to throw ideas out there.

sheepman4267 avatar May 22 '25 03:05 sheepman4267

Finally had a chance to look this over in detail. I have one question: Would it be acceptable to add a step of compressing all the individual tarballs into one large one in the ansible playbook from getsolus/infrastructure-tooling#79? I would love to be able to use a yupdate wrapper here rather than having to copy/paste all these sources. I think that step is more error-prone than it needs to be. The task can theoretically even do this all in one step, from generate to upload to yupdate, then even automatically build the package for testing and set up the commit... thoughts?

I can rewrite the script in python and with ruamel.yaml i can edit the package.yml in-place if there are changes

joebonrichie avatar May 22 '25 11:05 joebonrichie

Ah, good idea. I like that best. Would you like to do that as part of this PR, or leave it for future improvement?

sheepman4267 avatar May 22 '25 12:05 sheepman4267

Sync post blurb: This week, we have updated our appstream-data to use the newer and maintained appstream-generator utility, instead of the abandoned appstream-builder. Appstream data is the information used by GNOME Software and KDE Discover to detect and display packages. The Solus Software Center also uses this data for screenshots.

EbonJaeger avatar May 30 '25 22:05 EbonJaeger