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.so.1

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