Add netboot2 target
authorEric Edgar <rocket@gentoo.org>
Fri, 13 Jan 2006 15:09:07 +0000 (15:09 +0000)
committerEric Edgar <rocket@gentoo.org>
Fri, 13 Jan 2006 15:09:07 +0000 (15:09 +0000)
git-svn-id: svn+ssh://svn.gentoo.org/var/svnroot/catalyst/trunk@1020 d1e1f19c-881f-0410-ab34-b69fee027534

ChangeLog
examples/netboot2_template.spec [new file with mode: 0644]
modules/catalyst_support.py
modules/netboot2_target.py [new file with mode: 0644]
targets/netboot2/netboot2-controller.sh [new file with mode: 0644]
targets/netboot2/netboot2-copyfile.sh [new file with mode: 0644]
targets/netboot2/netboot2-pkg.sh [new file with mode: 0644]
targets/support/netboot2-final.sh [new file with mode: 0755]
targets/support/pre-kmerge.sh

index 19400c61fd2fb551ebcbf32d99ce5517c15ff8df..ee67e368d198ce9f0fdcd0acf44834a2d182995c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo/src/catalyst/ChangeLog,v 1.505 2006/01/13 15:00:04 rocket Exp $
+# $Header: /var/cvsroot/gentoo/src/catalyst/ChangeLog,v 1.506 2006/01/13 15:09:07 rocket Exp $
+
+  13 Jan 2006; Eric Edgar <rocket@gentoo.org>
+  +examples/netboot2_template.spec, modules/catalyst_support.py,
+  +modules/netboot2_target.py, +targets/netboot2/netboot2-controller.sh,
+  +targets/netboot2/netboot2-copyfile.sh, +targets/netboot2/netboot2-pkg.sh,
+  +targets/support/netboot2-final.sh, targets/support/pre-kmerge.sh:
+  Add netboot2 target
 
   13 Jan 2006; Eric Edgar <rocket@gentoo.org> modules/generic_stage_target.py,
   targets/support/kmerge.sh:
