--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Please unblock package mpich
It fixes building packages against mpich, see e.g. #924032.
unblock mpich/3.3-3
-- System Information:
Debian Release: 8.10
APT prefers oldstable
APT policy: (500, 'oldstable')
Architecture: i386 (i686)
Kernel: Linux 3.16.0-4-686-pae (SMP w/1 CPU core)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru mpich-3.3/debian/changelog mpich-3.3/debian/changelog
--- mpich-3.3/debian/changelog 2019-02-22 17:45:42.000000000 +0100
+++ mpich-3.3/debian/changelog 2019-03-18 09:31:47.000000000 +0100
@@ -1,3 +1,11 @@
+mpich (3.3-3) unstable; urgency=medium
+
+
+ * Patch from Ana Guerrero Lopez, Andreas Beckann to remove obsolete
+ GCC check. Closes: #807666, #924837.
+
+ -- Alastair McKinstry <mckinstry@debian.org> Mon, 18 Mar 2019 08:31:47 +0000
+
mpich (3.3-2) unstable; urgency=medium
* Use dh_fortran_mod to install Fortran mod files in $fmoddir/mpich.
diff -Nru mpich-3.3/debian/control mpich-3.3/debian/control
--- mpich-3.3/debian/control 2019-02-22 17:45:42.000000000 +0100
+++ mpich-3.3/debian/control 2019-03-18 09:31:47.000000000 +0100
@@ -38,7 +38,10 @@
Fortran-Mod: ${Fortran-Mod}
Breaks: libmpl-dev,
libopa-dev,
- libmpich2-dev
+ libmpich2-dev,
+ libopenmpi-dev (<< 3.0.1~rc1-2),
+ openmpi-bin (<< 3.0.1~rc1-2),
+ lam4-dev (<< 7.1.4-3.2),
Replaces: libmpl-dev,
libopa-dev,
libmpich2-dev
@@ -89,7 +92,10 @@
Suggests: mpich-doc (= ${source:Version})
Breaks: mpich-bin,
mpich2,
- libmpich-dev ( << 3.3~b2-3~)
+ libmpich-dev ( << 3.3~b2-3~),
+ libopenmpi-dev (<< 3.0.1~rc1-2),
+ openmpi-bin (<< 3.0.1~rc1-2),
+ lam4-dev (<< 7.1.4-3.2),
Replaces: mpich-bin,
mpich2,
libmpich-dev ( << 3.3~b2-3~)
diff -Nru mpich-3.3/debian/libmpich-dev.postinst.in mpich-3.3/debian/libmpich-dev.postinst.in
--- mpich-3.3/debian/libmpich-dev.postinst.in 2019-02-22 17:45:42.000000000 +0100
+++ mpich-3.3/debian/libmpich-dev.postinst.in 2019-03-18 09:31:47.000000000 +0100
@@ -5,7 +5,7 @@
# lib*.so files, which depends on the multiarch triplet. This can be gotten
# from dpkg-architecture, but to avoid dependence on dpkg-dev, we instead
# determine it at package build-time, and include a processed version of this
-# file as the libmpich-dev.postinst, where the variable triplet has been replaced
+# file as the libmpich-dev.postinst, where the variable TRIPLET has been replaced
# by its appropriate value, depending on the build host architecture.
set -e
@@ -27,5 +27,6 @@
fi
+
#DEBHELPER#
diff -Nru mpich-3.3/debian/libmpich-dev.preinst.in mpich-3.3/debian/libmpich-dev.preinst.in
--- mpich-3.3/debian/libmpich-dev.preinst.in 2019-02-22 17:45:42.000000000 +0100
+++ mpich-3.3/debian/libmpich-dev.preinst.in 2019-03-18 09:31:47.000000000 +0100
@@ -2,10 +2,58 @@
set -e
-# Splitting mpi and mpi-$MULTIARCH requires this
-if [ ! -z "$(update-alternatives --query mpi 2> /dev/null | grep --silent mpi-fort.pc)" ]; then
- update-alternatives --quiet --remove-all mpi >/dev/null 2>&1
- update-alternatives --quiet --remove-all mpi-TRIPLET >/dev/null 2>&1
+remove_corrupt_alternative()
+{
+ local alt=$1
+
+ if [ -f /var/lib/dpkg/alternatives/$alt ] && \
+ ! update-alternatives --query $alt >/dev/null 2>&1
+ then
+ # file exists, but query failed? likely corrupt!
+ echo "Removing corrupt alternative(s) '$alt'"
+ update-alternatives --remove-all $alt >/dev/null 2>&1 || \
+ rm -fv /var/lib/dpkg/alternatives/$alt
+ fi
+}
+
+remove_obsolete_alternative()
+{
+ local alt=$1
+
+ remove_corrupt_alternative $alt
+
+ if update-alternatives --query $alt >/dev/null 2>&1
+ then
+ echo "Removing obsolete alternative(s) '$alt'"
+ update-alternatives --remove-all $alt
+ fi
+}
+
+if [ "$1" = "install" ] || [ "$1" = "upgrade" ]; then
+
+ if dpkg --compare-versions "$2" lt "3.3-2~" ; then
+
+ # Recover from historically grown corruption (#912437)
+ remove_corrupt_alternative mpi
+ remove_corrupt_alternative mpi-TRIPLET
+
+ # mpicc seemed to be used as a master alternative by some MPI package. But
+ # currently, all MPI packages have the mpicc alternative installed as a slave
+ # link. We remove the link here in order to resolve bugs #531184 and #532910.
+ remove_obsolete_alternative mpicc
+
+ # Similarly, see #886644
+ remove_obsolete_alternative mpiCC
+
+ # Splitting mpi and mpi-$MULTIARCH requires this
+ if update-alternatives --query mpi 2>/dev/null | grep -q mpi-fort.pc ; then
+ echo "Removing pre-multiarch 'mpi' alternative(s)"
+ update-alternatives --remove-all mpi
+ update-alternatives --remove-all mpi-TRIPLET 2>/dev/null || true
+ fi
+
+ fi
+
fi
#DEBHELPER#
diff -Nru mpich-3.3/debian/libmpich-dev.prerm.in mpich-3.3/debian/libmpich-dev.prerm.in
--- mpich-3.3/debian/libmpich-dev.prerm.in 2019-02-22 17:45:42.000000000 +0100
+++ mpich-3.3/debian/libmpich-dev.prerm.in 2019-03-18 09:31:47.000000000 +0100
@@ -2,7 +2,10 @@
set -e
-if [ "$1" != "upgrade" ]; then
+# do not touch the alternative while being deconfigured
+# this is a M-A:same package which gets regularily deconfigured
+# during upgrades if multiple architectures are installed
+if [ "$1" = "remove" ]; then
update-alternatives --remove mpi-TRIPLET /usr/include/TRIPLET/mpich
fi
diff -Nru mpich-3.3/debian/mpich.postinst mpich-3.3/debian/mpich.postinst
--- mpich-3.3/debian/mpich.postinst 2019-02-22 17:45:42.000000000 +0100
+++ mpich-3.3/debian/mpich.postinst 2019-03-18 09:31:47.000000000 +0100
@@ -2,27 +2,15 @@
set -e
-case "$1" in
- configure)
- # Continue below
- ;;
- abort-upgrade|abort-remove|abort-deconfigure)
- exit 0;
- ;;
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0;
- ;;
-esac
+if [ "$1" = "configure" ]; then
-# so, we are running with $1 = configure
# mpich2 versions before 1.2.1~rc1-1 were using two alternatives where other
# MPI implementations were using only one, which breaks. Clean up
# our mess.
if [ "$2" != "" ] && dpkg --compare-versions "$2" le "1.2.1~rc1-1"; then
update-alternatives --remove mpiexec /usr/bin/mpiexec.mpich2
fi
-if update-alternatives --list mpiexec > /dev/null 2>&1; then
+if update-alternatives --list mpiexec >/dev/null 2>&1; then
# OK, that case sucks. Apparently, we still have a mpiexec alternative, maybe
# from a different package (like openmpi). In that case, the only thing we
# can do is --remove-all...
@@ -51,5 +39,5 @@
--slave /usr/bin/mpiexec mpiexec /usr/bin/mpiexec.mpich \
--slave /usr/share/man/man1/mpiexec.1.gz mpiexec.1.gz /usr/share/man/man1/mpiexec.mpich.1.gz
-#DEBHELPER#
+fi
diff -Nru mpich-3.3/debian/mpich.prerm mpich-3.3/debian/mpich.prerm
--- mpich-3.3/debian/mpich.prerm 2019-02-22 17:45:42.000000000 +0100
+++ mpich-3.3/debian/mpich.prerm 2019-03-18 09:31:47.000000000 +0100
@@ -2,7 +2,7 @@
set -e
-if [ "$1" != "upgrade" ]; then
+if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
update-alternatives --remove mpirun /usr/bin/mpirun.mpich
update-alternatives --remove mpi /usr/bin/mpicc.mpich
fi
diff -Nru mpich-3.3/debian/patches/0001-Remove-obsolete-GCC-check.patch mpich-3.3/debian/patches/0001-Remove-obsolete-GCC-check.patch
--- mpich-3.3/debian/patches/0001-Remove-obsolete-GCC-check.patch 1970-01-01 01:00:00.000000000 +0100
+++ mpich-3.3/debian/patches/0001-Remove-obsolete-GCC-check.patch 2019-03-18 09:31:47.000000000 +0100
@@ -0,0 +1,49 @@
+>From 43a4b31ecb6a6a13b09f42b5ecef98e40ab31123 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ana=20Guerrero=20L=C3=B3pez?= <aguerrero@suse.com>
+Date: Thu, 14 Mar 2019 16:12:56 +0100
+Subject: [PATCH] Remove obsolete GCC check
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This check was added due to a problem with GCC 3 and currently
+MPICH supports GCC >= 4.1
+Keeping this code around forces to rebuild mpich every time there
+is a new minor version of GCC. Even when it shouldn't be a problem
+using different GCC minor versions belonging to the same release
+series.
+
+Signed-off-by: Ana Guerrero López <aguerrero@suse.com>
+---
+ src/binding/cxx/buildiface | 15 ---------------
+ 1 file changed, 15 deletions(-)
+
+diff --git a/src/binding/cxx/buildiface b/src/binding/cxx/buildiface
+index 6c17990ae..52c224066 100755
+--- a/src/binding/cxx/buildiface
++++ b/src/binding/cxx/buildiface
+@@ -1454,21 +1454,6 @@ sub printDefineChecks {
+ #endif\n\n";
+ }
+
+- # GCC changed the calling convention between 3.2.3 and 3.4.3 (!!!)
+- # check for that
+- print $OUTFD "
+-// Check for incompatible GCC versions
+-// GCC (specifically) g++ changed the calling convention
+-// between 3.2.3 and 3.4.3 (!!) Normally such changes
+-// should only occur at major releases (e.g., version 3 to 4)
+-#ifdef __GNUC__
+-# if __GNUC__ >= \@GNUCXX_VERSION\@
+-# if __GNUC_MINOR__ > 2 && \@GNUCXX_MINORVERSION\@ == 2
+-# error 'Please use the same version of GCC and g++ for compiling MPICH and user MPI programs'
+-# endif
+-# endif
+-#endif\n";
+-
+ print $OUTFD "
+ /*
+ * Because the API is defined, some methods have parameters that are
+--
+2.21.0
+
diff -Nru mpich-3.3/debian/patches/series mpich-3.3/debian/patches/series
--- mpich-3.3/debian/patches/series 2019-02-22 17:45:42.000000000 +0100
+++ mpich-3.3/debian/patches/series 2019-03-18 09:31:47.000000000 +0100
@@ -2,3 +2,4 @@
10_gcc-check.patch
pkgconfig.patch
# fix-autogen-hwloc.patch
+0001-Remove-obsolete-GCC-check.patch
--- End Message ---