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
|
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
|
||||||
|
25
pungi/PLAN
25
pungi/PLAN
@ -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
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