#8 2184067 - hplip-3.23.5 is available
Merged 8 months ago by zdohnal. Opened 8 months ago by zdohnal.
rpms/ zdohnal/hplip 3.23.3  into  rawhide

file modified
+2
@@ -108,3 +108,5 @@ 

  /hplip-3.22.4-repack.tar.gz

  /hplip-3.22.6-repack.tar.gz

  /hplip-3.22.10-repack.tar.gz

+ /hplip-3.23.3-repack.tar.gz

+ /hplip-3.23.5-repack.tar.gz

@@ -1,45 +1,108 @@ 

- From 95a73bbc9bd65602a0f9411469ab511bc80a01d0 Mon Sep 17 00:00:00 2001

- From: Till Kamppeter <till.kamppeter@gmail.com>

- Date: Wed, 3 Oct 2018 15:13:00 +0200

- Subject: Call QMessageBox constructors of PyQT5 with the correct parameters

- 

- The whole Python source code of HPLIP contains 40 incorrect calls of

- the QMessageBox constructurs, mostly the list of buttons was given as

- separate arguments instead of a bitwise OR of each button's

- representation value.  If the flow of the code hits one of these

- calls (usually when some error or warnings message should be

- displayed or an "Are you sure?" question asked) the GUI app crashes.

- See https://pythonspot.com/pyqt5-messagebox/ for QMessageBox

- documentation.

- This patch corrects all these calls.

- 

- Bug-Debian: https://bugs.debian.org/912768

- Bug-Ubuntu: https://bugs.launchpad.net/bugs/1745383

- ---

-  ui/devmgr4.py          | 16 ++++++++--------

-  ui/faxaddrbookform.py  |  6 +++---

-  ui/faxsendjobform.py   |  6 +++---

-  ui/firmwaredialog.py   |  2 +-

-  ui/makecopiesform.py   |  4 ++--

-  ui/nodevicesform.py    |  2 +-

-  ui/pluginform2.py      |  4 ++--

-  ui/printerform.py      |  2 +-

-  ui/settingsdialog.py   |  4 ++--

-  ui/setupform.py        | 10 +++++-----

-  ui/unloadform.py       |  2 +-

-  ui/upgradeform.py      |  4 ++--

-  ui5/devmgr5.py         |  6 ++----

-  ui5/fabwindow.py       |  2 +-

-  ui5/nodevicesdialog.py |  3 +--

-  ui5/plugindialog.py    |  2 +-

-  ui5/queuesconf.py      |  2 +-

-  ui5/setupdialog.py     |  6 +++---

-  18 files changed, 40 insertions(+), 43 deletions(-)

- 

- diff --git a/ui/devmgr4.py b/ui/devmgr4.py

- index cc2552f91..a868ccac0 100644

- --- a/ui/devmgr4.py

- +++ b/ui/devmgr4.py

+ 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(),
@@ -112,11 +175,10 @@ 

               QMessageBox.NoButton,

               QMessageBox.NoButton)

   

- diff --git a/ui/faxaddrbookform.py b/ui/faxaddrbookform.py

- index 109462207..b23364410 100644

- --- a/ui/faxaddrbookform.py

- +++ b/ui/faxaddrbookform.py

- @@ -228,7 +228,7 @@ class FaxAddrBookGroupsForm(FaxAddrBookGroupsForm_base):

+ 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>"),
@@ -125,7 +187,7 @@ 

                                     QMessageBox.No | QMessageBox.Default,

                                     QMessageBox.NoButton)

           if x == QMessageBox.Yes:

- @@ -421,7 +421,7 @@ class FaxAddrBookForm(FaxAddrBookForm_base):

+ @@ -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>"),
@@ -134,7 +196,7 @@ 

                 QMessageBox.No | QMessageBox.Default,

                 QMessageBox.NoButton) == QMessageBox.Yes:

               db.delete(self.current.entry['name'])

- @@ -451,7 +451,7 @@ class FaxAddrBookForm(FaxAddrBookForm_base):

+ @@ -451,7 +451,7 @@ class FaxAddrBookForm(FaxAddrBookForm_ba

           QMessageBox.critical(self,

                                self.caption(),

                                QString(error_text),
@@ -143,10 +205,9 @@ 

                                 QMessageBox.NoButton,

                                 QMessageBox.NoButton)

   

- diff --git a/ui/faxsendjobform.py b/ui/faxsendjobform.py

- index 106215c5e..69f424c42 100644

- --- a/ui/faxsendjobform.py

- +++ b/ui/faxsendjobform.py

+ 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(),
@@ -174,11 +235,10 @@ 

                                QMessageBox.NoButton,

                                QMessageBox.NoButton)

   

- diff --git a/ui/firmwaredialog.py b/ui/firmwaredialog.py

- index 16b313374..0bcee1164 100644

- --- a/ui/firmwaredialog.py

- +++ b/ui/firmwaredialog.py

- @@ -109,7 +109,7 @@ class FirmwareDialog(QDialog, FirmwareDialog_Base):

+ 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,
@@ -187,10 +247,9 @@ 

                   QMessageBox.NoButton,

                   QMessageBox.NoButton)

   

- diff --git a/ui/makecopiesform.py b/ui/makecopiesform.py

- index 27f144b36..0fbb573e3 100644

- --- a/ui/makecopiesform.py

- +++ b/ui/makecopiesform.py

+ 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(),
@@ -209,10 +268,9 @@ 

                                 QMessageBox.NoButton,

                                 QMessageBox.NoButton)

   

- diff --git a/ui/nodevicesform.py b/ui/nodevicesform.py

- index 01f6ae53b..57a696375 100644

- --- a/ui/nodevicesform.py

- +++ b/ui/nodevicesform.py

+ 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(),
@@ -222,10 +280,9 @@ 

                                       QMessageBox.NoButton,

                                       QMessageBox.NoButton)

   

- diff --git a/ui/pluginform2.py b/ui/pluginform2.py

- index 64e64aa77..76cb0238b 100644

- --- a/ui/pluginform2.py

- +++ b/ui/pluginform2.py

+ 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(),
@@ -244,10 +301,9 @@ 

                                 QMessageBox.NoButton,

                                 QMessageBox.NoButton)

   

- diff --git a/ui/printerform.py b/ui/printerform.py

- index 0c6c4f39e..7c10ab07b 100644

- --- a/ui/printerform.py

- +++ b/ui/printerform.py

+ 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(),
@@ -257,11 +313,10 @@ 

                                 QMessageBox.NoButton,

                                 QMessageBox.NoButton)

   

- diff --git a/ui/settingsdialog.py b/ui/settingsdialog.py

- index 92da22546..24f02fd84 100644

- --- a/ui/settingsdialog.py

- +++ b/ui/settingsdialog.py

- @@ -146,7 +146,7 @@ class SettingsDialog(SettingsDialog_base):

+ 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."),
@@ -270,7 +325,7 @@ 

   ##                                  QMessageBox.NoButton,

   ##                                  QMessageBox.NoButton)

   ##            return

- @@ -163,7 +163,7 @@ class SettingsDialog(SettingsDialog_base):

+ @@ -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."),
@@ -279,10 +334,9 @@ 

   ##                      QMessageBox.NoButton,

   ##                      QMessageBox.NoButton)

   

- diff --git a/ui/setupform.py b/ui/setupform.py

- index 307917b02..78863fdd8 100644

