From d3e8cff9ba13d2ad634c41f2d6684742a50bcd24 Mon Sep 17 00:00:00 2001 From: "jkeating@harpoon.lab.boston.redhat.com" <> Date: Mon, 23 Oct 2006 17:47:02 -0400 Subject: [PATCH] Update the plan with new info and project layout. Add a tests dir with some testing files. --- PLAN | 33 ++++++++++----------------------- pungi/PLAN | 25 +++++++++++++++++++------ tests/TESTING | 7 +++++++ tests/comps.xml | 30 ++++++++++++++++++++++++++++++ tests/yum.conf.i386 | 27 +++++++++++++++++++++++++++ tests/yum.conf.x86_64 | 27 +++++++++++++++++++++++++++ 6 files changed, 120 insertions(+), 29 deletions(-) create mode 100644 tests/TESTING create mode 100644 tests/comps.xml create mode 100644 tests/yum.conf.i386 create mode 100644 tests/yum.conf.x86_64 diff --git a/PLAN b/PLAN index 33e16205..4ab2e646 100644 --- a/PLAN +++ b/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 diff --git a/pungi/PLAN b/pungi/PLAN index a39034e3..99d68094 100644 --- a/pungi/PLAN +++ b/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? diff --git a/tests/TESTING b/tests/TESTING new file mode 100644 index 00000000..84e640de --- /dev/null +++ b/tests/TESTING @@ -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) diff --git a/tests/comps.xml b/tests/comps.xml new file mode 100644 index 00000000..fe845aed --- /dev/null +++ b/tests/comps.xml @@ -0,0 +1,30 @@ + + + + + base + Base + This is the base group. + true + true + + anaconda-runtime + authconfig + busybox + dejavu-lgc-fonts + gnome-python2-gtkhtml2 + grub + kernel + kernel-xen + libuser + policycoreutils + selinux-policy + selinux-policy-targeted + xen + xorg-x11-drivers + xorg-x11-fonts-base + xorg-x11-fonts-ISO8859-1-75dpi + yum + + + diff --git a/tests/yum.conf.i386 b/tests/yum.conf.i386 new file mode 100644 index 00000000..6da110aa --- /dev/null +++ b/tests/yum.conf.i386 @@ -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 + diff --git a/tests/yum.conf.x86_64 b/tests/yum.conf.x86_64 new file mode 100644 index 00000000..41a39ed4 --- /dev/null +++ b/tests/yum.conf.x86_64 @@ -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 +