RBM_LAYOUT(7)
π rbm_layout β the layout of a rbm workspace π
okay bestie, welcome to rbm_layout(7) π«Ά this is the one where we tour your rbm workspace like it's a lil house and i show you which room is which. no cap, it's giving interior design but for packaging.
β¨ NAME β¨
rbm_layout β the layout of a rbm workspace πΈ
π¦ DESCRIPTION π¦
so an rbm workspace is basically a set of packaging projects, right? they all share one common configuration, plus each project gets its own specific config files. group project but the group actually works, iconic. π
your rbm workspace can live anywhere on your filesystem, literally anywhere, as long as you're running rbm from that directory or one of its subdirectories. that's the whole vibe check. β¨
a typical rbm workspace holding two projects named project_1 and project_2 looks 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
now let's do a lil tour, room by room π you'll find the following files and directories:
rbm.confβ the main configuration file, holding generic config for all the projects. this one is mandatory, bestie. norbm.conf, no workspace. periodt. πoutβ where output files get written. every project gets its own subdirectory in here. wanna move it somewhere else? theoutput_diroption has you covered. πgit_clonesβ where the git clones used to create the tarballs live. normally you wouldn't have to touch anything in here, fr fr, it just vibes. path is changeable with thegit_clone_diroption.hg_clonesβ same energy asgit_clones, but for projects using mercurial instead of git. path is changeable with thehg_clone_diroption. πkeyringβ where you can store gpg keyring files. those keyrings hold the keys used to check signed commits and tags. πprojectsβ the directory with all the project definitions. path is changeable with theprojects_diroption.projects/project_1/configβ the configuration file for theproject_1project. to make a new project you literally just create a new directory with a config file inside it. that's it, that's the move. β¨projects/project_1/project_1.specβ an rpm package template file forproject_1. the rpm package template could also be defined inside the config file, and in that case this file doesn't exist at all. no file, no problem. π¦projects/project_1/bugfix.patchβ an example patch file, used in the rpm package.projects/project_1/buildβ a build script forproject_1, containing instructions for building the project and generating atar.gzfile with the build output inside. π₯modules/container/rbm.local.confβ in this example we're using an external rbm module namedcontainer(usually included as a git-submodule). therbm.local.conffile at the root of the module holds the options related to the projects included in the module.modules/container/projectsβ the projects inside a module's projects directory work exactly the same way as the ones in the mainprojectsdirectory. same rules, same energy, no cap. π
heads up: the module config file shows up asrbm.module.confin the tree above andrbm.local.confin the list below it. yes, both are written that way in the original, and i'm not about to gaslight you about it. π
π SEE ALSO π
rbm(1), rbm_config(7), rbm_modules(7)
that's the whole tour bestie, go forth and organise your workspace π this was RBM_LAYOUT(7) from 07/25/2025 β stay slay, stay packaged, and may all your builds be green. πβ¨
π¦ where this page comes from
- fedora 43: rbm 0.4^20241205gitc6a4095-3.fc43 Β· CC0-1.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms