%{!?release_func:%global release_func() %1%{?dist}}
+%define name util-vserver
+%define version 0.30.208
+%define release 13%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+
+%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
+
Summary: Linux virtual server utilities
Name: util-vserver
Version: 0.30.208
-Release: %release_func 0
+Release: %{release}
License: GPL
Group: System Environment/Base
-URL: http://savannah.nongnu.org/projects/util-vserver/
+#URL: http://savannah.nongnu.org/projects/util-vserver/
Source0: http://savannah.nongnu.org/download/util-vserver/stable.pkg/%version/%name-%version.tar.bz2
BuildRoot: %_tmppath/%name-%version-%release-root
Requires: init(%name)
BuildRequires: gcc-c++ wget which diffutils
BuildRequires: e2fsprogs-devel beecrypt-devel
BuildRequires: doxygen tetex-latex
-Requires(post): %__chattr
Requires(pre): %pkglibdir
Requires(postun): %pkglibdir
%{!?_without_dietlibc:BuildRequires: dietlibc >= 0:0.25}
Requires(pre): %confdir
Requires(postun): %confdir
-%ifarch %ix86
-Requires: apt
-%endif
-
%package sysv
Summary: SysV-initscripts for vserver
Group: System Environment/Base
Requires: pkgconfig
Requires: %name-lib = %version-%release
+%package python
+Summary: Python modules for manipulating vservers
+Group: Applications/System
+Requires: python util-python
+Obsoletes: util-vserver-py23 resman
+
%description
util-vserver provides the components and a framework to setup virtual
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.
+
+
%prep
%setup -q
+aclocal -I m4
+autoconf
+automake --add-missing
%build
%configure --with-initrddir=%_initrddir --enable-release \
%__make %{?_smp_mflags} all
%__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="$PWD/tmp" install
+install -d $RPM_BUILD_ROOT/%{_datadir}/%{name}
+install tmp/usr/lib/python*/site-packages/*.{py,so} $RPM_BUILD_ROOT/%{_datadir}/%{name}/
+install -D -m 755 python/bwlimit $RPM_BUILD_ROOT/%{_sbindir}/bwlimit
+
%check || :
-%__make check
+#%__make check
%clean
%_sbindir/setattr --barrier /vservers || :
+# 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
+
+
+%postun
+# 0 = erase, 1 = upgrade
+if [ "$1" = 0 ] ; then
+ perl -i -n -e 'next if /^\/bin\/vsh$/; print' /etc/shells
+fi
+
%post lib -p /sbin/ldconfig
%postun lib -p /sbin/ldconfig
%post sysv
-%chkconfig --add vservers-default
-%chkconfig --add vprocunhide
-
-
+#%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
%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
%postun sysv
-test "$1" = 0 || %_initrddir/vprocunhide condrestart >/dev/null || :
+#test "$1" = 0 || %_initrddir/vprocunhide condrestart >/dev/null || :
%triggerin build -- fedora-release
%post legacy
-%chkconfig --add rebootmgr
-%chkconfig --add vservers-legacy
+# PlanetLab Node Manager takes care of starting and stopping VServers
+#%chkconfig --add rebootmgr
+#%chkconfig --add vservers-legacy
-for i in %v_services; do
- %chkconfig --add v_$i
-done
+# PlanetLab does not require these legacy services
+#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
%doc lib/apidoc/html
+%post python
+pushd %{_datadir}/%{name} >/dev/null
+
+# Byte compile and install modules
+py_modules=
+for file in *.py ; do
+ if [ -n "$py_modules" ] ; then
+ py_modules="$py_modules,"
+ fi
+ py_modules="$py_modules '${file%*.py}'"
+done
+%define setup %{__python} -c "from distutils.core import setup; setup(py_modules=[$py_modules])"
+%{setup} build
+%{setup} install
+
+# Install the prebuilt extensions by hand
+python_sitelib=$(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
+install -D -m 755 *.so "$python_sitelib"/
+
+popd
+
+
+%triggerpostun python -- util-vserver-python, util-vserver-py23
+# RPMs get upgraded by installing the new one, then uninstalling the
+# old one. Since we no longer own the byte-compiled modules, they may
+# be removed right after we create them in %post if we are upgraded
+# from a version that did own them at one point. This section should
+# be removed once all packages have been upgraded to at least this
+# version.
+pushd %{_datadir}/%{name} >/dev/null
+
+# Byte compile and install modules
+py_modules=
+for file in *.py ; do
+ if [ -n "$py_modules" ] ; then
+ py_modules="$py_modules,"
+ fi
+ py_modules="$py_modules '${file%*.py}'"
+done
+%define setup %{__python} -c "from distutils.core import setup; setup(py_modules=[$py_modules])"
+%{setup} build
+%{setup} install
+
+# Install the prebuilt extensions by hand
+python_sitelib=$(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
+install -D -m 755 *.so "$python_sitelib"/
+
+popd
+
+
+%preun python
+# 0 = erase, 1 = upgrade
+if [ $1 -eq 0 ] ; then
+ python_sitelib=$(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
+ pushd %{_datadir}/%{name} >/dev/null
+ for file in *.py *.so ; do
+ rm -f "$python_sitelib"/${file}*
+ done
+ popd
+fi
+
+
+%files python
+%{_datadir}/%{name}
+%{_sbindir}/bwlimit
+
+
%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
+
+* Fri Oct 28 2005 Steve Muir <smuir@cs.princeton.edu>
+- raise exception about being over disk limit after setting usage values
+
+* Fri Oct 7 2005 Steve Muir <smuir@cs.princeton.edu>
+- create common function to be used for entering a vserver and applying
+ resource limits
+
+* Thu Aug 21 2005 Mark Huang <mlhuang@cs.princeton.edu>
+- restore build of python modules
+
+* 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
+
+* Thu Jul 28 2005 Steve Muir <smuir@cs.princeton.edu>
+- add support for static vserver IDs to vuseradd and vuserdel
+
+* Thu Jul 21 2005 Steve Muir <smuir@cs.princeton.edu>
+- add bwlimit and cpulimit modules
+
* Fri Jul 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.208-1
- 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...