Package component provides naming
=================================
This document describes how the "provides"-strings for packages should
be formatted for the given PK_PROVIDES types.
This is needed to ensure cross-distro compatibility on package provides
naming (the naming of components packages provide), which is used for
example in pk_client_what_provides_async().
Valid types of provided components are defined in PkProvidesEnum.

In general, the component naming should be "type(component-name)".

Component naming
----------------

MODALIAS:               A string with the modalias, for example
                        "pci:v00008086d00003B64sv000017AAsd0000215Fbc07sc80i00"
                        or "usb:v09DAp000Ad0014dc00dsc00dp00ic03isc01ip02".
                        Returns packages which provide a driver for this
                        device.

CODEC:                  A string in the format of gstreamer<version>(type-format)
                        where <version> is the GStreamer API version (e. g.
                        0.10), "type" is a GStreamer element type ("encoder",
                        "decoder", "urisource", ""urisink", "element"), and
                        "format" is the type specific search string.
                        Example: "gstreamer0.10(decoder-audio/ac3)" or
                        "gstreamer1(decoder-audio/mp3)"

MIMETYPE:               Mimetypes are (valid) mimetypes strings,
                        for example "application/x-catalog" or "text/plain".

FONT:                   A font name, e.g. "Cantarell".

HARDWARE_DRIVER:        The only valid query at the moment is
                        "drivers_for_attached_hardware" which delivers all
                        driver packages that apply to the current system's
                        hardware.

POSTSCRIPT_DRIVER:
                        A string in the format of "postscriptdriver(mfg;mdl;)"
                        where mfg and mdl are the corresponding
                        IEEE 1284 Device ID keys for the printer model,
                        converted to lower-case and with spaces converted
                        to underscores.
                        Example: "postscriptdriver(epson;stylus_d92;)"

PLASMA_SERVICE:         A string in the format of
                        "plasma<version>(servicetype-name)" (where <version> is
                        currently expected to be 4 or 5), e.g.
                        "plasma4(dataengine-weather)". For backwards
                        compatibility, "servicetype-name" will be treated the
                        same as "plasma4(servicetype-name)".

SHARED_LIB:             Name of a shared library
                        Example: "libpackagekit-glib2.so.14"

PYTHON:                 A string in the format of "python<version>(module-name)",
                        or just the name of the Python module.
                        If the Python-Version is omitted, the backend will
                        choose the current default Python version.
                        Example: "python2(packagekit)"

LANGUAGE_SUPPORT:       A string in the format of language(ll_CC) or
                        language(ll), which should correspond to a
                        language/country pair or just a language, as in
                        /usr/share/i18n/SUPPORTED. Returns all packages
                        which provide language support (dictionaries,
                        translated help, ibus modules, etc.) for all packages
                        that are currently installed in the system.
                        Example: "language(zh_CN)" might suggest ibus-pinyin and
                        libreoffice-l10n-zh-cn if you have ibus and LibreOffice
                        installed.

