1RBM_TUTORIAL(7)                                                RBM_TUTORIAL(7)
2
3
4

NAME

6       rbm_tutorial - A tutorial introduction to rbm
7

DESCRIPTION

9       This tutorial will explain how to start using rbm to build rpm and
10       debian packages for different distributions.
11
12       In this example we will package the tor software.
13

CREATING A NEW WORKSPACE

15       The first step is to create a rbm workspace. In this example, we will
16       use ~/rbm, but you could use anything :
17
18           $ mkdir ~/rbm
19           $ cd ~/rbm
20
21       The first thing to do is to create the main configuration file, which
22       will contain the configuration for all projects in this workspace. For
23       now, we will just add the compress_tar option, and add more options
24       later when needed.
25
26           $ cat > rbm.conf <<END
27           compress_tar: xz
28           END
29
30       The compress_tar options means that we want tarballs to be compressed
31       using xz.
32

CREATING A NEW PROJECT

34       We will now add the tor project. To do this we just create the
35       directory inside the projects directory, and put a config file inside
36       containing the configuration for the project. The main option that we
37       will set is git_url, which is the url used to clone the git repository
38       of the software. If your project is using mercurial rather than git,
39       you could set hg_url instead.
40
41           $ mkdir -p projects/tor
42           $ cat > projects/tor/config <<END
43           git_url: https://git.torproject.org/tor.git
44           END
45
46       We can check that the project is correctly defined using the projects
47       command :
48
49           $ rbm projects
50           tor
51
52       And we can display the tor project configuration using the showconf
53       command :
54
55           $ rbm showconf tor
56           ---
57           git_url: https://git.torproject.org/tor.git
58

VERSION SETTINGS

60       The first thing to do when adding a new project is to configure the
61       version settings: rbm needs to be able to compute the version of the
62       software, for any git commit.
63
64       By default, rbm will use the latest tag on which a commit is based as
65       the version number. Sometimes it works, when the project uses version
66       numbers as tags, but this is not always the case. Alternatively, you
67       can define the version_command option with a shell script or command
68       that will print the version number.
69
70       For tor, we will use the version_command option. The version of the
71       software is defined in the ChangeLog file, so we will use a simple
72       command to get it. The tor config file now look like this :
73
74           git_url: https://git.torproject.org/tor.git
75           version_command: perl -ne 'if (m/^Changes in version ([^-]+)-.*$/) { print "$1\n"; exit }' < ChangeLog
76
77       Using the showconf command, we can check the value of the version
78       option for different commits :
79
80           $ rbm showconf tor version --git-hash master
81           0.2.5.1
82           $ rbm showconf tor version --git-hash tor-0.2.4.17-rc
83           0.2.4.17
84
85       The first time you run this command, the git repository will have to be
86       cloned, which can take some time.
87

CREATING A TARBALL

89       After setting the configuration for the version, we are now ready to
90       create a tarball based on a git commit. We can do this using the tar
91       command :
92
93           $ rbm tar tor --git-hash master
94           Created /home/boklm/rbm/out/tor-0.2.5.1.tar.xz
95           $ rbm tar tor --git-hash tor-0.2.4.17-rc
96           Created /home/boklm/rbm/out/tor-0.2.4.17.tar.xz
97

BUILDING AN RPM PACKAGE

99       TODO
100

BUILDING A DEBIAN PACKAGE

102       TODO
103

USING A REMOTE BUILD SERVER

105       TODO
106

SEE ALSO

108       rbm(1)
109
110
111
112                                  01/30/2020                   RBM_TUTORIAL(7)
Impressum