#
# 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.4
-Epoch: 0
+Release: 5
License: GPL
Group: Base
Source0: http://www.13thfloor.at/~ensc/util-vserver/files/alpha/%{name}-%{version}.tar.bz2
Source4: rebootmgr.init
Source5: vservers-default.sysconfig
Source6: vservers-legacy.sysconfig
+# A bit of documentation explaining package menagement
+# 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
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
+%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}
+%endif
PreReq: rc-scripts
Requires(post,preun): /sbin/chkconfig
+Requires: %{name}-core = %{version}-%{release}
+Requires: %{name}-lib = %{version}-%{release}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
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
Summary(pl): Podstawowe narzêdzia dla util-vserver
Group: Applications/System
Requires: util-linux
+Requires: %{name} = %{version}-%{release}
%description core
util-vserver provides the components and a framework to setup virtual
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-6
+# remove the following when poldek 0.19 will have --rpmcmd oprion
+Conflicts: poldek >= 0.19
Requires: %{name} = %{version}-%{release}
%description build
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
+PreReq: 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
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+
+install %{SOURCE7} package-menagament.txt
+
+cp -a compat.h vserver-compat.h
%build
+%{__aclocal} -I m4
+%{__automake}
%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=/usr/sbin/iptables \
+ MODPROBE=/sbin/modprobe \
+ NAMEIF=/sbin/nameif \
+ RMMOD=/sbin/rmmod \
+ VCONFIG=/sbin/vconfig \
+ WGET=/usr/bin/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}}
+install -d $RPM_BUILD_ROOT{/vservers,/etc/{sysconfig,rc.d/init.d},/dev/pts}
%{__make} install install-distribution \
DESTDIR=$RPM_BUILD_ROOT
+install 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/vservers/.pkg
ln -s /vservers $RPM_BUILD_ROOT%{_sysconfdir}/vservers/vdirbase
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
+
%clean
rm -rf $RPM_BUILD_ROOT
%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
%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
%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 size mtime) %{_sysconfdir}/vservers/.distributions/[frs]*/apt/sources.list
+%config(noreplace) %verify(not md5 size mtime) %{_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
%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*
%{_mandir}/man8/distrib-info*
%{_mandir}/man8/rebootmgr*
%{_mandir}/man8/vps.*
+
+%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