GNOME Software app data changes for GNOME 47

Previous versions of GNOME Software installed their own AppStream data by default. This data provided app recommendations which were used by Software to determine which apps to show in various parts of the UI, like the banners and “Editor’s Picks” sections.

For GNOME 47 this behaviour is changing. With this change, GNOME Software will no longer install its own app data by default.

Instead, distributions are recommended to install the new gnome-app-list module alongside gnome-software. gnome-app-ilst will need to be packaged and made to be a dependency of gnome-software.

It is also possible to restore the previous GNOME Software behaviour, so that it installs its own app data files, by using the -Dhardcoded_curated=true and Ddefault_featured_apps=true build options. However, this option is not recommended outside of development scenarios.

2 Likes

FWIW, rather than packaging an XML file, the approach we use in Endless OS is:

  1. Publish the XML file on a web server, specifically at https://appstream.endlessos.org/app-info/eos-extra.xml.gz
  2. Build GNOME Software with -Dexternal_appstream=true, which causes GNOME Software to fetch the XML catalogue from a configurable list of URLs (which is empty by default)
  3. Install a GSettings override to configure that list of URLs:
[org.gnome.software]
external-appstream-urls=['https://appstream.endlessos.org/app-info/eos-extra.xml.gz']
# Optional; this causes the file to be stored in a systemwide location rather than in each user's homedir
external-appstream-system-wide=true

This allows us to adjust the list of featured apps (and web apps) without requiring an OS update.

2 Likes

Distributions can

  • package 'gnome-app-list' as a GNOME Software dependency (or)
  • use the app list XML generated from 'gnome-app-list' to host on a web endpoint with external appstream (or)
  • switch from 'gnome-app-list' dependency model to external appstream model (probably during release EOL when there wouldn’t be package updates).

The main idea here is to move the app recommendation logic outside the scope of GNOME Software development. Moving to a different package makes it possible for 'gnome-app-list' to be managed by the appropriate downstream packaging team.

Guess the values should be 'true' here.

1 Like

This topic was automatically closed 45 days after the last reply. New replies are no longer allowed.