Provider Definition Files

Provider Definition Files are how Plainbox learns about providers.


Normally provider definition files are generated automatically by They are generated both by install and develop. It should not be necessary to create such a file by hand.

Lookup Directories

Plainbox discovers and loads providers based on ‘.provider’ files placed in one of the following three directories:

  • /usr/local/share/plainbox-providers-1
  • /usr/share/plainbox-providers-1
  • $XDG_DATA_HOME/plainbox-providers-1 typically $HOME/.local/share/plainbox-providers-1

File Structure

Each provider file has similar structure based on the well-known .ini file syntax. Square braces denote sections, each of which contains arbitrary key-value entries.

Currently only one section is used, Plainbox Provider.

The [Plainbox Provider] Section

The following keys may be defined in this section:

The format for the provider name is an RFC3720 IQN. This is specified in RFC 3720#section- It is used by Plainbox to uniquely identify the provider.
The version of this provider. It must be a sequence of decimal numbers with arbitrary many dots separating particular parts of the version string.
A short description of the provider. This value can be localized.
Absolute pathname to a directory with job definitions as individual .txt files using the job file format.
Absolute pathname to a directory with additional executables required by any of the job definitions.
Absolute pathname to a directory with additional data files required by any of the job definitions.
Absolute pathname to a directory with translation catalogues. The value should be suitable for bindtextdomain(). This should not be specified, unless in special circumstances.

Absolute pathname to a base directory that can be used to derive all of the other directories. If defined, any of the dir variables mentioned above gets an implicit default values:

Variable Default Value
jobs_dir $location/jobs
bin_dir $location/bin
data_dir $location/data
locale_dir $location/locale
locale_dir (alt) $location/build/mo


An example provider definition file looks like this:

[Plainbox Provider]
name = com.canonical:myprovider
version = 1.0
description = My Plainbox test provider
location = /opt/com.canonical.myprovider/
comments powered by Disqus