From 2d993854154e30c9f5f1b6b72ee205d25ea7f824 Mon Sep 17 00:00:00 2001 From: Eric Edgar Date: Fri, 13 Jan 2006 15:09:07 +0000 Subject: [PATCH] Add netboot2 target git-svn-id: svn+ssh://svn.gentoo.org/var/svnroot/catalyst/trunk@1020 d1e1f19c-881f-0410-ab34-b69fee027534 --- ChangeLog | 9 +- examples/netboot2_template.spec | 288 ++++++++++++++++++++++++ modules/catalyst_support.py | 4 +- modules/netboot2_target.py | 129 +++++++++++ targets/netboot2/netboot2-controller.sh | 64 ++++++ targets/netboot2/netboot2-copyfile.sh | 16 ++ targets/netboot2/netboot2-pkg.sh | 19 ++ targets/support/netboot2-final.sh | 45 ++++ targets/support/pre-kmerge.sh | 42 +++- 9 files changed, 602 insertions(+), 14 deletions(-) create mode 100644 examples/netboot2_template.spec create mode 100644 modules/netboot2_target.py create mode 100644 targets/netboot2/netboot2-controller.sh create mode 100644 targets/netboot2/netboot2-copyfile.sh create mode 100644 targets/netboot2/netboot2-pkg.sh create mode 100755 targets/support/netboot2-final.sh diff --git a/ChangeLog b/ChangeLog index 19400c61..ee67e368 100644 --- 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 + +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 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 index 00000000..a1bd1351 --- /dev/null +++ b/examples/netboot2_template.spec @@ -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 diff --git a/modules/catalyst_support.py b/modules/catalyst_support.py index 309c2bb7..630e0f62 100644 --- a/modules/catalyst_support.py +++ b/modules/catalyst_support.py @@ -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 index 00000000..761764ac --- /dev/null +++ b/modules/netboot2_target.py @@ -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 index 00000000..d9264295 --- /dev/null +++ b/targets/netboot2/netboot2-controller.sh @@ -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 index 00000000..662967f6 --- /dev/null +++ b/targets/netboot2/netboot2-copyfile.sh @@ -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 index 00000000..4662b546 --- /dev/null +++ b/targets/netboot2/netboot2-pkg.sh @@ -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 index 00000000..3c09ddc0 --- /dev/null +++ b/targets/support/netboot2-final.sh @@ -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 $? diff --git a/targets/support/pre-kmerge.sh b/targets/support/pre-kmerge.sh index 8a31343a..11028821 100755 --- a/targets/support/pre-kmerge.sh +++ b/targets/support/pre-kmerge.sh @@ -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 -- 2.26.2