Remove ugly hack that breaks su/sudo on upgrades.
[sliceimage.git] / vserver-reference.spec
index e8a741b..80167e3 100644 (file)
@@ -3,13 +3,24 @@
 #
 %define url $URL$
 
 #
 %define url $URL$
 
+%define slicefamily %{pldistro}-%{distroname}-%{_arch}
+
 %define name vserver
 %define name vserver
-%define version 4.2
-%define taglevel 0
+%define version 5.0
+%define taglevel 4
 
 
-%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+# pldistro already in the rpm name
+#%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+%define release %{taglevel}%{?date:.%{date}}
 
 
-Summary: VServer reference image
+
+# we don't really need the standard postinstall process from rpm that
+# strips files and byte-compiles python files. all files in this
+# package are comming from other rpm files and they've already went
+# through this post install processing. - baris
+%define __os_install_post %{nil}
+
+Summary: VServer reference image for slice family %{slicefamily}
 Name: %{name}
 Version: %{version}
 Release: %{release}
 Name: %{name}
 Version: %{version}
 Release: %{release}
@@ -17,6 +28,8 @@ Source0: %{name}-%{version}.tar.bz2
 License: GPL
 Group: Applications/System
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
 License: GPL
 Group: Applications/System
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
+# this would not be right
+#BuildArch: noarch
 
 Vendor: PlanetLab
 Packager: PlanetLab Central <support@planet-lab.org>
 
 Vendor: PlanetLab
 Packager: PlanetLab Central <support@planet-lab.org>
@@ -28,92 +41,63 @@ URL: %(echo %{url} | cut -d ' ' -f 2)
 %description
 This package does not really exist.
 
 %description
 This package does not really exist.
 
-%package reference
+%package %{slicefamily}
 Summary: VServer reference image
 Group: Applications/System
 AutoReqProv: no
 Requires: util-vserver, e2fsprogs, yum
 Summary: VServer reference image
 Group: Applications/System
 AutoReqProv: no
 Requires: util-vserver, e2fsprogs, yum
-Requires(pre): /bin/sh, coreutils
 
 
-%description reference
+%description %{slicefamily}
 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
+%package systemslices-%{slicefamily}
 Summary: System slice packages
 Group: Applications/System
 Summary: System slice packages
 Group: Applications/System
-Requires: vserver-reference >= %{version}-%{release}
+Requires: vserver-%{slicefamily} >= %{version}-%{release}
 AutoReqProv: no
 
 AutoReqProv: no
 
-%description system-packages
-This package installs the RPMS necessary to create system ("root
-resource") slices from the virtual server (VServer) reference image.
+%description systemslices-%{slicefamily} 
+This package installs the stubs necessary to create system slices
+(typically planetflow) on top of the reference image.
 
 %prep
 %setup -q
 
 %build
 
 %prep
 %setup -q
 
 %build
-pushd VserverReference
-./build.sh %{pldistro}
+[ -d vserver-reference ] || ln -s VserverReference vserver-reference
+
+pushd vserver-reference
+./build.sh %{pldistro} %{slicefamily}
 popd
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
 popd
 
 %install
 rm -rf $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
+pushd vserver-reference
+install -D -m 755 initscripts/vserver-reference $RPM_BUILD_ROOT/%{_initrddir}/vserver-reference
+install -D -m 644 cron.d/vserver-reference $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/vserver-reference
+install -D -m 644 logrotate/vserver-reference $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/vserver-reference
 find vservers | cpio -p -d -u $RPM_BUILD_ROOT/
 popd
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 find vservers | cpio -p -d -u $RPM_BUILD_ROOT/
 popd
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-# If run under sudo
-if [ -n "$SUDO_USER" ] ; then
-    # Allow user to delete the build directory
-    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)
-    chown -h -R $SUDO_USER %{_rpmdir}/%{_arch}
-fi
-
-%files reference
+%files %{slicefamily}
 %defattr(-,root,root)
 %{_initrddir}/vserver-reference
 %{_sysconfdir}/cron.d/vserver-reference
 %{_sysconfdir}/logrotate.d/vserver-reference
 %defattr(-,root,root)
 %{_initrddir}/vserver-reference
 %{_sysconfdir}/cron.d/vserver-reference
 %{_sysconfdir}/logrotate.d/vserver-reference
-/vservers/.vref/default
+/vservers/.vref/%{slicefamily}
 
 
-%files system-packages
+%files systemslices-%{slicefamily}
 %defattr(-,root,root)
 %defattr(-,root,root)
-/vservers/.vstub
+/vservers/.vstub/%{slicefamily}
 
 %define vcached_pid /var/run/vcached.pid
 
 
 %define vcached_pid /var/run/vcached.pid
 
-%pre reference
-# Stop vcached
-if [ -r %{vcached_pid} ] ; then
-    kill $(cat %{vcached_pid})
-fi
-echo $$ > %{vcached_pid}
-
-# vcached will clean up .vtmp later
-mkdir -p /vservers/.vtmp
-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
-
-# Allow vcached to run again
-rm -f %{vcached_pid}
-
-%post reference
+%post %{slicefamily}
 chkconfig --add vserver-reference
 chkconfig vserver-reference on
 [ "$PL_BOOTCD" = "1" ] || service vserver-reference start
 chkconfig --add vserver-reference
 chkconfig vserver-reference on
 [ "$PL_BOOTCD" = "1" ] || service vserver-reference start
