X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=support-files%2Fbuildnode.sh;h=e4a3e54beb2e03af33b0153655380eaebb8f9d42;hb=88cfdd881bbd5191eaaf6408e0b8d57bfdf51438;hp=ba0884003ea429b5012db0b5c7522dfe50711f86;hpb=c872023bca88133190e1b9b1679c12460a0fe08d;p=bootmanager.git diff --git a/support-files/buildnode.sh b/support-files/buildnode.sh index ba08840..e4a3e54 100755 --- a/support-files/buildnode.sh +++ b/support-files/buildnode.sh @@ -1,125 +1,88 @@ #!/bin/bash # # Build PlanetLab-Bootstrap.tar.bz2, the reference image for PlanetLab -# nodes. Requires the web and boot servers to be up, which complicates -# bootstrap. Alternatively, we could require the build server to host -# a local yum repository. Already, it is required to run the same -# major version of yum as the nodes. +# nodes. # # Mark Huang -# Copyright (C) 2005 The Trustees of Princeton University +# Copyright (C) 2005-2006 The Trustees of Princeton University # -# $Id$ +# $Id: buildnode.sh,v 1.9 2006/04/11 20:34:14 mlhuang Exp $ # -# Get the URL for the production /etc/yum.conf file. XXX When MAs -# begin deploying their own boot servers and/or code, this will have -# to change. -YUM_CONF=http://boot.planet-lab.org/$(curl --silent --insecure --form node_id=0 --form file=/etc/yum.conf https://boot.planet-lab.org/db/plnodeconf/getsinglefile.php) +PATH=/sbin:/bin:/usr/sbin:/usr/bin + +# In both a normal CVS environment and a PlanetLab RPM +# build environment, all of our dependencies are checked out into +# directories at the same level as us. +if [ -d ../../build ] ; then + PATH=$PATH:../../build + srcdir=../.. +else + echo "Error: Could not find $(cd ../.. && pwd -P)/build/" + exit 1 +fi -# Make / -VROOT=$PWD/PlanetLab-Bootstrap -install -d -m 755 $VROOT +export PATH -MAKEDEV () +# Release and architecture to install +releasever=2 +basearch=i386 + +usage() { - rm -rf $VROOT/dev - mkdir -p $VROOT/dev - mknod -m 666 $VROOT/dev/null c 1 3 - mknod -m 666 $VROOT/dev/zero c 1 5 - mknod -m 666 $VROOT/dev/full c 1 7 - mknod -m 644 $VROOT/dev/random c 1 8 - mknod -m 644 $VROOT/dev/urandom c 1 9 - mknod -m 666 $VROOT/dev/tty c 5 0 - mknod -m 666 $VROOT/dev/ptmx c 5 2 - # For bash command substitution - ln -nsf ../proc/self/fd /dev/fd - # For df and linuxconf - touch $VROOT/dev/hdv1 + 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 } -# Initialize /dev in reference image -MAKEDEV - -# Mount /dev/pts in reference image -mkdir -p $VROOT/dev/pts -mount -t devpts none $VROOT/dev/pts - -# Mount /proc in reference image -mkdir -p $VROOT/proc -mount -t proc none $VROOT/proc - -# Clean up before exiting if anything goes wrong -trap "umount $VROOT/proc ; umount $VROOT/dev/pts ; exit 255" ERR - -# Create a dummy /etc/fstab in reference image -mkdir -p $VROOT/etc -cat > $VROOT/etc/fstab < $VROOT/etc/rpm/macros <