Update the plan with new info and project layout.
Add a tests dir with some testing files.
This commit is contained in:
parent
7c6256d737
commit
d3e8cff9ba
33
PLAN
33
PLAN
@ -15,35 +15,16 @@ We'll need to do five basic tasks:
|
||||
5) Sanity check the tree
|
||||
|
||||
Gathering Packages
|
||||
Using yumdownloader / reposync like code in combination with a comps file
|
||||
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.
|
||||
See gather/PLAN
|
||||
|
||||
Running Anaconda Tools
|
||||
These should be ran on the release it is releasing. This means using mock
|
||||
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.
|
||||
See pungi/PLAN
|
||||
|
||||
Split Tree Into CD Size Chunks
|
||||
This will be a fun task. Really, I mean it. Anaconda folks have made some
|
||||
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.
|
||||
See pungi/PLAN
|
||||
|
||||
Create Isos of the Chunks
|
||||
This is a pretty straightforward call to mkisofs. There are some fun things
|
||||
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.
|
||||
See pungi/PLAN
|
||||
|
||||
Sanity Check the Tree
|
||||
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
|
||||
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
|
||||
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
|
||||
|
25
pungi/PLAN
25
pungi/PLAN
@ -4,13 +4,26 @@ main interface.
|
||||
|
||||
ROADMAP
|
||||
|
||||
a) Create repodata for the package sets, using comps
|
||||
b) Run buildinstall
|
||||
c) Run pkgorder
|
||||
d) Run splittree
|
||||
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
|
||||
|
||||
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
7
tests/TESTING
Normal 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
30
tests/comps.xml
Normal 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
27
tests/yum.conf.i386
Normal 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
27
tests/yum.conf.x86_64
Normal 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
|
||||
|
Loading…
Reference in New Issue
Block a user