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
|
reasons). Code style I hope will be of a simple "master" process that can
|
||||||
call any number of subprocesses depending on a configuration set.
|
call any number of subprocesses depending on a configuration set.
|
||||||
|
|
||||||
Thoughtspace:
|
See http://hosted.fedoraproject.org/projects/pungi for more information.
|
||||||
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
|
|
||||||
|
1
ToDo
1
ToDo
@ -1,6 +1,5 @@
|
|||||||
Drop release notes files in the tree
|
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/
|
Make pungi use the Fedora layout, composedir/topdir/os/<arch>/Fedora, composedir/topdir/<arch>/iso/, composedir/topdir/<arch>/debug/
|
||||||
Get debuginfo packages?
|
Get debuginfo packages?
|
||||||
Get srpm packages?
|
|
||||||
Put working items in composedir/work
|
Put working items in composedir/work
|
||||||
Create a logging system, log to composedir/logs/
|
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()")}
|
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
|
||||||
|
|
||||||
Name: pungi
|
Name: pungi
|
||||||
Version: 0.1.0
|
Version: 0.1.1
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Distribution compose tool
|
Summary: Distribution compose tool
|
||||||
|
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
License: GPL
|
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
|
Source0: http://linux.duke.edu/projects/%{name}/release/%{name}-%{version}.tar.gz
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
Requires: anaconda-runtime
|
Requires: anaconda-runtime
|
||||||
@ -37,7 +37,7 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root,-)
|
%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
|
%config(noreplace) %{_sysconfdir}/pungi
|
||||||
# For noarch packages: sitelib
|
# For noarch packages: sitelib
|
||||||
%{python_sitelib}/pypungi
|
%{python_sitelib}/pypungi
|
||||||
@ -45,5 +45,12 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%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
|
* Wed Nov 8 2006 Jesse Keating <jkeating@redhat.com> - 0.1.0-1
|
||||||
- Initial spec
|
- Initial spec
|
||||||
|
Loading…
Reference in New Issue
Block a user