#!/bin/bash # # batch file to install Panasonic Printer Driver # ################################################################################ # # Make sure only root can run our script # if [ "$(id -u)" != "0" ]; then echo " Install MUST be run as root" 1>&2 exit 1 fi BUILD_CPU=x86_64 TARGET_CPU=`uname -m` INSTALL_PATH="/usr/local/share/panasonic/printer" ################################################################################ # # check can install to thie system # CAN_INSTALL=no FILTER_PATH_SEARCH="" MODEL_PATH_SEARCH="" GS_PATH_SEARCH="" GS_GNU_PATH_SEARCH="" GS_GNU_BASE_PATH_SEARCH="" case $TARGET_CPU in x86_64) case $BUILD_CPU in x86_64) CAN_INSTALL=yes ;; esac FILTER_PATH_SEARCH="$FILTER_PATH_SEARCH /usr/lib64/cups/filter" FILTER_PATH_SEARCH="$FILTER_PATH_SEARCH /usr/libexec64/cups/filter" FILTER_PATH_SEARCH="$FILTER_PATH_SEARCH /usr/local/lib64/cups/filter" FILTER_PATH_SEARCH="$FILTER_PATH_SEARCH /usr/local/libexec64/cups/filter" GS_PATH_SEARCH="$GS_PATH_SEARCH /usr/local/lib64/libgs.so" GS_PATH_SEARCH="$GS_PATH_SEARCH /usr/local/lib64/libgs.so.8" GS_PATH_SEARCH="$GS_PATH_SEARCH /usr/local/lib64/libgs.so.9" GS_PATH_SEARCH="$GS_PATH_SEARCH /usr/lib64/libgs.so" GS_PATH_SEARCH="$GS_PATH_SEARCH /usr/lib64/libgs.so.8" GS_PATH_SEARCH="$GS_PATH_SEARCH /usr/lib64/libgs.so.9" GS_GNU_PATH_SEARCH="$GS_GNU_PATH_SEARCH /usr/lib64/x86_64-linux-gnu/libgs.so" GS_GNU_PATH_SEARCH="$GS_GNU_PATH_SEARCH /usr/lib64/x86_64-linux-gnu/libgs.so.8" GS_GNU_PATH_SEARCH="$GS_GNU_PATH_SEARCH /usr/lib64/x86_64-linux-gnu/libgs.so.9" GS_GNU_PATH_SEARCH="$GS_GNU_PATH_SEARCH /usr/lib/x86_64-linux-gnu/libgs.so" GS_GNU_PATH_SEARCH="$GS_GNU_PATH_SEARCH /usr/lib/x86_64-linux-gnu/libgs.so.8" GS_GNU_PATH_SEARCH="$GS_GNU_PATH_SEARCH /usr/lib/x86_64-linux-gnu/libgs.so.9" GS_GNU_BASE_PATH_SEARCH="$GS_GNU_BASE_PATH_SEARCH /usr/local/lib64/libgs.so" GS_GNU_BASE_PATH_SEARCH="$GS_GNU_BASE_PATH_SEARCH /usr/local/lib64/libgs.so.8" GS_GNU_BASE_PATH_SEARCH="$GS_GNU_BASE_PATH_SEARCH /usr/local/lib64/libgs.so.9" GS_GNU_BASE_PATH_SEARCH="$GS_GNU_BASE_PATH_SEARCH /usr/local/lib/libgs.so" GS_GNU_BASE_PATH_SEARCH="$GS_GNU_BASE_PATH_SEARCH /usr/local/lib/libgs.so.8" GS_GNU_BASE_PATH_SEARCH="$GS_GNU_BASE_PATH_SEARCH /usr/local/lib/libgs.so.9" ;; *) ;; esac MODEL_PATH_SEARCH="$MODEL_PATH_SEARCH /usr/share/cups/model" MODEL_PATH_SEARCH="$MODEL_PATH_SEARCH /usr/local/share/cups/model" MODEL_PATH_SEARCH="$MODEL_PATH_SEARCH /usr/share/ppd" MODEL_PATH_SEARCH="$MODEL_PATH_SEARCH /usr/local/share/ppd" FILTER_PATH_SEARCH="$FILTER_PATH_SEARCH /usr/lib/cups/filter" FILTER_PATH_SEARCH="$FILTER_PATH_SEARCH /usr/libexec/cups/filter" FILTER_PATH_SEARCH="$FILTER_PATH_SEARCH /usr/local/lib/cups/filter" FILTER_PATH_SEARCH="$FILTER_PATH_SEARCH /usr/local/libexec/cups/filter" GS_PATH_SEARCH="$GS_PATH_SEARCH /usr/local/lib/libgs.so" GS_PATH_SEARCH="$GS_PATH_SEARCH /usr/local/lib/libgs.so.8" GS_PATH_SEARCH="$GS_PATH_SEARCH /usr/local/lib/libgs.so.9" GS_PATH_SEARCH="$GS_PATH_SEARCH /usr/lib/libgs.so" GS_PATH_SEARCH="$GS_PATH_SEARCH /usr/lib/libgs.so.8" GS_PATH_SEARCH="$GS_PATH_SEARCH /usr/lib/libgs.so.9" if test "x$CAN_INSTALL" != "xyes"; then echo "the package is build for $BUILD_CPU cpu, can not install to $TARGET_CPU system" exit 1 fi ################################################################################ # # find install dir # FILTER_PATH="" for DIR in $FILTER_PATH_SEARCH; do if test -d $DIR then FILTER_PATH=$DIR break fi done MODEL_PATH="" for DIR in $MODEL_PATH_SEARCH; do if test -d $DIR then MODEL_PATH=$DIR break fi done if test "x$FILTER_PATH" = "x" then echo " Cannot found CUPS filter path" exit 1 fi if test "x$MODEL_PATH" = "x" then echo " Cannot found CUPS model path" exit 1 fi FILTER_PROGRAMS="L_H0JDGCZAZ" ################################################################################ # # echo informations # echo echo " start install......" ################################################################################ # # check and execute uninstall shell script # if test -f $INSTALL_PATH/uninstall-driver then echo "find exist printer driver" echo " execute uninstall shell script now......" if !($INSTALL_PATH/uninstall-driver) then echo " uninstall old failed" echo " install driver failed" echo exit 1 fi fi SCRIPT=`readlink -f $0` SCRIPTPATH=`dirname $SCRIPT` PWD=`pwd` cd $SCRIPTPATH ################################################################################ # # echo informations # echo " start install files......" ################################################################################ # # make install dir # mkdir -p $INSTALL_PATH/ mkdir -p $INSTALL_PATH/bin mkdir -p $INSTALL_PATH/conf mkdir -p $INSTALL_PATH/data chmod 777 $INSTALL_PATH/conf mkdir -p /var/spool/.panamfs chmod 777 /var/spool/.panamfs ################################################################################ # # copy files # # create uninstall script cat > $INSTALL_PATH/uninstall-driver <<\_______EOF #!/bin/bash # # batch file to uninstall Panasonic Printer Driver # ################################################################################ # # Make sure only root can run our script # if [ "$(id -u)" != "0" ]; then echo " Uninstall MUST be run as root" 1>&2 exit 1 fi ################################################################################ # # echo informations # echo echo " Confirmation" echo " uninstall" echo echo -n " input 'y' to continue:" read inputval if test "$inputval" != "y" then echo " uninstall be canceled" echo exit 1 fi ################################################################################ # # remove files # echo " uninstall files......" ################################################################################ # # follow is created by install script # _______EOF chmod 755 $INSTALL_PATH/uninstall-driver # copy Version file cp ./Version.html $INSTALL_PATH/Version.html echo "rm -f $INSTALL_PATH/Version.html" >> $INSTALL_PATH/uninstall-driver # copy lib files INSTALL_LIB_PATH="/usr/lib" RESTORECON="/sbin/restorecon" LIB_FILES="L_H0JDJCZAZ_2 L_H0JDJCZAZ" for file in $LIB_FILES; do cp ./lib/$file.so.1.0.0 $INSTALL_LIB_PATH/ echo "rm -f $INSTALL_LIB_PATH/$file.so.1.0.0" >> $INSTALL_PATH/uninstall-driver ln -sf $file.so.1.0.0 $INSTALL_LIB_PATH/$file.so.1 echo "rm -f $INSTALL_LIB_PATH/$file.so.1" >> $INSTALL_PATH/uninstall-driver ln -sf $file.so.1 $INSTALL_LIB_PATH/$file.so echo "rm -f $INSTALL_LIB_PATH/$file.so" >> $INSTALL_PATH/uninstall-driver done FILTER_PATH="" for DIR in $FILTER_PATH_SEARCH; do if test -d $DIR then FILTER_PATH=$DIR for file in $FILTER_PROGRAMS; do cp ./filter/$file $FILTER_PATH/ echo "rm -f $FILTER_PATH/$file" >> $INSTALL_PATH/uninstall-driver if test -f $RESTORECON then $RESTORECON $FILTER_PATH/$file fi done fi done # make GhostScript link GS_PATH="" for DIR in $GS_PATH_SEARCH; do if test -e $DIR then GS_PATH=$DIR break fi done if test "x$GS_PATH" = "x" then GS_GNU_PATH="" i=0 for DIR in $GS_GNU_PATH_SEARCH; do if test -e $DIR then GS_GNU_PATH=$DIR break fi i=$(($i+1)) done if test "x$GS_GNU_PATH" = "x" then echo " Cannot found GhostScript path" exit 1 fi j=0 for DIR in $GS_GNU_BASE_PATH_SEARCH; do if test $j -eq $i then GS_GNU_BASE_PATH=$DIR break fi j=$(($j+1)) done ln -s $GS_GNU_PATH $GS_GNU_BASE_PATH fi # copy ppd files PPD_FILES=`find ppd -name *.ppd` MODEL_PATH="" for DIR in $MODEL_PATH_SEARCH; do if test -d $DIR then MODEL_PATH=$DIR mkdir -p $MODEL_PATH/panasonic/ chown root:root $MODEL_PATH/panasonic/ chmod 755 $MODEL_PATH/panasonic/ for file in $PPD_FILES; do cp $file $MODEL_PATH/panasonic/ file=`basename $file` echo "rm -f $MODEL_PATH/panasonic/$file" >> $INSTALL_PATH/uninstall-driver done echo "rmdir --ignore-fail-on-non-empty $MODEL_PATH/panasonic" >> $INSTALL_PATH/uninstall-driver fi done # copy SPC & RCT files DATA_FILES=`find data` for file in $DATA_FILES; do if test -d $file then mkdir -p $INSTALL_PATH/$file else if test -f $file then cp $file $INSTALL_PATH/$file echo "rm -f $INSTALL_PATH/$file" >> $INSTALL_PATH/uninstall-driver fi fi done for file in $DATA_FILES; do if test -d $file then echo "rmdir --ignore-fail-on-non-empty -p $INSTALL_PATH/$file" >> $INSTALL_PATH/uninstall-driver fi done # copy tools cp ./panautil/L_H0JDUIZAZ $INSTALL_PATH/bin/ echo "rm -f $INSTALL_PATH/bin/L_H0JDUIZAZ" >> $INSTALL_PATH/uninstall-driver cp ./panautil/L_H0JDUCZAZ $INSTALL_PATH/bin/ echo "rm -f $INSTALL_PATH/bin/L_H0JDUCZAZ" >> $INSTALL_PATH/uninstall-driver chmod 4755 $INSTALL_PATH/bin/L_H0JDUCZAZ cp ./panautil/L_H0JDUIZAZ.png $INSTALL_PATH/bin/ echo "rm -f $INSTALL_PATH/bin/L_H0JDUIZAZ.png" >> $INSTALL_PATH/uninstall-driver if test -d /usr/local/share/applications/ then echo "# desktop folder = /usr/local/share/applications" >> $INSTALL_PATH/uninstall-driver else mkdir -p /usr/local/share/applications chown root:root /usr/local/share/applications chmod 755 /usr/local/share/applications fi if test -d /usr/local/share/applications/ then cp ./panautil/L_H0JDUIZAZ.desktop /usr/local/share/applications/ echo "rm -f /usr/local/share/applications/L_H0JDUIZAZ.desktop" >> $INSTALL_PATH/uninstall-driver fi echo "rm -Rf $INSTALL_PATH/conf" >> $INSTALL_PATH/uninstall-driver echo "rmdir --ignore-fail-on-non-empty -p $INSTALL_PATH/bin" >> $INSTALL_PATH/uninstall-driver echo "rm -f $INSTALL_PATH/uninstall-driver" >> $INSTALL_PATH/uninstall-driver cat >> $INSTALL_PATH/uninstall-driver <<\_______EOF ################################################################################ # # restart # echo " restart spooler - CUPS" if test -f /etc/init.d/cups then /etc/init.d/cups restart else if test -f /etc/init.d/cupsys then /etc/init.d/cupsys restart fi fi ################################################################################ # # echo informations # echo echo " uninstall driver completed" echo echo " please use \"system-config-printer\" or \"lpadmin\" " echo " to remove all printers based on the driver." echo exit 0 _______EOF ################################################################################ # # restart CUPS # echo " restart spooler - CUPS" if test -f /etc/init.d/cups then /etc/init.d/cups restart else if test -f /etc/init.d/cupsys then /etc/init.d/cupsys restart fi fi cd $PWD ################################################################################ # # echo informations # echo echo " install driver completed" echo echo " please use \"system-config-printer\" or \"lpadmin\" to add printer." echo exit 0