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: