PackageKit just isn’t a real solution. A software installer that actually deals with users’ needs is called for. This is a paraphrase of Richard Hughes first statement at his presentation on the GNOME Software and how to connect users to the applications they want.

Applications and metadata

What is an application? It’s not necessarily the same as a package. An application might be made up of more than one package, or a package might include more than one applications. A good way to target applications is to simply make the cutoff “things that should appear in a desktop menu,” one reason being because a user chooses to run them. The kind of information, though, that’s in a .desktop file doesn’t necessarily give you the metadata needed to present users with application choices in a software installer.

For instance, you can’t easily do multi-line descriptions in translated form in .desktop files. This was the problem that AppData solves. AppData also allows overriding names wrongly used or abused in packages from sources different from the overall distribution or product in which they’re included. AppData also provides ways for upstreams to include updated and current screenshots for their application, as well as a contact point where maintainers can be notified about change needs for their AppData.

A newer development in application metadata is the MetaInfo file. This is an additional XML file that can be used to define application add-ons. These add-ons, while perhaps not required for an application, extend or enhance its capabilities.

Another feature that consumers have asked for is a way to tag software. An example of implementation is the Fedora Tagger web application. This web app allows users to apply arbitrary keywords and searchable terms to packages so they’re easy to locate and group.

Not just a pretty face

Some people think of GNOME Software as a front end to PackageKit, but that’s not really true, although PackageKit is important. The software installer uses the PackageKit plugin architecture, which although private can be used by anyone who needs it. Problems do occur, Hughes conceded, when you have multiple instances of an application in different repositories, but this can be resolved through application policies (such as “prefer the distribution version”).

Hughes maintains utilities that process the content of repositories — such as Fedora’s packages — to determine metadata. This metadata can then be included in the distribution of GNOME Software. The plugins can filter or act on a large variety of metadata. One example is sorting toward the top of the installer interface those packages well-translated in the user’s local language. Hughes also covered the kudo type, which is a way to rate applications based on multiple dimensions of how well they are integrated with the desktop environment.

Hughes also explained that the resulting XML can be validated both with utilities he provides and with provided schemas. Fedora has recently renewed its interest in software AppData and many other distributions are using it or planning on doing so.

Sometimes upstreams don’t provide all the AppData needed, or may provide inappropriate screenshots that are hard to read or not suitable for inclusion. The Fedora Design team, including Ryan Lerch and Máirín Duffy, are working on helping replace that data with appropriate overrides. They also have ways for contributors to help, which are both easy and will earn you a Fedora Badge!

The AppData specification is well described in its upstream page. This makes it easy for developers and maintainers to create AppData for their applications. The rich text content allowed in the specification helps upstream communities advertise their apps and drive interest and contribution. For instance, the interface of GNOME Software includes ways to help direct users or donors to an appropriate website.

The MetaInfo files also deliver additional ways to help users. For example, the software installer can include a list of appropriate add-ons that may interest users. The metadata from MetaInfo can also allow users to search for applications that have capabilities provided by add-ons. If the user searches for “spell check,” they may see gedit, the GNOME Text Editor, because it includes an add-on that advertises spell check capabilities.

The upcoming editions of GNOME Software also include functions for finding codecs and fonts, as well as other input sources such as languages or emoji. In the future, Hughes is working with other GNOME, freedesktop.org, and upstream projects to make installation of capabilities and applications more seamless for users. It’s an exciting and attractive future ahead for applications in Fedora.

You can see this and almost all the Flock 2014 talks at the conference YouTube channel. Or you can watch Hughes’ talk below.