RPMs get upgraded by installing the new one, then uninstalling the
[util-vserver.git] / util-vserver.spec.in
index bfdb14f..78fad84 100644 (file)
 
 %define name @PACKAGE@
 %define version @VERSION@
-%define release 1.planetlab%{?date:.%{date}}
+%define release 11%{?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
@@ -30,7 +33,7 @@ URL: http://cvs.planet-lab.org/cvs/util-vserver
 Summary:       Linux virtual server utilities
 Name:          @PACKAGE@
 Version:       @VERSION@
-Release:       %release_func 0
+Release:       %{release}
 License:       GPL
 Group:         System Environment/Base
 #URL:          http://savannah.nongnu.org/projects/util-vserver/
@@ -68,10 +71,6 @@ Requires:            %name = %version-%release
 Requires(pre):         %confdir
 Requires(postun):      %confdir
 
-%ifarch %ix86
-Requires:              apt
-%endif
-
 %package sysv
 Summary:               SysV-initscripts for vserver
 Group:                 System Environment/Base
@@ -99,12 +98,11 @@ Group:                      Development/Libraries
 Requires:              pkgconfig
 Requires:              %name-lib = %version-%release
 
-%if 0
-%package py23
+%package python
 Summary:               Python modules for manipulating vservers
 Group:                 Applications/System
-Requires:              python %pkglibdir/util-vserver-vars util-python
-%endif
+Requires:              python util-python
+Obsoletes:             util-vserver-py23
 
 
 %description
@@ -180,12 +178,10 @@ This package contains header files and libraries which are needed to
 develop VServer related applications.
 
 
-%if 0
-%description py23
+%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.
-%endif
 
 
 %prep
@@ -202,6 +198,7 @@ automake --add-missing
 %__make %{?_smp_mflags} all
 %__make %{?_smp_mflags} doc
 
+%__make -C python
 
 %install
 rm -rf $RPM_BUILD_ROOT
@@ -213,14 +210,14 @@ MANIFEST_CONFIG='%config' \
 MANIFEST_CONFIG_NOREPLACE='%config(noreplace)' \
 contrib/make-manifest %name $RPM_BUILD_ROOT contrib/manifest.dat
 
-%if 0
-# build python bindings
-%__make -C python INSTALL_ROOT=$RPM_BUILD_ROOT install
-%endif
+# 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}/
 
 
 %check || :
-%__make check
+#%__make check
 
 
 %clean
@@ -379,22 +376,107 @@ done
 %doc lib/apidoc/html
 
 
-%if 0
-%files py23
-%defattr(0644,root,root)
-/usr/lib/python2.3/site-packages/bwlimit.py
-/usr/lib/python2.3/site-packages/bwlimit.pyc
-/usr/lib/python2.3/site-packages/cpulimit.py
-/usr/lib/python2.3/site-packages/cpulimit.pyc
-/usr/lib/python2.3/site-packages/util_vserver_vars.py
-/usr/lib/python2.3/site-packages/vduimpl.so
-/usr/lib/python2.3/site-packages/vserver.py
-/usr/lib/python2.3/site-packages/vserver.pyc
-/usr/lib/python2.3/site-packages/vserverimpl.so
-%endif
+%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 -- %{name}
+# 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}
 
 
 %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