2006-10-23 19:50:44 +00:00
|
|
|
Pungi
|
|
|
|
An anaconda based installation spin tool
|
2006-10-09 19:06:00 +00:00
|
|
|
|
|
|
|
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
|
2006-10-24 01:37:13 +00:00
|
|
|
See PLAN.gather
|
2006-10-09 19:06:00 +00:00
|
|
|
|
|
|
|
Running Anaconda Tools
|
2006-10-24 01:37:13 +00:00
|
|
|
See PLAN.pungi
|
2006-10-09 19:06:00 +00:00
|
|
|
|
|
|
|
Split Tree Into CD Size Chunks
|
2006-10-24 01:37:13 +00:00
|
|
|
See PLAN.pungi
|
2006-10-09 19:06:00 +00:00
|
|
|
|
|
|
|
Create Isos of the Chunks
|
2006-10-24 01:37:13 +00:00
|
|
|
See PLAN.pungi
|
2006-10-09 19:06:00 +00:00
|
|
|
|
|
|
|
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.
|
2006-10-10 04:00:02 +00:00
|
|
|
|
|
|
|
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)
|
|
|
|
|
2006-11-08 21:44:18 +00:00
|
|
|
pypungi/ is the python package that holds our modules
|
2006-10-24 01:37:13 +00:00
|
|
|
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
|
2006-11-08 21:44:18 +00:00
|
|
|
config/ This directory holds config files that are useful for testing
|
|
|
|
functionality of the code.
|
|
|
|
pungi is the python script that makes use of the above
|
2006-10-23 21:47:02 +00:00
|
|
|
|
2006-10-10 04:00:02 +00:00
|
|
|
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.
|
2006-10-24 02:02:43 +00:00
|
|
|
|
|
|
|
Contributing
|
|
|
|
Currently development discussion happens at fedora-buildsys-list@redhat.com.
|
2006-11-22 20:55:25 +00:00
|
|
|
There is a TRAC page at http://hosted.fedoraproject.org/projects/pungi
|
2006-10-24 02:02:43 +00:00
|
|
|
The source is held via mercurial:
|
2006-11-28 03:37:58 +00:00
|
|
|
anon - http://hg.fedoraproject.org/hg/hosted/pungi
|
|
|
|
auth - ssh://hg.fedoraproject.org//hg/hosted/pungi
|
2006-10-24 02:02:43 +00:00
|
|
|
|
2006-11-08 21:44:18 +00:00
|
|
|
Testing
|
|
|
|
First you must have anaconda-runtime plus its deps installed.
|
|
|
|
|
2006-10-24 02:02:43 +00:00
|
|
|
To run pungi, currently you need root level access. This is because it has
|
|
|
|
to create loopback devices for disk images.
|
2006-11-08 21:44:18 +00:00
|
|
|
|
2006-11-22 20:55:25 +00:00
|
|
|
python setup.py build
|
2006-11-08 21:44:18 +00:00
|
|
|
sudo python setup.py install
|
2006-10-24 02:02:43 +00:00
|
|
|
|
2006-11-22 20:55:25 +00:00
|
|
|
sudo pungi -c /etc/pungi/pungi.conf
|
2006-10-24 02:02:43 +00:00
|
|
|
|
2006-11-08 23:32:51 +00:00
|
|
|
Or to test it from just the hg clone:
|
|
|
|
|
2006-11-22 20:55:25 +00:00
|
|
|
edit config/pungi.conf to point to checked out files
|
2006-11-08 23:32:51 +00:00
|
|
|
|
2006-11-22 20:55:25 +00:00
|
|
|
sudo ./pungi -c config/pungi.conf
|
|
|
|
|
|
|
|
Of course, edit /etc/pungi/* for your own values
|