%define name vserver-reference
%define version 3.1
-%define release 1.planetlab%{?date:.%{date}}
+%define release 2.planetlab%{?date:.%{date}}
Vendor: PlanetLab
Packager: PlanetLab Central <support@planet-lab.org>
%setup -q
%build
-RPM_BUILD_DIR=$RPM_BUILD_DIR ./%{name}.init
+RPM_BUILD_DIR=$RPM_BUILD_DIR ./build.sh
%install
rm -rf $RPM_BUILD_ROOT
+install -D -m 755 %{name}.init $RPM_BUILD_ROOT/%{_initrddir}/%{name}
find vservers/vserver-reference | cpio -p -d -u $RPM_BUILD_ROOT/
# If run under sudo, allow user to delete the build directory
if [ -n "$SUDO_USER" ] ; then
chown -R $SUDO_USER .
+ # Some temporary cdroot files like /var/empty/sshd and
+ # /usr/bin/sudo get created with non-readable permissions.
+ find . -not -perm +0600 -exec chmod u+rw {} \;
fi
%clean
%files
%defattr(-,root,root)
+%{_initrddir}/%{name}
/vservers/vserver-reference
%define vcached_pid /var/run/vcached.pid
if [ -r %{vcached_pid} ] ; then
kill $(cat %{vcached_pid})
fi
-touch %{vcached_pid}
+echo $$ > %{vcached_pid}
# vcached will clean up .vtmp later
mkdir -p /vservers/.vtmp
mv /vservers/.vcache /vservers/.vtmp/.vcache.$RANDOM
fi
-%post
-VROOT=/vservers/vserver-reference
-
-# Make sure the barrier bit is set
-chmod 0000 /vservers
-setattr --barrier /vservers
-
-# Copy configuration files from host to reference image
-for file in /etc/hosts /etc/resolv.conf /etc/yum.conf ; do
- if [ -f $file ] ; then
- echo $file | cpio -p -d -u $VROOT
- fi
-done
-
-# Install and parse Management Authority (MA) configuration
-if [ -r /etc/planetlab/primary_ma ] ; then
- . /etc/planetlab/primary_ma
- install -D -m 644 /etc/planetlab/primary_ma $VROOT/etc/planetlab/primary_ma
-elif [ -d /mnt/cdrom/bootme/cacert ] ; then
- MA_NAME="PlanetLab Central"
- MA_BOOT_SERVER=$(head -1 /mnt/cdrom/bootme/BOOTSERVER)
- MA_BOOT_SERVER_CACERT=/mnt/cdrom/bootme/cacert/$MA_BOOT_SERVER/cacert.pem
- mkdir -p $VROOT/etc/planetlab
- cat > $VROOT/etc/planetlab/primary_ma <<EOF
-MA_NAME="$MA_NAME"
-MA_BOOT_SERVER="$MA_BOOT_SERVER"
-MA_BOOT_SERVER_CACERT="$MA_BOOT_SERVER_CACERT"
-EOF
-fi
-
-# Install boot server certificate
-install -D -m 644 $MA_BOOT_SERVER_CACERT $VROOT/$MA_BOOT_SERVER_CACERT
-
-# Also install in /mnt/cdrom/bootme for backward compatibility
-install -D -m 644 $MA_BOOT_SERVER_CACERT $VROOT/mnt/cdrom/bootme/cacert/$MA_BOOT_SERVER/cacert.pem
-echo $MA_BOOT_SERVER > $VROOT/mnt/cdrom/bootme/BOOTSERVER
-
# Allow vcached to run again
rm -f %{vcached_pid}
+%post
+chkconfig --add %{name}
+chkconfig %{name} on
+[ "$PL_BOOTCD" = "1" ] || service vserver-reference start
+
%changelog
* Tue Sep 1 2005 Mark Huang <mlhuang@cs.princeton.edu> 3.1-1.planetlab
- Pre-package vserver-reference instead of building it on nodes