Update the plan with new info and project layout.

Add a tests dir with some testing files.
This commit is contained in:
jkeating@harpoon.lab.boston.redhat.com 2006-10-23 17:47:02 -04:00 committed by Jesse Keating
parent 7c6256d737
commit d3e8cff9ba
6 changed files with 120 additions and 29 deletions

33
PLAN
View File

@ -15,35 +15,16 @@ We'll need to do five basic tasks:
5) Sanity check the tree 5) Sanity check the tree
Gathering Packages Gathering Packages
Using yumdownloader / reposync like code in combination with a comps file See gather/PLAN
makes sense here. We can define what we want at the top level and let yum
depsolve the rest. The tricky bits here are figuring out multilib stuff and
the uglyness that is noarch packages with ExcludeArch/ExclusiveArch crack.
We could skip over this by assuming that repos will exist that are pre-
populated with multilib/noarch safe packages and we just pull whats there.
There is some code in the Extras push scripts. See also yum/comps.py for
dealing with comps.
Running Anaconda Tools Running Anaconda Tools
These should be ran on the release it is releasing. This means using mock See pungi/PLAN
in some way, either make mock a req of the tool and the tool calls mock
or allowing the tool to run in userspace but suggest the tool get ran in
a mock call. Some cooperation will need to happen with the anaconda folks
to make sure we're moving in the same direction they are wrt the tools we
would use.
Split Tree Into CD Size Chunks Split Tree Into CD Size Chunks
This will be a fun task. Really, I mean it. Anaconda folks have made some See pungi/PLAN
noise about making buildinstall take a flag to make CDs and do all the
splitting itself. That would be handy, but it may not happen by the time
we need to do this. Perhaps work on this part last, focus on the
installable tree stuff.
Create Isos of the Chunks Create Isos of the Chunks
This is a pretty straightforward call to mkisofs. There are some fun things See pungi/PLAN
to consider when making isos for ppc(64) and possibly other arches that may
come to play. Code here will need to be somewhat modular to allow for
different mkisofs calls per arch.
Sanity Check the Tree Sanity Check the Tree
This could/should be an ever growing set of post-tree build sanity checks. This could/should be an ever growing set of post-tree build sanity checks.
@ -54,6 +35,12 @@ Organization
independantly and hopefully once functional it should be easy to tie them 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) all together (one ring to bring them all, and in the darkness bind them)
gather/ is the module for repoclosing and downloading a set of packages.
pungi/ is the module for running anaconda tools against a set of packages
and creating isos
tests/ This directory holds some files that are useful for testing
functionality of the code.
Making it all happen Making it all happen
There really is space for two tools, or something inbetween. There is the 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 task of creating a repo of packages multilibbed up. Think rawhide. The

View File

@ -4,13 +4,26 @@ main interface.
ROADMAP ROADMAP
a) Create repodata for the package sets, using comps a) Run buildinstall
b) Run buildinstall Pretty straight forward. Needs to be ran on arch specific chroots so
c) Run pkgorder mock may be involved, if this entire process isn't. THere is some talk
d) Run splittree 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 CONSIDERATIONS
QUESTIONS How much of the tree layout do we hardcode, and how much do we allow to be
configurable?
do we make isos here or somewhere else?

7
tests/TESTING Normal file
View File

@ -0,0 +1,7 @@
This dir holds files useful for testing functionality.
comps.xml - A fairly minimal comps that includes enough to create an
installable tree and a bootable system.
yum.conf.[i386,x86_64] - Yum configs that point to arch specific location.
(needed as $basearch is resolved from the host OS)

30
tests/comps.xml Normal file
View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE newcomps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps>
<group>
<id>base</id>
<name>Base</name>
<description>This is the base group.</description>
<default>true</default>
<uservisible>true</uservisible>
<packagelist>
<packagereq type="optional">anaconda-runtime</packagereq>
<packagereq type="mandatory">authconfig</packagereq>
<packagereq type="optional">busybox</packagereq>
<packagereq type="optional">dejavu-lgc-fonts</packagereq>
<packagereq type="optional">gnome-python2-gtkhtml2</packagereq>
<packagereq type="default">grub</packagereq>
<packagereq type="optional">kernel</packagereq>
<packagereq type="optional">kernel-xen</packagereq>
<packagereq type="optional">libuser</packagereq>
<packagereq type="optional">policycoreutils</packagereq>
<packagereq type="optional">selinux-policy</packagereq>
<packagereq type="optional">selinux-policy-targeted</packagereq>
<packagereq type="optional">xen</packagereq>
<packagereq type="optional">xorg-x11-drivers</packagereq>
<packagereq type="default">xorg-x11-fonts-base</packagereq>
<packagereq type="default">xorg-x11-fonts-ISO8859-1-75dpi</packagereq>
<packagereq type="mandatory">yum</packagereq>
</packagelist>
</group>
</comps>

27
tests/yum.conf.i386 Normal file
View File

@ -0,0 +1,27 @@
[main]
cachedir=/tmp/fist
#keepcache=0
#debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
reposdir=./
#plugins=1
metadata_expire=1800
#exclude=\*.i?86
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
[development]
name=Fedora Core - Development
baseurl=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/development/i386/os/
http://download.fedora.redhat.com/pub/fedora/linux/core/development/i386/os/
#baseurl=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/development/$basearch/os/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch
enabled=1
gpgcheck=0

27
tests/yum.conf.x86_64 Normal file
View File

@ -0,0 +1,27 @@
[main]
cachedir=/tmp/fist
#keepcache=0
#debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
reposdir=./
#plugins=1
metadata_expire=1800
#exclude=\*.i?86
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
[development]
name=Fedora Core - Development
baseurl=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/development/x86_64/os/
http://download.fedora.redhat.com/pub/fedora/linux/core/development/x86_64/os/
#baseurl=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/development/$basearch/os/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch
enabled=1
gpgcheck=0