rbm_layout - Man Page

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-src.tar.gz
  |    |    |
  |    |    +-- project_1-0.1-1.x86_64.rpm
  |    |    |
  |    |    +-- project_1-0.1-1.x86_64.tar.gz
  |    |
  |    +-- project_2
  |         |
  |         |-- project_2-7.3.tar-src.bz2
  |         |
  |         +-- project_2-7.1-1.x86_64.tar.gz
  |
  |-- git_clones
  |    |
  |    |-- project_1
  |    |    +-- source files
  |    |
  |    +-- project_2
  |         +-- source files
  |
  |-- keyring
  |    |
  |    |-- project_1.gpg
  |    |
  |    +-- project_2.gpg
  |
  +-- projects
  |    |
  |    |-- project_1
  |    |    |
  |    |    |-- config
  |    |    |
  |    |    |-- project_1.spec
  |    |    |
  |    |    |-- bugfix.patch
  |    |
  |    +-- project_2
  |         |
  |         |-- config
  |         |
  |         +-- build
  |
  +-- modules
       |
       +-- container
            |
            |-- rbm.module.conf
            |
            |-- projects
            |     |
            |     +-- container-image
            |           |
            |           |-- config
            |           |
            |           +-- build
            |
            +-- keyring
                  |
                  +-- container-image.gpg

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.

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/build

This is a build script for project_1, containing instructions for building the project and generating a tar.gz file containing the build output.

modules/container/rbm.local.conf

In this example we use an external rbm module named container (usually included as a git-submodule). The rbm.local.conf file located at the root of the module contains the options related to the projects included in the module.

modules/container/projects

The projects included in the projects directory of a module work in the same way as those in the main projects directory.

See Also

rbm(1), rbm_config(7), rbm_modules(7)

Referenced By

rbm(1).

07/25/2022