burps_distributions - burps distributions configuration


burps can be used to generate different packages for different distributions.


The distribution for which you want to build packages can be explicitely defined, using the distributions option, or detected automatically.

By default the distribution will be automatically detected, using the lsb_release program. If the lsb_release program is not available on your distribution, or if for some reason you don’t want to use the autodetected distribution, you can define it manually in the configuration.

Example :

  id: Debian
  release: 7.0
  codename: wheezy

Alternatively you can use the distribution option which can be set on command line with the --distribution parameter. The distribution option can be used to set the distribution name (or lsb_release/id), and optionally the distribution release, using the following syntax :

  • [id]

  • [id]-[release]

Examples :

# building for Debian
$ burps build tor --distribution Debian
# building for Debian 7.0
$ burps build tor --distribution Debian-7.0

If you only specify the distribution name using the distribution option, then the release and codename will be undefined. If you specify the distribution name and release, then if a matching distribution exists in the configuration, the codename of that distribution will be used, otherwise the codename will be undefined.


When writting templates for your packages, the options that you should use to act depending on distributions are lsb_release/id for the distribution name, lsb_release/release for the distribution release number, and optionally lsb_release/codename for the codename.

Example :

[% IF c('lsb_release/id') == 'Debian'
        && versioncmp(c('lsb_release/release'), '7.0') < 0 %]
Depends: something
[% END %]

The distribution option should not be used in templates, as it is undefined when the distribution is detected automatically.


burps use different configuration files : project’s config, workspace’s config, system’s config, the default config. In each of those configuration files, it is possible to define regular options, or distribution specific options. The distribution specific options can be defined for a family of distribution, of for a specific release or codename.

The distribution specific options are defined in the distributions options, which is an array of distribution definitions. Each distribution definition should at least contain a value for lsb_release/id, and optionally lsb_release/release or lsb_release/codename.

In the following example we’re saying that we want to compress tarballs using :

  • xz on Mageia distributions (any version)

  • xz on Debian wheezy,

  • bz2 on all other Debian versions,

  • gz on all other distributions

compress_tar: gz
 - lsb_release:
     id: Mageia
   compress_tar: xz
 - lsb_release:
     id: Debian
     codename: wheezy
   compress_tar: xz
 - lsb_release:
     id: Debian
   compress_tar: bz2

Except with multiple definitions of the same distribution and release (which is not recommanded), the order of the definition is not important. The value that will be used is the one from the distribution definition that match the most the selected distribution : a distribution that defines a matching id and codename will be used over one that only defines an id.


burps includes definitions for a few common distributions. You can see them with burps showconf, looking at the default/distributions entries.