1RBM(1) RBM(1)
2
3
4
6 rbm - Packaging tool
7
9 rbm [command] [options]
10
12 Reproducible Build Manager (rbm) is a tool that helps you create and
13 build packages for multiple linux distributions, and automate the parts
14 that can be automated. It includes options to run the build in a
15 defined environement to allow reproducing the build.
16
17 It can be used to create rpm, debian and other types of packages.
18
20 tarball creation
21 Create tarballs for your software using a simple command and a git
22 or mercurial revision.
23
24 automatic verification of gpg signatures
25 If your git commits or git tags are gpg signed, the signature can
26 be automatically checked using a specified keyring.
27
28 package creation
29 Create binary or source packages from any git or mercurial revision
30 using a simple command.
31
32 packages upload
33 Upload the packages that you have built to a repository and update
34 metadata.
35
36 multi-os support
37 RPM and debian packages are currently supported. Support for more
38 packaging systems could easily be added. Using package templates
39 and the Template Toolkit, you can make different packages for
40 different distributions using the same files. The syntax of this
41 templating system is much more clear and powerful than the RPM
42 macros syntax.
43
44 remote builds
45 Build your software on a remote server with ssh, or in a local
46 chroot using a different OS. For instance if you are using rbm on
47 an rpm based distribution, this allows you to build debian packages
48 from the same workspace, using a Debian chroot.
49
50 customizable
51 Almost everything rbm do can be changed using some optional
52 settings, globally, or for some selected projects or OSs.
53
54 simple configuration
55 The configuration is done using simple YAML files.
56
57 a flexible configuration system
58 All settings can be set globally, per workspace, project, or target
59 operating system.
60
61 a dynamic configuration system
62 All configuration settings are templates. You can reuse other
63 configuration settings, or the output of some commands in those
64 settings. For instance, the version number of your software can be
65 set using a command to grep the README file in your sources tree.
66
67 extensible in perl
68 While the configuration is usually done in simple YAML, you can
69 also in the same configuration file use perl to define any of the
70 options. Those options can be defined by a perl function that will
71 be executed when the option is queried, and whose return value will
72 be used as the option value.
73
75 The following man pages are available :
76
77 • rbm_tutorial(7) : A tutorial introduction to rbm
78
79 • rbm_layout(7) : The rbm layout
80
81 • rbm_config(7) : The rbm configuration
82
83 • rbm_cli(7) : The rbm command line interface
84
85 • rbm_templates(7) : The rbm templates
86
87 • rbm_remote(7) : The rbm remote builds
88
89 • rbm_input_files(7) : The input files configuration
90
91 • rbm_targets(7) : The targets configuration
92
93 • rbm_steps(7) : The steps configuration
94
95 rbm commands :
96
97 • rbm(1)
98
99 • rbm-usage(1)
100
101 • rbm-tar(1)
102
103 • rbm-showconf(1)
104
105 • rbm-build(1)
106
107 • rbm-srpm(1)
108
109 • rbm-rpm(1)
110
111 • rbm-rpmspec(1)
112
113 • rbm-fetch(1)
114
115 • rbm-deb-src(1)
116
117 • rbm-deb(1)
118
119 • rbm-pkg(1)
120
121 • rbm-publish(1)
122
124 You can look at the Tor Browser build repository for an example of how
125 it can be used.
126 https://gitweb.torproject.org/builders/tor-browser-build.git/
127
128
129
130 01/21/2022 RBM(1)