Project Name
Koji Hub Installation and Configuration
Name
Paul Whalen
The Koji Build System
At the beginning of the Winter 2010 semester the Software Build and Release 600 class set out to create a Koji build system for the ARM architecture. Koji is the software that builds and tests packages for the Fedora Project. Currently we are aware of one other Koji Build system for the ARM architecture which is located in Germany.
The plan was to initially set up all components of the Koji build system on one server, with the Koji builder Daemons running on Virtual ARM Machines and physical hardware as it arrives. After installation and configuration of the PostgreSQL, the Koji Hub would be configured, followed by the other components of Koji including the Koji Web, Kojira and finally the set up of the actual builders themselves.
Koji Components
Koji Hub - an XML-RPC server that receives and relies upon calls from the Koji Builder Daemons and other Koji components to initiate communications.
Koji Web - an interactive web interface that runs on mod_python modules in the Apache Web Server. The Koji Web provides an interface for Koji users to see the status of queued builds and information for trouble shooting unsuccessful build attempts.
Koji Builder Daemon - the build daemon that runs on each of the Koji build machines and is responsible for polling the Koji Hub for build requests. Once a request is received for the Koji Hub the Koji Builder will initiate a test build of the software package ensuring there are no errors, if errors are detected they are logged for further analysis.
Components Required By Koji
Apache Web Server - The most popular web server on the internet Apache is responsible for serving the pages provided by the Koji Web scripts. Apache is configured to use a variety of modules including SSL and mod_python. The SSL modules facilitates authentication of users and the different components of the Koji Build System.
PostgreSQL - PostgreSQL is the back-end database used by the Koji Build System. It stores tables of information including users, packages and build categories.
Problems Encountered
- Problems using the PostgreSQL database
- After what appeared to be a successful installation and configuration, Koji builders were listed as not being fully functional, this appeared to be an issue with the Koji Hub but was later determined to be a lack of disk space on the Koji builders.
- Authentication using SSL certificates
- Various configuration issues
Results
At the close of the semester we currently have a functional Koji Build system. The Koji Hub is successfully dispatching packages to the Koji builder Daemons and Kojira is creating new repositories for use with the ARM architecture. Eight VM's and the Open-RD Client are online and are listed as Ready and Enable using the Koji command line tool and the web interface through Koji Web.
Acknowledgements
- Dennis Gilmore
- Chris Tyler
Links
- Fedora Project - http://fedoraproject.org/wiki/Koji/ServerHowTo
- Paul Whalen's SBR600 Blog - http://paulfedora.wordpress.com/
- Software Build and Release 600 wiki - http://zenit.senecac.on.ca/wiki/index.php/SBR600
- Fedora Arm Secondary Architecture wiki - http://zenit.senecac.on.ca/wiki/index.php/Fedora_ARM_Secondary_Architecture
Logos
- Fedora
- Seneca
- Apache
- PostgreSQL