X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.sh;h=dc003830309299144382defac93848a7a130f2a5;hb=refs%2Fheads%2F4.2;hp=f1ae4d856b3c517a8a7d8411c7ce4f975388183d;hpb=658e06ffbfdf63497af2de82520e055cd640805b;p=myplc.git diff --git a/build.sh b/build.sh index f1ae4d8..dc00383 100755 --- a/build.sh +++ b/build.sh @@ -1,15 +1,17 @@ #!/bin/bash # -# Builds MyPLC, either inside the MyPLC development environment in -# devel/root (if PLC_DEVEL_BOOTSTRAP is true), or in the current host -# environment (may be itself a MyPLC development environment or a -# Fedora Core 4 environment with the appropriate development packages -# installed). +# Builds MyPLC in the current host environment +# This is for the so-called chroot installation mode, meaning that +# the resulting rpm will install a full chroot image in /plc/root +# that can be run through chroot /plc/root +# This chroot mode is to be opposed to the native mode (see build-native.sh) +# that can be used in the host's root context or within a vserver # # root.img (loopback image) # root/ (mount point) # data/ (various data files) # data/etc/planetlab/ (configuration files) +# data/root (root's homedir) # # Mark Huang # Copyright (C) 2006 The Trustees of Princeton University @@ -19,77 +21,59 @@ . build.functions -# -# Build myplc inside myplc-devel. Infinite recursion is avoided only -# if PLC_DEVEL_BOOTSTRAP is false in the default configuration file. -# - -if [ "$PLC_DEVEL_BOOTSTRAP" = "true" ] ; then - # So that we don't pollute the actual myplc-devel image, we use - # the directory that was used to build the image instead of the - # image itself, and mount everything by hand. - mount -o bind,rw devel/data devel/root/data - mount -t proc none devel/root/proc - - # If we used a local mirror, bind mount it into the chroot so that - # we can use it again. - if [ "${PLC_DEVEL_FEDORA_URL:0:7}" = "file://" ] ; then - mkdir -p devel/root/usr/share/mirrors/fedora - mount -o bind,ro ${PLC_DEVEL_FEDORA_URL#file://} devel/root/usr/share/mirrors/fedora - fi - - # Clean up before exiting if anything goes wrong - trap "umount $PWD/devel/root/data; - umount $PWD/devel/root/proc; - umount $PWD/devel/root/usr/share/mirrors/fedora" ERR INT - - # Build myplc inside myplc-devel. Make sure PLC_DEVEL_BOOTSTRAP is - # false to avoid infinite recursion. - chroot devel/root su - < myplc-release + date >> myplc-release + echo "$HeadURL$" >> myplc-release +fi +# install it in /etc/myplc-release +install -m 444 myplc-release root/etc/myplc-release + +### Thierry Parmentelat - april 16 2007 +# fix the yum.conf as produced by mkfedora +# so we can use the build's fc4 mirror for various installs/upgrades +# within the chroot jail +# yum_conf_to_build_host is defined in build.functions +yum_conf_to_build_host ../build > root/etc/yum.conf + +### Thierry Parmentelat - may 8 2008 +# no doc built in this old-fashioned packaging anymore +# use myplc-docs instead # Install configuration file echo "* myplc: Installing configuration file" -install -D -m 444 $config data/etc/planetlab/default_config.xml +install -D -m 444 default_config.xml data/etc/planetlab/default_config.xml install -D -m 444 plc_config.dtd data/etc/planetlab/plc_config.dtd +# handle root's homedir and tweak root prompt +echo "* myplc: root's homedir and prompt" +roothome=data/root +mkdir -p $roothome +cat << EOF > $roothome/.profile +export PS1=" \$PS1" +EOF +chmod 644 $roothome/.profile + # Move "data" directories out of the installation -datadirs=( -/etc/planetlab -/var/lib/pgsql -/var/www/html/alpina-logs -/var/www/html/boot -/var/www/html/download -/var/www/html/generated -/var/www/html/install-rpms -/var/www/html/xml -) +echo "* myplc: Moving data directories out of the installation" +pl_move_dirs root data /data "${datadirs[@]}" -move_datadirs root data "${datadirs[@]}" +# Fix permissions on tmp directories +pl_fixtmp_permissions data # Remove generated bootmanager script rm -f data/var/www/html/boot/bootmanager.sh -# Initialize node RPMs directory. The PlanetLab-Bootstrap.tar.bz2 -# tarball already contains all of the node RPMs pre-installed. Only -# updates or optional packages should be placed in this directory. -install -D -m 644 ../build/groups/v3_yumgroups.xml \ - data/var/www/html/install-rpms/planetlab/yumgroups.xml +# yumgroups.xml and yum repo : let noderepo handle that # Make image out of directory echo "* myplc: Building loopback image" -make_image root root.img +pl_make_image root root.img 100000000 exit 0