-# $Id: util-vserver.spec.in,v 1.49 2005/07/15 19:06:58 ensc Exp $
+# $Id: util-vserver.spec.in 2807 2008-10-30 01:59:52Z dhozac $
+
+%if "%{?_without_python:1}" != "1"
+%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
+%endif
## This package understands the following switches:
## --without dietlibc ... disable usage of dietlibc
-## --without xalan ... do not require/use the xalan xslt processor
+## --with xalan ... require/use the xalan xslt processor
+## --without doc ... disable doc generation
+## --with legacy ... enable the legacy APIs
%global confdir %_sysconfdir/vservers
%global confdefaultdir %confdir/.defaults
%global pkglibdir %_libdir/%name
-%global __chattr /usr/bin/chattr
%global chkconfig /sbin/chkconfig
%global _localstatedir %_var
+%global fullver 0.30.216-pre2883
+%global modulever 0.30.216
+%global ver %( echo %fullver | sed 's/-.*//' )
+%global subver %( s=`echo %fullver | grep -- - | sed 's/.*-/./'`; echo ${s:-.1} )
-%{!?release_func:%global release_func() %1%{?dist}}
-
-%define name util-vserver
-%define version 0.30.208
-%define release 10%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+# for module-tools
+%global module_version_varname modulever
+%global taglevel 2
-%define _without_dietlibc 1
-%define _without_xalan 1
-
-# don't build debuginfo RPM
-%define debug_package %{nil}
-
-Vendor: PlanetLab
-Packager: PlanetLab Central <support@planet-lab.org>
-Distribution: PlanetLab 3.0
-URL: http://cvs.planet-lab.org/cvs/util-vserver
+%{!?release_func:%global release_func() %1%{?dist}}
Summary: Linux virtual server utilities
Name: util-vserver
-Version: 0.30.208
-Release: %{release}
+Version: %ver
+Release: %taglevel
License: GPL
Group: System Environment/Base
-#URL: http://savannah.nongnu.org/projects/util-vserver/
-Source0: http://savannah.nongnu.org/download/util-vserver/stable.pkg/%version/%name-%version.tar.bz2
+URL: http://savannah.nongnu.org/projects/util-vserver/
+Source0: http://ftp.linux-vserver.org/pub/utils/util-vserver/%name-%fullver.tar.bz2
+Source1: fstab
+Patch1: f12.patch
+Patch2: f13.patch
BuildRoot: %_tmppath/%name-%version-%release-root
Requires: init(%name)
Requires: %name-core = %version-%release
Requires: diffutils mktemp sed
Provides: vserver = %version-%release
Obsoletes: vserver < %version
-BuildRequires: mount vconfig gawk iproute iptables
+BuildRequires: mount vconfig gawk /sbin/ip iptables
BuildRequires: gcc-c++ wget which diffutils
-BuildRequires: e2fsprogs-devel beecrypt-devel
-BuildRequires: doxygen tetex-latex
+BuildRequires: e2fsprogs-devel e2fsprogs
+%{!?_without_beecrypt:BuildRequires: beecrypt-devel}
+%{?_without_beecrypt:BuildRequires: nss-devel}
+BuildRequires: e2fsprogs
+%{!?_without_doc:BuildRequires: doxygen tetex-latex}
+%{!?_without_python:BuildRequires: python python-devel ctags}
+Requires(post): %name-core
Requires(pre): %pkglibdir
Requires(postun): %pkglibdir
%{!?_without_dietlibc:BuildRequires: dietlibc >= 0:0.25}
-%{!?_without_xalan:BuildRequires: xalan-j}
+%{?_with_xalan:BuildRequires: xalan-j}
%package lib
Summary: Dynamic libraries for util-vserver
%package build
Summary: Tools which can be used to build vservers
Group: Applications/System
-Requires: rpm wget binutils tar e2fsprogs
+Requires: rpm wget binutils tar
Requires: %name = %version-%release
Requires(pre): %confdir
Requires(postun): %confdir
-
-%ifarch %ix86
-# Remove apt dependency, this is not available on Fedora Core
-# Requires: apt
-%endif
+Requires(post): %name-core
%package sysv
Summary: SysV-initscripts for vserver
Requires: %name-lib = %version-%release
%package python
-Summary: Python modules for manipulating vservers
-Group: Applications/System
-Requires: python util-python
-Obsoletes: util-vserver-py23
+Summary: Python bindings to develop vserver-based applications
+Group: Development/Libraries
+Requires: %name-lib = %version-%release
%description
This package contains header files and libraries which are needed to
develop VServer related applications.
-
%description python
-Python modules for manipulating vservers. Provides a superset of the
-functionality of the vserver script (at least will do in the future),
-but more readily accessible from Python code.
+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 the files needed to interface with the
+Linux-VServer API from Python.
-%prep
-%setup -q
-aclocal -I m4
-autoconf
-automake --add-missing
+%prep
+%setup -q -n %name-%fullver
+%patch1 -p0
+%patch2 -p1
+autoreconf -fi
%build
%configure --with-initrddir=%_initrddir --enable-release \
- %{?_without_dietlibc:--disable-dietlibc}
+ %{?_without_dietlibc:--disable-dietlibc} \
+ %{?_with_legacy:--enable-apis=NOLEGACY} \
+ --with-initscripts=sysv \
+ %{?_without_python:--without-python}
%__make %{?_smp_mflags} all
-%__make %{?_smp_mflags} doc
+%{!?_without_doc:%__make %{?_smp_mflags} doc}
-%__make -C python
%install
rm -rf $RPM_BUILD_ROOT
MANIFEST_CONFIG_NOREPLACE='%config(noreplace)' \
contrib/make-manifest %name $RPM_BUILD_ROOT contrib/manifest.dat
-# install python bindings
-%__make -C python DESTDIR="$RPM_BUILD_ROOT" install
-
+install -c -m 755 %{SOURCE1} %{buildroot}/%pkglibdir/defaults/fstab
-%check || :
-#%__make check
+%check
+%__make check
%clean
test -d /vservers || mkdir -m0000 /vservers
test -d /vservers/.pkg || mkdir -m0755 /vservers/.pkg
-f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers "$f"
-f="%confdefaultdir/run.rev"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/run/vservers.rev "$f"
-
-%_sbindir/setattr --barrier /vservers || :
+f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers "$f"
+f="%confdefaultdir/run.rev"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/run/vservers.rev "$f"
+f="%confdefaultdir/cachebase"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/cache/vservers "$f"
-# add /bin/vsh to list of secure shells
-if [ ! -f /etc/shells ] || ! grep -q '^/bin/vsh$' /etc/shells ; then
- echo /bin/vsh >> /etc/shells
-fi
+%_sbindir/setattr --barrier /vservers /vservers/.pkg || :
-%postun
-# 0 = erase, 1 = upgrade
-if [ "$1" = 0 ] ; then
- perl -i -n -e 'next if /^\/bin\/vsh$/; print' /etc/shells
-fi
+%preun
+test "$1" != 0 || rm -rf %_localstatedir/cache/vservers/* 2>/dev/null || :
%post lib -p /sbin/ldconfig
%post sysv
-#%chkconfig --add vservers-default
-#%chkconfig --add vprocunhide
-# PlanetLab Node Manager takes care of starting and stopping VServers
-%chkconfig --del vservers-default
-# PlanetLab does not require /proc security
-%chkconfig --del vprocunhide
+%chkconfig --add vservers-default
+%chkconfig --add vprocunhide
+%chkconfig --add util-vserver
+%chkconfig util-vserver on
%preun sysv
-#test "$1" != 0 || %_initrddir/vprocunhide stop &>/dev/null || :
+test "$1" != 0 || %_initrddir/vprocunhide stop &>/dev/null || :
-#test "$1" != 0 || %chkconfig --del vprocunhide
-#test "$1" != 0 || %chkconfig --del vservers-default
+test "$1" != 0 || %chkconfig --del vprocunhide
+test "$1" != 0 || %chkconfig --del vservers-default
+test "$1" != 0 || %chkconfig --del util-vserver
%postun sysv
-#test "$1" = 0 || %_initrddir/vprocunhide condrestart >/dev/null || :
+test "$1" = 0 || %_initrddir/vprocunhide condrestart >/dev/null || :
-%triggerin build -- fedora-release
+%triggerin build -- fedora-release, centos-release
function copy()
{
base=$1
}
copy fedora /usr/share/doc/fedora-release-*/RPM-GPG-*
copy fedora /etc/pki/rpm-gpg/RPM-GPG-*
+copy centos /usr/share/doc/centos-*/RPM-GPG-KEY-*
+
+
+%pre build
+x="%_libdir/util-vserver/distributions/etch"
+test -d "$x" && mv "$x" "$x.rpmsave" || :
+
+
+%post build
+test -d /vservers/.hash || mkdir -m0700 /vservers/.hash
+
+f="%confdefaultdir/apps/vunify/hash"; test -e "$f"/method -o -e "$f"/00 || \
+ ln -s /vservers/.hash "$f"/00
+
+%_sbindir/setattr --barrier /vservers/.hash || :
%preun build
%post legacy
-# PlanetLab Node Manager takes care of starting and stopping VServers
-#%chkconfig --add rebootmgr
-#%chkconfig --add vservers-legacy
+%chkconfig --add rebootmgr
+%chkconfig --add vservers-legacy
-# PlanetLab does not require these legacy services
-#for i in %v_services; do
-# %chkconfig --add v_$i
-#done
+for i in %v_services; do
+ %chkconfig --add v_$i
+done
%preun legacy
-#test "$1" != 0 || %_initrddir/rebootmgr stop &>/dev/null || :
+test "$1" != 0 || %_initrddir/rebootmgr stop &>/dev/null || :
-#test "$1" != 0 || for i in %v_services; do
-# %chkconfig --del v_$i
-#done
+test "$1" != 0 || for i in %v_services; do
+ %chkconfig --del v_$i
+done
-#test "$1" != 0 || %chkconfig --del rebootmgr
-#test "$1" != 0 || %chkconfig --del vservers-legacy
+test "$1" != 0 || %chkconfig --del rebootmgr
+test "$1" != 0 || %chkconfig --del vservers-legacy
%postun legacy
-#test "$1" = 0 || %_initrddir/rebootmgr condrestart >/dev/null || :
+test "$1" = 0 || %_initrddir/rebootmgr condrestart >/dev/null || :
%files -f %name-base.list
%dir %confdefaultdir/apps
%dir %confdefaultdir/files
%dir %pkglibdir/defaults
+%ghost %confdefaultdir/cachebase
%ghost %confdefaultdir/vdirbase
%ghost %confdefaultdir/run.rev
+%dir %_localstatedir/cache/vservers
%dir %_localstatedir/run/vservers
%dir %_localstatedir/run/vservers.rev
%dir %_localstatedir/run/vshelper
%files devel -f %name-devel.list
%defattr(-,root,root,-)
-%doc lib/apidoc/latex/refman.pdf
-%doc lib/apidoc/html
+%{!?_without_doc:%doc lib/apidoc/latex/refman.pdf}
+%{!?_without_doc:%doc lib/apidoc/html}
%files python
-%defattr(0644,root,root)
-%_libdir/python2.3/site-packages/*
+%defattr(-,root,root,-)
+%{!?_without_python:%{python_sitearch}/*}
%changelog
-* Fri Feb 17 2006 Steve Muir <smuir@cs.princeton.edu>
-- add support for setting guaranteed CPU share flag in rspec
-
-* Fri Jan 13 2006 Steve Muir <smuir@cs.princeton.edu>
-- fix bug in python/vserverimpl.c where attempting to adjust CPU share
- for a context that didn't exist would cause an error (it should be a
- safe no-op)
-
-* Fri Dec 2 2005 Steve Muir <smuir@cs.princeton.edu>
-- fix bugs in python/vserverimpl.c where exceptions were not raised when
- they should be and thus occured later at unexpected times
-- add support for stopping a vserver
-
-* Wed Nov 9 2005 Steve Muir <smuir@cs.princeton.edu>
-- add support for removing resource limits e.g., when a slice is deleted
-
-* Mon Nov 7 2005 Steve Muir <smuir@cs.princeton.edu>
-- fix file descriptor leak in vduimpl
-- clean up handling of network parameters
-- don't rely upon /etc/vservers/foo.conf to initialise vserver object
-
-* Wed Nov 2 2005 Steve Muir <smuir@cs.princeton.edu>
-- fix Python modules to handling scheduling parameters correctly
+* Tue Jun 01 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-2
+- remove tmpfs mounted /tmp from fstab template
-* Fri Oct 28 2005 Steve Muir <smuir@cs.princeton.edu>
-- raise exception about being over disk limit after setting usage values
+* Tue May 11 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-1
-* Fri Oct 7 2005 Steve Muir <smuir@cs.princeton.edu>
-- create common function to be used for entering a vserver and applying
- resource limits
+* Mon Jun 25 2007 Daniel Hokka Zakrisson <daniel@hozac.com> - 0.30.214-0
+- updated URLs
+- get rid of e2fsprogs requirement
-* Thu Aug 21 2005 Mark Huang <mlhuang@cs.princeton.edu>
-- restore build of python modules
+* Fri Dec 29 2006 Daniel Hokka Zakrisson <daniel@hozac.com> - 0.30.213-0
+- add --with legacy and --without doc switches
+- add util-vserver initscript
-* Sat Aug 20 2005 Mark Huang <mlhuang@cs.princeton.edu>
-- upgrade to util-vserver-0.30.208
-- forward-port vbuild and legacy support until we can find a suitable
- replacement
-- make vsh use new vc_create_context() call
+* Sun Jan 22 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.30.210-0
+- do not require 'xalan' anymore by default
+- removed 'Requires: apt'; apt-rpm is not maintained upstream anymore
+- removed 'chattr' leftovers
+- create the '/etc/vservers/.defaults/cachebase' symlink
+- added /var/cache/vservers and the needed support
+- set barrier attribute on /vservers/.pkg and /vservers/.hash
+- added 'centos-release' to the list of packages in the copy-the-keys
+ trigger script
+- create '/vservers/.hash' and add initial configuration for it
-* Thu Jul 28 2005 Steve Muir <smuir@cs.princeton.edu>
-- add support for static vserver IDs to vuseradd and vuserdel
+* Sun Oct 30 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.209-0
+- version 0.30.209
+- copy centos keys
-* Thu Jul 21 2005 Steve Muir <smuir@cs.princeton.edu>
-- add bwlimit and cpulimit modules
+* Sat Jul 16 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.208-2
+- updated URLs
* Fri Jul 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.208-1
+- version 0.30.208
- require the -lib subpackage by -devel
- copy GPG keys from /etc/pki/rpm-gpg/
-* Mon Jun 20 2005 Steve Muir <smuir@cs.princeton.edu>
-- import Marc's vdu implementation
-
-* Wed Jun 15 2005 Steve Muir <smuir@cs.princeton.edu>
-- 'vserver-init start' functionality subsumed by Node Manager
-
-* Thu Jun 02 2005 Marc E. Fiuczynski <mef@cs.princeton.edu>
-- Fixed vlimit command
-
-* Wed May 25 2005 Steve Muir <smuir@cs.princeton.edu>
-- add Python modules for manipulating vservers
-
* Fri Apr 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.206-1
- added patches to make yum work in chroot environments
- version 0.30.206
-* Thu Apr 7 2005 Steve Muir <smuir@cs.princeton.edu>
-- vuserdel changes: don't shutdown vserver, just kill all processes;
- unmount all mountpoints in vserver before deleting
-
* Thu Mar 24 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.205-0
- added some %%descriptions
- copy GPG keys from the system into the confdir
- do not ship the /vservers directory itself; as it is immutable, the
extraction will fail else
-* Fri Nov 19 2004 Mark Huang <mlhuang@cs.princeton.edu>
-- vcached no longer runs as a daemon
-- do not restart vservers when package is upgraded
-
-* Wed Nov 17 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-6.planetlab
-+ planetlab-3_0-rc4
-- PL2445
-- Both vcached and vuseradd now print a warning message when vbuild
- succeeds but the resulting new vserver image is smaller in size than
- the vserver-reference image.
-- vuseradd: clean up some more junk on failure
-
-* Tue Nov 16 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-5.planetlab
-+ planetlab-3_0-rc3
-- PL3026: This is the upgraded version of vdu that maintains an
- internal hash table of files with a nlink count > 1. Only if vdu
- sees all hard links to a particular inode does it add its size and
- block count to the total.
-
-* Fri Nov 12 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-4.planetlab
-- PL2445 Use -b option to du to avoid rounding errors.
-
-* Sat Nov 6 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-3.planetlab
-+ planetlab-3_0-rc2
-- don't create the symbolic link /home/slice/.ssh, this is not how
- pl_sshd works
-
-* Mon Oct 11 2004 Marc E. Fiuczynski <mef@cs.princeton.edu>
-- added vsh
-
* Thu Sep 9 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.194-0
- documented switches for 'rpmbuild'
-* Wed Aug 11 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.29-1.planetlab
-- initial PlanetLab 3.0 build.
-
* Wed May 26 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.215-0
- (re)added the MANIFEST_* variables which were lost some time ago;
this will preserve %%config files...