Clean up some docs, update spec.
This commit is contained in:
parent
baaf06b4b3
commit
4cb294b666
21
PLAN.gather
21
PLAN.gather
@ -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?
|
29
PLAN.pungi
29
PLAN.pungi
@ -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
70
README
@ -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
1
ToDo
@ -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/
|
||||
|
13
pungi.spec
13
pungi.spec
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user