Pungi An anaconda based installation spin tool This project is aimed at making a public / free tool to spin installation trees/isos of Fedora. It will be written in python (for many obvious reasons). Code style I hope will be of a simple "master" process that can call any number of subprocesses depending on a configuration set. Thoughtspace: We'll need to do five basic tasks: 1) Gather packages from repos into a directory tree 2) Run anaconda tools (buildinstall) on said directory tree 3) Split tree into CD iso size chunks 4) Create isos of the chunks 5) Sanity check the tree Gathering Packages See PLAN.gather Running Anaconda Tools See PLAN.pungi Split Tree Into CD Size Chunks See PLAN.pungi Create Isos of the Chunks See PLAN.pungi Sanity Check the Tree This could/should be an ever growing set of post-tree build sanity checks. Hopefully it'll cut down on brown paperbag trees sneaking out. Organization Each task set will be its own module. Work on each module can be done independantly and hopefully once functional it should be easy to tie them all together (one ring to bring them all, and in the darkness bind them) gather.py is the module for repoclosing and downloading a set of packages. pungi.py is the module for running anaconda tools against a set of packages and creating isos tests/ This directory holds some files that are useful for testing functionality of the code. Making it all happen There really is space for two tools, or something inbetween. There is the task of creating a repo of packages multilibbed up. Think rawhide. The second tool takes packages from said repos and makes the install and CD set. Working on the second tool first makes sense, as it can be used today with existing Core and Extras repos. Later, tool #1 can grow from #2. Contributing Currently development discussion happens at fedora-buildsys-list@redhat.com. The source is held via mercurial: anon - http://linux.duke.edu/projects/pungi auth - ssh://login.linux.duke.edu//home/groups/pungi/hg/pungi To run pungi, currently you need root level access. This is because it has to create loopback devices for disk images. sudo ./__init__.py --comps tests/comps.xml \ --yumconf tests/yum.conf.x86_64 --destdir /srv/pungi \ --cachedir /srv/pungi/cache --arch x86_64 Of course, fill in some of your own values.