AppStream / DEP-11 support now available in the Debian archive
-----BEGIN PGP SIGNED MESSAGE-----
DEP-11 is a Debian extension proposal to enhance the metadata provided
by the Debian archive.
It implements the AppStream Freedesktop specification for Debian, and
the project's main functionality is now done and working and the amd64
and i386 architectures (more architectures will be added gradually,
if it makes sense for them to have the data at all).
This mail is an update on the current status of DEP-11/AppStream in
Debian, and how you can use it to improve your packages.
More information on AppStream can be found at:
What is AppStream and DEP-11?
AppStream is a metadata specification, describing software components
and which packages they are contained in.
A software component can be anything, from a desktop-application over a
font to a driver or firmware.
DEP-11 is a YAML-based version of the XML AppStream specification.
On Debian, we generate the DEP-11 metadata (currently mainly for
desktop-applications, other components will follow), and make it
available in the archive, for APT to download.
See the "More information" section for pointers to more detailed
How can I use AppStream in Debian?
AppStream is commonly used on desktops via a software center application
On GNOME, GNOME-Software can be used to browse through an
application-centric view on the Debian archive. KDE users can use KDE
Discover, and the Elementary project ships AppCenter as a way to
There are also CLI tools available to work with the data. In order to
get the data in the first place, you need to install the `appstream`
The DEP-11 data is then downloaded on the next update of the APT cache.
You can then for example run commands like `appstreamcli search web`,
which will list software components in the archive which contain the
keyword "web" in their description.
Using the `what-provides` subcommand, the archive can be queried for
software providing e.g. a specific binary or Python component.
There also is a `install` and `remove` subcommand, to directly install
or remove software by its component-ID, for example
`appstreamcli install org.kde.gwenview.desktop`
will install KDEs Gwenview image viewer.
How can I make software in my package appear in the component index?
AppStream Metainfo files are usually provided by upstream projects, and
contain the majority of information that is added the the final YAML
documents. These XML files get stored in `/usr/share/appdata/`.
When building the final metadata, the metainfo-files are taken into
account, as well as other metadata like data found in .desktop files. We
do not include data which doesn't match certain very minimal quality
guidelines, or which contains errors. If you don't find your software in
the DEP-11 metadata, you can check the issue information page to
learn why the component was ignored. There also is a page at the Debian
Wiki with packaging guidelines which will be expanded in future.
If you think an error, warning or hint for your component is wrong, feel
free to file a bug against the metadata generator.
If your package ships metainfo files, you can validate them using
`appstreamcli validate` (appstream package) or `appstream-util validate`
Currently, we have ~1714 valid software components in the archive
(unstable suite, main+contrib+non-free), but we also have 3408 generator
hints of type "error". Let's work together to make the former number
increase and the latter number decrease!
We will hopefully have these issue hints integrated into
tracker.debian.org later, so people do not need to look on an additional
page for issues.
Lots of information about AppStream is summarized on the Debian Wiki:
Also, the main page of the DEP-11 generator contains some useful pointer
If you want to get more detailed information about the project and the
metadata, I recommend taking a look at the specification:
For some history and details, I also wrote a blogpost today which might
be interesting (although its main content is the same as this email):
The metadata is currently only available on amd64 and i386, more
architectures will be added soon, when some optimization work on the
data generator is done.
Getting in touch
The biggest task at hand right now is to fix many of the issues the
DEP-11 generator is producing, which is something every package
maintainer can help with. The DEP-11 generator also needs continuous
improvements and optimizations, so we can soon add even more metadata to
the archive, to make software management smarter.
If you want to get in touch with me, feel free to do so! I am happily
answering questions, especially concerning making your package support
AppStream metadata well.
IRC: highlight ximion on #debian-devel (OFTC)
Thanks to everyone who made DEP-11 work, my GSoC student Abhishek
Bhattacharjee, the people drafting the initial DEP-11 specification back
in 2011 together with me, the awesome FTPMasters for helping with
getting the data into the archive, the DSA for setting up the machine
used to generate the metadata, and the APT team for the great new API
for additional metadata downloads.
: Not build with AppStream support on Debian at time.
: Not in Debian yet.
or via Github: https://github.com/ximion/appstream-dep11/issues
: If you find something unclear in the documentation, make sure to
edit the Wiki pages to make the matter easier to understand for everyone
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
-----END PGP SIGNATURE-----