The GNOME project’s own software center app has been the center of discussion of many maintainers from various distributions. openSUSE’s GNOME team always valued providing a vanilla experience that is as closest to upstream as possible. While adapting gnome-software to different backends might be problematic, the GNOME team on openSUSE took several approaches to integrate this new application into the rather unique infrastructure of the project.
GNOME-Software 3.10.2 on openSUSE 13.1
On openSUSE 13.1, the GNOME team shipped gnome-software 3.10, which was in a technology preview state at that time, as an optional application; it was not installed by default but can be easily installed. There were two major issues that the team had to deal with to offer a complete gnome-software experience. These issues were packagekit’s downstream configuration and gnome-software’s appdata.
While zypper, openSUSE’s package manager, and packagekit were already integrated together, openSUSE shipped it’s own branded version of packagekit called packagekit-branding-opensuse. The configurations present in that version of packagekit were incoherent with the needs of gnome-software. As such, when the user chooses to install gnome-software, zypper will ask to deinstall packagekit-branding-opensuse and replace it with packagekit-branding-upstream.
The downside of this is that it causes a few minor bugs on zypper’s side. In example, zypper’s package locks would get dissolve every time packagekit is used. Ultimately, zypper would have to be modified in order for it to provide appdata directly to packagekit and then gnome-software. To accommodate, the GNOME team created a gnome-software-appdata package that is pulled as a dependency for gnome-software. It provides all the appdata information needed by the application to display relevant information about specific software.
With these workarounds, gnome-software was able to successfully display installed software, potential software from the enabled repositories, and basic information about the packages. It was also able to uninstall packages and to sort apps into categories properly. Gnome-software still couldn’t update packages and thus users had to resort to gpk, yast, or the commandline to perform that particular task.
Gnome-software matured considerably by the release of 3.12 and the previous workarounds that were employed to make it work were just not enough anymore. The GNOME project decided to make use of offline updates through systemd. Ultimately, the openSUSE team has decided to adopt that update model as well since it was the only reasonable solution despite the fact that they were not particularly fond of this as mentioned on BNC (bugzilla.novell.com) bug 842991 by one of the core members of the GNOME team on openSUSE, Dominique Leuenberger.
GNOME 3.12 is currently in the “GNOME:Next” repository on Factory, the development branch of openSUSE. It is expected to hit Tumbleweed (and 13.1 as well, most likely) in the near future and it is also queued for Milestone 1 of Factory. As such, changes had to be made to accommodate the new technology.
Installing gnome-software on Factory, 13.2
Currently, gnome-software no longer requires the “gnome-software-appdata” package to work. It still requires packagekit-branding-upstream. However, it doesn’t quite work as intended yet. Launching it directly after installing it would yield this result:
As demonstrated by the images above, appdata is not being collected and repositories are not being identified. Only a few installed applications are displayed. Leuenberger explained that there is a temporary workaround for this. The openSUSE team is working on a more automated fix but for the moment, early adopters and Factory testers can instead use the following commands to make gnome-software functional again:
$ cp /var/cache/zypp/raw/the-repo-name/suse/setup/descr/appdata.xml.gz /var/cache/app-info/xmls/openSUSE.xml.gz
Extract the icons tarball from:
Leuenberger also explained that:
this should happen obviously automatically at one point, when zypper refreshes it’s repositories
When gnome-software is functional, it reads the appdata from the enabled repositories and displays all potential packages, installed ones, and their appdata. Users can browse through several categories and freely and easily install or remove applications directly from gnome-software or from the search provider. Packagekit remains running in the background after closing gnome-software and when all apps are installed or removed, packagekit keeps running for an additional 300 seconds before terminating itself and unlocking zypper. This can be shorted by killing packagekit manually, if zypper is needed. If several versions of a single package are available from various repositories, gnome-software would display the one from the repository with the highest priority.
Gnome-software will be a great addition to openSUSE when it is ready. It will provide an even simpler method to manage packages and would bring openSUSE one step closer to its users. Naturally, YaST will remain available for those who are more accustomed to it or those who require a more power tool to manage applications. YaST’s Software Management module and gnome-software target two different audiences and can both be quite useful to the average user.
On 3.10, two workarounds were used to make Software work:
- Using packagekit-branding-upstream
- Creating an appdata package for Software
- Software could not update packages
- Appdata package was removed
- Software needs a manual workaround to collect appdata and identify repositories
Things that are planned and are expected as a long term solution:
- Zypper to automatically provide appdata for Software
- Systemd offline updates through Software
- Complete removal of GPK