# Maintainer: Chris Severance aur.severach aATt spamgourmet dott com _brinf=( [MFC-J6935DW] PRN_CUP_RPM=mfcj6935dwcupswrapper-1.0.1-0.i386.rpm PRN_CUP_DEB=mfcj6935dwcupswrapper-1.0.1-0.i386.deb PRN_LPD_RPM=mfcj6935dwlpr-1.0.1-0.i386.rpm PRN_LPD_DEB=mfcj6935dwlpr-1.0.1-0.i386.deb PRINTERNAME=MFCJ6935DW SCANNER_DRV=brscan4 SCANKEY_DRV=brscan-skey ) _brinf+=( REQUIRE32LIB=yes ) _opt_DEB=0 set -u _brotheru='MFC-J6935DW' _brotherl="${_brotheru,,}" # mfc-0000dw _brotherlnd="${_brotherl//-/}" # mfc0000dw _brotherund="${_brotheru//-/}" # MFC0000DW _brotherxnd="${_brotherlnd}" # upper or lower as required by scripts pkgname="brother-${_brotherl}" pkgver='1.0.1_0' pkgrel='1' pkgdesc="LPR and CUPS driver for the Brother ${_brotheru} printer" arch=('i686' 'x86_64') url='https://support.brother.com/g/s/id/linux/en/' license=('GPL' 'custom') depends=('cups' 'ghostscript' 'psutils' 'sed' 'grep' 'file') depends_x86_64=('lib32-gcc-libs') # We look at the scripts and find these programs from which we decide on the depends above. # gs: lpr rendering # pdf2ps: cups rendering # (no) a2ps: rendering ascii text files # (no) pstops: pdf resizing # (no) psnup: printing n-up pages # sed grep awk # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=670055 # Printing a text file fails when Liberation is the only TrueType font available depends+=('perl') # cupswrapper optdepends=( 'ttf-dejavu: printing text files from lpr' ) options=('!strip') #install="${pkgname}.install" _dlf='http://www.brother.com/pub/bsc/linux' _inf="${_brotherlnd}-${pkgver}.inf" source=( 'cupswrapper-license.txt' "${_inf}::${_dlf}/infs/${_brotherund}" 'lpr-license.txt' ) md5sums=('e42487a541573287fad544bafd1766c6' '8079feed3720218a367c445b83d91023' '4f14b328317aac0d22c7f7f73c581628' '4a50af992473894335ab3410da2d7a1e' 'ae75b7700d2d54287f081a66f89eb713') sha256sums=('65de8004f8d44a96b62f874a26a80b285f7f6b9f37a8b6c628d094e7f1986b2a' '968a19f7cae9aee0c195347e0f115d7dfb490e721321619b4dd01b50e29e1d57' 'b604def129534d245fa576f8cd7d01df1d2856b9bff6c1d2002404f77f7d4bb3' '9fedc880605dd9be74669f815468fc9d71b26fb8ff9f57291f9642e5e6e1afa6' '8f2321e529a6c8474f888a77bd2921cc16b19eae538c9752692316221a0600c5') _mismatch=0 _brverchk() { local _ver="$1" _ver="${_ver%.*}" _ver="${_ver%.*}" local _vb="${_ver%-*}" _vb="${_vb%-*}-" _ver="${_ver#${_vb}}" local _pv="$2" if [ -z "${_pv}" ]; then _pv="$3" fi if [ -z "${_pv}" ]; then _pv="$4" fi if [ "${_ver}" != "${_pv//_/-}" ]; then echo "Version mismatch: ${_ver} ${_pv//_/-}" 1>&2 _mismatch=$((_mismatch+1)) fi } _procinf() { local _fd _fvar _fval for _fd in "${_brinf[@]}"; do _fvar="${_fd%%=*}=" _fval="${_fd##*=}" if [ ! -z "${_fval}" ]; then case "${_fvar}" in '['*);; PRN_CUP_RPM=) _brverchk "${_fval}" "${_cuprpmver:-}" "${_cupver:-}" "${pkgver}" if [ "${_opt_DEB}" -eq 0 ]; then source+=("${_dlf}/packages/${_fval}") fi ;; PRN_CUP_DEB=) _brverchk "${_fval}" "${_cupdebver:-}" "${_cupver:-}" "${pkgver}" if [ "${_opt_DEB}" -ne 0 ]; then source+=("${_dlf}/packages/${_fval}") fi ;; PRN_LPD_RPM=) _brverchk "${_fval}" "${_lprrpmver:-}" "${_lprver:-}" "${pkgver}" if [ "${_opt_DEB}" -eq 0 ]; then source+=("${_dlf}/packages/${_fval}") fi ;; PRN_LPD_DEB=) _brverchk "${_fval}" "${_lprdebver:-}" "${_lprver:-}" "${pkgver}" if [ "${_opt_DEB}" -ne 0 ]; then source+=("${_dlf}/packages/${_fval}") fi ;; PRN_DRV_RPM=) _brverchk "${_fval}" "" "" "${pkgver}" if [ "${_opt_DEB}" -eq 0 ]; then source+=("${_dlf}/packages/${_fval}") fi ;; PRN_DRV_DEB=) _brverchk "${_fval}" "" "" "${pkgver}" if [ "${_opt_DEB}" -ne 0 ]; then source+=("${_dlf}/packages/${_fval}") fi ;; REQUIRE32LIB=) if [ "${_fval}" = 'yes' ]; then depends_x86_64+=('lib32-glibc') fi ;; PRINTERNAME=);; SCANNER_DRV=)optdepends+=("${_fval}: Scanner support");; SCANKEY_DRV=)optdepends+=("${_fval}: Scanner button support");; *) echo "Unrecognized line: ${_fd}" 1>&2; exit 1;; esac fi done test "${_mismatch}" -eq 0 || exit 1 } _procinf unset -f _procinf _brverchk unset _mismatch _brinf # Must be same length as # 'Brother' _conflict='brother' prepare() { set -u shopt -s nullglob local _deb local _debn=1 for _deb in *.deb; do local _dx="debextract.${_debn}" mkdir "${_dx}" bsdtar -C "${_dx}" -xf "${_deb}" bsdtar -C "${_dx}" -xf "${_dx}"/control.tar.?z bsdtar -xf "${_dx}"/data.tar.?z rm "${_dx}"/*.tar.?z _debn=$((_debn+1)) done shopt -u nullglob # Do not Install in '/usr/local'. Does not apply to all Brother models. # This may modify binary blobs which only # works when the old and new strings are exactly the same length. if [ -d 'usr/local' ]; then install -d 'usr/share' mv 'usr/local/Brother' "usr/share/${_conflict}" rmdir 'usr/local' sed -e "s:/usr/local/Brother:/usr/share/${_conflict}:g" -i $(grep -lare '/usr/local/Brother' ./) fi # setup cups-directories, some installers create these for us install -d 'usr/lib/cups/filter' install -d 'usr/share/cups/model' #install -d 'usr/share/ppd' # For cups we don't need the ppd file here. # /etc/printcap is managed by cups find . -type 'f' -name 'setupPrintcap*' -delete set +u } build() { set -u local _basedir="opt/brother/Printers/${_brotherxnd}" #local _basedir="usr/share/${_conflict}" #local _basedir="usr/share/${_conflict}/Printer/${_brotherxnd}" shopt -s nullglob local _wrapper_source=("${_basedir}/cupswrapper/cupswrapper${_brotherxnd}"*) shopt -u nullglob test "${#_wrapper_source[@]}" -eq 1 || echo "${}" _wrapper_source="${_wrapper_source[0]}" test -x "${_wrapper_source}" || echo "${}" echo "Wrapper source: ${_wrapper_source}" # Some Brother installers create files here mkdir -p 'var/tmp' # This generated wrapper isn't used. We just want to run the install commands. # Modify the installer so we can finish the install here in PKGBUILD. #cp -p "${_wrapper_source}" "${_wrapper_source}.Arch" # debug: diff compare with Total Commander sed -e '# Install to _srcdir. Some folders may not apply to this model.' \ -e '# quick fix for path that needs to be double quoted' \ -e "s:'/usr/share/ppd':"'"/usr/share/ppd":g' \ -e 's:/usr:"${_srcdir}"&:g' \ -e 's:/opt:"${_srcdir}"&:g' \ -e 's:/var:"${_srcdir}"&:g' \ -e 's:/etc:"${_srcdir}"&:g' \ -e '# Remove unwanted srcdir from the generated files' \ -e '/^cat <