Fedora Distribution Toolbox Jesse Keating Linux Fest Northwest 2008
RPMS Basis for everything Three major parts: Payload Control script for installation Metadata
Yum Useful Python API for dealing with rpms Deals with rpm metadata in remote locations API bases for just about everything Written by Seth Vidal and others in community Python, some C
Koji Schedule builds of rpms for various arches. Each build done in clean chroot Every rpm used is known and tracked Builds -> Tags; Tags -> Targets Inheritance API
Koji (cont) Works from source control or srpms Scratch builds Kerberos, SSL, username/pass auth Written by RH for internal, opensourced for Fedora Python, cheetah, javascript, xmlrpc
Pungi Creates install trees from rpms Kickstart Depresolving (not depsolving) API Gathers SRPMS Anaconda-runtime Written by scratch Python
Livecd-creator Creates Live images from rpms Chroot ext3 Squashfs .iso files USB with persistence Originally OLPC, re-purposed and rewritten Python
Bodhi Bugzilla Mailing List Karma Update Grouping TurgoGears (Python)
MirrorManager Tracks mirrors of content Provides up to date lists or redirection to clients Geoip Netblock specific mirrors Rsync ACL management TurboGears
Transifex Web interface for submitting translations No need to know SCMs Status Tracking Hooks into any supported upstream SCM TurboGears Google Summer of Code
PackageDB Web management of package ownership / rights management Bugzilla Koji CVS TurboGears
Fedora Services Project Hosting Software / Documentation Translation Artwork Logos Hackergotchi Web Graphics / Interaction Design Marketing Collateral Documentation Illustration Language Programming Support
Fedora Services (cont) Self-service pipeline from upstream to end users Reliable/Dependable release cycles Stable development platform Buildsystem and package management system Very large community of users /testers Vibrant feedback loop Strong commitment to upstream Open governance model
Questions?