# TODO
# - somewhy empty /var/cache/vservers is needed when building pld vserver
+# - make build create /dev/std{in,out,err} links
#
# m68k and mips are the only not supported archs
#
# Conditional build:
%bcond_without dietlibc # don't use dietlibc (ask for troubles)
%bcond_without doc # don't build documentation which needed LaTeX
+%bcond_without no_dynamic_context # disable enforcement of disabled dynamic context
%bcond_with xalan # use the xalan xslt processor
#
+%define _vproc_version 0.01
+# diet compile fails with ccache in %{__cc}
+%undefine with_ccache
+#
Summary: Linux virtual server utilities
Summary(pl): Narzêdzia dla linuksowych serwerów wirtualnych
Name: util-vserver
Version: 0.30.210
-Release: 5
+Release: 10
License: GPL
Group: Applications/System
Source0: http://www.13thfloor.at/~ensc/util-vserver/files/alpha/%{name}-%{version}.tar.bz2
# http://www.paul.sladen.org/vserver/archives/200505/0078.html
Source9: %{name}-pkgmgmt.txt
Source10: %{name}-initpost.sh
+Source11: http://www.13thfloor.at/vserver/s_release/v1.2.10/vproc-%{_vproc_version}.tar.bz2
+# Source11-md5: 1d030717bdbc958ea4b35fd2410dad85
+Source12: %{name}-vhashify.cron
Patch0: %{name}-vsysvwrapper.patch
Patch1: %{name}-pld.patch
Patch2: %{name}-vrpm.patch
Patch5: %{name}-cpuset.patch
Patch6: %{name}-build-umask.patch
Patch7: %{name}-utmpx.patch
+Patch8: %{name}-vprocunhide.patch
+Patch9: %{name}-dev.patch
+Patch10: %{name}-no-dynamic-ctx.patch
+Patch11: %{name}-more-ip.patch
+Patch12: http://daniel.hozac.com/vserver/util-vserver/%{name}-0.30.210-namespace-cleanup.patch
+Patch13: http://daniel.hozac.com/vserver/util-vserver/%{name}-0.30.210-delete.patch
+Patch14: http://daniel.hozac.com/vserver/util-vserver/%{name}-0.30.210-shiny10.patch
+Patch15: %{name}-rpm-fake-resolver-badperm-errorlogging.patch
URL: http://savannah.nongnu.org/projects/util-vserver/
BuildRequires: autoconf
BuildRequires: automake >= 1.9
%ifarch %{x8664}
BuildRequires: sed >= 4.0
%endif
+BuildRequires: e2fsprogs-devel
+BuildRequires: rpmbuild(macros) >= 1.268
%if %{with doc}
BuildRequires: doxygen
BuildRequires: graphviz
Summary(pl): Narzêdzia do budowania vserverów
Group: Applications/System
Requires: %{name} = %{version}-%{release}
+Requires: /etc/pld-release
Requires: e2fsprogs
+Requires: which
Conflicts: poldek < 0.18.8-10
%description build
konfiguracjê w starym stylu.
%prep
-%setup -q
+%setup -q -a11
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%{?with_no_dynamic_context:%patch10 -p1}
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
install %{SOURCE9} package-management.txt
%{__make} all
%{?with_doc:%{__make} doc}
+%{__make} -C vproc-%{_vproc_version} \
+ CC="%{__cc}" \
+ CFLAGS="%{rpmcflags}"
+
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/vservers,/etc/{sysconfig,rc.d/init.d},/dev/pts}
+install -d $RPM_BUILD_ROOT{/vservers,/etc/{sysconfig,rc.d/init.d,cron.d},/dev/pts} \
+ $RPM_BUILD_ROOT{%{_sysconfdir}/vservices,/vservers/.pkg}
%{__make} install install-distribution \
DESTDIR=$RPM_BUILD_ROOT
chmod -R +rX $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/*
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/vservices
-install -d $RPM_BUILD_ROOT/vservers/.pkg
ln -s /vservers $RPM_BUILD_ROOT%{_sysconfdir}/vservers/vdirbase
ln -s %{_localstatedir}/run/vservers.rev $RPM_BUILD_ROOT%{_sysconfdir}/vservers/run.rev
install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/vrootdevices
install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/vrootdevices
install %{SOURCE10} $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ac/initpost
+install vproc-%{_vproc_version}/vproc $RPM_BUILD_ROOT%{_sbindir}
+install %{SOURCE12} $RPM_BUILD_ROOT%{_libdir}/%{name}/vhashify.cron
+
+cat > $RPM_BUILD_ROOT/etc/cron.d/vservers << EOF
+02 2 * * 0 root %{_libdir}/%{name}/vhashify.cron
+EOF
ln -sf null $RPM_BUILD_ROOT/dev/initctl
/sbin/chkconfig --add vprocunhide
/sbin/chkconfig --add vservers
if [ ! -f /var/lock/subsys/vrootdevices ]; then
- echo "Type \"/etc/rc.d/init.d/vrootdevices start\" to assign virtual root devices" 1>&2
+ echo "Type \"/sbin/service vrootdevices start\" to assign virtual root devices" 1>&2
fi
if [ ! -f /var/lock/subsys/vprocunhide ]; then
- echo "Type \"/etc/rc.d/init.d/vprocunhide start\" to set /proc visibility for vservers" 1>&2
+ echo "Type \"/sbin/service vprocunhide start\" to set /proc visibility for vservers" 1>&2
fi
if [ ! -f /var/lock/subsys/vservers ]; then
- echo "Type \"/etc/rc.d/init.d/vservers start\" to start vservers" 1>&2
+ echo "Type \"/sbin/service vservers start\" to start vservers" 1>&2
fi
%preun init
if [ "$1" = "0" ]; then
- if [ -r /var/lock/subsys/vservers ]; then
- /etc/rc.d/init.d/vservers stop >&2
- fi
- if [ -r /var/lock/subsys/vprocunhide ]; then
- /etc/rc.d/init.d/vprocunhide stop >&2
- fi
- if [ -r /var/lock/subsys/vrootdevices ]; then
- /etc/rc.d/init.d/vrootdevices stop >&2
- fi
+ %service vservers stop
+ %service vprocunhide stop
+ %service vrootdevices stop
/sbin/chkconfig --del vservers
/sbin/chkconfig --del vprocunhide
/sbin/chkconfig --del vrootdevices
/sbin/chkconfig --add rebootmgr
/sbin/chkconfig --add vservers-legacy
if [ ! -f /var/lock/subsys/rebootmgr ] ; then
- echo "Type \"/etc/rc.d/init.d/rebootmgr start\" to start reboot manager for legacy vservers" 1>&2
+ echo "Type \"/sbin/service rebootmgr start\" to start reboot manager for legacy vservers" 1>&2
fi
if [ ! -f /var/lock/subsys/vservers-legacy ] ; then
- echo "Type \"/etc/rc.d/init.d/vservers-legacy start\" to start legacy vservers" 1>&2
+ echo "Type \"/sbin/service vservers-legacy start\" to start legacy vservers" 1>&2
fi
%preun legacy
if [ "$1" = "0" ]; then
- if [ -r /var/lock/subsys/rebootmgr ] ; then
- /etc/rc.d/init.d/rebootmgr stop >&2
- fi
- if [ -r /var/lock/subsys/vservers-legacy ] ; then
- /etc/rc.d/init.d/vservers-legacy stop >&2
- fi
+ %service rebootmgr stop
+ %service vservers-legacy stop
/sbin/chkconfig --del rebootmgr
/sbin/chkconfig --del vservers-legacy
fi
-%triggerpostun build -- %{name}-build < 0.30.209-2.1
+%triggerpostun build -- %{name}-build < 0.30.210-5.2
if [ -f /etc/vservers/.distributions/pld2.0/poldek/poldek.conf.rpmsave ]; then
mv -f /etc/vservers/.distributions/{pld2.0,pld-ac}/poldek/poldek.conf.rpmsave
fi
+# kill old vserver specific package ignores which are no longer needed
+l=`egrep '^ignore.*(basesystem|SysVinit|rc-scripts)' /etc/vservers/*/apps/pkgmgmt/base/poldek/etc/poldek.conf -l 2>/dev/null`
+if [ "$l" ]; then
+ %{__sed} -i -e '/^ignore/s, \(basesystem\|SysVinit\|rc-scripts\),,g' $l
+fi
+
%files
%defattr(644,root,root,755)
%doc AUTHORS ChangeLog NEWS THANKS doc/intro.txt
%attr(755,root,root) %{_sbindir}/vkill
%attr(755,root,root) %{_sbindir}/vlimit
%attr(755,root,root) %{_sbindir}/vdu
+%attr(755,root,root) %{_sbindir}/vproc
%attr(755,root,root) %{_sbindir}/vps
%attr(755,root,root) %{_sbindir}/vpstree
%attr(755,root,root) %{_sbindir}/vrsetup
%attr(755,root,root) %{_libdir}/%{name}/start-vservers
%attr(755,root,root) %{_libdir}/%{name}/vprocunhide
%{_libdir}/%{name}/vserver.*
+%{_libdir}/%{name}/vserver-setup.*
+%attr(755,root,root) %{_libdir}/%{name}/vserver-build
+%{_libdir}/%{name}/vserver-build.*
%attr(755,root,root) %{_libdir}/%{name}/vservers.grabinfo.sh
+%attr(755,root,root) %{_libdir}/%{name}/vhashify
+%attr(755,root,root) %{_libdir}/%{name}/vhashify.cron
%attr(755,root,root) %{_libdir}/%{name}/vshelper
%attr(755,root,root) %{_libdir}/%{name}/vshelper-sync
%{_mandir}/man8/chbind.8*
%attr(755,root,root) %{_libdir}/%{name}/vsysvwrapper
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vrootdevices
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vservers
+%config(noreplace) %verify(not md5 mtime size) /etc/cron.d/vservers
%attr(754,root,root) /etc/rc.d/init.d/vprocunhide
%attr(754,root,root) /etc/rc.d/init.d/vrootdevices
%attr(754,root,root) /etc/rc.d/init.d/vservers
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/pld-ac/poldek/*.conf
%attr(755,root,root) %{_libdir}/%{name}/rpm-fake*
%dir %{_libdir}/%{name}/distributions
-%attr(-, root, root) %{_libdir}/%{name}/distributions/defaults
-%attr(-, root, root) %{_libdir}/%{name}/distributions/pld*
-%attr(-, root, root) %{_libdir}/%{name}/distributions/template
-%attr(-, root, root) %{_libdir}/%{name}/distributions/redhat*
+%attr(-,root,root) %{_libdir}/%{name}/distributions/defaults
+%attr(-,root,root) %{_libdir}/%{name}/distributions/pld*
+%dir %{_libdir}/%{name}/distributions/template
+%attr(755,root,root) %{_libdir}/%{name}/distributions/template/init*
+%attr(-,root,root) %{_libdir}/%{name}/distributions/redhat
%{_libdir}/%{name}/vserver-build.*
%{_libdir}/%{name}/vserver-setup.functions
%{_libdir}/%{name}/defaults/fstab
%attr(755,root,root) %{_libdir}/%{name}/pkgmgmt
%attr(755,root,root) %{_libdir}/%{name}/vapt-get-worker
%attr(755,root,root) %{_libdir}/%{name}/vcopy
-%attr(755,root,root) %{_libdir}/%{name}/vhashify
%attr(755,root,root) %{_libdir}/%{name}/vpkg
%attr(755,root,root) %{_libdir}/%{name}/vpoldek-worker
%attr(755,root,root) %{_libdir}/%{name}/vrpm-*