- --- a/ui/setupform.py

- +++ b/ui/setupform.py

+ 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(),
@@ -328,10 +382,9 @@ 

                                 QMessageBox.NoButton,

                                 QMessageBox.NoButton)

   

- diff --git a/ui/unloadform.py b/ui/unloadform.py

- index 8397a689c..ae363e01e 100644

- --- a/ui/unloadform.py

- +++ b/ui/unloadform.py

+ 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(),
@@ -341,10 +394,9 @@ 

                                 QMessageBox.NoButton,

                                 QMessageBox.NoButton)

   

- diff --git a/ui/upgradeform.py b/ui/upgradeform.py

- index 6b9acf5cc..d0b418419 100644

- --- a/ui/upgradeform.py

- +++ b/ui/upgradeform.py

+ 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(),
@@ -363,111 +415,3 @@ 

                                 QMessageBox.NoButton,

                                 QMessageBox.NoButton)

   

- diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py

- index 495883f72..0ca016820 100644

- --- a/ui5/devmgr5.py

- +++ b/ui5/devmgr5.py

- @@ -139,8 +139,7 @@ class PluginInstall(QObject):

-              install_plugin = QMessageBox.warning(self.parent,

-                                  self.parent.windowTitle(),

-                                  self.__tr("<b>The HPLIP plugin is already installed.</b><p>Do you want to continue and re-install it?"),

- -                                QMessageBox.Yes,

- -                                QMessageBox.No,

- +                                QMessageBox.Yes | QMessageBox.No,

-                                  QMessageBox.NoButton) == QMessageBox.Yes

-  

-          if install_plugin:

- @@ -149,8 +148,7 @@ class PluginInstall(QObject):

-                  QMessageBox.critical(self.parent,

-                      self.parent.windowTitle(),

-                      self.__tr("<b>Unable to find an appropriate su/sudo utility to run hp-plugin.</b><p>Install kdesu, gnomesu, or gksu.</p>"),

- -                    QMessageBox.Ok,

- -                    QMessageBox.NoButton,

- +                    QMessageBox.Ok | QMessageBox.NoButton,

-                      QMessageBox.NoButton)

-  

-  

- diff --git a/ui5/fabwindow.py b/ui5/fabwindow.py

- index 488b6bbd5..0b95c94f1 100644

- --- a/ui5/fabwindow.py

- +++ b/ui5/fabwindow.py

- @@ -344,7 +344,7 @@ class FABWindow(QMainWindow,  Ui_MainWindow):

-              new_name = to_unicode(self.NameLineEdit.text())

-              if new_name != self.name:

-                  if QMessageBox.question(self, self.__tr("Rename?"), "Rename '%s' to '%s'?"%(self.name,new_name), \

- -                                        QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes:

- +                                        QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes:

-  

-                      self.db.rename(self.name, new_name)

-                      log.debug("Rename %s to %s" % (self.name, new_name))

- diff --git a/ui5/nodevicesdialog.py b/ui5/nodevicesdialog.py

- index 6083f6d4b..ca86bfcda 100644

- --- a/ui5/nodevicesdialog.py

- +++ b/ui5/nodevicesdialog.py

- @@ -64,8 +64,7 @@ class NoDevicesDialog(QDialog, Ui_NoDevicesDialog_base):

-              QMessageBox.critical(self,

-                                      self.windowTitle(),

-                                      self.__tr("<b>An error occurred.</b><p>Please re-start the Device Manager and try again."),

- -                                    QMessageBox.Ok,

- -                                    QMessageBox.NoButton,

- +                                    QMessageBox.Ok | QMessageBox.NoButton,

-                                      QMessageBox.NoButton)

-  

-  

- diff --git a/ui5/plugindialog.py b/ui5/plugindialog.py

- index e3007f911..1c6b33868 100644

- --- a/ui5/plugindialog.py

- +++ b/ui5/plugindialog.py

- @@ -252,7 +252,7 @@ class PluginDialog(QDialog, Ui_Dialog):

-  

-                  if QMessageBox.question(self, " ",

-                          self.__tr("<b>%s</b><p>Without this, it is not possible to authenticate and validate the plug-in prior to installation.</p>Do you still want to install the plug-in?" %error_str),

- -                        QMessageBox.Yes | QMessageBox.No) != QMessageBox.Yes:

- +                                        QMessageBox.Yes | QMessageBox.No, QMessageBox.No) != QMessageBox.Yes:

-  

-                      self.pluginObj.deleteInstallationFiles(download_plugin_file)

-                      self.close()

- diff --git a/ui5/queuesconf.py b/ui5/queuesconf.py

- index cf2206490..e3c2a0278 100644

- --- a/ui5/queuesconf.py

- +++ b/ui5/queuesconf.py

- @@ -245,7 +245,7 @@ class QueuesDiagnose(QDialog, Ui_Dialog):

-                  

-                      if QMessageBox.question(self, " ",

-                          self.__tr("<b>%s</b><p>Without this, it is not possible to authenticate and validate this tool prior to installation.</p>Do you still want to run Smart Install disabler?" %error_str),

- -                        QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes:

- +                                            QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes:

-                          # Disabling without verification.

-                          sts, out = utils.run("sh %s"%smart_install_run)

-  

- diff --git a/ui5/setupdialog.py b/ui5/setupdialog.py

- index fbfe5ac9b..120ee1587 100644

- --- a/ui5/setupdialog.py

- +++ b/ui5/setupdialog.py

- @@ -873,7 +873,7 @@ class SetupDialog(QDialog, Ui_Dialog):

-                                   self.windowTitle(),

-                                   warn_text,

-                                   QMessageBox.Yes|\

- -                                 QMessageBox.No|\

- +                                 QMessageBox.No,

-                                   QMessageBox.NoButton) == QMessageBox.Yes ):

-                  i = 2

-                  while True:

- @@ -1108,7 +1108,7 @@ class SetupDialog(QDialog, Ui_Dialog):

-                      if QMessageBox.critical(self,

-                                             self.windowTitle(),

-                                             error_text,

- -                                           QMessageBox.Retry | QMessageBox.Default,

- +                                           QMessageBox.Retry | QMessageBox.Default |\

-                                             QMessageBox.Cancel | QMessageBox.Escape,

-                                             QMessageBox.NoButton) == QMessageBox.Cancel:

-                          break

- @@ -1138,7 +1138,7 @@ class SetupDialog(QDialog, Ui_Dialog):

-                                  if QMessageBox.critical(self,

-                                                         self.windowTitle(),

-                                                         error_text,

- -                                                       QMessageBox.Retry | QMessageBox.Default,

- +                                                       QMessageBox.Retry | QMessageBox.Default |\

-                                                         QMessageBox.Cancel | QMessageBox.Escape,

-                                                         QMessageBox.NoButton) == QMessageBox.Cancel:

-                                      break

file modified
+12 -13
@@ -1,8 +1,7 @@ 

- diff --git a/setup.py b/setup.py

- index 976a42c..3604dd7 100755

- --- a/setup.py

- +++ b/setup.py

- @@ -558,6 +558,9 @@ else: # INTERACTIVE_MODE

+ 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)
@@ -12,17 +11,17 @@ 

                               else:

                                   nickname = open(file_path, 'r').read(4096)

   

- diff --git a/ui5/setupdialog.py b/ui5/setupdialog.py

