[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

AppStream / DEP-11 support now available in the Debian archive



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

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:
    https://appstream.debian.org/html/


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
explanations.


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[1], and the Elementary project ships AppCenter[2] as a way to
browse software.

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`
package.
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[3] to
learn why the component was ignored. There also is a page at the Debian
Wiki with packaging guidelines[4] 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[5].

If your package ships metainfo files, you can validate them using
`appstreamcli validate` (appstream package) or `appstream-util validate`
(appstream-util package).

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[6].


More information
================

Lots of information about AppStream is summarized on the Debian Wiki:
  https://wiki.debian.org/AppStream

Also, the main page of the DEP-11 generator contains some useful pointer
s:
  https://appstream.debian.org/html/

If you want to get more detailed information about the project and the
metadata, I recommend taking a look at the specification:
  http://www.freedesktop.org/software/appstream/docs/

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):

http://blog.tenstral.net/2015/12/appstreamdep-11-fully-supported-in-debi
an-now.html

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[7].

  Mail: mak[at]debian.org
  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.

Kind regards,
    Matthias Klumpp


[1]: Not build with AppStream support on Debian at time.
[2]: Not in Debian yet.
[3]: https://appstream.debian.org/html/sid/main/issues/index.html
[4]: https://wiki.debian.org/AppStream/Guidelines
[5]: https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=appstream-dep11
     or via Github: https://github.com/ximion/appstream-dep11/issues
[6]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=806740
[7]: 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

iQIcBAEBCAAGBQJWbwDbAAoJEElMil+/TezrrkMP/18yu3RjGrT9/IRuaJuJuBS5
R77u2V1eupI84laat2vIUZ3upVB/1BeWs4WBzWkvgIQiA5F6OdpIRtWqx1xMY+GC
JahCqT5FIrcY5xBY1CmLAWD4h5mzKzixCVzlE/GhV1cnInfs15qcPNfm38+x438X
8buLLO+igvwYh4+qwRib6jubqqPS+mtpzu90SDMAArB7yPx3L/+CVPMyF81lJcSK
wZbQyjS+m4IcEKwPbu4Lvii8M1NtFaq1TlA3ziB0yOJvmifRqXTLG6pLSvM4vYAA
0vMNkP/uIv0/jcEaLEkgZcFwsnhPQuMSQ8KZCkgKeW4bsXszVWJr4jdTDz+G5OYc
ZyE3RKoJx3BP4OOR05wxlF7OgUbBoJZBNNkdDGBSyGg6Pfd+vqEnXM2CxuYFogka
nOQgv2HspkULW2cSrohIzc0unw/G17S5kURQ3p6zuTMqHzXpx/28HBs5teqUb8Bu
oIW68ycCzcL0cW+P2ZBY4qd2LHGZL2Ah306BBVh965aHz+7hdoND9A71kBxXSbEI
KolfUhnT9WGFmP1NgiFbg+GeRMtQYhydmFdX6f8yfFlLHZ55lJxogoikk/9pHD24
sOrBTCetltf0kbAyAbeNyoIwqJdbp2oJ/nX/Zq4/h8ZoaM1B6qvg/0il2WwTJ+5w
ANCoV8D1+ZPT4lKCkKAH
=3RXe
-----END PGP SIGNATURE-----


Reply to: