How to Cook A GoOSe
Clone this wiki locally
The following is an explanation of what it takes to rebuild enterprise Linux. In the case of the GoOSe Project, our goal is to rebuild an enterprise release from a popular upstream vendor.
- Get the upstream target package (binary RPMs) list.
- Get SRPMs needed to generate target package list
- mkdir pkg && cd pkg
- git init && touch .gitignore sources && git add .gitignore sources
- git commit -m "Initial setup of the pre-review repo"
- git checkout -b upstreamver (where upstreamver is something like el6.0)
- goosepkg import pkg-0.1-1.el6.src.rpm
- git commit -m "initial import of pkg-0.1-1.el6.src.rpm"
- git checkout -b gl6.0 (or whatever matches the koji tag)
- goosepkg upload <sourcefiles>
- git add . && git commit -m "some crazy message" && git push
- goosepkg build --nowait, which does
- create mock chroot
- git checkout from github repo
- make sources
- this fetches the tarball from lookaside cache and compares sha256sum
- rpmbuild of SRPM
- new mock chroot
- rpmbuild of RPMs
- tag the new build in koji system
Here we end up with a bunch of packages.
- targets in koji (packages and stuff needed for build steps)
- tags in koji (packages from output of koji builds)
- Sign packages using `sigul`
- Organize Stuff
- Convert packages in koji into yum repos based on tags. Results in 'everything' repo eg /goose/ repo. We use mash.
- /Updates/ repo will be done the same way.
- Compose ISO images using `pungi`
Here we end up with iso images and install trees.
- QA stuff
- lots of handwavy autotest/autoQA
- automate kickstart installs via rat_install? http://kparal.wordpress.com/2012/03/16/autoqa-0-8-released/
- Release management
- Mirror management mirrormanager
- mailing list announcements
- twitter/fb/website announce
- lifecycle management