diff --git a/examples/netboot2_template.spec b/examples/netboot2_template.spec
new file mode 100644 (file)
index 0000000..a1bd135
--- /dev/null
@@ -0,0 +1,288 @@
+subarch: mips3
+version_stamp: 2006.0
+target: netboot2
+rel_type: default
+profile: uclibc/mips
+snapshot: 20060107
+source_subpath: default/stage3-mips-uclibc-mips3-20051026
+
+boot/kernel: ip22r4k ip22r5k ip27r10k ip28r10k ip30r10k ip32r5k
+boot/kernel/ip22r4k/sources: =mips-sources-2.6.14.5
+boot/kernel/ip22r5k/sources: =mips-sources-2.6.14.5
+boot/kernel/ip27r10k/sources: =mips-sources-2.6.14.5
+boot/kernel/ip28r10k/sources: =mips-sources-2.6.14.5
+boot/kernel/ip30r10k/sources: =mips-sources-2.6.14.5
+boot/kernel/ip32r5k/sources: =mips-sources-2.6.14.5
+
+boot/kernel/ip22r4k/config: /usr/share/genkernel/mips/ip22r4k-2006_0.cf
+boot/kernel/ip22r5k/config: /usr/share/genkernel/mips/ip22r5k-2006_0.cf
+boot/kernel/ip27r10k/config: /usr/share/genkernel/mips/ip27r10k-2006_0.cf
+boot/kernel/ip28r10k/config: /usr/share/genkernel/mips/ip28r10k-2006_0.cf
+boot/kernel/ip30r10k/config: /usr/share/genkernel/mips/ip30r10k-2006_0.cf
+boot/kernel/ip32r5k/config: /usr/share/genkernel/mips/ip32r5k-2006_0.cf
+
+boot/kernel/ip22r4k/use: -doc
+boot/kernel/ip22r5k/use: -doc
+boot/kernel/ip27r10k/use: -doc ip27
+boot/kernel/ip28r10k/use: -doc ip28
+boot/kernel/ip30r10k/use: -doc ip30
+boot/kernel/ip32r5k/use: -doc
+
+boot/kernel/ip22r4k/gk_kernargs: --kernel-cross-compile=mips-unknown-linux-gnu- --makeopts=-j2 --initramfs-overlay=/tmp/image
+boot/kernel/ip22r5k/gk_kernargs: --kernel-cross-compile=mips-unknown-linux-gnu- --makeopts=-j2 --initramfs-overlay=/tmp/image
+boot/kernel/ip27r10k/gk_kernargs: --kernel-cross-compile=mips64-unknown-linux-gnu- --makeopts=-j2 --initramfs-overlay=/tmp/image
+boot/kernel/ip28r10k/gk_kernargs: --kernel-cross-compile=mips64-unknown-linux-gnu- --makeopts=-j2 --initramfs-overlay=/tmp/image
+boot/kernel/ip30r10k/gk_kernargs: --kernel-cross-compile=mips64-unknown-linux-gnu- --makeopts=-j2 --initramfs-overlay=/tmp/image
+boot/kernel/ip32r5k/gk_kernargs: --kernel-cross-compile=mips64-unknown-linux-gnu- --makeopts=-j2 --initramfs-overlay=/tmp/image
+
+netboot2/builddate: 20060107
+netboot2/busybox_config: /usr/share/genkernel/mips/nb-busybox.cf
+
+netboot2/use:
+       -*
+       multicall
+       readline
+       ssl
+
+netboot2/packages:
+       com_err
+       dropbear
+       dvhtool
+       e2fsprogs
+       gcc-mips64
+       jfsutils
+       mdadm
+       nano
+       ncurses
+       openssl
+       popt
+       portmap
+       reiserfsprogs
+       rsync
+       sdparm
+       ss
+       ttcp
+       uclibc
+       util-linux
+       wget
+       xfsprogs
+
+netboot2/packages/com_err/files:
+       /lib/libcom_err.so
+       /lib/libcom_err.so.2
+       /lib/libcom_err.so.2.1
+       /usr/bin/compile_et
+       /usr/lib/libcom_err.so
+
+netboot2/packages/dropbear/files:
+       /usr/bin/dbclient
+       /usr/bin/dbscp
+       /usr/bin/dropbearconvert
+       /usr/bin/dropbearkey
+       /usr/bin/dropbearmulti
+       /usr/sbin/dropbear
+
+netboot2/packages/dvhtool/files:
+       /usr/sbin/dvhtool
+
+netboot2/packages/e2fsprogs/files:
+       /bin/chattr
+       /bin/lsattr
+       /bin/uuidgen
+       /lib/libblkid.so
+       /lib/libblkid.so.1
+       /lib/libblkid.so.1.0
+       /lib/libe2p.so
+       /lib/libe2p.so.2
+       /lib/libe2p.so.2.3
+       /lib/libext2fs.so
+       /lib/libext2fs.so.2
+       /lib/libext2fs.so.2.4
+       /lib/libuuid.so
+       /lib/libuuid.so.1
+       /lib/libuuid.so.1.2
+       /sbin/badblocks
+       /sbin/blkid
+       /sbin/debugfs
+       /sbin/dumpe2fs
+       /sbin/e2fsck
+       /sbin/e2image
+       /sbin/e2label
+       /sbin/filefrag
+       /sbin/findfs
+       /sbin/fsck
+       /sbin/fsck.ext2
+       /sbin/fsck.ext3
+       /sbin/logsave
+       /sbin/mke2fs
+       /sbin/mkfs.ext2
+       /sbin/mkfs.ext3
+       /sbin/resize2fs
+       /sbin/tune2fs
+       /usr/lib/e2initrd_helper
+       /usr/lib/libblkid.so
+       /usr/lib/libe2p.so
+       /usr/lib/libext2fs.so
+       /usr/lib/libuuid.so
+       /usr/sbin/mklost+found
+
+netboot2/packages/jfsutils/files:
+       /sbin/fsck.jfs
+       /sbin/jfs_fsck
+       /sbin/jfs_mkfs
+       /sbin/jfs_tune
+       /sbin/mkfs.jfs
+
+netboot2/packages/mdadm/files:
+       /etc/mdadm.conf
+       /sbin/mdadm
+
+netboot2/packages/nano/files:
+       /bin/nano
+       /bin/rnano
+       /usr/bin/nano
+
+netboot2/packages/ncurses/files:
+       /etc/terminfo
+       /lib/libcurses.so
+       /lib/libncurses.so
+       /lib/libncurses.so.5
+       /lib/libncurses.so.5.4
+       /usr/bin/toe
+       /usr/lib/libcurses.so
+       /usr/lib/libform.so
+       /usr/lib/libform.so.5
+       /usr/lib/libform.so.5.4
+       /usr/lib/libmenu.so
+       /usr/lib/libmenu.so.5
+       /usr/lib/libmenu.so.5.4
+       /usr/lib/libncurses.so
+       /usr/lib/libpanel.so
+       /usr/lib/libpanel.so.5
+       /usr/lib/libpanel.so.5.4
+       /usr/lib/terminfo
+       /usr/share/tabset/std
+       /usr/share/tabset/stdcrt
+       /usr/share/tabset/vt100
+       /usr/share/tabset/vt300
+       /usr/share/terminfo/a/ansi
+       /usr/share/terminfo/d/dumb
+       /usr/share/terminfo/e/eterm
+       /usr/share/terminfo/l/linux
+       /usr/share/terminfo/r/rxvt
+       /usr/share/terminfo/s/screen
+       /usr/share/terminfo/s/sun
+       /usr/share/terminfo/v/vt100
+       /usr/share/terminfo/v/vt102
+       /usr/share/terminfo/v/vt200
+       /usr/share/terminfo/v/vt220
+       /usr/share/terminfo/v/vt52
+       /usr/share/terminfo/x/xterm
+       /usr/share/terminfo/x/xterm-color
+       /usr/share/terminfo/x/xterm-xfree86
+
+netboot2/packages/openssl/files:
+       /usr/lib/libcrypto.so
+       /usr/lib/libcrypto.so.0
+       /usr/lib/libcrypto.so.0.9.7
+       /usr/lib/libssl.so
+       /usr/lib/libssl.so.0
+       /usr/lib/libssl.so.0.9.7
+
+netboot2/packages/popt/files:
+       /usr/lib/libpopt.so
+       /usr/lib/libpopt.so.0
+       /usr/lib/libpopt.so.0.0.0
+
+netboot2/packages/portmap/files:
+       /sbin/portmap
+
+netboot2/packages/reiserfsprogs/files:
+       /sbin/fsck.reiserfs
+       /sbin/mkfs.reiserfs
+       /sbin/mkreiserfs
+       /sbin/reiserfsck
+       /sbin/reiserfstune
+
+netboot2/packages/rsync/files:
+       /usr/bin/rsync
+
+netboot2/packages/sdparm/files:
+       /usr/bin/sdparm
+
+netboot2/packages/ss/files:
+       /lib/libss.so
+       /lib/libss.so.2
+       /lib/libss.so.2.0
+       /usr/bin/mk_cmds
+       /usr/lib/libss.so
+
+netboot2/packages/ttcp/files:
+       /usr/bin/ttcp
+
+netboot2/packages/uclibc/files:
+       /etc/ld.so.cache
+       /lib/ld-uClibc-0.9.27.so
+       /lib/ld-uClibc.so.0
+       /lib/libc.so.0
+       /lib/libcrypt-0.9.27.so
+       /lib/libcrypt.so.0
+       /lib/libdl-0.9.27.so
+       /lib/libdl.so.0
+       /lib/libm-0.9.27.so
+       /lib/libm.so.0
+       /lib/libnsl-0.9.27.so
+       /lib/libnsl.so.0
+       /lib/libpthread-0.9.27.so
+       /lib/libpthread.so.0
+       /lib/libresolv-0.9.27.so
+       /lib/libresolv.so.0
+       /lib/librt-0.9.27.so
+       /lib/librt.so.0
+       /lib/libthread_db-0.9.27.so
+       /lib/libthread_db.so.1
+       /lib/libuClibc-0.9.27.so
+       /lib/libutil-0.9.27.so
+       /lib/libutil.so.0
+       /sbin/ldconfig
+       /usr/bin/getent
+       /usr/bin/ldd
+       /usr/lib/Scrt1.o
+       /usr/lib/crt0.o
+       /usr/lib/crt1.o
+       /usr/lib/crti.o
+       /usr/lib/crtn.o
+       /usr/lib/libc.so
+       /usr/lib/libcrypt.so
+       /usr/lib/libdl.so
+       /usr/lib/libm.so
+       /usr/lib/libnsl.so
+       /usr/lib/libpthread.so
+       /usr/lib/libresolv.so
+       /usr/lib/librt.so
+       /usr/lib/libthread_db.so
+       /usr/lib/libutil.so
+
+netboot2/packages/util-linux/files:
+       /sbin/fdisk
+       /sbin/mkfs
+       /sbin/mkswap
+       /sbin/swapoff
+       /sbin/swapon
+       /usr/bin/ddate
+       /usr/bin/setterm
+       /usr/bin/whereis
+
+netboot2/packages/wget/files:
+       /usr/bin/wget
+
+netboot2/packages/xfsprogs/files:
+       /bin/xfs_copy
+       /bin/xfs_growfs
+       /bin/xfs_info
+       /lib/libhandle.so
+       /lib/libhandle.so.1
+       /lib/libhandle.so.1.0.3
+       /sbin/fsck.xfs
+       /sbin/mkfs.xfs
+       /sbin/xfs_repair
index 309c2bb70cbced08dcf74c251c945fcec1ed6c4d..630e0f628599ae1a0bd7245887bc8c897657695e 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo/src/catalyst/modules/catalyst_support.py,v 1.66 2005/12/21 06:32:09 rocket Exp $
+# $Header: /var/cvsroot/gentoo/src/catalyst/modules/catalyst_support.py,v 1.67 2006/01/13 15:09:07 rocket Exp $
 
 import sys,string,os,types,re,signal,traceback,time
 #import md5,sha
