summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTuxand2019-11-07 23:58:37 +0000
committerTuxand2019-11-07 23:58:37 +0000
commit323b6715ea4720d91de3674fd6d22b5ccb59b3b6 (patch)
treec3b46287d97e3b74c02a42f9f775e40c65c13429
downloadaur-323b6715ea4720d91de3674fd6d22b5ccb59b3b6.tar.gz
First commit
-rw-r--r--.SRCINFO47
-rw-r--r--0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch50
-rw-r--r--0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch29
-rw-r--r--0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch113
-rw-r--r--PKGBUILD87
-rw-r--r--disable_upgrade.patch14
-rw-r--r--python.patch11
7 files changed, 351 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..fa1921c0d8ad
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,47 @@
+pkgbase = hplip-318
+ pkgdesc = Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet
+ pkgver = 12
+ pkgrel = 1
+ epoch = 1
+ url = http://hplipopensource.com
+ arch = x86_64
+ license = GPL2
+ license = custom
+ makedepends = python-pyqt5
+ makedepends = python-gobject
+ makedepends = sane
+ makedepends = rpcbind
+ makedepends = cups
+ makedepends = libusb
+ depends = python-dbus
+ depends = ghostscript
+ depends = net-snmp
+ depends = foomatic-db-engine
+ optdepends = cups: for printing support
+ optdepends = sane: for scanner support
+ optdepends = xsane: sane scanner frontend
+ optdepends = python-pillow: for commandline scanning support
+ optdepends = python-reportlab: for pdf output in hp-scan
+ optdepends = rpcbind: for network support
+ optdepends = python-pyqt5: for running GUI and hp-toolbox
+ optdepends = python-gobject: for running hp-toolbox
+ optdepends = libusb: for advanced usb support
+ optdepends = wget: for network support
+ conflicts = hplip
+ backup = etc/hp/hplip.conf
+ backup = etc/sane.d/dll.d/hpaio
+ source = https://downloads.sourceforge.net/hplip/hplip-3.18.12.tar.gz
+ source = disable_upgrade.patch
+ source = 0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch
+ source = 0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch
+ source = 0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
+ source = python.patch
+ sha512sums = SKIP
+ sha512sums = ee0bd240568a7dbb4dc6ef64dba28ea84c4bedf7d688d054960c686666f8f0bc4562961c40845107ef0c936e60d3e676bffb2a1ba708039690bb0520cda3a525
+ sha512sums = 22aeb5b851f78bc6bc62e0bc3da99fecaf42d7604af41e2f3343f8d3666541f7b06b7d1a7d0ddf24f1731ac7b12dfe582375a98e3b94dfa323d6ce954549ca67
+ sha512sums = 763949a0bc460dcc9faefc86f2a91cf342781bfce696ed0c3826758572dd03ac266bbeb7b6a4f9376ac298d7d3c9c4def42d94921a8e1d1695e39396e36d95ff
+ sha512sums = 8710e039626878270b8b7bc1569566274d935c84652d758e25ce8fe01c0f44d911148620bb494489e1238201c01f3ba255c19f7dc5c2ff0d45a5f2a79190286b
+ sha512sums = ebcc40cac00b9fb63d378d42ac258eeaf6e0967f34fd1e204c690f34457a0a2b634ef65f1deb79a0740d8c6047f718c10fa205ee2f239b667f7e06c065590528
+
+pkgname = hplip-318
+
diff --git a/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch b/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch
new file mode 100644
index 000000000000..491c3072b3e0
--- /dev/null
+++ b/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/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch b/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch
new file mode 100644
index 000000000000..f3a8c1732b0b
--- /dev/null
+++ b/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/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch b/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
new file mode 100644
index 000000000000..8d3b4d7bfda2
--- /dev/null
+++ b/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
@@ -0,0 +1,113 @@
+From fa9c0cf1a5db9bf8880b4796d5e3e0da46534e3d Mon Sep 17 00:00:00 2001
+From: Didier Raboud <odyx@debian.org>
+Date: Tue, 21 Aug 2018 18:18:10 +0200
+Subject: Remove all ImageProcessor functionality, which is closed-source
+
+---
+ Makefile.am | 14 ++------------
+ prnt/hpcups/HPCupsFilter.cpp | 21 ---------------------
+ 2 files changed, 2 insertions(+), 33 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 1b097c4f9..8d5d78c9f 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -166,7 +166,7 @@ if !HPLIP_CLASS_DRIVER
+ dist_hplip_SCRIPTS = hpssd.py __init__.py hpdio.py
+ endif #HPLIP_CLASS_DRIVER
+
+-dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template prnt/hpcups/libImageProcessor-x86_64.so prnt/hpcups/libImageProcessor-x86_32.so
++dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template
+ dist_noinst_SCRIPTS += dat2drv.py install.py hplip-install init-suse-firewall init-iptables-firewall class_rpm_build.sh hplipclassdriver.spec createPPD.sh Makefile_dat2drv hpijs-drv
+
+ if !HPLIP_CLASS_DRIVER
+@@ -594,7 +594,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp
+ prnt/hpcups/ImageProcessor.h
+
+ hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
+-hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lImageProcessor -lcups -lcupsimage -lz $(DBUS_LIBS)
++hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lcups -lcupsimage -lz $(DBUS_LIBS)
+ #else
+ #hpcupsdir = $(cupsfilterdir)
+ #hpcups_PROGRAMS = hpcups
+@@ -686,16 +686,6 @@ endif #HPLIP_CLASS_DRIVER
+
+ install-data-hook:
+ if HPLIP_BUILD
+- if [ \( "$(UNAME)" = "x86_64" -a -d "$(libdir)/" \) ]; then \
+- cp prnt/hpcups/libImageProcessor-x86_64.so $(libdir)/ ; \
+- chmod 775 $(libdir)/libImageProcessor-x86_64.so ; \
+- ln -sf $(libdir)/libImageProcessor-x86_64.so $(libdir)/libImageProcessor.so ; \
+- fi; \
+- if [ \( \( "$(UNAME)" = "i686" -o "$(UNAME)" = "i386" \) -a -d "$(libdir)/" \) ]; then \
+- cp prnt/hpcups/libImageProcessor-x86_32.so $(libdir)/ ; \
+- chmod 775 $(libdir)/libImageProcessor-x86_32.so ; \
+- ln -sf $(libdir)/libImageProcessor-x86_32.so $(libdir)/libImageProcessor.so ; \
+- fi
+ if !HPLIP_CLASS_DRIVER
+ # If scanner build, add hpaio entry to sane dll.conf.
+ if [ "$(scan_build)" = "yes" ]; then \
+diff --git a/prnt/hpcups/HPCupsFilter.cpp b/prnt/hpcups/HPCupsFilter.cpp
+index 5b282d83f..0bacfafac 100644
+--- a/prnt/hpcups/HPCupsFilter.cpp
++++ b/prnt/hpcups/HPCupsFilter.cpp
+@@ -31,7 +31,6 @@
+ \*****************************************************************************/
+
+ #include "HPCupsFilter.h"
+-#include "ImageProcessor.h"
+
+ #include <signal.h>
+ #include <sys/wait.h>
+@@ -637,16 +636,10 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster)
+
+
+ sprintf(hpPreProcessedRasterFile, "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
+- image_processor_t* imageProcessor = imageProcessorCreate();
+
+ while (cupsRasterReadHeader2(cups_raster, &cups_header))
+ {
+
+- IMAGE_PROCESSOR_ERROR result = imageProcessorStartPage(imageProcessor, &cups_header);
+- if (result != IPE_SUCCESS){
+- dbglog("DEBUG: imageProcessorStartPage failed result = %d\n", result);
+- }
+-
+ current_page_number++;
+
+ if (current_page_number == 1) {
+@@ -745,12 +738,6 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster)
+ color_raster = rgbRaster;
+ black_raster = kRaster;
+
+- result = imageProcessorProcessLine(imageProcessor, m_pPrinterBuffer, cups_header.cupsBytesPerLine);
+- if (result != IPE_SUCCESS){
+- dbglog("DEBUG: imageProcessorProcessLine failed result = %d\n", result);
+- }
+-
+-
+ if ((y == 0) && !is_ljmono) {
+ //For ljmono, make sure that first line is not a blankRaster line.Otherwise printer
+ //may not skip blank lines before actual data
+@@ -780,12 +767,6 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster)
+ }
+ } // for() loop end
+
+- result = imageProcessorEndPage(imageProcessor);
+- if (result != IPE_SUCCESS){
+- dbglog("DEBUG: imageProcessorEndPage failed result = %d\n", result);
+- }
+-
+-
+ m_Job.NewPage();
+ if (err != NO_ERROR) {
+ break;
+@@ -800,8 +781,6 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster)
+ rgbRaster = NULL;
+ }
+
+- imageProcessorDestroy(imageProcessor);
+-
+ unlink(hpPreProcessedRasterFile);
+ return ret_status;
+ }
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..09a16483d719
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,87 @@
+# Maintainer: onemorelag@gmail.com
+
+_pkgname=hplip
+pkgname=$_pkgname318
+_pkgver=3.18.12
+pkgver=12
+pkgrel=1
+conflicts=("hplip")
+pkgdesc="Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet"
+arch=('x86_64')
+url="http://hplipopensource.com"
+license=('GPL2' 'custom')
+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
+ 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
+ 0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
+ python.patch)
+sha512sums=('SKIP'
+ 'ee0bd240568a7dbb4dc6ef64dba28ea84c4bedf7d688d054960c686666f8f0bc4562961c40845107ef0c936e60d3e676bffb2a1ba708039690bb0520cda3a525'
+ '22aeb5b851f78bc6bc62e0bc3da99fecaf42d7604af41e2f3343f8d3666541f7b06b7d1a7d0ddf24f1731ac7b12dfe582375a98e3b94dfa323d6ce954549ca67'
+ '763949a0bc460dcc9faefc86f2a91cf342781bfce696ed0c3826758572dd03ac266bbeb7b6a4f9376ac298d7d3c9c4def42d94921a8e1d1695e39396e36d95ff'
+ '8710e039626878270b8b7bc1569566274d935c84652d758e25ce8fe01c0f44d911148620bb494489e1238201c01f3ba255c19f7dc5c2ff0d45a5f2a79190286b'
+ 'ebcc40cac00b9fb63d378d42ac258eeaf6e0967f34fd1e204c690f34457a0a2b634ef65f1deb79a0740d8c6047f718c10fa205ee2f239b667f7e06c065590528')
+
+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
+ # remove binary blob libImageProcessor and all linking - FS#59681
+ patch -Np1 -i ${srcdir}/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
+ # fix python issue - FS#59548
+ patch -Np1 -i ${srcdir}/python.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
+
+ # add mixed license file
+ install -Dt "${pkgdir}"/usr/share/licenses/${_pkgname} -m644 COPYING
+}
diff --git a/disable_upgrade.patch b/disable_upgrade.patch
new file mode 100644
index 000000000000..f7d8fb3222f4
--- /dev/null
+++ b/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/python.patch b/python.patch
new file mode 100644
index 000000000000..b75d1f598649
--- /dev/null
+++ b/python.patch
@@ -0,0 +1,11 @@
+--- hplip-3.18.7/base/utils.py 2018-07-15 22:08:37.000000000 +0200
++++ hplip-3.18.7/base/utils.py.new 2018-08-08 21:46:48.721947940 +0200
+@@ -265,7 +265,7 @@
+ try:
+ names = os.listdir(root)
+ except os.error:
+- raise StopIteration
++ return
+
+ pattern = pattern or '*'
+ pat_list = pattern.split(';')