- index ac45357..a6dacf0 100644

- --- a/ui5/setupdialog.py

- +++ b/ui5/setupdialog.py

- @@ -772,9 +772,9 @@ class SetupDialog(QDialog, Ui_Dialog):

-  

+ 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 (*)")))

+ -                                                          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]

@@ -1,33 +0,0 @@ 

- diff --git a/base/password.py b/base/password.py

- index bd68f2a..bff9f80 100644

- --- a/base/password.py

- +++ b/base/password.py

- @@ -157,6 +157,28 @@ class Password(object):

-                  log.warn("%s distro is not found in AUTH_TYPES" % distro_name)

-                  self.__authType = 'su'

-  

- +        # check if caller is in wheel group - use 'su' if he isnt -

- +        # or if the caller is root (just for showing 'root' username)

- +        # in the prompt

- +        import os

- +        from grp import getgrnam

- +

- +        user = os.getenv('USER')

- +

- +        try:

- +            members = getgrnam('wheel').gr_mem

- +        except KeyError:

- +            try:

- +                members = getgrnam('sudo').gr_mem

- +            except:

- +                return

- +

- +        if user in members:

- +            self.__authType = 'sudo'

- +        else:

- +            self.__authType = 'su'

- +

- +

-      def __getPasswordDisplayString(self):

-          if self.__authType == "su":

-              return "Please enter the root/superuser password: "

file modified
+142 -164
@@ -1,38 +1,6 @@ 

- diff --git a/Makefile.am b/Makefile.am

- index 62a25d3..2c4d6f8 100644

- --- a/Makefile.am

- +++ b/Makefile.am

- @@ -3,7 +3,7 @@

-  #

-  #  (c) 2004-2015 Copyright HP Development Company, LP

-  #  Author: David Suffield, Naga Samrat Chowdary Narla, Sarbeswar Meher

- -INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/

- +INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/ -Iprotocol

-  CFLAGS+= -DCONFDIR=\"$(hplip_confdir)\"

-  CXXFLAGS+= -DCONFDIR=\"$(hplip_confdir)\"

-  

- @@ -304,7 +304,7 @@ dist_pcard_DATA = pcard/__init__.py pcard/photocard.py

-  pcardextdir = $(pyexecdir)

-  pcardext_LTLIBRARIES = pcardext.la

-  pcardext_la_LDFLAGS = -module -avoid-version

- -pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c

- +pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h

-  pcardext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)

-  

-  # prnt

- @@ -316,7 +316,7 @@ lib_LTLIBRARIES += libhpipp.la

-  #hpipp_LTLIBRARIES = hpipp.la

-  #hpipp_la_LDFLAGS = -module -avoid-version

-  libhpipp_la_SOURCES = protocol/hp_ipp.c protocol/hp_ipp.h protocol/hp_ipp_i.h

- -libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\"

- +libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\" -D_GNU_SOURCE

-  libhpipp_la_LDFLAGS = -version-info 0:1:0

-  libhpipp_la_LIBADD = libhpmud.la

-  

- diff --git a/common/utils.c b/common/utils.c

- index d8ecee9..def4e47 100644

- --- a/common/utils.c

- +++ b/common/utils.c

+ 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
@@ -44,11 +12,10 @@ 

   #include <dlfcn.h>

   #include <sys/stat.h>

   #include <errno.h>

- diff --git a/io/hpmud/hpmud.c b/io/hpmud/hpmud.c

- index 0eb6fff..358f279 100644

- --- a/io/hpmud/hpmud.c

- +++ b/io/hpmud/hpmud.c

- @@ -759,6 +759,7 @@ enum HPMUD_RESULT hpmud_get_dstat(HPMUD_DEVICE dd, struct hpmud_dstat *ds)

+ 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));
@@ -56,10 +23,9 @@ 

      ds->io_mode = msp->device[dd].io_mode;

      ds->channel_cnt = msp->device[dd].channel_cnt;

      ds->mlc_up = msp->device[dd].mlc_up;

- diff --git a/io/hpmud/jd.c b/io/hpmud/jd.c

- index 06f5072..20df27a 100644

- --- a/io/hpmud/jd.c

- +++ b/io/hpmud/jd.c

+ 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

   
@@ -68,10 +34,9 @@ 

   #include "hpmud.h"

   #include "hpmudi.h"

   

- diff --git a/io/hpmud/model.c b/io/hpmud/model.c

- index 4ea8990..a917d69 100644

- --- a/io/hpmud/model.c

- +++ b/io/hpmud/model.c

+ 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] == '[')

         {
@@ -88,11 +53,10 @@ 

            break;  /* done */

         }

      }

- diff --git a/io/hpmud/musb.c b/io/hpmud/musb.c

- index 6e99c15..755493e 100644

- --- a/io/hpmud/musb.c

- +++ b/io/hpmud/musb.c

- @@ -775,7 +775,7 @@ static int device_id(int fd, unsigned char *buffer, int size)

+ 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;
@@ -101,11 +65,10 @@ 

       buffer[len]=0;

       DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);

   

- diff --git a/io/hpmud/pp.c b/io/hpmud/pp.c

- index 74c5fdc..021d627 100644

- --- a/io/hpmud/pp.c

- +++ b/io/hpmud/pp.c

- @@ -632,7 +632,7 @@ static int device_id(int fd, char *buffer, int size)

+ 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;
@@ -114,10 +77,39 @@ 

      buffer[len]=0;

   

      DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);

- diff --git a/pcard/fat.c b/pcard/fat.c

- index caa383f..e1425c0 100644

- --- a/pcard/fat.c

- +++ b/pcard/fat.c

+ 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 )
@@ -147,10 +139,9 @@ 

      cwd.StartSector = ConvertClusterToSector(fa.StartCluster);

      cwd.CurrSector = cwd.StartSector;

      cwd.StartCluster = fa.StartCluster;

- diff --git a/prnt/hpcups/genPCLm.cpp b/prnt/hpcups/genPCLm.cpp

- index c0cdc73..4db4bde 100644

- --- a/prnt/hpcups/genPCLm.cpp

- +++ b/prnt/hpcups/genPCLm.cpp

+ diff -up hplip-3.23.3/prnt/hpcups/genPCLm.cpp.covscan hplip-3.23.3/prnt/hpcups/genPCLm.cpp

+ --- hplip-3.23.3/prnt/hpcups/genPCLm.cpp.covscan	2023-03-28 09:26:11.000000000 +0200

+ +++ hplip-3.23.3/prnt/hpcups/genPCLm.cpp	2023-05-29 13:58:10.971395203 +0200

  @@ -1237,11 +1237,16 @@ void PCLmGenerator::writeJobTicket()

   	char orientation[256];

   	char duplex[256];
@@ -173,7 +164,7 @@ 

   

   	snprintf(pOutStr,OUT_STR_SIZE,"%%  genPCLm (Ver: %f)\n",PCLM_Ver); writeStr2OutBuff(pOutStr);

   	snprintf(pOutStr,OUT_STR_SIZE,"%%============= Job Ticket =============\n"); writeStr2OutBuff(pOutStr);

