import hplip-3.21.2-6.el9

This commit is contained in:
CentOS Sources 2022-05-17 05:20:44 -04:00 committed by Stepan Oksanichenko
commit f026aa6700
65 changed files with 8914 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
SOURCES/hp-laserjet_cp_1025nw.ppd.gz
SOURCES/hp-laserjet_professional_p_1102w.ppd.gz
SOURCES/hplip-3.21.2-repack.tar.gz

3
.hplip.metadata Normal file
View File

@ -0,0 +1,3 @@
ab5f8109daf6ec9ccc9571a1155e2438d581e096 SOURCES/hp-laserjet_cp_1025nw.ppd.gz
653b9a1d89a5aecedc8a9a66835ac060d995dfa2 SOURCES/hp-laserjet_professional_p_1102w.ppd.gz
6523daf5be0a41a0b40a24cf54ca5e03bcefd9ba SOURCES/hplip-3.21.2-repack.tar.gz

View File

@ -0,0 +1,112 @@
diff -up hplip-3.21.2/Makefile.am.libimageprocessor-removal hplip-3.21.2/Makefile.am
--- hplip-3.21.2/Makefile.am.libimageprocessor-removal 2021-02-24 12:38:31.707900421 +0100
+++ hplip-3.21.2/Makefile.am 2021-02-24 12:38:31.735900172 +0100
@@ -167,7 +167,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
@@ -595,7 +595,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilte
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
@@ -685,16 +685,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 -up hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp.libimageprocessor-removal hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp
--- hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp.libimageprocessor-removal 2021-02-24 12:38:31.701900474 +0100
+++ hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp 2021-02-24 12:42:49.445720549 +0100
@@ -31,7 +31,6 @@
\*****************************************************************************/
#include "HPCupsFilter.h"
-#include "ImageProcessor.h"
#include <signal.h>
#include <sys/wait.h>
@@ -659,21 +658,8 @@ int HPCupsFilter::processRasterData(cups
snprintf(hpPreProcessedRasterFile, sizeof (hpPreProcessedRasterFile), "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
- image_processor_t* imageProcessor=NULL;
- IMAGE_PROCESSOR_ERROR result;
- //added if condition to check if pinter language is "ljzjstream"
- //If so, then bypass imageprocessing functions while running HPCUPS filter.
- if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0){
- imageProcessor = imageProcessorCreate();
- }
while (cupsRasterReadHeader2(cups_raster, &cups_header))
{
- if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0){
- 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) {
@@ -772,14 +758,6 @@ int HPCupsFilter::processRasterData(cups
color_raster = rgbRaster;
black_raster = kRaster;
- if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0)
- {
- 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
@@ -809,14 +787,6 @@ int HPCupsFilter::processRasterData(cups
}
} // for() loop end
- if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0)
- {
- result = imageProcessorEndPage(imageProcessor);
- if (result != IPE_SUCCESS){
- dbglog("DEBUG: imageProcessorEndPage failed result = %d\n", result);
- }
- }
-
m_Job.NewPage();
if (err != NO_ERROR) {
break;
@@ -832,10 +802,6 @@ int HPCupsFilter::processRasterData(cups
}
- if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0)
- {
- imageProcessorDestroy(imageProcessor);
- }
unlink(hpPreProcessedRasterFile);
return ret_status;
}

View File

