hplip: Update to 3.21.10
Update hplip to latest upstream version and patch to fix Python 3.10 compatibility.
This commit is contained in:
parent
e437bb3345
commit
6f33e3848d
|
@ -1,113 +0,0 @@
|
|||
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;
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
Open gzipped PPD file in text mode, otherwise text regex search fails
|
||||
|
||||
--- a/setup.py 2021-10-18 18:37:49.795887272 +0100
|
||||
+++ b/setup.py 2021-10-18 18:37:20.214898473 +0100
|
||||
@@ -552,7 +552,7 @@
|
||||
if os.path.exists(file_path) and os.path.isfile(file_path):
|
||||
|
||||
if file_path.endswith('.gz'):
|
||||
- nickname = gzip.GzipFile(file_path, 'r').read(4096)
|
||||
+ nickname = gzip.open(file_path, 'rt').read(4096)
|
||||
else:
|
||||
nickname = open(file_path, 'r').read(4096)
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
Based on patch by Zdenek Dohnal obtained from
|
||||
https://bugs.launchpad.net/hplip/+bug/1933973
|
||||
|
||||
diff -pru hplip-3.21.8/io/mudext/hpmudext.c hplip-3.21.8-patched/io/mudext/hpmudext.c
|
||||
--- hplip-3.21.8/io/mudext/hpmudext.c 2021-09-01 16:10:17.000000000 +0100
|
||||
+++ hplip-3.21.8-patched/io/mudext/hpmudext.c 2021-10-22 08:30:38.600922861 +0100
|
||||
@@ -24,6 +24,8 @@ Authors: Don Welch, David Suffield, Naga
|
||||
|
||||
\*****************************************************************************/
|
||||
|
||||
+#define PY_SSIZE_T_CLEAN
|
||||
+
|
||||
#include <Python.h>
|
||||
#include <stdarg.h>
|
||||
#include "hpmud.h"
|
||||
@@ -187,14 +189,22 @@ static PyObject *write_channel(PyObject
|
||||
HPMUD_CHANNEL cd;
|
||||
int timeout = 30;
|
||||
char * buf;
|
||||
- int buf_size = 0;
|
||||
+ Py_ssize_t buf_size = 0;
|
||||
+ int buf_size_asInt = 0;
|
||||
int bytes_written = 0;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "iis#|i", &dd, &cd, &buf, &buf_size, &timeout))
|
||||
return NULL;
|
||||
|
||||
+ if (buf_size < INT_MIN)
|
||||
+ buf_size_asInt = INT_MIN;
|
||||
+ else if (buf_size > INT_MAX)
|
||||
+ buf_size_asInt = INT_MAX;
|
||||
+ else
|
||||
+ buf_size_asInt = (int)buf_size;
|
||||
+
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
- result = hpmud_write_channel(dd, cd, buf, buf_size, timeout, &bytes_written);
|
||||
+ result = hpmud_write_channel(dd, cd, buf, buf_size_asInt, timeout, &bytes_written);
|
||||
Py_END_ALLOW_THREADS
|
||||
|
||||
return Py_BuildValue("(ii)", result, bytes_written);
|
||||
@@ -231,14 +241,22 @@ static PyObject *set_pml(PyObject *self,
|
||||
char * oid;
|
||||
int type;
|
||||
char * data;
|
||||
- int data_size;
|
||||
+ Py_ssize_t data_size = 0;
|
||||
+ int data_size_asInt = 0;
|
||||
int pml_result;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "iisis#", &dd, &cd, &oid, &type, &data, &data_size))
|
||||
return NULL;
|
||||
|
||||
+ if (data_size < INT_MIN)
|
||||
+ data_size_asInt = INT_MIN;
|
||||
+ else if (data_size > INT_MAX)
|
||||
+ data_size_asInt = INT_MAX;
|
||||
+ else
|
||||
+ data_size_asInt = (int)data_size;
|
||||
+
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
- result = hpmud_set_pml(dd, cd, oid, type, (void *)data, data_size, &pml_result);
|
||||
+ result = hpmud_set_pml(dd, cd, oid, type, (void *)data, data_size_asInt, &pml_result);
|
||||
Py_END_ALLOW_THREADS
|
||||
|
||||
return Py_BuildValue("(ii)", result, pml_result);
|
||||
diff -pru hplip-3.21.8/pcard/pcardext/pcardext.c hplip-3.21.8-patched/pcard/pcardext/pcardext.c
|
||||
--- hplip-3.21.8/pcard/pcardext/pcardext.c 2021-09-01 16:10:17.000000000 +0100
|
||||
+++ hplip-3.21.8-patched/pcard/pcardext/pcardext.c 2021-10-22 08:24:11.010798381 +0100
|
||||
@@ -24,6 +24,8 @@ Author: Don Welch
|
||||
|
||||
\*****************************************************************************/
|
||||
|
||||
+#define PY_SSIZE_T_CLEAN
|
||||
+
|
||||
#include <Python.h>
|
||||
#include <structmember.h>
|
||||
#include "../fat.h"
|
||||
diff -pru hplip-3.21.8/prnt/cupsext/cupsext.c hplip-3.21.8-patched/prnt/cupsext/cupsext.c
|
||||
--- hplip-3.21.8/prnt/cupsext/cupsext.c 2021-09-01 16:10:17.000000000 +0100
|
||||
+++ hplip-3.21.8-patched/prnt/cupsext/cupsext.c 2021-10-22 08:26:30.975843330 +0100
|
||||
@@ -73,6 +73,7 @@ Yashwant Kumar Sahu
|
||||
Sanjay Kumar
|
||||
*/
|
||||
|
||||
+#define PY_SSIZE_T_CLEAN
|
||||
|
||||
#include <Python.h>
|
||||
#include <structmember.h>
|
||||
diff -pru hplip-3.21.8/scan/scanext/scanext.c hplip-3.21.8-patched/scan/scanext/scanext.c
|
||||
--- hplip-3.21.8/scan/scanext/scanext.c 2021-09-01 16:10:17.000000000 +0100
|
||||
+++ hplip-3.21.8-patched/scan/scanext/scanext.c 2021-10-21 21:31:23.074739743 +0100
|
||||
@@ -45,6 +45,8 @@ PERFORMANCE OF THIS SOFTWARE.
|
||||
*******************************************************************/
|
||||
|
||||
|
||||
+#define PY_SSIZE_T_CLEAN
|
||||
+
|
||||
/* _ScanDevice objects */
|
||||
|
||||
#include "Python.h"
|
|
@ -0,0 +1,37 @@
|
|||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -167,7 +167,7 @@
|
||||
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_DATA += prnt/ipp-usb/HPLIP.conf
|
||||
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
|
||||
@@ -597,7 +597,7 @@
|
||||
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
|
||||
@@ -687,16 +687,6 @@
|
||||
|
||||
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 [ -d "/usr/share/ipp-usb/quirks/" ]; then \
|
||||
echo "ipp-usb directory exists"; \
|
||||
cp prnt/ipp-usb/HPLIP.conf /usr/share/ipp-usb/quirks/ ; \
|
|
@ -1,31 +0,0 @@
|
|||
--- a/scan/sane.py 2020-10-13 22:29:59.456276307 -0400
|
||||
+++ b/scan/sane.py 2020-10-13 22:32:44.663586789 -0400
|
||||
@@ -378,14 +378,14 @@
|
||||
|
||||
def isScanActive(self):
|
||||
if self.scan_thread is not None:
|
||||
- return self.scan_thread.isAlive() and self.scan_thread.scan_active
|
||||
+ return self.scan_thread.is_alive() and self.scan_thread.scan_active
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
def waitForScanDone(self):
|
||||
if self.scan_thread is not None and \
|
||||
- self.scan_thread.isAlive() and \
|
||||
+ self.scan_thread.is_alive() and \
|
||||
self.scan_thread.scan_active:
|
||||
|
||||
try:
|
||||
@@ -398,9 +398,9 @@
|
||||
#time.sleep(0.5)
|
||||
if self.scan_thread is not None:
|
||||
while True:
|
||||
- #print self.scan_thread.isAlive()
|
||||
+ #print self.scan_thread.is_alive()
|
||||
#print self.scan_thread.scan_active
|
||||
- if self.scan_thread.isAlive() and \
|
||||
+ if self.scan_thread.is_alive() and \
|
||||
self.scan_thread.scan_active:
|
||||
return
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'hplip'
|
||||
pkgname=hplip
|
||||
version=3.20.9
|
||||
revision=6
|
||||
version=3.21.10
|
||||
revision=1
|
||||
build_style=gnu-configure
|
||||
pycompile_dirs="usr/share/hplip"
|
||||
# configure checks sys.version[:3] for Python versioning, so 3.10 becomes 3.1;
|
||||
|
@ -19,6 +19,7 @@ configure_args="
|
|||
--enable-hpijs-install
|
||||
--enable-foomatic-drv-install
|
||||
--enable-pp-build
|
||||
--disable-imageProcessor-build
|
||||
--with-mimedir=/usr/share/cups/mime
|
||||
am_cv_python_version=${py3_ver}"
|
||||
conf_files="/etc/hp/hplip.conf"
|
||||
|
@ -33,8 +34,9 @@ short_desc="HP Linux Imaging and Printing"
|
|||
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||
license="GPL-2.0-only, BSD-3-Clause, MIT"
|
||||
homepage="https://developers.hp.com/hp-linux-imaging-and-printing"
|
||||
changelog="https://developers.hp.com/hp-linux-imaging-and-printing/release_notes"
|
||||
distfiles="${SOURCEFORGE_SITE}/hplip/hplip/${version}/hplip-${version}.tar.gz"
|
||||
checksum=36251189aa9cc349f6a3eacbb7ac3c4fd26fc9f087c9f75cee051010c85d2ddf
|
||||
checksum=de230e1fdd1e718fc718417265612e0c882949e08fe045ee56f9f9882e6b6a60
|
||||
conflicts="hplip-gui"
|
||||
|
||||
CFLAGS="-I${XBPS_CROSS_BASE}/usr/include/libusb-1.0 -I${XBPS_CROSS_BASE}/${py3_inc}"
|
||||
|
|
Loading…
Reference in New Issue