cleanup ctd
[bootcd.git] / prep.sh
diff --git a/prep.sh b/prep.sh
index 1ffcc76..6c58fae 100755 (executable)
--- a/prep.sh
+++ b/prep.sh
@@ -8,7 +8,7 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2004-2006 The Trustees of Princeton University
 #
-# $Id: build.sh,v 1.5 2006/03/29 17:08:45 mlhuang Exp $
+# $Id$
 #
 
 PATH=/sbin:/bin:/usr/sbin:/usr/bin
@@ -26,79 +26,12 @@ fi
 
 export PATH
 
-# Release and architecture to install
-releasever=2
-basearch=i386
-
-# Packages to install
-packagelist=(
-dev
-dhclient
-bash
-coreutils
-iputils
-kernel
-bzip2
-diffutils
-logrotate
-openssh-clients
-passwd
-rsh
-rsync
-sudo
-tcpdump
-telnet
-traceroute
-time
-wget
-yum
-curl
-gzip
-python
-tar
-pciutils
-kbd
-authconfig
-hdparm
-lvm
-lvm2
-kexec-tools
-gnupg
-nano
-parted
-pyparted
-openssh-server
-openssh-clients
-ncftp
-dosfstools
-dos2unix
-bind-utils
-sharutils
-)
-
-usage()
-{
-    echo "Usage: prep.sh [OPTION]..."
-    echo "     -r release      Fedora release number (default: $releasever)"
-    echo "     -a arch         Fedora architecture (default: $basearch)"
-    echo "     -h              This message"
-    exit 1
-}
-
-# Get options
-while getopts "r:a:h" opt ; do
-    case $opt in
-       r)
-           releasever=$OPTARG
-           ;;
-       a)
-           basearch=$OPTARG
-           ;;
-       h|*)
-           usage
-           ;;
-    esac
-done
+. build.common
+
+pldistro=$1 ; shift
+nodefamily=$1; shift
+
+# Packages to install, junk and precious : see build/<pldistro>/bootcd.pkgs
 
 # Do not tolerate errors
 set -e
@@ -108,41 +41,39 @@ bootcd=$PWD/build/bootcd
 install -d -m 755 $bootcd
 
 # Write version number
-rpmquery --specfile bootcd.spec --queryformat '%{VERSION}\n' | head -1 >build/version.txt
+rpmquery --specfile bootcd.spec --queryformat '%{VERSION}\n' | head -1 > build/version.txt
+echo $nodefamily > build/nodefamily
 
 # Install base system
-for package in "${packagelist[@]}" ; do
-    packages="$packages -p $package"
-done
-mkfedora -v -r $releasever -a $basearch $packages $bootcd
+pl_root_makedevs $bootcd
+pkgsfile=$(pl_locateDistroFile ../build/ $pldistro bootcd.pkgs) 
+pl_root_mkfedora $bootcd $pldistro $pkgsfile
+pl_root_tune_image $bootcd
 
-# Disable all services in reference image
-chroot $bootcd sh -c "/sbin/chkconfig --list | awk '{ print \$1 }' | xargs -i /sbin/chkconfig {} off"
+# Install ipnmac (for SuperMicro machines with IPMI)
+echo "* Installing IPMI utilities"
+install -D -m 755 ipnmac/ipnmac.x86 $bootcd/usr/sbin/ipnmac
 
 # Install configuration files
 echo "* Installing configuration files"
 for file in fstab mtab modprobe.conf inittab hosts sysctl.conf ; do
-    install -D -m 644 conf_files/$file $bootcd/etc/$file
+    install -D -m 644 etc/$file $bootcd/etc/$file
 done
 
 # Install initscripts
 echo "* Installing initscripts"
 for file in pl_sysinit pl_hwinit pl_netinit pl_validateconf pl_boot ; do
-    install -D -m 755 conf_files/$file $bootcd/etc/init.d/$file
+    install -D -m 755 initscripts/$file $bootcd/etc/init.d/$file
 done
 
+# Write nodefamily stamp, to help bootmanager do the right thing
+mkdir -p $bootcd/etc/planetlab
+echo $nodefamily > $bootcd/etc/planetlab/nodefamily
+
 # Install fallback node configuration file
 echo "* Installing fallback node configuration file"
 install -D -m 644 conf_files/default-net.cnf $bootcd/usr/boot/default-net.cnf
 
-# Build pcitable for hardware detection
-echo "* Building pcitable for hardware detection"
-pci_map_file=$(find $bootcd/lib/modules/ -name modules.pcimap | head -1)
-module_dep_file=$(find $bootcd/lib/modules/ -name modules.dep | head -1)
-pci_table=$bootcd/usr/share/hwdata/pcitable
-$srcdir/bootmanager/source/merge_hw_tables.py \
-    $module_dep_file $pci_map_file $pci_table $bootcd/etc/pl_pcitable
-
 # Copy /etc/passwd out
 install -D -m 644 $bootcd/etc/passwd build/passwd
 
@@ -157,19 +88,14 @@ for kernel in $bootcd/boot/vmlinuz-* ; do
     fi
 done
 
+# Don't need /boot anymore
+rm -rf $bootcd/boot
+
 # initramfs requires that /init be present
 ln -sf /sbin/init $bootcd/init
 
 # Pack the rest into a compressed archive
 echo "* Compressing reference image"
-(cd $bootcd && find . | cpio --quiet -c -o) | gzip -9 >$isofs/bootcd.img
-
-# Build syslinux
-echo "* Building syslinux"
-CFLAGS="-Werror -Wno-unused -finline-limit=2000" make -C syslinux
-
-# Install isolinux
-echo "* Installing isolinux"
-install -D -m 644 syslinux/isolinux.bin $isofs/isolinux.bin
+(cd $bootcd && find . | cpio --quiet -c -o) | gzip -9 > $isofs/bootcd.img
 
 exit 0