@ -0,0 +1,473 @@
From 95a73bbc9bd65602a0f9411469ab511bc80a01d0 Mon Sep 17 00:00:00 2001
From: Till Kamppeter <till.kamppeter@gmail.com>
Date: Wed, 3 Oct 2018 15:13:00 +0200
Subject: Call QMessageBox constructors of PyQT5 with the correct parameters
The whole Python source code of HPLIP contains 40 incorrect calls of
the QMessageBox constructurs, mostly the list of buttons was given as
separate arguments instead of a bitwise OR of each button's
representation value. If the flow of the code hits one of these
calls (usually when some error or warnings message should be
displayed or an "Are you sure?" question asked) the GUI app crashes.
See https://pythonspot.com/pyqt5-messagebox/ for QMessageBox
documentation.
This patch corrects all these calls.
Bug-Debian: https://bugs.debian.org/912768
Bug-Ubuntu: https://bugs.launchpad.net/bugs/1745383
---
ui/devmgr4.py | 16 ++++++++--------
ui/faxaddrbookform.py | 6 +++---
ui/faxsendjobform.py | 6 +++---
ui/firmwaredialog.py | 2 +-
ui/makecopiesform.py | 4 ++--
ui/nodevicesform.py | 2 +-
ui/pluginform2.py | 4 ++--
ui/printerform.py | 2 +-
ui/settingsdialog.py | 4 ++--
ui/setupform.py | 10 +++++-----
ui/unloadform.py | 2 +-
ui/upgradeform.py | 4 ++--
ui5/devmgr5.py | 6 ++----
ui5/fabwindow.py | 2 +-
ui5/nodevicesdialog.py | 3 +--
ui5/plugindialog.py | 2 +-
ui5/queuesconf.py | 2 +-
ui5/setupdialog.py | 6 +++---
18 files changed, 40 insertions(+), 43 deletions(-)
diff --git a/ui/devmgr4.py b/ui/devmgr4.py
index cc2552f91..a868ccac0 100644
--- a/ui/devmgr4.py
+++ b/ui/devmgr4.py
@@ -1422,7 +1422,7 @@ class DevMgr4(DevMgr4_base):
QMessageBox.critical(self,
self.caption(),
self.__tr("<b>Unable to find an appropriate su/sudo utility to run hp-plugin.</b><p>Install kdesu, gnomesu, or gksu.</p>"),
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
else:
@@ -2854,7 +2854,7 @@ class DevMgr4(DevMgr4_base):
x = QMessageBox.critical(self,
self.caption(),
self.__tr("<b>Annoying Confirmation: Are you sure you want to remove this device?</b>"),
- QMessageBox.Yes,
+ QMessageBox.Yes |\
QMessageBox.No | QMessageBox.Default,
QMessageBox.NoButton)
if x == QMessageBox.Yes:
@@ -2949,7 +2949,7 @@ class DevMgr4(DevMgr4_base):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
@@ -2958,7 +2958,7 @@ class DevMgr4(DevMgr4_base):
QMessageBox.warning(self,
self.caption(),
msg,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
@@ -3115,7 +3115,7 @@ class ScrollTestpageView(ScrollView):
QMessageBox.information(self,
self.caption(),
self.__tr("<p><b>A test page should be printing on your printer.</b><p>If the page fails to print, please visit http://hplip.sourceforge.net for troubleshooting and support."),
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
@@ -3130,7 +3130,7 @@ class ScrollTestpageView(ScrollView):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
@@ -3272,7 +3272,7 @@ class ScrollColorCalView(ScrollView):
QMessageBox.information(self,
self.caption(),
self.__tr("<p><b>A test page should be printing on your printer.</b><p>If the page fails to print, please visit http://hplip.sourceforge.net for troubleshooting and support."),
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
@@ -3287,7 +3287,7 @@ class ScrollColorCalView(ScrollView):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui/faxaddrbookform.py b/ui/faxaddrbookform.py
index 109462207..b23364410 100644
--- a/ui/faxaddrbookform.py
+++ b/ui/faxaddrbookform.py
@@ -228,7 +228,7 @@ class FaxAddrBookGroupsForm(FaxAddrBookGroupsForm_base):
x = QMessageBox.critical(self,
self.caption(),
self.__tr("<b>Annoying Confirmation: Are you sure you want to delete this group?</b>"),
- QMessageBox.Yes,
+ QMessageBox.Yes |\
QMessageBox.No | QMessageBox.Default,
QMessageBox.NoButton)
if x == QMessageBox.Yes:
@@ -421,7 +421,7 @@ class FaxAddrBookForm(FaxAddrBookForm_base):
if QMessageBox.critical(self,
self.caption(),
self.__tr("<b>Annoying Confirmation: Are you sure you want to delete this address book entry?</b>"),
- QMessageBox.Yes,
+ QMessageBox.Yes |\
QMessageBox.No | QMessageBox.Default,
QMessageBox.NoButton) == QMessageBox.Yes:
db.delete(self.current.entry['name'])
@@ -451,7 +451,7 @@ class FaxAddrBookForm(FaxAddrBookForm_base):
QMessageBox.critical(self,
self.caption(),
QString(error_text),
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui/faxsendjobform.py b/ui/faxsendjobform.py
index 106215c5e..69f424c42 100644
--- a/ui/faxsendjobform.py
+++ b/ui/faxsendjobform.py
@@ -210,7 +210,7 @@ class FaxSendJobForm(QMainWindow):
QMessageBox.information(self,
self.caption(),
self.__tr("<p><b>Fax send completed successfully.</b>"),
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
@@ -219,7 +219,7 @@ class FaxSendJobForm(QMainWindow):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
@@ -228,7 +228,7 @@ class FaxSendJobForm(QMainWindow):
QMessageBox.warning(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui/firmwaredialog.py b/ui/firmwaredialog.py
index 16b313374..0bcee1164 100644
--- a/ui/firmwaredialog.py
+++ b/ui/firmwaredialog.py
@@ -109,7 +109,7 @@ class FirmwareDialog(QDialog, FirmwareDialog_Base):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui/makecopiesform.py b/ui/makecopiesform.py
index 27f144b36..0fbb573e3 100644
--- a/ui/makecopiesform.py
+++ b/ui/makecopiesform.py
@@ -156,7 +156,7 @@ class MakeCopiesForm(QMainWindow):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
@@ -164,7 +164,7 @@ class MakeCopiesForm(QMainWindow):
QMessageBox.warning(self,
self.caption(),
msg,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui/nodevicesform.py b/ui/nodevicesform.py
index 01f6ae53b..57a696375 100644
--- a/ui/nodevicesform.py
+++ b/ui/nodevicesform.py
@@ -67,7 +67,7 @@ class NoDevicesForm(NoDevicesForm_base):
QMessageBox.critical(self,
self.caption(),
self.__tr("<b>An error occurred.</b><p>Please re-start the Device Manager and try again."),
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui/pluginform2.py b/ui/pluginform2.py
index 64e64aa77..76cb0238b 100644
--- a/ui/pluginform2.py
+++ b/ui/pluginform2.py
@@ -173,7 +173,7 @@ class PluginForm2(PluginForm2_base):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
@@ -181,7 +181,7 @@ class PluginForm2(PluginForm2_base):
QMessageBox.information(self,
self.caption(),
text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui/printerform.py b/ui/printerform.py
index 0c6c4f39e..7c10ab07b 100644
--- a/ui/printerform.py
+++ b/ui/printerform.py
@@ -154,7 +154,7 @@ class PrinterForm(QMainWindow):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui/settingsdialog.py b/ui/settingsdialog.py
index 92da22546..24f02fd84 100644
--- a/ui/settingsdialog.py
+++ b/ui/settingsdialog.py
@@ -146,7 +146,7 @@ class SettingsDialog(SettingsDialog_base):
## QMessageBox.warning(self,
## self.caption(),
## self.__tr("<b>One or more email addresses are missing.</b><p>Please enter this information and try again."),
-## QMessageBox.Ok,
+## QMessageBox.Ok |\
## QMessageBox.NoButton,
## QMessageBox.NoButton)
## return
@@ -163,7 +163,7 @@ class SettingsDialog(SettingsDialog_base):
## QMessageBox.information(self,
## self.caption(),
## self.__tr("<p><b>Please check your email for a test message.</b><p>If the message doesn't arrive, please check your settings and try again."),
-## QMessageBox.Ok,
+## QMessageBox.Ok |\
## QMessageBox.NoButton,
## QMessageBox.NoButton)
diff --git a/ui/setupform.py b/ui/setupform.py
index 307917b02..78863fdd8 100644
--- a/ui/setupform.py
+++ b/ui/setupform.py
@@ -602,7 +602,7 @@ class SetupForm(SetupForm_base):
if ( QMessageBox.warning(self,
self.caption(),
warn_text,
- QMessageBox.Yes,
+ QMessageBox.Yes |\
QMessageBox.No,
QMessageBox.NoButton) == QMessageBox.Yes ):
@@ -804,7 +804,7 @@ class SetupForm(SetupForm_base):
if QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Retry | QMessageBox.Default,
+ QMessageBox.Retry | QMessageBox.Default |\
QMessageBox.Cancel | QMessageBox.Escape,
QMessageBox.NoButton) == QMessageBox.Cancel:
break
@@ -832,7 +832,7 @@ class SetupForm(SetupForm_base):
if QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Retry | QMessageBox.Default,
+ QMessageBox.Retry | QMessageBox.Default |\
QMessageBox.Cancel | QMessageBox.Escape,
QMessageBox.NoButton) == QMessageBox.Cancel:
break
@@ -1003,7 +1003,7 @@ class SetupForm(SetupForm_base):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
@@ -1011,7 +1011,7 @@ class SetupForm(SetupForm_base):
QMessageBox.warning(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui/unloadform.py b/ui/unloadform.py
index 8397a689c..ae363e01e 100644
--- a/ui/unloadform.py
+++ b/ui/unloadform.py
@@ -135,7 +135,7 @@ class UnloadForm(QMainWindow):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui/upgradeform.py b/ui/upgradeform.py
index 6b9acf5cc..d0b418419 100644
--- a/ui/upgradeform.py
+++ b/ui/upgradeform.py
@@ -118,7 +118,7 @@ class UpgradeForm(UpgradeForm_base):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
@@ -126,7 +126,7 @@ class UpgradeForm(UpgradeForm_base):
QMessageBox.information(self,
self.caption(),
text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
index 495883f72..0ca016820 100644
--- a/ui5/devmgr5.py
+++ b/ui5/devmgr5.py
@@ -139,8 +139,7 @@ class PluginInstall(QObject):
install_plugin = QMessageBox.warning(self.parent,
self.parent.windowTitle(),
self.__tr("<b>The HPLIP plugin is already installed.</b><p>Do you want to continue and re-install it?"),
- QMessageBox.Yes,
- QMessageBox.No,
+ QMessageBox.Yes | QMessageBox.No,
QMessageBox.NoButton) == QMessageBox.Yes
if install_plugin:
@@ -149,8 +148,7 @@ class PluginInstall(QObject):
QMessageBox.critical(self.parent,
self.parent.windowTitle(),
self.__tr("<b>Unable to find an appropriate su/sudo utility to run hp-plugin.</b><p>Install kdesu, gnomesu, or gksu.</p>"),
- QMessageBox.Ok,
- QMessageBox.NoButton,
+ QMessageBox.Ok | QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui5/fabwindow.py b/ui5/fabwindow.py
index 488b6bbd5..0b95c94f1 100644
--- a/ui5/fabwindow.py
+++ b/ui5/fabwindow.py
@@ -344,7 +344,7 @@ class FABWindow(QMainWindow, Ui_MainWindow):
new_name = to_unicode(self.NameLineEdit.text())
if new_name != self.name:
if QMessageBox.question(self, self.__tr("Rename?"), "Rename '%s' to '%s'?"%(self.name,new_name), \
- QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes:
+ QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes:
self.db.rename(self.name, new_name)
log.debug("Rename %s to %s" % (self.name, new_name))
diff --git a/ui5/nodevicesdialog.py b/ui5/nodevicesdialog.py
index 6083f6d4b..ca86bfcda 100644
--- a/ui5/nodevicesdialog.py
+++ b/ui5/nodevicesdialog.py
@@ -64,8 +64,7 @@ class NoDevicesDialog(QDialog, Ui_NoDevicesDialog_base):
QMessageBox.critical(self,
self.windowTitle(),
self.__tr("<b>An error occurred.</b><p>Please re-start the Device Manager and try again."),
- QMessageBox.Ok,
- QMessageBox.NoButton,
+ QMessageBox.Ok | QMessageBox.NoButton,
QMessageBox.NoButton)
diff --git a/ui5/plugindialog.py b/ui5/plugindialog.py
index e3007f911..1c6b33868 100644
--- a/ui5/plugindialog.py
+++ b/ui5/plugindialog.py
@@ -252,7 +252,7 @@ class PluginDialog(QDialog, Ui_Dialog):
if QMessageBox.question(self, " ",
self.__tr("<b>%s</b><p>Without this, it is not possible to authenticate and validate the plug-in prior to installation.</p>Do you still want to install the plug-in?" %error_str),
- QMessageBox.Yes | QMessageBox.No) != QMessageBox.Yes:
+ QMessageBox.Yes | QMessageBox.No, QMessageBox.No) != QMessageBox.Yes:
self.pluginObj.deleteInstallationFiles(download_plugin_file)
self.close()
diff --git a/ui5/queuesconf.py b/ui5/queuesconf.py
index cf2206490..e3c2a0278 100644
--- a/ui5/queuesconf.py
+++ b/ui5/queuesconf.py
@@ -245,7 +245,7 @@ class QueuesDiagnose(QDialog, Ui_Dialog):
if QMessageBox.question(self, " ",
self.__tr("<b>%s</b><p>Without this, it is not possible to authenticate and validate this tool prior to installation.</p>Do you still want to run Smart Install disabler?" %error_str),
- QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes:
+ QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes:
# Disabling without verification.
sts, out = utils.run("sh %s"%smart_install_run)
diff --git a/ui5/setupdialog.py b/ui5/setupdialog.py
index fbfe5ac9b..120ee1587 100644
--- a/ui5/setupdialog.py
+++ b/ui5/setupdialog.py
@@ -873,7 +873,7 @@ class SetupDialog(QDialog, Ui_Dialog):
self.windowTitle(),
warn_text,
QMessageBox.Yes|\
- QMessageBox.No|\
+ QMessageBox.No,
QMessageBox.NoButton) == QMessageBox.Yes ):
i = 2
while True:
@@ -1108,7 +1108,7 @@ class SetupDialog(QDialog, Ui_Dialog):
if QMessageBox.critical(self,
self.windowTitle(),
error_text,
- QMessageBox.Retry | QMessageBox.Default,
+ QMessageBox.Retry | QMessageBox.Default |\
QMessageBox.Cancel | QMessageBox.Escape,
QMessageBox.NoButton) == QMessageBox.Cancel:
break
@@ -1138,7 +1138,7 @@ class SetupDialog(QDialog, Ui_Dialog):
if QMessageBox.critical(self,
self.windowTitle(),
error_text,
- QMessageBox.Retry | QMessageBox.Default,
+ QMessageBox.Retry | QMessageBox.Default |\
QMessageBox.Cancel | QMessageBox.Escape,
QMessageBox.NoButton) == QMessageBox.Cancel:
break

View File

@ -0,0 +1,41 @@
From ae211a3fcfb1b827f0ec35d61f28d6b539028812 Mon Sep 17 00:00:00 2001
From: Till Kamppeter <till.kamppeter@gmail.com>
Date: Wed, 3 Oct 2018 15:13:00 +0200
Subject: Fixed incomplete removal of hp-toolbox features, which caused the
hp-toolbox not to start
Looking into the ui5/devmgr5.py of the HPLIP Python source code it
seems that some features got removed by commenting them out, but this
removal seems not to have been completed, making non-existing objects
being called during the start of hp-toolbox and so it crashes right
away.
This patch completes the commenting-out and so makes hp-toolbox start
up and work again.
Bug-Debian: https://bugs.debian.org/912768
Bug-Ubuntu: https://bugs.launchpad.net/bugs/1789184
---
ui5/devmgr5.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
index 0ca016820..9d4e82c58 100644
--- a/ui5/devmgr5.py
+++ b/ui5/devmgr5.py
@@ -319,11 +319,11 @@ class DevMgr5(Ui_MainWindow_Derived, Ui_MainWindow, QMainWindow):
self.PreferencesAction.setIcon(QIcon(load_pixmap('settings', '16x16')))
self.PreferencesAction.triggered.connect(self.PreferencesAction_activated)
- self.DiagnoseQueueAction.setIcon(QIcon(load_pixmap('warning', '16x16')))
- self.DiagnoseQueueAction.triggered.connect(self.DiagnoseQueueAction_activated)
+ #self.DiagnoseQueueAction.setIcon(QIcon(load_pixmap('warning', '16x16')))
+ #self.DiagnoseQueueAction.triggered.connect(self.DiagnoseQueueAction_activated)
- self.DiagnoseHPLIPAction.setIcon(QIcon(load_pixmap('troubleshoot', '16x16')))
- self.DiagnoseHPLIPAction.triggered.connect(self.DiagnoseHPLIP_activated)
+ #self.DiagnoseHPLIPAction.setIcon(QIcon(load_pixmap('troubleshoot', '16x16')))
+ #self.DiagnoseHPLIPAction.triggered.connect(self.DiagnoseHPLIP_activated)
self.ContentsAction.setIcon(QIcon(load_pixmap("help", "16x16")))
self.ContentsAction.triggered.connect(self.helpContents)

75
SOURCES/copy-deviceids.py Executable file
View File

@ -0,0 +1,75 @@
#!/usr/bin/python3
import os
import re
import sys
if len (sys.argv) < 3:
print ("Specify hpcups.drv and hpijs.drv pathnames")
sys.exit (1)
hpcups_drv = sys.argv[1]
hpijs_drv = sys.argv[2]
# Match e.g. Model "ModelName"
# and catch 'ModelName' in group 0
mn_re = re.compile ('^\s*ModelName\s+"(.*)"\s*$')
# Match e.g. Attribute "1284DeviceID" "" "blah"
# and catch everything before 'blah' in group 0, 'blah' in group 1,
# trailing characters in group 2
devid_re = re.compile ('^(\s*Attribute\s+"1284DeviceID"\s+""\s+")(.*)("\s*)$')
# Match e.g. }
end_re = re.compile ('^\s*}')
devid_by_mn = dict()
hpcups_lines = open (hpcups_drv, "r").readlines ()
current_mn = None
for line in hpcups_lines:
if current_mn == None:
match = mn_re.match (line)
if match == None:
continue
current_mn = match.groups ()[0]
else:
match = devid_re.match (line)
if match:
devid_by_mn[current_mn] = match.groups ()[1]
continue
if end_re.match (line):
current_mn = None
print("%d IEEE 1284 Device IDs loaded from %s" % (len (devid_by_mn),
os.path.basename (hpcups_drv)),
file=sys.stderr)
replaced = 0
hpijs_lines = open (hpijs_drv, "r").readlines ()
current_mn = None
for line in hpijs_lines:
if current_mn == None:
match = mn_re.match (line)
if match:
current_mn = match.groups ()[0]
if current_mn.endswith (" hpijs"):
current_mn = current_mn[:-6]
else:
match = devid_re.match (line)
if match:
devid = devid_by_mn.get (current_mn)
if devid:
line = (match.groups ()[0] + devid + match.groups ()[2])
replaced += 1
else:
print ("Not matched: %s" % current_mn, file=sys.stderr)
if end_re.match (line):
current_mn = None
print (line.rstrip ("\n"))
print("%d IEEE 1284 Device IDs loaded in %s" % (replaced,
os.path.basename (hpijs_drv)),
file=sys.stderr)

View File

@ -0,0 +1,107 @@
#!/bin/bash
## Copyright (C) 2010 Red Hat, Inc.
## Authors:
## Tim Waugh <twaugh@redhat.com>
## 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., 675 Mass Ave, Cambridge, MA 02139, USA.
## Purpose: Update hpcups PPDs when necessary.
sock=/var/run/cups/cups.sock
running=$(LC_ALL=C lpstat -h "$sock" -r 2>/dev/null)
if [ "$?" -ne 0 ]
then
# No lpstat in path
exit 0
fi
if [ -z "${running##*not*}" ]
then
# scheduler is not running
exit 0
fi
trap 'rm -f "$tmpdir"/models; rmdir "$tmpdir"; exit 0' \
0 HUP INT QUIT ILL ABRT PIPE TERM
debug=true
tmpdir="$(mktemp -d)"
for ppd in /etc/cups/ppd/*.ppd
do
[ -r "$ppd" ] || continue
queue="${ppd#/etc/cups/ppd/}"
queue="${queue%.ppd}"
lpstat -h "$sock" -p "$queue" &>/dev/null || continue
# We have PPD associated with a queue. Find out its NickName
$debug && echo "Examining $queue"
nickname="$(grep '^\*NickName:' "$ppd")"
nickname="${nickname#*\"}" # strip text up to and incl first double quote
nickname="${nickname%\"*}" # strip final double quote
$debug && echo "NickName is: $nickname"
# Is it an hpcups PPD?
[ -z "${nickname##*, hpcups*}" ] || continue
$debug && echo "hpcups: true"
# No: need to regenerate the PPD.
if [ ! -f "$tmpdir/models" ]
then
# Get list of driver URIs and NickNames
lpinfo -h "$sock" --include-schemes=drv -m 2>/dev/null >"$tmpdir/models"
fi
# Strip hpcups version from NickName
nickname="${nickname%, hpcups*}"
$debug && echo "Stripped NickName: $nickname"
while read line
do
uri=${line%% *}
nn="${line#$uri }"
[ -z "${nn##*, hpcups*}" ] || continue
nn="${nn%, hpcups*}"
if [ "$nn" == "$nickname" ]
then
$debug && echo "Match found, URI: $uri"
# Unfortunately CUPS will reset the page size when we
# change the PPD, due to the weird page size names that
# HPLIP uses. Try to maintain the existing page size.
size="$(grep '^\*DefaultPageSize:' "$ppd")"
size="${size##* }" # strip until after first ' '
size="${size%% *}" # strip after any ' '
$debug && echo "PageSize is $size"
if [ -z "${size#*Duplex}" ]
then
# Special handling for duplex sizes because HPLIP
# broke backwards compatibility with *that* too!
size="${size%Duplex}.Duplex"
fi
null=/dev/null
$debug && null=/dev/stdout
lpadmin -h "$sock" -p "$queue" -m "$uri" &>"$null" || :
$debug && echo "PPD regenerated"
lpadmin -h "$sock" -p "$queue" -o PageSize="$size" &>"$null" || :
$debug && echo "PageSize restored to $size"
break
fi
done <"$tmpdir/models"
done
exit 0

View File

@ -0,0 +1,11 @@
diff -up hplip-3.16.5/scan.py.sourceoption hplip-3.16.5/scan.py
--- hplip-3.16.5/scan.py.sourceoption 2016-06-22 10:25:52.742799941 +0200
+++ hplip-3.16.5/scan.py 2016-06-22 10:34:51.945766487 +0200
@@ -658,6 +658,7 @@ try:
sys.exit(1)
except:
log.error("Failed to get the source from device.")
+ sys.exit(1)
#check if device has only ADF
if len(source_option) == 1 and 'ADF' in source_option:

View File

@ -0,0 +1,31 @@
diff --git a/setup.py b/setup.py
index 976a42c..3604dd7 100755
--- a/setup.py
+++ b/setup.py
@@ -558,6 +558,9 @@ else: # INTERACTIVE_MODE
if file_path.endswith('.gz'):
nickname = gzip.GzipFile(file_path, 'r').read(4096)
+ if sys.version_info[0] > 2:
+ nickname = nickname.decode('utf-8')
+
else:
nickname = open(file_path, 'r').read(4096)
diff --git a/ui5/setupdialog.py b/ui5/setupdialog.py
index ac45357..a6dacf0 100644
--- a/ui5/setupdialog.py
+++ b/ui5/setupdialog.py
@@ -772,9 +772,9 @@ class SetupDialog(QDialog, Ui_Dialog):
def OtherPPDButton_clicked(self, b):
- ppd_file = to_unicode(QFileDialog.getOpenFileName(self, self.__tr("Select PPD File"),
- sys_conf.get('dirs', 'ppd'),
- self.__tr("PPD Files (*.ppd *.ppd.gz);;All Files (*)")))
+ ppd_file = QFileDialog.getOpenFileName(self, self.__tr("Select PPD File"),
+ sys_conf.get('dirs', 'ppd'),
+ self.__tr("PPD Files (*.ppd *.ppd.gz);;All Files (*)"))[0]
if ppd_file and os.path.exists(ppd_file):
self.print_ppd = (ppd_file, cups.getPPDDescription(ppd_file))

View File

@ -0,0 +1,19 @@
diff -up hplip-3.17.9/hplip.desktop.in.appdata hplip-3.17.9/hplip.desktop.in
--- hplip-3.17.9/hplip.desktop.in.appdata 2017-10-04 16:04:26.594881663 +0200
+++ hplip-3.17.9/hplip.desktop.in 2017-10-04 16:05:59.638113656 +0200
@@ -1,11 +1,11 @@
[Desktop Entry]
Encoding=UTF-8
Type=Application
-Name=HP Device Manager
-GenericName=Printer Management Application
-Comment=View device status, ink levels and perform maintenance.
+Name=HPLIP Graphical Tools
+GenericName=Printer Graphical Tools
+Comment=View device status, ink levels and perform maintenance etc.
Exec=hp-toolbox
-Icon=@abs_datadir@/hplip/data/images/128x128/hp_logo.png
+Icon=hp_logo
Terminal=false
Categories=Application;Utility;
X-KDE-StartupNotify=false

View File

@ -0,0 +1,19 @@
diff -up hplip-3.15.2/base/avahi.py.parsing hplip-3.15.2/base/avahi.py
--- hplip-3.15.2/base/avahi.py.parsing 2015-02-04 15:43:37.662551377 +0100
+++ hplip-3.15.2/base/avahi.py 2015-02-04 15:45:56.576564858 +0100
@@ -52,9 +52,14 @@ def detectNetworkDevices(ttl=4, timeout=
'status_code': 0, 'device2': '0', 'device3': '0', 'note': ''}
y['ip'] = ip
y['hn'] = bits[6].replace('.local', '')
- details = bits[9].split('" "')
+ details = bits[9].rstrip ().strip ('"').split('" "')
for item in details:
key, value = item.split('=', 1)
+ keyvalue = item.split('=', 1)
+ if len (keyvalue) < 2:
+ # Skip parts that don't match key=value
+ continue
+ key, value = keyvalue
if key == 'ty':
y['mdns'] = value
y['device1'] = "MFG:Hewlett-Packard;MDL:%s;CLS:PRINTER;" % value

View File

@ -0,0 +1,39 @@
diff -up hplip-3.10.5/prnt/hpijs/dj9xxvip.cpp.bad-low-ink-warning hplip-3.10.5/prnt/hpijs/dj9xxvip.cpp
--- hplip-3.10.5/prnt/hpijs/dj9xxvip.cpp.bad-low-ink-warning 2010-05-13 01:48:58.000000000 +0200
+++ hplip-3.10.5/prnt/hpijs/dj9xxvip.cpp 2010-05-17 14:56:31.000000000 +0200
@@ -2239,7 +2239,7 @@ DRIVER_ERROR DJ9xxVIP::CheckInkLevel()
{
case '5':
{
- if ((*(pStr+1) & 0xf3) > 1)
+ if ((*(pStr+1) & 0xf3) > '1')
{
if (err != NO_ERROR)
{
@@ -2254,7 +2254,7 @@ DRIVER_ERROR DJ9xxVIP::CheckInkLevel()
}
case '6':
{
- if ((*(pStr+1) & 0xf3) > 1)
+ if ((*(pStr+1) & 0xf3) > '1')
{
if (err != NO_ERROR)
{
@@ -2269,7 +2269,7 @@ DRIVER_ERROR DJ9xxVIP::CheckInkLevel()
}
case '7':
{
- if ((*(pStr+1) & 0xf3) > 1)
+ if ((*(pStr+1) & 0xf3) > '1')
{
if (err != NO_ERROR)
{
@@ -2285,7 +2285,7 @@ DRIVER_ERROR DJ9xxVIP::CheckInkLevel()
}
case '8':
{
- if ((*(pStr+1) & 0xf3) > 1)
+ if ((*(pStr+1) & 0xf3) > '1')
{
if (err != NO_ERROR)
{

View File

@ -0,0 +1,16 @@
diff -up hplip-3.17.11/installer/core_install.py.check-cups hplip-3.17.11/installer/core_install.py
--- hplip-3.17.11/installer/core_install.py.check-cups 2017-12-07 15:34:24.855761874 +0100
+++ hplip-3.17.11/installer/core_install.py 2017-12-07 15:38:44.749568860 +0100
@@ -349,9 +349,9 @@ class CoreInstall(object):
'automake': (True, ['prnt'], AUTOMAKE_STR, self.check_automake, DEPENDENCY_RUN_AND_COMPILE_TIME, '-', None, GENERALDEP),
'libjpeg': (True, ['base', 'prnt'], JPEG_STR, self.check_libjpeg, DEPENDENCY_RUN_AND_COMPILE_TIME, '-', None, GENERALDEP),
'libtool': (True, ['base', 'prnt'], LIBTOOL_STR, self.check_libtool, DEPENDENCY_COMPILE_TIME, '-', 'libtool --version', COMPILEDEP),
- 'cups': (True, ['base', 'prnt'], CUPS_STR, self.check_cups, DEPENDENCY_RUN_TIME, '1.1', 'cups-config --version', EXTERNALDEP),
- 'cups-devel': (True, ['base', 'prnt'], CUPS_DEV_STR, self.check_cups_devel, DEPENDENCY_COMPILE_TIME, '-', 'cups-config --version', GENERALDEP),
- 'cups-image': (True, ['base', 'prnt'], CUPS_IMG_STR, self.check_cups_image, DEPENDENCY_COMPILE_TIME, '-', 'cups-config --version', GENERALDEP),
+ 'cups': (True, ['base', 'prnt'], CUPS_STR, self.check_cups, DEPENDENCY_RUN_TIME, '1.1', 'lpstat -r', EXTERNALDEP),
+ 'cups-devel': (True, ['base', 'prnt'], CUPS_DEV_STR, self.check_cups_devel, DEPENDENCY_COMPILE_TIME, '-', 'lpstat -r', GENERALDEP),
+ 'cups-image': (True, ['base', 'prnt'], CUPS_IMG_STR, self.check_cups_image, DEPENDENCY_COMPILE_TIME, '-', 'lpstat -r', GENERALDEP),
'gcc': (True, ['base', 'prnt'], GCC_STR, self.check_gcc, DEPENDENCY_COMPILE_TIME, '-', 'gcc --version', COMPILEDEP),
'make': (True, ['base', 'prnt'], MAKE_STR, self.check_make, DEPENDENCY_COMPILE_TIME, '3.0', 'make --version', COMPILEDEP),
'libpthread': (True, ['base', 'prnt'], THREAD_STR, self.check_libpthread, DEPENDENCY_RUN_AND_COMPILE_TIME, '-', 'FUNC#get_libpthread_version', GENERALDEP),

View File

@ -0,0 +1,33 @@
diff --git a/base/password.py b/base/password.py
index bd68f2a..bff9f80 100644
--- a/base/password.py
+++ b/base/password.py
@@ -157,6 +157,28 @@ class Password(object):
log.warn("%s distro is not found in AUTH_TYPES" % distro_name)
self.__authType = 'su'
+ # check if caller is in wheel group - use 'su' if he isnt -
+ # or if the caller is root (just for showing 'root' username)
+ # in the prompt
+ import os
+ from grp import getgrnam
+
+ user = os.getenv('USER')
+
+ try:
+ members = getgrnam('wheel').gr_mem
+ except KeyError:
+ try:
+ members = getgrnam('sudo').gr_mem
+ except:
+ return
+
+ if user in members:
+ self.__authType = 'sudo'
+ else:
+ self.__authType = 'su'
+
+
def __getPasswordDisplayString(self):
if self.__authType == "su":
return "Please enter the root/superuser password: "

View File

@ -0,0 +1,44 @@
diff --git a/base/device.py b/base/device.py
index 6d7add9..bf27307 100644
--- a/base/device.py
+++ b/base/device.py
@@ -2264,7 +2264,8 @@ class Device(object):
self.callback()
if total_bytes_to_write != bytes_out:
- raise Error(ERROR_DEVICE_IO_ERROR)
+ raise Error(ERROR_DEVICE_IO_ERROR, 'Number of written '
+ 'bytes by hpmudext mismatch with expected amount.')
return bytes_out
diff --git a/base/g.py b/base/g.py
index 9856662..0aa0e2e 100644
--- a/base/g.py
+++ b/base/g.py
@@ -398,9 +398,11 @@ ERROR_STRINGS = {
class Error(Exception):
- def __init__(self, opt=ERROR_INTERNAL):
+ def __init__(self, opt=ERROR_INTERNAL, msg=None):
self.opt = opt
self.msg = ERROR_STRINGS.get(opt, ERROR_STRINGS[ERROR_INTERNAL])
+ if msg:
+ self.msg = '{} - {}'.format(self.msg, msg)
log.debug("Exception: %d (%s)" % (opt, self.msg))
Exception.__init__(self, self.msg, opt)
diff --git a/prnt/ldl.py b/prnt/ldl.py
index e3f77f7..8b28e7f 100644
--- a/prnt/ldl.py
+++ b/prnt/ldl.py
@@ -145,7 +145,7 @@ def buildLIDILPacket(packet_type, command=0, operation=0, other={}):
p = '$\x00\x10\x00\x08\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff$'
elif packet_type == PACKET_TYPE_RESET_LIDIL:
- p = '$\x00\x10\x00\x06\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff$'
+ p = b'$\x00\x10\x00\x06\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff$'
elif packet_type == PACKET_TYPE_COMMAND:

View File

@ -0,0 +1,17 @@
diff -up hplip-3.12.6/prnt/hpcups/HPCupsFilter.cpp.clear-old-state-reasons hplip-3.12.6/prnt/hpcups/HPCupsFilter.cpp
--- hplip-3.12.6/prnt/hpcups/HPCupsFilter.cpp.clear-old-state-reasons 2012-06-19 11:00:06.000000000 +0200
+++ hplip-3.12.6/prnt/hpcups/HPCupsFilter.cpp 2012-06-19 11:00:57.822093043 +0200
@@ -510,6 +510,13 @@ int HPCupsFilter::StartPrintJob(int arg
signal(SIGTERM, HPCancelJob);
+/*
+ * Prior to the re-write of hpcups, this filter managed the
+ * marker-supply-low-warning printer state reason. Make sure to
+ * clear that state reason so that upgrades work correctly.
+ */
+ fputs ("STATE: -marker-supply-low-warning\n", stderr);
+
cups_raster = cupsRasterOpen(fd, CUPS_RASTER_READ);
if (cups_raster == NULL) {

View File

@ -0,0 +1,52 @@
diff -up hplip-3.20.9/configure.in.configure-python hplip-3.20.9/configure.in
--- hplip-3.20.9/configure.in.configure-python 2020-09-23 07:24:27.000000000 +0200
+++ hplip-3.20.9/configure.in 2020-10-02 07:27:09.082331431 +0200
@@ -604,17 +604,29 @@ if test "$class_driver" = "no" && test "
fi
fi
-SAVE_CPPFLAGS="$CPPFLAGS"
-CFLAGS=`python-config --includes`
-if [ $? -eq 0 ]
-then
- echo $FLAGS
-else
-CFLAGS=`python3-config --includes`
- if [ $? -eq 0 ]
- then
- echo $FLAGS
- fi
+AC_PATH_PROG(python3_config_path, python3-config, [AC_MSG_ERROR([python3-config not installed], 6)])
+
+PYTHON_INCLUDES=`$python3_config_path --includes`
+if test "X$PYTHON_INCLUDES" = "X" ; then
+ AC_MSG_ERROR([Cannot get Python includes via python3-config], 6)
+fi
+
+PYTHON_LIBS=`$python3_config_path --libs`
+if test "X$PYTHON_LIBS" = "X" ; then
+ AC_MSG_ERROR([Cannot get Python libs via python3-config], 6)
+fi
+
+SAVE_CFLAGS=$CFLAGS
+SAVE_LIBS=$LIBS
+
+CFLAGS="$CFLAGS $PYTHON_INCLUDES"
+LIBS="$LIBS $PYTHON_LIBS"
+
+AC_TRY_LINK(,[ ], AC_MSG_RESULT(yes); python_includes="ok", AC_MSG_ERROR([no: PYTHON DISABLED], 6))
+
+if test "X$python_includes" != "Xok" ; then
+ CFLAGS="$SAVE_CFLAGS"
+ LIBS="$SAVE_LIBS"
fi
#CFLAGS=`(python-config --includes)`
@@ -631,7 +643,6 @@ if test "$class_driver" = "no" && test "
AS_IF([test "x$FOUND_HEADER" != "xyes"],
[AC_MSG_ERROR([cannot find python-devel support], 6)])
fi
-CFLAGS="$save_CFLAGS"
if test "$hpijs_only_build" = "no" && test "$scan_build" = "yes" && test "$hpcups_only_build" = "no"; then
AC_CHECK_LIB([sane], [sane_open], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find sane-backends-devel support (or --disable-scan-build)], 12)])

674
SOURCES/hplip-covscan.patch Normal file
View File

@ -0,0 +1,674 @@
diff --git a/Makefile.am b/Makefile.am
index 62a25d3..2c4d6f8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,7 +3,7 @@
#
# (c) 2004-2015 Copyright HP Development Company, LP
# Author: David Suffield, Naga Samrat Chowdary Narla, Sarbeswar Meher
-INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/
+INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/ -Iprotocol
CFLAGS+= -DCONFDIR=\"$(hplip_confdir)\"
CXXFLAGS+= -DCONFDIR=\"$(hplip_confdir)\"
@@ -304,7 +304,7 @@ dist_pcard_DATA = pcard/__init__.py pcard/photocard.py
pcardextdir = $(pyexecdir)
pcardext_LTLIBRARIES = pcardext.la
pcardext_la_LDFLAGS = -module -avoid-version
-pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c
+pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h
pcardext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
# prnt
@@ -316,7 +316,7 @@ lib_LTLIBRARIES += libhpipp.la
#hpipp_LTLIBRARIES = hpipp.la
#hpipp_la_LDFLAGS = -module -avoid-version
libhpipp_la_SOURCES = protocol/hp_ipp.c protocol/hp_ipp.h protocol/hp_ipp_i.h
-libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\"
+libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\" -D_GNU_SOURCE
libhpipp_la_LDFLAGS = -version-info 0:1:0
libhpipp_la_LIBADD = libhpmud.la
diff --git a/common/utils.c b/common/utils.c
index d8ecee9..def4e47 100644
--- a/common/utils.c
+++ b/common/utils.c
@@ -1,5 +1,9 @@
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+
#include "utils.h"
-#include "string.h"
+#include <string.h>
#include <dlfcn.h>
#include <sys/stat.h>
#include <errno.h>
diff --git a/io/hpmud/hpmud.c b/io/hpmud/hpmud.c
index 0eb6fff..358f279 100644
--- a/io/hpmud/hpmud.c
+++ b/io/hpmud/hpmud.c
@@ -759,6 +759,7 @@ enum HPMUD_RESULT hpmud_get_dstat(HPMUD_DEVICE dd, struct hpmud_dstat *ds)
}
strncpy(ds->uri, msp->device[dd].uri, sizeof(ds->uri));
+ ds->uri[sizeof(ds->uri)-1] = '\0';
ds->io_mode = msp->device[dd].io_mode;
ds->channel_cnt = msp->device[dd].channel_cnt;
ds->mlc_up = msp->device[dd].mlc_up;
diff --git a/io/hpmud/jd.c b/io/hpmud/jd.c
index 06f5072..20df27a 100644
--- a/io/hpmud/jd.c
+++ b/io/hpmud/jd.c
@@ -31,6 +31,7 @@
#endif
#include <signal.h>
+#include <stdlib.h>
#include "hpmud.h"
#include "hpmudi.h"
diff --git a/io/hpmud/model.c b/io/hpmud/model.c
index 4ea8990..a917d69 100644
--- a/io/hpmud/model.c
+++ b/io/hpmud/model.c
@@ -117,6 +117,7 @@ static int ReadConfig()
if (rcbuf[0] == '[')
{
strncpy(section, rcbuf, sizeof(section)); /* found new section */
+ section[sizeof(section)-1] = '\0';
continue;
}
@@ -125,6 +126,7 @@ static int ReadConfig()
if ((strncasecmp(section, "[dirs]", 6) == 0) && (strcasecmp(key, "home") == 0))
{
strncpy(homedir, value, sizeof(homedir));
+ homedir[sizeof(homedir)-1] = '\0';
break; /* done */
}
}
diff --git a/io/hpmud/musb.c b/io/hpmud/musb.c
index 6e99c15..755493e 100644
--- a/io/hpmud/musb.c
+++ b/io/hpmud/musb.c
@@ -775,7 +775,7 @@ static int device_id(int fd, unsigned char *buffer, int size)
len = size-1; /* leave byte for zero termination */
if (len > 2)
len -= 2;
- memcpy(buffer, buffer+2, len); /* remove length */
+ memmove(buffer, buffer+2, len); /* remove length */
buffer[len]=0;
DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);
diff --git a/io/hpmud/pp.c b/io/hpmud/pp.c
index 74c5fdc..021d627 100644
--- a/io/hpmud/pp.c
+++ b/io/hpmud/pp.c
@@ -632,7 +632,7 @@ static int device_id(int fd, char *buffer, int size)
len = size-1; /* leave byte for zero termination */
if (len > 2)
len -= 2;
- memcpy(buffer, buffer+2, len); /* remove length */
+ memmove(buffer, buffer+2, len); /* remove length */
buffer[len]=0;
DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);
diff --git a/pcard/fat.c b/pcard/fat.c
index caa383f..e1425c0 100644
--- a/pcard/fat.c
+++ b/pcard/fat.c
@@ -519,14 +519,17 @@ int FatFreeSpace(void)
int FatDiskAttributes( PHOTO_CARD_ATTRIBUTES * pa )
{
- strncpy( pa->OEMID, bpb.OEMID, 8 );
+ strncpy(pa->OEMID, bpb.OEMID, sizeof(pa->OEMID));
+ pa->OEMID[sizeof(pa->OEMID)-1] = '\0';
pa->BytesPerSector = bpb.BytesPerSector;
pa->SectorsPerCluster = bpb.SectorsPerCluster;
pa->ReservedSectors = bpb.ReservedSectors;
pa->SectorsPerFat = bpb.SectorsPerFat;
pa->RootEntries = bpb.RootEntries;
- strncpy( pa->SystemID, (char *)bpb.SystemID, 8 );
- strncpy( pa->VolumeLabel, (char *)bpb.VolumeLabel, 11 );
+ strncpy(pa->SystemID, (char *)bpb.SystemID, sizeof(pa->SystemID));
+ pa->SystemID[sizeof(pa->SystemID)-1] = '\0';
+ strncpy(pa->VolumeLabel, (char *)bpb.VolumeLabel, sizeof(pa->VolumeLabel));
+ pa->VolumeLabel[sizeof(pa->VolumeLabel)-1] = '\0';
pa->WriteProtect = da.WriteProtect;
return 0;
@@ -741,6 +744,7 @@ int FatSetCWD(char *dir)
return 1;
strncpy(cwd.Name, fa.Name, sizeof(cwd.Name));
+ cwd.Name[sizeof(cwd.Name)-1] = '\0';
cwd.StartSector = ConvertClusterToSector(fa.StartCluster);
cwd.CurrSector = cwd.StartSector;
cwd.StartCluster = fa.StartCluster;
diff --git a/prnt/hpcups/genPCLm.cpp b/prnt/hpcups/genPCLm.cpp
index c0cdc73..4db4bde 100644
--- a/prnt/hpcups/genPCLm.cpp
+++ b/prnt/hpcups/genPCLm.cpp
@@ -1237,11 +1237,16 @@ void PCLmGenerator::writeJobTicket()
char orientation[256];
char duplex[256];
char colorthemes[256];
- strncpy(colorthemes,getColorThemesString(m_pPCLmSSettings->colorTheme),256);
- strncpy(inputBin,getInputBinString(m_pPCLmSSettings->userInputBin),256);
- strncpy(outputBin,getOutputBin(m_pPCLmSSettings->userOutputBin),256);
- strncpy(orientation,getOrientationString(m_pPCLmSSettings->userOrientation),256);
- strncpy(duplex,getDuplexString(currDuplexDisposition),256);
+ strncpy(colorthemes,getColorThemesString(m_pPCLmSSettings->colorTheme), sizeof(colorthemes));
+ colorthemes[sizeof(colorthemes)-1] = '\0';
+ strncpy(inputBin,getInputBinString(m_pPCLmSSettings->userInputBin), sizeof(inputBin));
+ inputBin[sizeof(inputBin)-1] = '\0';
+ strncpy(outputBin,getOutputBin(m_pPCLmSSettings->userOutputBin), sizeof(outputBin));
+ outputBin[sizeof(outputBin)-1] = '\0';
+ strncpy(orientation,getOrientationString(m_pPCLmSSettings->userOrientation), sizeof(orientation));
+ orientation[sizeof(orientation)-1] = '\0';
+ strncpy(duplex,getDuplexString(currDuplexDisposition), sizeof(duplex));
+ duplex[sizeof(duplex)-1] = '\0';
snprintf(pOutStr,OUT_STR_SIZE,"%% genPCLm (Ver: %f)\n",PCLM_Ver); writeStr2OutBuff(pOutStr);
snprintf(pOutStr,OUT_STR_SIZE,"%%============= Job Ticket =============\n"); writeStr2OutBuff(pOutStr);
@@ -1635,7 +1640,10 @@ int PCLmGenerator::StartPage(PCLmPageSetup *PCLmPageContent, void **pOutBuffer,
}
if(strlen(PCLmPageContent->mediaSizeName))
- strncpy(currMediaName,PCLmPageContent->mediaSizeName,256);
+ {
+ strncpy(currMediaName,PCLmPageContent->mediaSizeName, sizeof(currMediaName));
+ currMediaName[sizeof(currMediaName)-1] = '\0';
+ }
currStripHeight=PCLmPageContent->stripHeight;
if(!currStripHeight)
diff --git a/prnt/hpijs/context2.cpp b/prnt/hpijs/context2.cpp
index c3df482..19490b1 100644
--- a/prnt/hpijs/context2.cpp
+++ b/prnt/hpijs/context2.cpp
@@ -1302,6 +1302,7 @@ DRIVER_ERROR PrintContext::SelectDevice
if(0 == strnlen((const char *)pSS->strDevID, DevIDBuffSize))
{
strncpy((char *)pSS->strDevID,szDeviceId,DevIDBuffSize);
+ pSS->strDevID[sizeof(pSS->strDevID)-1] = '\0';
}
thePrinter = pPFI->CreatePrinter (pSS, familyHandle);
if (thePrinter->constructor_error != NO_ERROR)
diff --git a/prnt/hpijs/systemservices.cpp b/prnt/hpijs/systemservices.cpp
index 95f5a64..f5b4bb5 100644
--- a/prnt/hpijs/systemservices.cpp
+++ b/prnt/hpijs/systemservices.cpp
@@ -396,7 +396,10 @@ void SystemServices::AdjustIO(IO_MODE IM, const char* model)
IOMode.bDevID =IM.bDevID && IOMode.bDevID;
if (model)
+ {
strncpy(strModel,model, sizeof(strModel));
+ strModel[sizeof(strModel)-1] = '\0';
+ }
}
APDK_END_NAMESPACE
diff --git a/prnt/hpps/hppsfilter.c b/prnt/hpps/hppsfilter.c
index 5879a70..d246041 100644
--- a/prnt/hpps/hppsfilter.c
+++ b/prnt/hpps/hppsfilter.c
@@ -230,13 +230,13 @@ static void WriteHeader(char **argument)
/* Writing Header Information
argument[1] = JOB ID , argument[2]= USERNAME, argument[3] = TITLE */
hpwrite("\x1b%-12345X@PJL JOBNAME=", strlen("\x1b%-12345X@PJL JOBNAME="));
- sprintf(buffer, "hplip_%s_%s\x0a", argument[2], argument[1]);
+ snprintf(buffer, MAX_BUFFER-1, "hplip_%s_%s\x0a", argument[2], argument[1]);
hpwrite(buffer, strlen(buffer));
memset(buffer, 0, sizeof(buffer));
- sprintf(buffer, "@PJL SET USERNAME=\"%s\"\x0a", argument[2]);
+ snprintf(buffer, MAX_BUFFER-1, "@PJL SET USERNAME=\"%s\"\x0a", argument[2]);
hpwrite(buffer, strlen(buffer));
memset(buffer, 0, sizeof(buffer));
- sprintf(buffer, "@PJL SET JOBNAME=\"%s\"\x0a", argument[3]);
+ snprintf(buffer, MAX_BUFFER-1, "@PJL SET JOBNAME=\"%s\"\x0a", argument[3]);
hpwrite(buffer, strlen(buffer));
fprintf(stderr, "HP PS filter func = WriteHeader : WRITING PJL HEADER INFO\n");
return;
diff --git a/protocol/hp_ipp.h b/protocol/hp_ipp.h
index 3853f84..de76202 100644
--- a/protocol/hp_ipp.h
+++ b/protocol/hp_ipp.h
@@ -166,5 +166,10 @@ int getCupsPrinters(printer_t **printer_list);
HPIPP_RESULT parseResponseHeader(char* header, int *content_length, int *chunked, int* header_size);
HPIPP_RESULT prepend_http_header(raw_ipp *raw_request);
enum HPMUD_RESULT sendUSBRequest(char *buf, int size, raw_ipp *responseptr, char * device_uri);
+void _releaseCupsInstance();
+int addCupsPrinter(char *name, char *device_uri, char *location, char *ppd_file, char *model, char *info);
+int delCupsPrinter(char *pr_name);
+int setDefaultCupsPrinter(char *pr_name);
+int controlCupsPrinter(char *pr_name, int op);
# endif //_IPP_H
diff --git a/scan/sane/bb_ledm.c b/scan/sane/bb_ledm.c
index b233d1e..7ba0edf 100644
--- a/scan/sane/bb_ledm.c
+++ b/scan/sane/bb_ledm.c
@@ -26,6 +26,7 @@
# include "http.h"
# include "xml.h"
# include <stdlib.h>
+# include <unistd.h>
# include <stdint.h>
diff --git a/scan/sane/common.h b/scan/sane/common.h
index 0f67542..e496a74 100644
--- a/scan/sane/common.h
+++ b/scan/sane/common.h
@@ -36,7 +36,7 @@
#define _STRINGIZE(x) #x
#define STRINGIZE(x) _STRINGIZE(x)
-#define BUG(args...) {syslog(LOG_ERR, __FILE__ " " STRINGIZE(__LINE__) ": " args); DBG(2, __FILE__ " " STRINGIZE(__LINE__) ": " args);}
+#define BUG_SCAN(args...) {syslog(LOG_ERR, __FILE__ " " STRINGIZE(__LINE__) ": " args); DBG(2, __FILE__ " " STRINGIZE(__LINE__) ": " args);}
#define BUG_DUMP(data, size) bugdump((data), (size))
#define BUG_SZ(args...) {syslog(LOG_ERR, args); DBG(2, args);}
diff --git a/scan/sane/escl.c b/scan/sane/escl.c
index af45bff..4f59b21 100644
--- a/scan/sane/escl.c
+++ b/scan/sane/escl.c
@@ -795,7 +795,7 @@ SANE_Status escl_control_option(SANE_Handle handle, SANE_Int option, SANE_Action
//DBG8("escl_control_option (option=%s) action=%d\n", ps->option[option].name, action);
if (stat != SANE_STATUS_GOOD)
{
- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name, action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
+ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name, action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
}
return stat;
@@ -1102,7 +1102,7 @@ void escl_close(SANE_Handle handle)
if (ps == NULL || ps != session)
{
- BUG("invalid sane_close\n");
+ BUG_SCAN("invalid sane_close\n");
return;
}
diff --git a/scan/sane/http.c b/scan/sane/http.c
index 800df91..45668cd 100644
--- a/scan/sane/http.c
+++ b/scan/sane/http.c
@@ -36,6 +36,7 @@
#include <string.h>
#include <syslog.h>
#include <ctype.h>
+#include <unistd.h>
#include "hpmud.h"
#include "http.h"
diff --git a/scan/sane/io.c b/scan/sane/io.c
index 4508458..7bbddea 100755
--- a/scan/sane/io.c
+++ b/scan/sane/io.c
@@ -50,7 +50,7 @@ int __attribute__ ((visibility ("hidden"))) InitDbus(void)
if (dbus_error_is_set(&dbus_err))
{
- BUG("dBus Connection Error (%s)!\n", dbus_err.message);
+ BUG_SCAN("dBus Connection Error (%s)!\n", dbus_err.message);
dbus_error_free(&dbus_err);
}
@@ -79,7 +79,7 @@ int __attribute__ ((visibility ("hidden"))) SendScanEvent(char *device_uri, int
if (NULL == msg)
{
- BUG("dbus message is NULL!\n");
+ BUG_SCAN("dbus message is NULL!\n");
return 0;
}
@@ -94,7 +94,7 @@ int __attribute__ ((visibility ("hidden"))) SendScanEvent(char *device_uri, int
if (!dbus_connection_send(dbus_conn, msg, NULL))
{
- BUG("dbus message send failed!\n");
+ BUG_SCAN("dbus message send failed!\n");
return 0;
}
diff --git a/scan/sane/ledm.c b/scan/sane/ledm.c
index 9a1ff02..07ab5b0 100644
--- a/scan/sane/ledm.c
+++ b/scan/sane/ledm.c
@@ -802,7 +802,7 @@ SANE_Status ledm_control_option(SANE_Handle handle, SANE_Int option, SANE_Action
if (stat != SANE_STATUS_GOOD)
{
- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name, action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
+ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name, action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
}
return stat;
@@ -1067,7 +1067,7 @@ void ledm_close(SANE_Handle handle)
if (ps == NULL || ps != session)
{
- BUG("invalid sane_close\n");
+ BUG_SCAN("invalid sane_close\n");
return;
}
diff --git a/scan/sane/marvell.c b/scan/sane/marvell.c
index ad267a3..236f7c9 100644
--- a/scan/sane/marvell.c
+++ b/scan/sane/marvell.c
@@ -134,7 +134,7 @@ static int get_ip_data(struct marvell_session *ps, SANE_Byte *data, SANE_Int max
if (!ps->ip_handle)
{
- BUG("invalid ipconvert state\n");
+ BUG_SCAN("invalid ipconvert state\n");
goto bugout;
}
@@ -335,7 +335,7 @@ static struct marvell_session *create_session()
if ((ps = malloc(sizeof(struct marvell_session))) == NULL)
{
- BUG("malloc failed: %m\n");
+ BUG_SCAN("malloc failed: %m\n");
return NULL;
}
memset(ps, 0, sizeof(struct marvell_session));
@@ -402,7 +402,7 @@ SANE_Status marvell_open(SANE_String_Const device, SANE_Handle *handle)
if (session)
{
- BUG("session in use\n");
+ BUG_SCAN("session in use\n");
return SANE_STATUS_DEVICE_BUSY;
}
@@ -431,7 +431,7 @@ SANE_Status marvell_open(SANE_String_Const device, SANE_Handle *handle)
if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK)
{
- BUG("unable to open device %s\n", session->uri);
+ BUG_SCAN("unable to open device %s\n", session->uri);
goto bugout;
free(session);
@@ -441,7 +441,7 @@ SANE_Status marvell_open(SANE_String_Const device, SANE_Handle *handle)
if (hpmud_open_channel(session->dd, HPMUD_S_MARVELL_SCAN_CHANNEL, &session->cd) != HPMUD_R_OK)
{
- BUG("unable to open %s channel %s\n", HPMUD_S_MARVELL_SCAN_CHANNEL, session->uri);
+ BUG_SCAN("unable to open %s channel %s\n", HPMUD_S_MARVELL_SCAN_CHANNEL, session->uri);
stat = SANE_STATUS_DEVICE_BUSY;
goto bugout;
}
@@ -554,7 +554,7 @@ void marvell_close(SANE_Handle handle)
if (ps == NULL || ps != session)
{
- BUG("invalid sane_close\n");
+ BUG_SCAN("invalid sane_close\n");
return;
}
@@ -849,7 +849,7 @@ SANE_Status marvell_control_option(SANE_Handle handle, SANE_Int option, SANE_Act
stat = SANE_STATUS_GOOD;
break;
}
- BUG("value=%d brymin=%d brymax=%d\n", *int_value, ps->bryRange.min, ps->bryRange.max);
+ BUG_SCAN("value=%d brymin=%d brymax=%d\n", *int_value, ps->bryRange.min, ps->bryRange.max);
}
else
{ /* Set default. */
@@ -866,7 +866,7 @@ SANE_Status marvell_control_option(SANE_Handle handle, SANE_Int option, SANE_Act
if (stat != SANE_STATUS_GOOD)
{
- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name,
+ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name,
action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
}
@@ -905,7 +905,7 @@ SANE_Status marvell_start(SANE_Handle handle)
if (set_extents(ps))
{
- BUG("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
+ BUG_SCAN("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);
stat = SANE_STATUS_INVAL;
goto bugout;
@@ -963,7 +963,7 @@ SANE_Status marvell_start(SANE_Handle handle)
/* Open image processor. */
if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE)
{
- BUG("unable open image processor: err=%d\n", ret);
+ BUG_SCAN("unable open image processor: err=%d\n", ret);
stat = SANE_STATUS_INVAL;
goto bugout;
}
@@ -1023,7 +1023,7 @@ SANE_Status marvell_read(SANE_Handle handle, SANE_Byte *data, SANE_Int maxLength
if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
{
- BUG("ipConvert error=%x\n", ret);
+ BUG_SCAN("ipConvert error=%x\n", ret);
goto bugout;
}
diff --git a/scan/sane/sclpml.c b/scan/sane/sclpml.c
index 9a5975f..dc8b32c 100644
--- a/scan/sane/sclpml.c
+++ b/scan/sane/sclpml.c
@@ -30,6 +30,7 @@
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
+#include <sys/time.h>
#include "sane.h"
#include "saneopts.h"
#include "common.h"
@@ -2090,7 +2091,7 @@ void sclpml_close(SANE_Handle handle)
DBG(8, "sane_hpaio_close(): %s %d\n", __FILE__, __LINE__);
if (hpaio == NULL || hpaio != session)
{
- BUG("invalid sane_close\n");
+ BUG_SCAN("invalid sane_close\n");
return;
}
diff --git a/scan/sane/soap.c b/scan/sane/soap.c
index 07106fe..0d22e52 100644
--- a/scan/sane/soap.c
+++ b/scan/sane/soap.c
@@ -142,7 +142,7 @@ static int get_ip_data(struct soap_session *ps, SANE_Byte *data, SANE_Int maxLen
if (!ps->ip_handle)
{
- BUG("invalid ipconvert state\n");
+ BUG_SCAN("invalid ipconvert state\n");
goto bugout;
}
@@ -219,7 +219,7 @@ static struct soap_session *create_session()
if ((ps = malloc(sizeof(struct soap_session))) == NULL)
{
- BUG("malloc failed: %m\n");
+ BUG_SCAN("malloc failed: %m\n");
return NULL;
}
memset(ps, 0, sizeof(struct soap_session));
@@ -418,7 +418,7 @@ SANE_Status soap_open(SANE_String_Const device, SANE_Handle *handle)
if (session)
{
- BUG("session in use\n");
+ BUG_SCAN("session in use\n");
return SANE_STATUS_DEVICE_BUSY;
}
@@ -434,7 +434,7 @@ SANE_Status soap_open(SANE_String_Const device, SANE_Handle *handle)
if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK)
{
- BUG("unable to open device %s\n", session->uri);
+ BUG_SCAN("unable to open device %s\n", session->uri);
goto bugout;
free(session);
@@ -519,7 +519,7 @@ void soap_close(SANE_Handle handle)
if (ps == NULL || ps != session)
{
- BUG("invalid sane_close\n");
+ BUG_SCAN("invalid sane_close\n");
return;
}
@@ -824,7 +824,7 @@ SANE_Status soap_control_option(SANE_Handle handle, SANE_Int option, SANE_Action
if (stat != SANE_STATUS_GOOD)
{
- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name,
+ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name,
action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
}
@@ -862,7 +862,7 @@ SANE_Status soap_start(SANE_Handle handle)
ps->user_cancel = 0;
if (set_extents(ps))
{
- BUG("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
+ BUG_SCAN("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);
stat = SANE_STATUS_INVAL;
goto bugout;
@@ -913,7 +913,7 @@ SANE_Status soap_start(SANE_Handle handle)
/* Open image processor. */
if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE)
{
- BUG("unable open image processor: err=%d\n", ret);
+ BUG_SCAN("unable open image processor: err=%d\n", ret);
stat = SANE_STATUS_INVAL;
goto bugout;
}
@@ -955,7 +955,7 @@ SANE_Status soap_start(SANE_Handle handle)
if (ret & (IP_INPUT_ERROR | IP_FATAL_ERROR | IP_DONE))
{
- BUG("ipConvert error=%x\n", ret);
+ BUG_SCAN("ipConvert error=%x\n", ret);
stat = SANE_STATUS_IO_ERROR;
goto bugout;
}
@@ -1007,7 +1007,7 @@ SANE_Status soap_read(SANE_Handle handle, SANE_Byte *data, SANE_Int maxLength, S
if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
{
- BUG("ipConvert error=%x\n", ret);
+ BUG_SCAN("ipConvert error=%x\n", ret);
goto bugout;
}
diff --git a/scan/sane/soapht.c b/scan/sane/soapht.c
index 269ab21..139100d 100644
--- a/scan/sane/soapht.c
+++ b/scan/sane/soapht.c
@@ -136,7 +136,7 @@ static int get_ip_data(struct soap_session *ps, SANE_Byte *data, SANE_Int maxLen
if (!ps->ip_handle)
{
- BUG("invalid ipconvert state\n");
+ BUG_SCAN("invalid ipconvert state\n");
goto bugout;
}
@@ -435,7 +435,7 @@ static struct soap_session *create_session()
if ((ps = malloc(sizeof(struct soap_session))) == NULL)
{
- BUG("malloc failed: %m\n");
+ BUG_SCAN("malloc failed: %m\n");
return NULL;
}
memset(ps, 0, sizeof(struct soap_session));
@@ -459,7 +459,7 @@ SANE_Status soapht_open(SANE_String_Const device, SANE_Handle *handle)
if (session)
{
- BUG("session in use\n");
+ BUG_SCAN("session in use\n");
return SANE_STATUS_DEVICE_BUSY;
}
@@ -475,7 +475,7 @@ SANE_Status soapht_open(SANE_String_Const device, SANE_Handle *handle)
if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK)
{
- BUG("unable to open device %s\n", session->uri);
+ BUG_SCAN("unable to open device %s\n", session->uri);
goto bugout;
free(session);
@@ -554,7 +554,7 @@ void soapht_close(SANE_Handle handle)
if (ps == NULL || ps != session)
{
- BUG("invalid sane_close\n");
+ BUG_SCAN("invalid sane_close\n");
return;
}
@@ -904,7 +904,7 @@ SANE_Status soapht_control_option(SANE_Handle handle, SANE_Int option, SANE_Acti
if (stat != SANE_STATUS_GOOD)
{
- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name,
+ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name,
action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
}
@@ -946,7 +946,7 @@ SANE_Status soapht_start(SANE_Handle handle)
if (set_extents(ps))
{
- BUG("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
+ BUG_SCAN("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);
stat = SANE_STATUS_INVAL;
goto bugout;
@@ -1032,7 +1032,7 @@ SANE_Status soapht_start(SANE_Handle handle)
/* Open image processor. */
if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE)
{
- BUG("unable open image processor: err=%d\n", ret);
+ BUG_SCAN("unable open image processor: err=%d\n", ret);
stat = SANE_STATUS_INVAL;
goto bugout;
}
@@ -1075,7 +1075,7 @@ SANE_Status soapht_start(SANE_Handle handle)
if (ret & (IP_INPUT_ERROR | IP_FATAL_ERROR | IP_DONE))
{
- BUG("ipConvert error=%x\n", ret);
+ BUG_SCAN("ipConvert error=%x\n", ret);
stat = SANE_STATUS_IO_ERROR;
goto bugout;
}
@@ -1124,7 +1124,7 @@ SANE_Status soapht_read(SANE_Handle handle, SANE_Byte *data, SANE_Int maxLength,
if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
{
- BUG("ipConvert error=%x\n", ret);
+ BUG_SCAN("ipConvert error=%x\n", ret);
goto bugout;
}

View File

@ -0,0 +1,750 @@
diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv/hpcups.drv.in
--- hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv 2019-06-26 15:09:17.000000000 +0200
+++ hplip-3.19.6/prnt/drv/hpcups.drv.in 2019-07-12 08:34:02.789910485 +0200
@@ -487,7 +487,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 3820"
Attribute "NickName" "" "HP Deskjet 3820, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 3820 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 3820;DES:deskjet 3820;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 3820;DES:Hewlett-Packard DeskJet 3820;"
PCFileName "hp-deskjet_3820.ppd"
Attribute "Product" "" "(HP Deskjet 3820 Color Inkjet Printer)"
Attribute "Product" "" "(HP Deskjet 3820v Color Inkjet Printer)"
@@ -521,7 +521,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 920c"
Attribute "NickName" "" "HP Deskjet 920c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 920c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 920c;DES:deskjet 920c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 920C;DES:Hewlett-Packard DeskJet 920C;"
PCFileName "hp-deskjet_920c.ppd"
Attribute "Product" "" "(HP Deskjet 920c Printer)"
Attribute "Product" "" "(HP Deskjet 920cvr Printer)"
@@ -532,7 +532,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 930c"
Attribute "NickName" "" "HP Deskjet 930c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 930c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 930c;DES:deskjet 930c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 930C;DES:Hewlett-Packard DeskJet 930C;"
PCFileName "hp-deskjet_930c.ppd"
Attribute "Product" "" "(HP Deskjet 930c Printer)"
Attribute "Product" "" "(HP Deskjet 930cm Printer)"
@@ -573,7 +573,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 940c"
Attribute "NickName" "" "HP Deskjet 940c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 940c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 940c;DES:deskjet 940c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 940C;DES:Hewlett-Packard DeskJet 940C;"
PCFileName "hp-deskjet_940c.ppd"
Attribute "Product" "" "(HP Deskjet 940cvr Printer)"
Attribute "Product" "" "(HP Deskjet 940c Printer)"
@@ -592,7 +592,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 950c"
Attribute "NickName" "" "HP Deskjet 950c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 950c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 950c;DES:deskjet 950c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 950C;DES:Hewlett-Packard DeskJet 950C;"
PCFileName "hp-deskjet_950c.ppd"
Attribute "Product" "" "(HP Deskjet 950c Printer)"
}
@@ -625,7 +625,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 959c"
Attribute "NickName" "" "HP Deskjet 959c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 959c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 959c;DES:deskjet 959c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 950C;DES:Hewlett-Packard DeskJet 950C;"
PCFileName "hp-deskjet_959c.ppd"
Attribute "Product" "" "(HP Deskjet 959c Printer)"
}
@@ -633,7 +633,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 970c"
Attribute "NickName" "" "HP Deskjet 970c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 970c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 970c;DES:deskjet 970c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 970C;DES:Hewlett-Packard DeskJet 970C;"
PCFileName "hp-deskjet_970c.ppd"
Attribute "Product" "" "(HP Deskjet 970cxi Printer)"
Attribute "Product" "" "(HP Deskjet 970cse Printer)"
@@ -665,7 +665,7 @@ Manufacturer "HP"
ModelName "HP Officejet g55"
Attribute "NickName" "" "HP Officejet g55, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet g55 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet g55;DES:officejet g55;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet G55;DES:Hewlett-Packard OfficeJet G Series;"
PCFileName "hp-officejet_g55.ppd"
Attribute "Product" "" "(HP Officejet g55 All-in-one Printer)"
}
@@ -681,7 +681,7 @@ Manufacturer "HP"
ModelName "HP Officejet g85"
Attribute "NickName" "" "HP Officejet g85, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet g85 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet g85;DES:officejet g85;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet G85;DES:Hewlett-Packard OfficeJet G Series;"
PCFileName "hp-officejet_g85.ppd"
Attribute "Product" "" "(HP Officejet g85 All-in-one Printer)"
}
@@ -697,7 +697,7 @@ Manufacturer "HP"
ModelName "HP Officejet g95"
Attribute "NickName" "" "HP Officejet g95, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet g95 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet g95;DES:officejet g95;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet G95;DES:Hewlett-Packard OfficeJet G Series;"
PCFileName "hp-officejet_g95.ppd"
Attribute "Product" "" "(HP Officejet g95 All-in-one Printer)"
}
@@ -745,7 +745,7 @@ Manufacturer "HP"
ModelName "HP Officejet v40"
Attribute "NickName" "" "HP Officejet v40, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet v40 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet v40;DES:officejet v40;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet V40;DES:Hewlett-Packard OfficeJet V Series;"
PCFileName "hp-officejet_v40.ppd"
Attribute "Product" "" "(HP Officejet v40 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet v40s All-in-one Printer)"
@@ -754,7 +754,7 @@ Manufacturer "HP"
ModelName "HP Officejet v40xi"
Attribute "NickName" "" "HP Officejet v40xi, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet v40xi hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet v40xi;DES:officejet v40xi;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet V40xi;DES:Hewlett-Packard OfficeJet V Series;"
PCFileName "hp-officejet_v40xi.ppd"
Attribute "Product" "" "(HP Officejet v40xi All-in-one Printer)"
}
@@ -770,7 +770,7 @@ Manufacturer "HP"
ModelName "HP Photosmart p1000"
Attribute "NickName" "" "HP Photosmart p1000, hpcups $Version"
Attribute "ShortNickName" "" "HP Photosmart p1000 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:photosmart p1000;DES:photosmart p1000;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:PHOTOSMART P1100;DES:Hewlett-Packard PhotoSmart P1100;"
PCFileName "hp-photosmart_p1000.ppd"
Attribute "Product" "" "(HP Photosmart p1000/1000 Printer)"
Attribute "Product" "" "(HP Photosmart p1000xi Printer)"
@@ -779,7 +779,7 @@ Manufacturer "HP"
ModelName "HP Photosmart p1100"
Attribute "NickName" "" "HP Photosmart p1100, hpcups $Version"
Attribute "ShortNickName" "" "HP Photosmart p1100 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:photosmart p1100;DES:photosmart p1100;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:PHOTOSMART P1000;DES:Hewlett-Packard PhotoSmart P1000;"
PCFileName "hp-photosmart_p1100.ppd"
Attribute "Product" "" "(HP Photosmart p1100 Printer)"
Attribute "Product" "" "(HP Photosmart p1100xi Printer)"
@@ -796,7 +796,7 @@ Manufacturer "HP"
ModelName "HP PSC 750"
Attribute "NickName" "" "HP PSC 750, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 750 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 750;DES:psc 750;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:PSC 750;DES:Hewlett-Packard PSC 700 Series;"
PCFileName "hp-psc_750.ppd"
Attribute "Product" "" "(HP PSC 750 All-in-one Printer)"
}
@@ -804,7 +804,7 @@ Manufacturer "HP"
ModelName "HP PSC 750xi"
Attribute "NickName" "" "HP PSC 750xi, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 750xi hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 750xi;DES:psc 750xi;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:PSC 750xi;DES:Hewlett-Packard PSC 700 Series;"
PCFileName "hp-psc_750xi.ppd"
Attribute "Product" "" "(HP PSC 750xi All-in-one Printer)"
}
@@ -836,7 +836,7 @@ Manufacturer "HP"
ModelName "HP PSC 900 Series"
Attribute "NickName" "" "HP PSC 900 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 900 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 900 series;DES:psc 900 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:PSC 900 Series;DES:Hewlett-Packard PSC 900 Series;"
PCFileName "hp-psc_900_series.ppd"
Attribute "Product" "" "(HP PSC 900 All-in-one Printer)"
}
@@ -910,7 +910,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 1220c"
Attribute "NickName" "" "HP Deskjet 1220c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 1220c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 1220c;DES:deskjet 1220c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 1220C;DES:Hewlett-Packard DeskJet 1220;"
PCFileName "hp-deskjet_1220c.ppd"
Attribute "Product" "" "(HP Deskjet 1220c Printer)"
Attribute "Product" "" "(HP Deskjet 1220cse Printer)"
@@ -1100,7 +1100,7 @@ Manufacturer "HP"
ModelName "HP 2000c"
Attribute "NickName" "" "HP 2000c, hpcups $Version"
Attribute "ShortNickName" "" "HP 2000c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:hp 2000c;DES:hp 2000c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:HP 2000C;DES:hp 2000c;"
PCFileName "hp-2000c.ppd"
Attribute "Product" "" "(HP 2000cse Printer)"
Attribute "Product" "" "(HP 2000c Printer)"
@@ -1564,7 +1564,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 960c"
Attribute "NickName" "" "HP Deskjet 960c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 960c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 960c;DES:deskjet 960c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 960C;DES:Hewlett-Packard DeskJet 960C;"
PCFileName "hp-deskjet_960c.ppd"
Attribute "Product" "" "(HP Deskjet 960cse Printer)"
Attribute "Product" "" "(HP Deskjet 960cxi Printer)"
@@ -1574,7 +1574,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 980c"
Attribute "NickName" "" "HP Deskjet 980c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 980c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 980c;DES:deskjet 980c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 980C;DES:Hewlett-Packard DeskJet 980C;"
PCFileName "hp-deskjet_980c.ppd"
Attribute "Product" "" "(HP Deskjet 980cxi Printer)"
Attribute "Product" "" "(HP Deskjet 980c Printer)"
@@ -1583,7 +1583,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 990c"
Attribute "NickName" "" "HP Deskjet 990c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 990c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 990c;DES:deskjet 990c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 990C;DES:Hewlett-Packard DeskJet 990C;"
PCFileName "hp-deskjet_990c.ppd"
Attribute "Product" "" "(HP Deskjet 990cxi Printer)"
Attribute "Product" "" "(HP Deskjet 990cse Printer)"
@@ -1613,7 +1613,7 @@ Manufacturer "HP"
ModelName "HP Officejet 7100 Series"
Attribute "NickName" "" "HP Officejet 7100 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 7100 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet 7100 series;DES:officejet 7100 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:officejet 7100 series;DES:officejet 7100 series;"
PCFileName "hp-officejet_7100_series.ppd"
Attribute "Product" "" "(HP Officejet 7100 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 7110 All-in-one Printer)"
@@ -1628,7 +1628,7 @@ Manufacturer "HP"
ModelName "HP Officejet D Series"
Attribute "NickName" "" "HP Officejet D Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet D Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet d series;DES:officejet d series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:officejet d series;DES:officejet d series;"
PCFileName "hp-officejet_d_series.ppd"
Attribute "Product" "" "(HP Officejet d125xi All-in-one Printer)"
Attribute "Product" "" "(HP Officejet d135 All-in-one Printer)"
@@ -1675,7 +1675,7 @@ Manufacturer "HP"
ModelName "HP PSC 2100 Series"
Attribute "NickName" "" "HP PSC 2100 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2100 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 2100 series;DES:psc 2100 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:PSC 2100 Series;DES:psc 2100 series;"
PCFileName "hp-psc_2100_series.ppd"
Attribute "Product" "" "(HP PSC 2105 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2108 All-in-one Printer)"
@@ -1688,7 +1688,7 @@ Manufacturer "HP"
ModelName "HP PSC 2150 Series"
Attribute "NickName" "" "HP PSC 2150 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2150 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 2150 series;DES:psc 2150 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:PSC 2150 Series;DES:psc 2150 series;"
PCFileName "hp-psc_2150_series.ppd"
Attribute "Product" "" "(HP PSC 2150 All-in-one Printer)"
}
@@ -1696,7 +1696,7 @@ Manufacturer "HP"
ModelName "HP PSC 2170 Series"
Attribute "NickName" "" "HP PSC 2170 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2170 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 2170 series;DES:psc 2170 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:PSC 2170 Series;DES:psc 2170 series;"
PCFileName "hp-psc_2170_series.ppd"
Attribute "Product" "" "(HP PSC 2170 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2171 All-in-one Printer)"
@@ -1743,7 +1743,7 @@ Manufacturer "HP"
ModelName "HP Color Inkjet Printer cp1700"
Attribute "NickName" "" "HP Color Inkjet Printer cp1700, hpcups $Version"
Attribute "ShortNickName" "" "HP CJ IJ Printer cp1700 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:hp color inkjet printer cp1700;DES:hp color inkjet printer cp1700;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:HP Color Inkjet CP1700;DES:HP Color Inkjet CP1700;"
PCFileName "hp-color_inkjet_printer_cp1700.ppd"
Attribute "Product" "" "(HP Color Inkjet cp1700 Printer)"
Attribute "Product" "" "(HP Color Inkjet cp1700ps Printer)"
@@ -1918,7 +1918,7 @@ Manufacturer "HP"
ModelName "HP Business Inkjet 2200"
Attribute "NickName" "" "HP Business Inkjet 2200, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2200 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:hp business inkjet 2200;DES:hp business inkjet 2200;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:HP BUSINESS INKJET 2200;DES:Hewlett-Packard Business Inkjet 2200;"
PCFileName "hp-business_inkjet_2200.ppd"
Attribute "Product" "" "(HP Business Inkjet 2200 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2200se Printer)"
@@ -1928,7 +1928,7 @@ Manufacturer "HP"
ModelName "HP Business Inkjet 2230"
Attribute "NickName" "" "HP Business Inkjet 2230, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2230 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:hp business inkjet 2230;DES:hp business inkjet 2230;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:HP BUSINESS INKJET 2230;DES:Hewlett-Packard Business Inkjet 2230;"
PCFileName "hp-business_inkjet_2230.ppd"
Attribute "Product" "" "(HP Business Inkjet 2230 Printer)"
}
@@ -1936,7 +1936,7 @@ Manufacturer "HP"
ModelName "HP Business Inkjet 2250"
Attribute "NickName" "" "HP Business Inkjet 2250 pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2250 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:hp business inkjet 2250;DES:hp business inkjet 2250;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:HP BUSINESS INKJET 2250;DES:Hewlett-Packard Business Inkjet 2250;"
PCFileName "hp-business_inkjet_2250-pcl3.ppd"
Attribute "Product" "" "(HP Business Inkjet 2250 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2250tn Printer)"
@@ -1945,7 +1945,7 @@ Manufacturer "HP"
ModelName "HP Business Inkjet 2280"
Attribute "NickName" "" "HP Business Inkjet 2280 pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2280 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:hp business inkjet 2280;DES:hp business inkjet 2280;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:HP BUSINESS INKJET 2280;DES:Hewlett-Packard Business Inkjet 2280;"
PCFileName "hp-business_inkjet_2280-pcl3.ppd"
Attribute "Product" "" "(HP Business Inkjet 2280 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2280tn Printer)"
@@ -2689,7 +2689,7 @@ Manufacturer "HP"
ModelName "HP Officejet 7200 Series"
Attribute "NickName" "" "HP Officejet 7200 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 7200 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet 7200 series;DES:officejet 7200 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:officejet 7200 series;DES:officejet 7200 series;"
PCFileName "hp-officejet_7200_series.ppd"
Attribute "Product" "" "(HP Officejet 7205 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 7208 All-in-one Printer)"
@@ -2713,7 +2713,7 @@ Manufacturer "HP"
ModelName "HP Officejet 7400 Series"
Attribute "NickName" "" "HP Officejet 7400 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 7400 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet 7400 series;DES:officejet 7400 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:officejet 7400 series;DES:officejet 7400 series;"
PCFileName "hp-officejet_7400_series.ppd"
Attribute "Product" "" "(HP Officejet 7408 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 7410 All-in-one Printer)"
@@ -2757,7 +2757,7 @@ Manufacturer "HP"
ModelName "HP Officejet j5700 Series"
Attribute "NickName" "" "HP Officejet j5700 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet j5700 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet j5700 series;DES:officejet j5700 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:Officejet J5700 series;DES:officejet j5700 series;"
PCFileName "hp-officejet_j5700_series.ppd"
Attribute "Product" "" "(HP Officejet j5725 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet j5785 All-in-one Printer)"
@@ -3391,7 +3391,7 @@ Manufacturer "HP"
ModelName "HP PSC 2200 Series"
Attribute "NickName" "" "HP PSC 2200 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2200 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 2200 series;DES:psc 2200 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:PSC 2200 Series;DES:psc 2200 series;"
PCFileName "hp-psc_2200_series.ppd"
Attribute "Product" "" "(HP PSC 2200 All-in-one Printer)"
}
@@ -3409,7 +3409,7 @@ Manufacturer "HP"
ModelName "HP PSC 2300 Series"
Attribute "NickName" "" "HP PSC 2300 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2300 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 2300 series;DES:psc 2300 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:PSC 2300 Series;DES:psc 2300 series;"
PCFileName "hp-psc_2300_series.ppd"
Attribute "Product" "" "(HP PSC 2300 Series All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2310 All-in-one Printer)"
@@ -3417,8 +3417,7 @@ Manufacturer "HP"
{
ModelName "HP PSC 2350 Series"
Attribute "NickName" "" "HP PSC 2350 Series, hpcups $Version"
- Attribute "ShortNickName" "" "HP PSC 2350 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 2350 series;DES:psc 2350 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:PSC 2350 Series;DES:psc 2350 series;"
PCFileName "hp-psc_2350_series.ppd"
Attribute "Product" "" "(HP PSC 2350 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2358 All-in-one Printer)"
@@ -3448,7 +3447,7 @@ Manufacturer "HP"
ModelName "HP PSC 2500 Series"
Attribute "NickName" "" "HP PSC 2500 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2500 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 2500 series;DES:psc 2500 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:PSC 2500 Series;DES:psc 2500 series;"
PCFileName "hp-psc_2500_series.ppd"
Attribute "Product" "" "(HP PSC 2500 Photosmart All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2510 Photosmart All-in-one Printer)"
@@ -7023,7 +7022,7 @@ Manufacturer "HP"
ModelName "HP Officejet 6100"
Attribute "NickName" "" "HP Officejet 6100, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 6100 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet 6100;DES:officejet 6100;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet 6100 Series;DES:officejet 6100 series;"
PCFileName "hp-officejet_6100.ppd"
Attribute "Product" "" "(HP Officejet 6100 Eprinter h611a)"
}
@@ -16708,7 +16707,7 @@ Manufacturer "HP"
ModelName "HP Officejet 4100 Series"
Attribute "NickName" "" "HP Officejet 4100 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 4100 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet 4100 series;DES:officejet 4100 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-packard;MDL:officejet 4100 series;DES:officejet 4100 series;"
PCFileName "hp-officejet_4100_series.ppd"
Attribute "Product" "" "(HP Officejet 4100 Series All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 4110xi All-in-one Printer)"
@@ -16735,7 +16734,7 @@ Manufacturer "HP"
ModelName "HP Officejet 4300 Series"
Attribute "NickName" "" "HP Officejet 4300 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 4300 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet 4300 series;DES:officejet 4300 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:Officejet 4300 series;DES:officejet 4300 series;"
PCFileName "hp-officejet_4300_series.ppd"
Attribute "Product" "" "(HP Officejet 4308 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 4338 All-in-one Printer)"
@@ -16767,7 +16766,7 @@ Manufacturer "HP"
ModelName "HP PSC 1100 Series"
Attribute "NickName" "" "HP PSC 1100 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 1100 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 1100 series;DES:psc 1100 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:psc 1100 series;DES:psc 1100 series;"
PCFileName "hp-psc_1100_series.ppd"
Attribute "Product" "" "(HP PSC 1110 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 1110v All-in-one Printer)"
@@ -16777,7 +16776,7 @@ Manufacturer "HP"
ModelName "HP PSC 1200 Series"
Attribute "NickName" "" "HP PSC 1200 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 1200 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 1200 series;DES:psc 1200 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:psc 1200 series;DES:psc 1200 series;"
PCFileName "hp-psc_1200_series.ppd"
Attribute "Product" "" "(HP PSC 1200 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 1217 All-in-one Printer)"
@@ -17077,7 +17076,7 @@ Manufacturer "HP"
ModelName "HP Officejet 4200 Series"
Attribute "NickName" "" "HP Officejet 4200 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 4200 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet 4200 series;DES:officejet 4200 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:officejet 4200 series;DES:officejet 4200 series;"
PCFileName "hp-officejet_4200_series.ppd"
Attribute "Product" "" "(HP Officejet 4200 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 4211 All-in-one Printer)"
@@ -17142,7 +17141,7 @@ Manufacturer "HP"
ModelName "HP Officejet j3600 Series"
Attribute "NickName" "" "HP Officejet j3600 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet j3600 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet j3600 series;DES:officejet j3600 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:Officejet J3600 series;DES:officejet j3600 series;"
PCFileName "hp-officejet_j3600_series.ppd"
Attribute "Product" "" "(HP Officejet j3608 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet j3625 All-in-one Printer)"
@@ -17639,6 +17638,7 @@ Manufacturer "HP"
Attribute "NickName" "" "HP Photosmart 380 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Photosmart 380 Series hpijs"
Attribute "1284DeviceID" "" "MFG:HP;MDL:photosmart 380 series;DES:photosmart 380 series;"
+ Attribute "1284DeviceID" "" "MFG:HP;MDL:Photosmart 380 series_BT;DES:385;"
PCFileName "hp-photosmart_380_series.ppd"
Attribute "Product" "" "(HP Photosmart 385 Compact Photo Printer)"
Attribute "Product" "" "(HP Photosmart 385xi Compact Photo Printer)"
@@ -19378,7 +19378,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Business Inkjet 2300"
Attribute "NickName" "" "HP Business Inkjet 2300 pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2300 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:hp business inkjet 2300;DES:hp business inkjet 2300;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:HP BUSINESS INKJET 2300;DES:Hewlett-Packard Business Inkjet 2300;"
PCFileName "hp-business_inkjet_2300-pcl3.ppd"
Attribute "Product" "" "(HP Business Inkjet 2300 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2300n Printer)"
@@ -19759,7 +19759,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet 9100 Series"
Attribute "NickName" "" "HP Officejet 9100 Series pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 9100 Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet 9100 series;DES:officejet 9100 series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:officejet 9100 series;DES:officejet 9100 series;"
PCFileName "hp-officejet_9100_series-pcl3.ppd"
Attribute "Product" "" "(HP Officejet 9110 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 9120 All-in-one Printer)"
@@ -19843,7 +19843,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Business Inkjet 2800"
Attribute "NickName" "" "HP Business Inkjet 2800 pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2800 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:hp business inkjet 2800;DES:hp business inkjet 2800;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:HP BUSINESS INKJET 2800;DES:Hewlett-Packard Business Inkjet 2800;"
PCFileName "hp-business_inkjet_2800-pcl3.ppd"
Attribute "Product" "" "(HP Business Inkjet 2800 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2800dt Printer)"
@@ -20379,7 +20379,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Lx"
Attribute "NickName" "" "HP Officejet Lx, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Lx hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet lx;DES:officejet lx;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet;DES:officejet lx;"
PCFileName "hp-officejet_lx.ppd"
Attribute "Product" "" "(HP Officejet Lx All-in-one Printer)"
}
@@ -20516,7 +20516,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 540"
Attribute "NickName" "" "HP Deskjet 540, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 540 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 540;DES:deskjet 540;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 540;DES:Hewlett-Packard DeskJet 540;"
PCFileName "hp-deskjet_540.ppd"
Attribute "Product" "" "(HP Deskjet 540 Printer)"
}
@@ -20524,7 +20524,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 400"
Attribute "NickName" "" "HP Deskjet 400, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 400 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:hp deskjet 400;DES:hp deskjet 400;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:HP DeskJet 400;DES:HP DeskJet 400 Printer;"
PCFileName "hp-deskjet_400.ppd"
Attribute "Product" "" "(HP Deskjet 400 Printer)"
Attribute "Product" "" "(HP Deskjet 400 Color Capable Printer)"
@@ -20541,7 +20541,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Series 300"
Attribute "NickName" "" "HP Officejet Series 300, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Series 300 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet series 300;DES:officejet series 300;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet Series 300;DES:Hewlett-Packard OfficeJet Series 300;"
PCFileName "hp-officejet_series_300.ppd"
Attribute "Product" "" "(HP Officejet 300 All-in-one Printer)"
}
@@ -20674,7 +20674,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 630c"
Attribute "NickName" "" "HP Deskjet 630c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 630c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 630c;DES:deskjet 630c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 630C;DES:Hewlett-Packard DeskJet 630C;"
PCFileName "hp-deskjet_630c.ppd"
Attribute "Product" "" "(HP Deskjet 630c Printer)"
}
@@ -20690,7 +20690,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 656c"
Attribute "NickName" "" "HP Deskjet 656c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 656c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 656c;DES:deskjet 656c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 656C;DES:DESKJET 656C;"
PCFileName "hp-deskjet_656c.ppd"
Attribute "Product" "" "(HP Deskjet 656c Printer)"
Attribute "Product" "" "(HP Deskjet 656cvr Printer)"
@@ -20803,7 +20803,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 600"
Attribute "NickName" "" "HP Deskjet 600, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 600 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 600;DES:deskjet 600;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 600;DES:Hewlett-Packard DeskJet 600;"
PCFileName "hp-deskjet_600.ppd"
Attribute "Product" "" "(HP Deskjet 600c Printer)"
Attribute "Product" "" "(HP Deskjet 600 Printer)"
@@ -20843,7 +20843,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 670c"
Attribute "NickName" "" "HP Deskjet 670c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 670c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 670c;DES:deskjet 670c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 670C;DES:Hewlett-Packard DeskJet 670C;"
PCFileName "hp-deskjet_670c.ppd"
Attribute "Product" "" "(HP Deskjet 670c Printer)"
}
@@ -20915,7 +20915,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Series 600"
Attribute "NickName" "" "HP Officejet Series 600, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Series 600 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet series 600;DES:officejet series 600;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet Series 600;DES:officejet series 600;"
PCFileName "hp-officejet_series_600.ppd"
Attribute "Product" "" "(HP Officejet 600 All-in-one Printer)"
}
@@ -21060,7 +21060,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 610c"
Attribute "NickName" "" "HP Deskjet 610c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 610c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 610c;DES:deskjet 610c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 610C;DES:Hewlett-Packard DeskJet 610C;"
PCFileName "hp-deskjet_610c.ppd"
Attribute "Product" "" "(HP Deskjet 610c Printer)"
}
@@ -21084,7 +21084,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 640c"
Attribute "NickName" "" "HP Deskjet 640c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 640c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 640c;DES:deskjet 640c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 640C;DES:Hewlett-Packard DeskJet 640C;"
PCFileName "hp-deskjet_640c.ppd"
Attribute "Product" "" "(HP Deskjet 640c Lite Printer)"
Attribute "Product" "" "(HP Deskjet 640c Printer)"
@@ -21104,7 +21104,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 690c"
Attribute "NickName" "" "HP Deskjet 690c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 690c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 690c;DES:deskjet 690c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 690C;DES:Hewlett-Packard DeskJet 690C;"
PCFileName "hp-deskjet_690c.ppd"
Attribute "Product" "" "(HP Deskjet 690 Printer)"
Attribute "Product" "" "(HP Deskjet 690c Plus Printer)"
@@ -21156,7 +21156,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Series 700"
Attribute "NickName" "" "HP Officejet Series 700, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Series 700 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet series 700;DES:officejet series 700;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet Series 700;DES:officejet series 700;"
PCFileName "hp-officejet_series_700.ppd"
Attribute "Product" "" "(HP Officejet 700 All-in-one Printer)"
}
@@ -21307,7 +21307,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 812c"
Attribute "NickName" "" "HP Deskjet 812c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 812c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 812c;DES:deskjet 812c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 810C;DES:Hewlett-Packard DeskJet 810C;"
PCFileName "hp-deskjet_812c.ppd"
Attribute "Product" "" "(HP Deskjet 812c Printer)"
}
@@ -21315,7 +21315,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 815c"
Attribute "NickName" "" "HP Deskjet 815c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 815c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 815c;DES:deskjet 815c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 815C;DES:Hewlett-Packard DeskJet 815C;"
PCFileName "hp-deskjet_815c.ppd"
Attribute "Product" "" "(HP Deskjet 815c Printer)"
}
@@ -21347,7 +21347,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 840c"
Attribute "NickName" "" "HP Deskjet 840c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 840c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 840c;DES:deskjet 840c;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:DeskJet 840C;DES:deskjet 840c;"
PCFileName "hp-deskjet_840c.ppd"
Attribute "Product" "" "(HP Deskjet 840c Printer)"
}
@@ -21355,7 +21355,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 841c"
Attribute "NickName" "" "HP Deskjet 841c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 841c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 841c;DES:deskjet 841c;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:DeskJet 841C;DES:deskjet 841c;"
PCFileName "hp-deskjet_841c.ppd"
Attribute "Product" "" "(HP Deskjet 841c Printer)"
}
@@ -21371,7 +21371,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 843c"
Attribute "NickName" "" "HP Deskjet 843c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 843c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 843c;DES:deskjet 843c;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:DeskJet 843C;DES:deskjet 843c;"
PCFileName "hp-deskjet_843c.ppd"
Attribute "Product" "" "(HP Deskjet 843c Printer)"
Attribute "Product" "" "(HP Deskjet 843cxe Printer)"
@@ -21380,7 +21380,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 880c"
Attribute "NickName" "" "HP Deskjet 880c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 880c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 880c;DES:deskjet 880c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 880C;DES:Hewlett-Packard DeskJet 880C;"
PCFileName "hp-deskjet_880c.ppd"
Attribute "Product" "" "(HP Deskjet 880c Printer)"
}
@@ -21396,7 +21396,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 895c"
Attribute "NickName" "" "HP Deskjet 895c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 895c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 895c;DES:deskjet 895c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 895C;DES:Hewlett-Packard DeskJet 895C;"
PCFileName "hp-deskjet_895c.ppd"
Attribute "Product" "" "(HP Deskjet 895cse Printer)"
Attribute "Product" "" "(HP Deskjet 895c Printer)"
@@ -21406,7 +21406,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet r40"
Attribute "NickName" "" "HP Officejet r40, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet r40 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet r40;DES:officejet r40;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:OFFICEJET R40;DES:Hewlett-Packard OfficeJet R40;"
PCFileName "hp-officejet_r40.ppd"
Attribute "Product" "" "(HP Officejet r40 All-in-one Printer)"
}
@@ -21430,7 +21430,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet r60"
Attribute "NickName" "" "HP Officejet r60, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet r60 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet r60;DES:officejet r60;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:OFFICEJET R60;DES:Hewlett-Packard OfficeJet R60;"
PCFileName "hp-officejet_r60.ppd"
Attribute "Product" "" "(HP Officejet r60 All-in-one Printer)"
}
@@ -21438,7 +21438,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet r65"
Attribute "NickName" "" "HP Officejet r65, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet r65 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet r65;DES:officejet r65;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:OFFICEJET R65;DES:Hewlett-Packard OfficeJet R65;"
PCFileName "hp-officejet_r65.ppd"
Attribute "Product" "" "(HP Officejet r65 All-in-one Printer)"
}
@@ -21446,7 +21446,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet r80"
Attribute "NickName" "" "HP Officejet r80, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet r80 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet r80;DES:officejet r80;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:OFFICEJET R80;DES:Hewlett-Packard OfficeJet R80;"
PCFileName "hp-officejet_r80.ppd"
Attribute "Product" "" "(HP Officejet r80 All-in-one Printer)"
}
@@ -21462,7 +21462,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet T Series"
Attribute "NickName" "" "HP Officejet T Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet T Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet t series;DES:officejet t series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet T Series;DES:Hewlett-Packard OfficeJet T Series;"
PCFileName "hp-officejet_t_series.ppd"
Attribute "Product" "" "(HP Officejet t45 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet t45xi All-in-one Printer)"
@@ -21473,7 +21473,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP PSC 500"
Attribute "NickName" "" "HP PSC 500, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 500 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:psc 500;DES:psc 500;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:PSC 500;DES:Hewlett-Packard PSC 500;"
PCFileName "hp-psc_500.ppd"
Attribute "Product" "" "(HP PSC 500 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 500xi All-in-one Printer)"
@@ -21589,7 +21589,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 825c"
Attribute "NickName" "" "HP Deskjet 825c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 825c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 825c;DES:deskjet 825c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 825C;DES:Hewlett-Packard DeskJet 825C;"
PCFileName "hp-deskjet_825c.ppd"
Attribute "Product" "" "(HP Deskjet 825cvr Printer)"
Attribute "Product" "" "(HP Deskjet 825c Printer)"
@@ -21598,7 +21598,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 845c"
Attribute "NickName" "" "HP Deskjet 845c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 845c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 845c;DES:deskjet 845c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 845C;DES:Hewlett-Packard DeskJet 845C;"
PCFileName "hp-deskjet_845c.ppd"
Attribute "Product" "" "(HP Deskjet 845c Printer)"
Attribute "Product" "" "(HP Deskjet 845cvr Printer)"
@@ -21709,7 +21709,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 850c"
Attribute "NickName" "" "HP Deskjet 850c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 850c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 850c;DES:deskjet 850c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 850C;DES:Hewlett-Packard Deskjet 850C;"
PCFileName "hp-deskjet_850c.ppd"
Attribute "Product" "" "(HP Deskjet 850k Printer)"
Attribute "Product" "" "(HP Deskjet 850c Printer)"
@@ -21728,7 +21728,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 870c"
Attribute "NickName" "" "HP Deskjet 870c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 870c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 870c;DES:deskjet 870c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 870C;DES:Hewlett-Packard Deskjet 870C;"
PCFileName "hp-deskjet_870c.ppd"
Attribute "Product" "" "(HP Deskjet 870k Printer)"
Attribute "Product" "" "(HP Deskjet 870c Printer)"
@@ -21739,7 +21739,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Pro 1150c"
Attribute "NickName" "" "HP Officejet Pro 1150c, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Pro 1150c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet pro 1150c;DES:officejet pro 1150c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:OFFICEJET PRO 1150C;DES:Hewlett-Packard OfficeJet Pro 1150C;"
PCFileName "hp-officejet_pro_1150c.ppd"
Attribute "Product" "" "(HP Officejet Pro 1150c All-in-one Printer)"
Attribute "Product" "" "(HP Officejet Pro 1150cse All-in-one Printer)"
@@ -21853,7 +21853,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 890c"
Attribute "NickName" "" "HP Deskjet 890c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 890c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 890c;DES:deskjet 890c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 890C;DES:Hewlett-Packard Deskjet 890C;"
PCFileName "hp-deskjet_890c.ppd"
Attribute "Product" "" "(HP Deskjet 890cse Printer)"
Attribute "Product" "" "(HP Deskjet 890c Printer)"
@@ -21862,7 +21862,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Pro 1170c Series"
Attribute "NickName" "" "HP Officejet Pro 1170c Series, hpcups $Version"
Attribute "ShortNickName" "" "HP OJ Pro 1170c Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet pro 1170c series;DES:officejet pro 1170c series;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:OFFICEJET PRO 1170C SERIES;DES:Hewlett-Packard OfficeJet Pro 1170C Series;"
PCFileName "hp-officejet_pro_1170c_series.ppd"
Attribute "Product" "" "(HP Officejet Pro 1170c All-in-one Printer)"
Attribute "Product" "" "(HP Officejet Pro 1170cse All-in-one Printer)"

