#!/bin/sh -e DEB_HOST_MULTIARCH=x86_64-linux-gnu SONAME=3.16 PETSC_VERSION=3.16.6 PETSC_ARCH=${DEB_HOST_MULTIARCH} PETSC_REAL_ARCH=${PETSC_ARCH}-real PETSC_VERSION_NUMBER=$( echo ${PETSC_VERSION} | sed "s/\.//g" ) PETSC_SONAME_VERSION=3.16 PETSC_NAME=petsc${PETSC_SONAME_VERSION} PETSC_DIR_REAL=/usr/lib/petscdir/${PETSC_NAME}/${PETSC_REAL_ARCH} # Make alternatives links if [ "$1" = "configure" ]; then # alternative libpetsc.so.multiarch is deprecated # test if libpetsc.so.multiarch is still in use if update-alternatives --query petsc | grep libpetsc.so.multiarch > /dev/null ; then # if so, refresh the alternatives (remove libpetsc.so.multiarch) by removing the old definitions # Show no mercy. Wipe them out. All of them. # i.e. remove both real and complex alternatives for the old version # This should be safe since Conflicts are set up with the package versions using deprecated libpetsc.so.multiarch. echo Removing deprecated petsc alternatives using libpetsc.so.multiarch. for alt in `update-alternatives --list petsc`; do update-alternatives --remove petsc ${alt} done fi # alternative default petsc (e.g. real or complex) update-alternatives --install /usr/lib/petsc petsc ${PETSC_DIR_REAL} ${PETSC_VERSION_NUMBER}79 \ --slave /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc.so libpetsc.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc_real.so.${PETSC_VERSION} \ --slave /usr/include/petsc petscinclude ${PETSC_DIR_REAL}/include \ --slave /usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/PETSc.pc PETSc.pc ${PETSC_DIR_REAL}/lib/pkgconfig/PETSc.pc \ --slave /usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/petsc.pc petsc.pc ${PETSC_DIR_REAL}/lib/pkgconfig/petsc.pc \ --slave /usr/share/octave/site/m/petsc petsc-octave ${PETSC_DIR_REAL}/share/petsc/matlab # alternative base version of petsc real update-alternatives --install /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc_real.so libpetsc_real.so /usr/lib/${DEB_HOST_MULTIARCH}/libpetsc_real.so.${PETSC_VERSION} ${PETSC_VERSION_NUMBER}77 \ --slave /usr/lib/petscdir/petsc-real petsc-real ${PETSC_DIR_REAL} # alternative petsc for this X.Y soname (e.g. real or complex) update-alternatives --install /usr/lib/petscdir/${SONAME} petsc${SONAME} ${PETSC_DIR_REAL} ${PETSC_VERSION_NUMBER}77 fi