summaryrefslogtreecommitdiff
path: root/README.md
blob: 2b57a65b5d455ccb11cbad881a6aea49c88ebd14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# builder
tools for building 32-bit archlinux packages from archlinux.org's official, 64-bit tested PKGBUILDs et al.
This includes scripts to be run on the build master as well as scripts to be run on the build slaves (both residing in `bin`).

## requirements
* `git`
### build master only
* some ssh-server
* `pkgbuild-introspection`
* `bc`
### build slave only
* some ssh-client
* `devtools32`
* `mercurial`

## configuration
The standard configuration in `conf/default.conf` can be locally overwritten by `conf/local.conf`.
### build master only
* add `command=".../bin/slave-build-connect $slave-identifier" $ssh-key` to `~/.ssh/authorized_keys` for each build slave
### build slave only
* set `keyserver-options auto-key-retrieve` in ~/.gnupg/gpg.conf
* put an i686 mirror into `/etc/pacman.d/mirrorlist` as __first__ mirror

## tools for the build master
* `get-assignment`:
Receive a build assignment from the `build-list`.
* `get-package-updates`:
Update the `build-list`.
* `build-slave-connect`:
Proxy command to be allowed for connection via ssh from build slaves - this way, they can execute exactly the commands they need to operate.
* `build-master-status`:
Print some informational statistics.

## tools for the build slaves
* `build-packages`:
Get a build assignment from the build master, build it and report back.

## working directory
In the standard configuration, the directory `work` will be used to cache the following data:
* `build-list`, `build-list.loops`, `build-order`, `tsort.error`:
order of builds of packages and dependency loops
* `deletion-list`:
packages to be deleted
* `*.revision`:
current revisions of the respective repository
* `package-infos`:
meta data of packages
* `package-states`:
information on build process of packages (lock files, markers for broken packages)
* `repos/packages`, `repos/community`, `repos/packages32`:
git repositories of PKGBUILDs and modifications