%define name vserver-reference %define version 3.0 %define release 2.planetlab%{?date:.%{date}} Vendor: PlanetLab Packager: PlanetLab Central Distribution: PlanetLab 3.0 URL: http://www.planet-lab.org Summary: VServer reference image Name: %{name} Version: %{version} Release: %{release} Source0: %{name}-%{version}.tar.bz2 License: GPL Group: Applications/System BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot BuildArchitectures: noarch Requires: util-vserver, e2fsprogs, yum %description This package creates the virtual server (VServer) reference image used as the installation base for new PlanetLab slivers. %prep %setup -q %build %install rm -rf $RPM_BUILD_ROOT %clean rm -rf $RPM_BUILD_ROOT %post . /usr/lib/util-vserver/util-vserver-vars # Make /vservers mkdir -p $VROOTDIR chmod 000 $VROOTDIR chattr +t $VROOTDIR # Build image in /vservers/.vtmp mkdir -p $VROOTDIR/.vtmp VROOT=$(mktemp -d $VROOTDIR/.vtmp/vserver-reference.XXXXXX) # Make /vservers/.vtmp/vserver-reference.XXXXXX mkdir -p $VROOT chattr -t $VROOT chmod 755 $VROOT # Clean up before exiting if anything goes wrong set -e trap "umount $VROOT/proc ; umount $VROOT/dev/pts ; chattr -R -i $VROOT ; rm -rf $VROOT" EXIT MAKEDEV () { 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 touch $VROOT/dev/hdv1 } # 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 # Create a dummy /etc/fstab in reference image mkdir -p $VROOT/etc cat > $VROOT/etc/fstab < $VROOT/etc/rpm/macros < 3.0-2.planetlab - dynamically install reference image * Tue Sep 14 2004 Mark Huang 3.0-1.planetlab - initial build