From Fedora Project Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


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 koji 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 (koji), there is a web-interface available at [1] .

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 /etc/koji.conf. 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:

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

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 make tag first).