View File

@ -0,0 +1,11 @@
diff -up hplip-3.14.10/prnt/ps/hp-lj_300_400_color_m351_m451-ps.ppd.gz-deviceid hplip-3.14.10/prnt/ps/hp-lj_300_400_color_m351_m451-ps.ppd
--- hplip-3.14.10/prnt/ps/hp-lj_300_400_color_m351_m451-ps.ppd.gz-deviceid 2014-11-04 09:41:13.200005393 +0000
+++ hplip-3.14.10/prnt/ps/hp-lj_300_400_color_m351_m451-ps.ppd 2014-11-04 09:42:13.168312042 +0000
@@ -82,6 +82,7 @@
*cupsManualCopies: False
*cupsLanguages: "en da de es fi fr it ja ko nb nl pt ru sv zh_CN zh_TW"
*cupsFilter: "application/vnd.cups-postscript 0 hpps"
+*1284DeviceID: "MFG:Hewlett-Packard;MDL:HP LaserJet 400 color M451dn;DES:HP LaserJet 400 color M451dn;"
*UIConstraints: *HPOption_Duplexer False *Duplex
*UIConstraints: *Duplex *HPOption_Duplexer False
*UIConstraints: *HPOption_Tray3 False *InputSlot Tray3

View File

@ -0,0 +1,34 @@
diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
index c23957a..48b248f 100644
--- a/ui5/devmgr5.py
+++ b/ui5/devmgr5.py
@@ -2247,7 +2247,7 @@ class PasswordDialog(QDialog):
self.prompt = prompt
Layout= QGridLayout(self)
- Layout.setMargin(11)
+ Layout.setContentsMargins(11, 11, 11, 11)
Layout.setSpacing(6)
self.PromptTextLabel = QLabel(self)
@@ -2300,14 +2300,15 @@ class PasswordDialog(QDialog):
# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
def showPasswordUI(prompt):
+ dlg = None
+
try:
dlg = PasswordDialog(prompt, None)
+ except Exception as e:
+ log.error('Unable to open password dialog due following error:\n {}'.format(e))
- if dlg.exec_() == QDialog.Accepted:
- return (dlg.getUsername(), dlg.getPassword())
-
- finally:
- pass
+ if dlg and dlg.exec_() == QDialog.Accepted:
+ return (dlg.getUsername(), dlg.getPassword())
return ("", "")

