NAME

rbm_layout - The layout of a rbm workspace

DESCRIPTION

An rbm workspace is a set of packaging projects, with a common configuration, and projects' specific configuration files.

An rbm workspace can be located anywhere on your filesystem, as long as your are running rbm from this directory or one of its subdirectories.

A typical rbm workspace that contains two projects named project_1 and project_2 will look like this :

(rbm-workspace)
  |
  |-- rbm.conf
  |
  |-- out
  |    |
  |    |-- project_1
  |    |    |
  |    |    |-- project_1-0.1.tar.gz
  |    |    |
  |    |    +-- project_1-0.1-1.x86_64.rpm
  |    |
  |    +-- project_2
  |         |
  |         |-- project_2-7.3.tar.bz2
  |         |
  |         +-- project_2-7.1-1.x86_64.rpm
  |
  |-- git_clones
  |    |
  |    |-- project_1
  |    |    +-- source files
  |    |
  |    +-- project_2
  |         +-- source files
  |
  |-- keyring
  |    |
  |    |-- keyring-1
  |    |
  |    +-- keyring-2
  |
  +-- projects
       |
       |-- project_1
       |    |
       |    |-- config
       |    |
       |    |-- project_1.spec
       |    |
       |    |-- bugfix.patch
       |    |
       |    +-- debian_rules
       |
       +-- project_2
            |
            |-- config
            |
            |-- project_2.spec
            |
            +-- debian_rules

You will file the following files and directories :

rbm.conf

This is the main configuration file, containing generic configuration for all projects. This file is mandatory.

out

This is the directory where output files are written. Each project has its own subdirectory. The output directory path can be changed with the output_dir option.

git_clones

This is the directory where git clones used to create the tarballs are stored. Normally you wouldn’t have to do anything inside this directory. The path of this directory can be changed with the git_clone_dir option.

hg_clones

This is the same as git_clones, but for projects that use mercurial rather than git. The path of this directory can be changed with the hg_clone_dir option.

keyring

This is the directory where you can store gpg keyring files. Those keyrings contains the keys that are used to check signed commits and tags. The path of this directory can be changed with the gpg_keyring_dir option.

projects

This is the directory containing projects definitions. The path of this directory can be changed with the projects_dir option.

projects/project_1/config

This is the configuration file for the project_1 project. To create a new project, you need to create a new directory with a config file inside.

projects/project_1/project_1.spec

This is an rpm package template file for project_1. The rpm package template could also be defined inside the config file, in which case this file does not exist.

projects/project_1/bugfix.patch

This is an example patch file, used in the rpm package.

projects/project_1/debian_rules

This is an example path for a debian/rules file to be used in the debian packaging for the project_1 project. All the debian packaging can be defined entirely inside the config file, but it is usually convenient to split some of it in separate files.

SEE ALSO