+# 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_with xalan # use the xalan xslt processor
+%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.209
+Version: 0.30.212
Release: 1
License: GPL
Group: Applications/System
-Source0: http://www.13thfloor.at/~ensc/util-vserver/files/alpha/%{name}-%{version}.tar.bz2
-# Source0-md5: 674b122824292c20d3c53245b91f6088
+Source0: http://ftp.linux-vserver.org/pub/utils/util-vserver/%{name}-%{version}.tar.bz2
+# Source0-md5: 386b91732b7f0f132b4e9d978389dcc2
Source1: vprocunhide.init
Source2: vservers.init
Source3: vservers-legacy.init
# 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}-build-poldek.patch
+Patch2: %{name}-vrpm.patch
Patch3: %{name}-include.patch
Patch4: %{name}-m4-diet.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: %{name}-rpm-fake-resolver-badperm-errorlogging.patch
URL: http://savannah.nongnu.org/projects/util-vserver/
BuildRequires: autoconf
BuildRequires: automake >= 1.9
BuildRequires: beecrypt-devel
%{?with_dietlibc:BuildRequires: dietlibc-static >= 2:0.29}
+BuildRequires: e2fsprogs-devel
BuildRequires: libstdc++-devel
BuildRequires: libtool >= 1.5.14
%ifarch %{x8664}
BuildRequires: sed >= 4.0
%endif
+BuildRequires: rpmbuild(macros) >= 1.268
%if %{with doc}
BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: tetex-makeindex
# To be removed when tetex-format-pdflatex, tetex-pdftex...
# ...and graphviz packages get fixed
-BuildRequires: tetex-fonts-jknappen
-BuildRequires: tetex-metafont
BuildRequires: ghostscript
BuildRequires: ghostscript-fonts-std
+BuildRequires: tetex-fonts-jknappen
+BuildRequires: tetex-metafont
%{?with_xalan:BuildRequires: xalan-j}
%endif
-Requires: rc-scripts
-Requires: util-linux
Requires(post,preun): /sbin/chkconfig
Requires: %{name}-lib = %{version}-%{release}
+Requires: issue
+Requires: mktemp >= 1.5-18
+Requires: rc-scripts
+Requires: util-linux
Obsoletes: util-vserver-core
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
util-vserver provides the components and a framework to setup virtual
servers. A virtual server runs inside a linux server. It is
nevertheless highly independent. As such, you can run various services
-with normal configuration. The various vservers can't interact with
+pith normal configuration. The various vservers can't interact with
each other and can't interact with services in the main server.
This package contains the shared libraries needed by all other
Summary: Tools which can be used to build vservers
Summary(pl): Narzêdzia do budowania vserverów
Group: Applications/System
-Conflicts: poldek < 0.18.8-10
Requires: %{name} = %{version}-%{release}
+Requires: /etc/pld-release
+Requires: e2fsprogs
+Requires: which
+Conflicts: poldek < 0.18.8-10
%description build
util-vserver provides the components and a framework to setup virtual
Requires: yum
%description -n vserver-distro-centos
-VServer build template for CentOS 4.2.
+VServer build template for CentOS 4.
%description -n vserver-distro-centos -l pl
-Szablon budowania VServera dla CentOS 4.2.
+Szablon budowania VServera dla CentOS 4.
+
+%package -n vserver-distro-gentoo
+Summary: VServer build template for Gentoo
+Summary(pl): Szablon budowania VServera dla Gentoo
+Group: Applications/System
+Requires: util-vserver-build
+
+%description -n vserver-distro-gentoo
+VServer build template for Gentoo.
+
+%description -n vserver-distro-gentoo -l pl
+Szablon budowania VServera dla Gentoo.
%package init
Summary: initscripts for vserver
Ten pakiet zawiera narzêdzia potrzebne do pracy z Vserwerami maj±cymi
konfiguracjê w starym stylu.
-%package -n vserver-dev
-Summary: /dev entries for systems in Vservers
-Summary(pl): Pliki specjalne /dev/* dla systemów w Vserwerach
-Group: Base
-Requires: setup >= 2.4.1-2
-Provides: dev = 2.9.0-19
-Provides: devfs
-AutoReqProv: no
-
-%description -n vserver-dev
-Unix and unix like systems (including Linux) use file system entries
-to represent devices attached to the machine. All of these entries are
-in the /dev tree (though they don't have to be), and this package
-contains only entries needed for a system running inside Vserver.
-
-DO NOT install this package for a normal system!
-
-%description -n vserver-dev -l pl
-Wszystkie systemy klasy unices, w tym Linux, u¿ywaj± plików do
-przedstawiania urz±dzeñ pod³±czonych do komputera. Wszystkie te pliki
-znajduj± siê zwykle w katalogu /dev. Pakiet ten wy³±cznie te pliki
-specjalne które s± potrzebne do uruchomienia systemu w Vserwerze.
-
-NIE INSTALUJ tego pakietu na zwyk³ym systemie!
-
%prep
-%setup -q
+%setup -q -a11
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
-%patch5 -p1
%patch6 -p1
%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%{?with_no_dynamic_context:%patch10 -p1}
+%patch11 -p1
+%patch12 -p1
-install %{SOURCE9} package-managament.txt
+install %{SOURCE9} package-management.txt
cp -a compat.h vserver-compat.h
%configure \
--with-initrddir=/etc/rc.d/init.d \
--enable-release \
+ --enable-apis=NOLEGACY \
%{?with_dietlibc:--enable-dietlibc} \
%{!?with_dietlibc:--disable-dietlibc} \
MKTEMP=/bin/mktemp \
%{__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/pld2.0/initpost
+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
%ifarch %{x8664}
-sed -i 's/^glibc$/glibc64/' $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld2.0/pkgs/01
-sed -i 's/glibc\-\[0\-9\]\*\.rpm/glibc64\-\[0\-9\]\*\.rpm/' $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld2.0/rpmlist.d/00.lst
+sed -i 's/^glibc$/glibc64/' $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ac/pkgs/01
+sed -i 's/glibc\-\[0\-9\]\*\.rpm/glibc64\-\[0\-9\]\*\.rpm/' $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ac/rpmlist.d/00.lst
%endif
+# baggins check this: needed but seems unused
+install -d $RPM_BUILD_ROOT/var/cache/vservers
+
%clean
rm -rf $RPM_BUILD_ROOT
/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.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}/chxid
%attr(755,root,root) %{_sbindir}/exec-cd
%attr(755,root,root) %{_sbindir}/lsxid
+%attr(755,root,root) %{_sbindir}/naddress
+%attr(755,root,root) %{_sbindir}/nattribute
+%attr(755,root,root) %{_sbindir}/ncontext
%attr(755,root,root) %{_sbindir}/reducecap
%attr(755,root,root) %{_sbindir}/setattr
%attr(755,root,root) %{_sbindir}/showattr
%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
%{_libdir}/%{name}/defaults/*
%attr(755,root,root) %{_libdir}/%{name}/capchroot
%attr(755,root,root) %{_libdir}/%{name}/chain-echo
+%attr(755,root,root) %{_libdir}/%{name}/chbind-compat
%attr(755,root,root) %{_libdir}/%{name}/check-unixfile
%attr(755,root,root) %{_libdir}/%{name}/chcontext-compat
%attr(755,root,root) %{_libdir}/%{name}/chroot-sh
%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*
%dir %{_localstatedir}/run/vservers
%dir %{_localstatedir}/run/vservers.rev
%dir %{_localstatedir}/run/vshelper
+%dir /var/cache/vservers
%files devel
%defattr(644,root,root,755)
%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
%files build
%defattr(644,root,root,755)
-%doc contrib/yum*.patch package-managament.txt
+%doc contrib/yum*.patch package-management.txt
%dir %{_sysconfdir}/vservers/.defaults/apps/vunify
%dir %{_sysconfdir}/vservers/.defaults/apps/vunify/hash
%dir %{_sysconfdir}/vservers/.distributions
%dir %{_sysconfdir}/vservers/.distributions/.common
%dir %{_sysconfdir}/vservers/.distributions/.common/pubkeys
-%dir %{_sysconfdir}/vservers/.distributions/pld2.0
-%dir %{_sysconfdir}/vservers/.distributions/pld2.0/poldek
-%{_sysconfdir}/vservers/.distributions/pld1.99
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/pld2.0/poldek/poldek.conf
+%dir %{_sysconfdir}/vservers/.distributions/pld-ac
+%dir %{_sysconfdir}/vservers/.distributions/pld-ac/poldek
+%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}/magic.mime
%{_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-*
%files -n vserver-distro-centos
%defattr(644,root,root,755)
-%{_libdir}/util-vserver/distributions/centos42
+%{_libdir}/util-vserver/distributions/centos4
+
+%files -n vserver-distro-gentoo
+%defattr(644,root,root,755)
+%dir %{_libdir}/util-vserver/distributions/gentoo
+%attr(755,root,root) %{_libdir}/util-vserver/distributions/gentoo/*
+%attr(755,root,root) %{_sbindir}/vdispatch-conf
+%attr(755,root,root) %{_sbindir}/vemerge
+%attr(755,root,root) %{_sbindir}/vesync
+%attr(755,root,root) %{_sbindir}/vupdateworld
%files legacy
%defattr(644,root,root,755)
%{_mandir}/man8/distrib-info.8*
%{_mandir}/man8/rebootmgr.8*
%{_mandir}/man8/vserver-copy.8*
-
-%files -n vserver-dev
-%defattr(644,root,root,755)
-%dir /dev/pts
-%dev(c,1,7) %attr(666,root,root) /dev/full
-%dev(c,1,3) %attr(666,root,root) /dev/null
-%dev(c,5,2) %attr(666,root,root) /dev/ptmx
-%dev(c,1,8) %attr(644,root,root) /dev/random
-%dev(c,5,0) %attr(666,root,root) /dev/tty
-%dev(c,1,9) %attr(644,root,root) /dev/urandom
-%dev(c,1,5) %attr(666,root,root) /dev/zero
-/dev/initctl