View File

@ -0,0 +1,15 @@
diff -up hplip-3.14.10/prnt/drv/hpcups.drv.in.dj990c-margin hplip-3.14.10/prnt/drv/hpcups.drv.in
--- hplip-3.14.10/prnt/drv/hpcups.drv.in.dj990c-margin 2014-12-23 15:55:09.779368939 +0000
+++ hplip-3.14.10/prnt/drv/hpcups.drv.in 2014-12-23 15:55:24.488454126 +0000
@@ -1531,9 +1531,9 @@ Manufacturer "HP"
"<</cupsInteger0 2/PageSize[612 792]/ImagingBBox null>>setpagedevice"
CustomMedia "Letter.Duplex/Letter AutoDuplex 8.5x11in" 612 783 18 27 18 36 "<</cupsInteger0 2/PageSize[612 783]/ImagingBBox null>>setpagedevice"
"<</cupsInteger0 2/PageSize[612 783]/ImagingBBox null>>setpagedevice"
- CustomMedia "A4/A4 210x297mm" 595.44 841.68 18 36.00 18 9.00 "<</cupsInteger0 26/PageSize[595.44 841.68]/ImagingBBox null>>setpagedevice"
+ CustomMedia "A4/A4 210x297mm" 595.44 841.68 9 36.00 9 9.00 "<</cupsInteger0 26/PageSize[595.44 841.68]/ImagingBBox null>>setpagedevice"
"<</cupsInteger0 26/PageSize[595.44 841.68]/ImagingBBox null>>setpagedevice"
- CustomMedia "A4.Duplex/A4 AutoDuplex 210x297mm" 595 833 18 27 18 36 "<</cupsInteger0 26/PageSize[595 833]/ImagingBBox null>>setpagedevice"
+ CustomMedia "A4.Duplex/A4 AutoDuplex 210x297mm" 595 833 9 27 9 36 "<</cupsInteger0 26/PageSize[595 833]/ImagingBBox null>>setpagedevice"
"<</cupsInteger0 26/PageSize[595 833]/ImagingBBox null>>setpagedevice"
CustomMedia "ExecutiveJIS/Executive (JIS) 8.5x12.986in" 612 936 18 36 18 9 "<</cupsInteger0 10/PageSize[612 936]/ImagingBBox null>>setpagedevice"
"<</cupsInteger0 10/PageSize[612 936]/ImagingBBox null>>setpagedevice"

View File

@ -0,0 +1,78 @@
commit 4c913b68d8f8a79e11e247a8f7086f779f2685d4
Author: Tomas Korbar <tkorbar@redhat.com>
Date: Tue Sep 18 16:17:06 2018 +0200
Fix TypeError
- 1564770 - TypeError: 'Error' object does not support indexing
diff --git a/clean.py b/clean.py
index 3d41f04..3a7248e 100755
--- a/clean.py
+++ b/clean.py
@@ -182,7 +182,7 @@ try:
log.error("Cleaning not needed or supported on this device.")
except Error as e:
- log.error("An error occured: %s" % e[0])
+ log.error("An error occured: %s" % e.msg)
else:
log.error("Device is busy or in an error state. Please check device and try again.")
diff --git a/ui/scrollunload.py b/ui/scrollunload.py
index fdb48e8..345ed82 100644
--- a/ui/scrollunload.py
+++ b/ui/scrollunload.py
@@ -120,7 +120,7 @@ class ScrollUnloadView(ScrollView):
self.pc = photocard.PhotoCard(None, self.cur_device.device_uri, self.cur_printer)
except Error as e:
QApplication.restoreOverrideCursor()
- self.form.FailureUI(self.__tr("An error occured: %s" % e[0]))
+ self.form.FailureUI(self.__tr("An error occured: %s" % e.msg))
self.cleanup(EVENT_PCARD_UNABLE_TO_MOUNT)
return False
diff --git a/ui4/wifisetupdialog.py b/ui4/wifisetupdialog.py
index 9fd1786..4d36f83 100644
--- a/ui4/wifisetupdialog.py
+++ b/ui4/wifisetupdialog.py
@@ -256,7 +256,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog):
try:
self.dev = device.Device(self.device_uri)
except Error as e:
- FailureUI(self, self.__tr("<b>Error opening device:</b><p>%s</p><p>(%s)</p>") %(self.device_uri, QString(e[0])))
+ FailureUI(self, self.__tr("<b>Error opening device:</b><p>%s</p><p>(%s)</p>") %(self.device_uri, QString(e.msg)))
if self.dev is not None:
self.dev.close()
@@ -834,7 +834,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog):
def showIOError(self, e):
- FailureUI(self, self.__tr("<b>An I/O error occurred.</b><p>Please check the USB connection to your printer and try again.</p>(%s)" % QString(e[0])))
+ FailureUI(self, self.__tr("<b>An I/O error occurred.</b><p>Please check the USB connection to your printer and try again.</p>(%s)" % QString(e.msg)))
if self.dev is not None:
self.dev.close()
diff --git a/ui5/wifisetupdialog.py b/ui5/wifisetupdialog.py
index e0c7aee..74cc0ef 100644
--- a/ui5/wifisetupdialog.py
+++ b/ui5/wifisetupdialog.py
@@ -259,7 +259,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog):
try:
self.dev = device.Device(self.device_uri)
except Error as e:
- FailureUI(self, self.__tr("<b>Error opening device:</b><p>%s</p><p>(%s)</p>") %(self.device_uri, str(e[0])))
+ FailureUI(self, self.__tr("<b>Error opening device:</b><p>%s</p><p>(%s)</p>") %(self.device_uri, str(e.msg)))
if self.dev is not None:
self.dev.close()
@@ -840,7 +840,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog):
def showIOError(self, e):
- FailureUI(self, self.__tr("<b>An I/O error occurred.</b><p>Please check the USB connection to your printer and try again.</p>(%s)" % str(e[0])))
+ FailureUI(self, self.__tr("<b>An I/O error occurred.</b><p>Please check the USB connection to your printer and try again.</p>(%s)" % str(e.msg)))
if self.dev is not None:
self.dev.close()

View File

@ -0,0 +1,13 @@
diff --git a/ui5/fabwindow.py b/ui5/fabwindow.py
index 0b95c94..631727c 100644
--- a/ui5/fabwindow.py
+++ b/ui5/fabwindow.py
@@ -518,7 +518,7 @@ class FABWindow(QMainWindow, Ui_MainWindow):
self.__tr("Import fax addresses from LDIF or vCard"),
#user_conf.workingDirectory(),
self.user_settings.working_dir,
- "vCard (*.vcf);;LDIF (*.ldif *.ldi)"))
+ "vCard (*.vcf);;LDIF (*.ldif *.ldi)")[0])
if result:
working_directory = to_unicode(os.path.dirname(result))

View File

@ -0,0 +1,163 @@
diff --git a/prnt/cups.py b/prnt/cups.py
index a9f410a..3783a60 100644
--- a/prnt/cups.py
+++ b/prnt/cups.py
@@ -489,78 +489,77 @@ def getPPDFile2(mq,model, ppds): # New PPD find
#Check if common ppd name is already given in models.dat(This is needed because in case of devices having more than one derivatives
#will have diffrent model name strings in device ID, because of which we don't get the common ppd name for search)
family_check=isfamilydrv(ppds)
- family_class=getFamilyClassName(model)
+
model = models.normalizeModelName(model)
- if family_check==0:
- ppd_name = mq.get('ppd-name',0)
- else:
- ppd_name = mq.get('family-ppd',0)
- if ppd_name == 0:
- stripped_model = stripModel2(model)
- else:
- stripped_model = stripModel2(ppd_name)
+ ppd_name = mq.get('{}'.format('family-ppd' if family_check else 'ppd-name'), 0)
+
+ stripped_model = stripModel2(ppd_name) if ppd_name else stripModel2(model)
+
+ wanted_model = getFamilyClassName(model) if family_check else stripped_model
log.debug("Matching PPD list to model %s..." % stripped_model)
matches = []
- if family_check ==0 :
- for f in ppds:
- match = ppd_pat.match(f)
- if match is not None:
- if match.group(1) == stripped_model:
- log.debug("Found match: %s" % f)
- try:
- pdls = match.group(2).split('-')
- except AttributeError:
- pdls = []
- if (prop.hpcups_build and 'hpijs' not in f) or \
- ((prop.hpijs_build and 'hpijs' in pdls) or (prop.hpcups_build and 'hpijs' not in pdls)) or \
- ('ps' in pdls) or ('pdf' in pdls):
- matches.append((f, [p for p in pdls if p and p != 'hpijs']))
- else:
- for f in ppds:
- match = ppd_pat1.match(f)
- if match is not None:
- if match.group(1) == family_class:
- log.debug("Found match: %s" % f)
- try:
- pdls = match.group(2).split('-')
- except AttributeError:
- pdls = []
- if (prop.hpcups_build and 'hpijs' not in f) or \
- ((prop.hpijs_build and 'hpijs' in pdls) or (prop.hpcups_build and 'hpijs' not in pdls)) or \
- ('ps' in pdls) or ('pdf' in pdls):
- matches.append((f, [p for p in pdls if p and p != 'hpijs']))
- log.debug(matches)
- num_matches = len(matches)
+ for f in ppds:
+ # ignore foomatic and gutenprint drivers
+ if 'foomatic' in f or 'gutenprint' in f:
+ continue
+
+ # see if driver type is in driver name
+ driver_types = []
+ if 'hpcups' in f:
+ driver_types.append('hpcups')
+ if 'hpijs' in f:
+ driver_types.append('hpijs')
+
+
+ ppd_filename = f.rsplit('/', 1)[1].split('.')[0].replace('hp-', '')
+
+ if not ppd_filename:
+ continue
+
+ # we need to sanitize the end of filename - there can be a driver type (-hpijs, -hpcups),
+ # pdl name (-zjstream, -pdf, -ps etc.) or the device can just have '-' in their name
+ # (HP Photosmart Premium C309g-m).
+ # So if we don't know the name after '-', take it as part of device name.
+ # If we know them either like driver type of PDL, remove the string from ppd name
+ # so we can compare it with stripped model
+ pdl_candidates = []
+ pdl_candidates = ppd_filename.split('-')[1:]
+
+ pdls = []
+ ppd_model = ppd_filename
+
+ for pdl in pdl_candidates:
+ if pdl in ['hpijs', 'hpcups']:
+ ppd_model=ppd_model.replace('-{}'.format(pdl), '')
+ continue
- if num_matches == 0:
- log.debug("No PPD found for model %s using new algorithm. Trying old algorithm..." % stripped_model)
- #Using Old algo, ignores the series keyword in ppd searching.
- matches2 = list(getPPDFile(stripModel(stripped_model), ppds).items())
- log.debug(matches2)
- num_matches2 = len(matches2)
- if num_matches2:
- for f, d in matches2:
- match = ppd_pat.match(f)
- if match is not None:
- log.debug("Found match: %s" % f)
- try:
- pdls = match.group(2).split('-')
- except AttributeError:
- pdls = []
+ if not models.PDL_TYPES.get(pdl):
+ log.debug('Unknown PDL named \'{}\' - can be a new PDL or '
+ 'just a part of device name. Assume it is '
+ 'a part of device name.'.format(pdl))
+ else:
+ pdls.append(pdl)
+ ppd_model=ppd_model.replace('-{}'.format(pdl), '')
+
+ if ppd_model != wanted_model and ppd_model != '{}_series'.format(wanted_model):
+ continue
+
+ log.debug("Found match: %s" % f)
- if (prop.hpcups_build and 'hpijs' not in f) or \
- ((prop.hpijs_build and 'hpijs' in pdls) or (prop.hpcups_build and 'hpijs' not in pdls)) or \
- ('ps' in pdls) or ('pdf' in pdls):
- matches.append((f, [p for p in pdls if p and p != 'hpijs']))
+ if (prop.hpcups_build and 'hpijs' not in f) or \
+ ((prop.hpijs_build and 'hpijs' in driver_types) or (prop.hpcups_build and 'hpijs' not in driver_types)) or \
+ ('ps' in pdls) or ('pdf' in pdls):
+ matches.append((f, pdls, [d for d in driver_types if d and d != 'hpijs']))
- log.debug(matches)
- num_matches = len(matches)
+
+ log.debug(matches)
+ num_matches = len(matches)
if num_matches == 0:
- log.error("No PPD found for model %s using old algorithm." % stripModel(stripped_model))
+ log.error("No PPD found for model %s." % stripModel(stripped_model))
return None
elif num_matches == 1:
@@ -570,7 +569,7 @@ def getPPDFile2(mq,model, ppds): # New PPD find
# > 1
log.debug("%d matches found. Searching based on PDL: Host > PS,PDF > PCL/Other" % num_matches)
for p in [models.PDL_TYPE_HOST, models.PDL_TYPE_PS,models.PDL_TYPE_PDF, models.PDL_TYPE_PCL]:
- for f, pdl_list in matches:
+ for f, pdl_list, driver_list in matches:
for x in pdl_list:
# default to HOST-based PDLs, as newly supported PDLs will most likely be of this type
if models.PDL_TYPES.get(x, models.PDL_TYPE_HOST) == p:
@@ -579,8 +578,8 @@ def getPPDFile2(mq,model, ppds): # New PPD find
log.debug("%d matches found. Searching based on Filters: HPCUPS > HPIJS" % num_matches)
for p in ["hpcups","hpijs"]:
- for f, pdl_list in matches:
- if p in f:
+ for f, pdl_list, driver_list in matches:
+ if p in driver_list:
log.debug("Selecting PPD: %s" % (f))
return (f, '')

View File

@ -0,0 +1,111 @@
--- hplip-3.20.3/prnt/hpps/hppsfilter.c.orig 2020-03-25 01:09:51.585129957 +0000
+++ hplip-3.20.3/prnt/hpps/hppsfilter.c 2020-03-25 01:10:15.610058293 +0000
@@ -104,7 +104,7 @@ static void open_tempbookletfile(char *m
if(ptempbooklet_file == NULL)
{
fprintf(stderr, "ERROR: Unable to open temp file %s\n", temp_filename);
- return 1;
+ return;
}
chmod(temp_filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
--- hplip-3.20.3/scan/sane/hpaio.c.orig 2020-03-25 01:24:15.558732638 +0000
+++ hplip-3.20.3/scan/sane/hpaio.c 2020-03-25 02:48:36.097054366 +0000
@@ -406,20 +406,34 @@ extern SANE_Status sane_hpaio_open(SANE_
extern void sane_hpaio_close(SANE_Handle handle)
{
- if (strcmp(*((char **)handle), "MARVELL") == 0)
- return marvell_close(handle);
- if (strcmp(*((char **)handle), "SOAP") == 0)
- return soap_close(handle);
- if (strcmp(*((char **)handle), "SOAPHT") == 0)
- return soapht_close(handle);
- if (strcmp(*((char **)handle), "LEDM") == 0)
- return ledm_close(handle);
- if (strcmp(*((char **)handle), "SCL-PML") == 0)
- return sclpml_close(handle);
- if (strcmp(*((char **)handle), "ESCL") == 0)
- return escl_close(handle);
- if (strcmp(*((char **)handle), "ORBLITE") == 0)
- return orblite_close(handle);
+ if (strcmp(*((char **)handle), "MARVELL") == 0) {
+ marvell_close(handle);
+ return;
+ }
+ if (strcmp(*((char **)handle), "SOAP") == 0) {
+ soap_close(handle);
+ return;
+ }
+ if (strcmp(*((char **)handle), "SOAPHT") == 0) {
+ soapht_close(handle);
+ return;
+ }
+ if (strcmp(*((char **)handle), "LEDM") == 0) {
+ ledm_close(handle);
+ return;
+ }
+ if (strcmp(*((char **)handle), "SCL-PML") == 0) {
+ sclpml_close(handle);
+ return;
+ }
+ if (strcmp(*((char **)handle), "ESCL") == 0) {
+ escl_close(handle);
+ return;
+ }
+ if (strcmp(*((char **)handle), "ORBLITE") == 0) {
+ orblite_close(handle);
+ return;
+ }
} /* sane_hpaio_close() */
extern const SANE_Option_Descriptor * sane_hpaio_get_option_descriptor(SANE_Handle handle, SANE_Int option)
@@ -539,20 +553,34 @@ extern SANE_Status sane_hpaio_read(SANE_
/* Note, sane_cancel is called normally not just during IO abort situations. */
extern void sane_hpaio_cancel( SANE_Handle handle )
{
- if (strcmp(*((char **)handle), "MARVELL") == 0)
- return marvell_cancel(handle);
- if (strcmp(*((char **)handle), "SOAP") == 0)
- return soap_cancel(handle);
- if (strcmp(*((char **)handle), "SOAPHT") == 0)
- return soapht_cancel(handle);
- if (strcmp(*((char **)handle), "LEDM") == 0)
- return ledm_cancel(handle);
- if (strcmp(*((char **)handle), "SCL-PML") == 0)
- return sclpml_cancel(handle);
- if (strcmp(*((char **)handle), "ESCL") == 0)
- return escl_cancel(handle);
- if (strcmp(*((char **)handle), "ORBLITE") == 0)
- return orblite_cancel(handle);
+ if (strcmp(*((char **)handle), "MARVELL") == 0) {
+ marvell_cancel(handle);
+ return;
+ }
+ if (strcmp(*((char **)handle), "SOAP") == 0) {
+ soap_cancel(handle);
+ return;
+ }
+ if (strcmp(*((char **)handle), "SOAPHT") == 0) {
+ soapht_cancel(handle);
+ return;
+ }
+ if (strcmp(*((char **)handle), "LEDM") == 0) {
+ ledm_cancel(handle);
+ return;
+ }
+ if (strcmp(*((char **)handle), "SCL-PML") == 0) {
+ sclpml_cancel(handle);
+ return;
+ }
+ if (strcmp(*((char **)handle), "ESCL") == 0) {
+ escl_cancel(handle);
+ return;
+ }
+ if (strcmp(*((char **)handle), "ORBLITE") == 0) {
+ orblite_cancel(handle);
+ return;
+ }
} /* sane_hpaio_cancel() */
extern SANE_Status sane_hpaio_set_io_mode(SANE_Handle handle, SANE_Bool nonBlocking)

View File

@ -0,0 +1,13 @@
diff --git a/prnt/hpcups/Compressor.cpp b/prnt/hpcups/Compressor.cpp
index 7fbbcd0..a29955e 100644
--- a/prnt/hpcups/Compressor.cpp
+++ b/prnt/hpcups/Compressor.cpp
@@ -29,7 +29,7 @@
\*****************************************************************************/
#include "Compressor.h"
-Compressor::Compressor (unsigned int RasterSize, bool useseed) : SeedRow(NULL), UseSeedRow(useseed), inputsize(RasterSize), seeded(false)
+Compressor::Compressor (unsigned int RasterSize, bool useseed) : SeedRow(NULL), compressBuf(NULL), UseSeedRow(useseed), inputsize(RasterSize), seeded(false)
{
constructor_error = NO_ERROR;
iRastersReady = 0;

View File

@ -0,0 +1,29 @@
diff -up hplip-3.9.8/prnt/hpijs/services.cpp.hpcups-sigpipe hplip-3.9.8/prnt/hpijs/services.cpp
--- hplip-3.9.8/prnt/hpijs/services.cpp.hpcups-sigpipe 2009-08-04 22:35:41.000000000 +0100
+++ hplip-3.9.8/prnt/hpijs/services.cpp 2009-10-29 11:56:23.015022337 +0000
@@ -29,6 +29,7 @@
POSSIBILITY OF SUCH DAMAGE.
\*****************************************************************************/
+#include <errno.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
@@ -382,8 +383,16 @@ DRIVER_ERROR UXServices::ToDevice(const
if (write(OutputPath, pBuffer, *Count) != (ssize_t)*Count)
{
static int cnt=0;
- if (cnt++ < 5)
+ if (cnt < 5)
+ {
+ cnt++;
BUG("unable to write to output, fd=%d, count=%d: %m\n", OutputPath, *Count);
+ }
+
+ if (errno == EPIPE)
+ /* The backend has exited. There's no recovering from that. */
+ exit (1);
+
return IO_ERROR;
}

View File

@ -0,0 +1,13 @@
diff --git a/fax/backend/hpfax.py b/fax/backend/hpfax.py
index a63051d..3e187c9 100755
--- a/fax/backend/hpfax.py
+++ b/fax/backend/hpfax.py
@@ -89,7 +89,7 @@ try:
from base import utils
#from prnt import cups
except ImportError as e:
- bug("Error importing HPLIP modules: %s\n" % (pid, e))
+ bug("Error importing HPLIP modules: %s\n" % (e))
sys.exit(1)
def handle_sigpipe():

View File

@ -0,0 +1,31 @@
diff -up hplip-3.10.9/prnt/hpijs/hpijs.cpp.hpijs-marker-supply hplip-3.10.9/prnt/hpijs/hpijs.cpp
--- hplip-3.10.9/prnt/hpijs/hpijs.cpp.hpijs-marker-supply 2010-10-18 16:58:23.882993673 +0100
+++ hplip-3.10.9/prnt/hpijs/hpijs.cpp 2010-10-18 17:00:00.510869032 +0100
@@ -585,6 +585,7 @@ int main (int argc, char *argv[], char *
char *raster = NULL, *k_raster = NULL;
int status = EXIT_FAILURE;
int ret, n, i, kn=0, width, k_width;
+ int low_marker = 0;
char user_name[32]={0,};
openlog("hpijs", LOG_PID, LOG_DAEMON);
@@ -666,14 +667,17 @@ int main (int argc, char *argv[], char *
case WARN_LOW_INK_YELLOW:
case WARN_LOW_INK_MULTIPLE_PENS:
{
- fputs("STATE: +marker-supply-low-warning\n", stderr);
+ low_marker = 1;
break;
}
default:
- fputs("STATE: +marker-supply-low-warning\n", stderr);
+ low_marker = 1;
}
}
+ fprintf(stderr, "STATE: %cmarker-supply-low-warning\n",
+ low_marker ? '+' : '-');
+
#if 0
BUG("device model=%s\n", pSS->pPC->PrinterModel());
BUG("device class=%s\n", pSS->pPC->PrintertypeToString(pSS->pPC->SelectedDevice()));

View File

@ -0,0 +1,21 @@
diff --git a/scan/scanext/scanext.c b/scan/scanext/scanext.c
index ff57987..f607220 100755
--- a/scan/scanext/scanext.c
+++ b/scan/scanext/scanext.c
@@ -407,16 +407,6 @@ static PyObject *setOption (_ScanDevice * self, PyObject * args)
int n;
multipick = 1;
-if(1)
-{
-SANE_Bool b = SANE_TRUE;
- sane_control_option (self->h, 9, SANE_ACTION_SET_VALUE, (void *)&b, &i);
-}
-else
-{
-SANE_Bool b = SANE_FALSE;
- sane_control_option (self->h, 9, SANE_ACTION_SET_VALUE, (void *)&b, &i);
-}
if (!PyArg_ParseTuple (args, "iO", &n, &value))
raiseError("Invalid arguments.");

View File

@ -0,0 +1,16 @@
diff --git a/io/hpmud/model.c b/io/hpmud/model.c
index 4ea8990..72c630b 100644
--- a/io/hpmud/model.c
+++ b/io/hpmud/model.c
@@ -420,7 +420,10 @@ static int ParseFile(char *datFile, char *model, char *attr, int attrSize, int *
strncpy(section, rcbuf+1, sizeof(section)); /* found new section */
n = strlen(section);
section[n-2]=0; /* remove ']' and CR */
- if (strcasecmp(model, section) == 0)
+ if (strcasecmp(model, section) == 0 ||
+ (section[0] == 'h' && section[1] == 'p' &&
+ section[2] == '_' &&
+ strcasecmp(model, section + 3) == 0))
{
/* Found model match. */
*bytes_read = ResolveAttributes(fp, attr, attrSize);

View File

@ -0,0 +1,48 @@
diff --git a/setup.py b/setup.py
index 5d48aaa..88e663f 100755
--- a/setup.py
+++ b/setup.py
@@ -399,9 +399,19 @@ else: # INTERACTIVE_MODE
#log.warning("Cannot setup fax - device does not have fax feature.")
setup_fax = False
+ norm_model = models.normalizeModelName(model).lower()
+
+ # get out if the found model is standalone scanner, hp-setup is printer/fax setup tool
+ if 'scanjet' in norm_model:
+ log.error('The device {} is a standalone scanner. '
+ 'hp-setup is a printer/MFD setup tool, '
+ 'not scanner installation tool. '.format(model))
+ log.info(log.bold('Scanners do not need a installation, but they may '
+ 'require a binary plugin (install by \'hp-plugin -i\').'))
+ clean_exit(1)
+
# ******************************* PLUGIN
- norm_model = models.normalizeModelName(model).lower()
plugin = mq.get('plugin', PLUGIN_NONE)
if ignore_plugin_check is False and plugin > PLUGIN_NONE:
diff --git a/ui5/setupdialog.py b/ui5/setupdialog.py
index c6f234b..a5041c1 100644
--- a/ui5/setupdialog.py
+++ b/ui5/setupdialog.py
@@ -1326,6 +1326,18 @@ class SetupDialog(QDialog, Ui_Dialog):
self.mq = device.queryModelByURI(self.device_uri)
back_end, is_hp, bus, model, serial, dev_file, host, zc, port = device.parseDeviceURI(self.device_uri)
self.model = models.normalizeModelName(model).lower()
+ if 'scanjet' in self.model:
+ FailureUI(self,
+ self.__tr('<b>The device {} is a standalone '
+ 'scanner.</b> <p>\'hp-setup\' is a tool '
+ 'for installing printers and multifunction '
+ 'devices. Scanners supported by HPLIP '
+ 'work out-of-the-box after HPLIP installation, '
+ 'or they may require a binary plugin, which you '
+ 'can install by \'hp-plugin -i\'.</p>'.format(model)))
+ self.displayPage(PAGE_DEVICES)
+ return
+
self.showAddPrinterPage()
elif p == PAGE_ADD_PRINTER:

View File

@ -0,0 +1,60 @@
diff -up hplip-3.20.3/base/tui.py.keyserver hplip-3.20.3/base/tui.py
--- hplip-3.20.3/base/tui.py.keyserver 2020-03-10 09:01:53.000000000 +0100
+++ hplip-3.20.3/base/tui.py 2020-04-07 08:44:44.319710001 +0200
@@ -241,6 +241,7 @@ class ProgressMeter(object):
sys.stdout.write(y)
sys.stdout.flush()
+ sys.stdout.write('\n')
self.prev_length = len(y)
self.spinner_pos = (self.spinner_pos + 1) % 8
diff -up hplip-3.20.3/base/validation.py.keyserver hplip-3.20.3/base/validation.py
--- hplip-3.20.3/base/validation.py.keyserver 2020-03-10 09:01:53.000000000 +0100
+++ hplip-3.20.3/base/validation.py 2020-04-07 08:45:46.657132415 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# (c) Copyright 2015 HP Development Company, L.P.
@@ -42,8 +42,11 @@ class DigiSign_Verification(object):
class GPG_Verification(DigiSign_Verification):
- def __init__(self, pgp_site = 'pgp.mit.edu', key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9):
- self.__pgp_site = pgp_site
+ def __init__(self, keyservers = ['pool.sks-keyservers.net',
+ 'keyserver.ubuntu.com',
+ 'sks-keyservers.net', 'pgp.mit.edu'],
+ key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9):
+ self.__keyservers = keyservers
self.__key = key
self.__gpg = utils.which('gpg',True)
@@ -82,13 +85,18 @@ class GPG_Verification(DigiSign_Verifica
def __acquire_gpg_key(self):
-
- cmd = '%s --homedir %s --no-permission-warning --keyserver %s --recv-keys 0x%X' \
- % (self.__gpg, self.__gpg_dir, self.__pgp_site, self.__key)
-
- log.info("Receiving digital keys: %s" % cmd)
- status, output = utils.run(cmd)
- log.debug(output)
+ for kserver in self.__keyservers:
+ cmd = '%s --homedir %s --no-permission-warning --keyserver %s --recv-keys 0x%X' \
+ % (self.__gpg, self.__gpg_dir, kserver, self.__key)
+
+ log.info("Receiving digital keys: %s" % cmd)
+ status, output = utils.run(cmd)
+ log.debug(output)
+
+ if not status:
+ break
+ log.info("Receiving keys from {} failed, trying the next keyserver."
+ .format(kserver))
self.__change_owner(True)

View File

@ -0,0 +1,37 @@
diff -up hplip-3.15.2/fax/backend/hpfax.py.log-stderr hplip-3.15.2/fax/backend/hpfax.py
--- hplip-3.15.2/fax/backend/hpfax.py.log-stderr 2015-01-29 13:20:35.000000000 +0100
+++ hplip-3.15.2/fax/backend/hpfax.py 2015-02-04 15:40:48.360972449 +0100
@@ -55,7 +55,10 @@ home_dir = ''
def bug(msg):
syslog.syslog("hpfax[%d]: error: %s\n" % (pid, msg))
- log.stderr("ERROR: %s\n" % msg)
+ try:
+ log.stderr("ERROR: %s" % msg)
+ except NameError:
+ sys.stderr.write("ERROR: %s\n" % msg)
if os.path.exists(config_file):
diff -up hplip-3.15.2/prnt/filters/hpps.log-stderr hplip-3.15.2/prnt/filters/hpps
--- hplip-3.15.2/prnt/filters/hpps.log-stderr 2015-02-04 15:40:48.360972449 +0100
+++ hplip-3.15.2/prnt/filters/hpps 2015-02-04 15:43:14.796878364 +0100
@@ -53,10 +53,16 @@ home_dir = ''
def bug(m):
- log.stderr("ERROR: %s" % m)
+ try:
+ log.stderr("ERROR: %s" % m)
+ except NameError:
+ sys.stderr.write("ERROR: %s\n" % m)
def msg(m):
- log.stderr("INFO: %s" % m)
+ try:
+ log.stderr("INFO: %s" % msg)
+ except NameError:
+ sys.stderr.write("INFO: %s\n" % msg)
if os.path.exists(config_file):
config = configparser.ConfigParser()

View File

@ -0,0 +1,24 @@
diff -up hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp.logdir hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp
--- hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp.logdir 2021-02-19 07:46:48.334843864 +0100
+++ hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp 2021-02-19 07:48:18.052963216 +0100
@@ -656,7 +656,7 @@ int HPCupsFilter::processRasterData(cups
char hpPreProcessedRasterFile[MAX_FILE_PATH_LEN]; //temp file needed to store raster data with swaped pages.
- sprintf(hpPreProcessedRasterFile, "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
+ snprintf(hpPreProcessedRasterFile, sizeof (hpPreProcessedRasterFile), "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
image_processor_t* imageProcessor=NULL;
IMAGE_PROCESSOR_ERROR result;
diff -up hplip-3.21.2/prnt/hpcups/SystemServices.cpp.logdir hplip-3.21.2/prnt/hpcups/SystemServices.cpp
--- hplip-3.21.2/prnt/hpcups/SystemServices.cpp.logdir 2021-02-15 00:55:21.000000000 +0100
+++ hplip-3.21.2/prnt/hpcups/SystemServices.cpp 2021-02-19 07:46:48.334843864 +0100
@@ -38,7 +38,7 @@ SystemServices::SystemServices(int iLogL
if (iLogLevel & SAVE_OUT_FILE)
{
char fname[MAX_FILE_PATH_LEN];
- sprintf(fname, "%s/hpcups_%s_out_job%d_XXXXXX",CUPS_TMP_DIR, user_name, job_id);
+ snprintf(fname, sizeof(fname), "%s/hpcups_%s_out_job%d_XXXXXX",CUPS_TMP_DIR, user_name, job_id);
createTempFile(fname, &m_fp);
if (m_fp)
{

View File

@ -0,0 +1,13 @@
diff --git a/io/hpmud/musb.c b/io/hpmud/musb.c
index 755493e..6d9c7fc 100644
--- a/io/hpmud/musb.c
+++ b/io/hpmud/musb.c
@@ -1454,7 +1454,7 @@ enum HPMUD_RESULT __attribute__ ((visibility ("hidden"))) musb_raw_channel_write
BUG("unable to write data %s: %d second io timeout\n", msp->device[pc->dindex].uri, sec_timeout);
}
else
- BUG("unable to write data (len = %d) %s: %m\n", msp->device[pc->dindex].uri, len);
+ BUG("unable to write data (len = %d) %s: %m\n", len, msp->device[pc->dindex].uri);
goto bugout;
}
if(len == 0 && size > 0)

View File

@ -0,0 +1,15 @@
diff --git a/data/models/models.dat b/data/models/models.dat
index 4b21c1a..76c4cc0 100644
--- a/data/models/models.dat
+++ b/data/models/models.dat
@@ -64063,8 +64063,8 @@ model11=HP Color LaserJet Pro MFP M280c2
monitor-type=0
panel-check-type=0
pcard-type=0
-plugin=0
-plugin-reason=0
+plugin=1
+plugin-reason=64
power-settings=0
ppd-name=hp-color_laserjet_mfp_m278-m281-ps.ppd
family-ppd=hp-postscript-laserjet-pro.ppd

View File

@ -0,0 +1,602 @@
diff -up hplip-3.20.6/cups_drv.inc.missing-drivers hplip-3.20.6/cups_drv.inc
--- hplip-3.20.6/cups_drv.inc.missing-drivers 2020-06-09 13:23:14.000000000 +0200
+++ hplip-3.20.6/cups_drv.inc 2020-06-17 13:49:39.110952720 +0200
@@ -407,6 +407,7 @@ cups_ppd_printers = \
ppd/hpcups/hp-laserjet_cm1418fnw-pcl3.ppd.gz \
ppd/hpcups/hp-laserjet_cp1025.ppd.gz \
ppd/hpcups/hp-laserjet_cp1025nw.ppd.gz \
+ ppd/hpcups/hp-laserjet_cp_1025nw.ppd.gz \
ppd/hpcups/hp-laserjet_m1005.ppd.gz \
ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
ppd/hpcups/hp-laserjet_m1120_mfp.ppd.gz \
@@ -520,6 +521,7 @@ cups_ppd_printers = \
ppd/hpcups/hp-laserjet_professional_p1607dn.ppd.gz \
ppd/hpcups/hp-laserjet_professional_p1608dn.ppd.gz \
ppd/hpcups/hp-laserjet_professional_p1609dn.ppd.gz \
+ ppd/hpcups/hp-laserjet_professional_p1102w.ppd.gz \
ppd/hpcups/hp-laserjet_professional_p_1102w.ppd.gz \
ppd/hpcups/hp-mopier_240-pcl3.ppd.gz \
ppd/hpcups/hp-mopier_320-pcl3.ppd.gz \
diff -up hplip-3.20.6/data/models/models.dat.missing-drivers hplip-3.20.6/data/models/models.dat
--- hplip-3.20.6/data/models/models.dat.missing-drivers 2020-06-17 13:49:39.080953000 +0200
+++ hplip-3.20.6/data/models/models.dat 2020-06-17 13:49:39.120952626 +0200
@@ -2104,7 +2104,7 @@ usb-pid=411
usb-vid=3f0
wifi-config=0
-[hp_laserjet_100_colormfp_m175]
+[hp_laserjet_100_colormfp_m175nw]
align-type=0
clean-type=0
color-cal-type=0
@@ -2119,14 +2119,6 @@ io-support=14
job-storage=0
linefeed-cal-type=0
model1=HP LaserJet 100 Color MFP M175
-model2=HP LaserJet 100 Color MFP M175a
-model3=HP LaserJet 100 Color MFP M175b
-model4=HP LaserJet 100 Color MFP M175c
-model5=HP LaserJet 100 Color MFP M175e
-model6=HP LaserJet 100 Color MFP M175nw
-model7=HP LaserJet 100 Color MFP M175p
-model8=HP LaserJet 100 Color MFP M175q
-model9=HP LaserJet 100 Color MFP M175r
ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
monitor-type=0
panel-check-type=0
@@ -2165,6 +2157,378 @@ usb-pid=62a
usb-vid=3f0
wifi-config=3
+[hp_laserjet_100_colormfp_m175r]
+align-type=0
+clean-type=0
+color-cal-type=0
+copy-type=0
+embedded-server-type=1
+fax-type=0
+fw-download=False
+icon=hp_color_laserjet_cm1312_mfp.png
+io-mfp-mode=3
+io-mode=1
+io-support=14
+job-storage=0
+linefeed-cal-type=0
+model1=HP LaserJet 100 Color MFP M175
+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
+monitor-type=0
+panel-check-type=0
+pcard-type=0
+plugin=1
+plugin-reason=64
+power-settings=0
+pq-diag-type=0
+r-type=0
+r0-agent1-kind=4
+r0-agent1-sku=CE310A
+r0-agent1-type=1
+r0-agent2-kind=4
+r0-agent2-sku=CE311A
+r0-agent2-type=4
+r0-agent3-kind=4
+r0-agent3-sku=CE313A
+r0-agent3-type=5
+r0-agent4-kind=4
+r0-agent4-sku=CE312A
+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=219b2b
+support-type=2
+support-ver=3.11.7
+tech-class=Postscript
+family-class=Undefined
+tech-subclass=Normal
+tech-type=4
+usb-pid=62a
+usb-vid=3f0
+wifi-config=3
+
+[hp_laserjet_100_colormfp_m175q]
+align-type=0
+clean-type=0
+color-cal-type=0
+copy-type=0
+embedded-server-type=1
+fax-type=0
+fw-download=False
+icon=hp_color_laserjet_cm1312_mfp.png
+io-mfp-mode=3
+io-mode=1
+io-support=14
+job-storage=0
+linefeed-cal-type=0
+model1=HP LaserJet 100 Color MFP M175
+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
+monitor-type=0
+panel-check-type=0
+pcard-type=0
+plugin=1
+plugin-reason=64
+power-settings=0
+pq-diag-type=0
+r-type=0
+r0-agent1-kind=4
+r0-agent1-sku=CE310A
+r0-agent1-type=1
+r0-agent2-kind=4
+r0-agent2-sku=CE311A
+r0-agent2-type=4
+r0-agent3-kind=4
+r0-agent3-sku=CE313A
+r0-agent3-type=5
+r0-agent4-kind=4
+r0-agent4-sku=CE312A
+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=219b2b
+support-type=2
+support-ver=3.11.7
+tech-class=Postscript
+family-class=Undefined
+tech-subclass=Normal
+tech-type=4
+usb-pid=62a
+usb-vid=3f0
+wifi-config=3
+
+[hp_laserjet_100_colormfp_m175p]
+align-type=0
+clean-type=0
+color-cal-type=0
+copy-type=0
+embedded-server-type=1
+fax-type=0
+fw-download=False
+icon=hp_color_laserjet_cm1312_mfp.png
+io-mfp-mode=3
+io-mode=1
+io-support=14
+job-storage=0
+linefeed-cal-type=0
+model1=HP LaserJet 100 Color MFP M175
+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
+monitor-type=0
+panel-check-type=0
+pcard-type=0
+plugin=1
+plugin-reason=64
+power-settings=0
+pq-diag-type=0
+r-type=0
+r0-agent1-kind=4
+r0-agent1-sku=CE310A
+r0-agent1-type=1
+r0-agent2-kind=4
+r0-agent2-sku=CE311A
+r0-agent2-type=4
+r0-agent3-kind=4
+r0-agent3-sku=CE313A
+r0-agent3-type=5
+r0-agent4-kind=4
+r0-agent4-sku=CE312A
+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=219b2b
+support-type=2
+support-ver=3.11.7
+tech-class=Postscript
+family-class=Undefined
+tech-subclass=Normal
+tech-type=4
+usb-pid=62a
+usb-vid=3f0
+wifi-config=3
+
+[hp_laserjet_100_colormfp_m175e]
+align-type=0
+clean-type=0
+color-cal-type=0
+copy-type=0
+embedded-server-type=1
+fax-type=0
+fw-download=False
+icon=hp_color_laserjet_cm1312_mfp.png
+io-mfp-mode=3
+io-mode=1
+io-support=2
+job-storage=0
+linefeed-cal-type=0
+model1=HP LaserJet 100 Color MFP M175
+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
+monitor-type=0
+panel-check-type=0
+pcard-type=0
+plugin=1
+plugin-reason=64
+power-settings=0
+pq-diag-type=0
+r-type=0
+r0-agent1-kind=4
+r0-agent1-sku=CE310A
+r0-agent1-type=1
+r0-agent2-kind=4
+r0-agent2-sku=CE311A
+r0-agent2-type=4
+r0-agent3-kind=4
+r0-agent3-sku=CE313A
+r0-agent3-type=5
+r0-agent4-kind=4
+r0-agent4-sku=CE312A
+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=219b2b
+support-type=2
+support-ver=3.11.7
+tech-class=Postscript
+family-class=Undefined
+tech-subclass=Normal
+tech-type=4
+usb-pid=62a
+usb-vid=3f0
+wifi-config=-1
+
+[hp_laserjet_100_colormfp_m175a]
+align-type=0
+clean-type=0
+color-cal-type=0
+copy-type=0
+embedded-server-type=1
+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
+family-ppd=hp-postscript-laserjet-pro.ppd
+fax-type=0
+fw-download=False
+icon=hp_color_laserjet_cm1312_mfp.png
+io-mfp-mode=3
+io-mode=1
+io-support=2
+job-storage=0
+linefeed-cal-type=0
+model1=HP LaserJet 100 Color MFP M175
+monitor-type=0
+panel-check-type=0
+pcard-type=0
+plugin=1
+plugin-reason=64
+power-settings=0
+pq-diag-type=0
+r-type=0
+r0-agent1-kind=4
+r0-agent1-sku=CE310A
+r0-agent1-type=1
+r0-agent2-kind=4
+r0-agent2-sku=CE311A
+r0-agent2-type=4
+r0-agent3-kind=4
+r0-agent3-sku=CE313A
+r0-agent3-type=5
+r0-agent4-kind=4
+r0-agent4-sku=CE312A
+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=219b2b
+support-type=2
+support-ver=3.11.7
+tech-class=Postscript
+family-class=Undefined
+tech-subclass=Normal
+tech-type=4
+usb-pid=62a
+usb-vid=3f0
+wifi-config=-1
+
+[hp_laserjet_100_colormfp_m175c]
+align-type=0
+clean-type=0
+color-cal-type=0
+copy-type=0
+embedded-server-type=1
+fax-type=0
+fw-download=False
+icon=hp_color_laserjet_cm1312_mfp.png
+io-mfp-mode=3
+io-mode=1
+io-support=2
+job-storage=0
+linefeed-cal-type=0
+model1=HP LaserJet 100 Color MFP M175
+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
+monitor-type=0
+panel-check-type=0
+pcard-type=0
+plugin=1
+plugin-reason=64
+power-settings=0
+pq-diag-type=0
+r-type=0
+r0-agent1-kind=4
+r0-agent1-sku=CE310A
+r0-agent1-type=1
+r0-agent2-kind=4
+r0-agent2-sku=CE311A
+r0-agent2-type=4
+r0-agent3-kind=4
+r0-agent3-sku=CE313A
+r0-agent3-type=5
+r0-agent4-kind=4
+r0-agent4-sku=CE312A
+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=219b2b
+support-type=2
+support-ver=3.11.7
+tech-class=Postscript
+family-class=Undefined
+tech-subclass=Normal
+tech-type=4
+usb-pid=62a
+usb-vid=3f0
+wifi-config=-1
+
+[hp_laserjet_100_colormfp_m175b]
+align-type=0
+clean-type=0
+color-cal-type=0
+copy-type=0
+embedded-server-type=1
+fax-type=0
+fw-download=False
+icon=hp_color_laserjet_cm1312_mfp.png
+io-mfp-mode=3
+io-mode=1
+io-support=2
+job-storage=0
+linefeed-cal-type=0
+model1=HP LaserJet 100 Color MFP M175
+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
+monitor-type=0
+panel-check-type=0
+pcard-type=0
+plugin=1
+plugin-reason=64
+power-settings=0
+pq-diag-type=0
+r-type=0
+r0-agent1-kind=4
+r0-agent1-sku=CE310A
+r0-agent1-type=1
+r0-agent2-kind=4
+r0-agent2-sku=CE311A
+r0-agent2-type=4
+r0-agent3-kind=4
+r0-agent3-sku=CE313A
+r0-agent3-type=5
+r0-agent4-kind=4
+r0-agent4-sku=CE312A
+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=219b2b
+support-type=2
+support-ver=3.11.7
+tech-class=Postscript
+family-class=Undefined
+tech-subclass=Normal
+tech-type=4
+usb-pid=62a
+usb-vid=3f0
+wifi-config=-1
+
[officejet_100_mobile_l411]
align-type=-1
clean-type=1
@@ -17867,6 +18231,58 @@ usb-pid=2c17
usb-vid=3f0
wifi-config=0
+[hp_laserjet_cp_1025nw]
+align-type=0
+clean-type=0
+color-cal-type=0
+copy-type=0
+embedded-server-type=1
+fax-type=0
+fw-download=False
+icon=hp_color_laserjet_cp2025.png
+io-mfp-mode=1
+io-mode=1
+io-support=14
+job-storage=0
+linefeed-cal-type=0
+model1=HP LaserJet Pro CP 1025nw Color Printer Series
+monitor-type=0
+panel-check-type=0
+pcard-type=0
+plugin=1
+plugin-reason=1
+power-settings=0
+pq-diag-type=0
+r-type=0
+r0-agent1-kind=4
+r0-agent1-sku=CE310A
+r0-agent1-type=1
+r0-agent2-kind=4
+r0-agent2-sku=CE311A
+r0-agent2-type=4
+r0-agent3-kind=4
+r0-agent3-sku=CE313A
+r0-agent3-type=5
+r0-agent4-kind=4
+r0-agent4-sku=CE312A
+r0-agent4-type=6
+scan-src=0
+scan-type=0
+status-battery-check=0
+status-dynamic-counters=0
+status-type=8
+support-released=True
+support-subtype=219b2b
+support-type=2
+support-ver=3.12.4
+tech-class=LJZjsColor
+family-class=LJ-Class4
+tech-subclass=Advanced
+tech-type=4
+usb-pid=112a
+usb-vid=3f0
+wifi-config=3
+
[hp_laserjet_cp1025nw]
align-type=0
clean-type=0
@@ -18468,6 +18884,49 @@ usb-pid=3011
usb-vid=3f0
wifi-config=0
+[hp_laserjet_professional_p1102w]
+align-type=0
+clean-type=0
+color-cal-type=0
+copy-type=0
+embedded-server-type=0
+fax-type=0
+fw-download=False
+icon=HP_LaserJet_1012.png
+io-mfp-mode=6
+io-mode=1
+io-support=10
+job-storage=0
+linefeed-cal-type=0
+model1=HP LaserJet Professional P1102w Printer
+monitor-type=0
+panel-check-type=0
+pcard-type=0
+plugin=1
+plugin-reason=1
+power-settings=0
+pq-diag-type=0
+r-type=0
+r0-agent1-kind=4
+r0-agent1-sku=85A
+r0-agent1-type=1
+scan-src=0
+scan-type=0
+status-battery-check=0
+status-dynamic-counters=0
+status-type=8
+support-released=True
+support-subtype=219b2b
+support-type=2
+support-ver=3.10.4
+tech-class=LJZjsMono
+family-class=LJ-Class4
+tech-subclass=NoAutoDuplex
+tech-type=3
+usb-pid=32a
+usb-vid=3f0
+wifi-config=3
+
[hp_laserjet_professional_p1102]
align-type=0
clean-type=0
diff -up hplip-3.20.6/Makefile.in.missing-drivers hplip-3.20.6/Makefile.in
--- hplip-3.20.6/Makefile.in.missing-drivers 2020-06-09 13:23:20.000000000 +0200
+++ hplip-3.20.6/Makefile.in 2020-06-17 13:49:39.110952720 +0200
@@ -1571,6 +1571,7 @@ am__dist_ppd_DATA_DIST = prnt/ps/hp-lase
ppd/hpcups/hp-laserjet_cm1418fnw-pcl3.ppd.gz \
ppd/hpcups/hp-laserjet_cp1025.ppd.gz \
ppd/hpcups/hp-laserjet_cp1025nw.ppd.gz \
+ ppd/hpcups/hp-laserjet_cp_1025nw.ppd.gz \
ppd/hpcups/hp-laserjet_m1005.ppd.gz \
ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
ppd/hpcups/hp-laserjet_m1120_mfp.ppd.gz \
@@ -1685,6 +1686,7 @@ am__dist_ppd_DATA_DIST = prnt/ps/hp-lase
ppd/hpcups/hp-laserjet_professional_p1608dn.ppd.gz \
ppd/hpcups/hp-laserjet_professional_p1609dn.ppd.gz \
ppd/hpcups/hp-laserjet_professional_p_1102w.ppd.gz \
+ ppd/hpcups/hp-laserjet_professional_p1102w.ppd.gz \
ppd/hpcups/hp-mopier_240-pcl3.ppd.gz \
ppd/hpcups/hp-mopier_320-pcl3.ppd.gz \
ppd/hpcups/hp-neverstop_laser_100x.ppd.gz \
@@ -3961,6 +3963,7 @@ dist_unrel_DATA =
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cm1418fnw-pcl3.ppd.gz \
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cp1025.ppd.gz \
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cp1025nw.ppd.gz \
+@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cp_1025nw.ppd.gz \
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_m1005.ppd.gz \
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_m1120_mfp.ppd.gz \
@@ -4074,6 +4077,7 @@ dist_unrel_DATA =
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1607dn.ppd.gz \
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1608dn.ppd.gz \
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1609dn.ppd.gz \
+@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1102w.ppd.gz \
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p_1102w.ppd.gz \
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-mopier_240-pcl3.ppd.gz \
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-mopier_320-pcl3.ppd.gz \
diff -up hplip-3.20.6/prnt/drv/hpcups.drv.in.missing-drivers hplip-3.20.6/prnt/drv/hpcups.drv.in
--- hplip-3.20.6/prnt/drv/hpcups.drv.in.missing-drivers 2020-06-17 13:49:39.009953663 +0200
+++ hplip-3.20.6/prnt/drv/hpcups.drv.in 2020-06-17 13:51:49.576733820 +0200
@@ -22319,6 +22319,14 @@ Group "RLT/HP Real Life Technologies"
Attribute "Product" "" "(HP LaserJet Professional p1102s Printer)"
}
{
+ ModelName "HP LaserJet Professional p1102w"
+ Attribute "NickName" "" "HP LaserJet Professional p1102w, hpcups $Version, requires proprietary plugin"
+ Attribute "ShortNickName" "" "HP LaserJet Professional p1102w hpijs"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:hp laserjet professional p1102w;DES:hp laserjet professional p1102w;"
+ PCFileName "hp-laserjet_professional_p1102w.ppd"
+ Attribute "Product" "" "(HP LaserJet Professional p1102w Printer)"
+ }
+ {
ModelName "HP LaserJet Professional p1106"
Attribute "NickName" "" "HP LaserJet Professional p1106, hpcups $Version"
Attribute "ShortNickName" "" "HP LJ Pro p1106 hpijs"
@@ -22752,6 +22760,14 @@ Group "RLT/HP Real Life Technologies"
PCFileName "hp-laserjet_cp1025nw.ppd"
Attribute "Product" "" "(HP LaserJet Pro cp1025nw Color Printer Series)"
}
+ {
+ ModelName "HP LaserJet Cp 1025nw"
+ Attribute "NickName" "" "HP LaserJet Cp 1025nw, hpcups $Version, requires proprietary plugin"
+ Attribute "ShortNickName" "" "HP LaserJet Cp 1025nw hpijs"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:hp laserjet cp 1025nw;DES:hp laserjet cp 1025nw;"
+ PCFileName "hp-laserjet_cp_1025nw.ppd"
+ Attribute "Product" "" "(HP LaserJet Pro Cp 1025nw Color Printer Series)"
+ }
}
} // End LJZjsColor (for proprietary plugin)

View File

@ -0,0 +1,13 @@
diff --git a/installer/pluginhandler.py b/installer/pluginhandler.py
index 4d7c1b8..1af8d85 100755
--- a/installer/pluginhandler.py
+++ b/installer/pluginhandler.py
@@ -164,7 +164,7 @@ class PluginHandle(object):
for src, trg, link in copies:
if link != "":
if not utils.check_library(link):
- self.__plugin_state = PLUGIN_FILES_CORRUPTED
+ pass
def __getPluginInformation(self, callback=None):

View File

@ -0,0 +1,64 @@
diff --git a/io/hpmud/jd.c b/io/hpmud/jd.c
index 20df27a..7ed4918 100644
--- a/io/hpmud/jd.c
+++ b/io/hpmud/jd.c
@@ -208,7 +208,22 @@ enum HPMUD_RESULT __attribute__ ((visibility ("hidden"))) jd_open(mud_device *pd
{
/* Make sure uri model matches device id model. */
hpmud_get_uri_model(pd->uri, uri_model, sizeof(uri_model));
+
+ /* remove possible hp_ string */
+ if (strncasecmp(uri_model, "HP_", 3) == 0)
+ {
+ memmove(uri_model, uri_model + 3, 127);
+ uri_model[127] = '\0';
+ }
+
hpmud_get_model(pd->id, model, sizeof(model));
+ /* remove possible hp_ string */
+ if (strncasecmp(model, "HP_", 3) == 0)
+ {
+ memmove(model, model + 3, 127);
+ model[127] = '\0';
+ }
+
if (strcasecmp(uri_model, model) != 0)
{
stat = HPMUD_R_INVALID_URI; /* different device plugged in */
diff --git a/io/hpmud/model.c b/io/hpmud/model.c
index d546ec1..adb3d87 100644
--- a/io/hpmud/model.c
+++ b/io/hpmud/model.c
@@ -407,7 +407,10 @@ static int ParseFile(char *datFile, char *model, char *attr, int attrSize, int *
char rcbuf[255];
char section[128];
char file[128];
- int found=0, n;
+ int found=0;
+ size_t n;
+
+ size_t model_len = strlen(model);
if ((fp = fopen(datFile, "r")) == NULL)
goto bugout;
@@ -422,10 +425,17 @@ static int ParseFile(char *datFile, char *model, char *attr, int attrSize, int *
strncpy(section, rcbuf+1, sizeof(section)); /* found new section */
n = strlen(section);
section[n-2]=0; /* remove ']' and CR */
+ n -= 2;
if (strcasecmp(model, section) == 0 ||
- (section[0] == 'h' && section[1] == 'p' &&
- section[2] == '_' &&
- strcasecmp(model, section + 3) == 0))
+ (section[0] == 'h' &&
+ section[1] == 'p' &&
+ section[2] == '_' &&
+ strcasecmp(model, section + 3) == 0) ||
+ (n > model_len &&
+ strncasecmp(section, model, model_len) == 0 &&
+ strncasecmp(section + model_len, "_series", strlen("_series")) == 0
+ )
+ )
{
/* Found model match. */
*bytes_read = ResolveAttributes(fp, attr, attrSize);

View File

@ -0,0 +1,36 @@
diff -up hplip-3.9.8/ip/xfax.c.no-asm hplip-3.9.8/ip/xfax.c
--- hplip-3.9.8/ip/xfax.c.no-asm 2009-08-04 22:37:28.000000000 +0100
+++ hplip-3.9.8/ip/xfax.c 2009-08-25 14:44:04.502202418 +0100
@@ -1680,19 +1680,6 @@ static BOOL bits_flush_to_eol (
& ((1u<<n_bits) - 1u); \
}
-#if 0
-
-#define BITS_LOAD(g, num_bits, par_result) { \
- int n_bits = (int)(num_bits); \
- \
- par_result = g->gb_cache; \
- \
- asm ("extract %1,%2,%0" \
- : "=d" (par_result) \
- : "dI" (g->gb_cache_cnt - n_bits), "dI" (n_bits), "0" (par_result)); \
-}
-
-#endif
diff -up hplip-3.9.8/scan/sane/common.h.no-asm hplip-3.9.8/scan/sane/common.h
--- hplip-3.9.8/scan/sane/common.h.no-asm 2009-08-25 16:35:14.577203106 +0100
+++ hplip-3.9.8/scan/sane/common.h 2009-08-25 16:35:29.948216281 +0100
@@ -53,8 +53,6 @@
#define BACKEND_NAME hpaio
-#define BREAKPOINT __asm( "int3" )
-
#define OK 1
#define ERROR 0
#define MAX_LIST_SIZE 32
diff -up hplip-3.9.8/scan/sane/hpaio.c.no-asm hplip-3.9.8/scan/sane/hpaio.c

View File

@ -0,0 +1,27 @@
diff -up hplip-3.15.11/config_usb_printer.py.no-write-bytecode hplip-3.15.11/config_usb_printer.py
--- hplip-3.15.11/config_usb_printer.py.no-write-bytecode 2015-11-16 10:50:03.127459222 +0100
+++ hplip-3.15.11/config_usb_printer.py 2015-11-16 10:53:52.266931490 +0100
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python -B
# -*- coding: utf-8 -*-
#
# (c) Copyright 2011-2015 HP Development Company, L.P.
diff -up hplip-3.15.11/fax/backend/hpfax.py.no-write-bytecode hplip-3.15.11/fax/backend/hpfax.py
--- hplip-3.15.11/fax/backend/hpfax.py.no-write-bytecode 2015-11-16 10:50:03.128459220 +0100
+++ hplip-3.15.11/fax/backend/hpfax.py 2015-11-16 10:53:49.587937659 +0100
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python -B
# -*- coding: utf-8 -*-
#
# (c) Copyright 2003-2015 HP Development Company, L.P.
diff -up hplip-3.15.11/prnt/filters/hpps.no-write-bytecode hplip-3.15.9/prnt/filters/hpps
--- hplip-3.15.11/prnt/filters/hpps.no-write-bytecode 2016-01-04 16:44:08.000000000 +0100
+++ hplip-3.15.11/prnt/filters/hpps 2016-01-04 16:50:11.272921194 +0100
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python -B
# -*- coding: utf-8 -*-
#
# (c) Copyright 2003-2015 HP Development Company, L.P.

View File

@ -0,0 +1,64 @@
diff -up hplip-3.17.4/Makefile.am.no-ernie hplip-3.17.4/Makefile.am
--- hplip-3.17.4/Makefile.am.no-ernie 2017-04-26 16:28:35.398099978 +0200
+++ hplip-3.17.4/Makefile.am 2017-04-26 16:29:02.235879035 +0200
@@ -519,7 +519,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilte
prnt/hpcups/Mode2.cpp prnt/hpcups/Mode2.h prnt/hpcups/Mode3.cpp prnt/hpcups/Mode3.h \
prnt/hpcups/Mode9.cpp prnt/hpcups/Mode9.h prnt/hpcups/Mode10.cpp prnt/hpcups/Mode10.h \
prnt/hpcups/ModeDeltaPlus.cpp prnt/hpcups/ModeDeltaPlus.h prnt/hpcups/ModeJbig.cpp prnt/hpcups/ModeJbig.h \
- prnt/hpcups/ErnieFilter.cpp prnt/hpcups/ErnieFilter.h prnt/hpcups/EncapsulatorFactory.cpp prnt/hpcups/EncapsulatorFactory.h \
+ prnt/hpcups/EncapsulatorFactory.cpp prnt/hpcups/EncapsulatorFactory.h \
prnt/hpcups/Encapsulator.cpp prnt/hpcups/Encapsulator.h prnt/hpcups/Pcl3.cpp prnt/hpcups/Pcl3.h \
prnt/hpcups/Pcl3Gui.cpp prnt/hpcups/Pcl3Gui.h prnt/hpcups/Pcl3Gui2.cpp prnt/hpcups/Pcl3Gui2.h \
prnt/hpcups/LJMono.cpp prnt/hpcups/LJMono.h prnt/hpcups/LJColor.cpp prnt/hpcups/LJColor.h \
diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp
--- hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie 2017-04-26 16:28:39.525066003 +0200
+++ hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp 2017-04-26 16:29:46.987510614 +0200
@@ -30,7 +30,6 @@
#include "CommonDefinitions.h"
#include "Pcl3Gui2.h"
-#include "ErnieFilter.h"
#include "Mode10.h"
#include "Mode9.h"
#include "PrinterCommands.h"
@@ -38,7 +37,6 @@
Pcl3Gui2::Pcl3Gui2() : Encapsulator()
{
speed_mech_enabled = true;
- m_run_ernie_filter = true;
crd_type = eCrd_both;
strcpy(m_szLanguage, "PCL3GUI");
}
@@ -59,21 +57,6 @@ DRIVER_ERROR Pcl3Gui2::Configure(Pipelin
}
width = m_pMA->printable_width;;
- if (m_run_ernie_filter) {
- ErnieFilter *pErnie;
-
- // Normal: threshold = (resolution) * (0.0876) - 2
- int threshold = ((m_pQA->horizontal_resolution * 876) / 10000) - 2;
-
- pErnie = new ErnieFilter (width, eBGRPixelData, threshold);
- p = new Pipeline (pErnie);
- if (head) {
- head->AddPhase (p);
- }
- else {
- head = p;
- }
- }
if (crd_type != eCrd_black_only) {
Mode10 *pMode10;
diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h.no-ernie hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h
--- hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h.no-ernie 2017-04-26 16:28:43.277035115 +0200
+++ hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h 2017-04-26 16:30:05.826355522 +0200
@@ -60,7 +60,6 @@ private:
DRIVER_ERROR encapsulateRaster(BYTE *input_raster, unsigned int num_bytes, COLORTYPE c_type);
bool speed_mech_enabled;
int page_number;
- bool m_run_ernie_filter;
eCrdType crd_type;
};

View File

@ -0,0 +1,459 @@
diff -up hplip-3.14.3/prnt/ps/hp-laserjet_8150_mfp-ps.ppd.ImageableArea hplip-3.14.3/prnt/ps/hp-laserjet_8150_mfp-ps.ppd
--- hplip-3.14.3/prnt/ps/hp-laserjet_8150_mfp-ps.ppd.ImageableArea 2014-03-06 06:11:09.000000000 +0100
+++ hplip-3.14.3/prnt/ps/hp-laserjet_8150_mfp-ps.ppd 2014-03-07 10:26:54.404913622 +0100
@@ -3430,7 +3430,7 @@ restore
*CloseUI: *PageRegion
*DefaultImageableArea: Letter
-*ImageableArea Letter/Letter: "4.00 3.00 606.00 786.00"
+*ImageableArea Letter/Letter: "12.00 12.00 599.76 779.76"
*da.ImageableArea Letter/Letter: ""
*de.ImageableArea Letter/Letter: ""
*es.ImageableArea Letter/Letter: ""
@@ -3462,7 +3462,7 @@ restore
*zh_CN.ImageableArea LetterSmall/信纸 (小): ""
*zh_TW.ImageableArea LetterSmall/Letter (小): ""
-*ImageableArea Executive/Executive: "3.00 3.00 516.00 750.00"
+*ImageableArea Executive/Executive: "12.00 12.00 509.76 743.76"
*da.ImageableArea Executive/Executive: ""
*de.ImageableArea Executive/Executive: ""
*es.ImageableArea Executive/Exec: ""
@@ -3478,7 +3478,7 @@ restore
*zh_CN.ImageableArea Executive/Executive: ""
*zh_TW.ImageableArea Executive/Executive: ""
-*ImageableArea Legal/Legal: "64.00 54.00 606.00 1002.00"
+*ImageableArea Legal/Legal: "12.00 12.00 599.76 995.76"
*da.ImageableArea Legal/Legal: ""
*de.ImageableArea Legal/Legal: ""
*es.ImageableArea Legal/Legal: ""
@@ -3494,7 +3494,7 @@ restore
*zh_CN.ImageableArea Legal/Legal: ""
*zh_TW.ImageableArea Legal/Legal: ""
-*ImageableArea LegalSmall/Legal (Small): "3.00 3.00 548.00 954.00"
+*ImageableArea LegalSmall/Legal (Small): "64.00 54.00 548.00 954.00"
*da.ImageableArea LegalSmall/Legal (lille): ""
*de.ImageableArea LegalSmall/Legal (Klein): ""
*es.ImageableArea LegalSmall/Legal (pequeño): ""
@@ -3510,7 +3510,7 @@ restore
*zh_CN.ImageableArea LegalSmall/Legal (小): ""
*zh_TW.ImageableArea LegalSmall/Legal (小): ""
-*ImageableArea Tabloid/11x17: "3.00 3.00 786.00 1218.00"
+*ImageableArea Tabloid/11x17: "12.00 12.00 779.76 1211.76"
*da.ImageableArea Tabloid/11x17: ""
*de.ImageableArea Tabloid/11x17 Zoll: ""
*es.ImageableArea Tabloid/11x17: ""
@@ -3526,7 +3526,7 @@ restore
*zh_CN.ImageableArea Tabloid/11x17: ""
*zh_TW.ImageableArea Tabloid/11x17 : ""
-*ImageableArea w842h1274/11x17 (Oversize 11.7x17.7): "3.00 3.00 836.00 1268.00"
+*ImageableArea w842h1274/11x17 (Oversize 11.7x17.7): "12.00 12.00 829.68 1261.68"
*da.ImageableArea w842h1274/11x17 (overstr. 297 x 450 mm): ""
*de.ImageableArea w842h1274/11x17 Zoll (Übergröße 11,7x17,7 Zoll): ""
*es.ImageableArea w842h1274/11x17 (Extra 11,7x17,7) : ""
@@ -3542,7 +3542,7 @@ restore
*zh_CN.ImageableArea w842h1274/11x17 (超大尺寸 11.7x17.7): ""
*zh_TW.ImageableArea w842h1274/11x17 (Oversize 11.7x17.7): ""
-*ImageableArea A3/A3: "3.00 3.00 836.00 1185.00"
+*ImageableArea A3/A3: "12.00 12.00 829.44 1178.16"
*da.ImageableArea A3/A3: ""
*de.ImageableArea A3/A3: ""
*es.ImageableArea A3/A3: ""
@@ -3558,7 +3558,7 @@ restore
*zh_CN.ImageableArea A3/A3: ""
*zh_TW.ImageableArea A3/A3: ""
-*ImageableArea A4/A4: "4.00 3.00 586.00 836.00"
+*ImageableArea A4/A4: "12.00 12.00 582.96 829.44"
*da.ImageableArea A4/A4: ""
*de.ImageableArea A4/A4: ""
*es.ImageableArea A4/A4: ""
@@ -3590,7 +3590,7 @@ restore
*zh_CN.ImageableArea A4Small/A4 (小): ""
*zh_TW.ImageableArea A4Small/A4 (小): ""
-*ImageableArea A5/A5: "3.00 3.00 414.00 589.00"
+*ImageableArea A5/A5: "12.00 12.00 407.28 582.96"
*da.ImageableArea A5/A5: ""
*de.ImageableArea A5/A5: ""
*es.ImageableArea A5/A5: ""
@@ -3606,7 +3606,7 @@ restore
*zh_CN.ImageableArea A5/A5: ""
*zh_TW.ImageableArea A5/A5: ""
-*ImageableArea B4/JIS B4: "3.00 3.00 723.00 1026.00"
+*ImageableArea B4/JIS B4: "12.00 12.00 716.16 1019.52"
*da.ImageableArea B4/JIS B4: ""
*de.ImageableArea B4/B4 (JIS): ""
*es.ImageableArea B4/JIS B4: ""
@@ -3622,7 +3622,7 @@ restore
*zh_CN.ImageableArea B4/JIS B4: ""
*zh_TW.ImageableArea B4/JIS B4: ""
-*ImageableArea B5/JIS B5: "3.00 3.00 510.00 723.00"
+*ImageableArea B5/JIS B5: "12.00 12.00 503.52 716.16"
*da.ImageableArea B5/JIS B5: ""
*de.ImageableArea B5/JIS B5: ""
*es.ImageableArea B5/JIS B5: ""
@@ -3638,7 +3638,7 @@ restore
*zh_CN.ImageableArea B5/JIS B5: ""
*zh_TW.ImageableArea B5/JIS B5: ""
-*ImageableArea DoublePostcard/Double Postcard (JIS): "3.00 3.00 413.50 561.00"
+*ImageableArea DoublePostcard/Double Postcard (JIS): "12.00 12.00 407.28 554.64"
*da.ImageableArea DoublePostcard/Dobbelt postkort (JIS): ""
*de.ImageableArea DoublePostcard/Doppelte Postkarte (JIS): ""
*es.ImageableArea DoublePostcard/Tarjeta postal doble (JIS): ""
@@ -3654,7 +3654,7 @@ restore
*zh_CN.ImageableArea DoublePostcard/大号明信片 (JIS): ""
*zh_TW.ImageableArea DoublePostcard/雙聯明信片(JIS): ""
-*ImageableArea w612h935/Executive (JIS): "3.00 3.00 606.00 929.00"
+*ImageableArea w612h935/Executive (JIS): "12.00 12.00 599.76 922.76"
*da.ImageableArea w612h935/Executive (JIS): ""
*de.ImageableArea w612h935/Executive (JIS): ""
*es.ImageableArea w612h935/Exec (JIS): ""
@@ -3670,7 +3670,7 @@ restore
*zh_CN.ImageableArea w612h935/Executive (JIS): ""
*zh_TW.ImageableArea w612h935/Executive (JIS): ""
-*ImageableArea w558h774/16K: "3.00 3.00 552.00 768.00"
+*ImageableArea w558h774/16K: "12.00 12.00 545.76 761.76"
*da.ImageableArea w558h774/16K: ""
*de.ImageableArea w558h774/16K: ""
*es.ImageableArea w558h774/16K: ""
@@ -3686,7 +3686,7 @@ restore
*zh_CN.ImageableArea w558h774/16K: ""
*zh_TW.ImageableArea w558h774/16K: ""
-*ImageableArea w774h1116/8K: "3.00 3.00 768.00 1110.00"
+*ImageableArea w774h1116/8K: "12.00 12.00 761.76 1103.76"
*da.ImageableArea w774h1116/8K: ""
*de.ImageableArea w774h1116/8K: ""
*es.ImageableArea w774h1116/8K: ""
@@ -3702,7 +3702,7 @@ restore
*zh_CN.ImageableArea w774h1116/8K: ""
*zh_TW.ImageableArea w774h1116/8K: ""
-*ImageableArea Env10/Env Comm10: "3.00 3.00 291.00 678.00"
+*ImageableArea Env10/Env Comm10: "12.00 12.00 284.64 671.76"
*da.ImageableArea Env10/Konvolut Comm10: ""
*de.ImageableArea Env10/Umschlag Comm10: ""
*es.ImageableArea Env10/Sobre Comm10: ""
@@ -3718,7 +3718,7 @@ restore
*zh_CN.ImageableArea Env10/Comm10号信封: ""
*zh_TW.ImageableArea Env10/Comm10 信封: ""
-*ImageableArea EnvMonarch/Env Monarch: "3.00 3.00 273.00 534.00"
+*ImageableArea EnvMonarch/Env Monarch: "12.00 12.00 266.64 527.76"
*da.ImageableArea EnvMonarch/Konvolut Monarch: ""
*de.ImageableArea EnvMonarch/Umschlag Monarch: ""
*es.ImageableArea EnvMonarch/Sobre Monarch: ""
@@ -3734,7 +3734,7 @@ restore
*zh_CN.ImageableArea EnvMonarch/Monarch号信封: ""
*zh_TW.ImageableArea EnvMonarch/Monarch 信封: ""
-*ImageableArea EnvDL/Env DL: "3.00 3.00 306.00 618.00"
+*ImageableArea EnvDL/Env DL: "12.00 12.00 299.52 611.28"
*da.ImageableArea EnvDL/Konvolut DL: ""
*de.ImageableArea EnvDL/Umschlag DL: ""
*es.ImageableArea EnvDL/Sobre DL: ""
@@ -3750,7 +3750,7 @@ restore
*zh_CN.ImageableArea EnvDL/DL号信封: ""
*zh_TW.ImageableArea EnvDL/DL 信封: ""
-*ImageableArea EnvC5/Env C5: "3.00 3.00 453.00 643.00"
+*ImageableArea EnvC5/Env C5: "12.00 12.00 446.88 636.72"
*da.ImageableArea EnvC5/Konvolut C5: ""
*de.ImageableArea EnvC5/Umschlag C5: ""
*es.ImageableArea EnvC5/Sobre C5: ""
@@ -3766,7 +3766,7 @@ restore
*zh_CN.ImageableArea EnvC5/C5号信封: ""
*zh_TW.ImageableArea EnvC5/C5 信封: ""
-*ImageableArea EnvISOB5/Env ISO B5: "3.00 3.00 493.00 703.00"
+*ImageableArea EnvISOB5/Env ISO B5: "12.00 12.00 486.48 696.24"
*da.ImageableArea EnvISOB5/Konvolut ISO B5: ""
*de.ImageableArea EnvISOB5/Umschlag ISO B5: ""
*es.ImageableArea EnvISOB5/Sobre ISO B5: ""
diff -up hplip-3.14.3/prnt/ps/hp-laserjet_9000_mfp-ps.ppd.ImageableArea hplip-3.14.3/prnt/ps/hp-laserjet_9000_mfp-ps.ppd
--- hplip-3.14.3/prnt/ps/hp-laserjet_9000_mfp-ps.ppd.ImageableArea 2014-03-06 06:11:09.000000000 +0100
+++ hplip-3.14.3/prnt/ps/hp-laserjet_9000_mfp-ps.ppd 2014-03-07 10:26:54.407913581 +0100
@@ -2593,7 +2593,7 @@ currentpagedevice /MediaProcessing known
*CloseUI: *PageRegion
*DefaultImageableArea: Letter
-*ImageableArea Letter/Letter: "6.00 6.00 606.00 786.00"
+*ImageableArea Letter/Letter: "12.00 12.00 599.76 779.76"
*da.ImageableArea Letter/Letter: ""
*de.ImageableArea Letter/Letter: ""
*es.ImageableArea Letter/Letter: ""
@@ -2625,7 +2625,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea LetterSmall/信纸 (小): ""
*zh_TW.ImageableArea LetterSmall/Letter (小): ""
-*ImageableArea Executive/Executive: "6.00 6.00 516.00 750.00"
+*ImageableArea Executive/Executive: "12.00 12.00 509.76 743.76"
*da.ImageableArea Executive/Executive: ""
*de.ImageableArea Executive/Executive: ""
*es.ImageableArea Executive/Exec: ""
@@ -2641,7 +2641,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea Executive/Executive: ""
*zh_TW.ImageableArea Executive/Executive: ""
-*ImageableArea Legal/Legal: "6.00 6.00 606.00 1002.00"
+*ImageableArea Legal/Legal: "12.00 12.00 599.76 995.76"
*da.ImageableArea Legal/Legal: ""
*de.ImageableArea Legal/Legal: ""
*es.ImageableArea Legal/Legal: ""
@@ -2673,7 +2673,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea LegalSmall/Legal (小): ""
*zh_TW.ImageableArea LegalSmall/Legal (小): ""
-*ImageableArea Tabloid/11x17: "6.00 6.00 786.00 1218.00"
+*ImageableArea Tabloid/11x17: "12.00 12.00 779.76 1211.76"
*da.ImageableArea Tabloid/11x17: ""
*de.ImageableArea Tabloid/11x17 Zoll: ""
*es.ImageableArea Tabloid/11x17: ""
@@ -2689,7 +2689,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea Tabloid/11x17: ""
*zh_TW.ImageableArea Tabloid/11x17 : ""
-*ImageableArea w842h1274/11x17 (Oversize 11.7x17.7): "6.00 6.00 836.00 1268.00"
+*ImageableArea w842h1274/11x17 (Oversize 11.7x17.7): "12.00 12.00 829.68 1261.68"
*da.ImageableArea w842h1274/11x17 (overstr. 297 x 450 mm): ""
*de.ImageableArea w842h1274/11x17 Zoll (Übergröße 11,7x17,7 Zoll): ""
*es.ImageableArea w842h1274/11x17 (Extra 11,7x17,7) : ""
@@ -2705,7 +2705,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea w842h1274/11x17 (超大尺寸 11.7x17.7): ""
*zh_TW.ImageableArea w842h1274/11x17 (Oversize 11.7x17.7): ""
-*ImageableArea A3/A3: "6.00 6.00 836.00 1185.00"
+*ImageableArea A3/A3: "12.00 12.00 829.44 1178.16"
*da.ImageableArea A3/A3: ""
*de.ImageableArea A3/A3: ""
*es.ImageableArea A3/A3: ""
@@ -2721,7 +2721,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea A3/A3: ""
*zh_TW.ImageableArea A3/A3: ""
-*ImageableArea A4/A4: "6.00 6.00 589.00 836.00"
+*ImageableArea A4/A4: "12.00 12.00 582.96 829.44"
*da.ImageableArea A4/A4: ""
*de.ImageableArea A4/A4: ""
*es.ImageableArea A4/A4: ""
@@ -2753,7 +2753,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea A4Small/A4 (小): ""
*zh_TW.ImageableArea A4Small/A4 (小): ""
-*ImageableArea A5/A5: "6.00 6.00 414.00 589.00"
+*ImageableArea A5/A5: "12.00 12.00 407.28 582.96"
*da.ImageableArea A5/A5: ""
*de.ImageableArea A5/A5: ""
*es.ImageableArea A5/A5: ""
@@ -2769,7 +2769,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea A5/A5: ""
*zh_TW.ImageableArea A5/A5: ""
-*ImageableArea B4/JIS B4: "6.00 6.00 723.00 1026.00"
+*ImageableArea B4/JIS B4: "12.00 12.00 716.16 1019.52"
*da.ImageableArea B4/JIS B4: ""
*de.ImageableArea B4/B4 (JIS): ""
*es.ImageableArea B4/JIS B4: ""
@@ -2785,7 +2785,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea B4/JIS B4: ""
*zh_TW.ImageableArea B4/JIS B4: ""
-*ImageableArea B5/JIS B5: "6.00 6.00 510.00 723.00"
+*ImageableArea B5/JIS B5: "12.00 12.00 503.52 716.16"
*da.ImageableArea B5/JIS B5: ""
*de.ImageableArea B5/JIS B5: ""
*es.ImageableArea B5/JIS B5: ""
@@ -2801,7 +2801,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea B5/JIS B5: ""
*zh_TW.ImageableArea B5/JIS B5: ""
-*ImageableArea DoublePostcard/Double Postcard (JIS): "6.00 6.00 413.50 561.00"
+*ImageableArea DoublePostcard/Double Postcard (JIS): "12.00 12.00 407.28 554.64"
*da.ImageableArea DoublePostcard/Dobbelt postkort (JIS): ""
*de.ImageableArea DoublePostcard/Doppelte Postkarte (JIS): ""
*es.ImageableArea DoublePostcard/Tarjeta postal doble (JIS): ""
@@ -2817,7 +2817,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea DoublePostcard/大号明信片 (JIS): ""
*zh_TW.ImageableArea DoublePostcard/雙聯明信片(JIS): ""
-*ImageableArea w612h935/Executive (JIS): "6.00 6.00 606.00 929.00"
+*ImageableArea w612h935/Executive (JIS): "12.00 12.00 599.76 922.76"
*da.ImageableArea w612h935/Executive (JIS): ""
*de.ImageableArea w612h935/Executive (JIS): ""
*es.ImageableArea w612h935/Exec (JIS): ""
@@ -2833,7 +2833,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea w612h935/Executive (JIS): ""
*zh_TW.ImageableArea w612h935/Executive (JIS): ""
-*ImageableArea w558h774/16K: "6.00 6.00 552.00 768.00"
+*ImageableArea w558h774/16K: "12.00 12.00 545.76 761.76"
*da.ImageableArea w558h774/16K: ""
*de.ImageableArea w558h774/16K: ""
*es.ImageableArea w558h774/16K: ""
@@ -2849,7 +2849,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea w558h774/16K: ""
*zh_TW.ImageableArea w558h774/16K: ""
-*ImageableArea w774h1116/8K: "6.00 6.00 768.00 1110.00"
+*ImageableArea w774h1116/8K: "12.00 12.00 761.76 1103.76"
*da.ImageableArea w774h1116/8K: ""
*de.ImageableArea w774h1116/8K: ""
*es.ImageableArea w774h1116/8K: ""
@@ -2865,7 +2865,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea w774h1116/8K: ""
*zh_TW.ImageableArea w774h1116/8K: ""
-*ImageableArea Env10/Env Comm10: "11.00 11.00 286.00 673.00"
+*ImageableArea Env10/Env Comm10: "12.00 12.00 284.64 671.76"
*da.ImageableArea Env10/Konvolut Comm10: ""
*de.ImageableArea Env10/Umschlag Comm10: ""
*es.ImageableArea Env10/Sobre Comm10: ""
diff -up hplip-3.14.3/prnt/ps/hp-laserjet_9000_series-ps.ppd.ImageableArea hplip-3.14.3/prnt/ps/hp-laserjet_9000_series-ps.ppd
--- hplip-3.14.3/prnt/ps/hp-laserjet_9000_series-ps.ppd.ImageableArea 2014-03-06 06:11:09.000000000 +0100
+++ hplip-3.14.3/prnt/ps/hp-laserjet_9000_series-ps.ppd 2014-03-07 10:26:54.408913567 +0100
@@ -2660,7 +2660,7 @@ currentpagedevice /MediaProcessing known
*CloseUI: *PageRegion
*DefaultImageableArea: Letter
-*ImageableArea Letter/Letter: "6.00 6.00 606.00 786.00"
+*ImageableArea Letter/Letter: "12.00 12.00 599.76 779.76"
*da.ImageableArea Letter/Letter: ""
*de.ImageableArea Letter/Letter: ""
*es.ImageableArea Letter/Letter: ""
@@ -2692,7 +2692,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea LetterSmall/信纸 (小): ""
*zh_TW.ImageableArea LetterSmall/Letter (小): ""
-*ImageableArea Executive/Executive: "6.00 6.00 516.00 750.00"
+*ImageableArea Executive/Executive: "12.00 12.00 509.76 743.76"
*da.ImageableArea Executive/Executive: ""
*de.ImageableArea Executive/Executive: ""
*es.ImageableArea Executive/Exec: ""
@@ -2708,7 +2708,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea Executive/Executive: ""
*zh_TW.ImageableArea Executive/Executive: ""
-*ImageableArea Legal/Legal: "6.00 6.00 606.00 1002.00"
+*ImageableArea Legal/Legal: "12.00 12.00 599.76 995.76"
*da.ImageableArea Legal/Legal: ""
*de.ImageableArea Legal/Legal: ""
*es.ImageableArea Legal/Legal: ""
@@ -2740,7 +2740,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea LegalSmall/Legal (小): ""
*zh_TW.ImageableArea LegalSmall/Legal (小): ""
-*ImageableArea Tabloid/11x17: "6.00 6.00 786.00 1218.00"
+*ImageableArea Tabloid/11x17: "12.00 12.00 779.76 1211.76"
*da.ImageableArea Tabloid/11x17: ""
*de.ImageableArea Tabloid/11x17 Zoll: ""
*es.ImageableArea Tabloid/11x17: ""
@@ -2756,7 +2756,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea Tabloid/11x17: ""
*zh_TW.ImageableArea Tabloid/11x17 : ""
-*ImageableArea w842h1274/11x17 (Oversize 11.7x17.7): "6.00 6.00 836.00 1268.00"
+*ImageableArea w842h1274/11x17 (Oversize 11.7x17.7): "12.00 12.00 829.68 1261.68"
*da.ImageableArea w842h1274/11x17 (overstr. 297 x 450 mm): ""
*de.ImageableArea w842h1274/11x17 Zoll (Übergröße 11,7x17,7 Zoll): ""
*es.ImageableArea w842h1274/11x17 (Extra 11,7x17,7) : ""
@@ -2772,7 +2772,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea w842h1274/11x17 (超大尺寸 11.7x17.7): ""
*zh_TW.ImageableArea w842h1274/11x17 (Oversize 11.7x17.7): ""
-*ImageableArea A3/A3: "6.00 6.00 836.00 1185.00"
+*ImageableArea A3/A3: "12.00 12.00 829.44 1178.16"
*da.ImageableArea A3/A3: ""
*de.ImageableArea A3/A3: ""
*es.ImageableArea A3/A3: ""
@@ -2788,7 +2788,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea A3/A3: ""
*zh_TW.ImageableArea A3/A3: ""
-*ImageableArea A4/A4: "6.00 6.00 589.00 836.00"
+*ImageableArea A4/A4: "12.00 12.00 582.96 829.44"
*da.ImageableArea A4/A4: ""
*de.ImageableArea A4/A4: ""
*es.ImageableArea A4/A4: ""
@@ -2820,7 +2820,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea A4Small/A4 (小): ""
*zh_TW.ImageableArea A4Small/A4 (小): ""
-*ImageableArea A5/A5: "6.00 6.00 414.00 589.00"
+*ImageableArea A5/A5: "12.00 12.00 407.28 582.96"
*da.ImageableArea A5/A5: ""
*de.ImageableArea A5/A5: ""
*es.ImageableArea A5/A5: ""
@@ -2836,7 +2836,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea A5/A5: ""
*zh_TW.ImageableArea A5/A5: ""
-*ImageableArea B4/JIS B4: "6.00 6.00 723.00 1026.00"
+*ImageableArea B4/JIS B4: "12.00 12.00 716.16 1019.52"
*da.ImageableArea B4/JIS B4: ""
*de.ImageableArea B4/B4 (JIS): ""
*es.ImageableArea B4/JIS B4: ""
@@ -2852,7 +2852,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea B4/JIS B4: ""
*zh_TW.ImageableArea B4/JIS B4: ""
-*ImageableArea B5/JIS B5: "6.00 6.00 510.00 723.00"
+*ImageableArea B5/JIS B5: "12.00 12.00 503.52 716.16"
*da.ImageableArea B5/JIS B5: ""
*de.ImageableArea B5/JIS B5: ""
*es.ImageableArea B5/JIS B5: ""
@@ -2868,7 +2868,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea B5/JIS B5: ""
*zh_TW.ImageableArea B5/JIS B5: ""
-*ImageableArea DoublePostcard/Double Postcard (JIS): "6.00 6.00 413.50 561.00"
+*ImageableArea DoublePostcard/Double Postcard (JIS): "12.00 12.00 407.28 554.64"
*da.ImageableArea DoublePostcard/Dobbelt postkort (JIS): ""
*de.ImageableArea DoublePostcard/Doppelte Postkarte (JIS): ""
*es.ImageableArea DoublePostcard/Tarjeta postal doble (JIS): ""
@@ -2884,7 +2884,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea DoublePostcard/大号明信片 (JIS): ""
*zh_TW.ImageableArea DoublePostcard/雙聯明信片(JIS): ""
-*ImageableArea w612h935/Executive (JIS): "6.00 6.00 606.00 929.00"
+*ImageableArea w612h935/Executive (JIS): "12.00 12.00 599.76 922.76"
*da.ImageableArea w612h935/Executive (JIS): ""
*de.ImageableArea w612h935/Executive (JIS): ""
*es.ImageableArea w612h935/Exec (JIS): ""
@@ -2900,7 +2900,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea w612h935/Executive (JIS): ""
*zh_TW.ImageableArea w612h935/Executive (JIS): ""
-*ImageableArea w558h774/16K: "6.00 6.00 552.00 768.00"
+*ImageableArea w558h774/16K: "12.00 12.00 545.76 761.76"
*da.ImageableArea w558h774/16K: ""
*de.ImageableArea w558h774/16K: ""
*es.ImageableArea w558h774/16K: ""
@@ -2916,7 +2916,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea w558h774/16K: ""
*zh_TW.ImageableArea w558h774/16K: ""
-*ImageableArea w774h1116/8K: "6.00 6.00 768.00 1110.00"
+*ImageableArea w774h1116/8K: "12.00 12.00 761.76 1103.76"
*da.ImageableArea w774h1116/8K: ""
*de.ImageableArea w774h1116/8K: ""
*es.ImageableArea w774h1116/8K: ""
@@ -2932,7 +2932,7 @@ currentpagedevice /MediaProcessing known
*zh_CN.ImageableArea w774h1116/8K: ""
*zh_TW.ImageableArea w774h1116/8K: ""
-*ImageableArea Env10/Env Comm10: "11.00 11.00 286.00 673.00"
+*ImageableArea Env10/Env Comm10: "12.00 12.00 284.64 671.76"
*da.ImageableArea Env10/Konvolut Comm10: ""
*de.ImageableArea Env10/Umschlag Comm10: ""
*es.ImageableArea Env10/Sobre Comm10: ""

View File

@ -0,0 +1,65 @@
diff -up hplip-3.15.2/fax/filters/pstotiff.pstotiff-is-rubbish hplip-3.15.2/fax/filters/pstotiff
--- hplip-3.15.2/fax/filters/pstotiff.pstotiff-is-rubbish 2015-02-04 09:40:43.169147058 +0100
+++ hplip-3.15.2/fax/filters/pstotiff 2015-02-04 09:47:20.786983832 +0100
@@ -1,45 +1,16 @@
-#!/usr/bin/env python
-
-import os
-import os.path
-import time
-import sys
-import tempfile
-
-PY3 = sys.version_info[0] == 3
-
-READ_SIZE = 8192
-
-total_bytes_read = 0
-temp_in_file = "-"
-
-if (len(sys.argv) > 6):
- temp_in_file = sys.argv[6]
-
-temp_out_handle, temp_out_fname = tempfile.mkstemp()
-
-font = "-I/usr/share/cups/fonts"
-device = "-sDEVICE=tiffg4 -dMaxStripSize=0 -r204x196 -dNOPAUSE -dBATCH -dSAFER -dPARANOIDSAFER -dSHORTERRORS -dWRITESYSTEMDICT -dGHOSTSCRIPT -sstdout=%stderr -sOutputFile=" + temp_out_fname + " " + temp_in_file
-
-gs_command = "/usr/bin/gs" + " " + font + " " + device
-
-exit_code = os.system(gs_command)
-
-file_len = os.stat(temp_out_fname).st_size
-if (file_len < READ_SIZE):
- READ_SIZE = file_len
-
-os.close(temp_out_handle)
-
-out_handle = open(temp_out_fname, mode='rb')
-while (total_bytes_read < file_len):
- data = out_handle.read(READ_SIZE)
- if PY3:
- sys.stdout.buffer.write(data)
- else:
- sys.stdout.write(data)
- total_bytes_read += READ_SIZE
-out_handle.close()
-
-os.remove(temp_out_fname)
-sys.exit(0)
+#!/bin/sh
+if [ $# -lt 6 ]; then
+ IN=-_
+else
+ IN="$6"
+fi
+
+TMPFILE=`mktemp /tmp/pstotiff.XXXXXX` || exit 1
+gs -I/usr/share/cups/fonts -sDEVICE=tiffg4 -dMaxStripSize=0 -r204x196 \
+ -dNOPAUSE -dBATCH -dSAFER -dPARANOIDSAFER \
+ -dSHORTERRORS -dWRITESYSTEMDICT -dGHOSTSCRIPT \
+ -sstdout=%stderr -sOutputFile="$TMPFILE" "$IN"
+RET=$?
+cat "$TMPFILE"
+rm -f "$TMPFILE"
+exit $RET

22
SOURCES/hplip-repack.sh Executable file
View File

@ -0,0 +1,22 @@
#!/usr/bin/bash
VERSION=$1
if [ "${VERSION:="*"}" == "*" ]
then
echo "Define a version of hplip as an argument."
exit 1
fi
# extract the original tarball
tar -xaf hplip-$VERSION.tar.gz || exit 1
# remove unwanted files
rm hplip-$VERSION/prnt/hpcups/ErnieFilter.{cpp,h} hplip-$VERSION/prnt/hpijs/ernieplatform.h || exit 1
# compress into a new tarball
tar -cjvf hplip-$VERSION-repack.tar.gz hplip-$VERSION || exit 1
# upload a new source tarball
#fedpkg new-sources hplip-$VERSION-repack.tar.gz || exit 1

View File

@ -0,0 +1,16 @@
diff -up hplip-3.9.12/prnt/backend/hp.c.retry-open hplip-3.9.12/prnt/backend/hp.c
--- hplip-3.9.12/prnt/backend/hp.c.retry-open 2010-01-05 15:14:30.000000000 +0000
+++ hplip-3.9.12/prnt/backend/hp.c 2010-01-05 15:16:03.521911780 +0000
@@ -741,12 +741,6 @@ int main(int argc, char *argv[])
goto bugout;
}
- if (stat != HPMUD_R_DEVICE_BUSY)
- {
- BUG("ERROR: open device failed stat=%d: %s\n", stat, argv[0]);
- goto bugout;
- }
-
/* Display user error. */
device_event(argv[0], printer, 5000+stat, argv[2], argv[1], argv[3]);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,25 @@
diff -up hplip-3.18.12/scan.py.scan-tmp hplip-3.18.12/scan.py
--- hplip-3.18.12/scan.py.scan-tmp 2019-01-08 12:48:20.194815147 +0100
+++ hplip-3.18.12/scan.py 2019-01-08 12:50:47.942620000 +0100
@@ -1887,7 +1887,7 @@ try:
if ('editor' in dest or 'viewer' in dest or 'email' in dest or 'print' in dest) \
and not file_saved:
- output_fd, output = utils.make_temp_file(suffix='.png')
+ output_fd, output = utils.make_temp_file(dir='/var/tmp', suffix='.png')
try:
'''pyPlatform = platform.python_version()
num = pyPlatform.split('.')
diff -up hplip-3.18.12/scan/sane.py.scan-tmp hplip-3.18.12/scan/sane.py
--- hplip-3.18.12/scan/sane.py.scan-tmp 2018-12-03 08:10:22.000000000 +0100
+++ hplip-3.18.12/scan/sane.py 2019-01-08 12:48:20.194815147 +0100
@@ -425,7 +425,8 @@ class ScanThread(threading.Thread):
self.dev = device
self.update_queue = update_queue
self.event_queue = event_queue
- self.buffer_fd, self.buffer_path = utils.make_temp_file(prefix='hpscan')
+ self.buffer_fd, self.buffer_path = utils.make_temp_file(dir='/var/tmp',
+ prefix='hpscan')
self.buffer = os.fdopen(self.buffer_fd, "w+b")
self.format = -1
self.format_name = ''

View File

@ -0,0 +1,12 @@
diff -up hplip-3.15.2/base/logger.py.silence-ioerror hplip-3.15.2/base/logger.py
--- hplip-3.15.2/base/logger.py.silence-ioerror 2015-03-16 16:48:12.750337907 +0000
+++ hplip-3.15.2/base/logger.py 2015-03-16 16:48:34.850253564 +0000
@@ -199,6 +199,8 @@ class Logger(object):
out.write('\n')
out.flush()
+ except IOError:
+ pass
finally:
self._lock.release()

View File

@ -0,0 +1,21 @@
diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.snmp-quirks hplip-3.19.6/prnt/drv/hpcups.drv.in
--- hplip-3.19.6/prnt/drv/hpcups.drv.in.snmp-quirks 2019-07-12 08:38:36.362527348 +0200
+++ hplip-3.19.6/prnt/drv/hpcups.drv.in 2019-07-12 08:46:28.236417835 +0200
@@ -10334,6 +10334,8 @@ Manufacturer "HP"
Attribute "NickName" "" "HP Officejet Pro 8500 a909a, hpcups $Version"
Attribute "ShortNickName" "" "HP OJ Pro 8500 a909a hpijs"
Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet pro 8500 a909a;DES:officejet pro 8500 a909a;"
+ // This device lies about its supplies capacity.
+ Attribute "cupsSNMPQuirks" "" "capacity"
PCFileName "hp-officejet_pro_8500_a909a.ppd"
Attribute "Product" "" "(HP Officejet Pro 8500 All-in-one Printer - a909a)"
}
@@ -10342,6 +10344,8 @@ Manufacturer "HP"
Attribute "NickName" "" "HP Officejet Pro 8500 a909g, hpcups $Version"
Attribute "ShortNickName" "" "HP OJ Pro 8500 a909g hpijs"
Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet pro 8500 a909g;DES:officejet pro 8500 a909g;"
+ // This device lies about its supplies capacity.
+ Attribute "cupsSNMPQuirks" "" "capacity"
PCFileName "hp-officejet_pro_8500_a909g.ppd"
Attribute "Product" "" "(HP Officejet Pro 8500 Wireless All-in-one Printer - a909g)"
}

View File

@ -0,0 +1,48 @@
diff -up hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp
--- hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp.strncpy 2015-01-21 16:52:44.066497631 +0000
+++ hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp 2015-01-21 16:59:46.216434376 +0000
@@ -203,6 +203,7 @@ HPCupsFilter::HPCupsFilter() : m_pPrinte
adj_k_width = 0;
black_raster = NULL;
color_raster = NULL;
+ memset (&m_JA, 0, sizeof (m_JA));
}
HPCupsFilter::~HPCupsFilter()
@@ -384,9 +385,9 @@ DRIVER_ERROR HPCupsFilter::startPage (cu
m_JA.media_attributes.physical_height = cups_header->PageSize[1];
m_JA.media_attributes.printable_width = ((cups_header->ImagingBoundingBox[2]-cups_header->ImagingBoundingBox[0]) * horz_res) / 72;
m_JA.media_attributes.printable_height = ((cups_header->ImagingBoundingBox[3]-cups_header->ImagingBoundingBox[1]) * vert_res) / 72;
- strncpy(m_JA.media_attributes.PageSizeName, &cups_header->cupsString[0][0], sizeof(m_JA.media_attributes.PageSizeName));
- strncpy(m_JA.media_attributes.MediaTypeName, cups_header->MediaType, sizeof(m_JA.media_attributes.MediaTypeName));
- strncpy(m_JA.quality_attributes.hbpl1_print_quality, cups_header->OutputType, sizeof(m_JA.quality_attributes.hbpl1_print_quality));
+ strncpy(m_JA.media_attributes.PageSizeName, &cups_header->cupsString[0][0], sizeof(m_JA.media_attributes.PageSizeName)-1);
+ strncpy(m_JA.media_attributes.MediaTypeName, cups_header->MediaType, sizeof(m_JA.media_attributes.MediaTypeName)-1);
+ strncpy(m_JA.quality_attributes.hbpl1_print_quality, cups_header->OutputType, sizeof(m_JA.quality_attributes.hbpl1_print_quality)-1);
m_JA.color_mode = cups_header->cupsRowStep;
}
else {
diff -up hplip-3.14.10/prnt/hpijs/hpijs.cpp.strncpy hplip-3.14.10/prnt/hpijs/hpijs.cpp
--- hplip-3.14.10/prnt/hpijs/hpijs.cpp.strncpy 2015-01-21 17:00:03.225512410 +0000
+++ hplip-3.14.10/prnt/hpijs/hpijs.cpp 2015-01-21 17:04:59.308870785 +0000
@@ -605,7 +605,7 @@ int main (int argc, char *argv[], char *
}
if (argc > 2)
- strncpy(user_name, argv[2], sizeof(user_name));
+ strncpy(user_name, argv[2], sizeof(user_name) - 1);
#ifdef HAVE_LIBHPIP
char *pDev;
diff -up hplip-3.14.10/prnt/hpijs/hpijsfax.cpp.strncpy hplip-3.14.10/prnt/hpijs/hpijsfax.cpp
--- hplip-3.14.10/prnt/hpijs/hpijsfax.cpp.strncpy 2015-01-21 17:05:06.585904171 +0000
+++ hplip-3.14.10/prnt/hpijs/hpijsfax.cpp 2015-01-21 17:05:15.787946389 +0000
@@ -282,7 +282,7 @@ int hpijsFaxServer (int argc, char **arg
char user_name[32]={0,};
if (argc > 2)
- strncpy(user_name, argv[2], sizeof(user_name));
+ strncpy(user_name, argv[2], sizeof(user_name) - 1);
snprintf(hpFileName,sizeof(hpFileName),"%s/hp_%s_ijsfax_Log_XXXXXX",CUPS_TMP_DIR, user_name);

View File

@ -0,0 +1,50 @@
diff -up hplip-3.9.6b/prnt/hpijs/dj3320.cpp.strstr-const hplip-3.9.6b/prnt/hpijs/dj3320.cpp
--- hplip-3.9.6b/prnt/hpijs/dj3320.cpp.strstr-const 2009-06-25 21:02:29.000000000 +0100
+++ hplip-3.9.6b/prnt/hpijs/dj3320.cpp 2009-07-27 16:14:52.868542337 +0100
@@ -405,7 +405,7 @@ DISPLAY_STATUS DJ3320::ParseError (BYTE
{
DRIVER_ERROR err = NO_ERROR;
BYTE byDevIDBuffer[DevIDBuffSize];
- char *pcStr = NULL;
+ const char *pcStr = NULL;
BYTE byStatus1, byStatus2;
memset(byDevIDBuffer, 0, sizeof(byDevIDBuffer));
diff -up hplip-3.9.6b/prnt/hpijs/registry.cpp.strstr-const hplip-3.9.6b/prnt/hpijs/registry.cpp
--- hplip-3.9.6b/prnt/hpijs/registry.cpp.strstr-const 2009-06-25 21:02:29.000000000 +0100
+++ hplip-3.9.6b/prnt/hpijs/registry.cpp 2009-07-27 16:18:41.583417187 +0100
@@ -290,14 +290,14 @@ DRIVER_ERROR DeviceRegistry::SelectDevic
err = pSS->GetDeviceID(DevIDBuffer, DevIDBuffSize, FALSE);
ERRCHECK; // should be either NO_ERROR or BAD_DEVICE_ID
- char *cmdStr = (char *) strstr ((const char *) DevIDBuffer+2, "CMD:");
+ char *cmdStr = strstr ((char *) DevIDBuffer+2, "CMD:");
char *cmdStrEnd;
if ((strstr((const char *) DevIDBuffer+2,"CMD:LDL")))
{
device = eDJ3320;
match = TRUE;
}
- if (!match && cmdStr && (cmdStrEnd = (char *) strstr (cmdStr, ";")))
+ if (!match && cmdStr && (cmdStrEnd = strstr (cmdStr, ";")))
{
*cmdStrEnd = '\0';
if (strstr (cmdStr, "LDL"))
@@ -309,12 +309,12 @@ DRIVER_ERROR DeviceRegistry::SelectDevic
}
if (!match && !cmdStr)
{
- cmdStr = (char *) strstr ((const char *) DevIDBuffer+2, "COMMAND SET:");
+ cmdStr = strstr ((char *) DevIDBuffer+2, "COMMAND SET:");
}
- if (!match && cmdStr && (strstr ((const char *) cmdStr+4, "POSTSCRIPT") ||
- strstr ((const char *) cmdStr+4, "PostScript") ||
- strstr ((const char *) cmdStr+4, "Postscript") ||
- strstr ((const char *) cmdStr+4, "postscript") ))
+ if (!match && cmdStr && (strstr (cmdStr+4, "POSTSCRIPT") ||
+ strstr (cmdStr+4, "PostScript") ||
+ strstr (cmdStr+4, "Postscript") ||
+ strstr (cmdStr+4, "postscript") ))
{
device = ePScript;
match = TRUE;

View File

@ -0,0 +1,20 @@
diff --git a/systray.py b/systray.py
index 07db0fa..3a35b30 100644
--- a/systray.py
+++ b/systray.py
@@ -89,7 +89,14 @@ if __name__ == '__main__':
log.debug("Creating pipe: hpssd (%d) ==> systemtray (%d)" % (w1, r1))
parent_pid = os.getpid()
- child_pid1 = os.fork()
+ try:
+ child_pid1 = os.fork()
+ except BlockingIOErrror as e:
+ log.error("hp-systray: error during fork - %s" % e)
+ os.close(w1)
+ os.close(r1)
+ mod.unlockInstance()
+ sys.exit(1)
if child_pid1:
# parent (UI)

View File

@ -0,0 +1,93 @@
diff --git a/copier/copier.py b/copier/copier.py
index a595baa..7794f48 100644
--- a/copier/copier.py
+++ b/copier/copier.py
@@ -73,13 +73,13 @@ class PMLCopyDevice(device.Device):
def isCopyActive(self):
if self.copy_thread is not None:
- return self.copy_thread.isAlive()
+ return self.copy_thread.is_alive()
else:
return False
def waitForCopyThread(self):
if self.copy_thread is not None and \
- self.copy_thread.isAlive():
+ self.copy_thread.is_alive():
self.copy_thread.join()
diff --git a/fax/fax.py b/fax/fax.py
index 3d69226..0878a64 100644
--- a/fax/fax.py
+++ b/fax/fax.py
@@ -478,13 +478,13 @@ class FaxDevice(device.Device):
def isSendFaxActive(self):
if self.send_fax_thread is not None:
- return self.send_fax_thread.isAlive()
+ return self.send_fax_thread.is_alive()
else:
return False
def waitForSendFaxThread(self):
if self.send_fax_thread is not None and \
- self.send_fax_thread.isAlive():
+ self.send_fax_thread.is_alive():
try:
self.send_fax_thread.join()
diff --git a/fax/pmlfax.py b/fax/pmlfax.py
index b68ff6a..b1020d0 100644
--- a/fax/pmlfax.py
+++ b/fax/pmlfax.py
@@ -179,13 +179,13 @@ class PMLFaxDevice(FaxDevice):
def isUploadLogActive(self):
if self.upload_log_thread is not None:
- return self.upload_log_thread.isAlive()
+ return self.upload_log_thread.is_alive()
else:
return False
def waitForUploadLogThread(self):
if self.upload_log_thread is not None and \
- self.upload_log_thread.isAlive():
+ self.upload_log_thread.is_alive():
self.upload_log_thread.join()
diff --git a/scan/sane.py b/scan/sane.py
index b6c4acd..e8f8db8 100755
--- a/scan/sane.py
+++ b/scan/sane.py
@@ -378,14 +378,14 @@ class ScanDevice:
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 @@ class ScanDevice:
#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

View File

@ -0,0 +1,12 @@
diff --git a/prnt/hpcups/CommonDefinitions.h b/prnt/hpcups/CommonDefinitions.h
index 082aec9..86763d4 100644
--- a/prnt/hpcups/CommonDefinitions.h
+++ b/prnt/hpcups/CommonDefinitions.h
@@ -48,7 +48,6 @@
#include <syslog.h>
#include <assert.h>
#include <time.h>
-#include <sys/timeb.h>
#include <string.h>
#ifndef _GNU_SOURCE

12
SOURCES/hplip-typo.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up hplip-3.20.11/firmware.py.typo hplip-3.20.11/firmware.py
--- hplip-3.20.11/firmware.py.typo 2021-02-03 10:53:34.311743805 +0100
+++ hplip-3.20.11/firmware.py 2021-02-03 10:54:13.229386257 +0100
@@ -99,7 +99,7 @@ try:
if mode == GUI_MODE and (ui_toolkit == 'qt4' or ui_toolkit == 'qt5'):
if not utils.canEnterGUIMode4():
log.error("%s -u/--gui requires Qt4/Qt5 GUI support. Entering interactive mode." % __mod__)
- mode = INTERACTIVE_MODE4
+ mode = INTERACTIVE_MODE
elif mode == GUI_MODE and ui_toolkit == 'qt3':
if not utils.canEnterGUIMode():

View File

@ -0,0 +1,12 @@
diff -up hplip-3.17.11/Makefile.am.udev-rules hplip-3.17.11/Makefile.am
--- hplip-3.17.11/Makefile.am.udev-rules 2017-12-07 13:44:04.472414453 +0100
+++ hplip-3.17.11/Makefile.am 2017-12-07 15:20:18.544755557 +0100
@@ -132,7 +132,7 @@ dist_rulessystem_DATA =data/rules/hplip-
# hpmud.rules
if !HPLIP_CLASS_DRIVER
-rulesdir = /etc/udev/rules.d
+rulesdir = /usr/lib/udev/rules.d
if UDEV_SYSFS_RULES
dist_rules_DATA = data/rules/56-hpmud_sysfs.rules
else

View File

@ -0,0 +1,96 @@
diff --git a/base/module.py b/base/module.py
index dd3efa3..04ac5b8 100644
--- a/base/module.py
+++ b/base/module.py
@@ -432,6 +432,12 @@ class Module(object):
if show_usage is not None:
sys.exit(0)
+ if mode == GUI_MODE:
+ if not utils.canEnterGUIMode4():
+ log.warn("GUI mode not available - switching to interactive mode.")
+ mode = INTERACTIVE_MODE
+ ui_toolkit = 'none'
+
self.mode = mode
return opts, device_uri, printer_name, mode, ui_toolkit, lang
diff --git a/base/utils.py b/base/utils.py
index 98437a3..9b8813b 100644
--- a/base/utils.py
+++ b/base/utils.py
@@ -722,6 +722,15 @@ def canEnterGUIMode4(): # qt4
log.warn(e)
return False
+ try:
+ import ui4
+ except ImportError:
+ try:
+ import ui5
+ except ImportError as e:
+ log.warn(e)
+ return False
+
return True
@@ -734,6 +743,11 @@ def checkPyQtImport(): # qt3
if os.getenv('DISPLAY') and os.getenv('STARTED_FROM_MENU'):
no_qt_message_gtk()
+ try:
+ import ui
+ except ImportError:
+ return False
+
log.error("PyQt not installed. GUI not available. Exiting.")
return False
@@ -781,11 +795,13 @@ def checkPyQtImport4():
import PyQt4
import ui4
except ImportError:
- import PyQt5
- import ui5
- else:
- log.debug("HPLIP is not installed properly or is installed without graphical support. Please reinstall HPLIP again")
- return False
+ try:
+ import PyQt5
+ import ui5
+ except ImportError:
+ log.debug('GUI not available.')
+ return False
+
return True
# def checkPyQtImport5():
diff --git a/fab.py b/fab.py
index 5577af5..194ceed 100755
--- a/fab.py
+++ b/fab.py
@@ -776,14 +776,15 @@ mod.setUsage(module.USAGE_FLAG_NONE)
opts, device_uri, printer_name, mode, ui_toolkit, loc = \
mod.parseStdOpts(handle_device_printer=False)
-if ui_toolkit == 'qt3':
- if not utils.canEnterGUIMode():
- log.error("%s GUI mode requires GUI support (try running with --qt4). Entering interactive mode." % __mod__)
- mode = INTERACTIVE_MODE
-else:
- if not utils.canEnterGUIMode4():
- log.error("%s GUI mode requires GUI support (try running with --qt3). Entering interactive mode." % __mod__)
- mode = INTERACTIVE_MODE
+if ui_toolkit != 'none':
+ if ui_toolkit == 'qt3':
+ if not utils.canEnterGUIMode():
+ log.error("%s GUI mode requires GUI support (try running with --qt4). Entering interactive mode." % __mod__)
+ mode = INTERACTIVE_MODE
+ else:
+ if not utils.canEnterGUIMode4():
+ log.error("%s GUI mode requires GUI support (try running with --qt3). Entering interactive mode." % __mod__)
+ mode = INTERACTIVE_MODE
if mode == GUI_MODE:

View File

@ -0,0 +1,18 @@
diff --git a/base/sixext.py b/base/sixext.py
index 0bf4fc4..311bf72 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):

View File

@ -0,0 +1,40 @@
diff -up hplip-3.18.5/base/utils.py.use-binary-str hplip-3.18.5/base/utils.py
--- hplip-3.18.5/base/utils.py.use-binary-str 2018-05-28 13:52:32.698082273 +0200
+++ hplip-3.18.5/base/utils.py 2018-05-28 13:53:20.563707314 +0200
@@ -961,10 +961,7 @@ else:
def printable(s):
- if s:
- return s.translate(identity, unprintable)
- else:
- return ""
+ return s.translate(identity, unprintable)
def any(S,f=lambda x:x):
diff -up hplip-3.18.5/fax/pmlfax.py.use-binary-str hplip-3.18.5/fax/pmlfax.py
--- hplip-3.18.5/fax/pmlfax.py.use-binary-str 2018-05-24 06:34:40.000000000 +0200
+++ hplip-3.18.5/fax/pmlfax.py 2018-05-28 13:52:05.752293151 +0200
@@ -143,8 +143,8 @@ class PMLFaxDevice(FaxDevice):
def getPhoneNum(self):
if PY3:
- data = utils.printable(self.getPML(pml.OID_FAX_LOCAL_PHONE_NUM)[1])
- return data
+ data = utils.printable(self.getPML(pml.OID_FAX_LOCAL_PHONE_NUM)[1].encode('utf-8'))
+ return data.decode('utf-8')
else:
return utils.printable(self.getPML(pml.OID_FAX_LOCAL_PHONE_NUM)[1])
phone_num = property(getPhoneNum, setPhoneNum, doc="OID_FAX_LOCAL_PHONE_NUM")
@@ -155,8 +155,8 @@ class PMLFaxDevice(FaxDevice):
def getStationName(self):
if PY3:
- data = utils.printable(self.getPML(pml.OID_FAX_STATION_NAME)[1])
- return data
+ data = utils.printable(self.getPML(pml.OID_FAX_STATION_NAME)[1].encode('utf-8'))
+ return data.decode('utf-8')
else:
return utils.printable(self.getPML(pml.OID_FAX_STATION_NAME)[1])

View File

@ -0,0 +1,12 @@
diff -up hplip-3.19.6/ui5/wifisetupdialog.py.wifisetup-bad-call-fix hplip-3.19.6/ui5/wifisetupdialog.py
--- hplip-3.19.6/ui5/wifisetupdialog.py.wifisetup-bad-call-fix 2019-07-12 08:46:56.873167869 +0200
+++ hplip-3.19.6/ui5/wifisetupdialog.py 2019-07-12 08:49:36.813769803 +0200
@@ -570,7 +570,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog
try:
self.ip,_,addressmode, subnetmask, gateway, pridns, sec_dns= self.wifiObj.getIPConfiguration(self.dev, self.adapterName)
if self.ip == "0.0.0.0":
- self.ip, subnetmask, gateway, pri_dns, sec_dns, addressmode = self.wifiObj.getwifiotherdetails(self.dev,self.adapterName)
+ self.ip, subnetmask, gateway, pridns, sec_dns, addressmode = self.wifiObj.getwifiotherdetails(self.dev,self.adapterName)
vsa_codes = self.wifiObj.getVSACodes(self.dev, self.adapterName)
ss_max, ss_min, ss_val, ss_dbm = self.wifiObj.getSignalStrength(self.dev, self.adapterName,self.network, self.adaptor_id)
self.hn = self.wifiObj.getHostname(self.dev)

54
SOURCES/hplip.appdata.xml Normal file
View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 Richard Hughes <richard@hughsie.com> -->
<component type="desktop-application">
<id>HP-hplip.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0 and MIT and BSD-2-Clause</project_license>
<name>HPLIP Graphic Tools</name>
<summary>HPLIP GUI tools and GUI part of other HPLIP tools</summary>
<description>
<p> The HPLIP GUI subpackage provides graphic tools for the management of supported HP printers. These tools are not capable to run without graphical user interface, or they have unremoveable dependency on GUI modules. </p>
<ul>
<li>hp-check - tool for checking dependencies,</li>
<li>hp-print - UI frontend for printing,</li>
<li>hp-systray - tool for monitoring HP device status,</li>
<li>hp-toolbox - HP Device Manager,</li>
<li>hp-devicesettings - device settings tool,</li>
<li>hp-faxsetup - fax device setup tool,</li>
<li>hp-linefeedcal - line feed calibration tool,</li>
<li>hp-makecopies - tool for making copies for HP AiO and MFP devices,</li>
<li>hp-printsettings - printer settings tool,</li>
<li>and hp-wificonfig - Wifi/Wireless/802.11 configuration tool for connecting HP printer to Wifi</li>
</ul>
<p>This subpackage also provides GUI parts for tools shipped by the HPLIP base package:</p>
<ul>
<li>hp-align - cartridge alignment tool for HP inkjet printers,</li>
<li>hp-clean - printhead cleaning tool for HP inkjet printers,</li>
<li>hp-colorcal - color calibration tool for HP inkjet printers,</li>
<li>hp-diagnose_queues - auto config tool for HP MFP to diagnose queues configuration,</li>
<li>hp-fab - simple fax address book,</li>
<li>hp-firmware - tool for download firmware for HP device,</li>
<li>hp-info - tool for querying a HP printer about static model information, dynamic status information, and CUPS printer queue settings,</li>
<li>hp-plugin - HP proprietary plugin download and install tool,</li>
<li>hp-sendfax - PC send fax tool for HP MFP printers,</li>
<li>hp-setup - tool for installing printers and faxes in the CUPS spooler,</li>
<li>hp-testpage - tool for printing testpage,</li>
<li>and hp-unload - tool for accessing inserted photo cards on supported HP printers (alternative for devices without USB mass storage support or for access to photo cards over a network).</li>
</ul>
<p>The tools that do not need GUI for its functionality must be run with the '-i' option when the hplip-gui package is not installed.</p>
<p>The Launch button does not work because this subpackage is set of tools and it is not set which tool to launch from Gnome Software.</p>
</description>
<screenshots>
<screenshot type="default">
<image>https://raw.githubusercontent.com/zdohnal/hplip/master/hplip1.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/zdohnal/hplip/master/hplip2.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/zdohnal/hplip/master/hplip3.png</image>
</screenshot>
</screenshots>
<url type="homepage">http://hplipopensource.com/</url>
<update_contact>richard_at_hughsie.com</update_contact>
</component>

2579
SPECS/hplip.spec Normal file

File diff suppressed because it is too large Load Diff