- @@ -1635,7 +1640,10 @@ int  PCLmGenerator::StartPage(PCLmPageSetup *PCLmPageContent, void **pOutBuffer,

+ @@ -1635,7 +1640,10 @@ int  PCLmGenerator::StartPage(PCLmPageSe

   	}

   

   	if(strlen(PCLmPageContent->mediaSizeName))
@@ -185,10 +176,9 @@ 

   

   	currStripHeight=PCLmPageContent->stripHeight;

   	if(!currStripHeight)

- diff --git a/prnt/hpijs/context2.cpp b/prnt/hpijs/context2.cpp

- index c3df482..19490b1 100644

- --- a/prnt/hpijs/context2.cpp

- +++ b/prnt/hpijs/context2.cpp

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

   	{
@@ -197,11 +187,10 @@ 

   	}

       thePrinter = pPFI->CreatePrinter (pSS, familyHandle);

       if (thePrinter->constructor_error != NO_ERROR)

- diff --git a/prnt/hpijs/systemservices.cpp b/prnt/hpijs/systemservices.cpp

- index 95f5a64..f5b4bb5 100644

- --- a/prnt/hpijs/systemservices.cpp

- +++ b/prnt/hpijs/systemservices.cpp

- @@ -396,7 +396,10 @@ void SystemServices::AdjustIO(IO_MODE IM, const char* model)

+ 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)
@@ -212,11 +201,10 @@ 

   }

   

   APDK_END_NAMESPACE

- diff --git a/prnt/hpps/hppsfilter.c b/prnt/hpps/hppsfilter.c

- index 5879a70..d246041 100644

- --- a/prnt/hpps/hppsfilter.c

- +++ b/prnt/hpps/hppsfilter.c

- @@ -230,13 +230,13 @@ static void WriteHeader(char **argument)

+ 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="));
@@ -233,25 +221,24 @@ 

       hpwrite(buffer, strlen(buffer));

       fprintf(stderr, "HP PS filter func = WriteHeader           : WRITING PJL HEADER INFO\n");

       return;

- diff --git a/protocol/hp_ipp.h b/protocol/hp_ipp.h

- index 3853f84..de76202 100644

- --- a/protocol/hp_ipp.h

- +++ b/protocol/hp_ipp.h

- @@ -166,5 +166,10 @@ int     getCupsPrinters(printer_t **printer_list);

-  HPIPP_RESULT parseResponseHeader(char* header, int *content_length, int *chunked, int* header_size);

-  HPIPP_RESULT prepend_http_header(raw_ipp *raw_request);

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

   

-  # endif //_IPP_H

- diff --git a/scan/sane/bb_ledm.c b/scan/sane/bb_ledm.c

- index b233d1e..7ba0edf 100644

- --- a/scan/sane/bb_ledm.c

- +++ b/scan/sane/bb_ledm.c

+  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"
@@ -260,10 +247,9 @@ 

   

   # include <stdint.h>

   

- diff --git a/scan/sane/common.h b/scan/sane/common.h

- index 0f67542..e496a74 100644

- --- a/scan/sane/common.h

- +++ b/scan/sane/common.h

+ 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)
@@ -273,11 +259,10 @@ 

   #define BUG_DUMP(data, size) bugdump((data), (size))

   #define BUG_SZ(args...) {syslog(LOG_ERR, args); DBG(2, args);}

   

- diff --git a/scan/sane/escl.c b/scan/sane/escl.c

- index af45bff..4f59b21 100644

- --- a/scan/sane/escl.c

- +++ b/scan/sane/escl.c

