#
+# m68k and mips are the only not supported archs
# Conditional build:
-%bcond_with dietlibc # use dietlibc instead of glibc
+%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
Summary: Linux virtual server utilities
Summary(pl): Narzêdzia dla linuksowych serwerów wirtualnych
Name: util-vserver
-Version: 0.30.207
-Release: 0.5
-Epoch: 0
+Version: 0.30.208
+Release: 2.2
License: GPL
-Group: Base
+Group: Applications/System
Source0: http://www.13thfloor.at/~ensc/util-vserver/files/alpha/%{name}-%{version}.tar.bz2
-# Source0-md5: 1c8457a687643ae8a7b1f1d34ebbdd68
+# Source0-md5: 4453ad0ae7f351fec651d6904e00521f
Source1: vprocunhide.init
Source2: vservers-default.init
Source3: vservers-legacy.init
Source4: rebootmgr.init
Source5: vservers-default.sysconfig
Source6: vservers-legacy.sysconfig
-Patch0: %{name}-no-kernel-includes.patch
-Patch1: %{name}-vsysvwrapper.patch
+# A bit of documentation explaining package menagement
+# http://www.paul.sladen.org/vserver/archives/200505/0078.html
+Source7: %{name}-pkgmgmt.txt
+Patch0: %{name}-vsysvwrapper.patch
+Patch1: %{name}-pld.patch
+Patch2: %{name}-build-poldek.patch
+Patch3: %{name}-include.patch
+Patch4: %{name}-m4-diet.patch
+Patch5: http://vserver.13thfloor.at/Experimental/UTIL-VSERVER/delta-0.30.208-kheaders.diff
+Patch6: http://vserver.13thfloor.at/Experimental/UTIL-VSERVER/delta-0.30.208-shiny6.diff
+Patch7: %{name}-cpuset.patch
+Patch8: %{name}-build-umask.patch
+Patch9: %{name}-vwait-timeout-fix.patch
+Patch10: %{name}-mounted.patch
URL: http://savannah.nongnu.org/projects/util-vserver/
-BuildRequires: e2fsprogs-devel
-BuildRequires: libxslt-progs
-BuildRequires: vlan
+BuildRequires: autoconf
+BuildRequires: automake >= 1.9
+BuildRequires: beecrypt-devel
+%{?with_dietlibc:BuildRequires: dietlibc-static >= 2:0.29}
+BuildRequires: libstdc++-devel
+BuildRequires: libtool >= 1.5.14
+%ifarch %{x8664}
+BuildRequires: sed >= 4.0
+%endif
+%if %{with doc}
BuildRequires: doxygen
-%{?with_dietlibc:BuildRequires: dietlibc >= 0:0.25}
+BuildRequires: graphviz
+BuildRequires: libxslt-progs
+BuildRequires: tetex-format-pdflatex
+BuildRequires: tetex-makeindex
%{?with_xalan:BuildRequires: xalan-j}
-PreReq: rc-scripts
+%endif
+Requires: rc-scripts
+Requires: util-linux
Requires(post,preun): /sbin/chkconfig
+Requires: %{name}-lib = %{version}-%{release}
+Obsoletes: util-vserver-core
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+# for adapter
+%define _usrbin /usr/bin
+%define _usrsbin /usr/bin
+%define _usrlib /usr/lib/util-vserver
+
%description
This package provides the components and a framework to setup virtual
servers. A virtual server runs inside a Linux server. It is
This requires a special kernel supporting the new new_s_context and
set_ipv4root system call.
+This package contains utilities which are required to communicate with
+the Linux-Vserver enabled kernel.
+
%description -l pl
Ten pakiet dostarcza sk³adniki i szkielet do tworzenia wirtualnych
serwerów. Wirtualny serwer dzia³a wewn±trz serwera linuksowego, lecz
Wymaga to specjalnego j±dra obs³uguj±cego nowe wywo³ania systemowe
new_s_context i set_ipv4root.
+Ten pakiet zawiera narzêdzia wymagane do komunikacji z j±drem z
+w³±czonym mechanizmem Linux-Vserver.
+
%package devel
Summary: Development files for Linux vserver libraries
Summary(pl): Pliki programistyczne dla bibliotek linuksowego vserwera
Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}-lib = %{version}-%{release}
%description devel
This package contains the development files necessary for developing
Ten pakiet zawiera biblioteki wspó³dzielone wymagane przez wszystkie
podpakiety util-vserver.
-%package core
-Summary: The core-utilities for util-vserver
-Summary(pl): Podstawowe narzêdzia dla util-vserver
-Group: Applications/System
-Requires: util-linux
-
-%description core
-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
-each other and can't interact with services in the main server.
-
-This package contains utilities which are required to communicate with
-the Linux-Vserver enabled kernel.
-
-%description core -l pl
-util-vserver dostarcza sk³adniki i szkielet do tworzenia wirtualnych
-serwerów. Wirtualny serwer dzia³a wewn±trz serwera linuksowego, lecz
-jest od niego w du¿ym stopniu niezale¿ny. Jako taki mo¿e uruchamiaæ
-ró¿ne us³ugi z normaln± konfiguracj±. Ró¿ne vserwery nie mog± wchodziæ
-w interakcjê z innymi ani z us³ugami na g³ównym serwerze.
-
-Ten pakiet zawiera narzêdzia wymagane do komunikacji z j±drem z
-w³±czonym mechanizmem Linux-Vserver.
-
%package build
Summary: Tools which can be used to build vservers
Summary(pl): Narzêdzia do budowania vserverów
Group: Applications/System
-Requires: apt
Requires: binutils
Requires: e2fsprogs
Requires: rpm
Requires: tar
Requires: wget
+Conflicts: poldek < 0.18.8-10
Requires: %{name} = %{version}-%{release}
%description build
%package init
Summary: initscripts for vserver
Summary(pl): Skrypty inicjalizuj±ce dla vserwera
-Group: Base
+Group: Applications/System
Requires(post,preun): /sbin/chkconfig
Requires: %{name} = %{version}-%{release}
-Requires: %{name}-core = %{version}-%{release}
Requires: diffutils
Requires: make
Requires: rc-scripts
Group: Applications/System
Requires(post,preun): /sbin/chkconfig
Requires: %{name} = %{version}-%{release}
-Requires: %{name}-core = %{version}-%{release}
Requires: rc-scripts
%description legacy
Summary: /dev entries for systems in Vservers
Summary(pl): Pliki specjalne /dev/* dla systemów w Vserwerach
Group: Base
-PreReq: setup >= 2.4.1-2
-Provides: dev
+Requires: setup >= 2.4.1-2
+Provides: dev = 2.9.0-19
Provides: devfs
AutoReqProv: no
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+
+install %{SOURCE7} package-menagament.txt
+
+cp -a compat.h vserver-compat.h
%build
+%if %{with dietlibc}
+CFLAGS="%{rpmcflags} -D__GLIBC__"
+%endif
+%{__aclocal} -I m4
+%{__automake}
+%{__autoconf}
%configure \
--with-initrddir=/etc/rc.d/init.d \
--enable-release \
%{?with_dietlibc:--enable-dietlibc} \
- %{!?with_dietlibc:--disable-dietlibc}
+ %{!?with_dietlibc:--disable-dietlibc} \
+ MKTEMP=/bin/mktemp \
+ MOUNT=/bin/mount \
+ PS=/bin/ps \
+ UMOUNT=/bin/umount \
+ IP=/sbin/ip \
+ IPTABLES=%{_usrsbin}/iptables \
+ MODPROBE=/sbin/modprobe \
+ NAMEIF=/sbin/nameif \
+ RMMOD=/sbin/rmmod \
+ VCONFIG=/sbin/vconfig \
+ WGET=%{_usrbin}/wget \
%{__make} all
-%{__make} doc
+%{?with_doc:%{__make} doc}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/vservers,/etc/{sysconfig,rc.d/init.d},/dev}
+install -d $RPM_BUILD_ROOT{/vservers,/etc/{sysconfig,rc.d/init.d},/dev/pts}
%{__make} install install-distribution \
DESTDIR=$RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/vservices
+cp -a vserver-compat.h $RPM_BUILD_ROOT%{_includedir}
+
+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
for i in $RPM_BUILD_ROOT/etc/rc.d/init.d/v_* ; do
s=`basename $i | sed s/v_//`
- cat >$RPM_BUILD_ROOT/etc/vservices/$s << EOF
+ cat >$RPM_BUILD_ROOT%{_sysconfdir}/vservices/$s << EOF
# IP addresses/interfaces to bound $s service to
#IP=10.0.0.1
#IP=eth0
EOF
done
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/vprocunhide
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/vservers-default
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/vservers-legacy
-install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/rebootmgr
+sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE1} > \
+ $RPM_BUILD_ROOT/etc/rc.d/init.d/vprocunhide
+sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE2} > \
+ $RPM_BUILD_ROOT/etc/rc.d/init.d/vservers-default
+sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE3} > \
+ $RPM_BUILD_ROOT/etc/rc.d/init.d/vservers-legacy
+sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE4} > \
+ $RPM_BUILD_ROOT/etc/rc.d/init.d/rebootmgr
+
install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/vservers-default
install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/vservers-legacy
ln -sf /dev/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
+%endif
+
%clean
rm -rf $RPM_BUILD_ROOT
/sbin/chkconfig --add vprocunhide
#if [ -r /var/lock/subsys/vprocunhide ]; then
# /etc/rc.d/init.d/vprocunhide restart >&2
+#else
+ echo "Type \"/etc/rc.d/init.d/vprocunhide start\" to set /proc visibility for vservers" 1>&2
#fi
#if [ -r /var/lock/subsys/vservers-default ]; then
# /etc/rc.d/init.d/vservers-default restart >&2
+#else
+ echo "Type \"/etc/rc.d/init.d/vservers-default start\" to start default vservers" 1>&2
#fi
%preun init
/sbin/chkconfig --add vservers-legacy
#if [ -r /var/lock/subsys/rebootmgr ] ; then
# /etc/rc.d/init.d/rebootmgr restart >&2
+#else
+ echo "Type \"/etc/rc.d/init.d/rebootmgr start\" to start reboot manager for legacy vservers" 1>&2
#fi
#if [ -r /var/lock/subsys/vservers-legacy ] ; then
# /etc/rc.d/init.d/vservers-legacy restart >&2
+#else
+ echo "Type \"/etc/rc.d/init.d/vservers-legacy start\" to start legacy vservers" 1>&2
#fi
%preun legacy
/sbin/chkconfig --del vservers-legacy
fi
-%post -n vserver-dev
-cat << EOF
-
- **************************************************
- * *
- * BIG FAT WARNING!!! *
- * *
- * This package is for use inside Vserver ONLY! *
- * DO NOT install it on normal system! *
- * *
- **************************************************
-
-EOF
-
%files
%defattr(644,root,root,755)
-%doc AUTHORS ChangeLog NEWS THANKS doc/intro.txt doc/*.html
+%doc AUTHORS ChangeLog NEWS THANKS doc/intro.txt
+%{?with_doc:%doc doc/*.html}
%dir %{_sysconfdir}/vservers
%dir %{_sysconfdir}/vservers/.defaults
%dir %{_sysconfdir}/vservers/.defaults/apps
%{_sysconfdir}/vservers/vdirbase
%{_sysconfdir}/vservers/run.rev
/sbin/vshelper
+%attr(755,root,root) %{_sbindir}/chbind
+%attr(755,root,root) %{_sbindir}/chcontext
+%attr(755,root,root) %{_sbindir}/chxid
%attr(755,root,root) %{_sbindir}/exec-cd
+%attr(755,root,root) %{_sbindir}/lsxid
+%attr(755,root,root) %{_sbindir}/reducecap
+%attr(755,root,root) %{_sbindir}/setattr
+%attr(755,root,root) %{_sbindir}/showattr
+%attr(755,root,root) %{_sbindir}/vattribute
+%attr(755,root,root) %{_sbindir}/vcontext
+%attr(755,root,root) %{_sbindir}/vdlimit
+%attr(755,root,root) %{_sbindir}/vnamespace
+%attr(755,root,root) %{_sbindir}/vkill
+%attr(755,root,root) %{_sbindir}/vlimit
%attr(755,root,root) %{_sbindir}/vdu
%attr(755,root,root) %{_sbindir}/vps
%attr(755,root,root) %{_sbindir}/vpstree
+%attr(755,root,root) %{_sbindir}/vrsetup
+%attr(755,root,root) %{_sbindir}/vsched
%attr(755,root,root) %{_sbindir}/vserver
+%attr(755,root,root) %{_sbindir}/vserver-info
%attr(755,root,root) %{_sbindir}/vserver-stat
%attr(755,root,root) %{_sbindir}/vsomething
%attr(755,root,root) %{_sbindir}/vtop
+%attr(755,root,root) %{_sbindir}/vuname
+%attr(755,root,root) %{_sbindir}/vwait
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/defaults
+%{_libdir}/%{name}/FEATURES.txt
+%{_libdir}/%{name}/util-vserver-vars
%{_libdir}/%{name}/defaults/*
%attr(755,root,root) %{_libdir}/%{name}/capchroot
%attr(755,root,root) %{_libdir}/%{name}/chain-echo
%attr(755,root,root) %{_libdir}/%{name}/check-unixfile
-%attr(755,root,root) %{_libdir}/%{name}/chroot-*
+%attr(755,root,root) %{_libdir}/%{name}/chcontext-compat
+%attr(755,root,root) %{_libdir}/%{name}/chroot-sh
%attr(755,root,root) %{_libdir}/%{name}/exec-ulimit
%attr(755,root,root) %{_libdir}/%{name}/fakerunlevel
%attr(755,root,root) %{_libdir}/%{name}/filetime
%attr(755,root,root) %{_libdir}/%{name}/vservers.grabinfo.sh
%attr(755,root,root) %{_libdir}/%{name}/vshelper
%attr(755,root,root) %{_libdir}/%{name}/vshelper-sync
-%{_mandir}/man8/*
-%attr(0,root,root) %dir /vservers
+%{_mandir}/man8/chbind.8*
+%{_mandir}/man8/chcontext.8*
+%{_mandir}/man8/reducecap.8*
+%{_mandir}/man8/vps.8*
+%{_mandir}/man8/vpstree.8*
+%{_mandir}/man8/vserver-stat.8*
+%{_mandir}/man8/vserver.8*
+%{_mandir}/man8/vtop.8*
+%attr(000,root,root) %dir /vservers
%attr(755,root,root) %dir /vservers/.pkg
%dir %{_localstatedir}/run/vservers
%dir %{_localstatedir}/run/vservers.rev
%files devel
%defattr(644,root,root,755)
-%doc lib/apidoc/latex/refman.pdf lib/apidoc/html
+%{?with_doc:%doc lib/apidoc/latex/refman.pdf lib/apidoc/html}
%attr(755,root,root) %{_libdir}/lib*.so
%{_libdir}/lib*.la
-%{_includedir}/vserver.h
+%{_includedir}/vserver*.h
%{_pkgconfigdir}/*.pc
%files static
%attr(754,root,root) /etc/rc.d/init.d/vprocunhide
%attr(754,root,root) /etc/rc.d/init.d/vservers-default
-%files core
-%defattr(644,root,root,755)
-%dir %{_libdir}/%{name}
-%{_libdir}/%{name}/FEATURES.txt
-%{_libdir}/%{name}/util-vserver-vars
-%attr(755,root,root) %{_libdir}/%{name}/chcontext-compat
-%attr(755,root,root) %{_sbindir}/chbind
-%attr(755,root,root) %{_sbindir}/chcontext
-%attr(755,root,root) %{_sbindir}/chxid
-%attr(755,root,root) %{_sbindir}/lsxid
-%attr(755,root,root) %{_sbindir}/reducecap
-%attr(755,root,root) %{_sbindir}/setattr
-%attr(755,root,root) %{_sbindir}/showattr
-%attr(755,root,root) %{_sbindir}/vattribute
-%attr(755,root,root) %{_sbindir}/vcontext
-%attr(755,root,root) %{_sbindir}/vdlimit
-%attr(755,root,root) %{_sbindir}/vnamespace
-%attr(755,root,root) %{_sbindir}/vkill
-%attr(755,root,root) %{_sbindir}/vlimit
-%attr(755,root,root) %{_sbindir}/vrsetup
-%attr(755,root,root) %{_sbindir}/vsched
-%attr(755,root,root) %{_sbindir}/vserver-info
-%attr(755,root,root) %{_sbindir}/vuname
-%{_mandir}/man8/chbind*
-%{_mandir}/man8/chcontext*
-%{_mandir}/man8/reducecap*
-
%files build
%defattr(644,root,root,755)
-%doc contrib/yum*.patch
-%dir %{_sysconfdir}/vservers/.distributions
-%{_sysconfdir}/vservers/.distributions/.common
-%{_sysconfdir}/vservers/.distributions/*
+%doc contrib/yum*.patch package-menagament.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/[frs]*
+%dir %{_sysconfdir}/vservers/.distributions/[frs]*/apt
+%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/[frs]*/apt/sources.list
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/pld2.0/poldek/poldek.conf
%attr(755,root,root) %{_libdir}/%{name}/rpm-fake*
%dir %{_libdir}/%{name}/distributions
-%{_libdir}/%{name}/distributions/*
+%attr(-, root, root) %{_libdir}/%{name}/distributions/*
%{_libdir}/%{name}/vserver-build.*
%{_libdir}/%{name}/vserver-setup.functions
%{_libdir}/%{name}/defaults/fstab
%{_libdir}/%{name}/defaults/vunify-exclude
%attr(755,root,root) %{_libdir}/%{name}/pkgmgmt
%attr(755,root,root) %{_libdir}/%{name}/vapt-get-worker
-%attr(755,root,root) %{_libdir}/%{name}/vbuild
-%attr(755,root,root) %{_libdir}/%{name}/vcheck
%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-*
%attr(755,root,root) %{_libdir}/%{name}/vserver-build
%attr(755,root,root) %{_libdir}/%{name}/vunify
%attr(755,root,root) %{_libdir}/%{name}/vyum-worker
%attr(755,root,root) %{_sbindir}/vapt-get
-%attr(755,root,root) %{_sbindir}/vfiles
+%attr(755,root,root) %{_sbindir}/vpoldek
%attr(755,root,root) %{_sbindir}/vrpm
%attr(755,root,root) %{_sbindir}/vyum
-%{_mandir}/man8/vserver-copy*
%files legacy
%defattr(644,root,root,755)
-%dir /etc/vservices
-/etc/vservices/*
+%dir %{_sysconfdir}/vservices
+%{_sysconfdir}/vservices/*
%dir %{_libdir}/%{name}/legacy
%attr(755,root,root) %{_libdir}/%{name}/legacy/*
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vservers-legacy
%attr(754,root,root) /etc/rc.d/init.d/rebootmgr
%attr(754,root,root) /etc/rc.d/init.d/vservers-legacy
%attr(755,root,root) %{_sbindir}/vserver-copy
-%{_mandir}/man8/distrib-info*
-%{_mandir}/man8/rebootmgr*
-%{_mandir}/man8/vps.*
+%{_mandir}/man8/distrib-info.8*
+%{_mandir}/man8/rebootmgr.8*
+%{_mandir}/man8/vserver-copy.8*
%files -n vserver-dev
%defattr(644,root,root,755)