Proposal: AppData files in all application packages?

Richard Hughes hughsient at gmail.com
Fri Sep 6 09:33:42 UTC 2013


Hi all. I'm the developer for PackageKit and gnome-software, the
latter being the new software center we're hopefully including as a
technical preview in Fedora 20.

A few years ago distributions came together and created the AppStream
specification which was designed to be common between all
distributions and desktops. This data allowed us to describe
applications that were not yet installed, and also map them to package
names. The AppStream specification also allows us to include icons for
applications. Ubuntu and SuSE both adopted the standard, but for many
reasons Fedora didn't until now.

With this data means we can create a software center that looks as
good as the Chrome/Firefox store, but with all the existing
applications we have available to us in Fedora. It means we can give
people the software center they've been requesting for years. We're
not taking away yum/dnf/gnome-packagekit or any of the existing tools
that focus on packages, just adding a *new* application installer.

At the moment, we use the information in the .desktop file to populate
the AppStream data, but this is missing a few core things, for
instance a long description, the upstream website for the application
and any screenshots to show. All of the three being quite critical to
assess an application before installing. To fix this I've created a
tiny AppData specification [1] which is a subset of the AppStream
specification. It's designed as a way to describe the application (not
the package) so that data can be used in the AppStream data.

At the moment, about 50 upstream projects are already shipping AppData
files, and we've also got a few more which live in the fedora compose
tools repo [2] for 'featured' applications we want to look complete
for Fedora 20 launch. All the files in this repo have been submitted
upstream, so hopefully the number of "extra" files in that repo should
shrink to zero long term.

So, well done if you've read this far already. What I am asking all
you packagers for applications to do is:

 * Talk to the upstream maintainers, and try to convince them to write
and ship an .appdata.xml file -- this is the best option as it can be
translated in the future upstream, and the upstream maintainer can
control things like what screenshots are shipped. It also means the
data is shared with all the other distros.

* If your upstream is on life-support, dead, or just not interested in
shipping yet another file in the tarball you have two options. Either
ship an AppData file in the package itself, e.g. as a "Source2" and
install it in /usr/share/appdata in the RPM. If you do a build for f20
and make sure it's in before the F20 Beta then I'll automatically be
included in gnome-software. The other option is to submit a patch
against fedora-appstream itself, although I'd much prefer it in the
package as then you can make changes yourself if the project
description/screenshot changes.

In the context of AppStream, an application is a package that ships
one or more .desktop files, that include Name,Comment and also Icon. A
few applications are blacklisted if they are not included in the GUI
menus or if they are settings panels. For now it's quite restrictive,
but in the future we'll be considering other things as apps too, like
Chrome Store Apps and GNOME Shell Extensions.

Any questions, either grab me on irc 'hughsie' or reply to this email.
Be sure to read [1] as a lot of common questions are answered there.

Thanks in advance!

Richard

[1] http://people.freedesktop.org/~hughsient/appdata/
[2] https://github.com/hughsie/fedora-appstream/tree/master/appdata-extra


More information about the devel mailing list