Reviving AppStream and current status

Vincent Untz vuntz at
Tue Mar 20 02:07:34 PDT 2012

Hi all,

A small group discussed AppStream last year, and the result was archived

There was a nice timeline, but then everyone got busy :/ So it got stuck
a bit (except for distromatch, thank to Enrico!)

A few weeks ago, some of us took some time to get appstream back on
track. There are still many things to do, but I guess it's a good time
to talk about the current status since there's something starting to

There is a "How can I help?" section at the end :-)

Software Center with PackageKit support

Last year, Alex Eftimie did a GSoC project to land a PackageKit backend
in the software center. This was some good preliminary work, but still
needed some love, especially in terms of performance.

The code is now alive again, and lives in git at

Unfortunately, because of the Harmony CLA required by Canonical, some of
us can't contribute the changes back to the original software center
project (for instance, I'm not fine with the CLA so won't sign it).
Therefore this is becoming a fork; that being said, we're trying to stay
in sync with the launchpad code, and Michal Hrušecký is merging the code
from launchpad trunk every now and then. The goal of the fork is not to
substantially diverge, but simply to make the software center usable on
all distros.

It's reaching the point where it's usable, however there is still a road
ahead before this becomes usable by everyone:

 - some external tool needs to be used to fetched appdata.xml, and call
   the update-software-center tool to generate the xapian database

 - only the basic features have been tested; I'm not completely sure the
   channel-related features work well, for instance; also package
   updates haven't been tested

 - several features (recommendations, reviews) need to be re-implemented
   for distros (more on this below)

 - the current code is pretty much synchronous, which is a bit ugly

Of course, to play with the software center in an AppStream context, we
need some application metadata (appdata.xml) :-)

Application metadata

openSUSE is now generating an appdata.xml file for its repo. You can
find an example here:

It'd be great to have other distros generate this too so everyone can
play with the PackageKit backend in the software center (although Debian
and Ubuntu can still use the apt backend).

That being said, in the short term, it can already be used on other
distro, or even better, we can use distromatch to transform it to work
for other distros.

There's also a tarball with icons:
It's not used by the software center yet; the way files are arranged
inside this tarball is pretty much still to be defined.

Features based on web services

Several features depend on external services: screenshots,
recommendations, reviews, etc.

For screenshots, the plan is to use debshots:
There's currently a 2.x version being written, that will have
multi-distribution features, see
So this is looking good :-)

For recommendations and reviews, well, I'm not aware of anyone working
on this. So that's a hole we need to fill; it could possibly be a GSoC

"How can I help?"

We want this project to succeed and be usable by all distros, and to
achieve this, we need your help! Without you, things won't move as fast
as they should ;-)

Here are the different areas where people can step up and rock the

 - Get code to generate distromatch data for your distro
   => This can be used to generate an appdata.xml file for all distro
      supported in distromatch, based on an appdata.xml file from one
      distro. And this will be usable in debshots and other services
      later on.
   => We already have code for Debian, Fedora, openSUSE and Ubuntu, but
      we'd need more.
   => An export script for your distro is writable in a few hours. See
      as example the existing scripts:
   => For reference, here's a tarball containing Fedora and openSUSE
      data (it will move to a proper home at some point):

 - Get some appdata.xml file published in your distro repository
   => This is something that needs to be plugged in the build service of
      each distro.
   => The scripts we use to extract the data after the build of
      packages in openSUSE can be found at:
      It's unclear to me if this can be reused by other distros, though.

 - Test the PackageKit-based software center on your distro (and hack on
   it so that it's rock-solid!)
   => Clone the code:
      git clone git://
   => You can start with a dummy appdata.xml file (see
      for an example).
   => To use the code from the checkout:
      # Generate xapian database from appdata.xml
      ./utils/update-software-center --local --appstream-only
   => You might need to create a backend for your distro; this is very
      simple, see files in ./softwarecenter/distro/

 - Help develop debshots 2.x
   => Join

 - Volunteer to work on the reviews and recommendations services
   => The client code in the software center can be analyzed to show the
      needs we have.
   => This should be created with multi-distribution features in mind,
      like debshots.



Les gens heureux ne sont pas pressés.

More information about the Distributions mailing list