@@ -146,7 +146,7 @@ required_build_targets=["generic_target","generic_stage_target"]
 # new build types should be added here
 valid_build_targets=["stage1_target","stage2_target","stage3_target","stage4_target","grp_target",
                        "livecd_stage1_target","livecd_stage2_target","embedded_target",
-                       "tinderbox_target","snapshot_target","netboot_target"]
+                       "tinderbox_target","snapshot_target","netboot_target","netboot2_target"]
 
 required_config_file_values=["storedir","sharedir","distdir","portdir"]
 valid_config_file_values=required_config_file_values[:]
diff --git a/modules/netboot2_target.py b/modules/netboot2_target.py
new file mode 100644 (file)
index 0000000..761764a
--- /dev/null
@@ -0,0 +1,129 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo/src/catalyst/modules/netboot2_target.py,v 1.1 2006/01/13 15:09:07 rocket Exp $
+
+"""
+Builder class for a netboot build, version 2
+"""
+
+import os,string,types
+from catalyst_support import *
+from generic_stage_target import *
+
+class netboot2_target(generic_stage_target):
+       def __init__(self,spec,addlargs):
+               self.valid_values = [
+                       "netboot2/extra_files",
+               ]
+               self.required_values=[
+                       "boot/kernel",
+                       "netboot2/builddate",
+                       "netboot2/busybox_config",
+                       "netboot2/packages"                     
+               ]
+                       
+               try:
+                       if addlargs.has_key("netboot2/packages"):
+                               if type(addlargs["netboot2/packages"]) == types.StringType:
+                                       loopy=[addlargs["netboot2/packages"]]
+                               else:
+                                       loopy=addlargs["netboot2/packages"]
+               except:
+                       raise CatalystError,"configuration error in netboot2/packages."
+               
+               
+
+               generic_stage_target.__init__(self,spec,addlargs)
+               self.set_build_kernel_vars(addlargs)
+
+               # Merge packages into the buildroot, and pick out certain files to place in
+               # /tmp/image
+               self.settings["merge_path"]=normpath("/tmp/image")
+
+               for envvar in "CFLAGS", "CXXFLAGS":
+                       if not os.environ.has_key(envvar) and not addlargs.has_key(envvar):
+                               self.settings[envvar] = "-Os -pipe"
+
+       def set_dest_path(self):
+               if self.settings.has_key("merge_path"):
+                       self.settings["destpath"]=normpath(self.settings["chroot_path"]+self.settings["merge_path"])
+               else:
+                       self.settings["destpath"]=normpath(self.settings["chroot_path"])
+
+       def set_target_path(self):
+               self.settings["target_path"]=normpath(self.settings["storedir"]+"/builds/"+\
+                       self.settings["target_subpath"]+"/")
+               if self.settings.has_key("AUTORESUME") \
+                       and os.path.exists(self.settings["autoresume_path"]+"setup_target_path"):
+                               print "Resume point detected, skipping target path setup operation..."
+               else:
+                       # first clean up any existing target stuff
+                       if os.path.isfile(self.settings["target_path"]):
+                               cmd("rm -f "+self.settings["target_path"], \
+                                       "Could not remove existing file: "+self.settings["target_path"],env=self.env)
+                               touch(self.settings["autoresume_path"]+"setup_target_path")
+
+               if not os.path.exists(self.settings["storedir"]+"/builds/"):
+                       os.makedirs(self.settings["storedir"]+"/builds/")
+
+       def copy_files_to_image(self):
+               # copies specific files from the buildroot to merge_path
+               myfiles=[]
+
+               # check for autoresume point
+               if self.settings.has_key("AUTORESUME") \
+                       and os.path.exists(self.settings["autoresume_path"]+"copy_files_to_image"):
+                               print "Resume point detected, skipping target path setup operation..."
+               else:
+                       if self.settings.has_key("netboot2/packages"):
+                               if type(self.settings["netboot2/packages"]) == types.StringType:
+                                       loopy=[self.settings["netboot2/packages"]]
+                               else:
+                                       loopy=self.settings["netboot2/packages"]
+               
+                       for x in loopy:
+                               if self.settings.has_key("netboot2/packages/"+x+"/files"):
+                                   if type(self.settings["netboot2/packages/"+x+"/files"]) == types.ListType:
+                                           myfiles.extend(self.settings["netboot2/packages/"+x+"/files"])
+                                   else:
+                                           myfiles.append(self.settings["netboot2/packages/"+x+"/files"])
+
+                       if self.settings.has_key("netboot2/extra_files"):
+                               if type(self.settings["netboot2/extra_files"]) == types.ListType:
+                                       myfiles.extend(self.settings["netboot2/extra_files"])
+                               else:
+                                       myfiles.append(self.settings["netboot2/extra_files"])
+
+                       try:
+                               cmd("/bin/bash "+self.settings["controller_file"]+\
+                                       " image " + list_bashify(myfiles),env=self.env)
+                       except CatalystError:
+                               self.unbind()
+                               raise CatalystError,"Failed to copy files to image!"
+
+                       touch(self.settings["autoresume_path"]+"copy_files_to_image")
+
+
+       def move_kernels(self):
+               # we're done, move the kernels to builds/*
+               # no auto resume here as we always want the
+               # freshest images moved
+               try:
+                       cmd("/bin/bash "+self.settings["controller_file"]+\
+                               " final",env=self.env)
+                       print ">>> Netboot Build Finished!"
+               except CatalystError:
+                       self.unbind()
+                       raise CatalystError,"Failed to move kernel images!"
+
+
+       def set_action_sequence(self):
+           self.settings["action_sequence"]=["unpack","unpack_snapshot","config_profile_link",
+                                       "setup_confdir","bind","chroot_setup",\
+                                       "setup_environment","build_packages","root_overlay",\
+                                       "copy_files_to_image","build_kernel","move_kernels",\
+                                       "unbind","clean","clear_autoresume"]
+
+def register(foo):
+       foo.update({"netboot2":netboot2_target})
+       return foo
diff --git a/targets/netboot2/netboot2-controller.sh b/targets/netboot2/netboot2-controller.sh
new file mode 100644 (file)
index 0000000..d926429
--- /dev/null
@@ -0,0 +1,64 @@
+#!/bin/bash
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo/src/catalyst/targets/netboot2/netboot2-controller.sh,v 1.1 2006/01/13 15:09:07 rocket Exp $
+
+. ${clst_sharedir}/targets/support/functions.sh
+. ${clst_sharedir}/targets/support/filesystem-functions.sh
+
+case ${1} in
+       build_packages)
+               echo ">>> Building packages ..."
+               shift
+               clst_root_path="/" \
+               clst_packages="$*" \
+               exec_in_chroot \
+               ${clst_sharedir}/targets/${clst_target}/${clst_target}-pkg.sh
+       ;;
+       pre-kmerge)
+               # Sets up the build environment before any kernels are compiled
+               exec_in_chroot ${clst_sharedir}/targets/support/pre-kmerge.sh
+       ;;
+       post-kmerge)
+               # Cleans up the build environment after the kernels are compiled
+               exec_in_chroot ${clst_sharedir}/targets/support/post-kmerge.sh
+       ;;
+       kernel)
+               shift
+               export clst_kname="$1"
+
+               # if we have our own linuxrc, copy it in
+               if [ -n "${clst_linuxrc}" ]
+               then
+                       cp -pPR ${clst_linuxrc} ${clst_chroot_path}/tmp/linuxrc
+               fi
+               exec_in_chroot ${clst_sharedir}/targets/support/kmerge.sh
+               delete_from_chroot tmp/linuxrc
+
+               extract_modules ${clst_chroot_path} ${clst_kname}
+               #16:12 <@solar> kernel_name=foo
+               #16:13 <@solar> eval clst_boot_kernel_${kernel_name}_config=bar
+               #16:13 <@solar> eval echo \$clst_boot_kernel_${kernel_name}_config
+       ;;
+       image)
+               # Creates the base initramfs image for the netboot
+               echo -e ">>> Preparing Image ..."
+               shift
+
+               # Copy remaining files over to the initramfs target
+               clst_files="${@}" \
+               exec_in_chroot \
+               ${clst_sharedir}/targets/${clst_target}/${clst_target}-copyfile.sh
+       ;;
+       final)
+               # For each arch, fetch the kernel images and put them in builds/
+               echo -e ">>> Copying completed kernels to ${clst_target_path} ..."
+               ${clst_sharedir}/targets/support/netboot2-final.sh
+       ;;
+       clean)
+               exit 0;;
+       *)
+               exit 1;;
+esac
+
+exit $?
diff --git a/targets/netboot2/netboot2-copyfile.sh b/targets/netboot2/netboot2-copyfile.sh
new file mode 100644 (file)
index 0000000..662967f
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/bash
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo/src/catalyst/targets/netboot2/netboot2-copyfile.sh,v 1.1 2006/01/13 15:09:07 rocket Exp $
+
+. /tmp/chroot-functions.sh
+
+update_env_settings
+
+echo ">>> Copying initramfs files to ${clst_merge_path} (in chroot) ..."
+[ ! -d "${clst_merge_path}" ] && mkdir -p ${clst_merge_path}
+for f in ${clst_files}
+do 
+       cp -af --parents ${f} ${clst_merge_path}
+done
+echo ""
diff --git a/targets/netboot2/netboot2-pkg.sh b/targets/netboot2/netboot2-pkg.sh
new file mode 100644 (file)
index 0000000..4662b54
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/bash
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo/src/catalyst/targets/netboot2/netboot2-pkg.sh,v 1.1 2006/01/13 15:09:07 rocket Exp $
+
+. /tmp/chroot-functions.sh
+
+update_env_settings
+
+setup_myfeatures
+setup_myemergeopts
+
+# Setup our environment
+export FEATURES="${clst_myfeatures}"
+export USE_ORDER="env:pkg:conf:defaults"
+
+# START BUILD
+
+run_emerge ${clst_myemergeopts} ${clst_packages}
diff --git a/targets/support/netboot2-final.sh b/targets/support/netboot2-final.sh
new file mode 100755 (executable)
index 0000000..3c09ddc
--- /dev/null
@@ -0,0 +1,45 @@
+#!/bin/bash
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo/src/catalyst/targets/support/netboot2-final.sh,v 1.1 2006/01/13 15:09:07 rocket Exp $
+. ${clst_sharedir}/targets/support/functions.sh
+. ${clst_sharedir}/targets/support/filesystem-functions.sh
+
+
+extract_kernels ${clst_target_path}boot
+
+# Move kernel binaries to ${clst_target_path}kernels, and
+# move everything else to ${clst_target_path}kernels/misc
+mkdir ${clst_target_path}kernels
+mkdir ${clst_target_path}kernels/misc
+
+for x in ${clst_boot_kernel}; do
+       mv ${clst_target_path}boot/${x} ${clst_target_path}kernels
+       mv ${clst_target_path}boot/${x}.igz ${clst_target_path}kernels/misc
+done
+rmdir ${clst_target_path}boot
+
+
+# Any post-processing necessary for each architecture can be done here.  This may
+# include things like sparc's elftoaout, x86's PXE boot, etc.
+case ${clst_mainarch} in
+       alpha)
+               sleep 0
+               ;;
+       arm)
+               sleep 0
+               ;;
+       hppa)
+               sleep 0
+               ;;
+       sparc*)
+               sleep 0
+               ;;
+       ia64)
+               sleep 0
+               ;;
+       x86|amd64)
+               sleep 0
+               ;;
+esac
+exit $?
index 8a31343af2ddc445573ea3c4023a860f1ed0a8e3..11028821a368954c62a4e195eee90a9164d045ef 100755 (executable)
@@ -6,19 +6,39 @@
 
 update_env_settings
 
