XCOMM! /bin/ksh XCOMM ####### XCOMM Product: CDE XCOMM Fileset: CDE-SHLIBS XCOMM customize XCOMM @(#) $XConsortium: configShlibs.src /main/2 1996/04/21 19:14:20 drk $ XCOMM ####### XCOMM XCOMM (c) Copyright Hewlett-Packard Company, 1993 XCOMM XCOMM ####### #define STAR * XCOMM ############################################ RemoveShlibFiles() { while read SRC do if [ "$SRC" != "" ] then rm -f $SRC dirname=${SRC%/STAR} if [ -d $dirname ] then cd $dirname while [ "$dirname" != "$CDE_TOP" ] do cd .. rmdir ${dirname##STAR/} >/dev/null 2>/dev/null dirname=${dirname%/STAR} done fi fi done <<-EOF #include "CDE-SHLIBS.list" EOF } VerifyInstalledFiles() { echo "Status mode owner group filename" echo "-----------------------------------------" XCOMM exists correct correct correct /usr/dt/foo1 XCOMM MISSING WRONG WRONG WRONG /usr/dt/foo2 XCOMM exists the link is correct /usr/dt/link while read SRC do #include "../verify.func" done <<-EOF #include "CDE-SHLIBS.lst" EOF } #include "../option.func" MakeTheLink() { XCOMM XCOMM Special treatment for CDE .so's that would otherwise overwrite XCOMM sponsor-provided libraries. XCOMM typeset -i status=0 for lib in $CDE_NEW_SHLIB do savedlib=/usr/shlib/$lib.preCDE sharelib=/usr/shlib/$lib cdelib=CDE_INSTALLATION_TOP/lib/$lib echo " Creating symlink for $lib" if [ -L $sharelib ] then if [ ! -e $savedlib ] then /bin/mv $sharelib $savedlib fi /bin/ln -s -f $cdelib $sharelib elif [ -e $sharelib ] then /bin/mv -f $sharelib $savedlib /bin/ln -s $cdelib $sharelib else echo " Failed to symlink $lib" status=1 fi done return $status } UnmakeTheLink() { XCOMM XCOMM Restore the saved versions of libraries. XCOMM for lib in $CDE_NEW_SHLIB do savedlib=/usr/shlib/$lib.preCDE newlib=/usr/shlib/$lib echo " Restoring $lib" if [ -e $savedlib ] then if [ -L $newlib ] then /bin/rm -f $newlib /bin/mv -f $savedlib $newlib elif [ -e /usr/shlib/$lib ] then echo " $newlib is not a symlink. Left alone." else /bin/mv -f $savedlib $newlib fi fi done return $status } XCOMM ########################################################################## XCOMM XCOMM Main Body XCOMM XCOMM ########################################################################## PRODUCT=CDE FILESET=CDE-SHLIBS retval=0 CDE_TOP=CDE_INSTALLATION_TOP CDE_CONF_TOP=CDE_CONFIGURATION_TOP CDE_NEW_SHLIB="libXm.so libMrm.so" HandleOption $* if [ "$OPERATION" = "configure" ] then XCOMM MakeTheLink retval=0 elif [ "$OPERATION" = "deconfigure" ] then XCOMM UnmakeTheLink RemoveShlibFiles VerifyInstalledFiles elif [ "$OPERATION" = "verify" ] then VerifyInstalledFiles fi return $retval