+# TODO
+# - somewhy empty /var/cache/vservers is needed when building pld vserver
+#
+# 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
-
+#
Summary: Linux virtual server utilities
Summary(pl): Narzêdzia dla linuksowych serwerów wirtualnych
Name: util-vserver
-Version: 0.30.207
-Release: 5.5
+Version: 0.30.210
+Release: 4
License: GPL
Group: Applications/System
Source0: http://www.13thfloor.at/~ensc/util-vserver/files/alpha/%{name}-%{version}.tar.bz2
-# Source0-md5: 1c8457a687643ae8a7b1f1d34ebbdd68
+# Source0-md5: 1e8fff7cb6246d21ed029f082123019b
Source1: vprocunhide.init
-Source2: vservers-default.init
+Source2: vservers.init
Source3: vservers-legacy.init
Source4: rebootmgr.init
-Source5: vservers-default.sysconfig
+Source5: vservers.sysconfig
Source6: vservers-legacy.sysconfig
-# A bit of documentation explaining package menagement
+Source7: vrootdevices.init
+Source8: vrootdevices.sysconfig
+# A bit of documentation explaining package management
# http://www.paul.sladen.org/vserver/archives/200505/0078.html
-Source7: util-vserver-pkgmgmt.txt
-Patch0: %{name}-no-kernel-includes.patch
-Patch1: %{name}-vsysvwrapper.patch
-Patch2: %{name}-pld.patch
-Patch3: %{name}-build-poldek.patch
-Patch4: %{name}-include.patch
-Patch5: %{name}-m4-diet.patch
+Source9: %{name}-pkgmgmt.txt
+Source10: %{name}-initpost.sh
+Patch0: %{name}-vsysvwrapper.patch
+Patch1: %{name}-pld.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
URL: http://savannah.nongnu.org/projects/util-vserver/
BuildRequires: autoconf
BuildRequires: automake >= 1.9
%{?with_dietlibc:BuildRequires: dietlibc-static >= 2:0.29}
BuildRequires: libstdc++-devel
BuildRequires: libtool >= 1.5.14
-BuildREquires: sed
+%ifarch %{x8664}
+BuildRequires: sed >= 4.0
+%endif
%if %{with doc}
BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: libxslt-progs
BuildRequires: tetex-format-pdflatex
BuildRequires: tetex-makeindex
+# To be removed when tetex-format-pdflatex, tetex-pdftex...
+# ...and graphviz packages get fixed
+BuildRequires: ghostscript
+BuildRequires: ghostscript-fonts-std
+BuildRequires: tetex-fonts-jknappen
+BuildRequires: tetex-metafont
%{?with_xalan:BuildRequires: xalan-j}
%endif
-PreReq: rc-scripts
-Requires: util-linux
Requires(post,preun): /sbin/chkconfig
Requires: %{name}-lib = %{version}-%{release}
-Obsoletes: %{name}-core
+Requires: issue
+Requires: rc-scripts
+Requires: util-linux
+Obsoletes: util-vserver-core
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+# for adapter
+%define _usrbin /usr/bin
+%define _usrsbin /usr/sbin
+%define _usrlib /usr/lib
+
%description
This package provides the components and a framework to setup virtual
servers. A virtual server runs inside a Linux server. It is
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
-Requires: binutils
+Requires: %{name} = %{version}-%{release}
Requires: e2fsprogs
-Requires: rpm
-Requires: tar
-Requires: wget
Conflicts: poldek < 0.18.8-10
-Requires: %{name} = %{version}-%{release}
%description build
util-vserver provides the components and a framework to setup virtual
Ten pakiet zawiera narzêdzia pomagaj±ce przy budowaniu Vserwerów.
+%package -n vserver-distro-fedora
+Summary: VServer build templates for Fedora Core
+Summary(pl): Szablony do tworzenia VServerów dla dystrybucji Fedora Core
+Group: Applications/System
+Requires: %{name} = %{version}-%{release}
+Requires: binutils
+Requires: e2fsprogs
+Requires: rpm
+Requires: tar
+Requires: wget
+
+%description -n vserver-distro-fedora
+VServer build templates for Fedora Core 1,2,3,4.
+
+%description -n vserver-distro-fedora -l pl
+Szablony do tworzenia VServerów dla dystrybucji Fedora Core 1,2,3,4.
+
+%package -n vserver-distro-redhat
+Summary: VServer build template for Red Hat Linux 9
+Summary(pl): Szablon do tworzenia VServerów dla dystrybucji Red Hat Linux 9
+Group: Applications/System
+Requires: %{name} = %{version}-%{release}
+Requires: binutils
+Requires: e2fsprogs
+Requires: rpm
+Requires: tar
+Requires: wget
+
+%description -n vserver-distro-redhat
+VServer build template for RedHat Linux 9.
+
+%description -n vserver-distro-redhat -l pl
+Szablon do tworzenia VServerów dla dystrybucji Red Hat Linux 9.
+
+%package -n vserver-distro-suse
+Summary: VServer build template for SuSE 9.1
+Summary(pl): Szablon do tworzenia VServerów dla dystrybucji SuSE 9.1
+Group: Applications/System
+Requires: %{name} = %{version}-%{release}
+Requires: binutils
+Requires: e2fsprogs
+Requires: rpm
+Requires: tar
+Requires: wget
+
+%description -n vserver-distro-suse
+VServer build template for SuSE Linux 9.1.
+
+%description -n vserver-distro-suse -l pl
+Szablon do tworzenia VServerów dla dystrybucji SuSE 9.1.
+
+%package -n vserver-distro-centos
+Summary: VServer build template for CentOS 4.2
+Summary(pl): Szablon budowania VServera dla CentOS 4.2
+Group: Applications/System
+Requires: util-vserver-build
+Requires: yum
+
+%description -n vserver-distro-centos
+VServer build template for CentOS 4.2.
+
+%description -n vserver-distro-centos -l pl
+Szablon budowania VServera dla CentOS 4.2.
+
%package init
Summary: initscripts for vserver
Summary(pl): Skrypty inicjalizuj±ce dla vserwera
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
+Requires: setup >= 2.4.1-2
Provides: dev = 2.9.0-19
Provides: devfs
AutoReqProv: no
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
+%patch7 -p1
-install %{SOURCE7} package-menagament.txt
+install %{SOURCE9} package-management.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 \
+ --enable-apis=NOLEGACY \
%{?with_dietlibc:--enable-dietlibc} \
%{!?with_dietlibc:--disable-dietlibc} \
MKTEMP=/bin/mktemp \
PS=/bin/ps \
UMOUNT=/bin/umount \
IP=/sbin/ip \
- IPTABLES=/usr/sbin/iptables \
+ IPTABLES=%{_usrsbin}/iptables \
MODPROBE=/sbin/modprobe \
NAMEIF=/sbin/nameif \
RMMOD=/sbin/rmmod \
VCONFIG=/sbin/vconfig \
- WGET=/usr/bin/wget \
+ WGET=%{_usrbin}/wget \
%{__make} all
%{?with_doc:%{__make} doc}
%{__make} install install-distribution \
DESTDIR=$RPM_BUILD_ROOT
-install vserver-compat.h $RPM_BUILD_ROOT%{_includedir}/
+cp -a vserver-compat.h $RPM_BUILD_ROOT%{_includedir}
chmod -R +rX $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/*
-install -d $RPM_BUILD_ROOT/etc/vservices
+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
-sed 's|/usr/lib/util-vserver|%{_libdir}/%{name}|g' %{SOURCE1} > \
+sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE1} > \
$RPM_BUILD_ROOT/etc/rc.d/init.d/vprocunhide
-sed 's|/usr/lib/util-vserver|%{_libdir}/%{name}|g' %{SOURCE2} > \
- $RPM_BUILD_ROOT/etc/rc.d/init.d/vservers-default
-sed 's|/usr/lib/util-vserver|%{_libdir}/%{name}|g' %{SOURCE3} > \
+sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE2} > \
+ $RPM_BUILD_ROOT/etc/rc.d/init.d/vservers
+sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE3} > \
$RPM_BUILD_ROOT/etc/rc.d/init.d/vservers-legacy
-sed 's|/usr/lib/util-vserver|%{_libdir}/%{name}|g' %{SOURCE4} > \
+sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE4} > \
$RPM_BUILD_ROOT/etc/rc.d/init.d/rebootmgr
+sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE5} > \
+ $RPM_BUILD_ROOT/etc/sysconfig/vservers
-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
+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
+
+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
%postun lib -p /sbin/ldconfig
%post init
-/sbin/chkconfig --add vservers-default
+/sbin/chkconfig --add vrootdevices
/sbin/chkconfig --add vprocunhide
-#if [ -r /var/lock/subsys/vprocunhide ]; then
-# /etc/rc.d/init.d/vprocunhide restart >&2
-#fi
-#if [ -r /var/lock/subsys/vservers-default ]; then
-# /etc/rc.d/init.d/vservers-default restart >&2
-#fi
+/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
+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
+fi
+if [ ! -f /var/lock/subsys/vservers ]; then
+ echo "Type \"/etc/rc.d/init.d/vservers start\" to start vservers" 1>&2
+fi
%preun init
if [ "$1" = "0" ]; then
- if [ -r /var/lock/subsys/vprocunhide ]; 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/vservers-default ]; then
- /etc/rc.d/init.d/vservers-default stop >&2
- fi
- /sbin/chkconfig --del vprocunhide
- /sbin/chkconfig --del vservers-default
+ fi
+ if [ -r /var/lock/subsys/vrootdevices ]; then
+ /etc/rc.d/init.d/vrootdevices stop >&2
+ fi
+ /sbin/chkconfig --del vservers
+ /sbin/chkconfig --del vprocunhide
+ /sbin/chkconfig --del vrootdevices
fi
%post legacy
/sbin/chkconfig --add rebootmgr
/sbin/chkconfig --add vservers-legacy
-#if [ -r /var/lock/subsys/rebootmgr ] ; then
-# /etc/rc.d/init.d/rebootmgr restart >&2
-#fi
-#if [ -r /var/lock/subsys/vservers-legacy ] ; then
-# /etc/rc.d/init.d/vservers-legacy restart >&2
-#fi
+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
+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
+fi
%preun legacy
if [ "$1" = "0" ]; then
/sbin/chkconfig --del vservers-legacy
fi
+%triggerpostun build -- %{name}-build < 0.30.209-2.1
+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
+
%files
%defattr(644,root,root,755)
%doc AUTHORS ChangeLog NEWS THANKS doc/intro.txt
%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
%attr(755,root,root) %{_libdir}/%{name}/chain-echo
%attr(755,root,root) %{_libdir}/%{name}/check-unixfile
%attr(755,root,root) %{_libdir}/%{name}/chcontext-compat
-%attr(755,root,root) %{_libdir}/%{name}/chroot-*
+%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
%{_mandir}/man8/vserver-stat.8*
%{_mandir}/man8/vserver.8*
%{_mandir}/man8/vtop.8*
-%attr(0,root,root) %dir /vservers
+%attr(000,root,root) %dir /vservers
%attr(755,root,root) %dir /vservers/.pkg
%dir %{_localstatedir}/run/vservers
%dir %{_localstatedir}/run/vservers.rev
%dir %{_localstatedir}/run/vshelper
+%dir /var/cache/vservers
%files devel
%defattr(644,root,root,755)
%files init
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/%{name}/vsysvwrapper
-%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vservers-default
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vrootdevices
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vservers
%attr(754,root,root) /etc/rc.d/init.d/vprocunhide
-%attr(754,root,root) /etc/rc.d/init.d/vservers-default
+%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-menagament.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/[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 size mtime) %{_sysconfdir}/vservers/.distributions/[frs]*/apt/sources.list
-%config(noreplace) %verify(not md5 size mtime) %{_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/*
+%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*
%{_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}/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
+%files -n vserver-distro-fedora
+%defattr(644,root,root,755)
+%dir %{_sysconfdir}/vservers/.distributions/fc*
+%dir %{_sysconfdir}/vservers/.distributions/fc*/apt
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/fc*/apt/sources.list
+%{_libdir}/%{name}/distributions/fc*
+
+%files -n vserver-distro-redhat
+%defattr(644,root,root,755)
+%dir %{_sysconfdir}/vservers/.distributions/rh*
+%dir %{_sysconfdir}/vservers/.distributions/rh*/apt
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/rh*/apt/sources.list
+%{_libdir}/%{name}/distributions/rh*
+
+%files -n vserver-distro-suse
+%defattr(644,root,root,755)
+%dir %{_sysconfdir}/vservers/.distributions/suse*
+%dir %{_sysconfdir}/vservers/.distributions/suse*/apt
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/suse*/apt/sources.list
+%{_libdir}/%{name}/distributions/suse*
+
+%files -n vserver-distro-centos
+%defattr(644,root,root,755)
+%{_libdir}/util-vserver/distributions/centos42
+
%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