Due to sheer diversity of the environments, build machine is expected to provide strict minimum amount of software (don't forget --no-install-recommends on dpkg-based systems):
To access the build machine:
- SSH server
- Bundled one on Unixes
- FreeSSHd on Windows
- 'build' account with SSH key installed
To transfer files back and forth:
- rsync on Unixes
- 7z on Windows
To be able to install packages and run tests:
- passwordless sudo access for 'build' account
- sudo should not require TTY (remove 'Defaults requiretty' from /etc/sudoers)
To build everything:
- GCC (gcc)
- GNU make (make)
- libc development package (libc-dev, glibc-devel)
- bison (bison)
- flex (flex)
- fakeroot (but not fakeroot 1.12, it is horribly slow!)
To create packages:
- Native packaging manager
- rpm-build on RPM-based systems
- dpkg-dev, debhelper, fakeroot
- WiX on Windows
To build MySQL library (yeah!):
- g++ (gcc-c++, g++)
- ncurses (ncurses-devel, libncurses5-dev)
To build libvirt:
- pkg-config (pkg-config, pkgconfig)
Anything else is either preprocessed on buildbot slave or built and installed during build.
- texinfo
- texlive
- cm-super
- texlive-fonts-extra
Build machines should not contain the following items, which may interfere with build process:
- CFEngine itself, either in source or binary form (build machines are short-living, so this is not a problem)
- Development packages for anything beside libc to avoid picking them up instead of bundled ones accidentally.
- MySQL and PostgreSQL servers, clients and libraries
The following packages should not be installed on build machines as well, to avoid accidentally regenerating files transferred from buildslave:
- automake
- autoconf
- libtool
File install-dependencies and the relevant subdirectories in deps-packaging are the source of this information.
| CFEngine version | 3.12.x | 3.15.x | master |
|---|---|---|---|
| lcov | 1.14 | 1.14 | 1.14 |
| git | |||
| rsync |
| CFEngine version | 3.12.x | 3.15.x | master | Notes |
|---|---|---|---|---|
| SASL2 | 2.1.27 | 2.1.27 | 2.1.27 | Solaris Enterprise agent |
| libacl | 2.2.53 | 2.2.53 | 2.2.53 | |
| libattr | 2.4.48 | 2.4.48 | 2.4.48 | |
| libcurl | 7.70.0 | 7.70.0 | 7.68.0 | |
| libgnurx | 2.5.1 | 2.5.1 | 2.5.1 | Windows Enterprise agent |
| libiconv | 1.16 | 1.16 | 1.16 | Needed by libxml2 |
| libxml2 | 2.9.10 | 2.9.10 | 2.9.10 | |
| libyaml | 0.2.4 | 0.2.4 | 0.2.2 | |
| LMDB | 0.9.24 | 0.9.24 | 0.9.24 | |
| OpenLDAP | 2.4.50 | 2.4.50 | 2.4.49 | Enterprise agent only |
| OpenSSL | 1.1.1g | 1.1.1g | 1.1.1f | |
| PCRE | 8.44 | 8.44 | 8.44 | |
| pthreads-w32 | 2-9-1 | 2-9-1 | 2-9-1 | Windows Enterprise agent |
| zlib | 1.2.11 | 1.2.11 | 1.2.11 | |
| libgcc | AIX and Solaris only |
| CFEngine version | 3.12.x | 3.15.x | master |
|---|---|---|---|
| Apache | 2.4.43 | 2.4.43 | 2.4.41 |
| APR | 1.7.0 | 1.7.0 | 1.7.0 |
| apr-util | 1.6.1 | 1.6.1 | 1.6.1 |
| Git | 2.26.2 | 2.26.2 | 2.25.1 |
| PHP | 7.2.30 | 7.4.5 | 7.4.2 |
| PostgreSQL | 10.12 | 12.2 | 12.2 |
| rsync | 3.1.3 | 3.1.3 | 3.1.3 |
- MinGW-w64 OUTDATED needed
for redmine#2932
- Requires change of buildslaves (autobuild)
Other dependencies (find out why they are needed!)
- autoconf 2.69