naming .lst files after pldistro - including the <pldistro>-vservers directory
[sliceimage.git] / vserver-reference.spec
index 5170870..cdd7c04 100644 (file)
@@ -1,11 +1,11 @@
-%define name vserver-reference
-%define version 3.1
-%define release 3%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+%define name vserver
+%define version 4.2
+%define release 0%{?pldistro:.%{pldistro}}%{?date:.%{date}}
 
 Vendor: PlanetLab
 Packager: PlanetLab Central <support@planet-lab.org>
 
 Vendor: PlanetLab
 Packager: PlanetLab Central <support@planet-lab.org>
-Distribution: PlanetLab 3.0
-URL: http://cvs.planet-lab.org/cvs/vserver-reference
+Distribution: PlanetLab 4.0
+URL: https://svn.planet-lab.org/svn/VserverReference/
 
 Summary: VServer reference image
 Name: %{name}
 
 Summary: VServer reference image
 Name: %{name}
@@ -16,31 +16,48 @@ License: GPL
 Group: Applications/System
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
 Requires: util-vserver, e2fsprogs, yum
 Group: Applications/System
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
 Requires: util-vserver, e2fsprogs, yum
+Requires(pre): coreutils
 
 
-AutoReqProv: no
 %define debug_package %{nil}
 
 %description
 %define debug_package %{nil}
 
 %description
+This package does not really exist.
+
+%package reference
+Summary: VServer reference image
+Group: Applications/System
+AutoReqProv: no
+
+%description reference
 This package creates the virtual server (VServer) reference image used
 as the installation base for new PlanetLab slivers.
 
 This package creates the virtual server (VServer) reference image used
 as the installation base for new PlanetLab slivers.
 
+%package system-packages
+Summary: System slice packages
+Group: Applications/System
+Requires: vserver-reference >= %{version}-%{release}
+AutoReqProv: no
+
+%description system-packages
+This package installs the RPMS necessary to create system ("root
+resource") slices from the virtual server (VServer) reference image.
+
 %prep
 %setup -q
 
 %build
 %prep
 %setup -q
 
 %build
-pushd vserver-reference
-./build.sh -r 2
-# Not until we can get the build server to run Fedora Core 4 or an
-# updated version of yum.
-#./build.sh -r 4
+pushd VserverReference
+./build.sh %{pldistro}
 popd
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
 popd
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
-pushd vserver-reference
-install -D -m 755 %{name}.init $RPM_BUILD_ROOT/%{_initrddir}/%{name}
-find vservers/vserver-reference | cpio -p -d -u $RPM_BUILD_ROOT/
+pushd VserverReference
+install -D -m 755 vserver-reference.init $RPM_BUILD_ROOT/%{_initrddir}/vserver-reference
+install -D -m 644 vserver-reference.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/vserver-reference
+install -D -m 644 vserver-reference.logrotate $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/vserver-reference
+find vservers | cpio -p -d -u $RPM_BUILD_ROOT/
 popd
 
 %clean
 popd
 
 %clean
@@ -49,22 +66,28 @@ rm -rf $RPM_BUILD_ROOT
 # If run under sudo
 if [ -n "$SUDO_USER" ] ; then
     # Allow user to delete the build directory
 # If run under sudo
 if [ -n "$SUDO_USER" ] ; then
     # Allow user to delete the build directory
-    chown -R $SUDO_USER .
+    chown -h -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 {} \;
     # Allow user to delete the built RPM(s)
     # 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 {} \;
     # Allow user to delete the built RPM(s)
-    chown -R $SUDO_USER %{_rpmdir}/%{_arch}
+    chown -h -R $SUDO_USER %{_rpmdir}/%{_arch}
 fi
 
 fi
 
-%files
+%files reference
 %defattr(-,root,root)
 %defattr(-,root,root)
-%{_initrddir}/%{name}
-/vservers/vserver-reference
+%{_initrddir}/vserver-reference
+%{_sysconfdir}/cron.d/vserver-reference
+%{_sysconfdir}/logrotate.d/vserver-reference
+/vservers/.vref/default
+
+%files system-packages
+%defattr(-,root,root)
+/vservers/.vstub
 
 %define vcached_pid /var/run/vcached.pid
 
 
 %define vcached_pid /var/run/vcached.pid
 
-%pre
+%pre reference
 # Stop vcached
 if [ -r %{vcached_pid} ] ; then
     kill $(cat %{vcached_pid})
 # Stop vcached
 if [ -r %{vcached_pid} ] ; then
     kill $(cat %{vcached_pid})
@@ -73,8 +96,8 @@ echo $$ > %{vcached_pid}
 
 # vcached will clean up .vtmp later
 mkdir -p /vservers/.vtmp
 
 # vcached will clean up .vtmp later
 mkdir -p /vservers/.vtmp
-if [ -d /vservers/vserver-reference ] ; then
-    mv /vservers/vserver-reference /vservers/.vtmp/vserver-reference.$RANDOM
+if [ -d /vservers/.vref ] ; then
+    mv /vservers/.vref /vservers/.vtmp/.vref.$RANDOM
 fi
 if [ -d /vservers/.vcache ] ; then
     mv /vservers/.vcache /vservers/.vtmp/.vcache.$RANDOM
 fi
 if [ -d /vservers/.vcache ] ; then
     mv /vservers/.vcache /vservers/.vtmp/.vcache.$RANDOM
@@ -83,11 +106,16 @@ fi
 # Allow vcached to run again
 rm -f %{vcached_pid}
 
 # Allow vcached to run again
 rm -f %{vcached_pid}
 
-%post
-chkconfig --add %{name}
-chkconfig %{name} on
+%post reference
+chkconfig --add vserver-reference
+chkconfig vserver-reference on
 [ "$PL_BOOTCD" = "1" ] || service vserver-reference start
 
 [ "$PL_BOOTCD" = "1" ] || service vserver-reference start
 
+# Randomize daily run time
+M=$((60 * $RANDOM / 32768))
+H=$((24 * $RANDOM / 32768))
+sed -i -e "s/@M@/$M/" -e "s/@H@/$H/" %{_sysconfdir}/cron.d/vserver-reference
+
 %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
 %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