- @@ -795,7 +795,7 @@ SANE_Status escl_control_option(SANE_Handle handle, SANE_Int option, SANE_Action

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

     {
@@ -286,7 +271,7 @@ 

     }

   

      return stat;

- @@ -1102,7 +1102,7 @@ void escl_close(SANE_Handle handle)

+ @@ -1159,7 +1159,7 @@ void escl_close(SANE_Handle handle)

   

     if (ps == NULL || ps != session)

     {
@@ -295,10 +280,9 @@ 

       return;

     }

   

- diff --git a/scan/sane/http.c b/scan/sane/http.c

- index 800df91..45668cd 100644

- --- a/scan/sane/http.c

- +++ b/scan/sane/http.c

+ 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>
@@ -307,11 +291,10 @@ 

   #include "hpmud.h"

   #include "http.h"

   

- diff --git a/scan/sane/io.c b/scan/sane/io.c

- index 4508458..7bbddea 100755

- --- a/scan/sane/io.c

- +++ b/scan/sane/io.c

- @@ -50,7 +50,7 @@ int __attribute__ ((visibility ("hidden"))) InitDbus(void)

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

      { 
@@ -320,7 +303,7 @@ 

         dbus_error_free(&dbus_err); 

      }

   

- @@ -79,7 +79,7 @@ int __attribute__ ((visibility ("hidden"))) SendScanEvent(char *device_uri, int

+ @@ -79,7 +79,7 @@ int __attribute__ ((visibility ("hidden"

   

       if (NULL == msg)

       {
@@ -329,7 +312,7 @@ 

           return 0;

       }

   

- @@ -94,7 +94,7 @@ int __attribute__ ((visibility ("hidden"))) SendScanEvent(char *device_uri, int

+ @@ -94,7 +94,7 @@ int __attribute__ ((visibility ("hidden"

   

       if (!dbus_connection_send(dbus_conn, msg, NULL))

       {
@@ -338,11 +321,10 @@ 

           return 0;

       }

   

- diff --git a/scan/sane/ledm.c b/scan/sane/ledm.c

- index 9a1ff02..07ab5b0 100644

- --- a/scan/sane/ledm.c

- +++ b/scan/sane/ledm.c

- @@ -802,7 +802,7 @@ SANE_Status ledm_control_option(SANE_Handle handle, SANE_Int option, SANE_Action

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

     {
@@ -351,7 +333,7 @@ 

     }

   

      return stat;

- @@ -1067,7 +1067,7 @@ void ledm_close(SANE_Handle handle)

+ @@ -1078,7 +1078,7 @@ void ledm_close(SANE_Handle handle)

   

     if (ps == NULL || ps != session)

     {
@@ -360,11 +342,10 @@ 

       return;

     }

   

- diff --git a/scan/sane/marvell.c b/scan/sane/marvell.c

- index ad267a3..236f7c9 100644

- --- a/scan/sane/marvell.c

- +++ b/scan/sane/marvell.c

- @@ -134,7 +134,7 @@ static int get_ip_data(struct marvell_session *ps, SANE_Byte *data, SANE_Int max

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

      {
@@ -373,7 +354,7 @@ 

         goto bugout;

      }

      

- @@ -335,7 +335,7 @@ static struct marvell_session *create_session()

+ @@ -335,7 +335,7 @@ static struct marvell_session *create_se

   

      if ((ps = malloc(sizeof(struct marvell_session))) == NULL)

      {
@@ -382,7 +363,7 @@ 

         return NULL;

      }

      memset(ps, 0, sizeof(struct marvell_session));

- @@ -402,7 +402,7 @@ SANE_Status marvell_open(SANE_String_Const device, SANE_Handle *handle)

+ @@ -402,7 +402,7 @@ SANE_Status marvell_open(SANE_String_Con

   

      if (session)

      {
@@ -391,7 +372,7 @@ 

         return SANE_STATUS_DEVICE_BUSY;

      }

         

- @@ -431,7 +431,7 @@ SANE_Status marvell_open(SANE_String_Const device, SANE_Handle *handle)

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

      {
@@ -400,7 +381,7 @@ 

         goto bugout;

   

         free(session);

- @@ -441,7 +441,7 @@ SANE_Status marvell_open(SANE_String_Const device, SANE_Handle *handle)

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

      {
@@ -418,7 +399,7 @@ 

         return;

      }

   

- @@ -849,7 +849,7 @@ SANE_Status marvell_control_option(SANE_Handle handle, SANE_Int option, SANE_Act

+ @@ -849,7 +849,7 @@ SANE_Status marvell_control_option(SANE_

                  stat = SANE_STATUS_GOOD;

                  break;

               }
@@ -427,7 +408,7 @@ 

            }

            else

            {  /* Set default. */

- @@ -866,7 +866,7 @@ SANE_Status marvell_control_option(SANE_Handle handle, SANE_Int option, SANE_Act

+ @@ -866,7 +866,7 @@ SANE_Status marvell_control_option(SANE_

   

      if (stat != SANE_STATUS_GOOD)

      {
@@ -436,7 +417,7 @@ 

                     action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");

      }

   

- @@ -905,7 +905,7 @@ SANE_Status marvell_start(SANE_Handle handle)

+ @@ -905,7 +905,7 @@ SANE_Status marvell_start(SANE_Handle ha

      

      if (set_extents(ps))

      {
@@ -445,7 +426,7 @@ 

            ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);

         stat = SANE_STATUS_INVAL;

         goto bugout;

- @@ -963,7 +963,7 @@ SANE_Status marvell_start(SANE_Handle handle)

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

      {
@@ -454,7 +435,7 @@ 

         stat = SANE_STATUS_INVAL;

         goto bugout;

      }

- @@ -1023,7 +1023,7 @@ SANE_Status marvell_read(SANE_Handle handle, SANE_Byte *data, SANE_Int maxLength

+ @@ -1023,7 +1023,7 @@ SANE_Status marvell_read(SANE_Handle han

   

      if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))

      {
@@ -463,10 +444,9 @@ 

         goto bugout;

      }

   

- diff --git a/scan/sane/sclpml.c b/scan/sane/sclpml.c

- index 9a5975f..dc8b32c 100644

- --- a/scan/sane/sclpml.c

- +++ b/scan/sane/sclpml.c

+ 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>
@@ -484,11 +464,10 @@ 

         return;

        }

   

- diff --git a/scan/sane/soap.c b/scan/sane/soap.c

- index 07106fe..0d22e52 100644

- --- a/scan/sane/soap.c

- +++ b/scan/sane/soap.c

- @@ -142,7 +142,7 @@ static int get_ip_data(struct soap_session *ps, SANE_Byte *data, SANE_Int maxLen

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

      {
@@ -497,7 +476,7 @@ 

         goto bugout;

      }      

   

- @@ -219,7 +219,7 @@ static struct soap_session *create_session()

+ @@ -219,7 +219,7 @@ static struct soap_session *create_sessi

   

      if ((ps = malloc(sizeof(struct soap_session))) == NULL)

      {
@@ -506,7 +485,7 @@ 

         return NULL;

      }

      memset(ps, 0, sizeof(struct soap_session));

- @@ -418,7 +418,7 @@ SANE_Status soap_open(SANE_String_Const device, SANE_Handle *handle)

+ @@ -418,7 +418,7 @@ SANE_Status soap_open(SANE_String_Const

   

      if (session)

      {
@@ -515,7 +494,7 @@ 

         return SANE_STATUS_DEVICE_BUSY;

      }

   

- @@ -434,7 +434,7 @@ SANE_Status soap_open(SANE_String_Const device, SANE_Handle *handle)

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

      {
@@ -533,7 +512,7 @@ 

         return;

      }

   

- @@ -824,7 +824,7 @@ SANE_Status soap_control_option(SANE_Handle handle, SANE_Int option, SANE_Action

+ @@ -824,7 +824,7 @@ SANE_Status soap_control_option(SANE_Han

   

      if (stat != SANE_STATUS_GOOD)

      {
@@ -542,7 +521,7 @@ 

                     action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");

      }

   

- @@ -862,7 +862,7 @@ SANE_Status soap_start(SANE_Handle handle)

+ @@ -862,7 +862,7 @@ SANE_Status soap_start(SANE_Handle handl

      ps->user_cancel = 0;

      if (set_extents(ps))

      {
@@ -551,7 +530,7 @@ 

            ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);

         stat = SANE_STATUS_INVAL;

         goto bugout;

- @@ -913,7 +913,7 @@ SANE_Status soap_start(SANE_Handle handle)

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

      {
@@ -560,7 +539,7 @@ 

         stat = SANE_STATUS_INVAL;

         goto bugout;

      }

- @@ -955,7 +955,7 @@ SANE_Status soap_start(SANE_Handle handle)

+ @@ -955,7 +955,7 @@ SANE_Status soap_start(SANE_Handle handl

   

            if (ret & (IP_INPUT_ERROR | IP_FATAL_ERROR | IP_DONE))

            {
@@ -569,7 +548,7 @@ 

               stat = SANE_STATUS_IO_ERROR;

               goto bugout;

            }

- @@ -1007,7 +1007,7 @@ SANE_Status soap_read(SANE_Handle handle, SANE_Byte *data, SANE_Int maxLength, S

+ @@ -1007,7 +1007,7 @@ SANE_Status soap_read(SANE_Handle handle

   

      if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))

      {
@@ -578,11 +557,10 @@ 

         goto bugout;

      }

   

- diff --git a/scan/sane/soapht.c b/scan/sane/soapht.c

- index 269ab21..139100d 100644

- --- a/scan/sane/soapht.c

- +++ b/scan/sane/soapht.c

- @@ -136,7 +136,7 @@ static int get_ip_data(struct soap_session *ps, SANE_Byte *data, SANE_Int maxLen

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

      {
@@ -591,7 +569,7 @@ 

         goto bugout;

      }      

   

- @@ -435,7 +435,7 @@ static struct soap_session *create_session()

+ @@ -435,7 +435,7 @@ static struct soap_session *create_sessi

   

      if ((ps = malloc(sizeof(struct soap_session))) == NULL)

      {
@@ -600,7 +578,7 @@ 

         return NULL;

      }

      memset(ps, 0, sizeof(struct soap_session));

- @@ -459,7 +459,7 @@ SANE_Status soapht_open(SANE_String_Const device, SANE_Handle *handle)

+ @@ -459,7 +459,7 @@ SANE_Status soapht_open(SANE_String_Cons

   

      if (session)

      {
@@ -609,7 +587,7 @@ 

         return SANE_STATUS_DEVICE_BUSY;

      }

   

- @@ -475,7 +475,7 @@ SANE_Status soapht_open(SANE_String_Const device, SANE_Handle *handle)

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

      {
@@ -627,7 +605,7 @@ 

         return;

      }

   

- @@ -904,7 +904,7 @@ SANE_Status soapht_control_option(SANE_Handle handle, SANE_Int option, SANE_Acti

+ @@ -904,7 +904,7 @@ SANE_Status soapht_control_option(SANE_H

   

      if (stat != SANE_STATUS_GOOD)

      {
@@ -636,7 +614,7 @@ 

                     action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");

      }

   

- @@ -946,7 +946,7 @@ SANE_Status soapht_start(SANE_Handle handle)

+ @@ -946,7 +946,7 @@ SANE_Status soapht_start(SANE_Handle han

     

      if (set_extents(ps))

      {
@@ -645,7 +623,7 @@ 

            ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);

         stat = SANE_STATUS_INVAL;

         goto bugout;

- @@ -1032,7 +1032,7 @@ SANE_Status soapht_start(SANE_Handle handle)

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

      {
@@ -654,7 +632,7 @@ 

         stat = SANE_STATUS_INVAL;

         goto bugout;

      }

- @@ -1075,7 +1075,7 @@ SANE_Status soapht_start(SANE_Handle handle)

+ @@ -1075,7 +1075,7 @@ SANE_Status soapht_start(SANE_Handle han

   

            if (ret & (IP_INPUT_ERROR | IP_FATAL_ERROR | IP_DONE))

            {
@@ -663,7 +641,7 @@ 

               stat = SANE_STATUS_IO_ERROR;

               goto bugout;

            }

- @@ -1124,7 +1124,7 @@ SANE_Status soapht_read(SANE_Handle handle, SANE_Byte *data, SANE_Int maxLength,

+ @@ -1124,7 +1124,7 @@ SANE_Status soapht_read(SANE_Handle hand

   

      if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))

      {

@@ -2,15 +2,6 @@ 

  index c23957a..48b248f 100644

  --- a/ui5/devmgr5.py

  +++ b/ui5/devmgr5.py

- @@ -2247,7 +2247,7 @@ class PasswordDialog(QDialog):

-          self.prompt = prompt

-  

-          Layout= QGridLayout(self)

- -        Layout.setMargin(11)

- +        Layout.setContentsMargins(11, 11, 11, 11)

-          Layout.setSpacing(6)

-  

-          self.PromptTextLabel = QLabel(self)

  @@ -2300,14 +2300,15 @@ class PasswordDialog(QDialog):

   # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

   

@@ -1,7 +1,6 @@ 

- diff --git a/setup.py b/setup.py

- index 5d48aaa..88e663f 100755

- --- a/setup.py

- +++ b/setup.py

+ 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
@@ -23,13 +22,12 @@ 

           plugin = mq.get('plugin', PLUGIN_NONE)

   

           if ignore_plugin_check is False and plugin > PLUGIN_NONE:

- diff --git a/ui5/setupdialog.py b/ui5/setupdialog.py

- index c6f234b..a5041c1 100644

- --- a/ui5/setupdialog.py

- +++ b/ui5/setupdialog.py

- @@ -1326,6 +1326,18 @@ class SetupDialog(QDialog, Ui_Dialog):

-              self.mq = device.queryModelByURI(self.device_uri)

-              back_end, is_hp, bus, model, serial, dev_file, host, zc, port = device.parseDeviceURI(self.device_uri)

+ 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,

@@ -0,0 +1,47 @@ 

+ diff --git a/Makefile.am b/Makefile.am

+ index 751c265..a3be3f1 100644

+ --- a/Makefile.am

+ +++ b/Makefile.am

+ @@ -216,7 +216,7 @@ endif #HPLIP_CLASS_DRIVER

+  if FAX_BUILD

+  if !HPLIP_CLASS_DRIVER

+  faxdir = $(hplipdir)/fax

+ -dist_fax_DATA = fax/fax.py fax/__init__.py fax/coverpages.py fax/pmlfax.py fax/ledmfax.py fax/cdmfax.py fax/soapfax.py fax/ledmsoapfax.py fax/marvellfax.py \

+ +dist_fax_DATA = fax/fax.py fax/__init__.py fax/coverpages.py fax/pmlfax.py fax/ledmfax.py fax/soapfax.py fax/ledmsoapfax.py fax/marvellfax.py \

+  	fax/faxdevice.py fax/filters/pstotiff fax/filters/pstotiff.convs fax/filters/pstotiff.types

+  fax_filtersdir = $(mimedir)

+  dist_fax_filters_DATA = fax/filters/pstotiff.convs fax/filters/pstotiff.types

+ @@ -228,7 +228,7 @@ if HPIJS_INSTALL

+  dist_hpijsfaxppd_DATA = fax/ppd/HP-Fax-hpijs.ppd.gz fax/ppd/HP-Fax2-hpijs.ppd.gz fax/ppd/HP-Fax3-hpijs.ppd.gz fax/ppd/HP-Fax4-hpijs.ppd.gz

+  endif # HPIJS_INSTALL

+  if HPCUPS_INSTALL

+ -dist_hpcupsfaxppd_DATA = fax/ppd/HP-Fax-hpcups.ppd.gz fax/ppd/HP-Fax2-hpcups.ppd.gz fax/ppd/HP-Fax3-hpcups.ppd.gz fax/ppd/HP-Fax4-hpcups.ppd.gz fax/ppd/HP-Fax-CDM-hpcups.ppd.gz

+ +dist_hpcupsfaxppd_DATA = fax/ppd/HP-Fax-hpcups.ppd.gz fax/ppd/HP-Fax2-hpcups.ppd.gz fax/ppd/HP-Fax3-hpcups.ppd.gz fax/ppd/HP-Fax4-hpcups.ppd.gz

+  endif # HPCUPS_INSTALL

+  endif # HPLIP_CLASS_DRIVER

+  endif # FAX_BUILD

+ @@ -613,12 +613,6 @@ hpcupsfax_PROGRAMS = hpcupsfax

+  hpcupsfax_SOURCES = prnt/hpijs/hpcupsfax.cpp prnt/hpijs/hpcupsfax.h common/utils.h common/utils.c

+  hpcupsfax_LDADD = libhpip.la -lcups -lcupsimage -ldl

+  

+ -# hpcdmfax

+ -hpcdmfaxdir = $(cupsfilterdir)

+ -hpcdmfax_PROGRAMS = hpcdmfax

+ -hpcdmfax_SOURCES = fax/filters/cdmfax/hpcupscdmfax.cpp fax/filters/cdmfax/hpcupscdmfax.h fax/filters/cdmfax/jetlib.cpp fax/filters/cdmfax/jetlib.h

+ -hpcdmfax_LDADD = libhpip.la -lcups -lcupsimage -ldl -ljpeg

+ -

+  endif # HPLIP_CLASS_DRIVER

+  endif # FAX_BUILD

+  endif # HPCUPS ONLY

+ diff --git a/hplip.list.in b/hplip.list.in

+ index 909f41d..f2b5e47 100644

+ --- a/hplip.list.in

+ +++ b/hplip.list.in

+ @@ -94,7 +94,6 @@ f 0755 root root $cupsfilter/pstotiff fax/filters/pstotiff

+  

+  %if !print_only_exclude

+  f 0755 root root $cupsfilter/hpcupsfax .libs/hpcupsfax

+ -f 0755 root root $cupsfilter/hpcdmfax .libs/hpcdmfax

+  %endif

+  

+  %if foomatic-drv-install

file modified
+11 -11
@@ -1,7 +1,7 @@ 

- diff -up hplip-3.17.4/Makefile.am.no-ernie hplip-3.17.4/Makefile.am

- --- hplip-3.17.4/Makefile.am.no-ernie	2017-04-26 16:28:35.398099978 +0200

- +++ hplip-3.17.4/Makefile.am	2017-04-26 16:29:02.235879035 +0200

- @@ -519,7 +519,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilte

+ 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 \
@@ -10,9 +10,9 @@ 

   	prnt/hpcups/Encapsulator.cpp prnt/hpcups/Encapsulator.h prnt/hpcups/Pcl3.cpp prnt/hpcups/Pcl3.h \

   	prnt/hpcups/Pcl3Gui.cpp prnt/hpcups/Pcl3Gui.h prnt/hpcups/Pcl3Gui2.cpp prnt/hpcups/Pcl3Gui2.h \

   	prnt/hpcups/LJMono.cpp prnt/hpcups/LJMono.h prnt/hpcups/LJColor.cpp prnt/hpcups/LJColor.h \

- diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp

- --- hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie	2017-04-26 16:28:39.525066003 +0200

- +++ hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp	2017-04-26 16:29:46.987510614 +0200

+ 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"
@@ -26,7 +26,7 @@ 

   {

       speed_mech_enabled = true;

  -    m_run_ernie_filter = true;

-      crd_type = eCrd_both;

+      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
@@ -51,9 +51,9 @@ 

   

       if (crd_type != eCrd_black_only) {

           Mode10    *pMode10;

- diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h.no-ernie hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h

- --- hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h.no-ernie	2017-04-26 16:28:43.277035115 +0200

- +++ hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h	2017-04-26 16:30:05.826355522 +0200

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

file modified
+2 -1
@@ -14,12 +14,13 @@ 

  

  # remove unwanted files

  rm hplip-$VERSION/prnt/hpcups/ErnieFilter.{cpp,h} hplip-$VERSION/prnt/hpijs/ernieplatform.h || exit 1

+ rm hplip-$VERSION/fax/filters/cdmfax/hpcupscdmfax.{cpp,h} hplip-$VERSION/fax/filters/cdmfax/jetlib.{cpp,h} hplip-$VERSION/fax/ppd/HP-Fax-CDM-hpcups.ppd.gz || exit 1

  

  # 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 || exit 1

+ 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

file modified
+13 -12
@@ -1,20 +1,21 @@ 

- diff --git a/protocol/hp_ipp.c b/protocol/hp_ipp.c

- index 97d827d..af25b3e 100644

- --- a/protocol/hp_ipp.c

- +++ b/protocol/hp_ipp.c

- @@ -110,9 +110,9 @@ int addCupsPrinter(char *name, char *device_uri, char *location, char *ppd_file,

-       }

+ diff -up hplip-3.23.3/protocol/hp_ipp.c.snprintf-format hplip-3.23.3/protocol/hp_ipp.c

+ --- hplip-3.23.3/protocol/hp_ipp.c.snprintf-format	2023-03-28 09:26:11.000000000 +0200

+ +++ hplip-3.23.3/protocol/hp_ipp.c	2023-05-29 14:21:30.872871575 +0200

+ @@ -108,10 +108,10 @@ int addCupsPrinter(char *name, char *dev

+          goto abort;

+      }

   

-       if ( info == NULL )

+ -     if ( info == NULL )

  -        snprintf( info,sizeof(info), name );

+ +    if ( info == NULL )

  +        info = name;

   

- -     sprintf( printer_uri, "ipp://localhost/printers/%s", name );

- +     snprintf( printer_uri, sizeof(printer_uri), "ipp://localhost/printers/%s", name);

+ -    sprintf(printer_uri, "ipp://localhost/printers/%s", name);

+ +    snprintf( printer_uri, sizeof(printer_uri), "ipp://localhost/printers/%s", name);

   

-       cupsSetUser ("root");

-       /* Connect to the HTTP server */

- @@ -511,27 +511,27 @@ int __parsePrinterAttributes(ipp_t *response, printer_t **printer_list)

+      cupsSetUser("root");

+      /* Connect to the HTTP server */

+ @@ -514,27 +514,27 @@ int __parsePrinterAttributes(ipp_t *resp

   

                if ( strcmp(attr_name, "printer-name") == 0 &&

                                           val_tag == IPP_TAG_NAME ) {

file modified
+7 -7
@@ -1,12 +1,12 @@ 

- diff -up hplip-3.19.6/ui5/wifisetupdialog.py.wifisetup-bad-call-fix hplip-3.19.6/ui5/wifisetupdialog.py

- --- hplip-3.19.6/ui5/wifisetupdialog.py.wifisetup-bad-call-fix	2019-07-12 08:46:56.873167869 +0200

- +++ hplip-3.19.6/ui5/wifisetupdialog.py	2019-07-12 08:49:36.813769803 +0200

- @@ -570,7 +570,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog

-              try:                

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

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

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

file modified
+90 -85
@@ -6,8 +6,8 @@ 

  

  Summary: HP Linux Imaging and Printing Project

  Name: hplip

- Version: 3.22.10

- Release: 4%{?dist}

+ Version: 3.23.5

+ Release: 1%{?dist}

  License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC

  

  Url: https://developers.hp.com/hp-linux-imaging-and-printing
@@ -168,22 +168,19 @@ 

  # - it will cause malfunction of printing and scanning for them

  # https://bugs.launchpad.net/hplip/+bug/1883898

  Patch53: hplip-revert-plugins.patch

- # non-sudoers cannot authenticate

- # reported upstream https://bugs.launchpad.net/hplip/+bug/1904888

- Patch54: hplip-check-userperms.patch

  # if an user tries to install scanner via hp-setup (printer/fax utility)

  # it fails further down - break out earlier with a message

  # reported upstream as https://bugs.launchpad.net/hplip/+bug/1916114

- Patch55: hplip-hpsetup-noscanjets.patch

+ Patch54: hplip-hpsetup-noscanjets.patch

  # 1963114 - patch for hplip firmware load timeout fix

  # reported upstream https://bugs.launchpad.net/hplip/+bug/1922404

- Patch56: hplip-hpfirmware-timeout.patch

+ Patch55: hplip-hpfirmware-timeout.patch

  # 1985251 - Incorrect permission for gpg directory

  # reported upstream https://bugs.launchpad.net/hplip/+bug/1938442

- Patch57: hplip-gpgdir-perms.patch

+ Patch56: hplip-gpgdir-perms.patch

  # 1987141 - hp-plugin installs malformed udev files

  # reported upstream https://bugs.launchpad.net/hplip/+bug/1847477

- Patch58: hplip-plugin-udevissues.patch

+ Patch57: hplip-plugin-udevissues.patch

  # 2080235 - Misleading errors about missing shared libraries when scanning

  # downstream patch to prevent errors:

  # - when loading libhpmud.so - unversioned .so files belong into devel packages,
@@ -192,32 +189,38 @@ 

  #   package (if libhpmud.so had been moved to -devel) the dlopen on unversioned .so file was

  #   removed

  # - /lib64/libm.so is not symlink but ld script, which cannot be used in dlopen()

- Patch59: hplip-no-libhpmud-libm-warnings.patch

+ Patch58: hplip-no-libhpmud-libm-warnings.patch

  # hplip 3.22.6 doesn't use the correct arguments for snprintf

  # reported as https://bugs.launchpad.net/hplip/+bug/1982185

- Patch60: hplip-snprintf-format.patch

- Patch61: hplip-plugin-script.patch

+ Patch59: hplip-snprintf-format.patch

+ Patch60: hplip-plugin-script.patch

  # C99 compatibility fixes by fweimer - use explicit int

  # Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>

- Patch62: hplip-pserror-c99.patch

+ Patch61: hplip-pserror-c99.patch

  # C99 compatibility patch by fweimer - several undefined functions in hpaio

  # backend are declared in orblite.h

  # Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>

- Patch63: hplip-scan-hpaio-include.patch

+ Patch62: hplip-scan-hpaio-include.patch

  # C99 compatibility patch by fweimer - undefined _DBG() and dynamic linking funcs in orblite.c

  # - _DBG() looks like typo and new header is added for funcs

  # Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>

- Patch64: hplip-scan-orblite-c99.patch

+ Patch63: hplip-scan-orblite-c99.patch

  # C99 compatibility patch by fweimer:

  # PyString_AsStringAndSize is removed in Python3, remove its compilation for now

  # in case there is a request for compiling it again, there is a possible solution

  # for the function py3 alternative https://opendev.org/openstack/pyeclib/commit/19c8313986

  # - disabling removes hp-unload and /usr/share/hplip/pcard as well

  # Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>

- Patch65: hplip-pcardext-disable.patch

+ Patch64: hplip-pcardext-disable.patch

  # undefined strcasestr() in sclpml.c - build with _GNU_SOURCE

  # Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>

- Patch66: hplip-sclpml-strcasestr.patch

+ Patch65: hplip-sclpml-strcasestr.patch

+ # hpcupscdmfilter for faxing requires jetlib header and source files,

+ # which have copyright note in the header comment, that the files can't

+ # be shared and copied for other than archival purposes without HP permission

+ # - this looks as incompatible conditional for Fedora, so the files are removed,

+ # hplip repacked and this patch removes its mentions in Makefile.am

+ Patch66: hplip-nocdmfilter.patch

  

  %if 0%{?fedora} || 0%{?rhel} <= 8

  # mention hplip-gui if you want to have GUI
@@ -353,21 +356,21 @@ 

  %setup -q

  

  # The pstotiff filter is rubbish so replace it (launchpad #528394).

- %patch1 -p1 -b .pstotiff-is-rubbish

+ %patch -P 1 -p1 -b .pstotiff-is-rubbish

  

  # Fix compilation.

- %patch2 -p1 -b .strstr-const

+ %patch -P 2 -p1 -b .strstr-const

  

  # Make utils.checkPyQtImport() look for the gui sub-package (bug #243273).

- %patch3 -p1 -b .ui-optional

+ %patch -P 3 -p1 -b .ui-optional

  

  # Make sure to avoid handwritten asm.

- %patch4 -p1 -b .no-asm

+ %patch -P 4 -p1 -b .no-asm

  

  # Corrected several IEEE 1284 Device IDs using foomatic data.

  # Color LaserJet 2500 series (bug #659040)

  # LaserJet 4100 Series/2100 Series (bug #659039)

- %patch5 -p1 -b .deviceIDs-drv

+ %patch -P 5 -p1 -b .deviceIDs-drv

  chmod +x %{SOURCE2}

  mv prnt/drv/hpijs.drv.in{,.deviceIDs-drv-hpijs}

  %{SOURCE2} prnt/drv/hpcups.drv.in \
@@ -375,28 +378,28 @@ 

             > prnt/drv/hpijs.drv.in

  

  # Move udev rules from /etc/ to /usr/lib/ (bug #748208).

- %patch6 -p1 -b .udev-rules

+ %patch -P 6 -p1 -b .udev-rules

  

  # Retry when connecting to device fails (bug #532112).

- %patch7 -p1 -b .retry-open

+ %patch -P 7 -p1 -b .retry-open

  

  # Mark SNMP quirks in PPD for HP OfficeJet Pro 8500 (bug #581825).

- %patch8 -p1 -b .snmp-quirks

+ %patch -P 8 -p1 -b .snmp-quirks

  

  # Fixed bogus low ink warnings from hpijs driver (bug #643643).

- %patch9 -p1 -b .hpijs-marker-supply

+ %patch -P 9 -p1 -b .hpijs-marker-supply

  

  # Clear old printer-state-reasons we used to manage (bug #510926).

- %patch10 -p1 -b .clear-old-state-reasons

+ %patch -P 10 -p1 -b .clear-old-state-reasons

  

  # Avoid busy loop in hpcups when backend has exited (bug #525944).

- %patch11 -p1 -b .hpcups-sigpipe

+ %patch -P 11 -p1 -b .hpcups-sigpipe

  

  # CUPS filters should use TMPDIR when available (bug #865603).

- %patch12 -p1 -b .logdir

+ %patch -P 12 -p1 -b .logdir

  

  # Fixed Device ID parsing code in hpijs's dj9xxvip.c (bug #510926).

- %patch13 -p1 -b .bad-low-ink-warning

+ %patch -P 13 -p1 -b .bad-low-ink-warning

  

  # Add Device ID for

  # HP LaserJet Color M451dn (bug #1159380)
@@ -404,7 +407,7 @@ 

  do

    gunzip ${ppd_file#*/}.gz

  done

- %patch14 -p1 -b .deviceIDs-ppd

+ %patch -P 14 -p1 -b .deviceIDs-ppd

  for ppd_file in $(grep '^diff' %{PATCH14} | cut -d " " -f 4);

  do

    gzip -n ${ppd_file#*/}
@@ -415,152 +418,151 @@ 

  do

    gunzip ${ppd_file#*/}.gz

  done

- %patch15 -p1 -b .ImageableArea

+ %patch -P 15 -p1 -b .ImageableArea

  for ppd_file in $(grep '^diff' %{PATCH15} | cut -d " " -f 4);

  do

    gzip -n ${ppd_file#*/}

  done

  

  # Scan to /var/tmp instead of /tmp (bug #1076954).

- %patch16 -p1 -b .scan-tmp

+ %patch -P 16 -p1 -b .scan-tmp

  

  # Treat logging before importing of logger module (bug #984699).

- %patch17 -p1 -b .log-stderr

+ %patch -P 17 -p1 -b .log-stderr

  

  # Fix parsing of avahi-daemon output (bug #1096939).

- %patch18 -p1 -b .parsing

+ %patch -P 18 -p1 -b .parsing

  

  # Fixed left/right margins for HP DeskJet 990C (LP #1405212).

- %patch19 -p1 -b .dj990c-margin

+ %patch -P 19 -p1 -b .dj990c-margin

  

  # Fixed uses of strncpy throughout.

- %patch20 -p1 -b .strncpy

+ %patch -P 20 -p1 -b .strncpy

  

  # Don't try to write bytecode cache for hpfax backend (bug #1192761)

  # or hp-config_usb_printer (bug #1266903)

  # or hpps filter (bug #1241548).

- %patch21 -p1 -b .no-write-bytecode

+ %patch -P 21 -p1 -b .no-write-bytecode

  

  # Ignore IOError when logging output (bug #712537).

- %patch22 -p1 -b .silence-ioerror

+ %patch -P 22 -p1 -b .silence-ioerror

  

  # [abrt] hplip: hp-scan:663:<module>:NameError: name 'source_option' is not defined (bug #1341304)

- %patch23 -p1 -b .sourceoption

+ %patch -P 23 -p1 -b .sourceoption

  

  # hplip license problem (bug #1364711)

- %patch24 -p1 -b .no-ernie

+ %patch -P 24 -p1 -b .no-ernie

  

  # hplip appdata

- %patch25 -p1 -b .appdata

+ %patch -P 25 -p1 -b .appdata