Control: tags -1 + patch pending Dear Maintainer,
Le mardi 04 mars 2014 à 21:02 +0100, Sébastien Villemot a écrit : > Le mardi 04 mars 2014 à 18:07 +0100, Julien Cristau a écrit : > > On Tue, Mar 4, 2014 at 17:55:23 +0100, Sébastien Villemot wrote: > > > > > There seem to be several package (at least blacs-mpi and scalapack, > > > possibly others) who construct the SONAME at build time using the name > > > of the default MPI implementation. > > > > > I guess that makes sense if their ABI changes based on the underlying > > MPI implementation. But IMO they should fail to build rather than > > silently build an incompatible binary package if that doesn't match the > > expected value. > > Ok, I'm reassigning this as a serious bug against blacs-mpi and > scalapack. I have prepared a patch for this issue, and uploaded it to DELAYED/2. Please find attached the debdiff. Don't hesitate to let me know if you want to delay the upload longer. Same remarks as for #740620 apply. Cheers, -- .''`. Sébastien Villemot : :' : Debian Developer `. `' http://www.dynare.org/sebastien `- GPG Key: 4096R/381A7594
diff -u blacs-mpi-1.1/debian/changelog blacs-mpi-1.1/debian/changelog --- blacs-mpi-1.1/debian/changelog +++ blacs-mpi-1.1/debian/changelog @@ -1,3 +1,21 @@ +blacs-mpi (1.1-31.2) unstable; urgency=medium + + * Non-maintainer upload. + * No longer silently change the SONAME of the MPI blacs shared + library when the default MPI implementation changes on a given arch. + (Closes: #740764) + + Create two new binary packages libblacs-openmpi1 and + libblacs-mpich1, corresponding to the two possible SONAMES. + + The architecture list for each binary package is stored in debian/rules, + and debian/control is now generated from debian/control.in by the clean + rule. + + Keep a transitional package for libblacs-mpi1. + + Make sure that the package FTBFS if the default MPI implementation + changes on a given arch (instead of silently changing the SONAME or + creating an empty package). + + -- Sébastien Villemot <sebast...@debian.org> Thu, 03 Apr 2014 16:31:07 +0200 + blacs-mpi (1.1-31.1) unstable; urgency=medium * Non-maintainer upload. diff -u blacs-mpi-1.1/debian/control blacs-mpi-1.1/debian/control --- blacs-mpi-1.1/debian/control +++ blacs-mpi-1.1/debian/control @@ -1,3 +1,8 @@ +# This file is autogenerated. DO NOT EDIT! +# +# Modifications should be made to debian/control.in instead. +# This file is regenerated automatically in the clean target. + Source: blacs-mpi Section: devel Priority: extra @@ -7,12 +12,48 @@ Homepage: http://www.netlib.org/blacs/ Package: libblacs-mpi1 +Section: oldlibs +Priority: extra +Architecture: alpha amd64 armel armhf hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc sparc arm64 hppa m68k powerpcspe ppc64 s390x sparc64 +Depends: ${misc:Depends}, + libblacs-openmpi1 [alpha amd64 armel armhf hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc sparc], + libblacs-mpich1 [arm64 hppa m68k powerpcspe ppc64 s390x sparc64] +Description: Basic Linear Algebra Comm. Subprograms - transitional package + This package depends on the version of the shared library compiled against + the default MPI implementation. + +Package: libblacs-openmpi1 +Section: libs +Architecture: alpha amd64 armel armhf hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc sparc +Depends: mpi-default-bin, ${shlibs:Depends}, ${misc:Depends} +Breaks: libblacs-mpi1 (<< 1.1-31.2) +Replaces: blacs1-mpich, blacs1gf-mpich, blacs1-lam, blacs1gf-lam, + libblacs-mpi1 (<< 1.1-31.2) +Conflicts: blacs1-mpich, blacs1gf-mpich, blacs1-lam, blacs1gf-lam +Description: Basic Linear Algebra Comm. Subprograms - Shared libs. for OpenMPI + The BLACS project is an ongoing investigation whose purpose is to + create a linear algebra oriented message passing interface that may be + implemented efficiently and uniformly across a large range of + distributed memory platforms. + . + You can choose between an implementation based on MPI or PVM. This package + uses MPI. There are packages for the shared libraries (this one), for the + static libraries and the development files, and for test programs. + . + Most users do not need to install this package directly because it is + used as a high level driver for the communication in the ScaLAPACK packages. + Therefore, it is installed when installing ScaLAPACK. ScaLAPACK is a + parallel version of LAPACK and is used on Beowulf type clusters. + +Package: libblacs-mpich1 Section: libs -Architecture: any +Architecture: arm64 hppa m68k powerpcspe ppc64 s390x sparc64 Depends: mpi-default-bin, ${shlibs:Depends}, ${misc:Depends} -Replaces: blacs1-mpich, blacs1gf-mpich, blacs1-lam, blacs1gf-lam +Breaks: libblacs-mpi1 (<< 1.1-31.2) +Replaces: blacs1-mpich, blacs1gf-mpich, blacs1-lam, blacs1gf-lam, + libblacs-mpi1 (<< 1.1-31.2) Conflicts: blacs1-mpich, blacs1gf-mpich, blacs1-lam, blacs1gf-lam -Description: Basic Linear Algebra Comm. Subprograms - Shared libs. for MPI +Description: Basic Linear Algebra Comm. Subprograms - Shared libs. for MPICH The BLACS project is an ongoing investigation whose purpose is to create a linear algebra oriented message passing interface that may be implemented efficiently and uniformly across a large range of @@ -29,8 +70,10 @@ Package: libblacs-mpi-dev Section: libdevel -Architecture: any -Depends: libblacs-mpi1 (= ${binary:Version}), mpi-default-dev, ${misc:Depends} +Architecture: alpha amd64 armel armhf hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc sparc arm64 hppa m68k powerpcspe ppc64 s390x sparc64 +Depends: libblacs-openmpi1 (= ${binary:Version}) [alpha amd64 armel armhf hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc sparc], + libblacs-mpich1 (= ${binary:Version}) [arm64 hppa m68k powerpcspe ppc64 s390x sparc64], + mpi-default-dev, ${misc:Depends} Replaces: blacs-mpi, blacs-mpich-dev, blacsgf-mpich-dev, blacs-lam-dev, blacsgf-lam-dev Conflicts: blacs-mpi, blacs-mpich-dev, blacsgf-mpich-dev, blacs-lam-dev, blacsgf-lam-dev Description: Basic Linear Algebra Comm. Subprograms - Dev. files for MPI @@ -50,7 +93,7 @@ Package: blacs-mpi-test Section: math -Architecture: any +Architecture: alpha amd64 armel armhf hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc sparc arm64 hppa m68k powerpcspe ppc64 s390x sparc64 Depends: blacs-test-common, ${shlibs:Depends}, ${misc:Depends} Replaces: blacs-mpich-test, blacsgf-mpich-test, blacs-lam-test, blacsgf-lam-test Conflicts: blacs-mpich-test, blacsgf-mpich-test, blacs-lam-test, blacsgf-lam-test reverted: --- blacs-mpi-1.1/debian/libblacs-mpi1.dirs +++ blacs-mpi-1.1.orig/debian/libblacs-mpi1.dirs @@ -1 +0,0 @@ -usr/lib diff -u blacs-mpi-1.1/debian/rules blacs-mpi-1.1/debian/rules --- blacs-mpi-1.1/debian/rules +++ blacs-mpi-1.1/debian/rules @@ -8,6 +8,12 @@ # Read the MPI implementation provided by mpi-default-dev. include /usr/share/mpi-default-dev/debian_defaults +# This list of archs is maintained separately from that of the mpi-defaults +# package. If there is a mismatch between the two, the package will FTBFS. This +# is on purpose, to avoid silent breakage. See #740620 for more details. +OPENMPI_ARCHS=alpha amd64 armel armhf hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc sparc +MPICH_ARCHS=arm64 hppa m68k powerpcspe ppc64 s390x sparc64 + build: build-$(ARCH_DEFAULT_MPI_IMPL) build-openmpi: build-stamp-openmpi @@ -198,6 +204,15 @@ rm -rf TESTING/EXE dh_clean + { \ + echo "# This file is autogenerated. DO NOT EDIT!" ; \ + echo "#" ; \ + echo "# Modifications should be made to debian/control.in instead." ; \ + echo "# This file is regenerated automatically in the clean target." ; \ + echo ; \ + sed "s/@OPENMPI_ARCHS@/$(OPENMPI_ARCHS)/g;s/@MPICH_ARCHS@/$(MPICH_ARCHS)/g;" debian/control.in ; } \ + > debian/control + install: install-$(ARCH_DEFAULT_MPI_IMPL) install-openmpi: install-stamp-openmpi @@ -214,10 +229,13 @@ dh_prep dh_installdirs -v -a + # The shared library are installed via debian/*.install, to avoid + # creating an empty package if default MPI implementation changes on + # the arch + dh_install + set -e ;\ for i in blacs blacsF77init blacsCinit ; do \ - cp -a lib$$i-openmpi.so.* \ - `pwd`/debian/libblacs-mpi1/usr/lib/ ;\ cp -a lib$$i-openmpi.so \ `pwd`/debian/libblacs-mpi-dev/usr/lib/ ;\ done @@ -278,10 +296,13 @@ dh_prep dh_installdirs -v -a + # The shared library are installed via debian/*.install, to avoid + # creating an empty package if default MPI implementation changes on + # the arch + dh_install + set -e ;\ for i in blacs blacsF77init blacsCinit ; do \ - cp -a lib$$i-mpich.so.* \ - `pwd`/debian/libblacs-mpi1/usr/lib/ ;\ cp -a lib$$i-mpich.so \ `pwd`/debian/libblacs-mpi-dev/usr/lib/ ;\ done only in patch2: unchanged: --- blacs-mpi-1.1.orig/debian/control.in +++ blacs-mpi-1.1/debian/control.in @@ -0,0 +1,125 @@ +Source: blacs-mpi +Section: devel +Priority: extra +Maintainer: Muammar El Khatib <muam...@debian.org> +Standards-Version: 3.9.1 +Build-Depends: debhelper (>= 7), mpi-default-dev (>= 1.0), gfortran +Homepage: http://www.netlib.org/blacs/ + +Package: libblacs-mpi1 +Section: oldlibs +Priority: extra +Architecture: @OPENMPI_ARCHS@ @MPICH_ARCHS@ +Depends: ${misc:Depends}, + libblacs-openmpi1 [@OPENMPI_ARCHS@], + libblacs-mpich1 [@MPICH_ARCHS@] +Description: Basic Linear Algebra Comm. Subprograms - transitional package + This package depends on the version of the shared library compiled against + the default MPI implementation. + +Package: libblacs-openmpi1 +Section: libs +Architecture: @OPENMPI_ARCHS@ +Depends: mpi-default-bin, ${shlibs:Depends}, ${misc:Depends} +Breaks: libblacs-mpi1 (<< 1.1-31.2) +Replaces: blacs1-mpich, blacs1gf-mpich, blacs1-lam, blacs1gf-lam, + libblacs-mpi1 (<< 1.1-31.2) +Conflicts: blacs1-mpich, blacs1gf-mpich, blacs1-lam, blacs1gf-lam +Description: Basic Linear Algebra Comm. Subprograms - Shared libs. for OpenMPI + The BLACS project is an ongoing investigation whose purpose is to + create a linear algebra oriented message passing interface that may be + implemented efficiently and uniformly across a large range of + distributed memory platforms. + . + You can choose between an implementation based on MPI or PVM. This package + uses MPI. There are packages for the shared libraries (this one), for the + static libraries and the development files, and for test programs. + . + Most users do not need to install this package directly because it is + used as a high level driver for the communication in the ScaLAPACK packages. + Therefore, it is installed when installing ScaLAPACK. ScaLAPACK is a + parallel version of LAPACK and is used on Beowulf type clusters. + +Package: libblacs-mpich1 +Section: libs +Architecture: @MPICH_ARCHS@ +Depends: mpi-default-bin, ${shlibs:Depends}, ${misc:Depends} +Breaks: libblacs-mpi1 (<< 1.1-31.2) +Replaces: blacs1-mpich, blacs1gf-mpich, blacs1-lam, blacs1gf-lam, + libblacs-mpi1 (<< 1.1-31.2) +Conflicts: blacs1-mpich, blacs1gf-mpich, blacs1-lam, blacs1gf-lam +Description: Basic Linear Algebra Comm. Subprograms - Shared libs. for MPICH + The BLACS project is an ongoing investigation whose purpose is to + create a linear algebra oriented message passing interface that may be + implemented efficiently and uniformly across a large range of + distributed memory platforms. + . + You can choose between an implementation based on MPI or PVM. This package + uses MPI. There are packages for the shared libraries (this one), for the + static libraries and the development files, and for test programs. + . + Most users do not need to install this package directly because it is + used as a high level driver for the communication in the ScaLAPACK packages. + Therefore, it is installed when installing ScaLAPACK. ScaLAPACK is a + parallel version of LAPACK and is used on Beowulf type clusters. + +Package: libblacs-mpi-dev +Section: libdevel +Architecture: @OPENMPI_ARCHS@ @MPICH_ARCHS@ +Depends: libblacs-openmpi1 (= ${binary:Version}) [@OPENMPI_ARCHS@], + libblacs-mpich1 (= ${binary:Version}) [@MPICH_ARCHS@], + mpi-default-dev, ${misc:Depends} +Replaces: blacs-mpi, blacs-mpich-dev, blacsgf-mpich-dev, blacs-lam-dev, blacsgf-lam-dev +Conflicts: blacs-mpi, blacs-mpich-dev, blacsgf-mpich-dev, blacs-lam-dev, blacsgf-lam-dev +Description: Basic Linear Algebra Comm. Subprograms - Dev. files for MPI + The BLACS project is an ongoing investigation whose purpose is to + create a linear algebra oriented message passing interface that may be + implemented efficiently and uniformly across a large range of + distributed memory platforms. + . + You can choose between an implementation based on MPI or PVM. This package + uses MPI. There are packages for the shared libraries, for the static + libraries and the development files (this one), and for test programs. + . + Most users do not need to install this package directly because it is + used as a high level driver for the communication in the ScaLAPACK packages. + Therefore, it is installed when installing ScaLAPACK. ScaLAPACK is a + parallel version of LAPACK and is used on Beowulf type clusters. + +Package: blacs-mpi-test +Section: math +Architecture: @OPENMPI_ARCHS@ @MPICH_ARCHS@ +Depends: blacs-test-common, ${shlibs:Depends}, ${misc:Depends} +Replaces: blacs-mpich-test, blacsgf-mpich-test, blacs-lam-test, blacsgf-lam-test +Conflicts: blacs-mpich-test, blacsgf-mpich-test, blacs-lam-test, blacsgf-lam-test +Description: Basic Linear Algebra Comm. Subprograms - Test files for MPI + The BLACS project is an ongoing investigation whose purpose is to + create a linear algebra oriented message passing interface that may be + implemented efficiently and uniformly across a large range of + distributed memory platforms. + . + You can choose between an implementation based on MPI or PVM. This package + uses MPI. There are packages for the shared libraries, for the static + libraries and the development files, and for test programs (this one). + . + Most users do not need to install this package directly because it contains + test programs for the BLACS libraries. You only need these if you experience + problems with ScaLAPACK. The BLACS libraries are used as a high level + communications library for ScaLAPACK. ScaLAPACK is a parallel version of + LAPACK and is used on Beowulf type clusters. + +Package: blacs-test-common +Section: math +Architecture: all +Depends: ${misc:Depends} +Description: Test data for BLACS testers + The BLACS project is an ongoing investigation whose purpose is to + create a linear algebra oriented message passing interface that may be + implemented efficiently and uniformly across a large range of + distributed memory platforms. + . + You can choose between an implementation based on MPI or PVM. This package + provides test data for all BLACS packages (MPI and PVM versions). + . + Most users do not need to install this package directly because it is + installed when installing the test programs for any BLACS package. only in patch2: unchanged: --- blacs-mpi-1.1.orig/debian/libblacs-mpich1.install +++ blacs-mpi-1.1/debian/libblacs-mpich1.install @@ -0,0 +1,3 @@ +libblacs-mpich.so.* usr/lib +libblacsF77init-mpich.so.* usr/lib +libblacsCinit-mpich.so.* usr/lib only in patch2: unchanged: --- blacs-mpi-1.1.orig/debian/libblacs-openmpi1.install +++ blacs-mpi-1.1/debian/libblacs-openmpi1.install @@ -0,0 +1,3 @@ +libblacs-openmpi.so.* usr/lib +libblacsF77init-openmpi.so.* usr/lib +libblacsCinit-openmpi.so.* usr/lib
signature.asc
Description: This is a digitally signed message part