Merge 0.30.214.
[util-vserver.git] / util-vserver.spec.in
index cce6b58..4adf0d2 100644 (file)
@@ -1,8 +1,10 @@
-# $Id: util-vserver.spec.in 2283 2006-09-10 17:07:57Z hollow $
+# $Id: util-vserver.spec.in 2575 2007-08-05 18:35:40Z dhozac $
 
 ## This package understands the following switches:
 ## --without dietlibc        ...   disable usage of dietlibc
 ## --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 _localstatedir %_var
 
+%global ver            %( echo @VERSION@ | sed 's/-.*//' )
+%global subver         %( s=`echo @VERSION@ | grep -- - | sed 's/.*-/./'`; echo ${s:-.1} )
+%global fullver                @VERSION@
 
-%{!?release_func:%global release_func() %1%{?dist}}
 
 %define name @PACKAGE@
 %define version @VERSION@
-%define release 15%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+%{!?release_func:%global release_func() 1%{?pldistro:.%{pldistro}}%{?date:.%{date}}}
+
+%global python_sitearch        %( python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)" )
 
 %define _without_dietlibc 1
 %define _without_xalan 1
@@ -31,13 +37,13 @@ URL: http://cvs.planet-lab.org/cvs/util-vserver
 
 Summary:       Linux virtual server utilities
 Name:          @PACKAGE@
-Version:       @VERSION@
-Release:       %{release}
+Version:       %ver
+Release:       %release_func 0%subver
 License:       GPL
 Group:         System Environment/Base
-URL:           http://savannah.nongnu.org/projects/util-vserver/
-Source0:       http://www.13thfloor.at/~ensc/util-vserver/files/alpha/%name-%version.tar.bz2
-#Source1:      http://www.13thfloor.at/~ensc/util-vserver/files/alpha/%name-%version.tar.bz2.asc
+#URL:          http://savannah.nongnu.org/projects/util-vserver/
+Source0:       http://ftp.linux-vserver.org/pub/utils/util-vserver/%name-%version.tar.bz2
+#Source1:      http://ftp.linux-vserver.org/pub/utils/util-vserver/%name-%version.tar.bz2.asc
 BuildRoot:     %_tmppath/%name-%version-%release-root
 Requires:      init(%name)
 Requires:      %name-core = %version-%release
@@ -48,7 +54,7 @@ Obsoletes:    vserver < %version
 BuildRequires: mount vconfig gawk iproute iptables
 BuildRequires: gcc-c++ wget which diffutils
 BuildRequires: e2fsprogs-devel beecrypt-devel
-BuildRequires: doxygen tetex-latex
+%{!?_without_doc:BuildRequires:        doxygen tetex-latex}
 Requires(post):                %name-core
 Requires(pre):         %pkglibdir
 Requires(postun):      %pkglibdir
@@ -67,7 +73,7 @@ Requires:             util-linux
 %package build
 Summary:               Tools which can be used to build vservers
 Group:                 Applications/System
-Requires:              rpm wget binutils tar e2fsprogs
+Requires:              rpm wget tar
 Requires:              %name = %version-%release
 Requires(pre):         %confdir
 Requires(postun):      %confdir
@@ -103,7 +109,7 @@ Requires:           %name-lib = %version-%release
 %package python
 Summary:               Python modules for manipulating vservers
 Group:                 Applications/System
-Requires:              python util-python
+Requires:              python
 Obsoletes:             util-vserver-py23 resman
 
 
@@ -187,7 +193,7 @@ but more readily accessible from Python code.
 
 
 %prep
-%setup -q
+%setup -q -n %name-%fullver
 
 aclocal -I m4
 autoconf
@@ -195,28 +201,33 @@ automake --add-missing
 
 %build
 %configure --with-initrddir=%_initrddir --enable-release \
-           %{?_without_dietlibc:--disable-dietlibc}
+           %{?_without_dietlibc:--disable-dietlibc} \
+           %{!?_without_legacy:--enable-apis=NOLEGACY} \
+           --with-initscripts=sysv
 
 %__make %{?_smp_mflags} all
-%__make %{?_smp_mflags} doc
-
-%__make -C python
+%{!?_without_doc:%__make %{?_smp_mflags} doc}
 
 %install
 rm -rf $RPM_BUILD_ROOT
 %__make DESTDIR="$RPM_BUILD_ROOT" install install-distribution
 
-rm -f $RPM_BUILD_ROOT/%_libdir/*.la
+rm -f $RPM_BUILD_ROOT/%_libdir/*.la $RPM_BUILD_ROOT%{python_sitearch}/*.{la,a}
 
 MANIFEST_CONFIG='%config' \
 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
+# Generate file list for python package
+find "%{buildroot}" -name '*.py' | { while read FILE; do
+       f="${FILE#%{buildroot}}"
+       echo "${f}"
+       # need to touch these files, as they are not produced on FC4 or below
+       touch ${FILE}c
+       touch ${FILE}o
+       echo %%ghost "${f}c"
+       echo %%ghost "${f}o"
+done } > %name-python.list
 
 
 %check || :
@@ -263,14 +274,20 @@ fi
 #%chkconfig --add vprocunhide
 # PlanetLab Node Manager takes care of starting and stopping VServers
 %chkconfig --del vservers-default
+%chkconfig --del util-vserver
 # PlanetLab does not require /proc security
 %chkconfig --del vprocunhide
+# vip6-autod handles IPv6 auto-assignments
+%chkconfig --add vip6-autod
+
 
 %preun sysv
 #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 util-vserver
+test "$1" != 0 || %chkconfig --del vip6-autod
 
 
 %postun sysv
@@ -392,86 +409,34 @@ done
 
 %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}
 
-%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
+%files python -f %name-python.list
+%{_sbindir}/bwlimit
+%{_sbindir}/disklimit
+%{python_sitearch}/vserverimpl.so
 
 
-%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
+%changelog
+* Wed Oct 03 2007 Daniel Hokka Zakrisson <daniel@hozac.com>
+- build python code as part of the regular build process
 
+* Mon Jul 30 2007 Daniel Hokka Zakrisson <daniel@hozac.com>
+- add vip6-autod
 
-%files python
-%{_datadir}/%{name}
-%{_sbindir}/bwlimit
+* Mon Jun 25 2007 Daniel Hokka Zakrisson <daniel@hozac.com> - 0.30.214-0
+- updated URLs
+- get rid of e2fsprogs requirement
 
+* 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
 
-%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)
-
 * 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
@@ -483,6 +448,11 @@ fi
   trigger script
 - create '/vservers/.hash' and add initial configuration for it
 
+* 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