The utility for building of AlmaLinux distributions (repos, ISO images).
Go to file
jkeating@localhost.localdomain d01a88e877 Change the hg host
2006-11-27 22:37:58 -05:00
config First pass at using a config file for options rather than CLI 2006-11-17 18:01:10 -05:00
pypungi Make sure we only get the newest package objects. 2006-11-27 22:17:29 -05:00
.hgignore Add the build dir 2006-11-20 07:20:41 -05:00
.hgtags pungi-0.1.0-1 2006-11-08 20:33:11 -05:00
Authors Stop hiding behind personal address now (: 2006-10-12 00:39:10 -04:00
Changelog Add what I did to the Changelog 2006-11-22 15:56:04 -05:00
COPYING License project code under the GPLv2 2006-10-24 09:44:11 -04:00
GPL License project code under the GPLv2 2006-10-24 09:44:11 -04:00
Makefile Add a spec file and a make file to deal with it 2006-11-08 17:52:04 -05:00
MANIFEST.in Add a spec file and a make file to deal with it 2006-11-08 17:52:04 -05:00
PLAN.gather Rearrange things so that they'll actually work together 2006-10-23 21:37:13 -04:00
PLAN.pungi Rearrange things so that they'll actually work together 2006-10-23 21:37:13 -04:00
pungi Add some default config options 2006-11-20 09:52:27 -05:00
pungi.spec more cleanups 2006-11-08 20:33:06 -05:00
README Change the hg host 2006-11-27 22:37:58 -05:00
setup.py Shuffle things around so that dist-utils can be used. 2006-11-08 16:34:59 -05:00
ToDo Add some more tasks 2006-11-09 13:40:53 -05:00

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)

  pypungi/  is the python package that holds our modules
  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
  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

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.
  There is a TRAC page at http://hosted.fedoraproject.org/projects/pungi
  The source is held via mercurial:
  anon - http://hg.fedoraproject.org/hg/hosted/pungi
  auth - ssh://hg.fedoraproject.org//hg/hosted/pungi

Testing
  First you must have anaconda-runtime plus its deps installed.

  To run pungi, currently you need root level access.  This is because it has
  to create loopback devices for disk images.

    python setup.py build
    sudo python setup.py install
  
    sudo pungi -c /etc/pungi/pungi.conf

  Or to test it from just the hg clone:

    edit config/pungi.conf to point to checked out files

    sudo ./pungi -c config/pungi.conf

  Of course, edit /etc/pungi/* for your own values