Builder

Builder is a framework and implementation for a remote build environment. It allows trusted developers to submit jobs to be built, and helps to maintain a distribution.

It was originally designed for an environment where source and package definitions were stored in Subversion, built on x86_64 and i386 Red Hat Enterprise Linux machines (RHEL 3, 4 & 5), and distributed through Red Hat Satellite Server.

Architecture

The central component is the hub, which coordinates builds & releases, and provides a nice web interface to see the status of packages.

Builders query the hub for pending jobs, then build those jobs and provide feedback to the hub. There may be multiple builder instances running on separate servers.

The Release daemon will do the actual release of the packages to the destination channels.

There is the concept of target distributions and architectures.

Release Procedure

The hub will request the release daemon to release, for a specific target, package, and build ID, one or more architectures to one or more architecture channels. You may release i386/lib*.rpm and x86_64/*.rpm to the x86_64 channel, but only i386/*.rpm to the i386 channel. The glob syntax is used to provide flexibility.