@@ -123,7 +107,81 @@ M=$((60 * $RANDOM / 32768))
 H=$((24 * $RANDOM / 32768))
 sed -i -e "s/@M@/$M/" -e "s/@H@/$H/" %{_sysconfdir}/cron.d/vserver-reference
 
 H=$((24 * $RANDOM / 32768))
 sed -i -e "s/@M@/$M/" -e "s/@H@/$H/" %{_sysconfdir}/cron.d/vserver-reference
 
+%post systemslices-%{slicefamily}
+# need to do this for systemslices, for when a new image shows up
+# we've already the service installed and enabled, as systemslices requires the plain package
+[ "$PL_BOOTCD" = "1" ] || service vserver-reference force
+
 %changelog
 %changelog
+* Tue Dec 07 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - vserver-reference-5.0-4
+- optimize rpm construction - skips stripping and the like
+
+* Mon Jul 05 2010 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - VserverReference-5.0-3
+- module name changes
+
+* Fri Mar 12 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - VserverReference-5.0-2
+- iron out system slices reference image update
+
+* Fri Jan 29 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - VserverReference-5.0-1
+- first working version of 5.0:
+- pld.c/, db-config.d/ and nodeconfig/ scripts should now sit in the module they belong to
+- nodefamily is 3-fold with pldistro-fcdistro-arch
+- new module layout
+
+* Tue Oct 20 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - VserverReference-4.2-16
+- fix issue about locating the post-install script(s)
+- this was causing the onelab distro to miss the /etc/sudoers patch
+
+* Mon Oct 19 2009 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - VserverReference-4.2-15
+- - comment out requiretty
+
+* Fri Oct 09 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - VserverReference-4.2-14
+- can use groups in the pkgs file with +++ for space
+
+* Mon Aug 10 2009 Stephen Soltesz <soltesz@cs.princeton.edu> - VserverReference-4.2-13
+- Added remove for all VROOTs rather than the last one.  BUG FIX.
+
+* Tue Mar 24 2009 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - VserverReference-4.2-12
+- fix for fedora 10
+
+* Thu Oct 02 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - VserverReference-4.2-11
+- on 64bits archs, locates util-vserver's config file correctly
+
+* Thu Jul 03 2008 Daniel Hokka Zakrisson <daniel@hozac.com> - VserverReference-4.2-10
+- Use the correct yum.conf to get access to required packages such as pf2slice.
+
+* Mon Jun 30 2008 Daniel Hokka Zakrisson <daniel@hozac.com> - VserverReference-4.2-9
+- Scriptlet fix.
+
+* Fri Jun 27 2008 Daniel Hokka Zakrisson <daniel@hozac.com> - VserverReference-4.2-8
+- Unset the immutable and iunlink bits to make sure we can install the package.
+
+* Fri Jun 27 2008 Daniel Hokka Zakrisson <daniel@hozac.com> - VserverReference-4.2-7
+- Let rpm remove the files.
+
+* Thu Apr 24 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - VserverReference-4.2-6
+- empty change, this should *not* be a noarch package
+
+* Mon Apr 21 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - VserverReference-4.2-5
+- tweaked pre script that was removing everything under /vservers/.vref
+- dismantle vcached (as far as this module is concerned)
+- sudo to log in /var/log/sudo
+
+* Fri Mar 28 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - VserverReference-4.2-3 VserverReference-4.2-4
+- bugfix, 4.2-3 was broken as the slicefamily stamp could not get created, thus nm issued 'vuseradd -t default'
+
+* Wed Mar 26 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - VserverReference-4.2-2 VserverReference-4.2-3
+- a single node can now install several instances of this package
+- package name contains slicefamily - <pldistro>-<fcdistro>-<arch>
+- setattr --iunlink or --~iunlink appropriately (uses /proc/virtual/info)
+- does not copy yum.conf from host anymore
+
+* Fri Feb 15 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - vserver-4.2-1 vserver-4.2-2
+- vserver image to properly use links rather than copies
+
+* Thu Jan 31 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - vserver-4.2-0 vserver-4.2-1
+- more careful scan of the vserver-*.pkgs image specifications
+
 * Tue Sep  1 2005 Mark Huang <mlhuang@cs.princeton.edu> 3.1-1.planetlab
 - Pre-package vserver-reference instead of building it on nodes
 
 * Tue Sep  1 2005 Mark Huang <mlhuang@cs.princeton.edu> 3.1-1.planetlab
 - Pre-package vserver-reference instead of building it on nodes
 
@@ -150,3 +208,5 @@ sed -i -e "s/@M@/$M/" -e "s/@H@/$H/" %{_sysconfdir}/cron.d/vserver-reference
 
 * Tue Sep 14 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-1.planetlab
 - initial build
 
 * Tue Sep 14 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-1.planetlab
 - initial build
+
+%define module_current_branch 4.2