#!/bin/sh set -e 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.1.3-10~" ; then # Recover from historically grown corruption (#912437) remove_corrupt_alternative mpi # Add a comment here remove_obsolete_alternative mpirun-x86_64-linux-gnu # Delete old non-multi-arch aware mpi if update-alternatives --query mpi 2>/dev/null | grep --silent libmpi ; then echo "Removing pre-multiarch 'mpi' alternative(s)" update-alternatives --remove-all mpi fi fi fi