# TODO
-# - reject install in %%pretrans if /proc/virtual/info has incompatible version
-# - make pkgmgmnt internalize modify poldek conf to unignore vserver-packages
+# - %install is not re-entrant
#
# m68k and mips are the only not supported archs
#
%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
-#
+
+%ifarch ppc
+# pdflatex: refman: Invalid argument
+%undefine with_doc
+%endif
+
+%define snap pre2926
+%define rel 1
Summary: Linux virtual server utilities
Summary(pl.UTF-8): Narzędzia dla linuksowych serwerów wirtualnych
Name: util-vserver
-Version: 0.30.215
-Release: 10.8
+Version: 0.30.216
+Release: 1.%{snap}.%{rel}
License: GPL
Group: Applications/System
-Source0: http://ftp.linux-vserver.org/pub/utils/util-vserver/%{name}-%{version}.tar.bz2
-# Source0-md5: befd9b8e5311e87395b67ee381d83649
+Source0: http://people.linux-vserver.org/~dhozac/t/uv-testing/%{name}-%{version}-%{snap}.tar.bz2
+# Source0-md5: 236c0ef54b94f8c116afaf7b78396a58
Source1: vprocunhide.init
Source2: vservers.init
Source3: vservers-legacy.init
Source15: %{name}.init
Patch0: %{name}-vsysvwrapper.patch
Patch1: %{name}-pld.patch
+Patch2: %{name}-centos.patch
Patch4: %{name}-m4-diet.patch
Patch5: %{name}-yum-verb-nogpg.patch
Patch6: %{name}-build-umask.patch
Patch15: %{name}-interfaces-ignore-cvs-dir.patch
Patch16: %{name}-personalitymachine.patch
Patch17: %{name}-backupfiles.patch
-Patch18: %{name}-trunk_fixes.patch
-Patch19: %{name}-vprocunhide-net.patch
-Patch20: %{name}-more-caps.patch
+Patch18: %{name}-vprocunhide-net.patch
# http://glen.alkohol.ee/pld/util-vserver-dbrebuild-internalize4.patch
-Patch21: %{name}-dbrebuild-internalize4.patch
-Patch22: %{name}-dev-stdfd.patch
+Patch19: %{name}-dbrebuild-internalize4.patch
+Patch21: %{name}-bash-wrapper.patch
+Patch22: %{name}-pivot-root-ugly-hack.patch
+Patch24: vunify-more-exclude.patch
+Patch25: stat.patch
URL: http://savannah.nongnu.org/projects/util-vserver/
BuildRequires: autoconf
BuildRequires: automake >= 1.9
BuildRequires: beecrypt-devel
+BuildRequires: ctags
%{?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: pkgconfig
+BuildRequires: python-devel
+BuildRequires: python-modules
+BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: sed >= 4.0
%if %{with doc}
BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: libxslt-progs
+BuildRequires: python-devel
+%if "%{pld_release}" != "th"
+BuildRequires: tetex-fonts-jknappen
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
+%else
+BuildRequires: texlive-fonts-type1-urw
+BuildRequires: texlive-format-pdflatex
+BuildRequires: texlive-latex-ucs
+BuildRequires: texlive-makeindex
+BuildRequires: texlive-pdftex
+BuildRequires: texlive-xetex
+%endif
%{?with_xalan:BuildRequires: xalan-j}
%endif
Requires(post,preun): /sbin/chkconfig
Requires: issue
Requires: make
Requires: mktemp >= 1.5-18
-Requires: rc-scripts
+Requires: rc-scripts >= 0.4.3.4
Requires: tar
-Requires: util-linux
+Requires: util-linux >= 2.13
Requires: vserver-distro-pld = %{version}-%{release}
-Conflicts: poldek < 0.18.8-10
Obsoletes: util-vserver-build
Obsoletes: util-vserver-core
Obsoletes: util-vserver-init
+Conflicts: poldek < 0.18.8-10
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%if %{with dietlibc}
This package contains utilities which are required to communicate with
the Linux-Vserver enabled kernel, utilities which assist in building
-Vservers and SysV initscripts which start and stop Vservers and related
-tools.
+Vservers and SysV initscripts which start and stop Vservers and
+related tools.
%description -l pl.UTF-8
Ten pakiet dostarcza składniki i szkielet do tworzenia wirtualnych
Ten pakiet zawiera narzędzia potrzebne do pracy z Vserwerami mającymi
konfigurację w starym stylu.
+%package -n python-util-vserver
+Summary: Python interface to libutil-vserver library
+Summary(pl.UTF-8): Pythonowy interfejs do biblioteki libutil-vserver
+License: LGPL v2.1+
+Group: Libraries/Python
+
+%description -n python-util-vserver
+Python interface to libutil-vserver library.
+
+%description -n python-util-vserver -l pl.UTF-8
+Pythonowy interfejs do biblioteki libutil-vserver.
+
%package -n vserver-distro-alpine
Summary: VServer build template for Alpine Linux
Summary(pl.UTF-8): Szablon budowania VServerów dla dystrybucji Alpine Linux
Summary(pl.UTF-8): Szablon budowania VServerów dla dystrybucji CentOS
Group: Applications/System
Requires: %{name} = %{version}-%{release}
+Requires: vserver-distro-redhat = %{version}-%{release}
Requires: yum
%description -n vserver-distro-centos
Szablon budowania VServerów dla dystrybucji CentOS 4.2 i 5.
%package -n vserver-distro-debian
-Summary: VServer build templates for Debian
-Summary(pl.UTF-8): Szablony do tworzenia VServerów dla dystrybucji Debian
+Summary: VServer build templates for Debian and Ubuntu
+Summary(pl.UTF-8): Szablony do tworzenia VServerów dla dystrybucji Debian i Ubuntu
Group: Applications/System
Requires: %{name} = %{version}-%{release}
+Requires: debootstrap
Requires: dpkg
+Provides: vserver-distro-ubuntu
+Obsoletes: vserver-distro-ubuntu
%description -n vserver-distro-debian
-VServer build templates for Debian.
+VServer build templates for Debian and Ubuntu.
%description -n vserver-distro-debian -l pl.UTF-8
-Szablony do tworzenia VServerów dla dystrybucji Debian.
+Szablony do tworzenia VServerów dla dystrybucji Debian i Ubuntu.
%package -n vserver-distro-fedora
Summary: VServer build templates for Fedora
Requires: binutils
Requires: e2fsprogs
Requires: rpm
+Requires: vserver-distro-redhat = %{version}-%{release}
Requires: wget
Requires: yum
%description -n vserver-distro-suse -l pl.UTF-8
Szablon do tworzenia VServerów dla dystrybucji SuSE 9.1.
-%package -n vserver-distro-ubuntu
-Summary: VServer build templates for Ubuntu
-Summary(pl.UTF-8): Szablony do tworzenia VServerów dla dystrybucji Ubuntu
-Group: Applications/System
-Requires: %{name} = %{version}-%{release}
-Requires: dpkg
-
-%description -n vserver-distro-ubuntu
-VServer build templates for Ubuntu.
-
-%description -n vserver-distro-ubuntu -l pl.UTF-8
-Szablony do tworzenia VServerów dla dystrybucji Ubuntu.
-
%prep
-%setup -q -a11
+%setup -q -n %{name}-%{version}-%{snap} -a11
%patch0 -p1
%patch1 -p1
+%patch2 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
-%patch20 -p1
%patch21 -p1
%patch22 -p1
+%patch24 -p1
+%patch25 -p1
install %{SOURCE9} package-management.txt
--enable-apis=NOLEGACY \
--with-initscripts=sysv \
--%{?with_dietlibc:en}%{!?with_dietlibc:dis}able-dietlibc \
- MKTEMP=/bin/mktemp \
- MOUNT=/bin/mount \
- PS=/bin/ps \
- UMOUNT=/bin/umount \
+ FSCK=/sbin/fsck \
+ IONICE=%{_usrbin}/ionice \
IP=/sbin/ip \
IPTABLES=%{_usrsbin}/iptables \
+ MKTEMP=/bin/mktemp \
MODPROBE=/sbin/modprobe \
+ MOUNT=/bin/mount \
NAMEIF=/sbin/nameif \
+ PS=/bin/ps \
+ RESTORE=/sbin/restore \
RMMOD=/sbin/rmmod \
+ RSYNC=%{_usrbin}/rsync \
+ STRACE=%{_usrbin}/strace \
+ UMOUNT=/bin/umount \
VCONFIG=/sbin/vconfig \
WGET=%{_usrbin}/wget \
+# end
%{__make} all
%{?with_doc:%{__make} doc}
chmod -R +rX $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/*
for i in $RPM_BUILD_ROOT/etc/rc.d/init.d/v_* ; do
- s=`basename $i | sed s/v_//`
+ s=$(basename $i | sed s/v_//)
cat >$RPM_BUILD_ROOT%{_sysconfdir}/vservices/$s << EOF
# IP addresses/interfaces to bound $s service to
#IP=10.0.0.1
$RPM_BUILD_ROOT/etc/rc.d/init.d/util-vserver
sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE5} > \
$RPM_BUILD_ROOT/etc/sysconfig/vservers
+sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' gentoo/bash-wrapper > \
+ $RPM_BUILD_ROOT%{_libdir}/%{name}/bash-wrapper
install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/vservers-legacy
ln -s ../pld/initpost $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ti/initpost
%endif
install vproc-%{vproc_version}/vproc $RPM_BUILD_ROOT%{_sbindir}
-install %{SOURCE12} $RPM_BUILD_ROOT%{_libdir}/%{name}/vhashify.cron
-install gentoo/bash-wrapper $RPM_BUILD_ROOT%{_libdir}/%{name}
+sed -e 's,/usr/lib,%{_libdir},' %{SOURCE12} > $RPM_BUILD_ROOT%{_libdir}/%{name}/vhashify.cron
+chmod +x $RPM_BUILD_ROOT%{_libdir}/%{name}/vhashify.cron
cat > $RPM_BUILD_ROOT/etc/cron.d/vservers << EOF
02 2 * * 0 root %{_libdir}/%{name}/vhashify.cron
install -d $RPM_BUILD_ROOT/var/cache/vservers/poldek
-# we have our own initscript which does the same
+# cleanups
rm -rf $RPM_BUILD_ROOT/dev
+rm -rf $RPM_BUILD_ROOT%{py_sitedir}/_libvserver.la
+# we have our own initscript which does the same
rm -f $RPM_BUILD_ROOT%{_libdir}/util-vserver/vserver-wrapper
rm -f $RPM_BUILD_ROOT%{_libdir}/util-vserver/vserver-init.functions
rm -f $RPM_BUILD_ROOT/etc/rc.d/init.d/vservers-default
%files
%defattr(644,root,root,755)
-%doc AUTHORS ChangeLog NEWS THANKS doc/intro.txt
-%doc contrib/yum*.patch package-management.txt
+%doc AUTHORS NEWS THANKS doc/intro.txt
+%doc package-management.txt
%{?with_doc:%doc doc/*.html}
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vrootdevices
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vservers
%attr(755,root,root) %{_libdir}/%{name}/chcontext-compat
%attr(755,root,root) %{_libdir}/%{name}/check-unixfile
%attr(755,root,root) %{_libdir}/%{name}/chroot-sh
+%attr(755,root,root) %{_libdir}/%{name}/exec-remount
%attr(755,root,root) %{_libdir}/%{name}/exec-ulimit
%attr(755,root,root) %{_libdir}/%{name}/fakerunlevel
%attr(755,root,root) %{_libdir}/%{name}/filetime
%{_mandir}/man8/rebootmgr.8*
%{_mandir}/man8/vserver-copy.8*
+%files -n python-util-vserver
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py_sitedir}/_libvserver.so
+%{py_sitedir}/libvserver.py
+
%files -n vserver-distro-alpine
%defattr(644,root,root,755)
%dir %{_libdir}/%{name}/distributions/alpine
%files -n vserver-distro-debian
%defattr(644,root,root,755)
%dir %{_libdir}/%{name}/distributions/debian
-%{_libdir}/%{name}/distributions/debian/debootstrap.script
%attr(755,root,root) %{_libdir}/%{name}/distributions/debian/initpost
%{_libdir}/%{name}/distributions/etch
%{_libdir}/%{name}/distributions/lenny
%{_libdir}/%{name}/distributions/sid
+%{_libdir}/%{name}/distributions/squeeze
%files -n vserver-distro-fedora
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/fc*/apt/sources.list
%{_libdir}/%{name}/distributions/f7
%{_libdir}/%{name}/distributions/f8
-%{_libdir}/%{name}/distributions/fc*
+%{_libdir}/%{name}/distributions/f9
+%{_libdir}/%{name}/distributions/f10
+%{_libdir}/%{name}/distributions/f11
+%{_libdir}/%{name}/distributions/f12
+%{_libdir}/%{name}/distributions/f13
+%{_libdir}/%{name}/distributions/fc1
+%{_libdir}/%{name}/distributions/fc2
+%{_libdir}/%{name}/distributions/fc3
+%{_libdir}/%{name}/distributions/fc4
+%{_libdir}/%{name}/distributions/fc5
+%{_libdir}/%{name}/distributions/fc6
%files -n vserver-distro-gentoo
%defattr(644,root,root,755)
%files -n vserver-distro-redhat
%defattr(644,root,root,755)
-%dir %{_sysconfdir}/vservers/.distributions/rh*
-%dir %{_sysconfdir}/vservers/.distributions/rh*/apt
+%dir %{_sysconfdir}/vservers/.distributions/rh9
+%dir %{_sysconfdir}/vservers/.distributions/rh9/apt
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/rh*/apt/sources.list
-%{_libdir}/%{name}/distributions/rh*
+%{_libdir}/%{name}/distributions/rh9
+%dir %{_libdir}/%{name}/distributions/redhat
+%attr(755,root,root) %{_libdir}/%{name}/distributions/redhat/initctl
+%attr(755,root,root) %{_libdir}/%{name}/distributions/redhat/initpost
+%attr(755,root,root) %{_libdir}/%{name}/distributions/redhat/initpre
+%attr(755,root,root) %{_libdir}/%{name}/distributions/redhat/rc.sysinit
%files -n vserver-distro-suse
%defattr(644,root,root,755)
%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-ubuntu
-%defattr(644,root,root,755)
-%{_libdir}/%{name}/distributions/breezy
-%{_libdir}/%{name}/distributions/dapper
-%{_libdir}/%{name}/distributions/edgy
-%{_libdir}/%{name}/distributions/feisty
-%{_libdir}/%{name}/distributions/gutsy
-%{_libdir}/%{name}/distributions/hoary
-%{_libdir}/%{name}/distributions/warty