Build the python code using automake.
[util-vserver.git] / util-vserver.spec.in
index ed381b6..88a416e 100644 (file)
@@ -22,6 +22,8 @@
 %define version @VERSION@
 %{!?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
 
@@ -206,24 +208,23 @@ automake --add-missing
 %__make %{?_smp_mflags} all
 %{!?_without_doc:%__make %{?_smp_mflags} doc}
 
-%__make -C python
-
 %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%{_libdir}/python*/site-packages/*.{py,so} $RPM_BUILD_ROOT/%{_datadir}/%{name}/
-install -D -m 755 python/bwlimit $RPM_BUILD_ROOT/%{_sbindir}/bwlimit
-install -D -m 755 python/disklimit $RPM_BUILD_ROOT/%{_sbindir}/disklimit
+# Generate file list for python package
+find "%{buildroot}" -name '*.py' | { while read FILE; do
+       f="${FILE#%{buildroot}}"
+       echo "${f}"
+       echo %%ghost "${f}c"
+       echo %%ghost "${f}o"
+done } > %name-python.list
 
 
 %check || :
@@ -409,72 +410,10 @@ done
 %{!?_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 -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 -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}
+%files python -f %name-python.list
 %{_sbindir}/bwlimit
 %{_sbindir}/disklimit
+%{python_sitearch}/vserverimpl.so
 
 
 %changelog