From Fedora Project Wiki

Plague is a old and unmaintained package build system and has been replaced by Koji which uses mock internally. If you are a developer trying to build packages, use mock. If you need a full fledged build system with scheduling and other extra features, use Koji



  • December 15, 2006: Current head branch is 0.5.0 and has some stability issues.
  • March 03, 2006: Version 0.4.4 tagged & released
  • August 23, 2005: Version 0.3.4 tagged & released
  • August 11, 2005: Version 0.3.1 tagged & released


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.

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. SSL is used for security, to ensure that packages are not modified or otherwise changed during transport, and also for identity verification to ensure that package maintainers and builders are who they say they are. SSL support is highly encouraged, but not required.

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.

Plague code is stored in Fedora CVS here .

To check out the current CVS code :

  • export
  • cvs login (press enter)
  • cvs checkout extras-buildsys

An example of the web client, as used by Fedora Extras, is here .

Much of the code can be found here


At the moment, the documentation is pretty scarce. Furthermore, the included README file for plague is not upgraded to the current code base.

Commented example configurations can be found here:

Todo items

  • Investigate autodetection of build server connection method, SSL or non-SSL
  • More complete authorization framework

1. SSL + certificates 2. SSL, user/password authentication 3. plain HTTP, user/pass authentication 4. plain HTTP, no authentication

  • Build Client affinity (tie jobs to a particular build client, or at least allow jobs to be moved between clients)
  • zap old database entries
  • builder self-cleanup
  • server cleanup (expiring data for old, failed builds)

Wish List items



  • integrate sqlite support into extras-push so pushed packages can be marked as such in the buildsys jobdb


If you encounter a bug running plague, please file it in Bugzilla , product "Fedora Hosted Projects", component plague.