diff --git a/srcpkgs/brother-dcp197c-cupswrapper/INSTALL b/srcpkgs/brother-dcp197c-cupswrapper/INSTALL index 95477d47345..b8473e2b540 100644 --- a/srcpkgs/brother-dcp197c-cupswrapper/INSTALL +++ b/srcpkgs/brother-dcp197c-cupswrapper/INSTALL @@ -1,6 +1,6 @@ case "${ACTION}" in post) - /opt/brother/Printers/dcp197c/cupswrapper/cupswrapperdcp197c + /opt/brother/Printers/dcp197c/cupswrapper/brother_cupswrapper.void -i chmod 755 /opt/brother/Printers/dcp197c/cupswrapper ;; esac diff --git a/srcpkgs/brother-dcp197c-cupswrapper/REMOVE b/srcpkgs/brother-dcp197c-cupswrapper/REMOVE new file mode 100644 index 00000000000..7e7bb28fab4 --- /dev/null +++ b/srcpkgs/brother-dcp197c-cupswrapper/REMOVE @@ -0,0 +1,3 @@ +case ${ACTION} in + purge) /opt/brother/Printers/dcp197c/cupswrapper/brother_cupswrapper.void -e ;; +esac diff --git a/srcpkgs/brother-dcp197c-cupswrapper/files/brother_cupswrapper.void b/srcpkgs/brother-dcp197c-cupswrapper/files/brother_cupswrapper.void new file mode 100755 index 00000000000..bddc0cdf6ad --- /dev/null +++ b/srcpkgs/brother-dcp197c-cupswrapper/files/brother_cupswrapper.void @@ -0,0 +1,293 @@ +#! /bin/sh +# +# Brother Print filter +# Copyright (C) 2005-2011 Brother. Industries, Ltd. + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA +# +# + + +printer_model=""dcp197c"" +printer_name=`echo $printer_model | tr '[a-z]' '[A-Z]'` +device_name=`echo $printer_name | eval sed -e 's/MFC/MFC-/' -e 's/DCP/DCP-/' -e 's/FAX/FAX-/'` +pcfilename=`echo $printer_name | tr -d '[A-Z]'` +device_model="Printers" +tmp_filter=/var/tmp/brlpdwrapper${printer_model} +ppd_file_name=/usr/share/ppd/cupsfilters/brother_${printer_model}_printer_en.ppd + + +if [ "$1" = "-c" ]; then + echo "printer_model => " + echo $printer_model + echo "printer_name => " + echo $printer_name + echo "device_name => " + echo $device_name + echo "pcfilename =>" + echo $pcfilename + echo "device_model => " + echo $device_model + echo "tmp_filter => " + echo $tmp_filter + echo "ppd_file_name => " + echo $ppd_file_name + + exit 0 +fi + + + +if [ "$1" = '-e' ]; then + lpadmin -x ${printer_name} + rm -f $ppd_file_name + +#if [ -e /etc/init.d/cups ]; then +# /etc/init.d/cups restart +#elif [ -e /etc/init.d/cupsys ]; then +# /etc/init.d/cupsys restart +#fi +# /etc/init.d/cups restart +# exit 0 +fi + +if [ "$1" = "-r" ]; then + lpadmin -x ${printer_name} +#if [ -e /etc/init.d/cups ]; then +# /etc/init.d/cups restart +#elif [ -e /etc/init.d/cupsys ]; then +# /etc/init.d/cupsys restart +#fi +# /etc/init.d/cups restart +# exit 0 +fi + + +if [ "$1" = "help" ] || [ "$1" = "-h" ]; then + echo 'option -h : help' + echo ' -i : install' + echo ' -e : uninstall' + echo ' -r : remove printer' + echo ' -c : check variables' + exit 0 +fi + +if [ -e "/opt/brother/${device_model}/${printer_model}/lpd/filter${printer_model}" ]; then + : +else + echo "ERROR : Brother LPD filter is not installed." +fi + + +cp "/opt/brother/${device_model}/${printer_model}/cupswrapper/brother_${printer_model}_printer_en.ppd" $ppd_file_name +chmod 644 $ppd_file_name + +# +# create temporary CUPS Filter +# + +cat <$tmp_filter +#! /bin/sh +# +# Brother Print filter >> +# Copyright (C) 2005-2011 Brother. Industries, Ltd. +# Ver1.10 + +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA +# +# modified for voidlinux by Carlo Dormeletti carlo.dormeletti email.it +# + +LOGFILE="/dev/null" +LOGLEVEL="1" +LOGCLEVEL="7" +DEBUG=1 +NUPENABLE=1 +LOG_LATESTONLY=1 +errorcode=0 + +if [ \$DEBUG != 0 ]; then + LOGFILE=/tmp/br_cupsfilter_debug_log +fi + +PPDC=\`printenv | grep "PPD="\` +PPDC=\`echo \$PPDC | sed -e 's/PPD=//'\` + +if [ "\$PPDC" = "" ]; then + PPDC=$ppd_file_name +fi + + +if [ \$LOGFILE != "/dev/null" ]; then + if [ \$LOG_LATESTONLY == "1" ]; then + rm -f \$LOGFILE + date >\$LOGFILE + else + if [ -e \$LOGFILE ]; then + date >>\$LOGFILE + else + date >\$LOGFILE + fi + fi + echo "arg0 = \$0" >>\$LOGFILE + echo "arg1 = \$1" >>\$LOGFILE + echo "arg2 = \$2" >>\$LOGFILE + echo "arg3 = \$3" >>\$LOGFILE + echo "arg4 = \$4" >>\$LOGFILE + echo "arg5 = \$5" >>\$LOGFILE + echo "arg6 = \$6" >>\$LOGFILE + echo "PPD = \$PPD" >>\$LOGFILE +fi + +INPUT_TEMP_PS=\`mktemp /tmp/br_input_ps.XXXXXX\` + +nup="cat" +if [ "`echo \$5 | grep 'Nup='`" != '' ] && [ \$NUPENABLE != 0 ]; then + + if [ "`echo \$5 | grep 'Nup=64'`" != '' ]; then + nup="psnup -64" + elif [ "`echo \$5 | grep 'Nup=32'`" != '' ]; then + nup="psnup -32" + elif [ "`echo \$5 | grep 'Nup=25'`" != '' ]; then + nup="psnup -25" + elif [ "`echo \$5 | grep 'Nup=16'`" != '' ]; then + nup="psnup -16" + elif [ "`echo \$5 | grep 'Nup=8'`" != '' ]; then + nup="psnup -8" + elif [ "`echo \$5 | grep 'Nup=6'`" != '' ]; then + nup="psnup -6" + elif [ "`echo \$5 | grep 'Nup=4'`" != '' ]; then + nup="psnup -4" + elif [ "`echo \$5 | grep 'Nup=2'`" != '' ]; then + nup="psnup -2" + elif [ "`echo \$5 | grep 'Nup=1'`" != '' ]; then + nup="cat" + fi + echo "NUP=\$nup" >>\$LOGFILE + if [ -e /usr/bin/psnup ]; then + if [ \$# -ge 7 ]; then + cat \$6 | \$nup > \$INPUT_TEMP_PS + else + cat | \$nup > \$INPUT_TEMP_PS + fi + else + if [ \$# -ge 7 ]; then + cp \$6 \$INPUT_TEMP_PS + else + cat > \$INPUT_TEMP_PS + fi + fi +else + if [ \$# -ge 7 ]; then + cp \$6 \$INPUT_TEMP_PS + else + cat > \$INPUT_TEMP_PS + fi +fi +if [ -e "/opt/brother/${device_model}/${printer_model}/lpd/filter${printer_model}" ]; then + : +else + echo "ERROR: /opt/brother/${device_model}/${printer_model}/lpd/filter${printer_model} does not exist" >>\$LOGFILE + errorcode=30 + exit +fi + +CUPSOPTION=\`echo "\$5 Copies=\$4" | sed -e 's/BrMirror=OFF/MirrorPrint=OFF/' -e 's/BrMirror=ON/MirrorPrint=ON/' -e 's/BrChain/Chain/' -e 's/BrBrightness/Brightness/' -e 's/BrContrast/Contrast/' -e 's/BrHalfCut/HalfCut/' -e 's/BrAutoTapeCut/AutoCut/' -e 's/BrHalftonePattern/Halftone/' -e 's/Binary/Binary/' -e 's/Dither/Dither/' -e 's/ErrorDiffusion/ErrorDiffusion/' -e 's/PageSize/media/' -e 's/BrSheets/Sheets/' -e 's/multiple-document-handling/Collate/' -e 's/separate-documents-collated-copies/ON/' -e 's/separate-documents-uncollated-copies/OFF/'\` + +if [ -e "/opt/brother/${device_model}/${printer_model}/cupswrapper/brcupsconfpt1" ]; then + if [ \$DEBUG = 0 ]; then + /opt/brother/${device_model}/${printer_model}/cupswrapper/brcupsconfpt1 ${printer_name} \$PPDC 0 "\$CUPSOPTION" "${printer_model}">> /dev/null + else + /opt/brother/${device_model}/${printer_model}/cupswrapper/brcupsconfpt1 ${printer_name} \$PPDC \$LOGCLEVEL "\$CUPSOPTION" "${printer_model}">>\$LOGFILE + fi +fi + +if [ \$DEBUG -lt 10 ]; then + cat \$INPUT_TEMP_PS | /opt/brother/${device_model}/${printer_model}/lpd/filter${printer_model} "\$\$" "CUPS" "USB" + + if [ \$LOGLEVEL -gt 2 ]; then + if [ \$LOGFILE != "/dev/null" ]; then + echo "" >>\$LOGFILE + echo " ------PostScript Data-------" >>\$LOGFILE + cat \$INPUT_TEMP_PS >>\$LOGFILE + fi + fi +fi +rm -f \$INPUT_TEMP_PS + +exit $errorcode + +!ENDOFWFILTER! + +chmod 755 $tmp_filter + +# +# check /usr/lib/cups/filter +# +if [ -d /usr/lib/cups/filter ]; then + brotherlpdwrapper=/usr/lib/cups/filter/brlpdwrapper${printer_model} + rm -f $brotherlpdwrapper + cp $tmp_filter $brotherlpdwrapper +fi + +# +# remove temporary script file +# +rm -f $tmp_filter + +chmod a+w /opt/brother/${device_model}/${printer_model}/inf/br${printer_model}rc +chmod a+w /opt/brother/${device_model}/${printer_model}/inf + +#if [ -e /etc/init.d/cups ]; then +# /etc/init.d/cups restart +#elif [ -e /etc/init.d/cupsys ]; then +# /etc/init.d/cupsys restart +#fi + +sleep 2s + + +port2=`lpinfo -v | grep -i 'usb://Brother/${device_name}' | head -1` + +if [ "$port2" = '' ];then + port2=`lpinfo -v | grep 'usb://Brother' | head -1` +fi + +if [ "$port2" = '' ];then + port2=`lpinfo -v | grep 'usb://' | head -1` +fi + +port=`echo $port2| sed s/direct//g` + +if [ "$port" = '' ];then + port=usb:/dev/usb/lp0 +fi + +lpadmin -p ${printer_name} -E -v $port -P $ppd_file_name + +exit 0 + diff --git a/srcpkgs/brother-dcp197c-cupswrapper/template b/srcpkgs/brother-dcp197c-cupswrapper/template index bdc1dbca773..a5b4411b993 100644 --- a/srcpkgs/brother-dcp197c-cupswrapper/template +++ b/srcpkgs/brother-dcp197c-cupswrapper/template @@ -1,7 +1,7 @@ # Template file for 'brother-dcp197c-cupswrapper' pkgname=brother-dcp197c-cupswrapper version=1.1.3 -revision=1 +revision=2 maintainer="Carlo Dormeletti " homepage="http://support.brother.com/g/b/index.aspx" license="GPL-2" @@ -19,4 +19,5 @@ do_extract() { do_install(){ mkdir -p ${DESTDIR} tar xzpvf data.tar.gz -C ${DESTDIR} + vinstall ${FILESDIR}/brother_cupswrapper.void 755 /opt/brother/Printers/dcp197c/cupswrapper/ }