diff --git a/extra/hplip/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch b/extra/hplip/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch new file mode 100644 index 000000000..491c3072b --- /dev/null +++ b/extra/hplip/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch @@ -0,0 +1,50 @@ +From b3a7fa4d4a573cfe0073ae50197f679af7e3a0ac Mon Sep 17 00:00:00 2001 +From: Till Kamppeter <till.kamppeter@canonical.com> +Date: Sat, 24 Sep 2016 10:37:20 +0200 +Subject: Add 'include <cups/ppd.h>' in various places as CUPS 2.2 moved some + definitions to ppd.h + +--- + configure.in | 2 +- + prnt/hpcups/HPCupsFilter.h | 2 ++ + prnt/hpijs/hpcupsfax.cpp | 1 + + 3 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/configure.in b/configure.in +index d3a1ddb..eabe14a 100755 +--- a/configure.in ++++ b/configure.in +@@ -554,7 +554,7 @@ fi + + if test "$hpijs_only_build" = "no" && test "$hpcups_only_build" = "no"; then + AC_CHECK_LIB([cups], [cupsDoFileRequest], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libcups support], 9)]) +- AC_CHECK_HEADERS(cups/cups.h, ,[AC_MSG_ERROR([cannot find cups-devel support], 3)]) ++ AC_CHECK_HEADERS(cups/cups.h cups/ppd.h, ,[AC_MSG_ERROR([cannot find cups-devel support], 3)]) + if test "$libusb01_build" = "yes"; then + AC_CHECK_LIB([usb], [usb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb support], 2)]) + AC_CHECK_HEADERS(usb.h, ,[AC_MSG_ERROR([cannot find libusb-devel support], 11)]) +diff --git a/prnt/hpcups/HPCupsFilter.h b/prnt/hpcups/HPCupsFilter.h +index ff5548e..c517989 100644 +--- a/prnt/hpcups/HPCupsFilter.h ++++ b/prnt/hpcups/HPCupsFilter.h +@@ -38,6 +38,8 @@ + + #include "dbuscomm.h" + ++#include <cups/ppd.h> ++ + #define DBITMAPFILEHEADER 14 + #define DBITMAPINFOHEADER 40 + +diff --git a/prnt/hpijs/hpcupsfax.cpp b/prnt/hpijs/hpcupsfax.cpp +index 8514775..994e50f 100644 +--- a/prnt/hpijs/hpcupsfax.cpp ++++ b/prnt/hpijs/hpcupsfax.cpp +@@ -43,6 +43,7 @@ + #include <arpa/inet.h> + #include <math.h> + #include <cups/cups.h> ++#include <cups/ppd.h> + #include <cups/raster.h> + #include <string> + #ifdef FALSE diff --git a/extra/hplip/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch b/extra/hplip/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch new file mode 100644 index 000000000..f3a8c1732 --- /dev/null +++ b/extra/hplip/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch @@ -0,0 +1,29 @@ +From 04b5a1ddac1dd90c5a392f23aaf7df42eae32918 Mon Sep 17 00:00:00 2001 +From: Gaurav Sood <gaurav-sood@invalid-email.launchpad.net> +Date: Thu, 4 May 2017 18:32:08 +0200 +Subject: Fix handling of unicode filenames in sixext.py + +LP: #1480152 +Closes: #861731 +--- + base/sixext.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/base/sixext.py b/base/sixext.py +index 0bf4fc4f4..311bf72c6 100644 +--- a/base/sixext.py ++++ b/base/sixext.py +@@ -110,11 +110,11 @@ if PY3: + + + def to_string_utf8(s): +- return s.decode("utf-8") ++ return s.decode("utf-8", 'ignore') + + + def to_string_latin(s): +- return s.decode("latin-1") ++ return s.decode("latin-1", 'ignore') + + + def to_unicode(s, enc=None): diff --git a/extra/hplip/PKGBUILD b/extra/hplip/PKGBUILD new file mode 100644 index 000000000..ba981cfb7 --- /dev/null +++ b/extra/hplip/PKGBUILD @@ -0,0 +1,87 @@ +# $Id$ +# Maintainer: Andreas Radke <andyrtr@archlinux.org> +# Maintainer: Tom Gundersen <teg@jklm.no> +# Contributor : Rémy Oudompheng <remy@archlinux.org> +# Contributor: Morgan LEFIEUX <comete@archlinuxfr.org> + +# ALARM: Kevin Mihelich <kevin@archlinuxarm.org> +# - hold at 3.18.6 until upstream fixes 3.18.7+ for ARM +# https://bugs.launchpad.net/hplip/+bug/1784989 + +pkgname=hplip +pkgver=3.18.6 +pkgrel=3 +pkgdesc="Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet" +arch=('x86_64') +url="http://hplipopensource.com" +license=('GPL') +depends=('python-dbus' 'ghostscript' 'net-snmp' 'foomatic-db-engine') +makedepends=('python-pyqt5' 'python-gobject' 'sane' 'rpcbind' 'cups' 'libusb') +optdepends=('cups: for printing support' + 'sane: for scanner support' + 'xsane: sane scanner frontend' + 'python-pillow: for commandline scanning support' + 'python-reportlab: for pdf output in hp-scan' + 'rpcbind: for network support' + 'python-pyqt5: for running GUI and hp-toolbox' + 'python-gobject: for running hp-toolbox' + 'libusb: for advanced usb support' + 'wget: for network support') +# 'hplip-plugin: binary blobs for specific devices (AUR) or run hp-setup to download the plugin' +backup=('etc/hp/hplip.conf' 'etc/sane.d/dll.d/hpaio') +source=(https://downloads.sourceforge.net/${pkgname}/$pkgname-$pkgver.tar.gz{,.asc} + disable_upgrade.patch + 0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch + 0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch + hplip-colorlaserjet-mfp-m278-m281.patch) +sha1sums=('2a7c64595099c50e6c665260f4de7a7106e0b3fc' + 'SKIP' + '2348bcbca0c52dc09cceb47ed13281a4ccb9d83e' + '2ef86972ab51c0fdcb8bfc653b9f6f69459449a5' + '0e36f31b98faf2f14137431bc8f82b74de22705b' + '89e0ed0ed9acc6e50812c843ffb5f996fffb829e') +validpgpkeys=('4ABA2F66DBD5A95894910E0673D770CDA59047B9') # HPLIP (HP Linux Imaging and Printing) <hplip@hp.com> + +prepare() { + cd $pkgname-$pkgver + + # disable insecure update - https://bugs.archlinux.org/task/38083 + patch -Np0 -i ${srcdir}/disable_upgrade.patch + + # add missing 'include <cups/ppd.h>' at various places + patch -Np1 -i ${srcdir}/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch + # fix some handling unicode file names FS#58412 + patch -Np1 -i ${srcdir}/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch + # add support for some missing models - FS#57683 +# patch -Np1 -i ${srcdir}/hplip-colorlaserjet-mfp-m278-m281.patch + + export AUTOMAKE='automake --foreign' + autoreconf --force --install +} + +build() { + cd $pkgname-$pkgver + ./configure --prefix=/usr \ + --enable-qt5 \ + --disable-qt4 \ + --enable-hpcups-install \ + --enable-cups-drv-install \ + --enable-pp-build #--help + make +} + +package() { + cd $pkgname-$pkgver + make -j1 rulesdir=/usr/lib/udev/rules.d DESTDIR="$pkgdir/" install + + # remove config provided by sane and autostart of hp-daemon + rm -rf "$pkgdir"/etc/{sane.d,xdg} + install -dm755 ${pkgdir}/etc/sane.d/dll.d + echo hpaio > ${pkgdir}/etc/sane.d/dll.d/hpaio + + # remove HAL .fdi file because HAL is no longer used + rm -vrf "$pkgdir"/usr/share/hal + + # remove rc script + rm -vrf "$pkgdir"/etc/init.d +} diff --git a/extra/hplip/disable_upgrade.patch b/extra/hplip/disable_upgrade.patch new file mode 100644 index 000000000..f7d8fb322 --- /dev/null +++ b/extra/hplip/disable_upgrade.patch @@ -0,0 +1,14 @@ +--- upgrade.py.orig 2013-10-31 12:46:54.000000000 +0100 ++++ upgrade.py 2013-12-04 14:58:03.000000000 +0100 +@@ -134,6 +134,11 @@ except getopt.GetoptError, e: + if os.getenv("HPLIP_DEBUG"): + log.set_level('debug') + ++ ++log.error("HPLIP upgrade is disabled by Archlinux for security reasons, see https://bugs.archlinux.org/task/38083 - if you like to upgrade HPLIP, use the Archlinux software package manager pacman.") ++clean_exit(1) ++ ++ + for o, a in opts: + if o in ('-h', '--help'): + usage() diff --git a/extra/hplip/hplip-colorlaserjet-mfp-m278-m281.patch b/extra/hplip/hplip-colorlaserjet-mfp-m278-m281.patch new file mode 100644 index 000000000..8e9569f20 --- /dev/null +++ b/extra/hplip/hplip-colorlaserjet-mfp-m278-m281.patch @@ -0,0 +1,64 @@ +diff -up hplip-3.17.11/data/models/models.dat.colorlaserjet-mfp-m278-m281 hplip-3.17.11/data/models/models.dat +--- hplip-3.17.11/data/models/models.dat.colorlaserjet-mfp-m278-m281 2017-11-23 13:10:17.000000000 +0100 ++++ hplip-3.17.11/data/models/models.dat 2018-01-19 08:24:21.554788787 +0100 +@@ -58516,6 +58516,59 @@ usb-pid=3c2a + usb-vid=3f0 + wifi-config=3 + ++[hp_colorlaserjet_mfp_m278-m281] ++align-type=0 ++clean-type=0 ++color-cal-type=0 ++copy-type=0 ++embedded-server-type=1 ++fax-type=7 ++fw-download=False ++icon=hp_color_laserjet_cm1312_mfp.png ++io-mfp-mode=1 ++io-mode=1 ++io-support=14 ++job-storage=0 ++linefeed-cal-type=0 ++model1=HP Color LaserJet MFP M278-281 ++monitor-type=0 ++panel-check-type=0 ++pcard-type=0 ++plugin=1 ++plugin-reason=64 ++power-settings=0 ++ppd-name=hp-color_laserjet_pro_mfp_m277 ++pq-diag-type=0 ++r-type=0 ++r0-agent1-kind=4 ++r0-agent1-sku=CF400A/CF400X ++r0-agent1-type=1 ++r0-agent2-kind=4 ++r0-agent2-sku=CF401A ++r0-agent2-type=4 ++r0-agent3-kind=4 ++r0-agent3-sku=CF403A ++r0-agent3-type=5 ++r0-agent4-kind=4 ++r0-agent4-sku=CF402A ++r0-agent4-type=6 ++scan-src=3 ++scan-type=5 ++status-battery-check=0 ++status-dynamic-counters=0 ++status-type=10 ++support-released=True ++support-subtype=48c3 ++support-type=2 ++support-ver=3.15.4 ++tech-class=Postscript ++family-class=Undefined ++tech-subclass=Normal ++tech-type=4 ++usb-pid=3c2a ++usb-vid=3f0 ++wifi-config=3 ++ + [hp_color_laserjet_m553] + align-type=0 + clean-type=0 +