diff --git a/.gitignore b/.gitignore index 242bd0c..7899dea 100644 --- a/.gitignore +++ b/.gitignore @@ -108,3 +108,5 @@ hplip-3.10.6.tar.gz /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 diff --git a/0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch b/0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch index ef7d370..c0b26ec 100644 --- a/0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch +++ b/0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch @@ -1,45 +1,108 @@ -From 95a73bbc9bd65602a0f9411469ab511bc80a01d0 Mon Sep 17 00:00:00 2001 -From: Till Kamppeter -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("The HPLIP plugin is already installed.

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("Unable to find an appropriate su/sudo utility to run hp-plugin.

Install kdesu, gnomesu, or gksu.

"), +- 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("An error occurred.

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("%s

Without this, it is not possible to authenticate and validate the plug-in prior to installation.

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("%s

Without this, it is not possible to authenticate and validate this tool prior to installation.

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 @@ index cc2552f91..a868ccac0 100644 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("Annoying Confirmation: Are you sure you want to delete this group?"), @@ -125,7 +187,7 @@ index 109462207..b23364410 100644 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("Annoying Confirmation: Are you sure you want to delete this address book entry?"), @@ -134,7 +196,7 @@ index 109462207..b23364410 100644 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 @@ index 109462207..b23364410 100644 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 @@ index 106215c5e..69f424c42 100644 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 @@ index 16b313374..0bcee1164 100644 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 @@ index 27f144b36..0fbb573e3 100644 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 @@ index 01f6ae53b..57a696375 100644 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 @@ index 64e64aa77..76cb0238b 100644 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 @@ index 0c6c4f39e..7c10ab07b 100644 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("One or more email addresses are missing.

Please enter this information and try again."), @@ -270,7 +325,7 @@ index 92da22546..24f02fd84 100644 ## 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("

Please check your email for a test message.

If the message doesn't arrive, please check your settings and try again."), @@ -279,10 +334,9 @@ index 92da22546..24f02fd84 100644 ## 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 @@ index 307917b02..78863fdd8 100644 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 @@ index 8397a689c..ae363e01e 100644 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 @@ index 6b9acf5cc..d0b418419 100644 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("The HPLIP plugin is already installed.

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("Unable to find an appropriate su/sudo utility to run hp-plugin.

Install kdesu, gnomesu, or gksu.

"), -- 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("An error occurred.

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("%s

Without this, it is not possible to authenticate and validate the plug-in prior to installation.

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("%s

Without this, it is not possible to authenticate and validate this tool prior to installation.

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 diff --git a/hplip-add-ppd-crash.patch b/hplip-add-ppd-crash.patch index 7117860..798630a 100644 --- a/hplip-add-ppd-crash.patch +++ b/hplip-add-ppd-crash.patch @@ -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 @@ index 976a42c..3604dd7 100755 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] diff --git a/hplip-check-userperms.patch b/hplip-check-userperms.patch deleted file mode 100644 index 9204c0b..0000000 --- a/hplip-check-userperms.patch +++ /dev/null @@ -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: " diff --git a/hplip-covscan.patch b/hplip-covscan.patch index bb6314b..adc456d 100644 --- a/hplip-covscan.patch +++ b/hplip-covscan.patch @@ -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 @@ index d8ecee9..def4e47 100644 #include #include #include -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 @@ index 0eb6fff..358f279 100644 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 @@ index 06f5072..20df27a 100644 #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 @@ index 4ea8990..a917d69 100644 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 @@ index 6e99c15..755493e 100644 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 @@ index 74c5fdc..021d627 100644 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 @@ index caa383f..e1425c0 100644 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 @@ index c0cdc73..4db4bde 100644 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 @@ index c0cdc73..4db4bde 100644 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 @@ index c3df482..19490b1 100644 } 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 @@ index 95f5a64..f5b4bb5 100644 } 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 @@ index 5879a70..d246041 100644 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 @@ index b233d1e..7ba0edf 100644 # include -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 @@ index 0f67542..e496a74 100644 #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 @@ index af45bff..4f59b21 100644 } 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 @@ index af45bff..4f59b21 100644 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 #include @@ -307,11 +291,10 @@ index 800df91..45668cd 100644 #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 @@ index 4508458..7bbddea 100755 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 @@ index 4508458..7bbddea 100755 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 @@ index 4508458..7bbddea 100755 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 @@ index 9a1ff02..07ab5b0 100644 } 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 @@ index 9a1ff02..07ab5b0 100644 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 @@ index ad267a3..236f7c9 100644 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 @@ index ad267a3..236f7c9 100644 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 @@ index ad267a3..236f7c9 100644 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 @@ index ad267a3..236f7c9 100644 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 @@ index ad267a3..236f7c9 100644 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 @@ index ad267a3..236f7c9 100644 } 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 @@ index ad267a3..236f7c9 100644 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 @@ index ad267a3..236f7c9 100644 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 @@ index ad267a3..236f7c9 100644 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 @@ index ad267a3..236f7c9 100644 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 #include @@ -484,11 +464,10 @@ index 9a5975f..dc8b32c 100644 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 @@ index 07106fe..0d22e52 100644 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 @@ index 07106fe..0d22e52 100644 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 @@ index 07106fe..0d22e52 100644 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 @@ index 07106fe..0d22e52 100644 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 @@ index 07106fe..0d22e52 100644 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 @@ index 07106fe..0d22e52 100644 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 @@ index 07106fe..0d22e52 100644 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 @@ index 07106fe..0d22e52 100644 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 @@ index 07106fe..0d22e52 100644 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 @@ index 269ab21..139100d 100644 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 @@ index 269ab21..139100d 100644 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 @@ index 269ab21..139100d 100644 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 @@ index 269ab21..139100d 100644 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 @@ index 269ab21..139100d 100644 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 @@ index 269ab21..139100d 100644 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 @@ index 269ab21..139100d 100644 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 @@ index 269ab21..139100d 100644 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)) { diff --git a/hplip-dialog-infinite-loop.patch b/hplip-dialog-infinite-loop.patch index dbb04e7..cfd635b 100644 --- a/hplip-dialog-infinite-loop.patch +++ b/hplip-dialog-infinite-loop.patch @@ -2,15 +2,6 @@ diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py index c23957a..48b248f 100644 --- a/ui5/devmgr5.py +++ b/ui5/devmgr5.py -@@ -2247,7 +2247,7 @@ class PasswordDialog(QDialog): - self.prompt = prompt - - Layout= QGridLayout(self) -- Layout.setMargin(11) -+ Layout.setContentsMargins(11, 11, 11, 11) - Layout.setSpacing(6) - - self.PromptTextLabel = QLabel(self) @@ -2300,14 +2300,15 @@ class PasswordDialog(QDialog): # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX diff --git a/hplip-hpsetup-noscanjets.patch b/hplip-hpsetup-noscanjets.patch index 5c956a0..52a4690 100644 --- a/hplip-hpsetup-noscanjets.patch +++ b/hplip-hpsetup-noscanjets.patch @@ -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 @@ index 5d48aaa..88e663f 100755 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, diff --git a/hplip-nocdmfilter.patch b/hplip-nocdmfilter.patch new file mode 100644 index 0000000..ba1806a --- /dev/null +++ b/hplip-nocdmfilter.patch @@ -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 diff --git a/hplip-noernie.patch b/hplip-noernie.patch index 4ac83b4..47bb9d0 100644 --- a/hplip-noernie.patch +++ b/hplip-noernie.patch @@ -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 @@ diff -up hplip-3.17.4/Makefile.am.no-ernie hplip-3.17.4/Makefile.am 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 @@ diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.17.4/prnt/hpcups { 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 @@ diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.17.4/prnt/hpcups 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; diff --git a/hplip-repack.sh b/hplip-repack.sh index c25fbb0..034187c 100755 --- a/hplip-repack.sh +++ b/hplip-repack.sh @@ -14,12 +14,13 @@ tar -xaf hplip-$VERSION.tar.gz || exit 1 # remove unwanted files rm hplip-$VERSION/prnt/hpcups/ErnieFilter.{cpp,h} hplip-$VERSION/prnt/hpijs/ernieplatform.h || exit 1 +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 diff --git a/hplip-snprintf-format.patch b/hplip-snprintf-format.patch index 221f1d1..21b1530 100644 --- a/hplip-snprintf-format.patch +++ b/hplip-snprintf-format.patch @@ -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 ) { diff --git a/hplip-wifisetup.patch b/hplip-wifisetup.patch index 7247b01..a7dc21b 100644 --- a/hplip-wifisetup.patch +++ b/hplip-wifisetup.patch @@ -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) diff --git a/hplip.spec b/hplip.spec index cf11e37..d22bd3b 100644 --- a/hplip.spec +++ b/hplip.spec @@ -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 @@ Patch52: hplip-clean-ldl.patch # - 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 @@ Patch58: hplip-plugin-udevissues.patch # 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: -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: -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: -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: -Patch65: hplip-pcardext-disable.patch +Patch64: hplip-pcardext-disable.patch # undefined strcasestr() in sclpml.c - build with _GNU_SOURCE # Submitted upstream: -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 @@ SANE driver for scanners in HP's multi-function devices (from HPOJ). %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 @@ mv prnt/drv/hpijs.drv.in{,.deviceIDs-drv-hpijs} > 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 @@ for ppd_file in $(grep '^diff' %{PATCH14} | cut -d " " -f 4); 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 @@ for ppd_file in $(grep '^diff' %{PATCH15} | cut -d " " -f 4); 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::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 # hp-check shows 'CUPS incompatible or not running' even if CUPS is running (bug #1456467) -%patch26 -p1 -b .check-cups +%patch -P 26 -p1 -b .check-cups # hp-firmware:NameError: name 'INTERACTIVE_MODE4' is not defined (bug #1533869) -%patch27 -p1 -b .typo +%patch -P 27 -p1 -b .typo -%patch28 -p1 -b .use-binary-str +%patch -P 28 -p1 -b .use-binary-str # TypeError: 'Error' object does not support indexing (bug #1564770) # upstream bug: https://bugs.launchpad.net/ubuntu/+source/hplip/+bug/1718129 # in python2 it was possible to acces Exception message by index [0]. # in python3 this is no longer possible and it causes TypeError. -%patch29 -p1 -b .error-print-fix +%patch -P 29 -p1 -b .error-print-fix # TypeError: not all arguments converted during string formatting (bug #1566938) # upstream bug: https://bugs.launchpad.net/ubuntu/+source/hplip/+bug/616450 # bug caused by more arguments than argument specifiers in formatted string -%patch30 -p1 -b .hpfax-import-error-print +%patch -P 30 -p1 -b .hpfax-import-error-print # 'WifiSetupDialog' object has no attribute 'wifiobj' (bug #1626877) # upstream bug: https://bugs.launchpad.net/hplip/+bug/1752060 # bug caused by typo in wifisetupdialog wifiObj property call -%patch31 -p1 -b .wifisetup-bad-call-fix +%patch -P 31 -p1 -b .wifisetup-bad-call-fix # have pool of keyservers to choose -%patch32 -p1 -b .keyserver +%patch -P 32 -p1 -b .keyserver # TypeError: argument 5 has unexpected type 'StandardButtons' (bug #1594602) # upstream bug: https://bugs.launchpad.net/ubuntu/+source/hplip/+bug/1745383 # bug caused by typo in QMessageBox constructor call # this patch fixes more of those typos - some fixed by tkorbar, some taken from ubuntu fix -%patch33 -p1 -b .qmsgbox-typos-fix +%patch -P 33 -p1 -b .qmsgbox-typos-fix # removal of non open source code, taken from ubuntu -%patch34 -p1 -b .libimageprocessor-removal +%patch -P 34 -p1 -b .libimageprocessor-removal %{_bindir}/rm prnt/hpcups/libImageProcessor-x86* -%patch35 -p1 -b .toolbox-crash +%patch -P 35 -p1 -b .toolbox-crash # part of https://bugzilla.redhat.com/show_bug.cgi?id=1666076 -%patch36 -p1 -b .add-ppd-crash +%patch -P 36 -p1 -b .add-ppd-crash # 1671513 - after 'successful' plugin installation it is not installed -%patch37 -p1 -b .missing-links +%patch -P 37 -p1 -b .missing-links # 1684434 - Scanning broken for HP LaserJet 3052 -%patch38 -p1 -b .hp-laserjet-3052-broken-scanning +%patch -P 38 -p1 -b .hp-laserjet-3052-broken-scanning # 1694663 - Cannot scan with M281fdw LaserJet - failed: Error during device I/O (part 1) -%patch39 -p1 -b .hpmud-string-parse +%patch -P 39 -p1 -b .hpmud-string-parse # 1694663 - Cannot scan with M281fdw LaserJet - failed: Error during device I/O (part 2) -%patch40 -p1 -b .m278-m281-needs-plugin +%patch -P 40 -p1 -b .m278-m281-needs-plugin # 1695716 - hpcups crashes in Compressor destructor -%patch41 -p1 -b .hpcups-crash +%patch -P 41 -p1 -b .hpcups-crash # fixing issues found by coverity scan -%patch42 -p1 -b .covscan +%patch -P 42 -p1 -b .covscan # segfault during logging (1727162) -%patch43 -p1 -b .logging-segfault +%patch -P 43 -p1 -b .logging-segfault # 1738321 - [abrt] hp-systray:BlockingIOError: [Errno 11] Resource temporarily unavailable -%patch44 -p1 -b .systray-blockerror +%patch -P 44 -p1 -b .systray-blockerror # 1742949, 1740132, 1739855 - missing drivers -%patch45 -p1 -b .missing-drivers +%patch -P 45 -p1 -b .missing-drivers # 1772698 - Can't setup printer (HP LJ 2200): no attributes found in model.dat -%patch46 -p1 -b .model-mismatch +%patch -P 46 -p1 -b .model-mismatch # 1573430 - sixext.py:to_string_utf8:UnicodeDecodeError: 'utf-8' codec can't decode bytes -%patch47 -p1 -b .unicodeerror -%patch48 -p1 -b .Wreturn-fix -%patch49 -p1 -b .configure-python -%patch50 -p1 -b .dialog-infinite-loop +%patch -P 47 -p1 -b .unicodeerror +%patch -P 48 -p1 -b .Wreturn-fix +%patch -P 49 -p1 -b .configure-python +%patch -P 50 -p1 -b .dialog-infinite-loop # 1590014 - hplip PPD search doesn't expect '-' in device name -%patch51 -p1 -b .find-driver +%patch -P 51 -p1 -b .find-driver # 1833308 - hp-clean cannot clean HP PSC1410 - Device I/O error -%patch52 -p1 -b .clean-ldl -%patch53 -p1 -b .revert-plugins -# 1899410 - non-sudoers cannot authenticate because of bad username in prompt -%patch54 -p1 -b .check-userperms +%patch -P 52 -p1 -b .clean-ldl +%patch -P 53 -p1 -b .revert-plugins # if an user tries to install scanner via hp-setup (printer/fax utility) # it fails further down - break out earlier with a message -%patch55 -p1 -b .hpsetup-noscanjets +%patch -P 54 -p1 -b .hpsetup-noscanjets # 1963114 - patch for hplip firmware load timeout fix -%patch56 -p1 -b .hpfirmware-timeout +%patch -P 55 -p1 -b .hpfirmware-timeout # 1985251 - Incorrect permission for gpg directory -%patch57 -p1 -b .gpgdir-perms +%patch -P 56 -p1 -b .gpgdir-perms # 1987141 - hp-plugin installs malformed udev files -%patch58 -p1 -b .hpplugin-udevperms +%patch -P 57 -p1 -b .hpplugin-udevperms # 2080235 - Misleading errors about missing shared libraries when scanning -%patch59 -p1 -b .no-libm-libhpmud-warn +%patch -P 58 -p1 -b .no-libm-libhpmud-warn # hplip 3.22.6 doesn't use proper arguments for snprintf -%patch60 -p1 -b .snprintf-format -%patch61 -p1 -b .plugin-patch +%patch -P 59 -p1 -b .snprintf-format +%patch -P 60 -p1 -b .plugin-patch # C99 compatibility fixes by fweimer - use explicit int # Submitted upstream: -%patch62 -p1 -b .pserror-int +%patch -P 61 -p1 -b .pserror-int # C99 compatibility patch by fweimer - several undefined functions in hpaio # backend are declared in orblite.h # Submitted upstream: -%patch63 -p1 -b .hpaio-orblite-defs +%patch -P 62 -p1 -b .hpaio-orblite-defs # 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: -%patch64 -p1 -b .orblite-undefs +%patch -P 63 -p1 -b .orblite-undefs # C99 compatibility patch by fweimer - python2 PyString_AsStringAndSize in python3 code # gives undefined reference - removed for now with dependent hp-unload -%patch65 -p1 -b .pcardext-disable +%patch -P 64 -p1 -b .pcardext-disable # C99 compatibility patch by fweimer - undefined strcasestr() in sclpml.c - build with _GNU_SOURCE -%patch66 -p1 -b .sclpml-strcasestr +%patch -P 65 -p1 -b .sclpml-strcasestr +%patch -P 66 -p1 -b .nocdmfilter # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui should be installed if you want GUI -%patch1000 -p1 -b .fedora-gui +%patch -P 1000 -p1 -b .fedora-gui %endif @@ -927,6 +929,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Tue Jun 06 2023 Zdenek Dohnal - 3.23.5-1 +- 2184067 - hplip-3.23.5 is available + * Thu Jan 19 2023 Fedora Release Engineering - 3.22.10-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild diff --git a/sources b/sources index b462c5f..826d71c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hplip-3.22.10-repack.tar.gz) = cc7cc12ed04e08cbded581351280b71e13525b06a333d43078d67ae591baeecd29773a7f7fb5ebfc3dd842b1e4c9a84af9c5747987ef1941d1eef405ecb65fc1 +SHA512 (hplip-3.23.5-repack.tar.gz) = 7616a088b6f2f5efbd5ec426b3de80099b56f435adb38c0acd1f60e7cd00e788f94a2e35136011a7d73dd48a891a3b713263132653c9a2acf0ba98d57a790b4c