X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.functions;h=a96e295ef66e50612eff65e37cc752acb0c81206;hb=df23d1d299155154813ad5d59c380956ded76af8;hp=e7623416b3adb3589596719c2240e4424f17d2f5;hpb=d58c319a61af9b089deed5d073169008e0c16954;p=myplc.git diff --git a/build.functions b/build.functions index e762341..a96e295 100644 --- a/build.functions +++ b/build.functions @@ -6,7 +6,7 @@ # Mark Huang # Copyright (C) 2006 The Trustees of Princeton University # -# $Id: build.functions,v 1.1 2006/07/17 21:31:31 mlhuang Exp $ +# $Id$ # PATH=/sbin:/bin:/usr/sbin:/usr/bin @@ -24,135 +24,59 @@ fi export PATH -# Release and architecture to install -PLC_DEVEL_FEDORA_RELEASE=4 -PLC_DEVEL_FEDORA_ARCH=i386 +. build.common -# Fedora Core mirror from which to install filesystems -PLC_DEVEL_FEDORA_URL=file:///usr/share/mirrors/fedora - -# Build myplc inside myplc-devel -PLC_DEVEL_BOOTSTRAP=true - -# Source tag to use for initial import of sources into local CVS -TAG=planetlab-$(date +%Y-%m-%d) +pl_process_fedora_options $@ +shiftcount=$? +shift $shiftcount +# XXX Backwards compatibility with old myplc-devel environment # We may be running inside a myplc-devel environment, which can -# override these defaults. Specifically, whether to build myplc inside -# myplc-devel (PLC_DEVEL_BOOTSTRAP). +# override these defaults. if [ -f /etc/planetlab/plc_config ] ; then . /etc/planetlab/plc_config + [ ! -z "$PLC_DEVEL_FEDORA_RELEASE" ] && pl_FEDORA_RELEASE=$PLC_DEVEL_FEDORA_RELEASE + [ ! -z "$PLC_DEVEL_FEDORA_ARCH" ] && pl_FEDORA_ARCH=$PLC_DEVEL_FEDORA_ARCH + [ ! -z "$PLC_DEVEL_FEDORA_URL" ] && pl_FEDORA_URL=$PLC_DEVEL_FEDORA_URL fi -usage() -{ - echo "Usage: $0 [OPTION]..." - echo " -l url Fedora mirror location (default: $PLC_DEVEL_FEDORA_URL)" - echo " -r release Fedora release number (default: $PLC_DEVEL_FEDORA_RELEASE)" - echo " -a arch Fedora architecture (default: $PLC_DEVEL_FEDORA_ARCH)" - echo " -t tag Source tag (default: $TAG)" - echo " -h This message" - exit 1 -} - -# Get options -while getopts "l:r:a:t:h" opt ; do - case $opt in - l) - PLC_DEVEL_FEDORA_URL=$OPTARG - ;; - r) - PLC_DEVEL_FEDORA_RELEASE=$OPTARG - ;; - a) - PLC_DEVEL_FEDORA_ARCH=$OPTARG - ;; - t) - TAG=$OPTARG - ;; - h|*) - usage - ;; - esac -done - # Do not tolerate errors set -e # Be verbose set -x -# Make a basic chroot at the specified location given the specified -# configuration. -make_chroot() { - root=$1 - config=$2 - - # Get group list - groups= - while read group ; do - groups="$groups -g \"$group\"" - done < <(./plc-config --groups $config) - - # Get package list - packages= - while read package ; do - packages="$packages -p \"$package\"" - done < <(./plc-config --packages $config) - - # Install base system - eval mkfedora -v -l $PLC_DEVEL_FEDORA_URL -r $PLC_DEVEL_FEDORA_RELEASE -a $PLC_DEVEL_FEDORA_ARCH $packages $groups $root - - # Disable all services in reference image - chroot $root sh -c "/sbin/chkconfig --list | awk '{ print \$1 }' | xargs -i /sbin/chkconfig {} off" - - # FC2 minilogd starts up during shutdown and makes unmounting - # impossible. Just get rid of it. - rm -f $root/sbin/minilogd - ln -nsf /bin/true $root/sbin/minilogd +# this is fragile, as the actual layout may vary from one mirror to the other +# however this should be in line with the layouts obtained +# when running build/vbuild-fedora-mirror.sh + +function yum_conf_to_build_host () { + build_dir=$1; shift + BUILD_HOST=$(hostname) + + cat <