lca2011 – Thus session 6 – Building RPMS

Building RPMS – How Fedora’s Koji Works, and how you can use it to build your own software – Dennis Gilmore

  • Koji – task scheduler, results tracker, used by fedora and redhat as a build system
  • Not – no software release life cycle, not deployment, repo mngt, continuous integration
  • Goals – build repoducability
  • Components – mock, yum, rpmbuild, createrepo
  • mock – creates a chroot for each build, executes commands, out->results location, ensures output is controlled and repeatable, builds on yum
  • yum – reads software metadata, installs rpm packages
  • rpmbuild – converts bare components into binary package , spec file + tarball + patch files – scrpm and binary rpm
  • various koji components
  • kojihub – xml-rpc – passive application – controls wring to fs – talks to DB
  • kojira – manages repo
  • kojid – runs mock to build rpms, createrepo to general repos, polls hub for new tasks
  • koji-web view status of things, can sign up for notifications, cancel and resubmit tasks
  • koji cli – users, tasks, permissions
  • Other tools can use koji
  • Other tasks  – live CDs – Appliance creation – Maven builds – windows builds(!)
  • koji org – tags ( pack name and option additional arch) – targets ( build tag and destination ) – unique nvra ( name version release arch) for all rpms
  • Live demo
  • mash tool to get things out
  • extend via koji-api
Share