Clean up some docs, update spec.

This commit is contained in:
jkeating@dhcp83-49.boston.redhat.com 2006-12-09 21:59:34 -05:00 committed by Jesse Keating
parent baaf06b4b3
commit 4cb294b666
5 changed files with 11 additions and 123 deletions

View File

@ -1,21 +0,0 @@
This is the "gather" module. This module is used to gather packages and their
dependancies from repositories and lay them out in a logistical manner. A
list of package names should be passed in to find matches in configured repos
and depsolve. We'll steal lots of code from repotrack.
ROADMAP
a) Use yum.comps to parse our comps file to generate a list of packages to
depsolve and download. (this is for testing, this will eventually go into
a higher level module)
b) Wire up something to actually download the package list and write it out
somewhere.
CONSIDERATIONS
Probably should allow continuing if a package isn't found in a particular arch.
Probably should error if a package isn't found in any arch.
QUESTIONS
Do we createrepo here, once we've gathered our packages?

View File

@ -1,29 +0,0 @@
This is the "pungi" module. This module is used to run anaconda tools on
downloaded packages. Options for anaconda tools will come from the
main interface.
ROADMAP
a) Run buildinstall
Pretty straight forward. Needs to be ran on arch specific chroots so
mock may be involved, if this entire process isn't. THere is some talk
of making stage2 type stuff a package itself, so that we don't have to
create it at compose time. This will cut down the necessary packages
for building a tree and time it would take.
b) Run pkgorder
Again, pretty straight forward
c) Run splittree
Gets more tricky here, have to know disk sizes before hand. Should noop if
isos are not requested.
d) Create Isos
There are some arch specific calls here, but doesn't have to be ran ON the
different arches. Should be able to opt out of this task.
CONSIDERATIONS
How much of the tree layout do we hardcode, and how much do we allow to be
configurable?

70
README
View File

@ -6,72 +6,4 @@ 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
See http://hosted.fedoraproject.org/projects/pungi for more information.

1
ToDo
View File

@ -1,6 +1,5 @@
Drop release notes files in the tree
Make pungi use the Fedora layout, composedir/topdir/os/<arch>/Fedora, composedir/topdir/<arch>/iso/, composedir/topdir/<arch>/debug/
Get debuginfo packages?
Get srpm packages?
Put working items in composedir/work
Create a logging system, log to composedir/logs/

View File

@ -1,13 +1,13 @@
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
Name: pungi
Version: 0.1.0
Version: 0.1.1
Release: 1%{?dist}
Summary: Distribution compose tool
Group: Development/Tools
License: GPL
URL: http://linux.duke.edu/projects/%{name}
URL: http://hosted.fedoraproject.org/projects/pungi
Source0: http://linux.duke.edu/projects/%{name}/release/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: anaconda-runtime
@ -37,7 +37,7 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%doc Authors Changelog COPYING GPL PLAN.gather PLAN.pungi README ToDo
%doc Authors Changelog COPYING GPL README ToDo
%config(noreplace) %{_sysconfdir}/pungi
# For noarch packages: sitelib
%{python_sitelib}/pypungi
@ -45,5 +45,12 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Sat Dec 9 2006 Jesse Keating <jkeating@redhat.com> - 0.1.1-1
- Update to 0.1.1
- Add ability to get srpms
- Use a config file system
- Clean up some docs
- Add config files for composing FC6 respins
* Wed Nov 8 2006 Jesse Keating <jkeating@redhat.com> - 0.1.0-1
- Initial spec