-export USE="livecd"
-run_emerge --oneshot genkernel
+case ${clst_target} in
+       livecd*)
+               export USE="livecd"
+               run_emerge --oneshot genkernel
+               install -d /usr/portage/packages/gk_binaries
 
-install -d /usr/portage/packages/gk_binaries
-
-# Setup case structure for livecd_type
-case ${clst_livecd_type} in
-       gentoo-release-minimal | gentoo-release-universal)
-               case ${clst_mainarch} in
-                       amd64|x86)
-                               sed -i 's/initramfs_data.cpio.gz /initramfs_data.cpio.gz -r 1024x768 /' /usr/share/genkernel/genkernel
+               # Setup case structure for livecd_type
+               case ${clst_livecd_type} in
+                       gentoo-release-minimal | gentoo-release-universal)
+                               case ${clst_mainarch} in
+                                       amd64|x86)
+                                               sed -i 's/initramfs_data.cpio.gz /initramfs_data.cpio.gz -r 1024x768 /' /usr/share/genkernel/genkernel
+                                       ;;
+                               esac
                        ;;
                esac
        ;;
-esac
 
+
+       netboot2)
+               run_emerge --oneshot genkernel
+               install -d /usr/portage/packages/gk_binaries
+
+               # Set the netboot builddate/hostname in linuxrc & copy to proper arch directory in genkernel
+               sed -e "s/@@MYDATE@@/${clst_netboot2_builddate}/g" \
+                   -e "s/@@RELVER@@/${clst_version_stamp}/g" \
+                       ${clst_root_path}usr/share/genkernel/netboot/linuxrc.x \
+                               > ${clst_root_path}usr/share/genkernel/${clst_mainarch}/linuxrc
+
+               echo ">>> Copying support files to ${clst_root_path} ..."
+               cp -af ${clst_root_path}usr/share/genkernel/netboot/misc/* ${clst_merge_path}
+
+               echo ">>> Copying busybox config ..."
+               cp -f ${clst_netboot2_busybox_config} /usr/share/genkernel/${clst_mainarch}/busy-config
+       ;;
+esac