Building an RPM - Koji Build System

This document describes how to contribute and patch RPMs using the ClearOS build system. If RPM packaging is new to you, then a review of the following document should be your first stop: Building an RPM - The Basics. If you need to get familiarized with the ClearOS development and source code environment, take a look at Building an RPM - ClearOS Development Environment.

We will go into more detail below, but here are the general steps to updating a package:

  • Prepare your environment
  • Get the source code
  • Create patches and source changes
  • Update the spec file
  • Test build the new version
  • Commit your changes
  • Submit the build
Many open source licenses require that you publish your changes. Please make sure you are in compliance with the software license! And please don't be shy about sharing your changes and enhancements with the community. We don't bite… usually.

Prepare Your Environment

The ClearOS build system uses the Koji build software. You can find status information on builds via a web-based interface or through the koji command line. Before we can get started with Koji, you will need to request a developer account from You will receive instructions on how to copy the necessary configuration files for into your ~/.koji directory. The required files:

  • koji_ca_cert.crt
  • usercert.pem
  • username.pem
  • username.p12
  • config

Please make sure the file permissions on the .pem and .p12 files are strict:

chmod 0400 *.pem *.p12 

Now check to see if you can connect to the remote build system:

$ koji list-targets
Name                      Buildroot                      Destination                   
clear6                    clear6-build                   clear6-updates-candidate      
clear6-infra              clear6-build                   clear6-infra-candidate        
clear6-override           clear6-build                   clear6-override               
clear6-paid               clear6-build                   clear6-paid-candidate         
clear7                    clear7-build                   clear7-updates-candidate      
clear7-infra              clear7-build                   clear7-infra-candidate        
clear7-override           clear7-build                   clear7-override               
clear7-paid               clear7-build                   clear7-paid-candidate         
contribs6                 contribs6-build                contribs6-candidate           
contribs6-override        contribs6-build                contribs6-override            
contribs6-paid            contribs6-build                contribs6-paid-candidate      
contribs7                 contribs7-build                contribs7-candidate           
contribs7-override        contribs7-build                contribs7-override            
contribs7-paid            contribs7-build                contribs7-paid-candidate     
content/en_us/dev_packaging_contributing_and_patching_rpms.txt · Last modified: 2015/08/21 16:15 (external edit)