SLCB (currently developed build system for SLC based on plague)
Advantages:
- works on slc4 (python 2.3, sqlite)
- can build in separate chroots and manage them
- can reuse chroots
- can build kernel modules
- it is possible to call it in script way
- can build automatically
Disadvantages:
- untested
- lot of threads/forks (sometimes server is unstable)
- need good documentation
- FC will use koji instead of plague
koji (+bodhi) Fedora build system (for FC 7, and higher)
BodhiInstallationGuide
Still to do:
- adapt buildroot creation with buildsys-build package
- check how to ask koji to build in given chroot (not to create new every time new package is submitted)
- investigate what should be done to setup koji with kerberos
Advantages:
- more stable than plague/current build system
- nice web interface
- will be used in FC7 and maybe next ones
- good data scheme
- cover main functionality expected from build system
Disadvantages:
- do not have option passing to builder
- creates new chroot every time (?)
- do not have automatical build feature
- need some effort to intall/configure here (poor documentation as usual)
- still under development
- need to use postgresql
- poor documentation (but quite readable code)
Bodhi - update publishing
Advantages:
- deals with update workflow
- uses sqlite
- it seems that it is not so hard to replace builder with sth different than koji
Disadvantages:
- hard to install in SLC4 (code written for python 2.4, it also need TurboGears, which also need python 2.4 and so on...)
- hard to talk to bodhi via script (support only showing updates)
- web interfaces for koji and bodhi are separated
- poor documentation
- current code is under development (need to find working version)
Other:
- it is possible to install it on FC6 (with requirements: TurboGears, python 2.4 and so on...)
Plague - distributed package build system for Fedora (mainly for FC Extras up to FC 6)
Overwiev
Plague is a distributed package build system, suitable for building a whole Linux distribution (like Fedora Core), or for building additional packages (like Fedora Extras). It currently uses other programs like
yum
,
mock
, and
createrepo
to power much of the buildroot setup, rebuild, and repository management process. This system is written mainly in python.
The Plague build server communicates with builders on remote machines (or localhost) using
XMLRPC, optionally with SSL support for security. Packagers submit build requests for either the source package itself, or a CVS tag, also using XMLRPC with optional SSL support. For each job separate chroot directory is created.
For packagers, both a command-line interface and a web client are included. The web client is mainly for viewing build system status and individual build job status, not for enqueueing packages or for builder management.
User management
- There are two types of authentication: builder-server and client-server
- Authentication via SSL certificates : private key, public key and CA certificate
- Instead of usernames it uses email adresses as unique identification key
- There is python script which helps in certificate generation :
plague-certhelper.py
- On server side there is user DB (sqlite for example)
- User rights : own_jobs , job_admin , user_admin , server admin
- There is python script which helps in management of user DB :
plague-user-manager.py
Documentation
Poor, but can be worse...
pld-builder
Overview
Build system designed to work for
PLD Linux distribution. Architecture : client -> source builder -> binary builder.
User management
- Instead of usernames it uses pair (username,email adresses) as unique identification key
- All jobs are send via email and signed by pgp key
Documentation
Poor
pydar
Overview
Build system for dries repository. Similar to plague, but much more simpler. It also based on XMLRPC. Uses SVN repository for SPEC files.
Documentation
Poor
ETICS
Overwiev
ETICS is distributed system for building and testing software. Main features : rich web client (reporting), distributed job run (on GRID).
Cannot be simply installed locally, it is hard to introduce inside some user interaction.
Documentation
Quite good:
http://etics.web.cern.ch,
https://twiki.cern.ch/twiki/bin/view/ETICS/WebHome
--
LeszekGrzanka - 29 Jun 2007