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 nbr...@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 <nbr...@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 <packa...@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'