4 Build Process

Each package build is done in a fresh environment. This is done to ensure that no dependencies are missing and every later build produces identical results.

4.1 How is a build process defined

...

4.2 How does a build process work

All sources and binaries which are hosted inside of OBS are organized in projects. Projects do host in sources inside of package containers again. The sources get build according to the repository configuration inside of the project.

4.2.1 Preinstall phase

The step of this phase depends on the type of the buildroot (building environment). OBS supports three different types buildroot:

  • chroot
  • XEN
  • KVM

In the preinstall phase the OBS Worker creates a small base system (chroot or VM Image) with manually extracted packages (filesystem, coreutils, binutils, rpm/debutils, etc.), copies all neccessary build requirements into the base system.

4.2.2 Install Phase

Depending of the chosen build root the worker starts the XEN/KVM virtual maschine or enters the build root. If this was successfull the install phase reinstalls all base package from above and additionally all packages you've defined in your package recipe. After this phase the environment is ready to process the recipe.

4.2.3 Package build

Regarding the package type the buildroot executes different build commands. On RPM based distributions it's called "rpmbuild". On debian-based it's "dpkg-buildpackage" and on archlinux you use "pacman". Now everything depends on the quality and the type of your build recipe. In most cases the source code will be compiled now and get packed into the specific package format. On RPM based distributions there are additional security and cleanness checks called rpmlint, which have the goal to improve the quality of the packages.

4.2.4 Post build steps

The generated packages are taken from the Worker get signed by the OBS Signer and are published to the Repository.

4.3 Different ways to build

...

4.4 Security aspects

...

Print this page