# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2005-2006 The Trustees of Princeton University
#
-# $Id: buildnode.sh,v 1.5 2006/03/21 14:57:29 mlhuang Exp $
+# $Id: buildnode.sh,v 1.13 2007/08/30 20:08:25 mef Exp $
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH
-# Release and architecture to install
-releasever=2
-basearch=i386
+. build.common
-usage()
-{
- echo "Usage: build.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
+pl_process_fedora_options $@
+shiftcount=$?
+shift $shiftcount
# Do not tolerate errors
set -e
# Install the "PlanetLab" group. This requires that the PlanetLab
# build system install the appropriate yumgroups.xml file (currently
# build/groups/v3_yumgroups.xml) in $RPM_BUILD_DIR/../RPMS/ and that
-# mkfedora runs either yum-arch or createrepo on that directory.
-mkfedora -v -r $releasever -a $basearch -g PlanetLab $VROOT
+# mkfedora runs either yum-arch or createrepo on that directory. dev
+# is specified explicitly because of a stupid bug in its %post script
+# that causes its installation to fail; see the mkfedora script for a
+# full explanation. coreutils and python are specified explicitly
+# because groupinstall does not honor Requires(pre) dependencies
+# properly, most %pre scripts require coreutils to be installed first,
+# and some of our %post scripts require python.
+
+packagelist=(
+udev
+coreutils
+python
+)
+# vserver-reference packages used for reference image
+for package in "${packagelist[@]}" ; do
+ packages="$packages -p $package"
+done
+
+# Populate VROOT with the files for the PlanetLab-Bootstrap content
+pl_setup_chroot $VROOT -k $packages -g PlanetLab
-# Disable unnecessary services
+# Disable additional unnecessary services
echo "* Disabling unnecessary services"
for service in netfs rawdevices cpuspeed smartd ; do
- /usr/sbin/chroot $VROOT /sbin/chkconfig $service off
+ if [ -x $VROOT/etc/init.d/$service ] ; then
+ /usr/sbin/chroot $VROOT /sbin/chkconfig $service off
+ fi
done
# Build tarball
echo "* Building bootstrap tarball"
tar -cpjf PlanetLab-Bootstrap.tar.bz2 -C $VROOT .
-rm -rf $VROOT
exit 0