Winter 2010 Posters/Koji Builder
Contents
Title
Koji Builder by: David Cabral (dpcabra1@learn.senecac.on.ca)
Introduction
The goal was to create machines/builders that work with the koji-hub to build packages on the ARM (armv5tel) architecture. Fedora Project doesn't have the resources to maintain the ARM architecture for all its packages and with the increase of actual ARM systems being used, the need of builders have too increased. Kojid is the build daemon that runs on the build machines. It's primary responsibility is polling for incoming build requests and handling them accordingly. Kojid is written in Python and communicates with koji-hub via XML-RPC.
Description
Setting up the builders according to the koji-hub configuration. The builder relys heavily on the koji-hub to be configured before kojid could functional. Kojid and koji-hub need to communicate with each other, so we use SSL Certifications to authenticate the requests. Each builder needs it's own certificate and needs to be put in the PostgreSQL database. Kojid uses Mock to create a chroot of a minimal installation to test the packages and make sure they install correctly and if the SRPM work it creates all the RPMs. We used one actual ARM machine and nine virtual machines to familiarize the steps involved in getting builders to work with a Koji Hub. The final goal is to make a Koji farm dedicated to building ARM packages for Fedora since the architecture is getting more and more popular everyday. Since there is only one other ARM Koji Farm which doesn't seem to be too current, we hope to create a current and ever going package building environment. Creating this farm will help with the Fedora Project Community development and Seneca to create interest in software building and release.
Challenges
- Builder had to be added to the PostgreSQL database before starting Kojid on the builders.
- After installing and configuring the builders they didn't seem to authenticate do to some complications with the certifications. Once new certifications where re-made the issues ceased.
- Koji-hub was seeing the builder and getting updates however the builder wasn't set to ready. With some digging threw the logs, it was because we didn't have enough space on the systems to do actual builds. The virtual machines were
- Various configuration issues - throughout the process the different configuration files that required editing were mis-configured, or needed to be edited multiple times to work correctly with the Koji configuration.
- The creation of repositories by Kojira was failing after 2919/12788 software packages (RPMS), additional memory was added to the Virtual ARM Machines an the repository creation continued.
- Lack of documentation - because this is the second Koji Build System for the ARM architecture, there are limited resources. Within weeks of starting work and blogging on Koji, our blogs became the top results when searching the internet.
- Understanding the relationship of package creation and Koji's method of organizing software packages in the database. This is still a learning process as Koji has just become fully functional.
- Include the following information on your poster:
- Your project's title - top middle section
- Your name - below the project title
- A description of your work including goals you had - left main section
- A section on results, showing what you accomplished - middle section
- A summary and set of conclusions - bottom of middle section
- Acknowledgements and links - right main section
- Leave the upper-right and upper-left corners free for logos
Deadline
- Your poster must be submitted to your professor by 2010-04-16 in order to leave sufficient time for printing. It would be a good idea to submit it early and get feedback from your prof in case revisions are necessary.
Presentation Day
Please plan to join us for the entire afternoon on April 23 in T1014 in case there are questions about your poster. The event starts at 1:30; please plan to be there by 1:00 pm. If you have other exams, discuss the exam schedule with your professor in advance. Dress appropriately for speaking to the audience, which will include industry partners, funding agencies, and Seneca administration.