From 95ca7b39e203ce48c56082d830313a23a18483dd Mon Sep 17 00:00:00 2001 From: onekk Date: Sat, 26 Apr 2014 15:41:55 +0200 Subject: [PATCH] brother-dcp197c-cupswrapper: modified to made it work --- srcpkgs/brother-dcp197c-cupswrapper/INSTALL | 2 +- srcpkgs/brother-dcp197c-cupswrapper/REMOVE | 2 +- .../files/43-cups-usb.rules | 21 ++ ...ther_cupswrapper.void => cupswrapper.void} | 214 +++++++++--------- srcpkgs/brother-dcp197c-cupswrapper/template | 6 +- 5 files changed, 128 insertions(+), 117 deletions(-) create mode 100644 srcpkgs/brother-dcp197c-cupswrapper/files/43-cups-usb.rules rename srcpkgs/brother-dcp197c-cupswrapper/files/{brother_cupswrapper.void => cupswrapper.void} (53%) diff --git a/srcpkgs/brother-dcp197c-cupswrapper/INSTALL b/srcpkgs/brother-dcp197c-cupswrapper/INSTALL index b8473e2b540..f2390c54255 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/brother_cupswrapper.void -i + /opt/brother/Printers/dcp197c/cupswrapper/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 index 7e7bb28fab4..addf43a65c5 100644 --- a/srcpkgs/brother-dcp197c-cupswrapper/REMOVE +++ b/srcpkgs/brother-dcp197c-cupswrapper/REMOVE @@ -1,3 +1,3 @@ case ${ACTION} in - purge) /opt/brother/Printers/dcp197c/cupswrapper/brother_cupswrapper.void -e ;; + pre) /opt/brother/Printers/dcp197c/cupswrapper/cupswrapper.void -e ;; esac diff --git a/srcpkgs/brother-dcp197c-cupswrapper/files/43-cups-usb.rules b/srcpkgs/brother-dcp197c-cupswrapper/files/43-cups-usb.rules new file mode 100644 index 00000000000..ed36ecdc56b --- /dev/null +++ b/srcpkgs/brother-dcp197c-cupswrapper/files/43-cups-usb.rules @@ -0,0 +1,21 @@ +# This file is installed by brother-XXXX-cupswrapper +# To adapt it to you needing make sure you: +# install usb-utils package +# launch lsusb and note a line resemblig this one: +# +# Bus 004 Device 007: ID 04f9:023e Brother Industries, Ltd +# Explanation: +# +# Bus xxx Device xxx are the location of the usb port +# +# ID 04f9:xxxx Brother Industries, Ltd +# +# note the xxxx hex number and put it in the field: +# +# ATTR{idProduct}=="023e" at place of 023e (the code for DCP197C) +# +# This is needed to make the printer work correctly +# even if you installed the brother-brsca3 package +# versione date 2014/04/26 + +ATTR{idVendor}=="04f9", ATTR{idProduct}=="023e", MODE:="0664", GROUP:="lp", ENV{libsane_matched}:="yes" \ No newline at end of file diff --git a/srcpkgs/brother-dcp197c-cupswrapper/files/brother_cupswrapper.void b/srcpkgs/brother-dcp197c-cupswrapper/files/cupswrapper.void similarity index 53% rename from srcpkgs/brother-dcp197c-cupswrapper/files/brother_cupswrapper.void rename to srcpkgs/brother-dcp197c-cupswrapper/files/cupswrapper.void index 52ba4238e00..25f040060e8 100755 --- a/srcpkgs/brother-dcp197c-cupswrapper/files/brother_cupswrapper.void +++ b/srcpkgs/brother-dcp197c-cupswrapper/files/cupswrapper.void @@ -18,33 +18,29 @@ # Place, Suite 330, Boston, MA 02111-1307 USA # # modified for voidlinux by Carlo Dormeletti carlo.dormeletti email.it +# modify date 2014/04/26 # 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]'` +cups_printer_name=`echo $printer_model | tr '[a-z]' '[A-Z]'` +device_name=`echo $cups_printer_name | eval sed -e 's/MFC/MFC-/' -e 's/DCP/DCP-/' -e 's/FAX/FAX-/'` +# pcfilename=`echo $cups_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 +brotherlpdwrapper=/usr/lib/cups/filter/brlpdwrapper${printer_model} 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 + echo "---------- Printer ----------" + echo "printer_model => " $printer_model + echo "cups_printer_name => " $cups_printer_name + echo "device_name => " $device_name + echo "device_model => " $device_model + echo "-------- Filters File --------" + echo "tmp_filter => " $tmp_filter + echo "ppd_file_name => " $ppd_file_name exit 0 fi @@ -52,27 +48,19 @@ fi if [ "$1" = '-e' ]; then - lpadmin -x ${printer_name} + lpadmin -x ${cups_printer_name} rm -f $ppd_file_name + rm -f $brotherlpdwrapper -#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 + systemctl restart cups + 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 + lpadmin -x ${cups_printer_name} + + systemctl restart cups + exit 0 fi @@ -89,6 +77,7 @@ if [ -e "/opt/brother/${device_model}/${printer_model}/lpd/filter${printer_model : else echo "ERROR : Brother LPD filter is not installed." + echo "ERROR : please install it." fi @@ -121,6 +110,7 @@ cat <$tmp_filter # Place, Suite 330, Boston, MA 02111-1307 USA # # modified for voidlinux by Carlo Dormeletti carlo.dormeletti email.it +# modify date 201/04/26 # LOGFILE="/dev/null" @@ -132,36 +122,36 @@ LOG_LATESTONLY=1 errorcode=0 if [ \$DEBUG != 0 ]; then - LOGFILE=/tmp/br_cupsfilter_debug_log + 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 + PPDC=$ppd_file_name fi if [ \$LOGFILE != "/dev/null" ]; then if [ \$LOG_LATESTONLY == "1" ]; then rm -f \$LOGFILE - date >\$LOGFILE + date >\$LOGFILE else if [ -e \$LOGFILE ]; then - date >>\$LOGFILE + date >>\$LOGFILE else - date >\$LOGFILE + 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 + 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\` @@ -169,75 +159,77 @@ 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 + 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 + else cat > \$INPUT_TEMP_PS - fi -fi -if [ -e "/opt/brother/${device_model}/${printer_model}/lpd/filter${printer_model}" ]; then - : + fi + fi else - echo "ERROR: /opt/brother/${device_model}/${printer_model}/lpd/filter${printer_model} does not exist" >>\$LOGFILE - errorcode=30 - exit + 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 + /opt/brother/${device_model}/${printer_model}/cupswrapper/brcupsconfpt1 ${cups_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 + /opt/brother/${device_model}/${printer_model}/cupswrapper/brcupsconfpt1 ${cups_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" + 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 + 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 @@ -247,48 +239,44 @@ exit $errorcode chmod 755 $tmp_filter # -# check /usr/lib/cups/filter +# check brotherlpdwrapper in /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 + rm -f $brotherlpdwrapper + cp $tmp_filter $brotherlpdwrapper fi # -# remove temporary script file +# 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 +systemctl restart cups port2=`lpinfo -v | grep -i 'usb://Brother/${device_name}' | head -1` if [ "$port2" = '' ];then - port2=`lpinfo -v | grep 'usb://Brother' | head -1` + port2=`lpinfo -v | grep 'usb://Brother' | head -1` fi if [ "$port2" = '' ];then - port2=`lpinfo -v | grep 'usb://' | head -1` + port2=`lpinfo -v | grep 'usb://' | head -1` fi port=`echo $port2| sed s/direct//g` if [ "$port" = '' ];then - port=usb:/dev/usb/lp0 + port=usb:/dev/usb/lp0 fi -lpadmin -p ${printer_name} -E -v $port -P $ppd_file_name +lpadmin -p ${cups_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 a5b4411b993..7d70a41d4ec 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=2 +revision=3 maintainer="Carlo Dormeletti " homepage="http://support.brother.com/g/b/index.aspx" license="GPL-2" @@ -19,5 +19,7 @@ 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/ + rm ${DESTDIR}/opt/brother/Printers/dcp197c/cupswrapper/cupswrapperdcp197c + vinstall ${FILESDIR}/cupswrapper.void 755 /opt/brother/Printers/dcp197c/cupswrapper/ + vinstall ${FILESDIR}/43-cups-usb.rules 644 /usr/lib/udev/rules.d/ }