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 :
This is the main configuration file, containing generic configuration for all projects. This file is mandatory.
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.
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.
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.
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.
This is the directory containing projects definitions. The path of this directory can be changed with the projects_dir option.
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.
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.
This is an example patch file, used in the rpm package.
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.