diff --git a/brother-dcp9010cn/.SRCINFO b/brother-dcp9010cn/.SRCINFO new file mode 100644 index 0000000..cda3523 --- /dev/null +++ b/brother-dcp9010cn/.SRCINFO @@ -0,0 +1,19 @@ +pkgbase = brother-dcp9010cn + pkgdesc = Brother cups and lpd driver for DCP-9010CN + pkgver = 1.1.2 + pkgrel = 2 + url = http://solutions.brother.com/linux/en_us/index.html + arch = i686 + arch = x86_64 + license = (custom)mm + depends = lib32-glibc + depends = psutils + noextract = DCP7010.ppd.gz + source = http://www.brother.com/pub/bsc/linux/dlf/dcp9010cncupswrapper-1.1.2-2.i386.deb + source = http://www.brother.com/pub/bsc/linux/dlf/dcp9010cnlpr-1.1.2-1.i386.deb + source = brlpdwrapperdcp9010cn + md5sums = 77656611e482dd30e2421872b94ebd73 + md5sums = 2bb1422ba9d9e5e4581ea4cbbe770fc9 + md5sums = 252f0b1fdff5afc395de5a59a1d9641f + +pkgname = brother-dcp9010cn diff --git a/brother-dcp9010cn/PKGBUILD b/brother-dcp9010cn/PKGBUILD new file mode 100644 index 0000000..cc7ee7c --- /dev/null +++ b/brother-dcp9010cn/PKGBUILD @@ -0,0 +1,54 @@ +# Contributor: Pavel Benak + +pkgname=brother-dcp9010cn +pkgver=1.1.2 +pkgrel=2 +_cupsrel=2 +_lprrel=1 +pkgdesc="Brother cups and lpd driver for DCP-9010CN" +arch=('i686' 'x86_64') +url="http://solutions.brother.com/linux/en_us/index.html" +license=('custom') +if [ "$(uname -m)" = "x86_64" ] +then + depends=('lib32-glibc' 'psutils') +else + depends=('psutils') +fi +noextract=(DCP7010.ppd.gz) + +source=( +http://www.brother.com/pub/bsc/linux/dlf/dcp9010cncupswrapper-$pkgver-$_cupsrel.i386.deb +http://www.brother.com/pub/bsc/linux/dlf/dcp9010cnlpr-$pkgver-$_lprrel.i386.deb +brlpdwrapperdcp9010cn +) + +md5sums=('77656611e482dd30e2421872b94ebd73' + '2bb1422ba9d9e5e4581ea4cbbe770fc9' + '252f0b1fdff5afc395de5a59a1d9641f') + +prepare() +{ + mkdir -p $srcdir/unpack || return 1 + for i in $srcdir/*.deb + do + cd $srcdir/unpack + ar -x $i || return 1 + cd $srcdir + bsdtar -pxf $srcdir/unpack/data.tar.gz || return 1 + done +} + +package() +{ + cp -a $srcdir/usr $pkgdir/ || return 1 + cp -a $srcdir/opt $pkgdir/ || return 1 + + # PPD file + install -d -m755 $pkgdir/usr/share/cups/model || return 1 + install -D -m644 $srcdir/opt/brother/Printers/dcp9010cn/cupswrapper/brother_dcp9010cn_printer_en.ppd $pkgdir/usr/share/cups/model || return 1 + + # cups wrapper + install -d -m755 $pkgdir/usr/lib/cups/filter || return 1 + install -D -m755 brlpdwrapperdcp9010cn $pkgdir/usr/lib/cups/filter || return 1 +} \ No newline at end of file diff --git a/brother-dcp9010cn/brlpdwrapperdcp9010cn b/brother-dcp9010cn/brlpdwrapperdcp9010cn new file mode 100755 index 0000000..b66f2e5 --- /dev/null +++ b/brother-dcp9010cn/brlpdwrapperdcp9010cn @@ -0,0 +1,137 @@ +#! /bin/sh +# +# 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 +# + +LOGFILE="/dev/null" +LOGLEVEL="1" +LOGCLEVEL="7" +DEBUG=0 +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="/usr/share/cups/model/brother_dcp9010cn_printer_en.ppd" +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/Printers/dcp9010cn/lpd/filterdcp9010cn" ]; then + : +else + echo "ERROR: /opt/brother/Printers/dcp9010cn/lpd/filterdcp9010cn does not exist" >>$LOGFILE + errorcode=30 + exit +fi + +CUPSOPTION=`echo "$5 Copies=1" | 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/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/Printers/dcp9010cn/cupswrapper/brcupsconfpt1" ]; then + if [ $DEBUG = 0 ]; then + /opt/brother/Printers/dcp9010cn/cupswrapper/brcupsconfpt1 DCP9010CN $PPDC 0 "$CUPSOPTION" "dcp9010cn">> /dev/null + else + /opt/brother/Printers/dcp9010cn/cupswrapper/brcupsconfpt1 DCP9010CN $PPDC $LOGCLEVEL "$CUPSOPTION" "dcp9010cn">>$LOGFILE + fi +fi + +if [ $DEBUG -lt 10 ]; then + cat $INPUT_TEMP_PS | /opt/brother/Printers/dcp9010cn/lpd/filterdcp9010cn "$$" "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