X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.sh;h=63755032d8eceac6746e09671f92473d0fe35bc9;hb=refs%2Fheads%2F4.3;hp=96a9c4f66a36f90064c32de9bde058a118062a2f;hpb=3834eaaccbce1bba6c1e66e14c340c6ac71b2e4f;p=myplc.git diff --git a/build.sh b/build.sh index 96a9c4f..6375503 100755 --- a/build.sh +++ b/build.sh @@ -6,112 +6,67 @@ # Fedora environment with the appropriate development packages # installed). # -# root.img (loopback image) -# root/ (mount point) -# data/ (various data files) -# data/etc/planetlab/ (configuration files) -# data/root (root's homedir) -# -# Mark Huang # Marc E. Fiuczynski -# Copyright (C) 2006-2007 The Trustees of Princeton University +# Copyright (C) 2007 The Trustees of Princeton University # -# $Id: build.sh,v 1.41.2.1 2007/08/30 16:39:08 mef Exp $ +# $Id$ # . build.functions -# These directories are allowed to grow to unspecified size, so they -# are stored as symlinks to the /data partition. mkfedora and yum -# expect some of them to be real directories, however. -datadirs=( -/etc/planetlab -/root -/var/lib/pgsql -/var/www/html/alpina-logs -/var/www/html/boot -/var/www/html/download -/var/www/html/files -/var/www/html/sites -/var/www/html/generated -/var/www/html/install-rpms -/var/www/html/xml -/tmp -/usr/tmp -/var/tmp -/var/log -) - -pl_fixdirs root "${datadirs[@]}" - -echo "* myplc: Installing base filesystem" -mkdir -p root data -make_chroot root plc_config.xml +# XXX .spec file needs to have the appropriate set of requires statements # Install configuration scripts -echo "* myplc: Installing configuration scripts" -install -D -m 755 plc_config.py root/tmp/plc_config.py -chroot root sh -c 'cd /tmp; python plc_config.py build; python plc_config.py install' -install -D -m 755 plc-config root/usr/bin/plc-config -install -D -m 755 plc-config-tty root/usr/bin/plc-config-tty -install -D -m 755 db-config root/usr/bin/db-config -install -D -m 755 dns-config root/usr/bin/dns-config +echo "* myplc-native: Installing configuration scripts" +pldistro=$1; shift +RPM_BUILD_ROOT=$1 ; shift +PYTHON_SITEARCH=`python -c 'from distutils.sysconfig import get_python_lib; print get_python_lib(1)'` +rm -rf ${RPM_BUILD_ROOT} +mkdir -p ${RPM_BUILD_ROOT} +echo "* myplc-native: installing plc_config.py in " ${PYTHON_SITEARCH} +install -D -m 755 plc_config.py ${RPM_BUILD_ROOT}/${PYTHON_SITEARCH}/plc_config.py +install -D -m 644 bashrc ${RPM_BUILD_ROOT}/usr/share/myplc/bashrc +echo "* myplc-native: installing scripts in /usr/bin" +install -D -m 755 plc-config ${RPM_BUILD_ROOT}/usr/bin/plc-config +install -D -m 755 plc-config-tty ${RPM_BUILD_ROOT}/usr/bin/plc-config-tty +install -D -m 755 db-config ${RPM_BUILD_ROOT}/usr/bin/db-config +install -D -m 755 dns-config ${RPM_BUILD_ROOT}/usr/bin/dns-config +install -D -m 755 plc-map.py ${RPM_BUILD_ROOT}/usr/bin/plc-map.py +install -D -m 755 plc-kml.py ${RPM_BUILD_ROOT}/usr/bin/plc-kml.py +install -D -m 755 refresh-peer.py ${RPM_BUILD_ROOT}/usr/bin/refresh-peer.py +install -D -m 755 clean-empty-dirs.py ${RPM_BUILD_ROOT}/usr/bin/clean-empty-dirs.py +install -D -m 755 mtail.py ${RPM_BUILD_ROOT}/usr/bin/mtail.py +install -D -m 755 plc-check-ssl-peering.py ${RPM_BUILD_ROOT}/usr/bin/plc-check-ssl-peering.py +install -D -m 755 plc-orphan-accounts.py ${RPM_BUILD_ROOT}/usr/bin/plc-orphan-accounts.py + +# Extra scripts (mostly for mail and dns) not installed by myplc by default. Used in production +echo "* myplc-native: installing scripts in /etc/support-scripts" +mkdir -p ${RPM_BUILD_ROOT}/etc/support-scripts +cp support-scripts/* ${RPM_BUILD_ROOT}/etc/support-scripts +chmod 444 ${RPM_BUILD_ROOT}/etc/support-scripts/* + +# copy initscripts to etc/plc_sliceinitscripts +mkdir -p ${RPM_BUILD_ROOT}/etc/plc_sliceinitscripts +cp plc_sliceinitscripts/* ${RPM_BUILD_ROOT}/etc/plc_sliceinitscripts +chmod 444 ${RPM_BUILD_ROOT}/etc/plc_sliceinitscripts/* # Install initscripts -echo "* myplc: Installing initscripts" -find plc.d | cpio -p -d -u root/etc/ -install -D -m 755 guest.init root/etc/init.d/plc -chroot root sh -c 'chkconfig --add plc; chkconfig plc on' - -# Install web scripts -echo "* myplc: Installing web scripts" -mkdir -p root/usr/bin -install -m 755 \ - $srcdir/plc/scripts/gen-sites-xml.py \ - $srcdir/plc/scripts/gen-slices-xml-05.py \ - $srcdir/plc/scripts/gen-static-content.py \ - root/usr/bin/ - -# Install web pages -echo "* myplc: Installing web pages" -mkdir -p root/var/www/html -rsync -a $srcdir/new_plc_www/ root/var/www/html/ - -# Install Drupal rewrite rules -install -D -m 644 $srcdir/new_plc_www/drupal.conf root/etc/httpd/conf.d/drupal.conf +echo "* myplc-native: Installing initscripts" +install -D -m 755 plc.init ${RPM_BUILD_ROOT}/etc/init.d/plc +find plc.d | cpio -p -d -u ${RPM_BUILD_ROOT}/etc/ +chmod 755 ${RPM_BUILD_ROOT}/etc/plc.d/* # Install configuration file echo "* myplc: Installing configuration file" -install -D -m 444 $config 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 -echo "* myplc: Moving data directories out of the installation" -pl_move_dirs root data /data "${datadirs[@]}" - -# Fix permissions on tmp directories -pl_fixtmp_permissions data - -# Remove generated bootmanager script -rm -f data/var/www/html/boot/bootmanager.sh +install -D -m 444 default_config.xml ${RPM_BUILD_ROOT}/etc/planetlab/default_config.xml +install -D -m 444 plc_config.dtd ${RPM_BUILD_ROOT}/etc/planetlab/plc_config.dtd -# 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 $pl_YUMGROUPSXML \ - data/var/www/html/install-rpms/planetlab/yumgroups.xml +# Install db-config.d files +echo "* myplc: Installing db-config.d files" +mkdir -p ${RPM_BUILD_ROOT}/etc/planetlab/db-config.d +cp db-config.d/* ${RPM_BUILD_ROOT}/etc/planetlab/db-config.d +chmod 444 ${RPM_BUILD_ROOT}/etc/planetlab/db-config.d/* -# Make image out of directory -echo "* myplc: Building loopback image" -pl_make_image root root.img 100000000 +# yumgroups.xml and yum repo : let noderepo handle that exit 0