The core of the build system is the packaging scripts. These live in release/packaging.
Table of contents |
Configuration files
There are a few sets of config files for this setup:
release/packaging/defs
These define specific products. This is the current set of rpms we build, so you might have a stable and an unstable version, etc.
Example:
BUILD_HOSTS=( redhat-9-i386 sles-9-x86_64 ) USE_HOSTS=( fedora-3-i386 nld-9-i586 nld-9-x86_64 redhat-9-i386 rhel-3-i386 rhel-4-i386 sles-9-i586 sles-9-x86_64 suse-92-i586 suse-93-i586 suse-93-x86_64 ) get_destroot () { DEST_ROOT=$ARCH } HEAD_PATH="trunk" RELEASE_PATH="tags/mono-[[version]]" get_tarball () { msvn_tar $1 }
A breakdown of the file:
- BUILD_HOSTS
- machines on which the package gets built and rpms get created
- USE_HOSTS
- all distros that will use the package -- might be different than BUILD_HOSTS if packages are shared
- get_destroot
- the prefix where the packages go. This is how we find out how to share packages. For all distros in USE_HOSTS exactly one distro in BUILD_HOSTS must have the same get_destroot
- HEAD_PATH, RELEASE_PATH
- custom variables for our tarball creation method
- get_tarball
- the method we use to get tarballs
release/packaging/conf
These are little configurations for each of our jails
release/conf
These contain build-buddy .conf files.
Scripts
Various scripts exist to run builds:
mktarball
makes a tarball. Run like mktarball <target jail> <package> <version|snap> [svn rev]
- Ex: mktarball suse-93-i586 gtk-sharp 1.1.7
- Ex: mktarball suse-93-i586 xsp snap 44717
build
Builds something run like build <target jail> <package> <version> [<rev>]
- Ex: build suse-92-i386 mono-1.1 1.1.7
Steps to Build Everything
TODO