[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#571452: Patch (QA upload ready) to drop build-dependency on EOLed MPIs



The attached QA upload patch replaces the build dependencies on LAM and MPICH1
with OpenMPI (appropriate architectures only) and MPICH2, renaming binaries and
packages accordingly.  It also breaks a circular dependency between
python-scientific and python-netcdf.

-- 
Nicholas Breen
nbreen@ofb.net
diff -Nru python-scientific-2.8_orig//debian/changelog python-scientific-2.8//debian/changelog
--- python-scientific-2.8_orig//debian/changelog	2011-05-09 17:22:00.000000000 -0700
+++ python-scientific-2.8//debian/changelog	2011-05-10 14:35:47.269896493 -0700
@@ -1,3 +1,13 @@
+python-scientific (2.8-3) unstable; urgency=low
+
+  * QA upload.
+  * Replace EOLed MPI implementations (LAM, MPICH1) with actively maintained
+    implementations (OpenMPI, MPICH2).  (Closes: #571452)
+  * Break python-scientific/python-netcdf circular dependency by changing p-s
+    to Recommend p-n.
+
+ -- Nicholas Breen <nbreen@ofb.net>  Tue, 10 May 2011 14:33:35 -0700
+
 python-scientific (2.8-2) unstable; urgency=low
 
   * Orphan the package.
diff -Nru python-scientific-2.8_orig//debian/control python-scientific-2.8//debian/control
--- python-scientific-2.8_orig//debian/control	2011-05-09 17:22:00.000000000 -0700
+++ python-scientific-2.8//debian/control	2011-05-10 14:36:07.820078624 -0700
@@ -4,12 +4,12 @@
 Maintainer: Debian QA Group <packages@qa.debian.org>
 Standards-Version: 3.9.2
 XS-Python-Version: all
-Build-Depends: debhelper (>= 5.0.37.1), python-all-dev (>= 2.6.6-12), libnetcdf-dev, python-numpy, libmpich1.0-dev, lam4-dev
+Build-Depends: debhelper (>= 5.0.37.1), python-all-dev (>= 2.6.6-12), libnetcdf-dev, python-numpy, libmpich2-dev, libopenmpi-dev [alpha amd64 i386 ia64 powerpc sparc kfreebsd-i386 kfreebsd-amd64 hurd-i386]
 
 Package: python-scientific
 Architecture: all
-Depends: ${python:Depends}, python-numpy, python-netcdf (>= 2.4.11), ${misc:Depends}
-Recommends: python-tk (>= 2.4.3), pyro
+Depends: ${python:Depends}, python-numpy, ${misc:Depends}
+Recommends: python-netcdf (>= 2.4.11), python-tk (>= 2.4.3), pyro
 Suggests: python-scientific-doc
 Provides: ${python:Provides}
 XB-Python-Version: ${python:Versions}
@@ -49,20 +49,20 @@
  The package provides MPI (Message Passing Interface, message-based
  parallel programming) support for Python.
 
-Package: mpichpython
+Package: mpich2python
 Architecture: any
 Depends: ${python:Depends}, python-mpi (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
 Conflicts: python-mpi (<< 2.4.3-3)
 Provides: mpipython
-Description: MPI-enhanced Python interpreter (MPICH based version)
+Description: MPI-enhanced Python interpreter (MPICH2 based version)
  The package provides a python interpreter with MPI (Message Passing Interface,
  message-based parallel programming) support.
 
-Package: lampython
-Architecture: any
+Package: openmpipython
+Architecture: alpha amd64 i386 ia64 powerpc sparc kfreebsd-i386 kfreebsd-amd64 hurd-i386
 Priority: extra
-Depends: ${python:Depends}, python-mpi (>= ${source:Version}), lam-runtime, ${shlibs:Depends}, ${misc:Depends}
+Depends: ${python:Depends}, python-mpi (>= ${source:Version}), openmpi-bin, ${shlibs:Depends}, ${misc:Depends}
 Provides: mpipython
-Description: MPI-enhanced Python interpreter (LAM based version)
+Description: MPI-enhanced Python interpreter (OpenMPI based version)
  The package provides a python interpreter with MPI (Message Passing Interface,
  message-based parallel programming) support.
diff -Nru python-scientific-2.8_orig//debian/lampython.postinst python-scientific-2.8//debian/lampython.postinst
--- python-scientific-2.8_orig//debian/lampython.postinst	2011-05-09 17:22:00.000000000 -0700
+++ python-scientific-2.8//debian/lampython.postinst	1969-12-31 16:00:00.000000000 -0800
@@ -1,10 +0,0 @@
-#! /bin/sh -e
-
-update-alternatives \
-    --install /usr/bin/mpipython mpipython /usr/bin/mpipython.lam 30 \
-    --slave /usr/share/man/man1/mpipython.1.gz mpipython.1.gz \
-	/usr/share/man/man1/mpipython.lam.1.gz
-
-#DEBHELPER#
-
-exit 0
diff -Nru python-scientific-2.8_orig//debian/lampython.prerm python-scientific-2.8//debian/lampython.prerm
--- python-scientific-2.8_orig//debian/lampython.prerm	2011-05-09 17:22:00.000000000 -0700
+++ python-scientific-2.8//debian/lampython.prerm	1969-12-31 16:00:00.000000000 -0800
@@ -1,9 +0,0 @@
-#! /bin/sh -e
-
-if [ "$1" != "upgrade" ]; then
-    update-alternatives --remove mpipython /usr/bin/mpipython.lam
-fi
-
-#DEBHELPER#
-
-exit 0
diff -Nru python-scientific-2.8_orig//debian/mpich2python.postinst python-scientific-2.8//debian/mpich2python.postinst
--- python-scientific-2.8_orig//debian/mpich2python.postinst	1969-12-31 16:00:00.000000000 -0800
+++ python-scientific-2.8//debian/mpich2python.postinst	2011-05-10 14:32:49.184359230 -0700
@@ -0,0 +1,10 @@
+#! /bin/sh -e
+
+update-alternatives \
+    --install /usr/bin/mpipython mpipython /usr/bin/mpipython.mpich2 10 \
+    --slave /usr/share/man/man1/mpipython.1.gz mpipython.1.gz \
+	/usr/share/man/man1/mpipython.mpich2.1.gz
+
+#DEBHELPER#
+
+exit 0
diff -Nru python-scientific-2.8_orig//debian/mpich2python.prerm python-scientific-2.8//debian/mpich2python.prerm
--- python-scientific-2.8_orig//debian/mpich2python.prerm	1969-12-31 16:00:00.000000000 -0800
+++ python-scientific-2.8//debian/mpich2python.prerm	2011-05-10 14:32:54.999408236 -0700
@@ -0,0 +1,9 @@
+#! /bin/sh -e
+
+if [ "$1" != "upgrade" ]; then
+    update-alternatives --remove mpipython /usr/bin/mpipython.mpich2
+fi
+
+#DEBHELPER#
+
+exit 0
diff -Nru python-scientific-2.8_orig//debian/mpichpython.postinst python-scientific-2.8//debian/mpichpython.postinst
--- python-scientific-2.8_orig//debian/mpichpython.postinst	2011-05-09 17:22:00.000000000 -0700
+++ python-scientific-2.8//debian/mpichpython.postinst	1969-12-31 16:00:00.000000000 -0800
@@ -1,10 +0,0 @@
-#! /bin/sh -e
-
-update-alternatives \
-    --install /usr/bin/mpipython mpipython /usr/bin/mpipython.mpich 10 \
-    --slave /usr/share/man/man1/mpipython.1.gz mpipython.1.gz \
-	/usr/share/man/man1/mpipython.mpich.1.gz
-
-#DEBHELPER#
-
-exit 0
diff -Nru python-scientific-2.8_orig//debian/mpichpython.prerm python-scientific-2.8//debian/mpichpython.prerm
--- python-scientific-2.8_orig//debian/mpichpython.prerm	2011-05-09 17:22:00.000000000 -0700
+++ python-scientific-2.8//debian/mpichpython.prerm	1969-12-31 16:00:00.000000000 -0800
@@ -1,9 +0,0 @@
-#! /bin/sh -e
-
-if [ "$1" != "upgrade" ]; then
-    update-alternatives --remove mpipython /usr/bin/mpipython.mpich
-fi
-
-#DEBHELPER#
-
-exit 0
diff -Nru python-scientific-2.8_orig//debian/openmpipython.postinst python-scientific-2.8//debian/openmpipython.postinst
--- python-scientific-2.8_orig//debian/openmpipython.postinst	1969-12-31 16:00:00.000000000 -0800
+++ python-scientific-2.8//debian/openmpipython.postinst	2011-05-10 14:30:32.297229573 -0700
@@ -0,0 +1,10 @@
+#! /bin/sh -e
+
+update-alternatives \
+    --install /usr/bin/mpipython mpipython /usr/bin/mpipython.openmpi 30 \
+    --slave /usr/share/man/man1/mpipython.1.gz mpipython.1.gz \
+	/usr/share/man/man1/mpipython.openmpi.1.gz
+
+#DEBHELPER#
+
+exit 0
diff -Nru python-scientific-2.8_orig//debian/openmpipython.prerm python-scientific-2.8//debian/openmpipython.prerm
--- python-scientific-2.8_orig//debian/openmpipython.prerm	1969-12-31 16:00:00.000000000 -0800
+++ python-scientific-2.8//debian/openmpipython.prerm	2011-05-10 14:30:41.933307538 -0700
@@ -0,0 +1,9 @@
+#! /bin/sh -e
+
+if [ "$1" != "upgrade" ]; then
+    update-alternatives --remove mpipython /usr/bin/mpipython.openmpi
+fi
+
+#DEBHELPER#
+
+exit 0
diff -Nru python-scientific-2.8_orig//debian/rules python-scientific-2.8//debian/rules
--- python-scientific-2.8_orig//debian/rules	2011-05-09 17:22:00.000000000 -0700
+++ python-scientific-2.8//debian/rules	2011-05-10 14:33:31.918721256 -0700
@@ -2,6 +2,13 @@
 # Made with the aid of debmake, by Christoph Lameter,
 # based on the sample debian/rules file for GNU hello by Ian Jackson.
 
+# OpenMPI is only supported on a subset of architectures at this time.
+# This list should remain synced with the Build-Depends and the Architecture
+# line of openmpipython in debian/control.
+
+OPENMPI_ARCH    = alpha amd64 i386 ia64 powerpc sparc kfreebsd-i386 kfreebsd-amd64 hurd-i386
+DEB_HOST_ARCH  ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
+
 export SHELL=bash
 
 pv	= $(shell pyversions -vd)
@@ -12,15 +19,15 @@
 p_cdf	= python-netcdf
 p_doc	= $(p_sci)-doc
 p_mpi	= python-mpi
-p_pympi	= mpichpython
-p_pylam	= lampython
+p_pympi	= mpich2python
+p_pyopenmpi	= openmpipython
 
 d_sci	= debian/$(p_sci)
 d_cdf	= debian/$(p_cdf)
 d_doc	= debian/$(p_doc)
 d_mpi	= debian/$(p_mpi)
 d_pympi	= debian/$(p_pympi)
-d_pylam	= debian/$(p_pylam)
+d_pyopenmpi	= debian/$(p_pyopenmpi)
 
 include /usr/share/python/python.mk
 
@@ -39,9 +46,9 @@
 	  python$$v setup.py build; \
 	done
 	rm -f Src/MPI/*.o
-	cd Src/MPI && PYTHONPATH=$$(echo $(CURDIR)/build/lib.*-$(pv)) USE_LAM=yes   $(PYTHON) compile.py
+	cd Src/MPI && PYTHONPATH=$$(echo $(CURDIR)/build/lib.*-$(pv)) USE_OPENMPI=yes $(PYTHON) compile.py
 	rm -f Src/MPI/*.o
-	cd Src/MPI && PYTHONPATH=$$(echo $(CURDIR)/build/lib.*-$(pv)) USE_MPICH=yes $(PYTHON) compile.py
+	cd Src/MPI && PYTHONPATH=$$(echo $(CURDIR)/build/lib.*-$(pv)) USE_MPICH=yes   $(PYTHON) compile.py
 	touch stamp-build
 
 cdf_dirs = \
@@ -67,7 +74,7 @@
 	usr/bin \
 	usr/share/man/man1
 
-pylam_dirs = \
+pyopenmpi_dirs = \
 	usr/share/doc/ \
 	usr/bin \
 	usr/share/man/man1
@@ -82,7 +89,9 @@
 	dh_installdirs -p$(p_cdf) $(cdf_dirs)
 	dh_installdirs -p$(p_mpi) $(mpi_dirs)
 	dh_installdirs -p$(p_pympi) $(pympi_dirs)
-	dh_installdirs -p$(p_pylam) $(pylam_dirs)
+ifneq (,$(findstring $(DEB_HOST_ARCH),$(OPENMPI_ARCH)))
+	dh_installdirs -p$(p_pyopenmpi) $(pyopenmpi_dirs)
+endif
 
 	set -e; \
 	for v in $(PYVERS); do \
@@ -96,10 +105,12 @@
 		usr/lib/python*/*-packages/Scientific/MPI \
 		usr/include/python*/Scientific/{PyMPI_API.h,mpimodule.h}
 
-	install -m775 Src/MPI/mpipython.mpich $(d_pympi)/usr/bin/
-	install -m775 Src/MPI/mpipython.lam $(d_pylam)/usr/bin/
-	cp -p debian/mpipython.1 $(d_pympi)/usr/share/man/man1/mpipython.mpich.1
-	cp -p debian/mpipython.1 $(d_pylam)/usr/share/man/man1/mpipython.lam.1
+	install -m775 Src/MPI/mpipython.mpich2 $(d_pympi)/usr/bin/
+	cp -p debian/mpipython.1 $(d_pympi)/usr/share/man/man1/mpipython.mpich2.1
+ifneq (,$(findstring $(DEB_HOST_ARCH),$(OPENMPI_ARCH)))
+	install -m775 Src/MPI/mpipython.openmpi $(d_pyopenmpi)/usr/bin/
+	cp -p debian/mpipython.1 $(d_pyopenmpi)/usr/share/man/man1/mpipython.openmpi.1
+endif
 
 	-find $(d_sci) $(d_sci2) -name '*.py[co]' | xargs rm -f
 
@@ -117,7 +128,7 @@
 	rm -f stamp-build
 	rm -rf `find -name build -type d`
 	rm -f `find . -name '*.py[co]'`
-	rm -f Src/MPI/mpipython{,.lam,.mpich} Src/MPI/*.o
+	rm -f Src/MPI/mpipython{,.openmpi,.mpich2} Src/MPI/*.o
 	dh_clean
 
 binary-indep: install
@@ -146,7 +157,9 @@
 
 	dh_installdocs -p$(p_cdf) README
 	ln -sf $(p_mpi) $(d_pympi)/usr/share/doc/$(p_pympi)
-	ln -sf $(p_mpi) $(d_pylam)/usr/share/doc/$(p_pylam)
+ifneq (,$(findstring $(DEB_HOST_ARCH),$(OPENMPI_ARCH)))
+	ln -sf $(p_mpi) $(d_pyopenmpi)/usr/share/doc/$(p_pyopenmpi)
+endif
 
 	dh_installchangelogs -a
 	dh_installexamples -p$(p_cdf)  Examples/*
diff -Nru python-scientific-2.8_orig//Src/MPI/compile.py python-scientific-2.8//Src/MPI/compile.py
--- python-scientific-2.8_orig//Src/MPI/compile.py	2011-05-09 17:22:00.000000000 -0700
+++ python-scientific-2.8//Src/MPI/compile.py	2011-05-10 14:33:05.283495120 -0700
@@ -11,17 +11,17 @@
 
 # Name of the MPI compilation script.
 mpicompiler = 'mpicc'
-mpiinclude = '/usr/include/lam'
+mpiinclude = '/usr/include/mpi'
 executable = 'mpipython'
 
-if os.environ.has_key('USE_LAM'):
-    mpicompiler = 'mpicc.lam'
-    mpiinclude = '/usr/include/lam'
-    executable = 'mpipython.lam'
+if os.environ.has_key('USE_OPENMPI'):
+    mpicompiler = 'mpicc.openmpi'
+    mpiinclude = '/usr/include/openmpi'
+    executable = 'mpipython.openmpi'
 if os.environ.has_key('USE_MPICH'):
-    mpicompiler = 'mpicc.mpich'
-    mpiinclude = '/usr/lib/mpich/include'
-    executable = 'mpipython.mpich'
+    mpicompiler = 'mpicc.mpich2'
+    mpiinclude = '/usr/lib/mpich2/include'
+    executable = 'mpipython.mpich2'
 
 sources='mpipython.c Scientific_mpi.c'
 

Reply to: