import hplip-3.23.12-7.el10

i10c-beta changed/i10c-beta/hplip-3.23.12-7.el10
MSVSphere Packaging Team 2 months ago
commit bfb35143c0
Signed by: sys_gitsync
GPG Key ID: B2B0B9F29E528FE8

3
.gitignore vendored

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

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

@ -0,0 +1,39 @@
diff --git a/Makefile.am b/Makefile.am
index f65afea..12317dc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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_DATA += prnt/ipp-usb/HPLIP.conf
dist_noinst_SCRIPTS += dat2drv.py install.py hplip-install init-suse-firewall init-iptables-firewall class_rpm_build.sh hplipclassdriver.spec createPPD.sh Makefile_dat2drv hpijs-drv
@@ -597,7 +597,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp
prnt/hpcups/ImageProcessor.h
hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
-hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lImageProcessor -lcups -lcupsimage -lz $(DBUS_LIBS)
+hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lcups -lcupsimage -lz $(DBUS_LIBS)
#else
#hpcupsdir = $(cupsfilterdir)
#hpcups_PROGRAMS = hpcups
@@ -687,16 +687,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 [ -d "/usr/share/ipp-usb/quirks/" ]; then \
echo "ipp-usb directory exists"; \
cp prnt/ipp-usb/HPLIP.conf /usr/share/ipp-usb/quirks/ ; \

@ -0,0 +1,417 @@
diff -up hplip-3.23.3/ui5/devmgr5.py.qmsgbox-typos-fix hplip-3.23.3/ui5/devmgr5.py
--- hplip-3.23.3/ui5/devmgr5.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui5/devmgr5.py 2023-05-29 13:48:48.429731297 +0200
@@ -144,8 +144,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:
@@ -154,8 +153,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 -up hplip-3.23.3/ui5/fabwindow.py.qmsgbox-typos-fix hplip-3.23.3/ui5/fabwindow.py
--- hplip-3.23.3/ui5/fabwindow.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui5/fabwindow.py 2023-05-29 13:48:48.429731297 +0200
@@ -344,7 +344,7 @@ class FABWindow(QMainWindow, Ui_MainWin
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 -up hplip-3.23.3/ui5/nodevicesdialog.py.qmsgbox-typos-fix hplip-3.23.3/ui5/nodevicesdialog.py
--- hplip-3.23.3/ui5/nodevicesdialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui5/nodevicesdialog.py 2023-05-29 13:48:48.429731297 +0200
@@ -64,8 +64,7 @@ class NoDevicesDialog(QDialog, Ui_NoDevi
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 -up hplip-3.23.3/ui5/plugindialog.py.qmsgbox-typos-fix hplip-3.23.3/ui5/plugindialog.py
--- hplip-3.23.3/ui5/plugindialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui5/plugindialog.py 2023-05-29 13:48:48.429731297 +0200
@@ -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 -up hplip-3.23.3/ui5/queuesconf.py.qmsgbox-typos-fix hplip-3.23.3/ui5/queuesconf.py
--- hplip-3.23.3/ui5/queuesconf.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui5/queuesconf.py 2023-05-29 13:48:48.430731291 +0200
@@ -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 -up hplip-3.23.3/ui5/setupdialog.py.qmsgbox-typos-fix hplip-3.23.3/ui5/setupdialog.py
--- hplip-3.23.3/ui5/setupdialog.py.qmsgbox-typos-fix 2023-05-29 13:48:48.430731291 +0200
+++ hplip-3.23.3/ui5/setupdialog.py 2023-05-29 13:54:03.236851925 +0200
@@ -886,7 +886,7 @@ class SetupDialog(QDialog, Ui_Dialog):
self.windowTitle(),
warn_text,
QMessageBox.Yes |
- QMessageBox.No |
+ QMessageBox.No,
QMessageBox.NoButton) == QMessageBox.Yes):
i = 2
while True:
@@ -1171,7 +1171,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
@@ -1223,7 +1223,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
diff -up hplip-3.23.3/ui/devmgr4.py.qmsgbox-typos-fix hplip-3.23.3/ui/devmgr4.py
--- hplip-3.23.3/ui/devmgr4.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui/devmgr4.py 2023-05-29 13:48:48.424731328 +0200
@@ -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 -up hplip-3.23.3/ui/faxaddrbookform.py.qmsgbox-typos-fix hplip-3.23.3/ui/faxaddrbookform.py
--- hplip-3.23.3/ui/faxaddrbookform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui/faxaddrbookform.py 2023-05-29 13:48:48.424731328 +0200
@@ -228,7 +228,7 @@ class FaxAddrBookGroupsForm(FaxAddrBookG
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_ba
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_ba
QMessageBox.critical(self,
self.caption(),
QString(error_text),
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff -up hplip-3.23.3/ui/faxsendjobform.py.qmsgbox-typos-fix hplip-3.23.3/ui/faxsendjobform.py
--- hplip-3.23.3/ui/faxsendjobform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui/faxsendjobform.py 2023-05-29 13:48:48.424731328 +0200
@@ -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 -up hplip-3.23.3/ui/firmwaredialog.py.qmsgbox-typos-fix hplip-3.23.3/ui/firmwaredialog.py
--- hplip-3.23.3/ui/firmwaredialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui/firmwaredialog.py 2023-05-29 13:48:48.424731328 +0200
@@ -109,7 +109,7 @@ class FirmwareDialog(QDialog, FirmwareDi
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff -up hplip-3.23.3/ui/makecopiesform.py.qmsgbox-typos-fix hplip-3.23.3/ui/makecopiesform.py
--- hplip-3.23.3/ui/makecopiesform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui/makecopiesform.py 2023-05-29 13:48:48.424731328 +0200
@@ -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 -up hplip-3.23.3/ui/nodevicesform.py.qmsgbox-typos-fix hplip-3.23.3/ui/nodevicesform.py
--- hplip-3.23.3/ui/nodevicesform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui/nodevicesform.py 2023-05-29 13:48:48.424731328 +0200
@@ -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 -up hplip-3.23.3/ui/pluginform2.py.qmsgbox-typos-fix hplip-3.23.3/ui/pluginform2.py
--- hplip-3.23.3/ui/pluginform2.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui/pluginform2.py 2023-05-29 13:48:48.424731328 +0200
@@ -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 -up hplip-3.23.3/ui/printerform.py.qmsgbox-typos-fix hplip-3.23.3/ui/printerform.py
--- hplip-3.23.3/ui/printerform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui/printerform.py 2023-05-29 13:48:48.425731321 +0200
@@ -154,7 +154,7 @@ class PrinterForm(QMainWindow):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff -up hplip-3.23.3/ui/settingsdialog.py.qmsgbox-typos-fix hplip-3.23.3/ui/settingsdialog.py
--- hplip-3.23.3/ui/settingsdialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui/settingsdialog.py 2023-05-29 13:48:48.425731321 +0200
@@ -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 -up hplip-3.23.3/ui/setupform.py.qmsgbox-typos-fix hplip-3.23.3/ui/setupform.py
--- hplip-3.23.3/ui/setupform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui/setupform.py 2023-05-29 13:48:48.425731321 +0200
@@ -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 -up hplip-3.23.3/ui/unloadform.py.qmsgbox-typos-fix hplip-3.23.3/ui/unloadform.py
--- hplip-3.23.3/ui/unloadform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui/unloadform.py 2023-05-29 13:48:48.425731321 +0200
@@ -135,7 +135,7 @@ class UnloadForm(QMainWindow):
QMessageBox.critical(self,
self.caption(),
error_text,
- QMessageBox.Ok,
+ QMessageBox.Ok |\
QMessageBox.NoButton,
QMessageBox.NoButton)
diff -up hplip-3.23.3/ui/upgradeform.py.qmsgbox-typos-fix hplip-3.23.3/ui/upgradeform.py
--- hplip-3.23.3/ui/upgradeform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/ui/upgradeform.py 2023-05-29 13:48:48.425731321 +0200
@@ -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)

@ -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)

@ -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)

@ -0,0 +1,62 @@
#!/usr/bin/bash
# get version from base hplip rpm - it is always in the second column
VER=$(@bindir@/rpm -q hplip | @bindir@/awk -F '-' '{print $2}')
if test "x$VER" = "x"
then
@bindir@/echo "Version was not acquired - exiting..."
exit 1
fi
# plugin name
PLUGIN_FILE="hplip-${VER}-plugin.run"
download()
{
SOURCE="$1"
@bindir@/curl --create-dirs -O --output-dir ~/.hplip ${SOURCE}
}
# link to the plugin
PLUGIN_SOURCE="https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${PLUGIN_FILE}"
FALLBACK_SOURCE="https://developers.hp.com/sites/default/files/${PLUGIN_FILE}"
# create a hidden hplip dir to store a file indicating the plugin version after successful install
# the directory can be used by other hplip tools, so we don't have to remove it if the failure happens
if [ ! -d ~/.hplip ]
then
@bindir@/mkdir ~/.hplip || (@bindir@/echo "Cannot create the ~/.hplip dir, exiting" && exit 1)
fi
for link in ${PLUGIN_SOURCE} ${FALLBACK_SOURCE}
do
download ${link}
if test "x$(file --mime ~/.hplip/${PLUGIN_FILE} | grep 'text/x-shellscript')" = "xtext/x-shellscript"
then
break
fi
done
if test "x$(file --mime ~/.hplip/${PLUGIN_FILE} | grep 'text/x-shellscript')" = "x"
then
@bindir@/echo "The downloaded file does not exist or is not a shell script - error during downloading, exiting..."
exit 1
fi
@bindir@/bash ~/.hplip/${PLUGIN_FILE}
if [ $? -ne 0 ]
then
@bindir@/echo "Plugin installation failed, exiting..."
@bindir@/rm -f ~/.hplip/${PLUGIN_FILE} &> /dev/null
exit 1
fi
@bindir@/rm -f ~/.hplip/${PLUGIN_FILE} &> /dev/null
@bindir@/rm -f ~/.hplip/plugin-installed-* &> /dev/null
@bindir@/touch ~/.hplip/plugin-installed-$VER
exit 0

@ -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

@ -0,0 +1,30 @@
diff -up hplip-3.23.3/setup.py.add-ppd-crash hplip-3.23.3/setup.py
--- hplip-3.23.3/setup.py.add-ppd-crash 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/setup.py 2023-05-29 13:55:03.443497903 +0200
@@ -553,6 +553,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 -up hplip-3.23.3/ui5/setupdialog.py.add-ppd-crash hplip-3.23.3/ui5/setupdialog.py
--- hplip-3.23.3/ui5/setupdialog.py.add-ppd-crash 2023-05-29 13:55:03.443497903 +0200
+++ hplip-3.23.3/ui5/setupdialog.py 2023-05-29 13:57:19.014700721 +0200
@@ -765,10 +765,9 @@ class SetupDialog(QDialog, Ui_Dialog):
pass
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))

@ -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

@ -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

@ -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)
{

@ -0,0 +1,17 @@
diff --git a/installer/core_install.py b/installer/core_install.py
index a6654e2..0bd1e9c 100644
--- a/installer/core_install.py
+++ b/installer/core_install.py
@@ -362,9 +362,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, '-', None, EXTERNALDEP),
+ 'cups-devel': (True, ['base', 'prnt'], CUPS_DEV_STR, self.check_cups_devel, DEPENDENCY_COMPILE_TIME, '1.1', 'pkgconf --modversion cups', GENERALDEP),
+ 'cups-image': (True, ['base', 'prnt'], CUPS_IMG_STR, self.check_cups_image, DEPENDENCY_COMPILE_TIME, '1.1', 'pkgconf --modversion cups', 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),

@ -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:

@ -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) {

@ -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)])

@ -0,0 +1,615 @@
diff -up hplip-3.23.3/common/utils.c.covscan hplip-3.23.3/common/utils.c
--- hplip-3.23.3/common/utils.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/common/utils.c 2023-05-29 13:58:10.969395214 +0200
@@ -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 -up hplip-3.23.3/io/hpmud/hpmud.c.covscan hplip-3.23.3/io/hpmud/hpmud.c
--- hplip-3.23.3/io/hpmud/hpmud.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/io/hpmud/hpmud.c 2023-05-29 13:58:10.970395208 +0200
@@ -759,6 +759,7 @@ enum HPMUD_RESULT hpmud_get_dstat(HPMUD_
}
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 -up hplip-3.23.3/io/hpmud/jd.c.covscan hplip-3.23.3/io/hpmud/jd.c
--- hplip-3.23.3/io/hpmud/jd.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/io/hpmud/jd.c 2023-05-29 13:58:10.970395208 +0200
@@ -31,6 +31,7 @@
#endif
#include <signal.h>
+#include <stdlib.h>
#include "hpmud.h"
#include "hpmudi.h"
diff -up hplip-3.23.3/io/hpmud/model.c.covscan hplip-3.23.3/io/hpmud/model.c
--- hplip-3.23.3/io/hpmud/model.c.covscan 2023-05-29 13:58:10.958395279 +0200
+++ hplip-3.23.3/io/hpmud/model.c 2023-05-29 13:58:10.970395208 +0200
@@ -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 -up hplip-3.23.3/io/hpmud/musb.c.covscan hplip-3.23.3/io/hpmud/musb.c
--- hplip-3.23.3/io/hpmud/musb.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/io/hpmud/musb.c 2023-05-29 13:58:10.970395208 +0200
@@ -776,7 +776,7 @@ static int device_id(int fd, unsigned ch
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 -up hplip-3.23.3/io/hpmud/pp.c.covscan hplip-3.23.3/io/hpmud/pp.c
--- hplip-3.23.3/io/hpmud/pp.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/io/hpmud/pp.c 2023-05-29 13:58:10.970395208 +0200
@@ -632,7 +632,7 @@ static int device_id(int fd, char *buffe
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 -up hplip-3.23.3/Makefile.am.covscan hplip-3.23.3/Makefile.am
--- hplip-3.23.3/Makefile.am.covscan 2023-05-29 13:58:10.944395361 +0200
+++ hplip-3.23.3/Makefile.am 2023-05-29 13:58:10.969395214 +0200
@@ -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)\"
@@ -310,7 +310,7 @@ dist_pcard_DATA = pcard/__init__.py pcar
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
@@ -322,7 +322,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 -up hplip-3.23.3/pcard/fat.c.covscan hplip-3.23.3/pcard/fat.c
--- hplip-3.23.3/pcard/fat.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/pcard/fat.c 2023-05-29 13:58:10.971395203 +0200
@@ -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 -up hplip-3.23.3/prnt/hpijs/context2.cpp.covscan hplip-3.23.3/prnt/hpijs/context2.cpp
--- hplip-3.23.3/prnt/hpijs/context2.cpp.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/prnt/hpijs/context2.cpp 2023-05-29 13:58:10.971395203 +0200
@@ -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 -up hplip-3.23.3/prnt/hpijs/systemservices.cpp.covscan hplip-3.23.3/prnt/hpijs/systemservices.cpp
--- hplip-3.23.3/prnt/hpijs/systemservices.cpp.covscan 2023-03-28 09:26:27.000000000 +0200
+++ hplip-3.23.3/prnt/hpijs/systemservices.cpp 2023-05-29 13:58:10.971395203 +0200
@@ -396,7 +396,10 @@ void SystemServices::AdjustIO(IO_MODE IM
IOMode.bDevID =IM.bDevID && IOMode.bDevID;
if (model)
+ {
strncpy(strModel,model, sizeof(strModel));
+ strModel[sizeof(strModel)-1] = '\0';
+ }
}
APDK_END_NAMESPACE
diff -up hplip-3.23.3/prnt/hpps/hppsfilter.c.covscan hplip-3.23.3/prnt/hpps/hppsfilter.c
--- hplip-3.23.3/prnt/hpps/hppsfilter.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/prnt/hpps/hppsfilter.c 2023-05-29 13:58:10.972395197 +0200
@@ -274,13 +274,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 -up hplip-3.23.3/protocol/hp_ipp.h.covscan hplip-3.23.3/protocol/hp_ipp.h
--- hplip-3.23.3/protocol/hp_ipp.h.covscan 2023-05-29 13:58:10.972395197 +0200
+++ hplip-3.23.3/protocol/hp_ipp.h 2023-05-29 13:59:03.645085468 +0200
@@ -168,6 +168,11 @@ HPIPP_RESULT parseResponseHeader(char* h
HPIPP_RESULT prepend_http_header(raw_ipp *raw_request,const char *resource);
enum HPMUD_RESULT sendUSBRequest(char *buf, int size, raw_ipp *responseptr, char * device_uri);
enum HPMUD_RESULT sendUSBFileRequest(char *buf, int size, int fileHandle,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);
ipp_t * createFaxDetailRequest(const char *printer_name);
ipp_t * getDeviceFaxModemAttributes(char* device_uri,char* printer_name, int *count);
diff -up hplip-3.23.3/scan/sane/bb_ledm.c.covscan hplip-3.23.3/scan/sane/bb_ledm.c
--- hplip-3.23.3/scan/sane/bb_ledm.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/scan/sane/bb_ledm.c 2023-05-29 13:58:10.972395197 +0200
@@ -26,6 +26,7 @@
# include "http.h"
# include "xml.h"
# include <stdlib.h>
+# include <unistd.h>
# include <stdint.h>
diff -up hplip-3.23.3/scan/sane/common.h.covscan hplip-3.23.3/scan/sane/common.h
--- hplip-3.23.3/scan/sane/common.h.covscan 2023-05-29 13:58:10.727396637 +0200
+++ hplip-3.23.3/scan/sane/common.h 2023-05-29 13:58:10.972395197 +0200
@@ -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 -up hplip-3.23.3/scan/sane/escl.c.covscan hplip-3.23.3/scan/sane/escl.c
--- hplip-3.23.3/scan/sane/escl.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/scan/sane/escl.c 2023-05-29 13:58:10.972395197 +0200
@@ -849,7 +849,7 @@ SANE_Status escl_control_option(SANE_Han
//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;
@@ -1159,7 +1159,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 -up hplip-3.23.3/scan/sane/http.c.covscan hplip-3.23.3/scan/sane/http.c
--- hplip-3.23.3/scan/sane/http.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/scan/sane/http.c 2023-05-29 13:58:10.973395191 +0200
@@ -36,6 +36,7 @@
#include <string.h>
#include <syslog.h>
#include <ctype.h>
+#include <unistd.h>
#include "hpmud.h"
#include "http.h"
diff -up hplip-3.23.3/scan/sane/io.c.covscan hplip-3.23.3/scan/sane/io.c
--- hplip-3.23.3/scan/sane/io.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/scan/sane/io.c 2023-05-29 13:58:10.973395191 +0200
@@ -50,7 +50,7 @@ int __attribute__ ((visibility ("hidden"
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"
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"
if (!dbus_connection_send(dbus_conn, msg, NULL))
{
- BUG("dbus message send failed!\n");
+ BUG_SCAN("dbus message send failed!\n");
return 0;
}
diff -up hplip-3.23.3/scan/sane/ledm.c.covscan hplip-3.23.3/scan/sane/ledm.c
--- hplip-3.23.3/scan/sane/ledm.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/scan/sane/ledm.c 2023-05-29 13:58:10.973395191 +0200
@@ -813,7 +813,7 @@ SANE_Status ledm_control_option(SANE_Han
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;
@@ -1078,7 +1078,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 -up hplip-3.23.3/scan/sane/marvell.c.covscan hplip-3.23.3/scan/sane/marvell.c
--- hplip-3.23.3/scan/sane/marvell.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/scan/sane/marvell.c 2023-05-29 13:58:10.976395173 +0200
@@ -134,7 +134,7 @@ static int get_ip_data(struct marvell_se
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_se
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_Con
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_Con
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_Con
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_
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_
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 ha
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 ha
/* 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 han
if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
{
- BUG("ipConvert error=%x\n", ret);
+ BUG_SCAN("ipConvert error=%x\n", ret);
goto bugout;
}
diff -up hplip-3.23.3/scan/sane/sclpml.c.covscan hplip-3.23.3/scan/sane/sclpml.c
--- hplip-3.23.3/scan/sane/sclpml.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/scan/sane/sclpml.c 2023-05-29 13:58:10.976395173 +0200
@@ -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 -up hplip-3.23.3/scan/sane/soap.c.covscan hplip-3.23.3/scan/sane/soap.c
--- hplip-3.23.3/scan/sane/soap.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/scan/sane/soap.c 2023-05-29 13:58:10.977395167 +0200
@@ -142,7 +142,7 @@ static int get_ip_data(struct soap_sessi
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_sessi
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
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
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_Han
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 handl
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 handl
/* 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 handl
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
if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
{
- BUG("ipConvert error=%x\n", ret);
+ BUG_SCAN("ipConvert error=%x\n", ret);
goto bugout;
}
diff -up hplip-3.23.3/scan/sane/soapht.c.covscan hplip-3.23.3/scan/sane/soapht.c
--- hplip-3.23.3/scan/sane/soapht.c.covscan 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/scan/sane/soapht.c 2023-05-29 13:58:10.977395167 +0200
@@ -136,7 +136,7 @@ static int get_ip_data(struct soap_sessi
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_sessi
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_Cons
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_Cons
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_H
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 han
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 han
/* 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 han
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 hand
if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
{
- BUG("ipConvert error=%x\n", ret);
+ BUG_SCAN("ipConvert error=%x\n", ret);
goto bugout;
}

@ -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)"

@ -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

@ -0,0 +1,25 @@
diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
index c23957a..48b248f 100644
--- a/ui5/devmgr5.py
+++ b/ui5/devmgr5.py
@@ -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 ("", "")

@ -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"

@ -0,0 +1,34 @@
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

@ -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, '')

@ -0,0 +1,100 @@
--- 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)

@ -0,0 +1,13 @@
diff --git a/base/queues.py b/base/queues.py
index 2f56c8a..0818574 100755
--- a/base/queues.py
+++ b/base/queues.py
@@ -101,7 +101,7 @@ def parseQueues(mode):
try:
match = LPSTAT_PATTERN.search(p)
printer_name = match.group(1)
- device_uri = match.group(2)
+ device_uri = match.group(3)
cups_printers.append((printer_name, device_uri))
except AttributeError:
pass

@ -0,0 +1,13 @@
diff --git a/base/validation.py b/base/validation.py
index 96e65be..35f22eb 100644
--- a/base/validation.py
+++ b/base/validation.py
@@ -58,7 +58,7 @@ class GPG_Verification(DigiSign_Verification):
if not os.path.exists(self.__gpg_dir):
try:
- os.mkdir(self.__gpg_dir, 0o755)
+ os.mkdir(self.__gpg_dir, 0o700)
except OSError:
log.error("Failed to create %s" % self.__gpg_dir)
self.__change_owner()

@ -0,0 +1,114 @@
diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c
index 57d1dde..3475929 100644
--- a/scan/sane/hpaio.c
+++ b/scan/sane/hpaio.c
@@ -379,7 +379,7 @@ extern SANE_Status sane_hpaio_get_devices(const SANE_Device ***deviceList, SANE_
ResetDeviceList(&DeviceList);
DevDiscovery(localOnly);
*deviceList = (const SANE_Device **)DeviceList;
- SANE_Device*** devList;
+ const SANE_Device*** devList;
orblite_get_devices(devList, localOnly);
return SANE_STATUS_GOOD;
diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c
index 2eb7aba..4eaa468 100644
--- a/scan/sane/orblite.c
+++ b/scan/sane/orblite.c
@@ -64,28 +64,28 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
SANE_NAME_SCAN_TL_X, SANE_TITLE_SCAN_TL_X, SANE_DESC_SCAN_TL_X, // name, title, desc
SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeLeft // constraint_type, constraint
+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeLeft // constraint_type, constraint
},
{
SANE_NAME_SCAN_TL_Y, SANE_TITLE_SCAN_TL_Y, SANE_DESC_SCAN_TL_Y, // name, title, desc
SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeTop // constraint_type, constraint
+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeTop // constraint_type, constraint
},
{
SANE_NAME_SCAN_BR_X, SANE_TITLE_SCAN_BR_X, SANE_DESC_SCAN_BR_X, // name, title, desc
SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeRight // constraint_type, constraint
+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeRight // constraint_type, constraint
},
{
SANE_NAME_SCAN_BR_Y, SANE_TITLE_SCAN_BR_Y, SANE_DESC_SCAN_BR_Y, // name, title, desc
SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeBottom // constraint_type, constraint
+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeBottom // constraint_type, constraint
},
// optResolution, // resolution group
@@ -93,7 +93,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
SANE_NAME_SCAN_RESOLUTION, SANE_TITLE_SCAN_RESOLUTION, SANE_DESC_SCAN_RESOLUTION, // name, title, desc
SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word), // type, unit, size,
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint
+ SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint
},
// optMode, // color/depth group
@@ -101,7 +101,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
SANE_NAME_SCAN_MODE, SANE_TITLE_SCAN_MODE, SANE_DESC_SCAN_MODE, // name, title, desc
SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_modes // constraint type, constraint
+ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_modes // constraint type, constraint
},
// optSource,
@@ -109,7 +109,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
SANE_NAME_SCAN_SOURCE, SANE_TITLE_SCAN_SOURCE, SANE_DESC_SCAN_SOURCE, // name, title, desc
SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_sources // constraint type, constraint
+ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_sources // constraint type, constraint
},
// optPaperSize,
@@ -117,7 +117,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc
SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_paper_sizes // constraint type, constraint
+ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_paper_sizes // constraint type, constraint
},
// optPaperSize,
@@ -125,7 +125,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc
SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word), // type, unit, size,
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint
+ SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint
},
#ifdef NOTDEF
// default template
@@ -274,6 +274,7 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
SANE_Auth_Callback authorize;
const SANE_Device *** device_list;
SANE_Bool local_only;
+ void * temp_handle;
// Allocate handle, set all handle values to zero
@@ -305,7 +306,9 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
if (stat != SANE_STATUS_GOOD)
return stat;
- stat = g_handle->bb_orblite_open(devicename, &g_handle);
+ temp_handle = g_handle;
+ stat = g_handle->bb_orblite_open(devicename, &temp_handle);
+ g_handle = temp_handle;
if (stat == SANE_STATUS_GOOD)
*handle = g_handle;

@ -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;

@ -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;
}

@ -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():

@ -0,0 +1,24 @@
diff --git a/config_usb_printer.py b/config_usb_printer.py
index 946a2d4..8db097e 100755
--- a/config_usb_printer.py
+++ b/config_usb_printer.py
@@ -28,6 +28,7 @@ __doc__ = "Udev invokes this tool. Tool detects the plugin, Smart Install (C/DVD
# Std Lib
import sys
import os
+import time
# Local
from base.g import *
@@ -181,9 +182,10 @@ try:
# ******************************* RUNNING FIRMWARE DOWNLOAD TO DEVICE FOR SUPPORTED PRINTER'S
fw_download_req = mq.get('fw-download', False)
if fw_download_req:
- fw_cmd = "hp-firmware -y3 -s %s"%param
+ fw_cmd = "hp-firmware -n -y3 -s %s"%param
log.info(fw_cmd)
fw_sts, fw_out = utils.run(fw_cmd)
+ time.sleep(5)
if fw_sts == 0:
log.debug("Firmware downloaded to %s "%device_uri)
else:

@ -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()));

@ -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.");

@ -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);

@ -0,0 +1,46 @@
diff -up hplip-3.23.3/setup.py.hpsetup-noscanjets hplip-3.23.3/setup.py
--- hplip-3.23.3/setup.py.hpsetup-noscanjets 2023-05-29 14:16:26.148133678 +0200
+++ hplip-3.23.3/setup.py 2023-05-29 14:16:26.220133253 +0200
@@ -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 -up hplip-3.23.3/ui5/setupdialog.py.hpsetup-noscanjets hplip-3.23.3/ui5/setupdialog.py
--- hplip-3.23.3/ui5/setupdialog.py.hpsetup-noscanjets 2023-05-29 14:16:26.220133253 +0200
+++ hplip-3.23.3/ui5/setupdialog.py 2023-05-29 14:18:12.475041454 +0200
@@ -1391,6 +1391,18 @@ class SetupDialog(QDialog, Ui_Dialog):
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:

@ -0,0 +1,56 @@
diff --git a/base/tui.py b/base/tui.py
index 99bda7b..0f90f92 100644
--- a/base/tui.py
+++ b/base/tui.py
@@ -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 --git a/base/validation.py b/base/validation.py
index ee6b05a..5e955dc 100644
--- a/base/validation.py
+++ b/base/validation.py
@@ -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 = ['keyserver.ubuntu.com',
+ 'pgp.surf.nl',
+ '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_Verification):
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)

@ -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()

@ -0,0 +1,24 @@
diff -up hplip-3.21.12/prnt/hpcups/HPCupsFilter.cpp.logdir hplip-3.21.12/prnt/hpcups/HPCupsFilter.cpp
--- hplip-3.21.12/prnt/hpcups/HPCupsFilter.cpp.logdir 2022-01-12 11:27:25.509348511 +0100
+++ hplip-3.21.12/prnt/hpcups/HPCupsFilter.cpp 2022-01-12 11:29:11.507661838 +0100
@@ -669,7 +669,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);
#ifndef DISABLE_IMAGEPROCESSOR
image_processor_t* imageProcessor=NULL;
IMAGE_PROCESSOR_ERROR result;
diff -up hplip-3.21.12/prnt/hpcups/SystemServices.cpp.logdir hplip-3.21.12/prnt/hpcups/SystemServices.cpp
--- hplip-3.21.12/prnt/hpcups/SystemServices.cpp.logdir 2021-12-13 10:07:36.000000000 +0100
+++ hplip-3.21.12/prnt/hpcups/SystemServices.cpp 2022-01-12 11:27:25.509348511 +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)
{

@ -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)

@ -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

@ -0,0 +1,602 @@
diff -up hplip-3.22.2/cups_drv.inc.missing-drivers hplip-3.22.2/cups_drv.inc
--- hplip-3.22.2/cups_drv.inc.missing-drivers 2022-02-23 08:42:29.000000000 +0100
+++ hplip-3.22.2/cups_drv.inc 2022-03-10 09:11:00.337315604 +0100
@@ -411,6 +411,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_m109-m112.ppd.gz \
@@ -527,6 +528,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-laserjet_tank_1020.ppd.gz \
ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
diff -up hplip-3.22.2/data/models/models.dat.missing-drivers hplip-3.22.2/data/models/models.dat
--- hplip-3.22.2/data/models/models.dat.missing-drivers 2022-03-10 09:10:13.601066235 +0100
+++ hplip-3.22.2/data/models/models.dat 2022-03-10 09:10:13.622066347 +0100
@@ -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.22.2/Makefile.in.missing-drivers hplip-3.22.2/Makefile.in
--- hplip-3.22.2/Makefile.in.missing-drivers 2022-02-23 08:42:31.000000000 +0100
+++ hplip-3.22.2/Makefile.in 2022-03-10 09:11:45.915558795 +0100
@@ -1613,6 +1613,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_m109-m112.ppd.gz \
@@ -1729,6 +1730,7 @@ am__dist_ppd_DATA_DIST = prnt/ps/hp-lase
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-laserjet_tank_1020.ppd.gz \
ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
@@ -4090,6 +4092,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_m109-m112.ppd.gz \
@@ -4206,6 +4209,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-laserjet_tank_1020.ppd.gz \
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
diff -up hplip-3.22.2/prnt/drv/hpcups.drv.in.missing-drivers hplip-3.22.2/prnt/drv/hpcups.drv.in
--- hplip-3.22.2/prnt/drv/hpcups.drv.in.missing-drivers 2022-03-10 09:10:13.554065984 +0100
+++ hplip-3.22.2/prnt/drv/hpcups.drv.in 2022-03-10 09:10:13.629066384 +0100
@@ -22693,6 +22693,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"
@@ -23126,6 +23134,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)

@ -0,0 +1,12 @@
diff -up hplip-3.21.12/installer/pluginhandler.py.missing-links hplip-3.21.12/installer/pluginhandler.py
--- hplip-3.21.12/installer/pluginhandler.py.missing-links 2022-01-12 16:55:39.761934879 +0100
+++ hplip-3.21.12/installer/pluginhandler.py 2022-01-12 17:22:33.367435334 +0100
@@ -167,7 +167,7 @@ class PluginHandle(object):
continue
if link != "":
if not utils.check_library(link):
- self.__plugin_state = PLUGIN_FILES_CORRUPTED
+ pass
def __getPluginInformation(self, callback=None):

@ -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);

@ -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

@ -0,0 +1,108 @@
diff --git a/scan/sane/escl.c b/scan/sane/escl.c
index 9fbbcaf..bc9e0b5 100644
--- a/scan/sane/escl.c
+++ b/scan/sane/escl.c
@@ -37,18 +37,12 @@ static int bb_load(struct escl_session *ps, const char *so)
int stat=1;
/* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
- {
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
- goto bugout;
- }
+ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
+ goto bugout;
/* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
- if ((ps->math_handle = load_library("libm.so")) == NULL)
- {
- if ((ps->math_handle = load_library("libm.so.6")) == NULL)
- goto bugout;
- }
+ if ((ps->math_handle = load_library("libm.so.6")) == NULL)
+ goto bugout;
if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL)
{
SendScanEvent(ps->uri, EVENT_PLUGIN_FAIL);
diff --git a/scan/sane/marvell.c b/scan/sane/marvell.c
index 236f7c9..793104c 100644
--- a/scan/sane/marvell.c
+++ b/scan/sane/marvell.c
@@ -60,18 +60,12 @@ static int bb_load(struct marvell_session *ps, const char *so)
int stat=1;
/* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
- if ((ps->hpmud_handle = load_library("libhpmud.so")) == NULL)
- {
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
- goto bugout;
- }
+ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
+ goto bugout;
/* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
- if ((ps->math_handle = load_library("libm.so")) == NULL)
- {
- if ((ps->math_handle = load_library("libm.so.6")) == NULL)
- goto bugout;
- }
+ if ((ps->math_handle = load_library("libm.so.6")) == NULL)
+ goto bugout;
if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL)
{
diff --git a/scan/sane/soap.c b/scan/sane/soap.c
index 0d22e52..dcd8c7c 100644
--- a/scan/sane/soap.c
+++ b/scan/sane/soap.c
@@ -68,18 +68,12 @@ static int bb_load(struct soap_session *ps, const char *so)
int stat=1;
/* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
- if ((ps->hpmud_handle = load_library("libhpmud.so")) == NULL)
- {
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
- goto bugout;
- }
+ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
+ goto bugout;
/* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
- if ((ps->math_handle = load_library("libm.so")) == NULL)
- {
- if ((ps->math_handle = load_library("libm.so.6")) == NULL)
- goto bugout;
- }
+ if ((ps->math_handle = load_library("libm.so.6")) == NULL)
+ goto bugout;
if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL)
{
diff --git a/scan/sane/soapht.c b/scan/sane/soapht.c
index 139100d..74e8391 100644
--- a/scan/sane/soapht.c
+++ b/scan/sane/soapht.c
@@ -62,18 +62,12 @@ static int bb_load(struct soap_session *ps, const char *so)
int stat=1;
/* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
- {
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
- goto bugout;
- }
+ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
+ goto bugout;
/* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
- if ((ps->math_handle = load_library("libm.so")) == NULL)
- {
- if ((ps->math_handle = load_library("libm.so.6")) == NULL)
- goto bugout;
- }
+ if ((ps->math_handle = load_library("libm.so.6")) == NULL)
+ goto bugout;
if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL)
{

@ -0,0 +1,26 @@
diff --git a/base/g.py b/base/g.py
index 0aa0e2e..96b3131 100644
--- a/base/g.py
+++ b/base/g.py
@@ -128,7 +128,7 @@ class ConfigBase(object):
try:
fp = open(self.filename, "r")
try:
- self.conf.readfp(fp)
+ self.conf.read_file(fp, self.filename)
except configparser.MissingSectionHeaderError:
print("")
log.error("Found No Section in %s. Please set the http proxy for root and try again." % self.filename)
diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
index 3110a0f..3761f89 100644
--- a/ui5/devmgr5.py
+++ b/ui5/devmgr5.py
@@ -1072,7 +1072,7 @@ class DevMgr5(Ui_MainWindow_Derived, Ui_MainWindow, QMainWindow):
hplip_conf = configparser.ConfigParser()
fp = open("/etc/hp/hplip.conf", "r")
- hplip_conf.readfp(fp)
+ hplip_conf.read_file(fp, "/etc/hp/hplip.conf")
fp.close()
try:

@ -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.

@ -0,0 +1,64 @@
diff -up hplip-3.23.3/Makefile.am.no-ernie hplip-3.23.3/Makefile.am
--- hplip-3.23.3/Makefile.am.no-ernie 2023-05-29 13:15:58.008610471 +0200
+++ hplip-3.23.3/Makefile.am 2023-05-29 13:15:58.134609689 +0200
@@ -562,7 +562,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.23.3/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp
--- hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp.no-ernie 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp 2023-05-29 13:17:02.468210361 +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_color_only; // pcl3 printers support RGB only ref:hplip-1701
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.23.3/prnt/hpcups/Pcl3Gui2.h.no-ernie hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h
--- hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h.no-ernie 2023-03-28 09:26:11.000000000 +0200
+++ hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h 2023-05-29 13:15:58.134609689 +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;
};

@ -0,0 +1,34 @@
The pcardext Python extension cannot be loaded because it has not been
ported to Python 3:
>>> import pcardext
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: /usr/lib64/python3.11/site-packages/pcardext.so: undefined symbol: PyString_AsStringAndSize
>>>
Stop building this extension because it breaks the build if the
compiler lacks support for implicit function declarations.
Bug: <https://bugzilla.redhat.com/show_bug.cgi?id=2148210>
Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>
diff --git a/Makefile.am b/Makefile.am
index ddac16a9dd514008..15d953af9150c09e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -306,13 +306,6 @@ if !HPLIP_CLASS_DRIVER
pcarddir = $(hplipdir)/pcard
dist_pcard_DATA = pcard/__init__.py pcard/photocard.py
-# pcardext
-pcardextdir = $(pyexecdir)
-pcardext_LTLIBRARIES = pcardext.la
-pcardext_la_LDFLAGS = -module -avoid-version
-pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h
-pcardext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
-
# prnt
prntdir = $(hplipdir)/prnt
dist_prnt_DATA = prnt/cups.py prnt/__init__.py prnt/ldl.py prnt/pcl.py prnt/colorcal.py

@ -0,0 +1,58 @@
diff --git a/installer/pluginhandler.py b/installer/pluginhandler.py
index 56683fb..031ceec 100755
--- a/installer/pluginhandler.py
+++ b/installer/pluginhandler.py
@@ -185,14 +185,16 @@ class PluginHandle(object):
if self.__plugin_conf_file.startswith('file://'):
status, filename = utils.download_from_network(self.__plugin_conf_file, local_conf, True)
else:
- wget = utils.which("wget", True)
- if wget:
- status, output = utils.run("%s --tries=3 --timeout=60 --output-document=%s %s --cache=off" %(wget, local_conf, self.__plugin_conf_file))
+ curl = utils.which("curl", True)
+ if curl:
+ cmd = "%s --retry 3 --max-time 10 --output %s --location %s" %(curl, local_conf, self.__plugin_conf_file)
+ log.debug(cmd)
+ status, output = utils.run(cmd)
if status:
log.error("Plugin download failed with error code = %d" %status)
return status, url, check_sum
else:
- log.error("Please install wget package to download the plugin.")
+ log.error("Please install curl package to download the plugin.")
return status, url, check_sum
except IOError as e:
log.error("I/O Error: %s" % e.strerror)
@@ -284,18 +284,18 @@ class PluginHandle(object):
if src.startswith('file://'):
status, filename = utils.download_from_network(src, plugin_file, True)
else:
- wget = utils.which("wget", True)
- if wget:
- cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,src)
+ curl = utils.which("curl", True)
+ if curl:
+ cmd = "%s --create-dirs -O --output-dir %s %s" % (curl,self.__plugin_path,src)
log.debug(cmd)
status, output = utils.run(cmd)
- log.debug("wget returned: %d" % status)
+ log.debug("curl returned: %d" % status)
#Check whether plugin is accessible in Openprinting.org website otherwise dowload plugin from alternate location.
if status != 0 or os_utils.getFileSize(plugin_file) <= 0:
src = os.path.join(PLUGIN_FALLBACK_LOCATION, self.__plugin_name)
log.info("Plugin is not accessible. Trying to download it from fallback location: [%s]" % src)
- cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,src)
+ cmd = "%s --create-dirs -O --output-dir %s %s" % (curl,self.__plugin_path,src)
log.debug(cmd)
status, output = utils.run(cmd)
@@ -323,7 +323,7 @@ class PluginHandle(object):
if digsig_url.startswith('file://'):
status, filename = utils.download_from_network(digsig_url, digsig_file, True)
else:
- cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,digsig_url)
+ cmd = "%s --create-dirs -O --output-dir %s %s" % (curl, self.__plugin_path,digsig_url)
log.debug(cmd)
status, output = utils.run(cmd)
except IOError as e:

@ -0,0 +1,28 @@
diff --git a/Makefile.am b/Makefile.am
index bb4195c..ddac16a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -680,6 +680,12 @@ if HPLIP_CLASS_DRIVER
filterdir=$(cupsfilterdir)
printpluginsdir=$(cupsfilterdir)
+#
+# HP Plugin
+#
+
+pkgplugindir=$(bindir)
+pkgplugin_DATA=hp-plugin
dist_filter_DATA = hpcups hpps dat2drv
dist_printplugins_DATA = prnt/plugins/hbpl1-arm32.so prnt/plugins/hbpl1-arm64.so prnt/plugins/hbpl1-x86_32.so prnt/plugins/hbpl1-x86_64.so prnt/plugins/lj-arm32.so prnt/plugins/lj-arm64.so prnt/plugins/lj-x86_32.so prnt/plugins/lj-x86_64.so
diff --git a/configure.in b/configure.in
index f8f1a28..7fa5d12 100644
--- a/configure.in
+++ b/configure.in
@@ -801,5 +801,5 @@ AC_SUBST(udev_sysfs_rules)
AC_SUBST(epm_class_driver)
AC_SUBST(epm_class_install)
-AC_CONFIG_FILES(Makefile hplip.conf hplip.desktop hp-uiscan.desktop hplip-systray.desktop prnt/drv/hpijs.drv prnt/drv/hpcups.drv hplip.list data/policykit/com.hp.hplip.service)
+AC_CONFIG_FILES(Makefile hplip.conf hplip.desktop hp-uiscan.desktop hplip-systray.desktop prnt/drv/hpijs.drv prnt/drv/hpcups.drv hplip.list data/policykit/com.hp.hplip.service hp-plugin)
AC_OUTPUT

@ -0,0 +1,26 @@
diff --git a/installer/pluginhandler.py b/installer/pluginhandler.py
index 1af8d85..5c498ab 100755
--- a/installer/pluginhandler.py
+++ b/installer/pluginhandler.py
@@ -403,7 +403,20 @@ class PluginHandle(object):
log.error("Target file %s does not exist. File copy failed." % trg)
continue
else:
- os.chmod(trg, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
+ if trg == '/etc/udev/rules.d/S99-2000S1.rules' or \
+ trg == '/etc/udev/rules.d/40-libsane.rules':
+ os.chmod(trg, 0o644)
+ with open(trg, 'r') as udev_f:
+ content = udev_f.read()
+
+ content = content.replace('libsane_rules_end', 'libsane_usb_rules_end')
+ content = content.replace('GROUP="scanner", ', '')
+
+ with open(trg, 'w') as udev_f:
+ udev_f.write(content)
+
+ else:
+ os.chmod(trg, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
if link:
if os.path.exists(link):

@ -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: ""

@ -0,0 +1,17 @@
prnt/pserror.c: Replace an implicit int with an explicit int
Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>
diff --git a/prnt/hpps/pserror.c b/prnt/hpps/pserror.c
index 114d7e1b5fa364fb..493b49c27917a7e6 100644
--- a/prnt/hpps/pserror.c
+++ b/prnt/hpps/pserror.c
@@ -24,7 +24,7 @@ extern char *program ; /* Defined by main program, giving program name */
void message(int flags, char *format, ...)
{
va_list args ;
- static column = 0 ; /* current screen column for message wrap */
+ static int column = 0 ; /* current screen column for message wrap */
char msgbuf[MAX_MESSAGE] ; /* buffer in which to put the message */
char *bufptr = msgbuf ; /* message buffer pointer */

@ -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 -dGHOSTSCRIPT -sstdout=%stderr \
+ -sOutputFile="$TMPFILE" "$IN"
+RET=$?
+cat "$TMPFILE"
+rm -f "$TMPFILE"
+exit $RET

@ -0,0 +1,32 @@
#!/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 - license-related ones reported here https://bugs.launchpad.net/hplip/+bug/2028938
rm hplip-$VERSION/locatedriver
# compress into a new tarball
tar -cjvf hplip-$VERSION-repack.tar.gz hplip-$VERSION || exit 1
# check whether plugin is available
wget -O hplip-plugin.run https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-$1-plugin.run || wget -O hplip-plugin.run https://developers.hp.com/sites/default/files/hplip-$1-plugin.run || exit 1
# check whether the file is sane
file --mime hplip-plugin.run | grep 'x-shellscript' || exit 1
echo "hplip-${VERSION}-repack.tar.gz is prepared for uploading..."
exit 0
# upload a new source tarball
#fedpkg new-sources hplip-$VERSION-repack.tar.gz || exit 1

@ -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

@ -0,0 +1,19 @@
scam/sane/hpaio.c: Include orblite.h for more function prototypes
Otherwise the build fails with compilers which do not support
implicit function declarations.
Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>
diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c
index d342626822fc2190..57d1ddea32fb5816 100644
--- a/scan/sane/hpaio.c
+++ b/scan/sane/hpaio.c
@@ -50,6 +50,7 @@
#include "sclpml.h"
#include "escl.h"
#include "io.h"
+#include "orblite.h"
#include "orblitei.h"

@ -0,0 +1,21 @@
diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c
index ba86640..2eb7aba 100644
--- a/scan/sane/orblite.c
+++ b/scan/sane/orblite.c
@@ -20,6 +20,7 @@
#include "orblitei.h"
#include "orblite.h"//Added New
#include <math.h>
+#include <dlfcn.h>
#include "utils.h"
#include "io.h"
@@ -195,7 +196,7 @@ bugout:
static int bb_unload(SANE_THandle ps)
{
- _DBG("Calling orblite bb_unload: \n");
+ DBG("Calling orblite bb_unload: \n");
if (ps->bb_handle)
{
dlclose(ps->bb_handle);

@ -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 = ''

@ -0,0 +1,16 @@
Switch the whole libsane-hpaio to get proper definition of strcasestr() used in
sclpml.c
diff --git a/Makefile.am b/Makefile.am
index 15d953a..7105f74 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -73,7 +73,7 @@ endif
# The following is a interlibrary dependency that must be compiled first.
libsane_hpaio_la_LIBADD = libhpip.la libhpmud.la libhpipp.la $(DBUS_LIBS) -lcups -ldl
#libsane_hpaio_la_CFLAGS = -DWITH_NONAMESPACES -DSOAP_DEBUG
-libsane_hpaio_la_CFLAGS = $(DBUS_CFLAGS) -Iprotocol
+libsane_hpaio_la_CFLAGS = $(DBUS_CFLAGS) -Iprotocol -D_GNU_SOURCE
if NETWORK_BUILD
libsane_hpaio_la_LIBADD += libhpdiscovery.la

@ -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()

@ -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)"
}

@ -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:

@ -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);

@ -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;

@ -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)

@ -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():

@ -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

@ -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.setupdialog
+ 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.setupdialog
+ 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:

@ -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):

@ -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])

@ -0,0 +1,398 @@
diff --git a/base/LedmWifi.py b/base/LedmWifi.py
index f63a050..074d5a2 100644
--- a/base/LedmWifi.py
+++ b/base/LedmWifi.py
@@ -31,7 +31,7 @@ from .g import *
from . import device, utils
from .sixext import to_bytes_utf8
-http_result_pat = re.compile("""HTTP/\d.\d\s(\d+)""", re.I)
+http_result_pat = re.compile(r"""HTTP/\d.\d\s(\d+)""", re.I)
HTTP_OK = 200
HTTP_ACCEPTED = 202
HTTP_NOCONTENT = 204
diff --git a/base/device.py b/base/device.py
index fbe6c34..a551403 100644
--- a/base/device.py
+++ b/base/device.py
@@ -47,7 +47,7 @@ from . import models, mdns, slp, avahi
from .strings import *
from .sixext import PY3, to_bytes_utf8, to_unicode, to_string_latin, to_string_utf8, xStringIO
-http_result_pat = re.compile("""HTTP/\d.\d\s(\d+)""", re.I)
+http_result_pat = re.compile(r"""HTTP/\d.\d\s(\d+)""", re.I)
HTTP_OK = 200
HTTP_ERROR = 500
diff --git a/base/g.py b/base/g.py
index 96b3131..023aeea 100644
--- a/base/g.py
+++ b/base/g.py
@@ -302,7 +302,7 @@ prop.hpcups_build = to_bool(sys_conf.get('configure', 'hpcups-install', '0'))
prop.hpijs_build = to_bool(sys_conf.get('configure', 'hpijs-install', '0'))
# Spinner, ala Gentoo Portage
-spinner = "\|/-\|/-"
+spinner = r"\|/-\|/-"
spinpos = 0
enable_spinner = True
@@ -352,7 +352,7 @@ def check_extension_module_env(ext_mod):
log.error('%s not present in the system. Please re-install HPLIP.' %ext_mod)
sys.exit(1)
- m = re.search('python(\d(\.\d){0,2})', ext_path) #get the python version where the .so file is found
+ m = re.search(r'python(\d(\.\d){0,2})', ext_path) #get the python version where the .so file is found
ext_ver = xint(m.group(1))
if ext_ver[0] == 3:
diff --git a/base/logger.py b/base/logger.py
index dd92a9c..68e4f13 100644
--- a/base/logger.py
+++ b/base/logger.py
@@ -437,10 +437,10 @@ class Logger(object):
start = start + " "
number_chars = number_chars + 1
try:
- elem_start = re.findall("(\<\W{0,1}\w+) ?", line)[0]
- elem_finished = re.findall("([?|\]\]]*\>)", line)[0]
+ elem_start = re.findall(r"(\<\W{0,1}\w+) ?", line)[0]
+ elem_finished = re.findall(r"([?|\]\]]*\>)", line)[0]
#should not have *
- attrs = re.findall("(\S*?\=\".*?\")", line)
+ attrs = re.findall(r"(\S*?\=\".*?\")", line)
#output.write(start + elem_start)
self.log(start+elem_start, level, False)
number_chars = len(start + elem_start)
diff --git a/base/models.py b/base/models.py
index dc6cc39..48dd2ef 100644
--- a/base/models.py
+++ b/base/models.py
@@ -35,7 +35,7 @@ except ImportError:
datetime = None
-pat_prod_num = re.compile("""(\d+)""", re.I)
+pat_prod_num = re.compile(r"""(\d+)""", re.I)
TYPE_UNKNOWN = 0
TYPE_STRING = 1
@@ -427,25 +427,25 @@ class ModelData:
}
self.RE_FIELD_TYPES = {
- re.compile('^r(\d+)-agent(\d+)-kind', re.IGNORECASE) : TYPE_INT,
- re.compile('^r(\d+)-agent(\d+)-type', re.IGNORECASE) : TYPE_INT,
- re.compile('^r(\d+)-agent(\d+)-sku', re.IGNORECASE) : TYPE_STR,
- re.compile('^agent(\d+)-desc', re.IGNORECASE) : TYPE_STR,
- re.compile('^agent(\d+)-virgin', re.IGNORECASE) : TYPE_BOOL,
- re.compile('^agent(\d+)-dvc', re.IGNORECASE) : TYPE_INT,
- re.compile('^agent(\d+)-kind', re.IGNORECASE) : TYPE_INT,
- re.compile('^agent(\d+)-type', re.IGNORECASE) : TYPE_INT,
- re.compile('^agent(\d+)-id', re.IGNORECASE) : TYPE_INT,
- re.compile('^agent(\d+)-hp-ink', re.IGNORECASE) : TYPE_BOOL,
- re.compile('^agent(\d+)-health-desc', re.IGNORECASE) : TYPE_STR,
- re.compile('^agent(\d+)-health$', re.IGNORECASE) : TYPE_INT,
- re.compile('^agent(\d+)-known', re.IGNORECASE) : TYPE_BOOL,
- re.compile('^agent(\d+)-level', re.IGNORECASE) : TYPE_INT,
- re.compile('^agent(\d+)-ack', re.IGNORECASE) : TYPE_BOOL,
- re.compile('^agent(\d+)-sku', re.IGNORECASE) : TYPE_STR,
- re.compile('^in-tray(\d+)', re.IGNORECASE) : TYPE_BOOL,
- re.compile('^out-tray(\d+)', re.IGNORECASE) : TYPE_BOOL,
- re.compile('^model(\d+)', re.IGNORECASE) : TYPE_STR,
+ re.compile(r'^r(\d+)-agent(\d+)-kind', re.IGNORECASE) : TYPE_INT,
+ re.compile(r'^r(\d+)-agent(\d+)-type', re.IGNORECASE) : TYPE_INT,
+ re.compile(r'^r(\d+)-agent(\d+)-sku', re.IGNORECASE) : TYPE_STR,
+ re.compile(r'^agent(\d+)-desc', re.IGNORECASE) : TYPE_STR,
+ re.compile(r'^agent(\d+)-virgin', re.IGNORECASE) : TYPE_BOOL,
+ re.compile(r'^agent(\d+)-dvc', re.IGNORECASE) : TYPE_INT,
+ re.compile(r'^agent(\d+)-kind', re.IGNORECASE) : TYPE_INT,
+ re.compile(r'^agent(\d+)-type', re.IGNORECASE) : TYPE_INT,
+ re.compile(r'^agent(\d+)-id', re.IGNORECASE) : TYPE_INT,
+ re.compile(r'^agent(\d+)-hp-ink', re.IGNORECASE) : TYPE_BOOL,
+ re.compile(r'^agent(\d+)-health-desc', re.IGNORECASE) : TYPE_STR,
+ re.compile(r'^agent(\d+)-health$', re.IGNORECASE) : TYPE_INT,
+ re.compile(r'^agent(\d+)-known', re.IGNORECASE) : TYPE_BOOL,
+ re.compile(r'^agent(\d+)-level', re.IGNORECASE) : TYPE_INT,
+ re.compile(r'^agent(\d+)-ack', re.IGNORECASE) : TYPE_BOOL,
+ re.compile(r'^agent(\d+)-sku', re.IGNORECASE) : TYPE_STR,
+ re.compile(r'^in-tray(\d+)', re.IGNORECASE) : TYPE_BOOL,
+ re.compile(r'^out-tray(\d+)', re.IGNORECASE) : TYPE_BOOL,
+ re.compile(r'^model(\d+)', re.IGNORECASE) : TYPE_STR,
}
self.TYPE_CACHE = {}
diff --git a/base/password.py b/base/password.py
index 259bf82..a4ed107 100644
--- a/base/password.py
+++ b/base/password.py
@@ -167,8 +167,8 @@ class Password(object):
elif i == 1: # TIMEOUT
if('true' in cmd and self.__password_prompt_str == ""): # sudo true or su -c "true"
- cb = cb.replace("[", "\[")
- cb = cb.replace("]", "\]")
+ cb = cb.replace("[", r"\[")
+ cb = cb.replace("]", r"\]")
self.__password_prompt_str = cb
try:
diff --git a/base/queues.py b/base/queues.py
index 0818574..8625f53 100755
--- a/base/queues.py
+++ b/base/queues.py
@@ -46,7 +46,7 @@ HPPS = 3
HPOTHER = 4
DEVICE_URI_PATTERN = re.compile(r"""(.*):/(.*?)/(\S*?)\?(?:serial=(\S*)|device=(\S*)|ip=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[^&]*)|zc=(\S+))(?:&port=(\d))?""", re.I)
-NICKNAME_PATTERN = re.compile(b'''\*NickName:\s*\"(.*)"''', re.MULTILINE)
+NICKNAME_PATTERN = re.compile(r'''\*NickName:\s*\"(.*)"''', re.MULTILINE)
NET_PATTERN = re.compile(r"""(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})""")
NET_ZC_PATTERN = re.compile(r'''zc=(.*)''',re.IGNORECASE)
NET_OTHER_PATTERN = re.compile(r'''(.*)://(.*)''',re.IGNORECASE)
@@ -149,7 +149,7 @@ def parseQueues(mode):
desc=''
else:
try:
- desc = to_string_utf8( NICKNAME_PATTERN.search(fileptr).group(1) )
+ desc = to_string_utf8( NICKNAME_PATTERN.search(fileptr.decode('utf-8')).group(1) )
except AttributeError:
desc = ''
diff --git a/base/status.py b/base/status.py
index 37c774e..01f455d 100644
--- a/base/status.py
+++ b/base/status.py
@@ -1341,7 +1341,7 @@ def MapPJLErrorCode(error_code, str_code=None):
return status_code
-pjl_code_pat = re.compile("""^CODE\s*=\s*(\d.*)$""", re.IGNORECASE)
+pjl_code_pat = re.compile(r"""^CODE\s*=\s*(\d.*)$""", re.IGNORECASE)
diff --git a/base/tui.py b/base/tui.py
index 0f90f92..3b36c65 100644
--- a/base/tui.py
+++ b/base/tui.py
@@ -217,7 +217,7 @@ class ProgressMeter(object):
self.progress = 0
self.prompt = prompt
self.prev_length = 0
- self.spinner = "\|/-\|/-*"
+ self.spinner = r"\|/-\|/-*"
self.spinner_pos = 0
self.max_size = ttysize()[1] - len(prompt) - 25
self.update(0)
diff --git a/base/utils.py b/base/utils.py
index 2b631ce..2fb57c4 100644
--- a/base/utils.py
+++ b/base/utils.py
@@ -148,7 +148,7 @@ def get_cups_systemgroup_list():
return lis
try:
- lis = ((re.findall('SystemGroup [\w* ]*',fp.read()))[0].replace('SystemGroup ','')).split(' ')
+ lis = ((re.findall(r'SystemGroup [\w* ]*',fp.read()))[0].replace('SystemGroup ','')).split(' ')
except IndexError:
return lis
@@ -1597,7 +1597,7 @@ def mixin(cls):
# ------------------------- Usage Help
USAGE_OPTIONS = ("[OPTIONS]", "", "heading", False)
USAGE_LOGGING1 = ("Set the logging level:", "-l<level> or --logging=<level>", 'option', False)
-USAGE_LOGGING2 = ("", "<level>: none, info\*, error, warn, debug (\*default)", "option", False)
+USAGE_LOGGING2 = ("", r"<level>: none, info\*, error, warn, debug (\*default)", "option", False)
USAGE_LOGGING3 = ("Run in debug mode:", "-g (same as option: -ldebug)", "option", False)
USAGE_LOGGING_PLAIN = ("Output plain text only:", "-t", "option", False)
USAGE_ARGS = ("[PRINTER|DEVICE-URI]", "", "heading", False)
@@ -1605,13 +1605,13 @@ USAGE_ARGS2 = ("[PRINTER]", "", "heading", False)
USAGE_DEVICE = ("To specify a device-URI:", "-d<device-uri> or --device=<device-uri>", "option", False)
USAGE_PRINTER = ("To specify a CUPS printer:", "-p<printer> or --printer=<printer>", "option", False)
USAGE_BUS1 = ("Bus to probe (if device not specified):", "-b<bus> or --bus=<bus>", "option", False)
-USAGE_BUS2 = ("", "<bus>: cups\*, usb\*, net, bt, fw, par\* (\*defaults) (Note: bt and fw not supported in this release.)", 'option', False)
+USAGE_BUS2 = ("", r"<bus>: cups\*, usb\*, net, bt, fw, par\* (\*defaults) (Note: bt and fw not supported in this release.)", 'option', False)
USAGE_HELP = ("This help information:", "-h or --help", "option", True)
USAGE_SPACE = ("", "", "space", False)
USAGE_EXAMPLES = ("Examples:", "", "heading", False)
USAGE_NOTES = ("Notes:", "", "heading", False)
USAGE_STD_NOTES1 = ("If device or printer is not specified, the local device bus is probed and the program enters interactive mode.", "", "note", False)
-USAGE_STD_NOTES2 = ("If -p\* is specified, the default CUPS printer will be used.", "", "note", False)
+USAGE_STD_NOTES2 = (r"If -p\* is specified, the default CUPS printer will be used.", "", "note", False)
USAGE_SEEALSO = ("See Also:", "", "heading", False)
USAGE_LANGUAGE = ("Set the language:", "--loc=<lang> or --lang=<lang>. Use --loc=? or --lang=? to see a list of available language codes.", "option", False)
USAGE_LANGUAGE2 = ("Set the language:", "--lang=<lang>. Use --lang=? to see a list of available language codes.", "option", False)
@@ -1839,7 +1839,7 @@ encoding: utf8
elif typ == 'man':
log.info('.TH "%s" 1 "%s" Linux "User Manuals"' % (crumb, version))
- log.info(".SH NAME\n%s \- %s" % (crumb, title))
+ log.info(r".SH NAME\n%s \- %s" % (crumb, title))
for line in text_list:
text1, text2, format, trailing_space = line
@@ -1938,7 +1938,7 @@ def unescape(text):
except KeyError:
pass
return text # leave as is
- return re.sub("&#?\w+;", fixup, text)
+ return re.sub(r"&#?\w+;", fixup, text)
# Adds HTML or XML character references and entities from a text string
@@ -1991,7 +1991,7 @@ def Is_HPLIP_older_version(installed_version, available_version):
log.debug("HPLIP Installed_version=%s Available_version=%s"%(installed_version,available_version))
cnt = 0
Is_older = False
- pat=re.compile('''(\d{1,})([a-z]{1,})''')
+ pat=re.compile(r'''(\d{1,})([a-z]{1,})''')
try:
while cnt <len(installed_array) and cnt <len(available_array):
diff --git a/check.py b/check.py
index 284b88e..86ca832 100755
--- a/check.py
+++ b/check.py
@@ -627,7 +627,7 @@ class DependenciesCheck(object):
status, output = utils.run("%s -d03f0:" % lsusb)
if output:
- lsusb_pat = re.compile("""^Bus\s([0-9a-fA-F]{3,3})\sDevice\s([0-9a-fA-F]{3,3}):\sID\s([0-9a-fA-F]{4,4}):([0-9a-fA-F]{4,4})(.*)""", re.IGNORECASE)
+ lsusb_pat = re.compile(r"""^Bus\s([0-9a-fA-F]{3,3})\sDevice\s([0-9a-fA-F]{3,3}):\sID\s([0-9a-fA-F]{4,4}):([0-9a-fA-F]{4,4})(.*)""", re.IGNORECASE)
log.debug(output)
try:
hpmudext = utils.import_ext('hpmudext')
@@ -682,7 +682,7 @@ class DependenciesCheck(object):
out =''
for g in getfacl_out_list:
- if 'getfacl' not in g and '' is not g and 'file' not in g:
+ if 'getfacl' not in g and '' != g and 'file' not in g:
pat = re.compile('''.*:(.*)''')
if pat.search(g):
out = out +' '+ pat.search(g).group(1)
diff --git a/fax/soapfax.py b/fax/soapfax.py
index 9865726..344cb34 100644
--- a/fax/soapfax.py
+++ b/fax/soapfax.py
@@ -42,7 +42,7 @@ from base.sixext import to_bytes_utf8
# **************************************************************************** #
-http_result_pat = re.compile("""HTTP/\d.\d\s(\d+)""", re.I)
+http_result_pat = re.compile(r"""HTTP/\d.\d\s(\d+)""", re.I)
TIME_FORMAT_AM_PM = 1
diff --git a/installer/dcheck.py b/installer/dcheck.py
index a1a4f02..4dbee59 100644
--- a/installer/dcheck.py
+++ b/installer/dcheck.py
@@ -33,8 +33,8 @@ from base.g import *
from base import utils, services
from base.sixext import to_bytes_utf8
-ver1_pat = re.compile("""(\d+\.\d+\.\d+)""", re.IGNORECASE)
-ver_pat = re.compile("""(\d+.\d+)""", re.IGNORECASE)
+ver1_pat = re.compile(r"""(\d+\.\d+\.\d+)""", re.IGNORECASE)
+ver_pat = re.compile(r"""(\d+.\d+)""", re.IGNORECASE)
PID = 0
CMDLINE = 1
@@ -358,7 +358,7 @@ def get_xsane_version():
if output:
- xsane_ver_pat =re.compile('''xsane-(\d{1,}\.\d{1,}).*''')
+ xsane_ver_pat =re.compile(r'''xsane-(\d{1,}\.\d{1,}).*''')
xsane_ver_info = output.splitlines()[0]
if xsane_ver_pat.search(xsane_ver_info):
installed_ver = xsane_ver_pat.search(xsane_ver_info).group(1)
diff --git a/makeuri.py b/makeuri.py
index 4a10de8..6343e31 100755
--- a/makeuri.py
+++ b/makeuri.py
@@ -46,7 +46,7 @@ USAGE = [ (__doc__, "", "name", True),
("DEVNODE (parallel only):", '"/dev/parportX", X=0,1,2,...', "option", False),
("SERIAL NO. (usb and parallel only):", '"serial no."', "option", True),
utils.USAGE_OPTIONS,
- ("To specify the port on a multi-port JetDirect:", "-p<port> or --port=<port> (Valid values are 1\*, 2, and 3. \*default)", "option", False),
+ ("To specify the port on a multi-port JetDirect:", r"-p<port> or --port=<port> (Valid values are 1\*, 2, and 3. \*default)", "option", False),
("Show the CUPS URI only (quiet mode):", "-c or --cups", "option", False),
("Show the SANE URI only (quiet mode):", "-s or --sane", "option", False),
("Show the HP Fax URI only (quiet mode):", "-f or --fax", "option", False),
diff --git a/prnt/cups.py b/prnt/cups.py
index 1ea3099..78b8adc 100644
--- a/prnt/cups.py
+++ b/prnt/cups.py
@@ -168,7 +168,7 @@ CUPS_ERROR_BAD_NAME = 0x0f00
CUPS_ERROR_BAD_PARAMETERS = 0x0f01
nickname_pat = re.compile(r'''\*NickName:\s*\"(.*)"''', re.MULTILINE)
-pat_cups_error_log = re.compile("""^loglevel\s?(debug|debug2|warn|info|error|none)""", re.I)
+pat_cups_error_log = re.compile(r"""^loglevel\s?(debug|debug2|warn|info|error|none)""", re.I)
ppd_pat = re.compile(r'''.*hp-(.*?)(-.*)*\.ppd.*''', re.I)
ppd_pat1 = re.compile(r'''.*hp-(.*?)(_.*)*\.ppd.*''', re.I)
diff --git a/probe.py b/probe.py
index 2041fb6..2b43ece 100755
--- a/probe.py
+++ b/probe.py
@@ -42,11 +42,11 @@ USAGE = [(__doc__, "", "name", True),
("Usage: %s [OPTIONS]" % __mod__, "", "summary", True),
utils.USAGE_OPTIONS,
("Bus to probe:", "-b<bus> or --bus=<bus>", "option", False),
- ("", "<bus>: cups, usb\*, net, bt, fw, par (\*default) (Note: bt and fw not supported in this release.)", "option", False),
+ ("", r"<bus>: cups, usb\*, net, bt, fw, par (\*default) (Note: bt and fw not supported in this release.)", "option", False),
("Set Time to Live (TTL):", "-t<ttl> or --ttl=<ttl> (Default is 4).", "option", False),
("Set timeout:", "-o<timeout in secs.> or --timeout=<timeout is secs.>", "option", False),
("Filter by functionality:", "-e<filter list> or --filter=<filter list>", "option", False),
- ("", "<filter list>: comma separated list of one or more of: scan, pcard, fax, copy, or none\*. (\*none is the default)", "option", False),
+ ("", r"<filter list>: comma separated list of one or more of: scan, pcard, fax, copy, or none\*. (\*none is the default)", "option", False),
("Search:", "-s<search re> or --search=<search re>", "option", False),
("", "<search re> must be a valid regular expression (not case sensitive)", "option", False),
("Network discovery method:", "-m<method> or --method=<method>: <method> is 'slp'* or 'mdns'.", "option", False),
diff --git a/scan.py b/scan.py
index 0bfa6f5..27b8c2e 100755
--- a/scan.py
+++ b/scan.py
@@ -249,9 +249,9 @@ try:
extra_options=[utils.USAGE_SPACE,
("[OPTIONS] (General)", "", "header", False),
("Scan destinations:", "-s<dest_list> or --dest=<dest_list>", "option", False),
- ("", "where <dest_list> is a comma separated list containing one or more of: 'file'\*, ", "option", False),
+ ("", r"where <dest_list> is a comma separated list containing one or more of: 'file'\*, ", "option", False),
("", "'viewer', 'editor', 'pdf', or 'print'. Use only commas between values, no spaces.", "option", False),
- ("Scan mode:", "-m<mode> or --mode=<mode>. Where <mode> is 'gray'\*, 'color' or 'lineart'.", "option", False),
+ ("Scan mode:", r"-m<mode> or --mode=<mode>. Where <mode> is 'gray'\*, 'color' or 'lineart'.", "option", False),
("Scanning resolution:", "-r<resolution_in_dpi> or --res=<resolution_in_dpi> or --resolution=<resolution_in_dpi>", "option", False),
("", "where 300 is default.", "option", False),
("Image resize:", "--resize=<scale_in_%> (min=1%, max=400%, default=100%)", "option", False),
@@ -268,7 +268,7 @@ try:
utils.USAGE_SPACE,
("[OPTIONS] (Scan area)", "", "header", False),
("Specify the units for area/box measurements:", "-t<units> or --units=<units>", "option", False),
- ("", "where <units> is 'mm'\*, 'cm', 'in', 'px', or 'pt' ('mm' is default).", "option", False),
+ ("", r"where <units> is 'mm'\*, 'cm', 'in', 'px', or 'pt' ('mm' is default).", "option", False),
("Scan area:", "-a<tlx>,<tly>,<brx>,<bry> or --area=<tlx>,<tly>,<brx>,<bry>", "option", False),
("", "Coordinates are relative to the upper left corner of the scan area.", "option", False),
("", "Units for tlx, tly, brx, and bry are specified by -t/--units (default is 'mm').", "option", False),
diff --git a/setup.py b/setup.py
index 98f57fd..1a74d6d 100755
--- a/setup.py
+++ b/setup.py
@@ -79,11 +79,11 @@ USAGE = [ (__doc__, "", "name", True),
utils.USAGE_SPACE,
utils.USAGE_OPTIONS,
("Automatic mode:", "-a or --auto (-i mode only)", "option", False),
- ("To specify the port on a multi-port JetDirect:", "--port=<port> (Valid values are 1\*, 2, and 3. \*default)", "option", False),
+ ("To specify the port on a multi-port JetDirect:", r"--port=<port> (Valid values are 1\*, 2, and 3. \*default)", "option", False),
("No testpage in automatic mode:", "-x (-i mode only)", "option", False),
("To specify a CUPS printer queue name:", "-p<printer> or --printer=<printer> (-i mode only)", "option", False),
("To specify a CUPS fax queue name:", "-f<fax> or --fax=<fax> (-i mode only)", "option", False),
- ("Type of queue(s) to install:", "-t<typelist> or --type=<typelist>. <typelist>: print*, fax\* (\*default) (-i mode only)", "option", False),
+ ("Type of queue(s) to install:", r"-t<typelist> or --type=<typelist>. <typelist>: print*, fax\* (\*default) (-i mode only)", "option", False),
("To specify the device URI to install:", "-d<device> or --device=<device> (--qt4 mode only)", "option", False),
("Remove printers or faxes instead of setting-up:", "-r or --rm or --remove", "option", False),
utils.USAGE_LANGUAGE,

@ -0,0 +1,12 @@
diff -up hplip-3.23.3/ui5/wifisetupdialog.py.wifisetup-bad-call-fix hplip-3.23.3/ui5/wifisetupdialog.py
--- hplip-3.23.3/ui5/wifisetupdialog.py.wifisetup-bad-call-fix 2023-05-29 13:45:35.830961640 +0200
+++ hplip-3.23.3/ui5/wifisetupdialog.py 2023-05-29 13:48:05.939993288 +0200
@@ -665,7 +665,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog
self.ip,_,addressmode, subnetmask, gateway, pridns, sec_dns= self.wifiObj.getIPConfiguration(self.dev, self.adapterName)
if self.ip == "0.0.0.0":
if not self.wifiObj == CdmWifi:
- 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)

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 Richard Hughes <richard@hughsie.com> -->
<component type="desktop">
<id>hplip.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0+</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>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save