Cleanup:
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 15 Jan 2008 16:06:53 +0000 (16:06 +0000)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 15 Jan 2008 16:06:53 +0000 (16:06 +0000)
- cdcustom.sh was the ancestor of bootcustom.sh
- bootcustom.sh itself is not used anymore in myplc
- newbuild.sh looks like a rather old version of build.sh - despite the name

bootcustom.sh [deleted file]
cdcustom.sh [deleted file]
newbuild.sh [deleted file]

diff --git a/bootcustom.sh b/bootcustom.sh
deleted file mode 100755 (executable)
index 7a210c3..0000000
+++ /dev/null
@@ -1,438 +0,0 @@
-#!/bin/bash
-
-# purpose : create a node-specific boot image
-
-# NOTE (see also bootcd/build.sh)
-# If you run your own myplc instance, and you dont need to
-# customize the bootcd, you might wish to use bootcd/build.sh
-# with the -f option
-# However cdcustom.sh might turn out useful if
-# (*) you only have an iso or usb image and nothing else
-# (*) or you want to generate several images in a single run
-# (*) or you run myplc rpm, but need to customize the bootcd image,
-#     because the myplc rpm does not come with the required sources
-
-# See usage for full details
-
-######## Implementation notes
-# (*) as of may 2007, this script supports both iso and usb images
-#     this becomes a bit tricky sometimes
-#     in particular the startup is only partially lazy..
-#     most names are kept from former version for easier merge
-# (*) in a former release (iso only) it was possible to perform faster by
-# loopback-mounting the generic iso image
-# Unfortunately mkisofs cannot graft a file that already exists on the
-# original tree (so overlay.img cannot be overridden)
-# to make things worse we cannot loopback-mount the cpio-gzipped
-# overlay image either, so all this stuff is way more complicated
-# than it used to be.
-#
-# (*) as of 2006 jun 28 we use a third image named custom.img for
-# overriding files in bootcd.img, which let us use bootcd.img intact
-# and thus notably speeds things up 
-#
-######## Logic
-# here is how we do this for ISO
-# for efficiency, we do only once:
-#   (*) mount the generic image
-#   (*) copy it into a temp dir
-#   (*) unzip/unarchive overlay image into another temp dir
-#   (*) if required prepare a custom.img 
-# then for each node, we
-#   (*) insert plnode.txt at the right place if not a default iso
-#   (*) rewrap a gzipped/cpio overlay.img, that we push onto the
-#       copied iso tree
-#   (*) rewrap this into an iso image
-
-# for USB
-# in principle it's simpler here, but for better code factorization we
-# do the same startup thing, but slightly different
-# only once:
-#   (*) mount the generic image
-#   (*) unzip/unarchive overlay image into another temp dir
-# then for each node, we
-#   (*) copy the generic image into the node-dep image
-#   (*) loopback mount it (write enabled)
-#   (*) insert plnode.txt at the right place, 
-#   (*) rewrap a gzipped/cpio overlay.img, that we push onto the
-#       mounted image
-#   (*) unmount
-
-set -e 
-COMMANDSH=$(basename $0)
-COMMAND=$(basename $0 .sh)
-REVISION="$Id$"
-
-function usage () {
-
-   echo "Usage: $COMMANDSH [-f] [ -c bootcd-dir] [generic-image|image-dir] node-config [.. node-configs]"
-   echo " Creates a node-specific boot (iso or usb) image"
-   echo "*Options"
-   echo -e " -f\r\t\tForces overwrite of output images"
-   echo -e " -c bootcd-dir\r\t\tis taken as the root of a set of custom bootcd files"
-   echo -e "\t\ti.e. the files under dir take precedence"
-   echo -e "\t\tover the ones in the generic bootcd"
-   echo -e "\t\tThis is available for ISO images only, and is experimental code"
-   echo -e "-C dir\r\t\tlike make -C, performs chdir prior to running anything"
-   echo -e "-O isoname\r\t\tWrite iso output image to isoname. Does not work with"
-   echo -e "\t\tmultiple node-config files."
-   echo "*Arguments"
-   echo -e " generic-image or image-dir\n\r\t\tThe generic image as downloaded from myplc"
-   echo -e "\t\ttypically from http://myplc.domain.org/download/"
-   echo -e "\t\tor, the already mounted or copied contents in a directory."
-   echo -e " node-config(s)\r\t\tnode config files (plnode.txt format)"
-   echo -e " default\r\t\tmentioned instead of a plnode.txt file, for generating"
-   echo -e "\t\ta node-independent iso image when -c is provided"
-   echo -e "\t\tThis is default behaviour when no node-config are provided"
-   echo "*Outputs"
-   echo " node-specific images are named after nodename[-bootcd-dir]"
-   echo " node-independant image is named after bootcd-dir"
-   echo " with extension .iso or .usb accordingly"
-   echo "*Examples"
-   echo "# $COMMANDSH /plc/data/var/www/html/download/Onelab-BootCD-4.0.usb node1.txt node2.txt"
-   echo "  Creates node1.usb and node2.usb that are self-contained USB images for both nodes"
-   echo "# $COMMANDSH -c onelab-bootcd /plc/data/var/www/html/download/onelab-BootCD-4.0.iso"
-   echo "  Creates onelab-bootcd.iso that has no plnode.txt embedded and that uses"
-   echo "  the hw init scripts located under onelab-bootcd/etc/rc.d/init.d/"
-   echo "*Version $REVISION"
-   exit 1
-}
-
-### read config file in a subshell and echoes host_name
-function host_name () {
-  export CONFIG="$1"; shift
-  ( . "$CONFIG" ; echo "${HOST_NAME}.${DOMAIN_NAME}" )
-}
-
-### Globals
-# we set this to iso or usb according to the generic-image provided
-IMAGE_TYPE=
-PLNODE_PATH=/usr/boot
-PLNODE=plnode.txt
-DEFAULT_TARGET=default
-# defined on the command-line
-CUSTOM_DIR=
-## arg-provided generic iso
-ISO_GENERIC=
-# node-dep conf file
-NODE_CONFIG=
-# resulting iso image and log
-NODE_ISO=
-NODE_LOG=
-## mount points and temps
-ISO_MOUNT="/tmp/$COMMAND-$$-mount"
-ISO_ROOT="/tmp/$COMMAND-$$-iso"
-OVERLAY_ROOT="/tmp/$COMMAND-$$-overlay"
-# node-dep cpio/gzip image
-NODE_OVERLAY=
-
-CPIO_OARGS="-oc --quiet"
-CPIO_IARGS="-id --quiet"
-CPIO_PARGS="-pdu --quiet"
-
-# export DEBUG=true
-# for enabling debug messages (set -x)
-
-# export VERBOSE=true for enabling this
-function verbose () {
-   if [ -n "$VERBOSE" ] ; then
-     echo "$@"
-   fi
- }
-
-function message () { echo -e "$COMMAND : $@" ; }
-function message-n () { echo -en "$COMMAND : $@" ; }
-function message-done () { echo Done ; }
-function error () { echo -e "$COMMAND : ERROR $@ - exiting" ; exit 1 ;}
-
-# lazy startup
-STARTED_UP=
-function startup () {
-
-   trap abort int hup quit err
-   set -e
-   
-   [[ -n "$DEBUG" ]] && set -x
-
-   # lazy : run only once
-   if [ -z "$STARTED_UP" ] ; then
-     message "lazy start up"
-
-     ### checking
-     [ ! -f "$ISO_GENERIC" ] && [ ! -d "$ISO_GENERIC" ] && error "Could not find template ISO image"
-     [ -d "$ISO_MOUNT" ] && error "$ISO_MOUNT already exists" 
-     [ -d "$ISO_ROOT" ] && [ ! -d "$ISO_GENERIC" ] && error "$ISO_ROOT already exists" 
-     [ -d "$OVERLAY_ROOT" ] && error "$OVERLAY_ROOT already exists"
-     
-     verbose "Creating temp dirs"
-     mkdir -p "$ISO_MOUNT" "$ISO_ROOT" "$OVERLAY_ROOT"
-
-     if [[ "$IMAGE_TYPE" = "usb" || "$IMAGE_TYPE" = "iso" ]] ; then
-         verbose "Mounting generic ISO $ISO_GENERIC under $ISO_MOUNT"
-         mount -o ro,loop "$ISO_GENERIC" "$ISO_MOUNT"
-     else
-         # the iso_generic name is the directory from which files are available
-         ISO_MOUNT=$ISO_GENERIC
-     fi
-     
-     if [[ "$IMAGE_TYPE" = "iso" || "$IMAGE_TYPE" = "dir" ]] ; then
-       ### ISO
-       ### DONT!! use tar for duplication
-       message "Duplicating ISO image in $ISO_ROOT"
-       (cd "$ISO_MOUNT" ; find . | cpio $CPIO_PARGS "$ISO_ROOT" )
-     
-       if [ -n "$CUSTOM_DIR" ] ; then
-        [ -d "$CUSTOM_DIR" ] || error "Directory $CUSTOM_DIR not found"
-        prepare_custom_image
-       fi
-     fi
-     ### USB specifics are done unconditionnally, see below
-     
-     message "Extracting generic overlay image in $OVERLAY_ROOT"
-     gzip -d -c "$ISO_MOUNT/overlay.img" | ( cd "$OVERLAY_ROOT" ; cpio $CPIO_IARGS )
-     
-     STARTED_UP=true
-   fi
-
-   # for USB: do this for every node
-   if [ "$IMAGE_TYPE" = "usb" ] ; then
-     message "Duplicating $ISO_GENERIC into $NODE_ISO"
-     cp "$ISO_GENERIC" "$NODE_ISO"
-     message "Mounting write-enabled"
-     mount -o loop "$NODE_ISO" "$ISO_ROOT"
-   fi
-   
-}   
-
-function prepare_custom_image () {
-
-   # Cleaning any sequel
-   rm -f custom.img
-   [ -f custom.img ] && error "Could not cleanup custom.img"
-   
-   message "WARNING : You are creating *custom* boot CDs"
-
-   message-n "Creating $ISO_ROOT/custom.img"
-   (cd $"CUSTOM_DIR" ; find . | cpio $CPIO_OARGS) | gzip -9 > "$ISO_ROOT"/custom.img
-   message-done
-   
-}
-
-function node_cleanup () {
-   verbose "Cleaning node-dependent cpio image"
-   rm -rf "$NODE_OVERLAY"
-  
-}
-
-function cleanup () {
-
-   echo "$COMMAND : cleaning up"
-   [[ -n "$DEBUG" ]] && set -x
-
-   verbose "Cleaning overlay image"
-   rm -rf "$OVERLAY_ROOT"
-   verbose "Cleaning ISO image"
-   rm -rf "$ISO_ROOT"
-   verbose "Cleaning node-dep overlay image"
-   rm -f "$NODE_OVERLAY"
-   if [[ "$IMAGE_TYPE" = "iso" || "$IMAGE_TYPE" = "usb" ]]; then
-       verbose "Unmounting $ISO_MOUNT"
-       umount "$ISO_MOUNT" 2> /dev/null
-       rmdir "$ISO_MOUNT"
-   fi
-   exit
-}
-
-function abort () {
-   echo "$COMMAND : Aborting"
-   message "Cleaning $NODE_ISO"
-   rm -f "$NODE_ISO"
-   cleanup
-}
-
-function main () {
-
-   trap abort int hup quit err
-   set -e
-
-   [[ -n "$DEBUG" ]] && set -x
-
-   # accept -b as -c, I am used to it now
-   while getopts "c:b:O:C:fh" opt ; do
-     case "$opt" in
-       c|b)
-# not sure about the status of this, you are warned
-#       echo "The custom option in $COMMAND is broken " ; exit 1
-        echo "WARNING : The custom option in $COMMAND is maybe broken "
-        echo -n "You will have been warned, proceed ? "
-        read answer
-        CUSTOM_DIR="$OPTARG" ;;
-       C)
-        cd "$OPTARG" ;;
-       O)
-        NODEOUTPUT="$OPTARG" ;;
-       f)
-        FORCE_OUTPUT=true ;;
-       h|*)
-        usage ;;
-     esac
-   done
-
-   shift $(($OPTIND-1))
-   
-   [[ -z "$@" ]] && usage
-   ISO_GENERIC="$1"; shift
-
-   if [[ -z "$@" ]] ; then
-     nodes="$DEFAULT_TARGET"
-   else
-     nodes="$@"
-   fi
-
-   ### getting image type
-   iso="${ISO_GENERIC%.iso}"
-   usb="${ISO_GENERIC%.usb}"
-   
-   if [ -d "$ISO_GENERIC" ] ; then
-     IMAGE_TYPE=dir
-   elif [ "$ISO_GENERIC" != "$iso" ] ; then
-     IMAGE_TYPE=iso
-   elif [ "$ISO_GENERIC" != "$usb" ] ; then
-     IMAGE_TYPE=usb
-   else
-     echo "Could not figure type of $ISO_GENERIC -- exiting"
-     exit 1
-   fi
-
-#  perform that later (lazily)
-#  so that (1st) node-dep checking are done before we bother to unpack
-#   startup
-
-   for NODE_CONFIG in $nodes ; do
-
-     if [ "$NODE_CONFIG" = "$DEFAULT_TARGET" ] ; then
-       NODE_DEP=""
-       # default node without customization does not make sense
-       if [ -z "$CUSTOM_DIR" ] ; then
-        message "creating a non-custom node-indep. image refused\n(Would have no effect)"
-        continue
-       else
-        NODENAME="$DEFAULT_TARGET"
-        NODEOUTPUT=$(basename "$CUSTOM_DIR")
-       fi
-     else
-       NODE_DEP=true
-       NODENAME=$(host_name "$NODE_CONFIG")
-       case "$NODENAME" in
-        .*|*.)
-          message "HOST_NAME or DOMAIN_NAME not found in $NODE_CONFIG - skipped"
-          continue ;;
-       esac
-       if [ -z "$NODEOUTPUT" ] ; then
-           if [ -z "$CUSTOM_DIR" ] ; then
-              NODEOUTPUT="$NODENAME"
-           else
-              NODEOUTPUT="${NODENAME}"-$(basename "$CUSTOM_DIR")
-           fi
-       fi
-     fi
-
-     message "$COMMAND : dealing with node $NODENAME"
-
-     if [[ "$IMAGE_TYPE" = "iso" ||  "$IMAGE_TYPE" = "dir" ]] ; then
-       NODE_ISO="$NODEOUTPUT.iso"
-       NODE_LOG="$NODEOUTPUT-iso.log"
-     else
-       NODE_ISO="$NODEOUTPUT.usb"
-       NODE_LOG="$NODEOUTPUT-usb.log"
-     fi
-
-     ### checking
-     if [ -e  "$NODE_ISO" ] ; then
-       if [ -n "$FORCE_OUTPUT" ] ; then
-        message "$NODE_ISO exists, will overwrite (-f)"
-        rm "$NODE_ISO"
-       else
-        message "$NODE_ISO exists, please remove first - skipped" ; continue
-       fi
-     fi
-     if [ -n "$NODE_DEP" -a ! -f "$NODE_CONFIG" ] ; then
-       message "Could not find node-specifig config - skipped" ; continue
-     fi
-     
-     startup
-
-     if [ -n "$NODE_DEP" ] ; then
-       verbose "Pushing node config into overlay image"
-       mkdir -p "$OVERLAY_ROOT"/"$PLNODE_PATH"
-       cp "$NODE_CONFIG" "$OVERLAY_ROOT"/"$PLNODE_PATH"/"$PLNODE"
-     else
-       verbose "Cleaning node config for node-indep. image"
-       rm -f "$OVERLAY_ROOT"/"$PLNODE_PATH"/"$PLNODE"
-     fi
-
-     echo "$COMMAND : Creating overlay image for $NODENAME"
-     (cd "$OVERLAY_ROOT" ; find . | cpio $CPIO_OARGS) | gzip -9 > "$ISO_ROOT"/overlay.img
-
-     if [[ "$IMAGE_TYPE" = "iso"  || "$IMAGE_TYPE" = "dir" ]] ; then
-       ### ISO
-       message "Refreshing isolinux.cfg"
-       # Calculate ramdisk size (total uncompressed size of both archives)
-       
-       ##########
-       # N.B. Thierry Parmentelat - 2006-06-28
-       # the order in which these images need to be mentioned here for
-       # isolinux involved some - not so educated - guesses
-       # as per syslinux source code in syslinux/runkernel.inc, the
-       # config file is parsed left to right, and indeed it's in that
-       # order that the files are loaded right off the CD
-       # This does not tell however, in case a given file is present in
-       # two different images - and that's the very purpose here - which
-       # one will take precedence over the other
-       # I came up with this order on a trial-and-error basis, I would
-       # have preferred to find it described somewhere
-       # Might be worth checking with other versions of syslinux in case
-       # the custom files would turn out to not be taken into account
-       ##########
-
-       if [ -n "$CUSTOM_DIR" ] ; then
-        images="bootcd.img custom.img overlay.img"
-       else
-        images="bootcd.img overlay.img"
-       fi
-       
-       ramdisk_size=$(cd "$ISO_ROOT" ; gzip -l $images | tail -1 | awk '{ print $2; }') # bytes
-       # keep safe, provision for cpio's block size
-       ramdisk_size=$(($ramdisk_size / 1024 + 1)) # kilobytes
-       
-       initrd_images=$(echo "$images" | sed -e 's/ /,/g')
-       # Write isolinux configuration
-       cat > "$ISO_ROOT"/isolinux.cfg <<EOF
-DEFAULT kernel
-APPEND ramdisk_size=$ramdisk_size initrd=$initrd_images root=/dev/ram0 rw
-DISPLAY pl_version
-PROMPT 0
-TIMEOUT 40
-EOF
-
-       message-n "Writing custom image, log on $NODE_LOG .. "
-       mkisofs -o "$NODE_ISO" -R -allow-leading-dots -J -r -b isolinux.bin \
-       -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \
-       "$ISO_ROOT" > "$NODE_LOG" 2>&1
-       message-done
-
-     else
-       ### USB
-       umount "$NODE_ISO"
-     fi
-     node_cleanup
-     
-     message "Image for $NODENAME in $NODE_ISO"
-   done
-
-   cleanup
-
-}
-
-####################
-main "$@"
diff --git a/cdcustom.sh b/cdcustom.sh
deleted file mode 100755 (executable)
index c77043b..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-#!/bin/bash
-
-# purpose : create a node-specific CD ISO image
-
-# NOTE (see also bootcd/build.sh)
-# If you run your own myplc instance, and you dont need to
-# customize the bootcd, you might wish to use bootcd/build.sh
-# with the -f option
-# However cdcustom.sh might turn out useful if
-# (*) you only have an iso image and nothing else
-# (*) or you want to generate several iso images in a single run
-# (*) or you run myplc rpm, but need to customize the bootcd image,
-#     because the myplc rpm does not come with the required sources
-
-# See usage for full details
-
-######## Implementation note
-# in a former release it was possible to perform faster by
-# loopback-mounting the generic iso image
-# Unfortunately mkisofs cannot graft a file that already exists on the
-# original tree (so overlay.img cannot be overridden)
-# to make things worse we cannot loopback-mount the cpio-gzipped
-# overlay image either, so all this stuff is way more complicated
-# than it used to be.
-#
-# as of 2006 jun 28 we use a third image named custom.img for
-# overriding files in bootcd.img, which let us use bootcd.img intact
-# and thus notably speeds things up 
-#
-######## Logic
-# here is how we do this
-# for efficiency, we do only once:
-#   (*) mount the generic iso
-#   (*) copy it into a temp dir
-#   (*) unzip/unarchive overlay image into another temp dir
-#   (*) if required prepare a custom.img 
-# then for each node, we
-#   (*) insert plnode.txt at the right place if not a default iso
-#   (*) rewrap a gzipped/cpio overlay.img, that we push onto the
-#       copied iso tree
-#   (*) rewrap this into an iso image
-# and cleanup/umount everything 
-
-
-set -e 
-COMMANDSH=$(basename $0)
-COMMAND=$(basename $0 .sh)
-REVISION="$Id$"
-
-function usage () {
-
-   echo "Usage: $COMMANDSH [-f] [ -c bootcd-dir] generic-iso node-config [.. node-configs]"
-   echo " Creates a node-specific ISO image"
-   echo "*Options"
-   echo -e " -f\r\t\tForces overwrite of output iso images"
-   echo -e " -c bootcd-dir\r\t\tis taken as the root of a set of custom bootcd files"
-   echo -e "\t\ti.e. the files under dir take precedence"
-   echo -e "\t\tover the ones in the generic bootcd"
-   echo "*Arguments"
-   echo -e " generic-iso\r\t\tThe iso image as downloaded from myplc"
-   echo -e "\t\ttypically in /plc/data/var/www/html/download/"
-   echo -e " node-config(s)\r\t\tnode config files (plnode.txt format)"
-   echo -e " default\r\t\tmentioned instead of a plnode.txt file, for generating"
-   echo -e "\t\ta node-independent iso image"
-   echo -e "\t\tThis is defaultbehaviour when no node-config are provided"
-   echo "*Outputs"
-   echo " node-specific iso images are named after nodename[-bootcd-dir].iso"
-   echo " node-independant iso image is named after bootcd-dir.iso"
-   echo "*Examples"
-   echo "# $COMMANDSH -c onelab-bootcd /plc/data/var/www/html/download/onelab-BootCD-3.3.iso"
-   echo "  Creates onelab-bootcd.iso that has no plnode.txt embedded and that uses"
-   echo "  the hw init scripts located under onelab-bootcd/etc/rc.d/init.d/"
-   echo "# $COMMANDSH  /plc/data/var/www/html/download/onelab-BootCD-3.3.iso node1.txt node2.txt"
-   echo "  Creates node1.iso and node2.iso that have plnode.txt embedded for these two nodes"
-   echo "  and the standard bootcd"
-   echo "*Version $REVISION"
-   exit 1
-}
-
-### read config file in a subshell and echoes host_name
-function host_name () {
-  export CONFIG=$1; shift
-  ( . "$CONFIG" ; echo $HOST_NAME )
-}
-
-### Globals
-PLNODE_PATH=/usr/boot
-PLNODE=plnode.txt
-DEFAULT_TARGET=default
-# defined on the command-line
-CUSTOM_DIR=
-## arg-provided generic iso
-ISO_GENERIC=
-# node-dep conf file
-NODE_CONFIG=
-# resulting iso image and log
-NODE_ISO=
-NODE_LOG=
-## mount points and temps
-ISO_MOUNT=/tmp/$COMMAND-$$-mount
-ISO_ROOT=/tmp/$COMMAND-$$-iso
-OVERLAY_ROOT=/tmp/$COMMAND-$$-overlay
-# node-dep cpio/gzip image
-NODE_OVERLAY=
-
-CPIO_OARGS="-oc --quiet"
-CPIO_IARGS="-id --quiet"
-CPIO_PARGS="-pdu --quiet"
-
-# export DEBUG=true
-# for enabling debug messages (set -x)
-
-# export VERBOSE=true for enabling this
-function verbose () {
-   if [ -n "$VERBOSE" ] ; then
-     echo "$@"
-   fi
- }
-
-function message () { echo -e "$COMMAND : $@" ; }
-function message-n () { echo -en "$COMMAND : $@" ; }
-function message-done () { echo Done ; }
-function error () { echo -e "$COMMAND : ERROR $@ - exiting" ; exit 1 ;}
-
-# lazy startup
-STARTED_UP=
-function startup () {
-
-   [[ -n "$DEBUG" ]] && set -x
-
-   # lazy : run only once
-   [[ -n "$STARTED_UP" ]] && return
-   message "lazy start up"
-
-   ### checking
-   [ ! -f "$ISO_GENERIC" ] && error "Could not find template ISO image"
-   [ -d "$ISO_MOUNT" ] && error "$ISO_MOUNT already exists" 
-   [ -d "$ISO_ROOT" ] && error "$ISO_ROOT already exists" 
-   [ -d "$OVERLAY_ROOT" ] && error "$OVERLAY_ROOT already exists"
-
-   verbose "Creating temp dirs"
-   mkdir -p $ISO_MOUNT $ISO_ROOT $OVERLAY_ROOT
-   verbose "Mounting generic ISO $ISO_GENERIC under $ISO_MOUNT"
-   mount -o ro,loop $ISO_GENERIC $ISO_MOUNT
-
-   ### DONT!! use tar for duplication
-   message "Duplicating ISO image in $ISO_ROOT"
-   (cd $ISO_MOUNT ; find . | cpio $CPIO_PARGS  $ISO_ROOT )
-
-   message "Extracting generic overlay image in $OVERLAY_ROOT"
-   gzip -d -c "$ISO_ROOT/overlay.img" | ( cd "$OVERLAY_ROOT" ; cpio $CPIO_IARGS )
-
-   if [ -n "$CUSTOM_DIR" ] ; then
-     [ -d "$CUSTOM_DIR" ] || error "Directory $CUSTOM_DIR not found"
-     prepare_custom_image
-   fi
-
-   STARTED_UP=true
-
-}   
-
-function prepare_custom_image () {
-
-   # Cleaning any sequel
-   rm -f custom.img
-   [ -f custom.img ] && error "Could not cleanup custom.img"
-   
-   message "WARNING : You are creating *custom* boot CDs"
-
-   message-n "Creating $ISO_ROOT/custom.img"
-   (cd $CUSTOM_DIR ; find . | cpio $CPIO_OARGS) | gzip -9 > $ISO_ROOT/custom.img
-   message-done
-   
-}
-
-function node_cleanup () {
-   verbose "Cleaning node-dependent cpio image"
-   rm -rf "$NODE_OVERLAY"
-  
-}
-
-function cleanup () {
-
-   echo "$COMMAND : cleaning up"
-   [[ -n "$DEBUG" ]] && set -x
-
-   verbose "Cleaning overlay image"
-   rm -rf "$OVERLAY_ROOT"
-   verbose "Cleaning ISO image"
-   rm -rf "$ISO_ROOT"
-   verbose "Cleaning node-dep overlay image"
-   rm -f "$NODE_OVERLAY"
-   verbose "Unmounting $ISO_MOUNT"
-   umount "$ISO_MOUNT" 2> /dev/null
-   rmdir "$ISO_MOUNT"
-   exit
-}
-
-function abort () {
-   echo "$COMMAND : Aborting"
-   message "Cleaning $NODE_ISO"
-   rm -f "$NODE_ISO"
-   cleanup
-}
-
-function main () {
-
-   trap abort int hup quit err
-   set -e
-
-   [[ -n "$DEBUG" ]] && set -x
-
-   # accept -b as -c, I am used to it now
-   while getopts "c:b:fh" opt ; do
-     case $opt in
-       c|b)
-        CUSTOM_DIR=$OPTARG ;;
-       f)
-        FORCE_OUTPUT=true ;;
-       h|*)
-        usage ;;
-     esac
-   done
-
-   shift $(($OPTIND-1))
-   
-   [[ -z "$@" ]] && usage
-   ISO_GENERIC=$1; shift
-
-   if [[ -z "$@" ]] ; then
-     nodes="$DEFAULT_TARGET"
-   else
-     nodes="$@"
-   fi
-
-#  perform that later (lazily)
-#  so that (1st) node-dep checking are done before we bother to unpack
-#   startup
-
-   for NODE_CONFIG in $nodes ; do
-
-     if [ "$NODE_CONFIG" = "$DEFAULT_TARGET" ] ; then
-       NODE_DEP=""
-       # default node without customization does not make sense
-       if [ -z "$CUSTOM_DIR" ] ; then
-        message "creating a non-custom node-indep. image refused\n(Would have no effect)"
-        continue
-       else
-        NODENAME=$DEFAULT_TARGET
-        NODEOUTPUT=$(basename $CUSTOM_DIR)
-       fi
-     else
-       NODE_DEP=true
-       NODENAME=$(host_name $NODE_CONFIG)
-       if [ -z "$NODENAME" ] ; then
-        message "HOST_NAME not found in $NODE_CONFIG - skipped"
-        continue
-       fi
-       if [ -z "$CUSTOM_DIR" ] ; then
-        NODEOUTPUT=$NODENAME
-       else
-        NODEOUTPUT=${NODENAME}-$(basename $CUSTOM_DIR)
-       fi
-     fi
-
-     message "$COMMAND : dealing with node $NODENAME"
-
-     NODE_ISO="$NODEOUTPUT.iso"
-     NODE_LOG="$NODEOUTPUT.log"
-
-     ### checking
-     if [ -e  "$NODE_ISO" ] ; then
-       if [ -n "$FORCE_OUTPUT" ] ; then
-        message "$NODE_ISO exists, will overwrite (-f)"
-        rm $NODE_ISO
-       else
-        message "$NODE_ISO exists, please remove first - skipped" ; continue
-       fi
-     fi
-     if [ -n "$NODE_DEP" -a ! -f "$NODE_CONFIG" ] ; then
-       message "Could not find node-specifig config - skipped" ; continue
-     fi
-     
-     startup
-
-     if [ -n "$NODE_DEP" ] ; then
-       verbose "Pushing node config into overlay image"
-       mkdir -p $OVERLAY_ROOT/$PLNODE_PATH
-       cp "$NODE_CONFIG" $OVERLAY_ROOT/$PLNODE_PATH/$PLNODE
-     else
-       verbose "Cleaning node config for node-indep. image"
-       rm -f $OVERLAY_ROOT/$PLNODE_PATH/$PLNODE
-     fi
-
-     echo "$COMMAND : Creating overlay image for $NODENAME"
-     (cd "$OVERLAY_ROOT" ; find . | cpio $CPIO_OARGS) | gzip -9 > $ISO_ROOT/overlay.img
-
-     message "Refreshing isolinux.cfg"
-     # Calculate ramdisk size (total uncompressed size of both archives)
-
-     ##########
-     # N.B. Thierry Parmentelat - 2006-06-28
-     # the order in which these images need to be mentioned here for
-     # isolinux involved some - not so educated - guesses
-     # as per syslinux source code in syslinux/runkernel.inc, the
-     # config file is parsed left to right, and indeed it's in that
-     # order that the files are loaded right off the CD
-     # This does not tell however, in case a given file is present in
-     # two different images - and that's the very purpose here - which
-     # one will take precedence over the other
-     # I came up with this order on a trial-and-error basis, I would
-     # have preferred to find it described somewhere
-     # Might be worth checking with other versions of syslinux in case
-     # the custom files would turn out to not be taken into account
-     ##########
-
-     if [ -n "$CUSTOM_DIR" ] ; then
-       images="bootcd.img custom.img overlay.img"
-     else
-       images="bootcd.img overlay.img"
-     fi
-     
-     ramdisk_size=$(cd $ISO_ROOT ; gzip -l $images | tail -1 | awk '{ print $2; }') # bytes
-     # keep safe, provision for cpio's block size
-     ramdisk_size=$(($ramdisk_size / 1024 + 1)) # kilobytes
-
-     initrd_images=$(echo "$images" | sed -e 's/ /,/g')
-     # Write isolinux configuration
-     cat > $ISO_ROOT/isolinux.cfg <<EOF
-DEFAULT kernel
-APPEND ramdisk_size=$ramdisk_size initrd=$initrd_images root=/dev/ram0 rw
-DISPLAY pl_version
-PROMPT 0
-TIMEOUT 40
-EOF
-
-     message-n "Writing custom image, log on $NODE_LOG .. "
-     mkisofs -o "$NODE_ISO" -R -allow-leading-dots -J -r -b isolinux.bin \
-     -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \
-     "$ISO_ROOT" > "$NODE_LOG" 2>&1
-     message-done
-   
-     node_cleanup
-     
-     message "CD ISO image for $NODENAME in $NODE_ISO"
-   done
-
-   cleanup
-
-}
-
-####################
-main "$@"
diff --git a/newbuild.sh b/newbuild.sh
deleted file mode 100755 (executable)
index 66b5010..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/bin/bash
-#
-# Builds custom BootCD ISO and USB images in the current
-# directory.
-#
-# Mark Huang <mlhuang@cs.princeton.edu>
-# Copyright (C) 2004-2006 The Trustees of Princeton University
-#
-# $Id$
-#
-
-PATH=/sbin:/bin:/usr/sbin:/usr/bin
-
-BOOTCD_VERSION=4.0
-
-if [ -f /etc/planetlab/plc_config ] ; then
-    # Source PLC configuration
-    . /etc/planetlab/plc_config
-else
-    echo "Could not find /etc/planetlab/plc_config."
-    echo "This file defines the configuration of your PlanetLab installation."
-    exit 1
-fi
-
-# This support for backwards compatibility can be taken out in the
-# future. RC1 based MyPLCs set $PLC_BOOT_SSL_CRT in the plc_config
-# file, but >=RC2 based bootcd assumes that $PLC_BOOT_CA_SSL_CRT is
-# set.
-if [ -z "$PLC_BOOT_CA_SSL_CRT" -a ! -z "$PLC_BOOT_SSL_CRT" ] ; then
-    PLC_BOOT_CA_SSL_CRT=$PLC_BOOT_SSL_CRT
-    PLC_API_CA_SSL_CRT=$PLC_API_SSL_CRT
-fi
-
-output="$PLC_NAME-BootCD-$BOOTCD_VERSION.iso"
-
-usage()
-{
-    echo "Usage: build.sh [OPTION]..."
-    eceho "    -o file         Output file (default: $output)"
-    echo "     -h              This message"
-    exit 1
-}
-
-# Get options
-while getopts "o:h" opt ; do
-    case $opt in
-       o)
-           output=$OPTARG
-           ;;
-       h|*)
-           usage
-           ;;
-    esac
-done
-
-FULL_VERSION_STRING="$PLC_NAME BootCD $BOOTCD_VERSION"
-echo "* Building image for $FULL_VERSION_STRING"
-
-# Do not tolerate errors
-set -e
-
-# Change to our source directory
-srcdir=$(cd $(dirname $0) && pwd -P)
-pushd $srcdir >/dev/null
-
-# Root of the isofs
-isofs=$PWD/isofs
-
-# Miscellaneous files
-misc=$(mktemp -d /tmp/misc.XXXXXX)
-trap "rm -rf $misc" ERR INT
-
-# initramfs requires that /init be present
-ln -sf /sbin/init $misc/init
-
-# Create version file
-echo "$FULL_VERSION_STRING" >$misc/.bootcd
-
-# Install GPG, boot, and API server public keys and certificates
-install -D -m 644 $PLC_ROOT_GPG_KEY_PUB $misc/$PLC_ROOT_GPG_KEY_PUB
-install -D -m 644 $PLC_BOOT_CA_SSL_CRT $misc/$PLC_BOOT_CA_SSL_CRT
-install -D -m 644 $PLC_API_CA_SSL_CRT $misc/$PLC_API_CA_SSL_CRT
-
-cat > $misc/etc/planetlab/plc_config <<EOF
-PLC_ROOT_GPG_KEY_PUB='$PLC_ROOT_GPG_KEY_PUB'
-
-PLC_BOOT_HOST='$PLC_BOOT_HOST'
-PLC_BOOT_IP='$PLC_BOOT_IP'
-PLC_BOOT_PORT=$PLC_BOOT_PORT
-PLC_BOOT_SSL_PORT=$PLC_BOOT_SSL_PORT
-PLC_BOOT_CA_SSL_CRT='$PLC_BOOT_CA_SSL_CRT'
-
-PLC_API_HOST='$PLC_API_HOST'
-PLC_API_IP='$PLC_API_IP'
-PLC_API_PORT=$PLC_API_PORT
-PLC_API_PATH='$PLC_API_PATH'
-PLC_API_CA_SSL_CRT='$PLC_API_CA_SSL_CRT'
-EOF
-
-# Generate /etc/issue
-if [ "$PLC_WWW_PORT" = "443" ] ; then
-    PLC_WWW_URL="https://$PLC_WWW_HOST/"
-elif [ "$PLC_WWW_PORT" != "80" ] ; then
-    PLC_WWW_URL="http://$PLC_WWW_HOST:$PLC_WWW_PORT/"
-else
-    PLC_WWW_URL="http://$PLC_WWW_HOST/"
-fi
-
-mkdir -p $misc/etc
-cat >$misc/etc/issue <<EOF
-$FULL_VERSION_STRING
-$PLC_NAME Node: \n
-Kernel \r on an \m
-$PLC_WWW_URL
-
-This machine is a node in the $PLC_NAME distributed network.  It has
-not fully booted yet. If you have cancelled the boot process at the
-request of $PLC_NAME Support, please follow the instructions provided
-to you. Otherwise, please contact $PLC_MAIL_SUPPORT_ADDRESS.
-
-Console login at this point is restricted to root. Provide the root
-password of the default $PLC_NAME Central administrator account at the
-time that this CD was created.
-
-EOF
-
-# Pack miscellaneous files into a compressed archive
-echo "* Compressing miscellaneous files image"
-(cd $misc && find . | cpio --quiet -H newc -o) | \
-    python ../filesystem/cpiochown.py --owner root:root - | \
-    gzip -9 >$isofs/misc.img
-
-rm -rf $misc
-trap - ERR INT
-
-# Calculate ramdisk size (total uncompressed size of all initrds)
-ramdisk_size=$(gzip -l $isofs/*.img | tail -1 | awk '{ print $2; }') # bytes
-ramdisk_size=$((($ramdisk_size + 1023) / 1024)) # kilobytes
-
-# Write isolinux configuration
-echo "$FULL_VERSION_STRING" >$isofs/version
-cat >$isofs/isolinux.cfg <<EOF
-DEFAULT kernel
-APPEND ramdisk_size=$ramdisk_size initrd=base.img,bootcd.img,misc.img root=/dev/ram0 rw console=tty0
-DISPLAY version
-PROMPT 0
-TIMEOUT 40
-EOF
-
-popd >/dev/null
-
-# Create ISO image
-echo "* Creating ISO image"
-mkisofs -o "$output" \
-    -R -allow-leading-dots -J -r \
-    -b isolinux.bin -c boot.cat \
-    -no-emul-boot -boot-load-size 4 -boot-info-table \
-    $isofs
-
-# XXX Create USB image
-
-exit 0