%define name util-vserver
%define version 0.30.208
-%define release 4.planetlab%{?date:.%{date}}
+%define release 14%{?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
Requires(pre): %confdir
Requires(postun): %confdir
-%ifarch %ix86
-Requires: apt
-%endif
-
%package sysv
Summary: SysV-initscripts for vserver
Group: System Environment/Base
Summary: Python modules for manipulating vservers
Group: Applications/System
Requires: python util-python
-Obsoletes: util-vserver-py23
+Obsoletes: util-vserver-py23 resman
%description
contrib/make-manifest %name $RPM_BUILD_ROOT contrib/manifest.dat
# install python bindings
-%__make -C python DESTDIR="$RPM_BUILD_ROOT" install
+%__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 || :
%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
-%defattr(0644,root,root)
-%_libdir/python2.3/site-packages/*
+%{_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