%define __chattr /usr/bin/chattr
%define chkconfig /sbin/chkconfig
+%define _localstatedir %_var
+
Summary: Linux virtual server utilities
Name: @PACKAGE@
Version: @VERSION@
Requires: diffutils mktemp sed
Provides: vserver = %epoch:%version-%release
Obsoletes: vserver < %epoch:%version
-BuildRequires: mount vconfig gawk iproute
+BuildRequires: mount vconfig gawk iproute iptables
BuildRequires: gcc-c++ wget
BuildRequires: e2fsprogs-devel
BuildRequires: doxygen tetex-latex
%post
-f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers "$f"
-f="%confdefaultdir/run.rev"; test -L "$f" -o -e "$f" || ln -s /var/run/vservers.rev "$f"
+test -d /vservers || mkdir -m0000 /vservers
+test -d /vservers/.pkg || mkdir -m0755 /vservers/.pkg
-%__chattr +t /vservers || :
+f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers "$f"
+f="%confdefaultdir/run.rev"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/run/vservers.rev "$f"
+
+%_sbindir/setattr --barrier /vservers || :
+
+
+%post lib -p /sbin/ldconfig
+%postun lib -p /sbin/ldconfig
-%define v_services httpd named portmap sendmail smb sshd xinetd gated
%post sysv
%chkconfig --add vservers-default
%chkconfig --add vprocunhide
-for i in %v_services; do
- %chkconfig --add v_$i
-done
%preun sysv
-test "$1" != 0 || for i in %v_services; do
- %chkconfig --del v_$i
-done
-
test "$1" != 0 || %_initrddir/vprocunhide stop &>/dev/null || :
test "$1" != 0 || %chkconfig --del vprocunhide
test "$1" = 0 || %_initrddir/vprocunhide condrestart >/dev/null || :
-%post lib -p /sbin/ldconfig
-%postun lib -p /sbin/ldconfig
+## Temporary workaround to remove old v_* files; it will conflict
+## somehow with the -legacy package but can be fixed by reinstalling
+## this package.
+## TODO: remove me in the final .spec file
+%define v_services httpd named portmap sendmail smb sshd xinetd gated
+%triggerun sysv -- util-vserver-sysv < 0.30.198
+for i in %v_services; do
+ %chkconfig --del v_$i || :
+done
%post legacy
%chkconfig --add rebootmgr
%chkconfig --add vservers-legacy
+for i in %v_services; do
+ %chkconfig --add v_$i
+done
+
+
%preun legacy
test "$1" != 0 || %_initrddir/rebootmgr stop &>/dev/null || :
+test "$1" != 0 || for i in %v_services; do
+ %chkconfig --del v_$i
+done
+
test "$1" != 0 || %chkconfig --del rebootmgr
test "$1" != 0 || %chkconfig --del vservers-legacy
%ghost %confdefaultdir/vdirbase
%ghost %confdefaultdir/run.rev
-%attr(000,root,root) %dir /vservers/.pkg
-%attr(000,root,root) %dir /vservers
-
-%dir /var/run/vservers
-%dir /var/run/vservers.rev
-%dir /var/run/vshelper
+%dir %_localstatedir/run/vservers
+%dir %_localstatedir/run/vservers.rev
+%dir %_localstatedir/run/vshelper
%files lib -f %name-lib.list
%changelog
+* Wed Jan 26 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.198-0.3
+- updated BuildRequires:
+- use 'setattr --barrier' instead of 'chattr +t' in the %post scriptlet
+- moved the v_* initscripts to legacy
+- do not ship the /vservers directory itself; as it is immutable, the
+ extraction will fail else
+
* Thu Sep 9 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.194-0
-- commented switches
+- documented switches for 'rpmbuild'
* Wed May 26 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.215-0
- (re)added the MANIFEST_* variables which were lost some time ago;