Infrastructure/KojiBuildSystem

= Koji Build System =

The Koji Build System is Fedora's buildsystem for Fedora 7 and beyond. Packagers use the koji client to request package builds and get information about the buildsystem. Fedora Release Engineering uses koji to tag builds and coordinate updates/releases.

Packages
Fedora package maintainers will want to have the  package installed on their systems, otherwise, they will be unable to request builds. The koji package is included in the Fedora repositories.

Web Interface
In addition to the commandline tool, there is a web-interface available at.

Fedora Certificates
Koji uses three certificates:
 * .fedora.cert (specific to the Fedora Maintainer) This cert is generated from this form.
 * .fedora-upload-ca.cert (The certificate for the Certificate Authority used to sign the user keys.) It can be downloaded from here.
 * .fedora-server-ca.cert (The certificate for the Certificate Authority used to sign the buildsystem's server keys.) It can be downloaded from here.

All of these certificates should be in your homedir (~).

Koji config
The local client configuration file for koji is. You should not need to change this from the defaults for building Fedora packages.

Example Commands
Some examples of common use of the koji client: koji list-tasks koji list-tasks --mine koji build devel 'cvs://cvs.fedoraproject.org/cvs/pkgs?common#yum-utils-0_2-1_fc7' koji resubmit 3
 * Listing jobs:
 * Listing only your jobs:
 * enqueing a job: general syntax is: koji build [options] target URL:
 * requeuing an already-processed job: general syntax is: koji resubmit [options] taskID

Makefile aliases
For simple build requests, there is an alias in Makefile.common to request koji builds. This enables Fedora packagers to simply cd into the appropriate branch of a package (from a cvs checkout), and run:

make build

This will trigger a build request for the branch. Easy!

Note that all build requests need to be done against tagged trees (run  first).