-
Notifications
You must be signed in to change notification settings - Fork 8
How to Cook A GoOSe
Clint Savage edited this page Jan 30, 2014
·
7 revisions
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.
Currently provided by spacewalk-remote-utils from http://spacewalk.redhat.com/yum/. (The future seems to be http://git.centos.org)
- 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