diff --git a/.fmf/version b/.fmf/version
deleted file mode 100644
index d00491f..0000000
--- a/.fmf/version
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/.gitignore b/.gitignore
index 00397c1..3f89025 100644
--- a/.gitignore
+++ b/.gitignore
@@ -89,30 +89,3 @@ hplip-3.10.6.tar.gz
/hplip-3.18.4.tar.gz
/hplip-3.18.5.tar.gz
/hplip-3.18.6.tar.gz
-/hplip-3.18.12.tar.gz
-/hplip-3.19.6.tar.gz
-/hplip-3.19.8.tar.gz
-/hplip-3.19.10.tar.gz
-/hplip-3.19.11.tar.gz
-/hplip-3.19.12.tar.gz
-/hplip-3.20.2.tar.gz
-/hplip-3.20.3.tar.gz
-/hplip-3.20.5.tar.gz
-/hplip-3.20.6.tar.gz
-/hplip-3.20.9.tar.gz
-/hplip-3.20.11.tar.gz
-/hplip-3.21.2.tar.gz
-/hplip-3.21.2-repack.tar.gz
-/hplip-3.21.12-repack.tar.gz
-/hplip-3.22.2-repack.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
-/hplip-3.23.8-repack.tar.gz
-/hplip-3.23.12-repack.tar.gz
-/hplip-3.24.4-repack.tar.gz
-/hplip-3.25.2-repack.tar.gz
-/hplip-3.25.6-repack.tar.gz
-/hplip-3.25.8-repack.tar.gz
diff --git a/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch b/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
deleted file mode 100644
index 7c61d77..0000000
--- a/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index f65afea..12317dc 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -167,7 +167,7 @@ if !HPLIP_CLASS_DRIVER
- dist_hplip_SCRIPTS = hpssd.py __init__.py hpdio.py
- endif #HPLIP_CLASS_DRIVER
-
--dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template prnt/hpcups/libImageProcessor-x86_64.so prnt/hpcups/libImageProcessor-x86_32.so
-+dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template
-
- dist_noinst_DATA += prnt/ipp-usb/HPLIP.conf
- dist_noinst_SCRIPTS += dat2drv.py install.py hplip-install init-suse-firewall init-iptables-firewall class_rpm_build.sh hplipclassdriver.spec createPPD.sh Makefile_dat2drv hpijs-drv
-@@ -597,7 +597,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp
- prnt/hpcups/ImageProcessor.h
-
- hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
--hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lImageProcessor -lcups -lcupsimage -lz $(DBUS_LIBS)
-+hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lcups -lcupsimage -lz $(DBUS_LIBS)
- #else
- #hpcupsdir = $(cupsfilterdir)
- #hpcups_PROGRAMS = hpcups
-@@ -687,16 +687,6 @@ endif #HPLIP_CLASS_DRIVER
-
- install-data-hook:
- if HPLIP_BUILD
-- if [ \( "$(UNAME)" = "x86_64" -a -d "$(libdir)/" \) ]; then \
-- cp prnt/hpcups/libImageProcessor-x86_64.so $(libdir)/ ; \
-- chmod 775 $(libdir)/libImageProcessor-x86_64.so ; \
-- ln -sf $(libdir)/libImageProcessor-x86_64.so $(libdir)/libImageProcessor.so ; \
-- fi; \
-- if [ \( \( "$(UNAME)" = "i686" -o "$(UNAME)" = "i386" \) -a -d "$(libdir)/" \) ]; then \
-- cp prnt/hpcups/libImageProcessor-x86_32.so $(libdir)/ ; \
-- chmod 775 $(libdir)/libImageProcessor-x86_32.so ; \
-- ln -sf $(libdir)/libImageProcessor-x86_32.so $(libdir)/libImageProcessor.so ; \
-- fi
- if [ -d "/usr/share/ipp-usb/quirks/" ]; then \
- echo "ipp-usb directory exists"; \
- cp prnt/ipp-usb/HPLIP.conf /usr/share/ipp-usb/quirks/ ; \
diff --git a/0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch b/0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch
deleted file mode 100644
index c0b26ec..0000000
--- a/0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch
+++ /dev/null
@@ -1,417 +0,0 @@
-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("%sWithout 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(),
- self.__tr("Unable to find an appropriate su/sudo utility to run hp-plugin.Install kdesu, gnomesu, or gksu.
"),
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
- else:
-@@ -2854,7 +2854,7 @@ class DevMgr4(DevMgr4_base):
- x = QMessageBox.critical(self,
- self.caption(),
- self.__tr("Annoying Confirmation: Are you sure you want to remove this device?"),
-- QMessageBox.Yes,
-+ QMessageBox.Yes |\
- QMessageBox.No | QMessageBox.Default,
- QMessageBox.NoButton)
- if x == QMessageBox.Yes:
-@@ -2949,7 +2949,7 @@ class DevMgr4(DevMgr4_base):
- QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-@@ -2958,7 +2958,7 @@ class DevMgr4(DevMgr4_base):
- QMessageBox.warning(self,
- self.caption(),
- msg,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-@@ -3115,7 +3115,7 @@ class ScrollTestpageView(ScrollView):
- QMessageBox.information(self,
- self.caption(),
- self.__tr("A test page should be printing on your printer.
If the page fails to print, please visit http://hplip.sourceforge.net for troubleshooting and support."),
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-@@ -3130,7 +3130,7 @@ class ScrollTestpageView(ScrollView):
- QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-@@ -3272,7 +3272,7 @@ class ScrollColorCalView(ScrollView):
- QMessageBox.information(self,
- self.caption(),
- self.__tr("
A test page should be printing on your printer.
If the page fails to print, please visit http://hplip.sourceforge.net for troubleshooting and support."),
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-@@ -3287,7 +3287,7 @@ class ScrollColorCalView(ScrollView):
- QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-diff -up hplip-3.23.3/ui/faxaddrbookform.py.qmsgbox-typos-fix hplip-3.23.3/ui/faxaddrbookform.py
---- hplip-3.23.3/ui/faxaddrbookform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
-+++ hplip-3.23.3/ui/faxaddrbookform.py 2023-05-29 13:48:48.424731328 +0200
-@@ -228,7 +228,7 @@ class FaxAddrBookGroupsForm(FaxAddrBookG
- x = QMessageBox.critical(self,
- self.caption(),
- self.__tr("Annoying Confirmation: Are you sure you want to delete this group?"),
-- QMessageBox.Yes,
-+ QMessageBox.Yes |\
- QMessageBox.No | QMessageBox.Default,
- QMessageBox.NoButton)
- if x == QMessageBox.Yes:
-@@ -421,7 +421,7 @@ class FaxAddrBookForm(FaxAddrBookForm_ba
- if QMessageBox.critical(self,
- self.caption(),
- self.__tr("Annoying Confirmation: Are you sure you want to delete this address book entry?"),
-- QMessageBox.Yes,
-+ QMessageBox.Yes |\
- QMessageBox.No | QMessageBox.Default,
- QMessageBox.NoButton) == QMessageBox.Yes:
- db.delete(self.current.entry['name'])
-@@ -451,7 +451,7 @@ class FaxAddrBookForm(FaxAddrBookForm_ba
- QMessageBox.critical(self,
- self.caption(),
- QString(error_text),
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-diff -up hplip-3.23.3/ui/faxsendjobform.py.qmsgbox-typos-fix hplip-3.23.3/ui/faxsendjobform.py
---- hplip-3.23.3/ui/faxsendjobform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
-+++ hplip-3.23.3/ui/faxsendjobform.py 2023-05-29 13:48:48.424731328 +0200
-@@ -210,7 +210,7 @@ class FaxSendJobForm(QMainWindow):
- QMessageBox.information(self,
- self.caption(),
- self.__tr("
Fax send completed successfully."),
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-@@ -219,7 +219,7 @@ class FaxSendJobForm(QMainWindow):
- QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-@@ -228,7 +228,7 @@ class FaxSendJobForm(QMainWindow):
- QMessageBox.warning(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-diff -up hplip-3.23.3/ui/firmwaredialog.py.qmsgbox-typos-fix hplip-3.23.3/ui/firmwaredialog.py
---- hplip-3.23.3/ui/firmwaredialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
-+++ hplip-3.23.3/ui/firmwaredialog.py 2023-05-29 13:48:48.424731328 +0200
-@@ -109,7 +109,7 @@ class FirmwareDialog(QDialog, FirmwareDi
- QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-diff -up hplip-3.23.3/ui/makecopiesform.py.qmsgbox-typos-fix hplip-3.23.3/ui/makecopiesform.py
---- hplip-3.23.3/ui/makecopiesform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
-+++ hplip-3.23.3/ui/makecopiesform.py 2023-05-29 13:48:48.424731328 +0200
-@@ -156,7 +156,7 @@ class MakeCopiesForm(QMainWindow):
- QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-@@ -164,7 +164,7 @@ class MakeCopiesForm(QMainWindow):
- QMessageBox.warning(self,
- self.caption(),
- msg,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-diff -up hplip-3.23.3/ui/nodevicesform.py.qmsgbox-typos-fix hplip-3.23.3/ui/nodevicesform.py
---- hplip-3.23.3/ui/nodevicesform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
-+++ hplip-3.23.3/ui/nodevicesform.py 2023-05-29 13:48:48.424731328 +0200
-@@ -67,7 +67,7 @@ class NoDevicesForm(NoDevicesForm_base):
- QMessageBox.critical(self,
- self.caption(),
- self.__tr("An error occurred.
Please re-start the Device Manager and try again."),
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-diff -up hplip-3.23.3/ui/pluginform2.py.qmsgbox-typos-fix hplip-3.23.3/ui/pluginform2.py
---- hplip-3.23.3/ui/pluginform2.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
-+++ hplip-3.23.3/ui/pluginform2.py 2023-05-29 13:48:48.424731328 +0200
-@@ -173,7 +173,7 @@ class PluginForm2(PluginForm2_base):
- QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-@@ -181,7 +181,7 @@ class PluginForm2(PluginForm2_base):
- QMessageBox.information(self,
- self.caption(),
- text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-diff -up hplip-3.23.3/ui/printerform.py.qmsgbox-typos-fix hplip-3.23.3/ui/printerform.py
---- hplip-3.23.3/ui/printerform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
-+++ hplip-3.23.3/ui/printerform.py 2023-05-29 13:48:48.425731321 +0200
-@@ -154,7 +154,7 @@ class PrinterForm(QMainWindow):
- QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-diff -up hplip-3.23.3/ui/settingsdialog.py.qmsgbox-typos-fix hplip-3.23.3/ui/settingsdialog.py
---- hplip-3.23.3/ui/settingsdialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
-+++ hplip-3.23.3/ui/settingsdialog.py 2023-05-29 13:48:48.425731321 +0200
-@@ -146,7 +146,7 @@ class SettingsDialog(SettingsDialog_base
- ## QMessageBox.warning(self,
- ## self.caption(),
- ## self.__tr("One or more email addresses are missing.
Please enter this information and try again."),
--## QMessageBox.Ok,
-+## QMessageBox.Ok |\
- ## QMessageBox.NoButton,
- ## QMessageBox.NoButton)
- ## return
-@@ -163,7 +163,7 @@ class SettingsDialog(SettingsDialog_base
- ## QMessageBox.information(self,
- ## self.caption(),
- ## self.__tr("
Please check your email for a test message.
If the message doesn't arrive, please check your settings and try again."),
--## QMessageBox.Ok,
-+## QMessageBox.Ok |\
- ## QMessageBox.NoButton,
- ## QMessageBox.NoButton)
-
-diff -up hplip-3.23.3/ui/setupform.py.qmsgbox-typos-fix hplip-3.23.3/ui/setupform.py
---- hplip-3.23.3/ui/setupform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
-+++ hplip-3.23.3/ui/setupform.py 2023-05-29 13:48:48.425731321 +0200
-@@ -602,7 +602,7 @@ class SetupForm(SetupForm_base):
- if ( QMessageBox.warning(self,
- self.caption(),
- warn_text,
-- QMessageBox.Yes,
-+ QMessageBox.Yes |\
- QMessageBox.No,
- QMessageBox.NoButton) == QMessageBox.Yes ):
-
-@@ -804,7 +804,7 @@ class SetupForm(SetupForm_base):
- if QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Retry | QMessageBox.Default,
-+ QMessageBox.Retry | QMessageBox.Default |\
- QMessageBox.Cancel | QMessageBox.Escape,
- QMessageBox.NoButton) == QMessageBox.Cancel:
- break
-@@ -832,7 +832,7 @@ class SetupForm(SetupForm_base):
- if QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Retry | QMessageBox.Default,
-+ QMessageBox.Retry | QMessageBox.Default |\
- QMessageBox.Cancel | QMessageBox.Escape,
- QMessageBox.NoButton) == QMessageBox.Cancel:
- break
-@@ -1003,7 +1003,7 @@ class SetupForm(SetupForm_base):
- QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-@@ -1011,7 +1011,7 @@ class SetupForm(SetupForm_base):
- QMessageBox.warning(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-diff -up hplip-3.23.3/ui/unloadform.py.qmsgbox-typos-fix hplip-3.23.3/ui/unloadform.py
---- hplip-3.23.3/ui/unloadform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
-+++ hplip-3.23.3/ui/unloadform.py 2023-05-29 13:48:48.425731321 +0200
-@@ -135,7 +135,7 @@ class UnloadForm(QMainWindow):
- QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-diff -up hplip-3.23.3/ui/upgradeform.py.qmsgbox-typos-fix hplip-3.23.3/ui/upgradeform.py
---- hplip-3.23.3/ui/upgradeform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
-+++ hplip-3.23.3/ui/upgradeform.py 2023-05-29 13:48:48.425731321 +0200
-@@ -118,7 +118,7 @@ class UpgradeForm(UpgradeForm_base):
- QMessageBox.critical(self,
- self.caption(),
- error_text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
-@@ -126,7 +126,7 @@ class UpgradeForm(UpgradeForm_base):
- QMessageBox.information(self,
- self.caption(),
- text,
-- QMessageBox.Ok,
-+ QMessageBox.Ok |\
- QMessageBox.NoButton,
- QMessageBox.NoButton)
-
diff --git a/0027-Fixed-incomplete-removal-of-hp-toolbox-features-whic.patch b/0027-Fixed-incomplete-removal-of-hp-toolbox-features-whic.patch
deleted file mode 100644
index 04fc19d..0000000
--- a/0027-Fixed-incomplete-removal-of-hp-toolbox-features-whic.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ae211a3fcfb1b827f0ec35d61f28d6b539028812 Mon Sep 17 00:00:00 2001
-From: Till Kamppeter
-Date: Wed, 3 Oct 2018 15:13:00 +0200
-Subject: Fixed incomplete removal of hp-toolbox features, which caused the
- hp-toolbox not to start
-
-Looking into the ui5/devmgr5.py of the HPLIP Python source code it
-seems that some features got removed by commenting them out, but this
-removal seems not to have been completed, making non-existing objects
-being called during the start of hp-toolbox and so it crashes right
-away.
-
-This patch completes the commenting-out and so makes hp-toolbox start
-up and work again.
-
-Bug-Debian: https://bugs.debian.org/912768
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/1789184
----
- ui5/devmgr5.py | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
-index 0ca016820..9d4e82c58 100644
---- a/ui5/devmgr5.py
-+++ b/ui5/devmgr5.py
-@@ -319,11 +319,11 @@ class DevMgr5(Ui_MainWindow_Derived, Ui_MainWindow, QMainWindow):
- self.PreferencesAction.setIcon(QIcon(load_pixmap('settings', '16x16')))
- self.PreferencesAction.triggered.connect(self.PreferencesAction_activated)
-
-- self.DiagnoseQueueAction.setIcon(QIcon(load_pixmap('warning', '16x16')))
-- self.DiagnoseQueueAction.triggered.connect(self.DiagnoseQueueAction_activated)
-+ #self.DiagnoseQueueAction.setIcon(QIcon(load_pixmap('warning', '16x16')))
-+ #self.DiagnoseQueueAction.triggered.connect(self.DiagnoseQueueAction_activated)
-
-- self.DiagnoseHPLIPAction.setIcon(QIcon(load_pixmap('troubleshoot', '16x16')))
-- self.DiagnoseHPLIPAction.triggered.connect(self.DiagnoseHPLIP_activated)
-+ #self.DiagnoseHPLIPAction.setIcon(QIcon(load_pixmap('troubleshoot', '16x16')))
-+ #self.DiagnoseHPLIPAction.triggered.connect(self.DiagnoseHPLIP_activated)
-
- self.ContentsAction.setIcon(QIcon(load_pixmap("help", "16x16")))
- self.ContentsAction.triggered.connect(self.helpContents)
diff --git a/ci.fmf b/ci.fmf
deleted file mode 100644
index c5aa0e0..0000000
--- a/ci.fmf
+++ /dev/null
@@ -1 +0,0 @@
-resultsdb-testcase: separate
diff --git a/gating.yaml b/gating.yaml
deleted file mode 100644
index 71d105b..0000000
--- a/gating.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
---- !Policy
-product_versions:
- - fedora-*
-decision_context: bodhi_update_push_testing
-subject_type: koji_build
-rules:
- - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional}
-
-#Rawhide
---- !Policy
-product_versions:
- - fedora-*
-decision_context: bodhi_update_push_stable
-subject_type: koji_build
-rules:
- - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional}
-
-#gating rhel
---- !Policy
-product_versions:
- - rhel-*
-decision_context: osci_compose_gate
-rules:
- - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-public.functional}
- - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional}
diff --git a/hp-laserjet_cp_1025nw.ppd.gz b/hp-laserjet_cp_1025nw.ppd.gz
deleted file mode 100644
index ab80803..0000000
Binary files a/hp-laserjet_cp_1025nw.ppd.gz and /dev/null differ
diff --git a/hp-laserjet_professional_p_1102w.ppd.gz b/hp-laserjet_professional_p_1102w.ppd.gz
deleted file mode 100644
index b716711..0000000
Binary files a/hp-laserjet_professional_p_1102w.ppd.gz and /dev/null differ
diff --git a/hp-plugin.in b/hp-plugin.in
deleted file mode 100644
index 5bdbab0..0000000
--- a/hp-plugin.in
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/bash
-
-# get version from base hplip rpm
-VER=$(@bindir@/rpm -q hplip --queryformat='%{version}')
-
-if test "x$VER" = "x"
-then
- @bindir@/echo "Version was not acquired - exiting..."
- exit 1
-fi
-
-# plugin name
-PLUGIN_FILE="hplip-${VER}-plugin.run"
-
-download()
-{
- SOURCE="$1"
-
- @bindir@/curl --create-dirs -O --output-dir ~/.hplip --location ${SOURCE}
-}
-
-# link to the plugin
-PLUGIN_SOURCE="https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${PLUGIN_FILE}"
-FALLBACK_SOURCE="https://developers.hp.com/sites/default/files/${PLUGIN_FILE}"
-
-# create a hidden hplip dir to store a file indicating the plugin version after successful install
-# the directory can be used by other hplip tools, so we don't have to remove it if the failure happens
-if [ ! -d ~/.hplip ]
-then
- @bindir@/mkdir ~/.hplip || (@bindir@/echo "Cannot create the ~/.hplip dir, exiting" && exit 1)
-fi
-
-for link in ${PLUGIN_SOURCE} ${FALLBACK_SOURCE}
-do
- download ${link}
-
- if test "x$(file --mime ~/.hplip/${PLUGIN_FILE} | grep -o 'text/x-shellscript')" = "xtext/x-shellscript"
- then
- break
- fi
-done
-
-if test "x$(file --mime ~/.hplip/${PLUGIN_FILE} | grep -o 'text/x-shellscript')" = "x"
-then
- @bindir@/echo "The downloaded file does not exist or is not a shell script - error during downloading, exiting..."
- exit 1
-fi
-
-@bindir@/bash ~/.hplip/${PLUGIN_FILE}
-
-if [ $? -ne 0 ]
-then
- @bindir@/echo "Plugin installation failed, exiting..."
- @bindir@/rm -f ~/.hplip/${PLUGIN_FILE} &> /dev/null
- exit 1
-fi
-
-@bindir@/rm -f ~/.hplip/${PLUGIN_FILE} &> /dev/null
-@bindir@/rm -f ~/.hplip/plugin-installed-* &> /dev/null
-@bindir@/touch ~/.hplip/plugin-installed-$VER
-
-exit 0
diff --git a/hplip-3.18.6.tar.gz.asc b/hplip-3.18.6.tar.gz.asc
new file mode 100644
index 0000000..8221531
--- /dev/null
+++ b/hplip-3.18.6.tar.gz.asc
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+
+iEYEABECAAYFAlsYzCYACgkQc9dwzaWQR7k3kQCgpUG6Okb3nGf7qodmI9zTBf3A
+a8AAoLD0LiwifYlnEBlHS5Eaw/ylB9A8
+=H/1x
+-----END PGP SIGNATURE-----
diff --git a/hplip-sourceoption.patch b/hplip-3165-sourceoption.patch
similarity index 100%
rename from hplip-sourceoption.patch
rename to hplip-3165-sourceoption.patch
diff --git a/hplip-add-ppd-crash.patch b/hplip-add-ppd-crash.patch
deleted file mode 100644
index beb070d..0000000
--- a/hplip-add-ppd-crash.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up hplip-3.23.3/ui5/setupdialog.py.add-ppd-crash hplip-3.23.3/ui5/setupdialog.py
---- hplip-3.23.3/ui5/setupdialog.py.add-ppd-crash 2023-05-29 13:55:03.443497903 +0200
-+++ hplip-3.23.3/ui5/setupdialog.py 2023-05-29 13:57:19.014700721 +0200
-@@ -765,10 +765,9 @@ class SetupDialog(QDialog, Ui_Dialog):
- pass
-
- def OtherPPDButton_clicked(self, b):
-- ppd_file = to_unicode(QFileDialog.getOpenFileName(self, self.__tr("Select PPD File"),
-- sys_conf.get(
-- 'dirs', 'ppd'),
-- self.__tr("PPD Files (*.ppd *.ppd.gz);;All Files (*)")))
-+ ppd_file = QFileDialog.getOpenFileName(self, self.__tr("Select PPD File"),
-+ sys_conf.get('dirs', 'ppd'),
-+ self.__tr("PPD Files (*.ppd *.ppd.gz);;All Files (*)"))[0]
-
- if ppd_file and os.path.exists(ppd_file):
- self.print_ppd = (ppd_file, cups.getPPDDescription(ppd_file))
diff --git a/hplip-check-cups.patch b/hplip-check-cups.patch
index e0f1570..053eb50 100644
--- a/hplip-check-cups.patch
+++ b/hplip-check-cups.patch
@@ -1,17 +1,16 @@
-diff --git a/installer/core_install.py b/installer/core_install.py
-index a6654e2..0bd1e9c 100644
---- a/installer/core_install.py
-+++ b/installer/core_install.py
-@@ -362,9 +362,9 @@ class CoreInstall(object):
+diff -up hplip-3.17.11/installer/core_install.py.check-cups hplip-3.17.11/installer/core_install.py
+--- hplip-3.17.11/installer/core_install.py.check-cups 2017-12-07 15:34:24.855761874 +0100
++++ hplip-3.17.11/installer/core_install.py 2017-12-07 15:38:44.749568860 +0100
+@@ -349,9 +349,9 @@ class CoreInstall(object):
'automake': (True, ['prnt'], AUTOMAKE_STR, self.check_automake, DEPENDENCY_RUN_AND_COMPILE_TIME, '-', None, GENERALDEP),
'libjpeg': (True, ['base', 'prnt'], JPEG_STR, self.check_libjpeg, DEPENDENCY_RUN_AND_COMPILE_TIME, '-', None, GENERALDEP),
'libtool': (True, ['base', 'prnt'], LIBTOOL_STR, self.check_libtool, DEPENDENCY_COMPILE_TIME, '-', 'libtool --version', COMPILEDEP),
- 'cups': (True, ['base', 'prnt'], CUPS_STR, self.check_cups, DEPENDENCY_RUN_TIME, '1.1', 'cups-config --version', EXTERNALDEP),
- 'cups-devel': (True, ['base', 'prnt'], CUPS_DEV_STR, self.check_cups_devel, DEPENDENCY_COMPILE_TIME, '-', 'cups-config --version', GENERALDEP),
- 'cups-image': (True, ['base', 'prnt'], CUPS_IMG_STR, self.check_cups_image, DEPENDENCY_COMPILE_TIME, '-', 'cups-config --version', GENERALDEP),
-+ 'cups': (True, ['base', 'prnt'], CUPS_STR, self.check_cups, DEPENDENCY_RUN_TIME, '-', None, EXTERNALDEP),
-+ 'cups-devel': (True, ['base', 'prnt'], CUPS_DEV_STR, self.check_cups_devel, DEPENDENCY_COMPILE_TIME, '1.1', 'pkgconf --modversion cups', GENERALDEP),
-+ 'cups-image': (True, ['base', 'prnt'], CUPS_IMG_STR, self.check_cups_image, DEPENDENCY_COMPILE_TIME, '1.1', 'pkgconf --modversion cups', GENERALDEP),
++ 'cups': (True, ['base', 'prnt'], CUPS_STR, self.check_cups, DEPENDENCY_RUN_TIME, '1.1', 'lpstat -r', EXTERNALDEP),
++ 'cups-devel': (True, ['base', 'prnt'], CUPS_DEV_STR, self.check_cups_devel, DEPENDENCY_COMPILE_TIME, '-', 'lpstat -r', GENERALDEP),
++ 'cups-image': (True, ['base', 'prnt'], CUPS_IMG_STR, self.check_cups_image, DEPENDENCY_COMPILE_TIME, '-', 'lpstat -r', GENERALDEP),
'gcc': (True, ['base', 'prnt'], GCC_STR, self.check_gcc, DEPENDENCY_COMPILE_TIME, '-', 'gcc --version', COMPILEDEP),
'make': (True, ['base', 'prnt'], MAKE_STR, self.check_make, DEPENDENCY_COMPILE_TIME, '3.0', 'make --version', COMPILEDEP),
'libpthread': (True, ['base', 'prnt'], THREAD_STR, self.check_libpthread, DEPENDENCY_RUN_AND_COMPILE_TIME, '-', 'FUNC#get_libpthread_version', GENERALDEP),
diff --git a/hplip-clean-ldl.patch b/hplip-clean-ldl.patch
deleted file mode 100644
index 89553ec..0000000
--- a/hplip-clean-ldl.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff --git a/base/device.py b/base/device.py
-index 6d7add9..bf27307 100644
---- a/base/device.py
-+++ b/base/device.py
-@@ -2264,7 +2264,8 @@ class Device(object):
- self.callback()
-
- if total_bytes_to_write != bytes_out:
-- raise Error(ERROR_DEVICE_IO_ERROR)
-+ raise Error(ERROR_DEVICE_IO_ERROR, 'Number of written '
-+ 'bytes by hpmudext mismatch with expected amount.')
-
- return bytes_out
-
-diff --git a/base/g.py b/base/g.py
-index 9856662..0aa0e2e 100644
---- a/base/g.py
-+++ b/base/g.py
-@@ -398,9 +398,11 @@ ERROR_STRINGS = {
-
-
- class Error(Exception):
-- def __init__(self, opt=ERROR_INTERNAL):
-+ def __init__(self, opt=ERROR_INTERNAL, msg=None):
- self.opt = opt
- self.msg = ERROR_STRINGS.get(opt, ERROR_STRINGS[ERROR_INTERNAL])
-+ if msg:
-+ self.msg = '{} - {}'.format(self.msg, msg)
- log.debug("Exception: %d (%s)" % (opt, self.msg))
- Exception.__init__(self, self.msg, opt)
-
-diff --git a/prnt/ldl.py b/prnt/ldl.py
-index e3f77f7..8b28e7f 100644
---- a/prnt/ldl.py
-+++ b/prnt/ldl.py
-@@ -145,7 +145,7 @@ def buildLIDILPacket(packet_type, command=0, operation=0, other={}):
- p = '$\x00\x10\x00\x08\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff$'
-
- elif packet_type == PACKET_TYPE_RESET_LIDIL:
-- p = '$\x00\x10\x00\x06\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff$'
-+ p = b'$\x00\x10\x00\x06\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff$'
-
- elif packet_type == PACKET_TYPE_COMMAND:
-
diff --git a/hplip-colorlaserjet-mfp-m278-m281.patch b/hplip-colorlaserjet-mfp-m278-m281.patch
new file mode 100644
index 0000000..2ce7870
--- /dev/null
+++ b/hplip-colorlaserjet-mfp-m278-m281.patch
@@ -0,0 +1,63 @@
+diff -up hplip-3.17.11/data/models/models.dat.colorlaserjet-mfp-m278-m281 hplip-3.17.11/data/models/models.dat
+--- hplip-3.17.11/data/models/models.dat.colorlaserjet-mfp-m278-m281 2017-11-23 13:10:17.000000000 +0100
++++ hplip-3.17.11/data/models/models.dat 2018-01-19 08:24:21.554788787 +0100
+@@ -58516,6 +58516,59 @@ usb-pid=3c2a
+ usb-vid=3f0
+ wifi-config=3
+
++[hp_colorlaserjet_mfp_m278-m281]
++align-type=0
++clean-type=0
++color-cal-type=0
++copy-type=0
++embedded-server-type=1
++fax-type=7
++fw-download=False
++icon=hp_color_laserjet_cm1312_mfp.png
++io-mfp-mode=1
++io-mode=1
++io-support=14
++job-storage=0
++linefeed-cal-type=0
++model1=HP Color LaserJet MFP M278-281
++monitor-type=0
++panel-check-type=0
++pcard-type=0
++plugin=1
++plugin-reason=64
++power-settings=0
++ppd-name=hp-color_laserjet_pro_mfp_m277
++pq-diag-type=0
++r-type=0
++r0-agent1-kind=4
++r0-agent1-sku=CF400A/CF400X
++r0-agent1-type=1
++r0-agent2-kind=4
++r0-agent2-sku=CF401A
++r0-agent2-type=4
++r0-agent3-kind=4
++r0-agent3-sku=CF403A
++r0-agent3-type=5
++r0-agent4-kind=4
++r0-agent4-sku=CF402A
++r0-agent4-type=6
++scan-src=3
++scan-type=5
++status-battery-check=0
++status-dynamic-counters=0
++status-type=10
++support-released=True
++support-subtype=48c3
++support-type=2
++support-ver=3.15.4
++tech-class=Postscript
++family-class=Undefined
++tech-subclass=Normal
++tech-type=4
++usb-pid=3c2a
++usb-vid=3f0
++wifi-config=3
++
+ [hp_color_laserjet_m553]
+ align-type=0
+ clean-type=0
diff --git a/hplip-configure-python.patch b/hplip-configure-python.patch
deleted file mode 100644
index 2ae7620..0000000
--- a/hplip-configure-python.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-diff -up hplip-3.20.9/configure.in.configure-python hplip-3.20.9/configure.in
---- hplip-3.20.9/configure.in.configure-python 2020-09-23 07:24:27.000000000 +0200
-+++ hplip-3.20.9/configure.in 2020-10-02 07:27:09.082331431 +0200
-@@ -604,17 +604,29 @@ if test "$class_driver" = "no" && test "
- fi
- fi
-
--SAVE_CPPFLAGS="$CPPFLAGS"
--CFLAGS=`python-config --includes`
--if [ $? -eq 0 ]
--then
-- echo $FLAGS
--else
--CFLAGS=`python3-config --includes`
-- if [ $? -eq 0 ]
-- then
-- echo $FLAGS
-- fi
-+AC_PATH_PROG(python3_config_path, python3-config, [AC_MSG_ERROR([python3-config not installed], 6)])
-+
-+PYTHON_INCLUDES=`$python3_config_path --includes`
-+if test "X$PYTHON_INCLUDES" = "X" ; then
-+ AC_MSG_ERROR([Cannot get Python includes via python3-config], 6)
-+fi
-+
-+PYTHON_LIBS=`$python3_config_path --libs`
-+if test "X$PYTHON_LIBS" = "X" ; then
-+ AC_MSG_ERROR([Cannot get Python libs via python3-config], 6)
-+fi
-+
-+SAVE_CFLAGS="$CFLAGS"
-+SAVE_LIBS="$LIBS"
-+
-+CFLAGS="$CFLAGS $PYTHON_INCLUDES"
-+LIBS="$LIBS $PYTHON_LIBS"
-+
-+AC_TRY_LINK(,[ ], AC_MSG_RESULT(yes); python_includes="ok", AC_MSG_ERROR([no: PYTHON DISABLED], 6))
-+
-+if test "X$python_includes" != "Xok" ; then
-+ CFLAGS="$SAVE_CFLAGS"
-+ LIBS="$SAVE_LIBS"
- fi
-
- #CFLAGS=`(python-config --includes)`
-@@ -631,7 +643,6 @@ if test "$class_driver" = "no" && test "
- AS_IF([test "x$FOUND_HEADER" != "xyes"],
- [AC_MSG_ERROR([cannot find python-devel support], 6)])
- fi
--CFLAGS="$save_CFLAGS"
-
- if test "$hpijs_only_build" = "no" && test "$scan_build" = "yes" && test "$hpcups_only_build" = "no"; then
- AC_CHECK_LIB([sane], [sane_open], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find sane-backends-devel support (or --disable-scan-build)], 12)])
diff --git a/hplip-covscan.patch b/hplip-covscan.patch
deleted file mode 100644
index 29384dc..0000000
--- a/hplip-covscan.patch
+++ /dev/null
@@ -1,615 +0,0 @@
-diff -up hplip-3.25.2/common/utils.c.covscan hplip-3.25.2/common/utils.c
---- hplip-3.25.2/common/utils.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/common/utils.c 2025-04-11 10:21:58.034950818 +0200
-@@ -1,5 +1,9 @@
-+#ifndef _GNU_SOURCE
-+#define _GNU_SOURCE
-+#endif
-+
- #include "utils.h"
--#include "string.h"
-+#include
- #include
- #include
- #include
-diff -up hplip-3.25.2/io/hpmud/hpmud.c.covscan hplip-3.25.2/io/hpmud/hpmud.c
---- hplip-3.25.2/io/hpmud/hpmud.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/io/hpmud/hpmud.c 2025-04-11 10:21:58.035151792 +0200
-@@ -769,6 +769,7 @@ enum HPMUD_RESULT hpmud_get_dstat(HPMUD_
- }
-
- strncpy(ds->uri, msp->device[dd].uri, sizeof(ds->uri));
-+ ds->uri[sizeof(ds->uri)-1] = '\0';
- ds->io_mode = msp->device[dd].io_mode;
- ds->channel_cnt = msp->device[dd].channel_cnt;
- ds->mlc_up = msp->device[dd].mlc_up;
-diff -up hplip-3.25.2/io/hpmud/jd.c.covscan hplip-3.25.2/io/hpmud/jd.c
---- hplip-3.25.2/io/hpmud/jd.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/io/hpmud/jd.c 2025-04-11 10:21:58.035328288 +0200
-@@ -31,6 +31,7 @@
- #endif
-
- #include
-+#include
- #include "hpmud.h"
- #include "hpmudi.h"
-
-diff -up hplip-3.25.2/io/hpmud/model.c.covscan hplip-3.25.2/io/hpmud/model.c
---- hplip-3.25.2/io/hpmud/model.c.covscan 2025-04-11 10:21:58.023885145 +0200
-+++ hplip-3.25.2/io/hpmud/model.c 2025-04-11 10:21:58.035487541 +0200
-@@ -117,6 +117,7 @@ static int ReadConfig()
- if (rcbuf[0] == '[')
- {
- strncpy(section, rcbuf, sizeof(section)); /* found new section */
-+ section[sizeof(section)-1] = '\0';
- continue;
- }
-
-@@ -125,6 +126,7 @@ static int ReadConfig()
- if ((strncasecmp(section, "[dirs]", 6) == 0) && (strcasecmp(key, "home") == 0))
- {
- strncpy(homedir, value, sizeof(homedir));
-+ homedir[sizeof(homedir)-1] = '\0';
- break; /* done */
- }
- }
-diff -up hplip-3.25.2/io/hpmud/musb.c.covscan hplip-3.25.2/io/hpmud/musb.c
---- hplip-3.25.2/io/hpmud/musb.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/io/hpmud/musb.c 2025-04-11 10:21:58.035717762 +0200
-@@ -776,7 +776,7 @@ static int device_id(int fd, unsigned ch
- len = size-1; /* leave byte for zero termination */
- if (len > 2)
- len -= 2;
-- memcpy(buffer, buffer+2, len); /* remove length */
-+ memmove(buffer, buffer+2, len); /* remove length */
- buffer[len]=0;
- DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);
-
-diff -up hplip-3.25.2/io/hpmud/pp.c.covscan hplip-3.25.2/io/hpmud/pp.c
---- hplip-3.25.2/io/hpmud/pp.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/io/hpmud/pp.c 2025-04-11 10:21:58.035977040 +0200
-@@ -632,7 +632,7 @@ static int device_id(int fd, char *buffe
- len = size-1; /* leave byte for zero termination */
- if (len > 2)
- len -= 2;
-- memcpy(buffer, buffer+2, len); /* remove length */
-+ memmove(buffer, buffer+2, len); /* remove length */
- buffer[len]=0;
-
- DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);
-diff -up hplip-3.25.2/Makefile.am.covscan hplip-3.25.2/Makefile.am
---- hplip-3.25.2/Makefile.am.covscan 2025-04-11 10:21:58.010155532 +0200
-+++ hplip-3.25.2/Makefile.am 2025-04-11 10:22:52.826357214 +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 = $(PYTHONEXECDIR)
- 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.25.2/pcard/fat.c.covscan hplip-3.25.2/pcard/fat.c
---- hplip-3.25.2/pcard/fat.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/pcard/fat.c 2025-04-11 10:21:58.036450105 +0200
-@@ -519,14 +519,17 @@ int FatFreeSpace(void)
-
- int FatDiskAttributes( PHOTO_CARD_ATTRIBUTES * pa )
- {
-- strncpy( pa->OEMID, bpb.OEMID, 8 );
-+ strncpy(pa->OEMID, bpb.OEMID, sizeof(pa->OEMID));
-+ pa->OEMID[sizeof(pa->OEMID)-1] = '\0';
- pa->BytesPerSector = bpb.BytesPerSector;
- pa->SectorsPerCluster = bpb.SectorsPerCluster;
- pa->ReservedSectors = bpb.ReservedSectors;
- pa->SectorsPerFat = bpb.SectorsPerFat;
- pa->RootEntries = bpb.RootEntries;
-- strncpy( pa->SystemID, (char *)bpb.SystemID, 8 );
-- strncpy( pa->VolumeLabel, (char *)bpb.VolumeLabel, 11 );
-+ strncpy(pa->SystemID, (char *)bpb.SystemID, sizeof(pa->SystemID));
-+ pa->SystemID[sizeof(pa->SystemID)-1] = '\0';
-+ strncpy(pa->VolumeLabel, (char *)bpb.VolumeLabel, sizeof(pa->VolumeLabel));
-+ pa->VolumeLabel[sizeof(pa->VolumeLabel)-1] = '\0';
- pa->WriteProtect = da.WriteProtect;
-
- return 0;
-@@ -741,6 +744,7 @@ int FatSetCWD(char *dir)
- return 1;
-
- strncpy(cwd.Name, fa.Name, sizeof(cwd.Name));
-+ cwd.Name[sizeof(cwd.Name)-1] = '\0';
- cwd.StartSector = ConvertClusterToSector(fa.StartCluster);
- cwd.CurrSector = cwd.StartSector;
- cwd.StartCluster = fa.StartCluster;
-diff -up hplip-3.25.2/prnt/hpijs/context2.cpp.covscan hplip-3.25.2/prnt/hpijs/context2.cpp
---- hplip-3.25.2/prnt/hpijs/context2.cpp.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/prnt/hpijs/context2.cpp 2025-04-11 10:21:58.036656862 +0200
-@@ -1302,6 +1302,7 @@ DRIVER_ERROR PrintContext::SelectDevice
- if(0 == strnlen((const char *)pSS->strDevID, DevIDBuffSize))
- {
- strncpy((char *)pSS->strDevID,szDeviceId,DevIDBuffSize);
-+ pSS->strDevID[sizeof(pSS->strDevID)-1] = '\0';
- }
- thePrinter = pPFI->CreatePrinter (pSS, familyHandle);
- if (thePrinter->constructor_error != NO_ERROR)
-diff -up hplip-3.25.2/prnt/hpijs/systemservices.cpp.covscan hplip-3.25.2/prnt/hpijs/systemservices.cpp
---- hplip-3.25.2/prnt/hpijs/systemservices.cpp.covscan 2025-02-27 13:12:44.000000000 +0100
-+++ hplip-3.25.2/prnt/hpijs/systemservices.cpp 2025-04-11 10:21:58.036891582 +0200
-@@ -396,7 +396,10 @@ void SystemServices::AdjustIO(IO_MODE IM
- IOMode.bDevID =IM.bDevID && IOMode.bDevID;
-
- if (model)
-+ {
- strncpy(strModel,model, sizeof(strModel));
-+ strModel[sizeof(strModel)-1] = '\0';
-+ }
- }
-
- APDK_END_NAMESPACE
-diff -up hplip-3.25.2/prnt/hpps/hppsfilter.c.covscan hplip-3.25.2/prnt/hpps/hppsfilter.c
---- hplip-3.25.2/prnt/hpps/hppsfilter.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/prnt/hpps/hppsfilter.c 2025-04-11 10:21:58.037072084 +0200
-@@ -329,13 +329,13 @@ static void WriteHeader(char **argument)
- /* Writing Header Information
- argument[1] = JOB ID , argument[2]= USERNAME, argument[3] = TITLE */
- hpwrite("\x1b%-12345X@PJL JOBNAME=", strlen("\x1b%-12345X@PJL JOBNAME="));
-- sprintf(buffer, "hplip_%s_%s\x0a", argument[2], argument[1]);
-+ snprintf(buffer, MAX_BUFFER-1, "hplip_%s_%s\x0a", argument[2], argument[1]);
- hpwrite(buffer, strlen(buffer));
- memset(buffer, 0, sizeof(buffer));
-- sprintf(buffer, "@PJL SET USERNAME=\"%s\"\x0a", argument[2]);
-+ snprintf(buffer, MAX_BUFFER-1, "@PJL SET USERNAME=\"%s\"\x0a", argument[2]);
- hpwrite(buffer, strlen(buffer));
- memset(buffer, 0, sizeof(buffer));
-- sprintf(buffer, "@PJL SET JOBNAME=\"%s\"\x0a", argument[3]);
-+ snprintf(buffer, MAX_BUFFER-1, "@PJL SET JOBNAME=\"%s\"\x0a", argument[3]);
- hpwrite(buffer, strlen(buffer));
- fprintf(stderr, "HP PS filter func = WriteHeader : WRITING PJL HEADER INFO\n");
- return;
-diff -up hplip-3.25.2/protocol/hp_ipp.h.covscan hplip-3.25.2/protocol/hp_ipp.h
---- hplip-3.25.2/protocol/hp_ipp.h.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/protocol/hp_ipp.h 2025-04-11 10:21:58.037239020 +0200
-@@ -168,6 +168,11 @@ HPIPP_RESULT parseResponseHeader(char* h
- HPIPP_RESULT prepend_http_header(raw_ipp *raw_request,const char *resource);
- enum HPMUD_RESULT sendUSBRequest(char *buf, int size, raw_ipp *responseptr, char * device_uri);
- enum HPMUD_RESULT sendUSBFileRequest(char *buf, int size, int fileHandle,raw_ipp *responseptr, char *device_uri);
-+void _releaseCupsInstance();
-+int addCupsPrinter(char *name, char *device_uri, char *location, char *ppd_file, char *model, char *info);
-+int delCupsPrinter(char *pr_name);
-+int setDefaultCupsPrinter(char *pr_name);
-+int controlCupsPrinter(char *pr_name, int op);
-
- ipp_t * createFaxDetailRequest(const char *printer_name);
- ipp_t * getDeviceFaxModemAttributes(char* device_uri,char* printer_name, int *count);
-diff -up hplip-3.25.2/scan/sane/bb_ledm.c.covscan hplip-3.25.2/scan/sane/bb_ledm.c
---- hplip-3.25.2/scan/sane/bb_ledm.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/scan/sane/bb_ledm.c 2025-04-11 10:21:58.037378913 +0200
-@@ -26,6 +26,7 @@
- # include "http.h"
- # include "xml.h"
- # include
-+# include
-
- # include
-
-diff -up hplip-3.25.2/scan/sane/common.h.covscan hplip-3.25.2/scan/sane/common.h
---- hplip-3.25.2/scan/sane/common.h.covscan 2025-04-11 10:21:57.806326475 +0200
-+++ hplip-3.25.2/scan/sane/common.h 2025-04-11 10:21:58.037532413 +0200
-@@ -36,7 +36,7 @@
- #define _STRINGIZE(x) #x
- #define STRINGIZE(x) _STRINGIZE(x)
-
--#define BUG(args...) {syslog(LOG_ERR, __FILE__ " " STRINGIZE(__LINE__) ": " args); DBG(2, __FILE__ " " STRINGIZE(__LINE__) ": " args);}
-+#define BUG_SCAN(args...) {syslog(LOG_ERR, __FILE__ " " STRINGIZE(__LINE__) ": " args); DBG(2, __FILE__ " " STRINGIZE(__LINE__) ": " args);}
- #define BUG_DUMP(data, size) bugdump((data), (size))
- #define BUG_SZ(args...) {syslog(LOG_ERR, args); DBG(2, args);}
-
-diff -up hplip-3.25.2/scan/sane/escl.c.covscan hplip-3.25.2/scan/sane/escl.c
---- hplip-3.25.2/scan/sane/escl.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/scan/sane/escl.c 2025-04-11 10:21:58.037677793 +0200
-@@ -849,7 +849,7 @@ SANE_Status escl_control_option(SANE_Han
- //DBG8("escl_control_option (option=%s) action=%d\n", ps->option[option].name, action);
- if (stat != SANE_STATUS_GOOD)
- {
-- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name, action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
-+ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name, action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
- }
-
- return stat;
-@@ -1159,7 +1159,7 @@ void escl_close(SANE_Handle handle)
-
- if (ps == NULL || ps != session)
- {
-- BUG("invalid sane_close\n");
-+ BUG_SCAN("invalid sane_close\n");
- return;
- }
-
-diff -up hplip-3.25.2/scan/sane/http.c.covscan hplip-3.25.2/scan/sane/http.c
---- hplip-3.25.2/scan/sane/http.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/scan/sane/http.c 2025-04-11 10:21:58.037859247 +0200
-@@ -36,6 +36,7 @@
- #include
- #include
- #include
-+#include
- #include "hpmud.h"
- #include "http.h"
-
-diff -up hplip-3.25.2/scan/sane/io.c.covscan hplip-3.25.2/scan/sane/io.c
---- hplip-3.25.2/scan/sane/io.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/scan/sane/io.c 2025-04-11 10:21:58.037998005 +0200
-@@ -50,7 +50,7 @@ int __attribute__ ((visibility ("hidden"
-
- if (dbus_error_is_set(&dbus_err))
- {
-- BUG("dBus Connection Error (%s)!\n", dbus_err.message);
-+ BUG_SCAN("dBus Connection Error (%s)!\n", dbus_err.message);
- dbus_error_free(&dbus_err);
- }
-
-@@ -79,7 +79,7 @@ int __attribute__ ((visibility ("hidden"
-
- if (NULL == msg)
- {
-- BUG("dbus message is NULL!\n");
-+ BUG_SCAN("dbus message is NULL!\n");
- return 0;
- }
-
-@@ -94,7 +94,7 @@ int __attribute__ ((visibility ("hidden"
-
- if (!dbus_connection_send(dbus_conn, msg, NULL))
- {
-- BUG("dbus message send failed!\n");
-+ BUG_SCAN("dbus message send failed!\n");
- return 0;
- }
-
-diff -up hplip-3.25.2/scan/sane/ledm.c.covscan hplip-3.25.2/scan/sane/ledm.c
---- hplip-3.25.2/scan/sane/ledm.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/scan/sane/ledm.c 2025-04-11 10:21:58.038131991 +0200
-@@ -813,7 +813,7 @@ SANE_Status ledm_control_option(SANE_Han
-
- if (stat != SANE_STATUS_GOOD)
- {
-- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name, action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
-+ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name, action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
- }
-
- return stat;
-@@ -1078,7 +1078,7 @@ void ledm_close(SANE_Handle handle)
-
- if (ps == NULL || ps != session)
- {
-- BUG("invalid sane_close\n");
-+ BUG_SCAN("invalid sane_close\n");
- return;
- }
-
-diff -up hplip-3.25.2/scan/sane/marvell.c.covscan hplip-3.25.2/scan/sane/marvell.c
---- hplip-3.25.2/scan/sane/marvell.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/scan/sane/marvell.c 2025-04-11 10:21:58.038309394 +0200
-@@ -134,7 +134,7 @@ static int get_ip_data(struct marvell_se
-
- if (!ps->ip_handle)
- {
-- BUG("invalid ipconvert state\n");
-+ BUG_SCAN("invalid ipconvert state\n");
- goto bugout;
- }
-
-@@ -335,7 +335,7 @@ static struct marvell_session *create_se
-
- if ((ps = malloc(sizeof(struct marvell_session))) == NULL)
- {
-- BUG("malloc failed: %m\n");
-+ BUG_SCAN("malloc failed: %m\n");
- return NULL;
- }
- memset(ps, 0, sizeof(struct marvell_session));
-@@ -402,7 +402,7 @@ SANE_Status marvell_open(SANE_String_Con
-
- if (session)
- {
-- BUG("session in use\n");
-+ BUG_SCAN("session in use\n");
- return SANE_STATUS_DEVICE_BUSY;
- }
-
-@@ -431,7 +431,7 @@ SANE_Status marvell_open(SANE_String_Con
-
- if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK)
- {
-- BUG("unable to open device %s\n", session->uri);
-+ BUG_SCAN("unable to open device %s\n", session->uri);
- goto bugout;
-
- free(session);
-@@ -441,7 +441,7 @@ SANE_Status marvell_open(SANE_String_Con
-
- if (hpmud_open_channel(session->dd, HPMUD_S_MARVELL_SCAN_CHANNEL, &session->cd) != HPMUD_R_OK)
- {
-- BUG("unable to open %s channel %s\n", HPMUD_S_MARVELL_SCAN_CHANNEL, session->uri);
-+ BUG_SCAN("unable to open %s channel %s\n", HPMUD_S_MARVELL_SCAN_CHANNEL, session->uri);
- stat = SANE_STATUS_DEVICE_BUSY;
- goto bugout;
- }
-@@ -554,7 +554,7 @@ void marvell_close(SANE_Handle handle)
-
- if (ps == NULL || ps != session)
- {
-- BUG("invalid sane_close\n");
-+ BUG_SCAN("invalid sane_close\n");
- return;
- }
-
-@@ -849,7 +849,7 @@ SANE_Status marvell_control_option(SANE_
- stat = SANE_STATUS_GOOD;
- break;
- }
-- BUG("value=%d brymin=%d brymax=%d\n", *int_value, ps->bryRange.min, ps->bryRange.max);
-+ BUG_SCAN("value=%d brymin=%d brymax=%d\n", *int_value, ps->bryRange.min, ps->bryRange.max);
- }
- else
- { /* Set default. */
-@@ -866,7 +866,7 @@ SANE_Status marvell_control_option(SANE_
-
- if (stat != SANE_STATUS_GOOD)
- {
-- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name,
-+ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name,
- action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
- }
-
-@@ -905,7 +905,7 @@ SANE_Status marvell_start(SANE_Handle ha
-
- if (set_extents(ps))
- {
-- BUG("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
-+ BUG_SCAN("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
- ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);
- stat = SANE_STATUS_INVAL;
- goto bugout;
-@@ -963,7 +963,7 @@ SANE_Status marvell_start(SANE_Handle ha
- /* Open image processor. */
- if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE)
- {
-- BUG("unable open image processor: err=%d\n", ret);
-+ BUG_SCAN("unable open image processor: err=%d\n", ret);
- stat = SANE_STATUS_INVAL;
- goto bugout;
- }
-@@ -1023,7 +1023,7 @@ SANE_Status marvell_read(SANE_Handle han
-
- if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
- {
-- BUG("ipConvert error=%x\n", ret);
-+ BUG_SCAN("ipConvert error=%x\n", ret);
- goto bugout;
- }
-
-diff -up hplip-3.25.2/scan/sane/sclpml.c.covscan hplip-3.25.2/scan/sane/sclpml.c
---- hplip-3.25.2/scan/sane/sclpml.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/scan/sane/sclpml.c 2025-04-11 10:21:58.038605168 +0200
-@@ -30,6 +30,7 @@
- #include
- #include
- #include
-+#include
- #include "sane.h"
- #include "saneopts.h"
- #include "common.h"
-@@ -2090,7 +2091,7 @@ void sclpml_close(SANE_Handle handle)
- DBG(8, "sane_hpaio_close(): %s %d\n", __FILE__, __LINE__);
- if (hpaio == NULL || hpaio != session)
- {
-- BUG("invalid sane_close\n");
-+ BUG_SCAN("invalid sane_close\n");
- return;
- }
-
-diff -up hplip-3.25.2/scan/sane/soap.c.covscan hplip-3.25.2/scan/sane/soap.c
---- hplip-3.25.2/scan/sane/soap.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/scan/sane/soap.c 2025-04-11 10:21:58.038894758 +0200
-@@ -142,7 +142,7 @@ static int get_ip_data(struct soap_sessi
-
- if (!ps->ip_handle)
- {
-- BUG("invalid ipconvert state\n");
-+ BUG_SCAN("invalid ipconvert state\n");
- goto bugout;
- }
-
-@@ -219,7 +219,7 @@ static struct soap_session *create_sessi
-
- if ((ps = malloc(sizeof(struct soap_session))) == NULL)
- {
-- BUG("malloc failed: %m\n");
-+ BUG_SCAN("malloc failed: %m\n");
- return NULL;
- }
- memset(ps, 0, sizeof(struct soap_session));
-@@ -418,7 +418,7 @@ SANE_Status soap_open(SANE_String_Const
-
- if (session)
- {
-- BUG("session in use\n");
-+ BUG_SCAN("session in use\n");
- return SANE_STATUS_DEVICE_BUSY;
- }
-
-@@ -434,7 +434,7 @@ SANE_Status soap_open(SANE_String_Const
-
- if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK)
- {
-- BUG("unable to open device %s\n", session->uri);
-+ BUG_SCAN("unable to open device %s\n", session->uri);
- goto bugout;
-
- free(session);
-@@ -519,7 +519,7 @@ void soap_close(SANE_Handle handle)
-
- if (ps == NULL || ps != session)
- {
-- BUG("invalid sane_close\n");
-+ BUG_SCAN("invalid sane_close\n");
- return;
- }
-
-@@ -824,7 +824,7 @@ SANE_Status soap_control_option(SANE_Han
-
- if (stat != SANE_STATUS_GOOD)
- {
-- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name,
-+ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name,
- action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
- }
-
-@@ -862,7 +862,7 @@ SANE_Status soap_start(SANE_Handle handl
- ps->user_cancel = 0;
- if (set_extents(ps))
- {
-- BUG("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
-+ BUG_SCAN("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
- ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);
- stat = SANE_STATUS_INVAL;
- goto bugout;
-@@ -913,7 +913,7 @@ SANE_Status soap_start(SANE_Handle handl
- /* Open image processor. */
- if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE)
- {
-- BUG("unable open image processor: err=%d\n", ret);
-+ BUG_SCAN("unable open image processor: err=%d\n", ret);
- stat = SANE_STATUS_INVAL;
- goto bugout;
- }
-@@ -955,7 +955,7 @@ SANE_Status soap_start(SANE_Handle handl
-
- if (ret & (IP_INPUT_ERROR | IP_FATAL_ERROR | IP_DONE))
- {
-- BUG("ipConvert error=%x\n", ret);
-+ BUG_SCAN("ipConvert error=%x\n", ret);
- stat = SANE_STATUS_IO_ERROR;
- goto bugout;
- }
-@@ -1007,7 +1007,7 @@ SANE_Status soap_read(SANE_Handle handle
-
- if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
- {
-- BUG("ipConvert error=%x\n", ret);
-+ BUG_SCAN("ipConvert error=%x\n", ret);
- goto bugout;
- }
-
-diff -up hplip-3.25.2/scan/sane/soapht.c.covscan hplip-3.25.2/scan/sane/soapht.c
---- hplip-3.25.2/scan/sane/soapht.c.covscan 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/scan/sane/soapht.c 2025-04-11 10:21:58.039106018 +0200
-@@ -136,7 +136,7 @@ static int get_ip_data(struct soap_sessi
-
- if (!ps->ip_handle)
- {
-- BUG("invalid ipconvert state\n");
-+ BUG_SCAN("invalid ipconvert state\n");
- goto bugout;
- }
-
-@@ -435,7 +435,7 @@ static struct soap_session *create_sessi
-
- if ((ps = malloc(sizeof(struct soap_session))) == NULL)
- {
-- BUG("malloc failed: %m\n");
-+ BUG_SCAN("malloc failed: %m\n");
- return NULL;
- }
- memset(ps, 0, sizeof(struct soap_session));
-@@ -459,7 +459,7 @@ SANE_Status soapht_open(SANE_String_Cons
-
- if (session)
- {
-- BUG("session in use\n");
-+ BUG_SCAN("session in use\n");
- return SANE_STATUS_DEVICE_BUSY;
- }
-
-@@ -475,7 +475,7 @@ SANE_Status soapht_open(SANE_String_Cons
-
- if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK)
- {
-- BUG("unable to open device %s\n", session->uri);
-+ BUG_SCAN("unable to open device %s\n", session->uri);
- goto bugout;
-
- free(session);
-@@ -554,7 +554,7 @@ void soapht_close(SANE_Handle handle)
-
- if (ps == NULL || ps != session)
- {
-- BUG("invalid sane_close\n");
-+ BUG_SCAN("invalid sane_close\n");
- return;
- }
-
-@@ -904,7 +904,7 @@ SANE_Status soapht_control_option(SANE_H
-
- if (stat != SANE_STATUS_GOOD)
- {
-- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name,
-+ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name,
- action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
- }
-
-@@ -946,7 +946,7 @@ SANE_Status soapht_start(SANE_Handle han
-
- if (set_extents(ps))
- {
-- BUG("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
-+ BUG_SCAN("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
- ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);
- stat = SANE_STATUS_INVAL;
- goto bugout;
-@@ -1032,7 +1032,7 @@ SANE_Status soapht_start(SANE_Handle han
- /* Open image processor. */
- if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE)
- {
-- BUG("unable open image processor: err=%d\n", ret);
-+ BUG_SCAN("unable open image processor: err=%d\n", ret);
- stat = SANE_STATUS_INVAL;
- goto bugout;
- }
-@@ -1075,7 +1075,7 @@ SANE_Status soapht_start(SANE_Handle han
-
- if (ret & (IP_INPUT_ERROR | IP_FATAL_ERROR | IP_DONE))
- {
-- BUG("ipConvert error=%x\n", ret);
-+ BUG_SCAN("ipConvert error=%x\n", ret);
- stat = SANE_STATUS_IO_ERROR;
- goto bugout;
- }
-@@ -1124,7 +1124,7 @@ SANE_Status soapht_read(SANE_Handle hand
-
- if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
- {
-- BUG("ipConvert error=%x\n", ret);
-+ BUG_SCAN("ipConvert error=%x\n", ret);
- goto bugout;
- }
-
diff --git a/hplip-deviceIDs-drv.patch b/hplip-deviceIDs-drv.patch
index 258b414..363c59d 100644
--- a/hplip-deviceIDs-drv.patch
+++ b/hplip-deviceIDs-drv.patch
@@ -1,6 +1,6 @@
-diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv/hpcups.drv.in
---- hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv 2019-06-26 15:09:17.000000000 +0200
-+++ hplip-3.19.6/prnt/drv/hpcups.drv.in 2019-07-12 08:34:02.789910485 +0200
+diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/drv/hpcups.drv.in
+--- hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv 2017-12-07 09:31:48.721626277 +0100
++++ hplip-3.17.11/prnt/drv/hpcups.drv.in 2017-12-07 13:40:30.703164179 +0100
@@ -487,7 +487,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 3820"
Attribute "NickName" "" "HP Deskjet 3820, hpcups $Version"
@@ -65,6 +65,24 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
Attribute "Product" "" "(HP Deskjet 970cxi Printer)"
Attribute "Product" "" "(HP Deskjet 970cse Printer)"
@@ -665,7 +665,7 @@ Manufacturer "HP"
+ ModelName "HP Officejet 5105"
+ Attribute "NickName" "" "HP Officejet 5105, hpcups $Version"
+ Attribute "ShortNickName" "" "HP Officejet 5105 hpijs"
+- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet 5105;DES:officejet 5105;"
++ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet 5105;DES:Hewlett-Packard OfficeJet 5100 Series;"
+ PCFileName "hp-officejet_5105.ppd"
+ Attribute "Product" "" "(HP Officejet 5105 All-in-one Printer)"
+ }
+@@ -682,7 +682,7 @@ Manufacturer "HP"
+ ModelName "HP Officejet 5110v"
+ Attribute "NickName" "" "HP Officejet 5110v, hpcups $Version"
+ Attribute "ShortNickName" "" "HP Officejet 5110v hpijs"
+- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet 5110v;DES:officejet 5110v;"
++ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet 5110v;DES:Hewlett-Packard OfficeJet 5100 Series;"
+ PCFileName "hp-officejet_5110v.ppd"
+ Attribute "Product" "" "(HP Officejet 5110v All-in-one Printer)"
+ }
+@@ -690,7 +690,7 @@ Manufacturer "HP"
ModelName "HP Officejet g55"
Attribute "NickName" "" "HP Officejet g55, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet g55 hpijs"
@@ -73,7 +91,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_g55.ppd"
Attribute "Product" "" "(HP Officejet g55 All-in-one Printer)"
}
-@@ -681,7 +681,7 @@ Manufacturer "HP"
+@@ -706,7 +706,7 @@ Manufacturer "HP"
ModelName "HP Officejet g85"
Attribute "NickName" "" "HP Officejet g85, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet g85 hpijs"
@@ -82,7 +100,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_g85.ppd"
Attribute "Product" "" "(HP Officejet g85 All-in-one Printer)"
}
-@@ -697,7 +697,7 @@ Manufacturer "HP"
+@@ -722,7 +722,7 @@ Manufacturer "HP"
ModelName "HP Officejet g95"
Attribute "NickName" "" "HP Officejet g95, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet g95 hpijs"
@@ -91,7 +109,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_g95.ppd"
Attribute "Product" "" "(HP Officejet g95 All-in-one Printer)"
}
-@@ -745,7 +745,7 @@ Manufacturer "HP"
+@@ -770,7 +770,7 @@ Manufacturer "HP"
ModelName "HP Officejet v40"
Attribute "NickName" "" "HP Officejet v40, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet v40 hpijs"
@@ -100,7 +118,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_v40.ppd"
Attribute "Product" "" "(HP Officejet v40 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet v40s All-in-one Printer)"
-@@ -754,7 +754,7 @@ Manufacturer "HP"
+@@ -779,7 +779,7 @@ Manufacturer "HP"
ModelName "HP Officejet v40xi"
Attribute "NickName" "" "HP Officejet v40xi, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet v40xi hpijs"
@@ -109,7 +127,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_v40xi.ppd"
Attribute "Product" "" "(HP Officejet v40xi All-in-one Printer)"
}
-@@ -770,7 +770,7 @@ Manufacturer "HP"
+@@ -795,7 +795,7 @@ Manufacturer "HP"
ModelName "HP Photosmart p1000"
Attribute "NickName" "" "HP Photosmart p1000, hpcups $Version"
Attribute "ShortNickName" "" "HP Photosmart p1000 hpijs"
@@ -118,7 +136,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-photosmart_p1000.ppd"
Attribute "Product" "" "(HP Photosmart p1000/1000 Printer)"
Attribute "Product" "" "(HP Photosmart p1000xi Printer)"
-@@ -779,7 +779,7 @@ Manufacturer "HP"
+@@ -804,7 +804,7 @@ Manufacturer "HP"
ModelName "HP Photosmart p1100"
Attribute "NickName" "" "HP Photosmart p1100, hpcups $Version"
Attribute "ShortNickName" "" "HP Photosmart p1100 hpijs"
@@ -127,7 +145,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-photosmart_p1100.ppd"
Attribute "Product" "" "(HP Photosmart p1100 Printer)"
Attribute "Product" "" "(HP Photosmart p1100xi Printer)"
-@@ -796,7 +796,7 @@ Manufacturer "HP"
+@@ -821,7 +821,7 @@ Manufacturer "HP"
ModelName "HP PSC 750"
Attribute "NickName" "" "HP PSC 750, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 750 hpijs"
@@ -136,7 +154,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_750.ppd"
Attribute "Product" "" "(HP PSC 750 All-in-one Printer)"
}
-@@ -804,7 +804,7 @@ Manufacturer "HP"
+@@ -829,7 +829,7 @@ Manufacturer "HP"
ModelName "HP PSC 750xi"
Attribute "NickName" "" "HP PSC 750xi, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 750xi hpijs"
@@ -145,7 +163,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_750xi.ppd"
Attribute "Product" "" "(HP PSC 750xi All-in-one Printer)"
}
-@@ -836,7 +836,7 @@ Manufacturer "HP"
+@@ -861,7 +861,7 @@ Manufacturer "HP"
ModelName "HP PSC 900 Series"
Attribute "NickName" "" "HP PSC 900 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 900 Series hpijs"
@@ -154,7 +172,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_900_series.ppd"
Attribute "Product" "" "(HP PSC 900 All-in-one Printer)"
}
-@@ -910,7 +910,7 @@ Manufacturer "HP"
+@@ -935,7 +935,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 1220c"
Attribute "NickName" "" "HP Deskjet 1220c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 1220c hpijs"
@@ -163,7 +181,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_1220c.ppd"
Attribute "Product" "" "(HP Deskjet 1220c Printer)"
Attribute "Product" "" "(HP Deskjet 1220cse Printer)"
-@@ -1100,7 +1100,7 @@ Manufacturer "HP"
+@@ -1125,7 +1125,7 @@ Manufacturer "HP"
ModelName "HP 2000c"
Attribute "NickName" "" "HP 2000c, hpcups $Version"
Attribute "ShortNickName" "" "HP 2000c hpijs"
@@ -172,7 +190,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-2000c.ppd"
Attribute "Product" "" "(HP 2000cse Printer)"
Attribute "Product" "" "(HP 2000c Printer)"
-@@ -1564,7 +1564,7 @@ Manufacturer "HP"
+@@ -1589,7 +1589,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 960c"
Attribute "NickName" "" "HP Deskjet 960c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 960c hpijs"
@@ -181,7 +199,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_960c.ppd"
Attribute "Product" "" "(HP Deskjet 960cse Printer)"
Attribute "Product" "" "(HP Deskjet 960cxi Printer)"
-@@ -1574,7 +1574,7 @@ Manufacturer "HP"
+@@ -1599,7 +1599,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 980c"
Attribute "NickName" "" "HP Deskjet 980c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 980c hpijs"
@@ -190,7 +208,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_980c.ppd"
Attribute "Product" "" "(HP Deskjet 980cxi Printer)"
Attribute "Product" "" "(HP Deskjet 980c Printer)"
-@@ -1583,7 +1583,7 @@ Manufacturer "HP"
+@@ -1608,7 +1608,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 990c"
Attribute "NickName" "" "HP Deskjet 990c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 990c hpijs"
@@ -199,7 +217,16 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_990c.ppd"
Attribute "Product" "" "(HP Deskjet 990cxi Printer)"
Attribute "Product" "" "(HP Deskjet 990cse Printer)"
-@@ -1613,7 +1613,7 @@ Manufacturer "HP"
+@@ -1638,7 +1638,7 @@ Manufacturer "HP"
+ ModelName "HP Color Inkjet cp1700"
+ Attribute "NickName" "" "HP Color Inkjet cp1700, hpcups $Version"
+ Attribute "ShortNickName" "" "HP Color Inkjet cp1700 hpijs"
+- Attribute "1284DeviceID" "" "MFG:HP;MDL:hp color inkjet cp1700;DES:hp color inkjet cp1700;"
++ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:HP Color Inkjet CP1700;DES:HP Color Inkjet CP1700;"
+ PCFileName "hp-color_inkjet_cp1700.ppd"
+ Attribute "Product" "" "(HP Color Inkjet cp1700 Printer)"
+ }
+@@ -1646,7 +1646,7 @@ Manufacturer "HP"
ModelName "HP Officejet 7100 Series"
Attribute "NickName" "" "HP Officejet 7100 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 7100 Series hpijs"
@@ -208,7 +235,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_7100_series.ppd"
Attribute "Product" "" "(HP Officejet 7100 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 7110 All-in-one Printer)"
-@@ -1628,7 +1628,7 @@ Manufacturer "HP"
+@@ -1661,7 +1661,7 @@ Manufacturer "HP"
ModelName "HP Officejet D Series"
Attribute "NickName" "" "HP Officejet D Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet D Series hpijs"
@@ -217,7 +244,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_d_series.ppd"
Attribute "Product" "" "(HP Officejet d125xi All-in-one Printer)"
Attribute "Product" "" "(HP Officejet d135 All-in-one Printer)"
-@@ -1675,7 +1675,7 @@ Manufacturer "HP"
+@@ -1708,7 +1708,7 @@ Manufacturer "HP"
ModelName "HP PSC 2100 Series"
Attribute "NickName" "" "HP PSC 2100 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2100 Series hpijs"
@@ -226,7 +253,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_2100_series.ppd"
Attribute "Product" "" "(HP PSC 2105 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2108 All-in-one Printer)"
-@@ -1688,7 +1688,7 @@ Manufacturer "HP"
+@@ -1721,7 +1721,7 @@ Manufacturer "HP"
ModelName "HP PSC 2150 Series"
Attribute "NickName" "" "HP PSC 2150 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2150 Series hpijs"
@@ -235,7 +262,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_2150_series.ppd"
Attribute "Product" "" "(HP PSC 2150 All-in-one Printer)"
}
-@@ -1696,7 +1696,7 @@ Manufacturer "HP"
+@@ -1729,7 +1729,7 @@ Manufacturer "HP"
ModelName "HP PSC 2170 Series"
Attribute "NickName" "" "HP PSC 2170 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2170 Series hpijs"
@@ -244,16 +271,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_2170_series.ppd"
Attribute "Product" "" "(HP PSC 2170 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2171 All-in-one Printer)"
-@@ -1743,7 +1743,7 @@ Manufacturer "HP"
- ModelName "HP Color Inkjet Printer cp1700"
- Attribute "NickName" "" "HP Color Inkjet Printer cp1700, hpcups $Version"
- Attribute "ShortNickName" "" "HP CJ IJ Printer cp1700 hpijs"
-- Attribute "1284DeviceID" "" "MFG:HP;MDL:hp color inkjet printer cp1700;DES:hp color inkjet printer cp1700;"
-+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:HP Color Inkjet CP1700;DES:HP Color Inkjet CP1700;"
- PCFileName "hp-color_inkjet_printer_cp1700.ppd"
- Attribute "Product" "" "(HP Color Inkjet cp1700 Printer)"
- Attribute "Product" "" "(HP Color Inkjet cp1700ps Printer)"
-@@ -1918,7 +1918,7 @@ Manufacturer "HP"
+@@ -1951,7 +1951,7 @@ Manufacturer "HP"
ModelName "HP Business Inkjet 2200"
Attribute "NickName" "" "HP Business Inkjet 2200, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2200 hpijs"
@@ -262,7 +280,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-business_inkjet_2200.ppd"
Attribute "Product" "" "(HP Business Inkjet 2200 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2200se Printer)"
-@@ -1928,7 +1928,7 @@ Manufacturer "HP"
+@@ -1961,7 +1961,7 @@ Manufacturer "HP"
ModelName "HP Business Inkjet 2230"
Attribute "NickName" "" "HP Business Inkjet 2230, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2230 hpijs"
@@ -271,7 +289,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-business_inkjet_2230.ppd"
Attribute "Product" "" "(HP Business Inkjet 2230 Printer)"
}
-@@ -1936,7 +1936,7 @@ Manufacturer "HP"
+@@ -1969,7 +1969,7 @@ Manufacturer "HP"
ModelName "HP Business Inkjet 2250"
Attribute "NickName" "" "HP Business Inkjet 2250 pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2250 hpijs"
@@ -280,7 +298,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-business_inkjet_2250-pcl3.ppd"
Attribute "Product" "" "(HP Business Inkjet 2250 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2250tn Printer)"
-@@ -1945,7 +1945,7 @@ Manufacturer "HP"
+@@ -1978,7 +1978,7 @@ Manufacturer "HP"
ModelName "HP Business Inkjet 2280"
Attribute "NickName" "" "HP Business Inkjet 2280 pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2280 hpijs"
@@ -289,7 +307,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-business_inkjet_2280-pcl3.ppd"
Attribute "Product" "" "(HP Business Inkjet 2280 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2280tn Printer)"
-@@ -2689,7 +2689,7 @@ Manufacturer "HP"
+@@ -2740,7 +2740,7 @@ Manufacturer "HP"
ModelName "HP Officejet 7200 Series"
Attribute "NickName" "" "HP Officejet 7200 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 7200 Series hpijs"
@@ -298,7 +316,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_7200_series.ppd"
Attribute "Product" "" "(HP Officejet 7205 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 7208 All-in-one Printer)"
-@@ -2713,7 +2713,7 @@ Manufacturer "HP"
+@@ -2764,7 +2764,7 @@ Manufacturer "HP"
ModelName "HP Officejet 7400 Series"
Attribute "NickName" "" "HP Officejet 7400 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 7400 Series hpijs"
@@ -307,7 +325,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_7400_series.ppd"
Attribute "Product" "" "(HP Officejet 7408 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 7410 All-in-one Printer)"
-@@ -2757,7 +2757,7 @@ Manufacturer "HP"
+@@ -2810,7 +2810,7 @@ Manufacturer "HP"
ModelName "HP Officejet j5700 Series"
Attribute "NickName" "" "HP Officejet j5700 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet j5700 Series hpijs"
@@ -316,7 +334,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_j5700_series.ppd"
Attribute "Product" "" "(HP Officejet j5725 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet j5785 All-in-one Printer)"
-@@ -3391,7 +3391,7 @@ Manufacturer "HP"
+@@ -3488,7 +3488,7 @@ Manufacturer "HP"
ModelName "HP PSC 2200 Series"
Attribute "NickName" "" "HP PSC 2200 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2200 Series hpijs"
@@ -325,7 +343,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_2200_series.ppd"
Attribute "Product" "" "(HP PSC 2200 All-in-one Printer)"
}
-@@ -3409,7 +3409,7 @@ Manufacturer "HP"
+@@ -3506,7 +3506,7 @@ Manufacturer "HP"
ModelName "HP PSC 2300 Series"
Attribute "NickName" "" "HP PSC 2300 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2300 Series hpijs"
@@ -334,7 +352,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_2300_series.ppd"
Attribute "Product" "" "(HP PSC 2300 Series All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2310 All-in-one Printer)"
-@@ -3417,8 +3417,7 @@ Manufacturer "HP"
+@@ -3514,8 +3514,7 @@ Manufacturer "HP"
{
ModelName "HP PSC 2350 Series"
Attribute "NickName" "" "HP PSC 2350 Series, hpcups $Version"
@@ -344,7 +362,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_2350_series.ppd"
Attribute "Product" "" "(HP PSC 2350 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2358 All-in-one Printer)"
-@@ -3448,7 +3447,7 @@ Manufacturer "HP"
+@@ -3545,7 +3544,7 @@ Manufacturer "HP"
ModelName "HP PSC 2500 Series"
Attribute "NickName" "" "HP PSC 2500 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2500 Series hpijs"
@@ -353,7 +371,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_2500_series.ppd"
Attribute "Product" "" "(HP PSC 2500 Photosmart All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2510 Photosmart All-in-one Printer)"
-@@ -7023,7 +7022,7 @@ Manufacturer "HP"
+@@ -7134,7 +7133,7 @@ Manufacturer "HP"
ModelName "HP Officejet 6100"
Attribute "NickName" "" "HP Officejet 6100, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 6100 hpijs"
@@ -362,7 +380,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_6100.ppd"
Attribute "Product" "" "(HP Officejet 6100 Eprinter h611a)"
}
-@@ -16708,7 +16707,7 @@ Manufacturer "HP"
+@@ -16828,7 +16827,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
ModelName "HP Officejet 4100 Series"
Attribute "NickName" "" "HP Officejet 4100 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 4100 Series hpijs"
@@ -371,7 +389,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_4100_series.ppd"
Attribute "Product" "" "(HP Officejet 4100 Series All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 4110xi All-in-one Printer)"
-@@ -16735,7 +16734,7 @@ Manufacturer "HP"
+@@ -16855,7 +16854,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
ModelName "HP Officejet 4300 Series"
Attribute "NickName" "" "HP Officejet 4300 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 4300 Series hpijs"
@@ -380,7 +398,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_4300_series.ppd"
Attribute "Product" "" "(HP Officejet 4308 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 4338 All-in-one Printer)"
-@@ -16767,7 +16766,7 @@ Manufacturer "HP"
+@@ -16887,7 +16886,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
ModelName "HP PSC 1100 Series"
Attribute "NickName" "" "HP PSC 1100 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 1100 Series hpijs"
@@ -389,7 +407,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_1100_series.ppd"
Attribute "Product" "" "(HP PSC 1110 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 1110v All-in-one Printer)"
-@@ -16777,7 +16776,7 @@ Manufacturer "HP"
+@@ -16897,7 +16896,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
ModelName "HP PSC 1200 Series"
Attribute "NickName" "" "HP PSC 1200 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 1200 Series hpijs"
@@ -398,7 +416,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_1200_series.ppd"
Attribute "Product" "" "(HP PSC 1200 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 1217 All-in-one Printer)"
-@@ -17077,7 +17076,7 @@ Manufacturer "HP"
+@@ -17200,7 +17199,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
ModelName "HP Officejet 4200 Series"
Attribute "NickName" "" "HP Officejet 4200 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 4200 Series hpijs"
@@ -407,7 +425,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_4200_series.ppd"
Attribute "Product" "" "(HP Officejet 4200 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 4211 All-in-one Printer)"
-@@ -17142,7 +17141,7 @@ Manufacturer "HP"
+@@ -17265,7 +17264,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
ModelName "HP Officejet j3600 Series"
Attribute "NickName" "" "HP Officejet j3600 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet j3600 Series hpijs"
@@ -416,7 +434,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_j3600_series.ppd"
Attribute "Product" "" "(HP Officejet j3608 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet j3625 All-in-one Printer)"
-@@ -17639,6 +17638,7 @@ Manufacturer "HP"
+@@ -17768,6 +17767,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
Attribute "NickName" "" "HP Photosmart 380 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Photosmart 380 Series hpijs"
Attribute "1284DeviceID" "" "MFG:HP;MDL:photosmart 380 series;DES:photosmart 380 series;"
@@ -424,7 +442,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-photosmart_380_series.ppd"
Attribute "Product" "" "(HP Photosmart 385 Compact Photo Printer)"
Attribute "Product" "" "(HP Photosmart 385xi Compact Photo Printer)"
-@@ -19378,7 +19378,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -19573,7 +19573,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Business Inkjet 2300"
Attribute "NickName" "" "HP Business Inkjet 2300 pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2300 hpijs"
@@ -433,7 +451,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-business_inkjet_2300-pcl3.ppd"
Attribute "Product" "" "(HP Business Inkjet 2300 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2300n Printer)"
-@@ -19759,7 +19759,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -19973,7 +19973,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet 9100 Series"
Attribute "NickName" "" "HP Officejet 9100 Series pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 9100 Series hpijs"
@@ -442,7 +460,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_9100_series-pcl3.ppd"
Attribute "Product" "" "(HP Officejet 9110 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 9120 All-in-one Printer)"
-@@ -19843,7 +19843,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -20057,7 +20057,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Business Inkjet 2800"
Attribute "NickName" "" "HP Business Inkjet 2800 pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2800 hpijs"
@@ -451,7 +469,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-business_inkjet_2800-pcl3.ppd"
Attribute "Product" "" "(HP Business Inkjet 2800 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2800dt Printer)"
-@@ -20379,7 +20379,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -20600,7 +20600,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Lx"
Attribute "NickName" "" "HP Officejet Lx, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Lx hpijs"
@@ -460,7 +478,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_lx.ppd"
Attribute "Product" "" "(HP Officejet Lx All-in-one Printer)"
}
-@@ -20516,7 +20516,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -20737,7 +20737,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 540"
Attribute "NickName" "" "HP Deskjet 540, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 540 hpijs"
@@ -469,7 +487,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_540.ppd"
Attribute "Product" "" "(HP Deskjet 540 Printer)"
}
-@@ -20524,7 +20524,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -20745,7 +20745,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 400"
Attribute "NickName" "" "HP Deskjet 400, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 400 hpijs"
@@ -478,7 +496,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_400.ppd"
Attribute "Product" "" "(HP Deskjet 400 Printer)"
Attribute "Product" "" "(HP Deskjet 400 Color Capable Printer)"
-@@ -20541,7 +20541,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -20762,7 +20762,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Series 300"
Attribute "NickName" "" "HP Officejet Series 300, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Series 300 hpijs"
@@ -487,7 +505,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_series_300.ppd"
Attribute "Product" "" "(HP Officejet 300 All-in-one Printer)"
}
-@@ -20674,7 +20674,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -20895,7 +20895,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 630c"
Attribute "NickName" "" "HP Deskjet 630c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 630c hpijs"
@@ -496,7 +514,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_630c.ppd"
Attribute "Product" "" "(HP Deskjet 630c Printer)"
}
-@@ -20690,7 +20690,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -20911,7 +20911,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 656c"
Attribute "NickName" "" "HP Deskjet 656c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 656c hpijs"
@@ -505,7 +523,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_656c.ppd"
Attribute "Product" "" "(HP Deskjet 656c Printer)"
Attribute "Product" "" "(HP Deskjet 656cvr Printer)"
-@@ -20803,7 +20803,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21024,7 +21024,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 600"
Attribute "NickName" "" "HP Deskjet 600, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 600 hpijs"
@@ -514,7 +532,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_600.ppd"
Attribute "Product" "" "(HP Deskjet 600c Printer)"
Attribute "Product" "" "(HP Deskjet 600 Printer)"
-@@ -20843,7 +20843,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21065,7 +21065,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 670c"
Attribute "NickName" "" "HP Deskjet 670c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 670c hpijs"
@@ -523,7 +541,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_670c.ppd"
Attribute "Product" "" "(HP Deskjet 670c Printer)"
}
-@@ -20915,7 +20915,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21137,7 +21137,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Series 600"
Attribute "NickName" "" "HP Officejet Series 600, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Series 600 hpijs"
@@ -532,7 +550,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_series_600.ppd"
Attribute "Product" "" "(HP Officejet 600 All-in-one Printer)"
}
-@@ -21060,7 +21060,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21282,7 +21282,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 610c"
Attribute "NickName" "" "HP Deskjet 610c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 610c hpijs"
@@ -541,7 +559,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_610c.ppd"
Attribute "Product" "" "(HP Deskjet 610c Printer)"
}
-@@ -21084,7 +21084,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21306,7 +21306,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 640c"
Attribute "NickName" "" "HP Deskjet 640c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 640c hpijs"
@@ -550,16 +568,16 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_640c.ppd"
Attribute "Product" "" "(HP Deskjet 640c Lite Printer)"
Attribute "Product" "" "(HP Deskjet 640c Printer)"
-@@ -21104,7 +21104,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21335,7 +21335,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 690c"
Attribute "NickName" "" "HP Deskjet 690c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 690c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 690c;DES:deskjet 690c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 690C;DES:Hewlett-Packard DeskJet 690C;"
PCFileName "hp-deskjet_690c.ppd"
- Attribute "Product" "" "(HP Deskjet 690 Printer)"
Attribute "Product" "" "(HP Deskjet 690c Plus Printer)"
-@@ -21156,7 +21156,7 @@ Group "RLT/HP Real Life Technologies"
+ Attribute "Product" "" "(HP Deskjet 690c Printer)"
+@@ -21386,7 +21386,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Series 700"
Attribute "NickName" "" "HP Officejet Series 700, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Series 700 hpijs"
@@ -568,7 +586,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_series_700.ppd"
Attribute "Product" "" "(HP Officejet 700 All-in-one Printer)"
}
-@@ -21307,7 +21307,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21537,7 +21537,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 812c"
Attribute "NickName" "" "HP Deskjet 812c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 812c hpijs"
@@ -577,7 +595,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_812c.ppd"
Attribute "Product" "" "(HP Deskjet 812c Printer)"
}
-@@ -21315,7 +21315,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21545,7 +21545,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 815c"
Attribute "NickName" "" "HP Deskjet 815c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 815c hpijs"
@@ -586,7 +604,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_815c.ppd"
Attribute "Product" "" "(HP Deskjet 815c Printer)"
}
-@@ -21347,7 +21347,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21577,7 +21577,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 840c"
Attribute "NickName" "" "HP Deskjet 840c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 840c hpijs"
@@ -595,7 +613,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_840c.ppd"
Attribute "Product" "" "(HP Deskjet 840c Printer)"
}
-@@ -21355,7 +21355,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21585,7 +21585,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 841c"
Attribute "NickName" "" "HP Deskjet 841c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 841c hpijs"
@@ -604,7 +622,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_841c.ppd"
Attribute "Product" "" "(HP Deskjet 841c Printer)"
}
-@@ -21371,7 +21371,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21601,7 +21601,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 843c"
Attribute "NickName" "" "HP Deskjet 843c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 843c hpijs"
@@ -613,7 +631,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_843c.ppd"
Attribute "Product" "" "(HP Deskjet 843c Printer)"
Attribute "Product" "" "(HP Deskjet 843cxe Printer)"
-@@ -21380,7 +21380,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21610,7 +21610,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 880c"
Attribute "NickName" "" "HP Deskjet 880c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 880c hpijs"
@@ -622,7 +640,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_880c.ppd"
Attribute "Product" "" "(HP Deskjet 880c Printer)"
}
-@@ -21396,7 +21396,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21626,7 +21626,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 895c"
Attribute "NickName" "" "HP Deskjet 895c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 895c hpijs"
@@ -631,7 +649,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_895c.ppd"
Attribute "Product" "" "(HP Deskjet 895cse Printer)"
Attribute "Product" "" "(HP Deskjet 895c Printer)"
-@@ -21406,7 +21406,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21636,7 +21636,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet r40"
Attribute "NickName" "" "HP Officejet r40, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet r40 hpijs"
@@ -640,7 +658,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_r40.ppd"
Attribute "Product" "" "(HP Officejet r40 All-in-one Printer)"
}
-@@ -21430,7 +21430,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21660,7 +21660,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet r60"
Attribute "NickName" "" "HP Officejet r60, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet r60 hpijs"
@@ -649,7 +667,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_r60.ppd"
Attribute "Product" "" "(HP Officejet r60 All-in-one Printer)"
}
-@@ -21438,7 +21438,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21668,7 +21668,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet r65"
Attribute "NickName" "" "HP Officejet r65, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet r65 hpijs"
@@ -658,7 +676,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_r65.ppd"
Attribute "Product" "" "(HP Officejet r65 All-in-one Printer)"
}
-@@ -21446,7 +21446,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21676,7 +21676,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet r80"
Attribute "NickName" "" "HP Officejet r80, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet r80 hpijs"
@@ -667,16 +685,16 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_r80.ppd"
Attribute "Product" "" "(HP Officejet r80 All-in-one Printer)"
}
-@@ -21462,7 +21462,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21692,7 +21692,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet T Series"
Attribute "NickName" "" "HP Officejet T Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet T Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet t series;DES:officejet t series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet T Series;DES:Hewlett-Packard OfficeJet T Series;"
PCFileName "hp-officejet_t_series.ppd"
- Attribute "Product" "" "(HP Officejet t45 All-in-one Printer)"
- Attribute "Product" "" "(HP Officejet t45xi All-in-one Printer)"
-@@ -21473,7 +21473,7 @@ Group "RLT/HP Real Life Technologies"
+ Attribute "Product" "" "(HP Officejet t45 All-in-one Printer)"
+ Attribute "Product" "" "(HP Officejet t45xi All-in-one Printer)"
+@@ -21703,7 +21703,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP PSC 500"
Attribute "NickName" "" "HP PSC 500, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 500 hpijs"
@@ -685,7 +703,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-psc_500.ppd"
Attribute "Product" "" "(HP PSC 500 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 500xi All-in-one Printer)"
-@@ -21589,7 +21589,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21819,7 +21819,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 825c"
Attribute "NickName" "" "HP Deskjet 825c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 825c hpijs"
@@ -694,7 +712,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_825c.ppd"
Attribute "Product" "" "(HP Deskjet 825cvr Printer)"
Attribute "Product" "" "(HP Deskjet 825c Printer)"
-@@ -21598,7 +21598,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21828,7 +21828,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 845c"
Attribute "NickName" "" "HP Deskjet 845c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 845c hpijs"
@@ -703,7 +721,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_845c.ppd"
Attribute "Product" "" "(HP Deskjet 845c Printer)"
Attribute "Product" "" "(HP Deskjet 845cvr Printer)"
-@@ -21709,7 +21709,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21939,7 +21939,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 850c"
Attribute "NickName" "" "HP Deskjet 850c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 850c hpijs"
@@ -712,7 +730,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_850c.ppd"
Attribute "Product" "" "(HP Deskjet 850k Printer)"
Attribute "Product" "" "(HP Deskjet 850c Printer)"
-@@ -21728,7 +21728,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21958,7 +21958,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 870c"
Attribute "NickName" "" "HP Deskjet 870c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 870c hpijs"
@@ -721,7 +739,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_870c.ppd"
Attribute "Product" "" "(HP Deskjet 870k Printer)"
Attribute "Product" "" "(HP Deskjet 870c Printer)"
-@@ -21739,7 +21739,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -21969,7 +21969,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Pro 1150c"
Attribute "NickName" "" "HP Officejet Pro 1150c, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Pro 1150c hpijs"
@@ -730,7 +748,7 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-officejet_pro_1150c.ppd"
Attribute "Product" "" "(HP Officejet Pro 1150c All-in-one Printer)"
Attribute "Product" "" "(HP Officejet Pro 1150cse All-in-one Printer)"
-@@ -21853,7 +21853,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -22083,7 +22083,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 890c"
Attribute "NickName" "" "HP Deskjet 890c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 890c hpijs"
@@ -739,10 +757,10 @@ diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv
PCFileName "hp-deskjet_890c.ppd"
Attribute "Product" "" "(HP Deskjet 890cse Printer)"
Attribute "Product" "" "(HP Deskjet 890c Printer)"
-@@ -21862,7 +21862,7 @@ Group "RLT/HP Real Life Technologies"
+@@ -22092,7 +22092,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Pro 1170c Series"
Attribute "NickName" "" "HP Officejet Pro 1170c Series, hpcups $Version"
- Attribute "ShortNickName" "" "HP OJ Pro 1170c Series hpijs"
+ Attribute "ShortNickName" "" "HP Officejet Pro 1170c Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet pro 1170c series;DES:officejet pro 1170c series;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:OFFICEJET PRO 1170C SERIES;DES:Hewlett-Packard OfficeJet Pro 1170C Series;"
PCFileName "hp-officejet_pro_1170c_series.ppd"
diff --git a/hplip-dialog-infinite-loop.patch b/hplip-dialog-infinite-loop.patch
deleted file mode 100644
index cfd635b..0000000
--- a/hplip-dialog-infinite-loop.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
-index c23957a..48b248f 100644
---- a/ui5/devmgr5.py
-+++ b/ui5/devmgr5.py
-@@ -2300,14 +2300,15 @@ class PasswordDialog(QDialog):
- # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-
- def showPasswordUI(prompt):
-+ dlg = None
-+
- try:
- dlg = PasswordDialog(prompt, None)
-+ except Exception as e:
-+ log.error('Unable to open password dialog due following error:\n {}'.format(e))
-
-- if dlg.exec_() == QDialog.Accepted:
-- return (dlg.getUsername(), dlg.getPassword())
--
-- finally:
-- pass
-+ if dlg and dlg.exec_() == QDialog.Accepted:
-+ return (dlg.getUsername(), dlg.getPassword())
-
- return ("", "")
-
diff --git a/hplip-error-print.patch b/hplip-error-print.patch
index b7b1a6f..e4b3e5f 100644
--- a/hplip-error-print.patch
+++ b/hplip-error-print.patch
@@ -32,3 +32,47 @@ index fdb48e8..345ed82 100644
self.cleanup(EVENT_PCARD_UNABLE_TO_MOUNT)
return False
+diff --git a/ui4/wifisetupdialog.py b/ui4/wifisetupdialog.py
+index 9fd1786..4d36f83 100644
+--- a/ui4/wifisetupdialog.py
++++ b/ui4/wifisetupdialog.py
+@@ -256,7 +256,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog):
+ try:
+ self.dev = device.Device(self.device_uri)
+ except Error as e:
+- FailureUI(self, self.__tr("Error opening device:%s
(%s)
") %(self.device_uri, QString(e[0])))
++ FailureUI(self, self.__tr("Error opening device:%s
(%s)
") %(self.device_uri, QString(e.msg)))
+
+ if self.dev is not None:
+ self.dev.close()
+@@ -834,7 +834,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog):
+
+
+ def showIOError(self, e):
+- FailureUI(self, self.__tr("An I/O error occurred.Please check the USB connection to your printer and try again.
(%s)" % QString(e[0])))
++ FailureUI(self, self.__tr("An I/O error occurred.Please check the USB connection to your printer and try again.
(%s)" % QString(e.msg)))
+
+ if self.dev is not None:
+ self.dev.close()
+diff --git a/ui5/wifisetupdialog.py b/ui5/wifisetupdialog.py
+index e0c7aee..74cc0ef 100644
+--- a/ui5/wifisetupdialog.py
++++ b/ui5/wifisetupdialog.py
+@@ -259,7 +259,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog):
+ try:
+ self.dev = device.Device(self.device_uri)
+ except Error as e:
+- FailureUI(self, self.__tr("Error opening device:%s
(%s)
") %(self.device_uri, str(e[0])))
++ FailureUI(self, self.__tr("Error opening device:%s
(%s)
") %(self.device_uri, str(e.msg)))
+
+ if self.dev is not None:
+ self.dev.close()
+@@ -840,7 +840,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog):
+
+
+ def showIOError(self, e):
+- FailureUI(self, self.__tr("An I/O error occurred.Please check the USB connection to your printer and try again.
(%s)" % str(e[0])))
++ FailureUI(self, self.__tr("An I/O error occurred.Please check the USB connection to your printer and try again.
(%s)" % str(e.msg)))
+
+ if self.dev is not None:
+ self.dev.close()
diff --git a/hplip-fedora-gui.patch b/hplip-fedora-gui.patch
deleted file mode 100644
index 499f4da..0000000
--- a/hplip-fedora-gui.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/base/utils.py b/base/utils.py
-index d493b54..401dc41 100644
---- a/base/utils.py
-+++ b/base/utils.py
-@@ -727,8 +727,8 @@ def canEnterGUIMode4(): # qt4
- except ImportError:
- try:
- import ui5.setupdialog
-- except ImportError as e:
-- log.warn(e)
-+ except ImportError:
-+ log.error("hplip-gui not installed. GUI not available.")
- return False
-
- return True
-@@ -746,6 +746,7 @@ def checkPyQtImport(): # qt3
- try:
- import ui
- except ImportError:
-+ log.error("hplip-gui not installed. GUI not available.")
- return False
-
- log.error("PyQt not installed. GUI not available. Exiting.")
-@@ -800,6 +801,7 @@ def checkPyQtImport4():
- import ui5.setupdialog
- except ImportError:
- log.debug('GUI not available.')
-+ log.error('hplip-gui not installed. GUI not available.')
- return False
-
- return True
diff --git a/hplip-find-driver.patch b/hplip-find-driver.patch
deleted file mode 100644
index f991967..0000000
--- a/hplip-find-driver.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-diff --git a/prnt/cups.py b/prnt/cups.py
-index a9f410a..3783a60 100644
---- a/prnt/cups.py
-+++ b/prnt/cups.py
-@@ -489,78 +489,77 @@ def getPPDFile2(mq,model, ppds): # New PPD find
- #Check if common ppd name is already given in models.dat(This is needed because in case of devices having more than one derivatives
- #will have diffrent model name strings in device ID, because of which we don't get the common ppd name for search)
- family_check=isfamilydrv(ppds)
-- family_class=getFamilyClassName(model)
-+
- model = models.normalizeModelName(model)
-- if family_check==0:
-- ppd_name = mq.get('ppd-name',0)
-- else:
-- ppd_name = mq.get('family-ppd',0)
-
-- if ppd_name == 0:
-- stripped_model = stripModel2(model)
-- else:
-- stripped_model = stripModel2(ppd_name)
-+ ppd_name = mq.get('{}'.format('family-ppd' if family_check else 'ppd-name'), 0)
-+
-+ stripped_model = stripModel2(ppd_name) if ppd_name else stripModel2(model)
-+
-+ wanted_model = getFamilyClassName(model) if family_check else stripped_model
-
- log.debug("Matching PPD list to model %s..." % stripped_model)
-
- matches = []
-- if family_check ==0 :
-- for f in ppds:
-- match = ppd_pat.match(f)
-- if match is not None:
-- if match.group(1) == stripped_model:
-- log.debug("Found match: %s" % f)
-- try:
-- pdls = match.group(2).split('-')
-- except AttributeError:
-- pdls = []
-- if (prop.hpcups_build and 'hpijs' not in f) or \
-- ((prop.hpijs_build and 'hpijs' in pdls) or (prop.hpcups_build and 'hpijs' not in pdls)) or \
-- ('ps' in pdls) or ('pdf' in pdls):
-- matches.append((f, [p for p in pdls if p and p != 'hpijs']))
-- else:
-- for f in ppds:
-- match = ppd_pat1.match(f)
-- if match is not None:
-- if match.group(1) == family_class:
-- log.debug("Found match: %s" % f)
-- try:
-- pdls = match.group(2).split('-')
-- except AttributeError:
-- pdls = []
-- if (prop.hpcups_build and 'hpijs' not in f) or \
-- ((prop.hpijs_build and 'hpijs' in pdls) or (prop.hpcups_build and 'hpijs' not in pdls)) or \
-- ('ps' in pdls) or ('pdf' in pdls):
-- matches.append((f, [p for p in pdls if p and p != 'hpijs']))
-- log.debug(matches)
-- num_matches = len(matches)
-+ for f in ppds:
-+ # ignore foomatic and gutenprint drivers
-+ if 'foomatic' in f or 'gutenprint' in f:
-+ continue
-+
-+ # see if driver type is in driver name
-+ driver_types = []
-+ if 'hpcups' in f:
-+ driver_types.append('hpcups')
-+ if 'hpijs' in f:
-+ driver_types.append('hpijs')
-+
-+
-+ ppd_filename = f.rsplit('/', 1)[1].split('.')[0].replace('hp-', '')
-+
-+ if not ppd_filename:
-+ continue
-+
-+ # we need to sanitize the end of filename - there can be a driver type (-hpijs, -hpcups),
-+ # pdl name (-zjstream, -pdf, -ps etc.) or the device can just have '-' in their name
-+ # (HP Photosmart Premium C309g-m).
-+ # So if we don't know the name after '-', take it as part of device name.
-+ # If we know them either like driver type of PDL, remove the string from ppd name
-+ # so we can compare it with stripped model
-+ pdl_candidates = []
-+ pdl_candidates = ppd_filename.split('-')[1:]
-+
-+ pdls = []
-+ ppd_model = ppd_filename
-+
-+ for pdl in pdl_candidates:
-+ if pdl in ['hpijs', 'hpcups']:
-+ ppd_model=ppd_model.replace('-{}'.format(pdl), '')
-+ continue
-
-- if num_matches == 0:
-- log.debug("No PPD found for model %s using new algorithm. Trying old algorithm..." % stripped_model)
-- #Using Old algo, ignores the series keyword in ppd searching.
-- matches2 = list(getPPDFile(stripModel(stripped_model), ppds).items())
-- log.debug(matches2)
-- num_matches2 = len(matches2)
-- if num_matches2:
-- for f, d in matches2:
-- match = ppd_pat.match(f)
-- if match is not None:
-- log.debug("Found match: %s" % f)
-- try:
-- pdls = match.group(2).split('-')
-- except AttributeError:
-- pdls = []
-+ if not models.PDL_TYPES.get(pdl):
-+ log.debug('Unknown PDL named \'{}\' - can be a new PDL or '
-+ 'just a part of device name. Assume it is '
-+ 'a part of device name.'.format(pdl))
-+ else:
-+ pdls.append(pdl)
-+ ppd_model=ppd_model.replace('-{}'.format(pdl), '')
-+
-+ if ppd_model != wanted_model and ppd_model != '{}_series'.format(wanted_model):
-+ continue
-+
-+ log.debug("Found match: %s" % f)
-
-- if (prop.hpcups_build and 'hpijs' not in f) or \
-- ((prop.hpijs_build and 'hpijs' in pdls) or (prop.hpcups_build and 'hpijs' not in pdls)) or \
-- ('ps' in pdls) or ('pdf' in pdls):
-- matches.append((f, [p for p in pdls if p and p != 'hpijs']))
-+ if (prop.hpcups_build and 'hpijs' not in f) or \
-+ ((prop.hpijs_build and 'hpijs' in driver_types) or (prop.hpcups_build and 'hpijs' not in driver_types)) or \
-+ ('ps' in pdls) or ('pdf' in pdls):
-+ matches.append((f, pdls, [d for d in driver_types if d and d != 'hpijs']))
-
-- log.debug(matches)
-- num_matches = len(matches)
-+
-+ log.debug(matches)
-+ num_matches = len(matches)
-
- if num_matches == 0:
-- log.error("No PPD found for model %s using old algorithm." % stripModel(stripped_model))
-+ log.error("No PPD found for model %s." % stripModel(stripped_model))
- return None
-
- elif num_matches == 1:
-@@ -570,7 +569,7 @@ def getPPDFile2(mq,model, ppds): # New PPD find
- # > 1
- log.debug("%d matches found. Searching based on PDL: Host > PS,PDF > PCL/Other" % num_matches)
- for p in [models.PDL_TYPE_HOST, models.PDL_TYPE_PS,models.PDL_TYPE_PDF, models.PDL_TYPE_PCL]:
-- for f, pdl_list in matches:
-+ for f, pdl_list, driver_list in matches:
- for x in pdl_list:
- # default to HOST-based PDLs, as newly supported PDLs will most likely be of this type
- if models.PDL_TYPES.get(x, models.PDL_TYPE_HOST) == p:
-@@ -579,8 +578,8 @@ def getPPDFile2(mq,model, ppds): # New PPD find
-
- log.debug("%d matches found. Searching based on Filters: HPCUPS > HPIJS" % num_matches)
- for p in ["hpcups","hpijs"]:
-- for f, pdl_list in matches:
-- if p in f:
-+ for f, pdl_list, driver_list in matches:
-+ if p in driver_list:
- log.debug("Selecting PPD: %s" % (f))
- return (f, '')
-
diff --git a/hplip-fix-Wreturn-type-warning.patch b/hplip-fix-Wreturn-type-warning.patch
deleted file mode 100644
index aa40e1a..0000000
--- a/hplip-fix-Wreturn-type-warning.patch
+++ /dev/null
@@ -1,100 +0,0 @@
---- hplip-3.20.3/scan/sane/hpaio.c.orig 2020-03-25 01:24:15.558732638 +0000
-+++ hplip-3.20.3/scan/sane/hpaio.c 2020-03-25 02:48:36.097054366 +0000
-@@ -406,20 +406,34 @@ extern SANE_Status sane_hpaio_open(SANE_
-
- extern void sane_hpaio_close(SANE_Handle handle)
- {
-- if (strcmp(*((char **)handle), "MARVELL") == 0)
-- return marvell_close(handle);
-- if (strcmp(*((char **)handle), "SOAP") == 0)
-- return soap_close(handle);
-- if (strcmp(*((char **)handle), "SOAPHT") == 0)
-- return soapht_close(handle);
-- if (strcmp(*((char **)handle), "LEDM") == 0)
-- return ledm_close(handle);
-- if (strcmp(*((char **)handle), "SCL-PML") == 0)
-- return sclpml_close(handle);
-- if (strcmp(*((char **)handle), "ESCL") == 0)
-- return escl_close(handle);
-- if (strcmp(*((char **)handle), "ORBLITE") == 0)
-- return orblite_close(handle);
-+ if (strcmp(*((char **)handle), "MARVELL") == 0) {
-+ marvell_close(handle);
-+ return;
-+ }
-+ if (strcmp(*((char **)handle), "SOAP") == 0) {
-+ soap_close(handle);
-+ return;
-+ }
-+ if (strcmp(*((char **)handle), "SOAPHT") == 0) {
-+ soapht_close(handle);
-+ return;
-+ }
-+ if (strcmp(*((char **)handle), "LEDM") == 0) {
-+ ledm_close(handle);
-+ return;
-+ }
-+ if (strcmp(*((char **)handle), "SCL-PML") == 0) {
-+ sclpml_close(handle);
-+ return;
-+ }
-+ if (strcmp(*((char **)handle), "ESCL") == 0) {
-+ escl_close(handle);
-+ return;
-+ }
-+ if (strcmp(*((char **)handle), "ORBLITE") == 0) {
-+ orblite_close(handle);
-+ return;
-+ }
- } /* sane_hpaio_close() */
-
- extern const SANE_Option_Descriptor * sane_hpaio_get_option_descriptor(SANE_Handle handle, SANE_Int option)
-@@ -539,20 +553,34 @@ extern SANE_Status sane_hpaio_read(SANE_
- /* Note, sane_cancel is called normally not just during IO abort situations. */
- extern void sane_hpaio_cancel( SANE_Handle handle )
- {
-- if (strcmp(*((char **)handle), "MARVELL") == 0)
-- return marvell_cancel(handle);
-- if (strcmp(*((char **)handle), "SOAP") == 0)
-- return soap_cancel(handle);
-- if (strcmp(*((char **)handle), "SOAPHT") == 0)
-- return soapht_cancel(handle);
-- if (strcmp(*((char **)handle), "LEDM") == 0)
-- return ledm_cancel(handle);
-- if (strcmp(*((char **)handle), "SCL-PML") == 0)
-- return sclpml_cancel(handle);
-- if (strcmp(*((char **)handle), "ESCL") == 0)
-- return escl_cancel(handle);
-- if (strcmp(*((char **)handle), "ORBLITE") == 0)
-- return orblite_cancel(handle);
-+ if (strcmp(*((char **)handle), "MARVELL") == 0) {
-+ marvell_cancel(handle);
-+ return;
-+ }
-+ if (strcmp(*((char **)handle), "SOAP") == 0) {
-+ soap_cancel(handle);
-+ return;
-+ }
-+ if (strcmp(*((char **)handle), "SOAPHT") == 0) {
-+ soapht_cancel(handle);
-+ return;
-+ }
-+ if (strcmp(*((char **)handle), "LEDM") == 0) {
-+ ledm_cancel(handle);
-+ return;
-+ }
-+ if (strcmp(*((char **)handle), "SCL-PML") == 0) {
-+ sclpml_cancel(handle);
-+ return;
-+ }
-+ if (strcmp(*((char **)handle), "ESCL") == 0) {
-+ escl_cancel(handle);
-+ return;
-+ }
-+ if (strcmp(*((char **)handle), "ORBLITE") == 0) {
-+ orblite_cancel(handle);
-+ return;
-+ }
- } /* sane_hpaio_cancel() */
-
- extern SANE_Status sane_hpaio_set_io_mode(SANE_Handle handle, SANE_Bool nonBlocking)
diff --git a/hplip-fix-parsing-lpstat.patch b/hplip-fix-parsing-lpstat.patch
deleted file mode 100644
index d6028ab..0000000
--- a/hplip-fix-parsing-lpstat.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/base/queues.py b/base/queues.py
-index 2f56c8a..0818574 100755
---- a/base/queues.py
-+++ b/base/queues.py
-@@ -101,7 +101,7 @@ def parseQueues(mode):
- try:
- match = LPSTAT_PATTERN.search(p)
- printer_name = match.group(1)
-- device_uri = match.group(2)
-+ device_uri = match.group(3)
- cups_printers.append((printer_name, device_uri))
- except AttributeError:
- pass
diff --git a/hplip-format-qdatetime.patch b/hplip-format-qdatetime.patch
deleted file mode 100644
index 9517e65..0000000
--- a/hplip-format-qdatetime.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 839a216f17ce17a5667eecd54de2a70b1383df2c Mon Sep 17 00:00:00 2001
-From: "FeRD (Frank Dana)"
-Date: Wed, 5 Jan 2022 21:57:06 -0500
-Subject: [PATCH 1/2] Info dlg: Use QDateTime.toString()
-
----
- ui5/infodialog.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ui5/infodialog.py b/ui5/infodialog.py
-index 0de62fb..eaa846d 100644
---- a/ui5/infodialog.py
-+++ b/ui5/infodialog.py
-@@ -186,7 +186,7 @@ class InfoDialog(QDialog, Ui_Dialog):
- for row, h in enumerate(history):
- dt = QDateTime()
- dt.setTime_t(int(h.timedate))
-- dt = value_str(dt)
-+ dt = value_str(dt.toString())
-
- ess = device.queryString(h.event_code, 0)
-
---
-2.33.1
-
-From f6e7ab1542afe7fbcd2d29b6cb15b97484e3779c Mon Sep 17 00:00:00 2001
-From: "FeRD (Frank Dana)"
-Date: Wed, 5 Jan 2022 21:56:39 -0500
-Subject: [PATCH 2/2] value_str: Handle QDateTime correctly
-
----
- ui5/ui_utils.py | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/ui5/ui_utils.py b/ui5/ui_utils.py
-index caba339..225ca1c 100644
---- a/ui5/ui_utils.py
-+++ b/ui5/ui_utils.py
-@@ -105,7 +105,10 @@ def value_str(data):
- if data is None:
- return ""
- try:
-- if not PY3:
-+ if PY3:
-+ if isinstance(data, QDateTime):
-+ data = data.toString()
-+ else:
- try:
- data = data.toString()
- except AttributeError as e:
---
-2.33.1
-
diff --git a/hplip-gcc15-stdc23.patch b/hplip-gcc15-stdc23.patch
deleted file mode 100644
index a18f245..0000000
--- a/hplip-gcc15-stdc23.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/scan/sane/ledmi.h b/scan/sane/ledmi.h
-index a987c5d..f72847b 100644
---- a/scan/sane/ledmi.h
-+++ b/scan/sane/ledmi.h
-@@ -162,7 +162,7 @@ struct ledm_session
- int bb_open(struct ledm_session*);
- int bb_close(struct ledm_session*);
- int bb_get_parameters(struct ledm_session*, SANE_Parameters*, int);
--int bb_is_paper_in_adf(); /* 0 = no paper in adf, 1 = paper in adf, -1 = error */
-+int bb_is_paper_in_adf(struct ledm_session*); /* 0 = no paper in adf, 1 = paper in adf, -1 = error */
- SANE_Status bb_start_scan(struct ledm_session*);
- int bb_get_image_data(struct ledm_session*, int);
- int bb_end_page(struct ledm_session*, int);
diff --git a/hplip-gpgdir-perms.patch b/hplip-gpgdir-perms.patch
deleted file mode 100644
index 51475de..0000000
--- a/hplip-gpgdir-perms.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/base/validation.py b/base/validation.py
-index 96e65be..35f22eb 100644
---- a/base/validation.py
-+++ b/base/validation.py
-@@ -58,7 +58,7 @@ class GPG_Verification(DigiSign_Verification):
-
- if not os.path.exists(self.__gpg_dir):
- try:
-- os.mkdir(self.__gpg_dir, 0o755)
-+ os.mkdir(self.__gpg_dir, 0o700)
- except OSError:
- log.error("Failed to create %s" % self.__gpg_dir)
- self.__change_owner()
diff --git a/hplip-gui-close-trace.patch b/hplip-gui-close-trace.patch
deleted file mode 100644
index 39d8f01..0000000
--- a/hplip-gui-close-trace.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
-index 79f8fa8..28a77b3 100644
---- a/ui5/devmgr5.py
-+++ b/ui5/devmgr5.py
-@@ -816,6 +816,9 @@ class DevMgr5(Ui_MainWindow_Derived, Ui_MainWindow, QMainWindow):
-
-
- def updateWindowTitle(self):
-+ if self.cur_device is None or self.cur_device_uri is None:
-+ return
-+
- if self.cur_device.device_type == DEVICE_TYPE_FAX:
- self.setWindowTitle(self.__tr("HP Device Manager - %s (Fax)"%self.cur_device.model_ui))
- else:
-@@ -1876,6 +1879,9 @@ class DevMgr5(Ui_MainWindow_Derived, Ui_MainWindow, QMainWindow):
-
-
- def updatePrintControlTab(self):
-+ if self.cur_device is None or self.cur_printer is None:
-+ return
-+
- if self.cur_device.device_type == DEVICE_TYPE_PRINTER:
- self.PrintControlPrinterNameLabel.setText(self.__tr("Printer Name:"))
- self.groupBox.setTitle(QApplication.translate("MainWindow", "Printer Queue Control", None))
diff --git a/hplip-hpaio-gcc14.patch b/hplip-hpaio-gcc14.patch
deleted file mode 100644
index f7d195e..0000000
--- a/hplip-hpaio-gcc14.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c
-index 57d1dde..3475929 100644
---- a/scan/sane/hpaio.c
-+++ b/scan/sane/hpaio.c
-@@ -379,7 +379,7 @@ extern SANE_Status sane_hpaio_get_devices(const SANE_Device ***deviceList, SANE_
- ResetDeviceList(&DeviceList);
- DevDiscovery(localOnly);
- *deviceList = (const SANE_Device **)DeviceList;
-- SANE_Device*** devList;
-+ const SANE_Device*** devList;
- orblite_get_devices(devList, localOnly);
-
- return SANE_STATUS_GOOD;
-diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c
-index 2eb7aba..4eaa468 100644
---- a/scan/sane/orblite.c
-+++ b/scan/sane/orblite.c
-@@ -64,28 +64,28 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
- SANE_NAME_SCAN_TL_X, SANE_TITLE_SCAN_TL_X, SANE_DESC_SCAN_TL_X, // name, title, desc
- SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
- SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
-- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeLeft // constraint_type, constraint
-+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeLeft // constraint_type, constraint
- },
-
- {
- SANE_NAME_SCAN_TL_Y, SANE_TITLE_SCAN_TL_Y, SANE_DESC_SCAN_TL_Y, // name, title, desc
- SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
- SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
-- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeTop // constraint_type, constraint
-+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeTop // constraint_type, constraint
- },
-
- {
- SANE_NAME_SCAN_BR_X, SANE_TITLE_SCAN_BR_X, SANE_DESC_SCAN_BR_X, // name, title, desc
- SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
- SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
-- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeRight // constraint_type, constraint
-+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeRight // constraint_type, constraint
- },
-
- {
- SANE_NAME_SCAN_BR_Y, SANE_TITLE_SCAN_BR_Y, SANE_DESC_SCAN_BR_Y, // name, title, desc
- SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
- SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
-- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeBottom // constraint_type, constraint
-+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeBottom // constraint_type, constraint
- },
-
- // optResolution, // resolution group
-@@ -93,7 +93,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
- SANE_NAME_SCAN_RESOLUTION, SANE_TITLE_SCAN_RESOLUTION, SANE_DESC_SCAN_RESOLUTION, // name, title, desc
- SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word), // type, unit, size,
- SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
-- SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint
-+ SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint
- },
-
- // optMode, // color/depth group
-@@ -101,7 +101,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
- SANE_NAME_SCAN_MODE, SANE_TITLE_SCAN_MODE, SANE_DESC_SCAN_MODE, // name, title, desc
- SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
- SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
-- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_modes // constraint type, constraint
-+ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_modes // constraint type, constraint
- },
-
- // optSource,
-@@ -109,7 +109,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
- SANE_NAME_SCAN_SOURCE, SANE_TITLE_SCAN_SOURCE, SANE_DESC_SCAN_SOURCE, // name, title, desc
- SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
- SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
-- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_sources // constraint type, constraint
-+ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_sources // constraint type, constraint
- },
-
- // optPaperSize,
-@@ -117,7 +117,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
- SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc
- SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
- SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
-- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_paper_sizes // constraint type, constraint
-+ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_paper_sizes // constraint type, constraint
- },
-
- // optPaperSize,
-@@ -125,7 +125,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
- SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc
- SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word), // type, unit, size,
- SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
-- SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint
-+ SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint
- },
- #ifdef NOTDEF
- // default template
-@@ -274,6 +274,7 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
- SANE_Auth_Callback authorize;
- const SANE_Device *** device_list;
- SANE_Bool local_only;
-+ void * temp_handle;
-
-
- // Allocate handle, set all handle values to zero
-@@ -305,7 +306,9 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
- if (stat != SANE_STATUS_GOOD)
- return stat;
-
-- stat = g_handle->bb_orblite_open(devicename, &g_handle);
-+ temp_handle = g_handle;
-+ stat = g_handle->bb_orblite_open(devicename, &temp_handle);
-+ g_handle = temp_handle;
- if (stat == SANE_STATUS_GOOD)
- *handle = g_handle;
-
diff --git a/hplip-hpcups-crash.patch b/hplip-hpcups-crash.patch
deleted file mode 100644
index 28f34f7..0000000
--- a/hplip-hpcups-crash.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/prnt/hpcups/Compressor.cpp b/prnt/hpcups/Compressor.cpp
-index 7fbbcd0..a29955e 100644
---- a/prnt/hpcups/Compressor.cpp
-+++ b/prnt/hpcups/Compressor.cpp
-@@ -29,7 +29,7 @@
- \*****************************************************************************/
- #include "Compressor.h"
-
--Compressor::Compressor (unsigned int RasterSize, bool useseed) : SeedRow(NULL), UseSeedRow(useseed), inputsize(RasterSize), seeded(false)
-+Compressor::Compressor (unsigned int RasterSize, bool useseed) : SeedRow(NULL), compressBuf(NULL), UseSeedRow(useseed), inputsize(RasterSize), seeded(false)
- {
- constructor_error = NO_ERROR;
- iRastersReady = 0;
diff --git a/hplip-hpfax-importerror-print.patch b/hplip-hpfax-importerror-print.patch
index 3fdafda..8d487c4 100644
--- a/hplip-hpfax-importerror-print.patch
+++ b/hplip-hpfax-importerror-print.patch
@@ -1,10 +1,16 @@
+commit cdf5cb36e5d5a86f6a690c5861666cdc2da70593
+Author: Tomas Korbar
+Date: Wed Sep 19 15:33:03 2018 +0200
+
+ Fix TypeError in hpfax
+
diff --git a/fax/backend/hpfax.py b/fax/backend/hpfax.py
-index a63051d..3e187c9 100755
+index 9560e84..bc0912a 100755
--- a/fax/backend/hpfax.py
+++ b/fax/backend/hpfax.py
@@ -89,7 +89,7 @@ try:
from base import utils
- #from prnt import cups
+ from prnt import cups
except ImportError as e:
- bug("Error importing HPLIP modules: %s\n" % (pid, e))
+ bug("Error importing HPLIP modules: %s\n" % (e))
diff --git a/hplip-hpfirmware-timeout.patch b/hplip-hpfirmware-timeout.patch
deleted file mode 100644
index 77db559..0000000
--- a/hplip-hpfirmware-timeout.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/config_usb_printer.py b/config_usb_printer.py
-index 946a2d4..8db097e 100755
---- a/config_usb_printer.py
-+++ b/config_usb_printer.py
-@@ -28,6 +28,7 @@ __doc__ = "Udev invokes this tool. Tool detects the plugin, Smart Install (C/DVD
- # Std Lib
- import sys
- import os
-+import time
-
- # Local
- from base.g import *
-@@ -181,9 +182,10 @@ try:
- # ******************************* RUNNING FIRMWARE DOWNLOAD TO DEVICE FOR SUPPORTED PRINTER'S
- fw_download_req = mq.get('fw-download', False)
- if fw_download_req:
-- fw_cmd = "hp-firmware -y3 -s %s"%param
-+ fw_cmd = "hp-firmware -n -y3 -s %s"%param
- log.info(fw_cmd)
- fw_sts, fw_out = utils.run(fw_cmd)
-+ time.sleep(5)
- if fw_sts == 0:
- log.debug("Firmware downloaded to %s "%device_uri)
- else:
diff --git a/hplip-hplj-3052.patch b/hplip-hplj-3052.patch
deleted file mode 100644
index c65efac..0000000
--- a/hplip-hplj-3052.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/scan/scanext/scanext.c b/scan/scanext/scanext.c
-index ff57987..f607220 100755
---- a/scan/scanext/scanext.c
-+++ b/scan/scanext/scanext.c
-@@ -407,16 +407,6 @@ static PyObject *setOption (_ScanDevice * self, PyObject * args)
- int n;
- multipick = 1;
-
--if(1)
--{
--SANE_Bool b = SANE_TRUE;
-- sane_control_option (self->h, 9, SANE_ACTION_SET_VALUE, (void *)&b, &i);
--}
--else
--{
--SANE_Bool b = SANE_FALSE;
-- sane_control_option (self->h, 9, SANE_ACTION_SET_VALUE, (void *)&b, &i);
--}
- if (!PyArg_ParseTuple (args, "iO", &n, &value))
- raiseError("Invalid arguments.");
-
diff --git a/hplip-hpmud-string-parse.patch b/hplip-hpmud-string-parse.patch
deleted file mode 100644
index 58bf5dd..0000000
--- a/hplip-hpmud-string-parse.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/io/hpmud/model.c b/io/hpmud/model.c
-index 4ea8990..72c630b 100644
---- a/io/hpmud/model.c
-+++ b/io/hpmud/model.c
-@@ -420,7 +420,10 @@ static int ParseFile(char *datFile, char *model, char *attr, int attrSize, int *
- strncpy(section, rcbuf+1, sizeof(section)); /* found new section */
- n = strlen(section);
- section[n-2]=0; /* remove ']' and CR */
-- if (strcasecmp(model, section) == 0)
-+ if (strcasecmp(model, section) == 0 ||
-+ (section[0] == 'h' && section[1] == 'p' &&
-+ section[2] == '_' &&
-+ strcasecmp(model, section + 3) == 0))
- {
- /* Found model match. */
- *bytes_read = ResolveAttributes(fp, attr, attrSize);
diff --git a/hplip-hpsetup-noscanjets.patch b/hplip-hpsetup-noscanjets.patch
deleted file mode 100644
index 52a4690..0000000
--- a/hplip-hpsetup-noscanjets.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff -up hplip-3.23.3/setup.py.hpsetup-noscanjets hplip-3.23.3/setup.py
---- hplip-3.23.3/setup.py.hpsetup-noscanjets 2023-05-29 14:16:26.148133678 +0200
-+++ hplip-3.23.3/setup.py 2023-05-29 14:16:26.220133253 +0200
-@@ -399,9 +399,19 @@ else: # INTERACTIVE_MODE
- #log.warning("Cannot setup fax - device does not have fax feature.")
- setup_fax = False
-
-+ norm_model = models.normalizeModelName(model).lower()
-+
-+ # get out if the found model is standalone scanner, hp-setup is printer/fax setup tool
-+ if 'scanjet' in norm_model:
-+ log.error('The device {} is a standalone scanner. '
-+ 'hp-setup is a printer/MFD setup tool, '
-+ 'not scanner installation tool. '.format(model))
-+ log.info(log.bold('Scanners do not need a installation, but they may '
-+ 'require a binary plugin (install by \'hp-plugin -i\').'))
-+ clean_exit(1)
-+
- # ******************************* PLUGIN
-
-- norm_model = models.normalizeModelName(model).lower()
- plugin = mq.get('plugin', PLUGIN_NONE)
-
- if ignore_plugin_check is False and plugin > PLUGIN_NONE:
-diff -up hplip-3.23.3/ui5/setupdialog.py.hpsetup-noscanjets hplip-3.23.3/ui5/setupdialog.py
---- hplip-3.23.3/ui5/setupdialog.py.hpsetup-noscanjets 2023-05-29 14:16:26.220133253 +0200
-+++ hplip-3.23.3/ui5/setupdialog.py 2023-05-29 14:18:12.475041454 +0200
-@@ -1391,6 +1391,18 @@ class SetupDialog(QDialog, Ui_Dialog):
- back_end, is_hp, bus, model, serial, dev_file, host, zc, port = device.parseDeviceURI(
- self.device_uri)
- self.model = models.normalizeModelName(model).lower()
-+ if 'scanjet' in self.model:
-+ FailureUI(self,
-+ self.__tr('The device {} is a standalone '
-+ 'scanner. \'hp-setup\' is a tool '
-+ 'for installing printers and multifunction '
-+ 'devices. Scanners supported by HPLIP '
-+ 'work out-of-the-box after HPLIP installation, '
-+ 'or they may require a binary plugin, which you '
-+ 'can install by \'hp-plugin -i\'.
'.format(model)))
-+ self.displayPage(PAGE_DEVICES)
-+ return
-+
- self.showAddPrinterPage()
-
- elif p == PAGE_ADD_PRINTER:
diff --git a/hplip-keyserver.patch b/hplip-keyserver.patch
deleted file mode 100644
index c525503..0000000
--- a/hplip-keyserver.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/base/tui.py b/base/tui.py
-index 99bda7b..0f90f92 100644
---- a/base/tui.py
-+++ b/base/tui.py
-@@ -241,6 +241,7 @@ class ProgressMeter(object):
- sys.stdout.write(y)
-
- sys.stdout.flush()
-+ sys.stdout.write('\n')
- self.prev_length = len(y)
- self.spinner_pos = (self.spinner_pos + 1) % 8
-
diff --git a/hplip-lineart.patch b/hplip-lineart.patch
new file mode 100644
index 0000000..1580086
--- /dev/null
+++ b/hplip-lineart.patch
@@ -0,0 +1,14 @@
+diff -up hplip-3.14.6/scan.py.lineart hplip-3.14.6/scan.py
+--- hplip-3.14.6/scan.py.lineart 2014-07-23 12:30:52.361517852 +0100
++++ hplip-3.14.6/scan.py 2014-07-23 12:32:17.052940000 +0100
+@@ -977,8 +977,8 @@ try:
+ try:
+ pixels_per_line = bytes_per_line * 8 # Calculation of pixels_per_line for Lineart must be 8 time of bytes_per_line
+ # Otherwise, scanned image will be corrupted (slanted)
+- im = Image.frombuffer('RGBA', (pixels_per_line, lines), buffer.read(),
+- 'raw', 'RGBA', 0, 1).convert('L')
++ im = Image.frombuffer('1', (pixels_per_line, lines), buffer.read(),
++ 'raw', '1', 0, 1).convert('L')
+ except ValueError:
+ log.error("Did not read enough data from scanner (I/O Error?)")
+ sys.exit(1)
diff --git a/hplip-locale-format.patch b/hplip-locale-format.patch
deleted file mode 100644
index 32fba1e..0000000
--- a/hplip-locale-format.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/base/utils.py b/base/utils.py
-index e2de550..55848b8 100644
---- a/base/utils.py
-+++ b/base/utils.py
-@@ -474,7 +474,7 @@ def sort_dict_by_value(d):
-
-
- def commafy(val):
-- return locale.format("%s", val, grouping=True)
-+ return locale.format_string("%s", val, grouping=True)
-
-
- def format_bytes(s, show_bytes=False):
diff --git a/hplip-logdir.patch b/hplip-logdir.patch
index 702d328..bbfab9b 100644
--- a/hplip-logdir.patch
+++ b/hplip-logdir.patch
@@ -1,18 +1,18 @@
-diff -up hplip-3.21.12/prnt/hpcups/HPCupsFilter.cpp.logdir hplip-3.21.12/prnt/hpcups/HPCupsFilter.cpp
---- hplip-3.21.12/prnt/hpcups/HPCupsFilter.cpp.logdir 2022-01-12 11:27:25.509348511 +0100
-+++ hplip-3.21.12/prnt/hpcups/HPCupsFilter.cpp 2022-01-12 11:29:11.507661838 +0100
-@@ -669,7 +669,7 @@ int HPCupsFilter::processRasterData(cups
+diff -up hplip-3.15.2/prnt/hpcups/HPCupsFilter.cpp.logdir hplip-3.15.2/prnt/hpcups/HPCupsFilter.cpp
+--- hplip-3.15.2/prnt/hpcups/HPCupsFilter.cpp.logdir 2015-02-04 14:22:43.838774401 +0100
++++ hplip-3.15.2/prnt/hpcups/HPCupsFilter.cpp 2015-02-04 14:22:43.844774315 +0100
+@@ -619,7 +619,7 @@ int HPCupsFilter::processRasterData(cups
char hpPreProcessedRasterFile[MAX_FILE_PATH_LEN]; //temp file needed to store raster data with swaped pages.
- sprintf(hpPreProcessedRasterFile, "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
+ snprintf(hpPreProcessedRasterFile, sizeof (hpPreProcessedRasterFile), "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
- #ifndef DISABLE_IMAGEPROCESSOR
- image_processor_t* imageProcessor=NULL;
- IMAGE_PROCESSOR_ERROR result;
-diff -up hplip-3.21.12/prnt/hpcups/SystemServices.cpp.logdir hplip-3.21.12/prnt/hpcups/SystemServices.cpp
---- hplip-3.21.12/prnt/hpcups/SystemServices.cpp.logdir 2021-12-13 10:07:36.000000000 +0100
-+++ hplip-3.21.12/prnt/hpcups/SystemServices.cpp 2022-01-12 11:27:25.509348511 +0100
+
+
+ while (cupsRasterReadHeader2(cups_raster, &cups_header))
+diff -up hplip-3.15.2/prnt/hpcups/SystemServices.cpp.logdir hplip-3.15.2/prnt/hpcups/SystemServices.cpp
+--- hplip-3.15.2/prnt/hpcups/SystemServices.cpp.logdir 2015-02-04 14:22:43.844774315 +0100
++++ hplip-3.15.2/prnt/hpcups/SystemServices.cpp 2015-02-04 14:24:04.080626127 +0100
@@ -38,7 +38,7 @@ SystemServices::SystemServices(int iLogL
if (iLogLevel & SAVE_OUT_FILE)
{
diff --git a/hplip-logging-segfault.patch b/hplip-logging-segfault.patch
deleted file mode 100644
index 4d7d2f0..0000000
--- a/hplip-logging-segfault.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/io/hpmud/musb.c b/io/hpmud/musb.c
-index 755493e..6d9c7fc 100644
---- a/io/hpmud/musb.c
-+++ b/io/hpmud/musb.c
-@@ -1454,7 +1454,7 @@ enum HPMUD_RESULT __attribute__ ((visibility ("hidden"))) musb_raw_channel_write
- BUG("unable to write data %s: %d second io timeout\n", msp->device[pc->dindex].uri, sec_timeout);
- }
- else
-- BUG("unable to write data (len = %d) %s: %m\n", msp->device[pc->dindex].uri, len);
-+ BUG("unable to write data (len = %d) %s: %m\n", len, msp->device[pc->dindex].uri);
- goto bugout;
- }
- if(len == 0 && size > 0)
diff --git a/hplip-m278-m281-needs-plugin.patch b/hplip-m278-m281-needs-plugin.patch
deleted file mode 100644
index 2a0783c..0000000
--- a/hplip-m278-m281-needs-plugin.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/data/models/models.dat b/data/models/models.dat
-index 4b21c1a..76c4cc0 100644
---- a/data/models/models.dat
-+++ b/data/models/models.dat
-@@ -64063,8 +64063,8 @@ model11=HP Color LaserJet Pro MFP M280c2
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-color_laserjet_mfp_m278-m281-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
diff --git a/hplip-missing-drivers.patch b/hplip-missing-drivers.patch
deleted file mode 100644
index bb9b759..0000000
--- a/hplip-missing-drivers.patch
+++ /dev/null
@@ -1,602 +0,0 @@
-diff -up hplip-3.22.2/cups_drv.inc.missing-drivers hplip-3.22.2/cups_drv.inc
---- hplip-3.22.2/cups_drv.inc.missing-drivers 2022-02-23 08:42:29.000000000 +0100
-+++ hplip-3.22.2/cups_drv.inc 2022-03-10 09:11:00.337315604 +0100
-@@ -411,6 +411,7 @@ cups_ppd_printers = \
- ppd/hpcups/hp-laserjet_cm1418fnw-pcl3.ppd.gz \
- ppd/hpcups/hp-laserjet_cp1025.ppd.gz \
- ppd/hpcups/hp-laserjet_cp1025nw.ppd.gz \
-+ ppd/hpcups/hp-laserjet_cp_1025nw.ppd.gz \
- ppd/hpcups/hp-laserjet_m1005.ppd.gz \
- ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
- ppd/hpcups/hp-laserjet_m109-m112.ppd.gz \
-@@ -527,6 +528,7 @@ cups_ppd_printers = \
- ppd/hpcups/hp-laserjet_professional_p1607dn.ppd.gz \
- ppd/hpcups/hp-laserjet_professional_p1608dn.ppd.gz \
- ppd/hpcups/hp-laserjet_professional_p1609dn.ppd.gz \
-+ ppd/hpcups/hp-laserjet_professional_p1102w.ppd.gz \
- ppd/hpcups/hp-laserjet_professional_p_1102w.ppd.gz \
- ppd/hpcups/hp-laserjet_tank_1020.ppd.gz \
- ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
-diff -up hplip-3.22.2/data/models/models.dat.missing-drivers hplip-3.22.2/data/models/models.dat
---- hplip-3.22.2/data/models/models.dat.missing-drivers 2022-03-10 09:10:13.601066235 +0100
-+++ hplip-3.22.2/data/models/models.dat 2022-03-10 09:10:13.622066347 +0100
-@@ -2104,7 +2104,7 @@ usb-pid=411
- usb-vid=3f0
- wifi-config=0
-
--[hp_laserjet_100_colormfp_m175]
-+[hp_laserjet_100_colormfp_m175nw]
- align-type=0
- clean-type=0
- color-cal-type=0
-@@ -2119,14 +2119,6 @@ io-support=14
- job-storage=0
- linefeed-cal-type=0
- model1=HP LaserJet 100 Color MFP M175
--model2=HP LaserJet 100 Color MFP M175a
--model3=HP LaserJet 100 Color MFP M175b
--model4=HP LaserJet 100 Color MFP M175c
--model5=HP LaserJet 100 Color MFP M175e
--model6=HP LaserJet 100 Color MFP M175nw
--model7=HP LaserJet 100 Color MFP M175p
--model8=HP LaserJet 100 Color MFP M175q
--model9=HP LaserJet 100 Color MFP M175r
- ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
- monitor-type=0
- panel-check-type=0
-@@ -2165,6 +2157,378 @@ usb-pid=62a
- usb-vid=3f0
- wifi-config=3
-
-+[hp_laserjet_100_colormfp_m175r]
-+align-type=0
-+clean-type=0
-+color-cal-type=0
-+copy-type=0
-+embedded-server-type=1
-+fax-type=0
-+fw-download=False
-+icon=hp_color_laserjet_cm1312_mfp.png
-+io-mfp-mode=3
-+io-mode=1
-+io-support=14
-+job-storage=0
-+linefeed-cal-type=0
-+model1=HP LaserJet 100 Color MFP M175
-+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
-+monitor-type=0
-+panel-check-type=0
-+pcard-type=0
-+plugin=1
-+plugin-reason=64
-+power-settings=0
-+pq-diag-type=0
-+r-type=0
-+r0-agent1-kind=4
-+r0-agent1-sku=CE310A
-+r0-agent1-type=1
-+r0-agent2-kind=4
-+r0-agent2-sku=CE311A
-+r0-agent2-type=4
-+r0-agent3-kind=4
-+r0-agent3-sku=CE313A
-+r0-agent3-type=5
-+r0-agent4-kind=4
-+r0-agent4-sku=CE312A
-+r0-agent4-type=6
-+scan-src=3
-+scan-type=5
-+status-battery-check=0
-+status-dynamic-counters=0
-+status-type=10
-+support-released=True
-+support-subtype=219b2b
-+support-type=2
-+support-ver=3.11.7
-+tech-class=Postscript
-+family-class=Undefined
-+tech-subclass=Normal
-+tech-type=4
-+usb-pid=62a
-+usb-vid=3f0
-+wifi-config=3
-+
-+[hp_laserjet_100_colormfp_m175q]
-+align-type=0
-+clean-type=0
-+color-cal-type=0
-+copy-type=0
-+embedded-server-type=1
-+fax-type=0
-+fw-download=False
-+icon=hp_color_laserjet_cm1312_mfp.png
-+io-mfp-mode=3
-+io-mode=1
-+io-support=14
-+job-storage=0
-+linefeed-cal-type=0
-+model1=HP LaserJet 100 Color MFP M175
-+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
-+monitor-type=0
-+panel-check-type=0
-+pcard-type=0
-+plugin=1
-+plugin-reason=64
-+power-settings=0
-+pq-diag-type=0
-+r-type=0
-+r0-agent1-kind=4
-+r0-agent1-sku=CE310A
-+r0-agent1-type=1
-+r0-agent2-kind=4
-+r0-agent2-sku=CE311A
-+r0-agent2-type=4
-+r0-agent3-kind=4
-+r0-agent3-sku=CE313A
-+r0-agent3-type=5
-+r0-agent4-kind=4
-+r0-agent4-sku=CE312A
-+r0-agent4-type=6
-+scan-src=3
-+scan-type=5
-+status-battery-check=0
-+status-dynamic-counters=0
-+status-type=10
-+support-released=True
-+support-subtype=219b2b
-+support-type=2
-+support-ver=3.11.7
-+tech-class=Postscript
-+family-class=Undefined
-+tech-subclass=Normal
-+tech-type=4
-+usb-pid=62a
-+usb-vid=3f0
-+wifi-config=3
-+
-+[hp_laserjet_100_colormfp_m175p]
-+align-type=0
-+clean-type=0
-+color-cal-type=0
-+copy-type=0
-+embedded-server-type=1
-+fax-type=0
-+fw-download=False
-+icon=hp_color_laserjet_cm1312_mfp.png
-+io-mfp-mode=3
-+io-mode=1
-+io-support=14
-+job-storage=0
-+linefeed-cal-type=0
-+model1=HP LaserJet 100 Color MFP M175
-+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
-+monitor-type=0
-+panel-check-type=0
-+pcard-type=0
-+plugin=1
-+plugin-reason=64
-+power-settings=0
-+pq-diag-type=0
-+r-type=0
-+r0-agent1-kind=4
-+r0-agent1-sku=CE310A
-+r0-agent1-type=1
-+r0-agent2-kind=4
-+r0-agent2-sku=CE311A
-+r0-agent2-type=4
-+r0-agent3-kind=4
-+r0-agent3-sku=CE313A
-+r0-agent3-type=5
-+r0-agent4-kind=4
-+r0-agent4-sku=CE312A
-+r0-agent4-type=6
-+scan-src=3
-+scan-type=5
-+status-battery-check=0
-+status-dynamic-counters=0
-+status-type=10
-+support-released=True
-+support-subtype=219b2b
-+support-type=2
-+support-ver=3.11.7
-+tech-class=Postscript
-+family-class=Undefined
-+tech-subclass=Normal
-+tech-type=4
-+usb-pid=62a
-+usb-vid=3f0
-+wifi-config=3
-+
-+[hp_laserjet_100_colormfp_m175e]
-+align-type=0
-+clean-type=0
-+color-cal-type=0
-+copy-type=0
-+embedded-server-type=1
-+fax-type=0
-+fw-download=False
-+icon=hp_color_laserjet_cm1312_mfp.png
-+io-mfp-mode=3
-+io-mode=1
-+io-support=2
-+job-storage=0
-+linefeed-cal-type=0
-+model1=HP LaserJet 100 Color MFP M175
-+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
-+monitor-type=0
-+panel-check-type=0
-+pcard-type=0
-+plugin=1
-+plugin-reason=64
-+power-settings=0
-+pq-diag-type=0
-+r-type=0
-+r0-agent1-kind=4
-+r0-agent1-sku=CE310A
-+r0-agent1-type=1
-+r0-agent2-kind=4
-+r0-agent2-sku=CE311A
-+r0-agent2-type=4
-+r0-agent3-kind=4
-+r0-agent3-sku=CE313A
-+r0-agent3-type=5
-+r0-agent4-kind=4
-+r0-agent4-sku=CE312A
-+r0-agent4-type=6
-+scan-src=3
-+scan-type=5
-+status-battery-check=0
-+status-dynamic-counters=0
-+status-type=10
-+support-released=True
-+support-subtype=219b2b
-+support-type=2
-+support-ver=3.11.7
-+tech-class=Postscript
-+family-class=Undefined
-+tech-subclass=Normal
-+tech-type=4
-+usb-pid=62a
-+usb-vid=3f0
-+wifi-config=-1
-+
-+[hp_laserjet_100_colormfp_m175a]
-+align-type=0
-+clean-type=0
-+color-cal-type=0
-+copy-type=0
-+embedded-server-type=1
-+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
-+family-ppd=hp-postscript-laserjet-pro.ppd
-+fax-type=0
-+fw-download=False
-+icon=hp_color_laserjet_cm1312_mfp.png
-+io-mfp-mode=3
-+io-mode=1
-+io-support=2
-+job-storage=0
-+linefeed-cal-type=0
-+model1=HP LaserJet 100 Color MFP M175
-+monitor-type=0
-+panel-check-type=0
-+pcard-type=0
-+plugin=1
-+plugin-reason=64
-+power-settings=0
-+pq-diag-type=0
-+r-type=0
-+r0-agent1-kind=4
-+r0-agent1-sku=CE310A
-+r0-agent1-type=1
-+r0-agent2-kind=4
-+r0-agent2-sku=CE311A
-+r0-agent2-type=4
-+r0-agent3-kind=4
-+r0-agent3-sku=CE313A
-+r0-agent3-type=5
-+r0-agent4-kind=4
-+r0-agent4-sku=CE312A
-+r0-agent4-type=6
-+scan-src=3
-+scan-type=5
-+status-battery-check=0
-+status-dynamic-counters=0
-+status-type=10
-+support-released=True
-+support-subtype=219b2b
-+support-type=2
-+support-ver=3.11.7
-+tech-class=Postscript
-+family-class=Undefined
-+tech-subclass=Normal
-+tech-type=4
-+usb-pid=62a
-+usb-vid=3f0
-+wifi-config=-1
-+
-+[hp_laserjet_100_colormfp_m175c]
-+align-type=0
-+clean-type=0
-+color-cal-type=0
-+copy-type=0
-+embedded-server-type=1
-+fax-type=0
-+fw-download=False
-+icon=hp_color_laserjet_cm1312_mfp.png
-+io-mfp-mode=3
-+io-mode=1
-+io-support=2
-+job-storage=0
-+linefeed-cal-type=0
-+model1=HP LaserJet 100 Color MFP M175
-+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
-+monitor-type=0
-+panel-check-type=0
-+pcard-type=0
-+plugin=1
-+plugin-reason=64
-+power-settings=0
-+pq-diag-type=0
-+r-type=0
-+r0-agent1-kind=4
-+r0-agent1-sku=CE310A
-+r0-agent1-type=1
-+r0-agent2-kind=4
-+r0-agent2-sku=CE311A
-+r0-agent2-type=4
-+r0-agent3-kind=4
-+r0-agent3-sku=CE313A
-+r0-agent3-type=5
-+r0-agent4-kind=4
-+r0-agent4-sku=CE312A
-+r0-agent4-type=6
-+scan-src=3
-+scan-type=5
-+status-battery-check=0
-+status-dynamic-counters=0
-+status-type=10
-+support-released=True
-+support-subtype=219b2b
-+support-type=2
-+support-ver=3.11.7
-+tech-class=Postscript
-+family-class=Undefined
-+tech-subclass=Normal
-+tech-type=4
-+usb-pid=62a
-+usb-vid=3f0
-+wifi-config=-1
-+
-+[hp_laserjet_100_colormfp_m175b]
-+align-type=0
-+clean-type=0
-+color-cal-type=0
-+copy-type=0
-+embedded-server-type=1
-+fax-type=0
-+fw-download=False
-+icon=hp_color_laserjet_cm1312_mfp.png
-+io-mfp-mode=3
-+io-mode=1
-+io-support=2
-+job-storage=0
-+linefeed-cal-type=0
-+model1=HP LaserJet 100 Color MFP M175
-+ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
-+monitor-type=0
-+panel-check-type=0
-+pcard-type=0
-+plugin=1
-+plugin-reason=64
-+power-settings=0
-+pq-diag-type=0
-+r-type=0
-+r0-agent1-kind=4
-+r0-agent1-sku=CE310A
-+r0-agent1-type=1
-+r0-agent2-kind=4
-+r0-agent2-sku=CE311A
-+r0-agent2-type=4
-+r0-agent3-kind=4
-+r0-agent3-sku=CE313A
-+r0-agent3-type=5
-+r0-agent4-kind=4
-+r0-agent4-sku=CE312A
-+r0-agent4-type=6
-+scan-src=3
-+scan-type=5
-+status-battery-check=0
-+status-dynamic-counters=0
-+status-type=10
-+support-released=True
-+support-subtype=219b2b
-+support-type=2
-+support-ver=3.11.7
-+tech-class=Postscript
-+family-class=Undefined
-+tech-subclass=Normal
-+tech-type=4
-+usb-pid=62a
-+usb-vid=3f0
-+wifi-config=-1
-+
- [officejet_100_mobile_l411]
- align-type=-1
- clean-type=1
-@@ -17867,6 +18231,58 @@ usb-pid=2c17
- usb-vid=3f0
- wifi-config=0
-
-+[hp_laserjet_cp_1025nw]
-+align-type=0
-+clean-type=0
-+color-cal-type=0
-+copy-type=0
-+embedded-server-type=1
-+fax-type=0
-+fw-download=False
-+icon=hp_color_laserjet_cp2025.png
-+io-mfp-mode=1
-+io-mode=1
-+io-support=14
-+job-storage=0
-+linefeed-cal-type=0
-+model1=HP LaserJet Pro CP 1025nw Color Printer Series
-+monitor-type=0
-+panel-check-type=0
-+pcard-type=0
-+plugin=1
-+plugin-reason=1
-+power-settings=0
-+pq-diag-type=0
-+r-type=0
-+r0-agent1-kind=4
-+r0-agent1-sku=CE310A
-+r0-agent1-type=1
-+r0-agent2-kind=4
-+r0-agent2-sku=CE311A
-+r0-agent2-type=4
-+r0-agent3-kind=4
-+r0-agent3-sku=CE313A
-+r0-agent3-type=5
-+r0-agent4-kind=4
-+r0-agent4-sku=CE312A
-+r0-agent4-type=6
-+scan-src=0
-+scan-type=0
-+status-battery-check=0
-+status-dynamic-counters=0
-+status-type=8
-+support-released=True
-+support-subtype=219b2b
-+support-type=2
-+support-ver=3.12.4
-+tech-class=LJZjsColor
-+family-class=LJ-Class4
-+tech-subclass=Advanced
-+tech-type=4
-+usb-pid=112a
-+usb-vid=3f0
-+wifi-config=3
-+
- [hp_laserjet_cp1025nw]
- align-type=0
- clean-type=0
-@@ -18468,6 +18884,49 @@ usb-pid=3011
- usb-vid=3f0
- wifi-config=0
-
-+[hp_laserjet_professional_p1102w]
-+align-type=0
-+clean-type=0
-+color-cal-type=0
-+copy-type=0
-+embedded-server-type=0
-+fax-type=0
-+fw-download=False
-+icon=HP_LaserJet_1012.png
-+io-mfp-mode=6
-+io-mode=1
-+io-support=10
-+job-storage=0
-+linefeed-cal-type=0
-+model1=HP LaserJet Professional P1102w Printer
-+monitor-type=0
-+panel-check-type=0
-+pcard-type=0
-+plugin=1
-+plugin-reason=1
-+power-settings=0
-+pq-diag-type=0
-+r-type=0
-+r0-agent1-kind=4
-+r0-agent1-sku=85A
-+r0-agent1-type=1
-+scan-src=0
-+scan-type=0
-+status-battery-check=0
-+status-dynamic-counters=0
-+status-type=8
-+support-released=True
-+support-subtype=219b2b
-+support-type=2
-+support-ver=3.10.4
-+tech-class=LJZjsMono
-+family-class=LJ-Class4
-+tech-subclass=NoAutoDuplex
-+tech-type=3
-+usb-pid=32a
-+usb-vid=3f0
-+wifi-config=3
-+
- [hp_laserjet_professional_p1102]
- align-type=0
- clean-type=0
-diff -up hplip-3.22.2/Makefile.in.missing-drivers hplip-3.22.2/Makefile.in
---- hplip-3.22.2/Makefile.in.missing-drivers 2022-02-23 08:42:31.000000000 +0100
-+++ hplip-3.22.2/Makefile.in 2022-03-10 09:11:45.915558795 +0100
-@@ -1613,6 +1613,7 @@ am__dist_ppd_DATA_DIST = prnt/ps/hp-lase
- ppd/hpcups/hp-laserjet_cm1418fnw-pcl3.ppd.gz \
- ppd/hpcups/hp-laserjet_cp1025.ppd.gz \
- ppd/hpcups/hp-laserjet_cp1025nw.ppd.gz \
-+ ppd/hpcups/hp-laserjet_cp_1025nw.ppd.gz \
- ppd/hpcups/hp-laserjet_m1005.ppd.gz \
- ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
- ppd/hpcups/hp-laserjet_m109-m112.ppd.gz \
-@@ -1729,6 +1730,7 @@ am__dist_ppd_DATA_DIST = prnt/ps/hp-lase
- ppd/hpcups/hp-laserjet_professional_p1607dn.ppd.gz \
- ppd/hpcups/hp-laserjet_professional_p1608dn.ppd.gz \
- ppd/hpcups/hp-laserjet_professional_p1609dn.ppd.gz \
-+ ppd/hpcups/hp-laserjet_professional_p1102w.ppd.gz \
- ppd/hpcups/hp-laserjet_professional_p_1102w.ppd.gz \
- ppd/hpcups/hp-laserjet_tank_1020.ppd.gz \
- ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
-@@ -4090,6 +4092,7 @@ dist_unrel_DATA =
- @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cm1418fnw-pcl3.ppd.gz \
- @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cp1025.ppd.gz \
- @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cp1025nw.ppd.gz \
-+@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cp_1025nw.ppd.gz \
- @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_m1005.ppd.gz \
- @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
- @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_m109-m112.ppd.gz \
-@@ -4206,6 +4209,7 @@ dist_unrel_DATA =
- @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1607dn.ppd.gz \
- @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1608dn.ppd.gz \
- @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1609dn.ppd.gz \
-+@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1102w.ppd.gz \
- @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p_1102w.ppd.gz \
- @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_tank_1020.ppd.gz \
- @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
-diff -up hplip-3.22.2/prnt/drv/hpcups.drv.in.missing-drivers hplip-3.22.2/prnt/drv/hpcups.drv.in
---- hplip-3.22.2/prnt/drv/hpcups.drv.in.missing-drivers 2022-03-10 09:10:13.554065984 +0100
-+++ hplip-3.22.2/prnt/drv/hpcups.drv.in 2022-03-10 09:10:13.629066384 +0100
-@@ -22693,6 +22693,14 @@ Group "RLT/HP Real Life Technologies"
- Attribute "Product" "" "(HP LaserJet Professional p1102s Printer)"
- }
- {
-+ ModelName "HP LaserJet Professional p1102w"
-+ Attribute "NickName" "" "HP LaserJet Professional p1102w, hpcups $Version, requires proprietary plugin"
-+ Attribute "ShortNickName" "" "HP LaserJet Professional p1102w hpijs"
-+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:hp laserjet professional p1102w;DES:hp laserjet professional p1102w;"
-+ PCFileName "hp-laserjet_professional_p1102w.ppd"
-+ Attribute "Product" "" "(HP LaserJet Professional p1102w Printer)"
-+ }
-+ {
- ModelName "HP LaserJet Professional p1106"
- Attribute "NickName" "" "HP LaserJet Professional p1106, hpcups $Version"
- Attribute "ShortNickName" "" "HP LJ Pro p1106 hpijs"
-@@ -23126,6 +23134,14 @@ Group "RLT/HP Real Life Technologies"
- PCFileName "hp-laserjet_cp1025nw.ppd"
- Attribute "Product" "" "(HP LaserJet Pro cp1025nw Color Printer Series)"
- }
-+ {
-+ ModelName "HP LaserJet Cp 1025nw"
-+ Attribute "NickName" "" "HP LaserJet Cp 1025nw, hpcups $Version, requires proprietary plugin"
-+ Attribute "ShortNickName" "" "HP LaserJet Cp 1025nw hpijs"
-+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:hp laserjet cp 1025nw;DES:hp laserjet cp 1025nw;"
-+ PCFileName "hp-laserjet_cp_1025nw.ppd"
-+ Attribute "Product" "" "(HP LaserJet Pro Cp 1025nw Color Printer Series)"
-+ }
- }
- } // End LJZjsColor (for proprietary plugin)
-
diff --git a/hplip-missing-links.patch b/hplip-missing-links.patch
deleted file mode 100644
index 0deab1f..0000000
--- a/hplip-missing-links.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up hplip-3.21.12/installer/pluginhandler.py.missing-links hplip-3.21.12/installer/pluginhandler.py
---- hplip-3.21.12/installer/pluginhandler.py.missing-links 2022-01-12 16:55:39.761934879 +0100
-+++ hplip-3.21.12/installer/pluginhandler.py 2022-01-12 17:22:33.367435334 +0100
-@@ -167,7 +167,7 @@ class PluginHandle(object):
- continue
- if link != "":
- if not utils.check_library(link):
-- self.__plugin_state = PLUGIN_FILES_CORRUPTED
-+ pass
-
-
- def __getPluginInformation(self, callback=None):
diff --git a/hplip-model-mismatch.patch b/hplip-model-mismatch.patch
deleted file mode 100644
index 1dbe3c0..0000000
--- a/hplip-model-mismatch.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-diff --git a/io/hpmud/jd.c b/io/hpmud/jd.c
-index 20df27a..7ed4918 100644
---- a/io/hpmud/jd.c
-+++ b/io/hpmud/jd.c
-@@ -208,7 +208,22 @@ enum HPMUD_RESULT __attribute__ ((visibility ("hidden"))) jd_open(mud_device *pd
- {
- /* Make sure uri model matches device id model. */
- hpmud_get_uri_model(pd->uri, uri_model, sizeof(uri_model));
-+
-+ /* remove possible hp_ string */
-+ if (strncasecmp(uri_model, "HP_", 3) == 0)
-+ {
-+ memmove(uri_model, uri_model + 3, 127);
-+ uri_model[127] = '\0';
-+ }
-+
- hpmud_get_model(pd->id, model, sizeof(model));
-+ /* remove possible hp_ string */
-+ if (strncasecmp(model, "HP_", 3) == 0)
-+ {
-+ memmove(model, model + 3, 127);
-+ model[127] = '\0';
-+ }
-+
- if (strcasecmp(uri_model, model) != 0)
- {
- stat = HPMUD_R_INVALID_URI; /* different device plugged in */
-diff --git a/io/hpmud/model.c b/io/hpmud/model.c
-index d546ec1..adb3d87 100644
---- a/io/hpmud/model.c
-+++ b/io/hpmud/model.c
-@@ -407,7 +407,10 @@ static int ParseFile(char *datFile, char *model, char *attr, int attrSize, int *
- char rcbuf[255];
- char section[128];
- char file[128];
-- int found=0, n;
-+ int found=0;
-+ size_t n;
-+
-+ size_t model_len = strlen(model);
-
- if ((fp = fopen(datFile, "r")) == NULL)
- goto bugout;
-@@ -422,10 +425,17 @@ static int ParseFile(char *datFile, char *model, char *attr, int attrSize, int *
- strncpy(section, rcbuf+1, sizeof(section)); /* found new section */
- n = strlen(section);
- section[n-2]=0; /* remove ']' and CR */
-+ n -= 2;
- if (strcasecmp(model, section) == 0 ||
-- (section[0] == 'h' && section[1] == 'p' &&
-- section[2] == '_' &&
-- strcasecmp(model, section + 3) == 0))
-+ (section[0] == 'h' &&
-+ section[1] == 'p' &&
-+ section[2] == '_' &&
-+ strcasecmp(model, section + 3) == 0) ||
-+ (n > model_len &&
-+ strncasecmp(section, model, model_len) == 0 &&
-+ strncasecmp(section + model_len, "_series", strlen("_series")) == 0
-+ )
-+ )
- {
- /* Found model match. */
- *bytes_read = ResolveAttributes(fp, attr, attrSize);
diff --git a/hplip-no-libhpmud-libm-warnings.patch b/hplip-no-libhpmud-libm-warnings.patch
deleted file mode 100644
index 160b70e..0000000
--- a/hplip-no-libhpmud-libm-warnings.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-diff --git a/scan/sane/escl.c b/scan/sane/escl.c
-index 9fbbcaf..bc9e0b5 100644
---- a/scan/sane/escl.c
-+++ b/scan/sane/escl.c
-@@ -37,18 +37,12 @@ static int bb_load(struct escl_session *ps, const char *so)
- int stat=1;
-
- /* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
-- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
-- {
-- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
-- goto bugout;
-- }
-+ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
-+ goto bugout;
-
- /* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
-- if ((ps->math_handle = load_library("libm.so")) == NULL)
-- {
-- if ((ps->math_handle = load_library("libm.so.6")) == NULL)
-- goto bugout;
-- }
-+ if ((ps->math_handle = load_library("libm.so.6")) == NULL)
-+ goto bugout;
- if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL)
- {
- SendScanEvent(ps->uri, EVENT_PLUGIN_FAIL);
-diff --git a/scan/sane/marvell.c b/scan/sane/marvell.c
-index 236f7c9..793104c 100644
---- a/scan/sane/marvell.c
-+++ b/scan/sane/marvell.c
-@@ -60,18 +60,12 @@ static int bb_load(struct marvell_session *ps, const char *so)
- int stat=1;
-
- /* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
-- if ((ps->hpmud_handle = load_library("libhpmud.so")) == NULL)
-- {
-- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
-- goto bugout;
-- }
-+ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
-+ goto bugout;
-
- /* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
-- if ((ps->math_handle = load_library("libm.so")) == NULL)
-- {
-- if ((ps->math_handle = load_library("libm.so.6")) == NULL)
-- goto bugout;
-- }
-+ if ((ps->math_handle = load_library("libm.so.6")) == NULL)
-+ goto bugout;
-
- if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL)
- {
-diff --git a/scan/sane/soap.c b/scan/sane/soap.c
-index 0d22e52..dcd8c7c 100644
---- a/scan/sane/soap.c
-+++ b/scan/sane/soap.c
-@@ -68,18 +68,12 @@ static int bb_load(struct soap_session *ps, const char *so)
- int stat=1;
-
- /* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
-- if ((ps->hpmud_handle = load_library("libhpmud.so")) == NULL)
-- {
-- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
-- goto bugout;
-- }
-+ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
-+ goto bugout;
-
- /* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
-- if ((ps->math_handle = load_library("libm.so")) == NULL)
-- {
-- if ((ps->math_handle = load_library("libm.so.6")) == NULL)
-- goto bugout;
-- }
-+ if ((ps->math_handle = load_library("libm.so.6")) == NULL)
-+ goto bugout;
-
- if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL)
- {
-diff --git a/scan/sane/soapht.c b/scan/sane/soapht.c
-index 139100d..74e8391 100644
---- a/scan/sane/soapht.c
-+++ b/scan/sane/soapht.c
-@@ -62,18 +62,12 @@ static int bb_load(struct soap_session *ps, const char *so)
- int stat=1;
-
- /* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
-- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
-- {
-- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
-- goto bugout;
-- }
-+ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
-+ goto bugout;
-
- /* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
-- if ((ps->math_handle = load_library("libm.so")) == NULL)
-- {
-- if ((ps->math_handle = load_library("libm.so.6")) == NULL)
-- goto bugout;
-- }
-+ if ((ps->math_handle = load_library("libm.so.6")) == NULL)
-+ goto bugout;
-
- if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL)
- {
diff --git a/hplip-no-urlopener.patch b/hplip-no-urlopener.patch
deleted file mode 100644
index 903fbbc..0000000
--- a/hplip-no-urlopener.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff --git a/base/device.py b/base/device.py
-index 2fdb29c..ca0d97e 100644
---- a/base/device.py
-+++ b/base/device.py
-@@ -2526,9 +2526,9 @@ Content-length: %d\r
- data = None
-
- log.debug("Opening: %s" % url2)
-- opener = LocalOpener({})
-+ opener = LocalOpener()
- try:
-- f = opener.open(url2, data)
-+ f = opener.open_hp(url2, data)
-
- except Error:
- log.error("Status read failed: %s" % url2)
-@@ -2548,7 +2548,7 @@ Content-length: %d\r
- try:
- url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url)
- data = self
-- opener = LocalOpenerEWS_LEDM({})
-+ opener = LocalOpenerEWS_LEDM()
- try:
- if footer:
- return opener.open_hp(url2, data, footer)
-@@ -2563,7 +2563,7 @@ Content-length: %d\r
- try:
- url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url)
- data = self
-- opener = LocalOpener_LEDM({})
-+ opener = LocalOpener_LEDM()
- try:
- if footer:
- return opener.open_hp(url2, data, footer)
-@@ -2580,7 +2580,7 @@ Content-length: %d\r
- url="/cdm/supply/v1/suppliesPublic"
- url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url)
- data = self
-- opener = LocalOpener_CDM({})
-+ opener = LocalOpener_CDM()
- try:
- if footer:
- return opener.open_hp(url2, data, footer)
-@@ -2688,7 +2688,7 @@ Content-length: %d\r
-
-
- # URLs: hp:/usb/HP_LaserJet_3050?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
--class LocalOpener(urllib_request.URLopener):
-+class LocalOpener():
- def open_hp(self, url, dev):
- log.debug("open_hp(%s)" % url)
-
-@@ -2718,7 +2718,7 @@ class LocalOpener(urllib_request.URLopener):
- return response#.fp
-
- # URLs: hp:/usb/HP_OfficeJet_7500?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
--class LocalOpenerEWS_LEDM(urllib_request.URLopener):
-+class LocalOpenerEWS_LEDM():
- def open_hp(self, url, dev, foot=""):
- log.debug("open_hp(%s)" % url)
-
-@@ -2744,7 +2744,7 @@ class LocalOpenerEWS_LEDM(urllib_request.URLopener):
-
-
- # URLs: hp:/usb/HP_OfficeJet_7500?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
--class LocalOpener_LEDM(urllib_request.URLopener):
-+class LocalOpener_LEDM():
- def open_hp(self, url, dev, foot=""):
- log.debug("open_hp(%s)" % url)
-
-@@ -2771,7 +2771,7 @@ class LocalOpener_LEDM(urllib_request.URLopener):
-
-
- # URLs: hp:/usb/HP_OfficeJet_7500?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
--class LocalOpener_CDM(urllib_request.URLopener):
-+class LocalOpener_CDM():
- def open_hp(self, url, dev, foot=""):
- log.debug("open_hp(%s)" % url)
- match_obj = http_pat_url.search(url)
diff --git a/hplip-noernie.patch b/hplip-noernie.patch
index 47bb9d0..4ac83b4 100644
--- a/hplip-noernie.patch
+++ b/hplip-noernie.patch
@@ -1,7 +1,7 @@
-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
+diff -up hplip-3.17.4/Makefile.am.no-ernie hplip-3.17.4/Makefile.am
+--- hplip-3.17.4/Makefile.am.no-ernie 2017-04-26 16:28:35.398099978 +0200
++++ hplip-3.17.4/Makefile.am 2017-04-26 16:29:02.235879035 +0200
+@@ -519,7 +519,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilte
prnt/hpcups/Mode2.cpp prnt/hpcups/Mode2.h prnt/hpcups/Mode3.cpp prnt/hpcups/Mode3.h \
prnt/hpcups/Mode9.cpp prnt/hpcups/Mode9.h prnt/hpcups/Mode10.cpp prnt/hpcups/Mode10.h \
prnt/hpcups/ModeDeltaPlus.cpp prnt/hpcups/ModeDeltaPlus.h prnt/hpcups/ModeJbig.cpp prnt/hpcups/ModeJbig.h \
@@ -10,9 +10,9 @@ diff -up hplip-3.23.3/Makefile.am.no-ernie hplip-3.23.3/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.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
+diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp
+--- hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie 2017-04-26 16:28:39.525066003 +0200
++++ hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp 2017-04-26 16:29:46.987510614 +0200
@@ -30,7 +30,6 @@
#include "CommonDefinitions.h"
@@ -26,7 +26,7 @@ diff -up hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.23.3/prnt/hpcups
{
speed_mech_enabled = true;
- m_run_ernie_filter = true;
- crd_type = eCrd_color_only; // pcl3 printers support RGB only ref:hplip-1701
+ crd_type = eCrd_both;
strcpy(m_szLanguage, "PCL3GUI");
}
@@ -59,21 +57,6 @@ DRIVER_ERROR Pcl3Gui2::Configure(Pipelin
@@ -51,9 +51,9 @@ diff -up hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.23.3/prnt/hpcups
if (crd_type != eCrd_black_only) {
Mode10 *pMode10;
-diff -up hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h.no-ernie hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h
---- hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h.no-ernie 2023-03-28 09:26:11.000000000 +0200
-+++ hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h 2023-05-29 13:15:58.134609689 +0200
+diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h.no-ernie hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h
+--- hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h.no-ernie 2017-04-26 16:28:43.277035115 +0200
++++ hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h 2017-04-26 16:30:05.826355522 +0200
@@ -60,7 +60,6 @@ private:
DRIVER_ERROR encapsulateRaster(BYTE *input_raster, unsigned int num_bytes, COLORTYPE c_type);
bool speed_mech_enabled;
diff --git a/hplip-pcardext-disable.patch b/hplip-pcardext-disable.patch
deleted file mode 100644
index 158379d..0000000
--- a/hplip-pcardext-disable.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up hplip-3.25.6/Makefile.am.pcardext-disable hplip-3.25.6/Makefile.am
---- hplip-3.25.6/Makefile.am.pcardext-disable 2025-08-11 12:52:35.359621088 +0200
-+++ hplip-3.25.6/Makefile.am 2025-08-11 12:54:58.654515582 +0200
-@@ -306,14 +306,6 @@ if !HPLIP_CLASS_DRIVER
- pcarddir = $(hplipdir)/pcard
- dist_pcard_DATA = pcard/__init__.py pcard/photocard.py
-
--# pcardext
--pcardextdir = $(PYTHONEXECDIR)
--pcardextdir = $(PYTHONEXECDIR)
--pcardext_LTLIBRARIES = pcardext.la
--pcardext_la_LDFLAGS = -module -avoid-version
--pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h
--pcardext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
--
- # prnt
- prntdir = $(hplipdir)/prnt
- dist_prnt_DATA = prnt/cups.py prnt/__init__.py prnt/ldl.py prnt/pcl.py prnt/colorcal.py
diff --git a/hplip-plugin-curl.patch b/hplip-plugin-curl.patch
deleted file mode 100644
index 380ce9b..0000000
--- a/hplip-plugin-curl.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-diff --git a/installer/pluginhandler.py b/installer/pluginhandler.py
-index 56683fb..031ceec 100755
---- a/installer/pluginhandler.py
-+++ b/installer/pluginhandler.py
-@@ -185,14 +185,16 @@ class PluginHandle(object):
- if self.__plugin_conf_file.startswith('file://'):
- status, filename = utils.download_from_network(self.__plugin_conf_file, local_conf, True)
- else:
-- wget = utils.which("wget", True)
-- if wget:
-- status, output = utils.run("%s --tries=3 --timeout=60 --output-document=%s %s --cache=off" %(wget, local_conf, self.__plugin_conf_file))
-+ curl = utils.which("curl", True)
-+ if curl:
-+ cmd = "%s --retry 3 --max-time 10 --output %s --location %s" %(curl, local_conf, self.__plugin_conf_file)
-+ log.debug(cmd)
-+ status, output = utils.run(cmd)
- if status:
- log.error("Plugin download failed with error code = %d" %status)
- return status, url, check_sum
- else:
-- log.error("Please install wget package to download the plugin.")
-+ log.error("Please install curl package to download the plugin.")
- return status, url, check_sum
- except IOError as e:
- log.error("I/O Error: %s" % e.strerror)
-@@ -284,18 +284,18 @@ class PluginHandle(object):
- if src.startswith('file://'):
- status, filename = utils.download_from_network(src, plugin_file, True)
- else:
-- wget = utils.which("wget", True)
-- if wget:
-- cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,src)
-+ curl = utils.which("curl", True)
-+ if curl:
-+ cmd = "%s --create-dirs -O --output-dir %s --location %s" % (curl,self.__plugin_path,src)
- log.debug(cmd)
- status, output = utils.run(cmd)
-- log.debug("wget returned: %d" % status)
-+ log.debug("curl returned: %d" % status)
-
- #Check whether plugin is accessible in Openprinting.org website otherwise dowload plugin from alternate location.
- if status != 0 or os_utils.getFileSize(plugin_file) <= 0:
- src = os.path.join(PLUGIN_FALLBACK_LOCATION, self.__plugin_name)
- log.info("Plugin is not accessible. Trying to download it from fallback location: [%s]" % src)
-- cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,src)
-+ cmd = "%s --create-dirs -O --output-dir %s --location %s" % (curl,self.__plugin_path,src)
- log.debug(cmd)
- status, output = utils.run(cmd)
-
-@@ -323,7 +323,7 @@ class PluginHandle(object):
- if digsig_url.startswith('file://'):
- status, filename = utils.download_from_network(digsig_url, digsig_file, True)
- else:
-- cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,digsig_url)
-+ cmd = "%s --create-dirs -O --output-dir %s --location %s" % (curl, self.__plugin_path,digsig_url)
- log.debug(cmd)
- status, output = utils.run(cmd)
- except IOError as e:
diff --git a/hplip-plugin-script.patch b/hplip-plugin-script.patch
deleted file mode 100644
index 9b3c196..0000000
--- a/hplip-plugin-script.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index bb4195c..ddac16a 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -680,6 +680,12 @@ if HPLIP_CLASS_DRIVER
- filterdir=$(cupsfilterdir)
- printpluginsdir=$(cupsfilterdir)
-
-+#
-+# HP Plugin
-+#
-+
-+pkgplugindir=$(bindir)
-+pkgplugin_DATA=hp-plugin
-
- dist_filter_DATA = hpcups hpps dat2drv
- dist_printplugins_DATA = prnt/plugins/hbpl1-arm32.so prnt/plugins/hbpl1-arm64.so prnt/plugins/hbpl1-x86_32.so prnt/plugins/hbpl1-x86_64.so prnt/plugins/lj-arm32.so prnt/plugins/lj-arm64.so prnt/plugins/lj-x86_32.so prnt/plugins/lj-x86_64.so
-diff --git a/configure.in b/configure.in
-index f8f1a28..7fa5d12 100644
---- a/configure.in
-+++ b/configure.in
-@@ -801,5 +801,5 @@ AC_SUBST(udev_sysfs_rules)
- AC_SUBST(epm_class_driver)
- AC_SUBST(epm_class_install)
-
--AC_CONFIG_FILES(Makefile hplip.conf hplip.desktop hp-uiscan.desktop hplip-systray.desktop prnt/drv/hpijs.drv prnt/drv/hpcups.drv hplip.list data/policykit/com.hp.hplip.service)
-+AC_CONFIG_FILES(Makefile hplip.conf hplip.desktop hp-uiscan.desktop hplip-systray.desktop prnt/drv/hpijs.drv prnt/drv/hpcups.drv hplip.list data/policykit/com.hp.hplip.service hp-plugin)
- AC_OUTPUT
diff --git a/hplip-plugin-stdout.patch b/hplip-plugin-stdout.patch
deleted file mode 100644
index 92f8016..0000000
--- a/hplip-plugin-stdout.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/base/os_utils.py b/base/os_utils.py
-index 82a8b42..d918822 100644
---- a/base/os_utils.py
-+++ b/base/os_utils.py
-@@ -26,6 +26,7 @@ import locale
- import stat
- import subprocess
- import shlex
-+import sys
-
- #Local
- from . import logger
-@@ -37,17 +38,22 @@ def execute(cmd):
- try:
- # Use shlex.split to safely split the command into arguments
- args = shlex.split(cmd)
-- process = subprocess.Popen(args,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-+ process = subprocess.Popen(args,stdout=sys.stdout, stderr=sys.stderr, stdin=sys.stdin)
- process.wait()
- stdout, stderr = process.communicate()
-- log.debug(f"Command executed: {cmd}\n{stdout.decode()}")
-+
-+ log.debug(f"Command executed: {cmd}{f'\n{stdout.decode()}' if stdout else ''}")
-+
- if process.returncode != 0:
-- error_message = f"Command failed with return code {process.returncode}: {cmd}\n{stderr.decode()}"
-- log.error(error_message)
-+ log.error(f"Command failed with return code" \
-+ f"{process.returncode}: {cmd}" \
-+ f"{f'\n{stderr.decode()}' if stderr else ''}")
-+
- return process.returncode
- except subprocess.CalledProcessError as e:
-- error_message = f"Command failed with return code {e.returncode}: {cmd}\n{e.stderr.decode()}"
-- log.error(error_message)
-+ log.error(f"Command failed with return code" \
-+ f"{e.returncode}: {cmd}" \
-+ f"{f'\n{e.stderr.decode()}' if e.stderr else ''}")
- return e.returncode
- except Exception as e:
- log.error(f"Error executing command: {cmd}\n{str(e)}")
diff --git a/hplip-plugin-udevissues.patch b/hplip-plugin-udevissues.patch
deleted file mode 100644
index 3a35c6b..0000000
--- a/hplip-plugin-udevissues.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/installer/pluginhandler.py b/installer/pluginhandler.py
-index 1af8d85..5c498ab 100755
---- a/installer/pluginhandler.py
-+++ b/installer/pluginhandler.py
-@@ -403,7 +403,20 @@ class PluginHandle(object):
- log.error("Target file %s does not exist. File copy failed." % trg)
- continue
- else:
-- os.chmod(trg, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
-+ if trg == '/etc/udev/rules.d/S99-2000S1.rules' or \
-+ trg == '/etc/udev/rules.d/40-libsane.rules':
-+ os.chmod(trg, 0o644)
-+ with open(trg, 'r') as udev_f:
-+ content = udev_f.read()
-+
-+ content = content.replace('libsane_rules_end', 'libsane_usb_rules_end')
-+ content = content.replace('GROUP="scanner", ', '')
-+
-+ with open(trg, 'w') as udev_f:
-+ udev_f.write(content)
-+
-+ else:
-+ os.chmod(trg, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
-
- if link:
- if os.path.exists(link):
diff --git a/hplip-pserror-c99.patch b/hplip-pserror-c99.patch
deleted file mode 100644
index 747af3a..0000000
--- a/hplip-pserror-c99.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-prnt/pserror.c: Replace an implicit int with an explicit int
-
-Submitted upstream:
-
-diff --git a/prnt/hpps/pserror.c b/prnt/hpps/pserror.c
-index 114d7e1b5fa364fb..493b49c27917a7e6 100644
---- a/prnt/hpps/pserror.c
-+++ b/prnt/hpps/pserror.c
-@@ -24,7 +24,7 @@ extern char *program ; /* Defined by main program, giving program name */
- void message(int flags, char *format, ...)
- {
- va_list args ;
-- static column = 0 ; /* current screen column for message wrap */
-+ static int column = 0 ; /* current screen column for message wrap */
- char msgbuf[MAX_MESSAGE] ; /* buffer in which to put the message */
- char *bufptr = msgbuf ; /* message buffer pointer */
-
diff --git a/hplip-pstotiff-is-rubbish.patch b/hplip-pstotiff-is-rubbish.patch
index 901e6a2..014e2cf 100644
--- a/hplip-pstotiff-is-rubbish.patch
+++ b/hplip-pstotiff-is-rubbish.patch
@@ -57,8 +57,8 @@ diff -up hplip-3.15.2/fax/filters/pstotiff.pstotiff-is-rubbish hplip-3.15.2/fax/
+TMPFILE=`mktemp /tmp/pstotiff.XXXXXX` || exit 1
+gs -I/usr/share/cups/fonts -sDEVICE=tiffg4 -dMaxStripSize=0 -r204x196 \
+ -dNOPAUSE -dBATCH -dSAFER -dPARANOIDSAFER \
-+ -dSHORTERRORS -dGHOSTSCRIPT -sstdout=%stderr \
-+ -sOutputFile="$TMPFILE" "$IN"
++ -dSHORTERRORS -dWRITESYSTEMDICT -dGHOSTSCRIPT \
++ -sstdout=%stderr -sOutputFile="$TMPFILE" "$IN"
+RET=$?
+cat "$TMPFILE"
+rm -f "$TMPFILE"
diff --git a/hplip-qmsgbox-typos.patch b/hplip-qmsgbox-typos.patch
new file mode 100644
index 0000000..4a64668
--- /dev/null
+++ b/hplip-qmsgbox-typos.patch
@@ -0,0 +1,68 @@
+commit 7623eb3c83d91405471177d750ab0ae8fd05a0d6
+Author: Tomas Korbar
+Date: Mon Oct 1 16:27:36 2018 +0200
+
+ Fix typos in QMessageBox constructors
+
+diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
+index 35bdcb7..267cfba 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/nodevicesdialog.py b/ui5/nodevicesdialog.py
+index 6083f6d..ca86bfc 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/setupdialog.py b/ui5/setupdialog.py
+index fbfe5ac..05e2b1d 100644
+--- a/ui5/setupdialog.py
++++ b/ui5/setupdialog.py
+@@ -1108,8 +1108,7 @@ class SetupDialog(QDialog, Ui_Dialog):
+ if QMessageBox.critical(self,
+ self.windowTitle(),
+ error_text,
+- QMessageBox.Retry | QMessageBox.Default,
+- QMessageBox.Cancel | QMessageBox.Escape,
++ QMessageBox.Retry | QMessageBox.Default | QMessageBox.Cancel | QMessageBox.Escape,
+ QMessageBox.NoButton) == QMessageBox.Cancel:
+ break
+
+@@ -1138,8 +1137,7 @@ class SetupDialog(QDialog, Ui_Dialog):
+ if QMessageBox.critical(self,
+ self.windowTitle(),
+ error_text,
+- QMessageBox.Retry | QMessageBox.Default,
+- QMessageBox.Cancel | QMessageBox.Escape,
++ QMessageBox.Retry | QMessageBox.Default | QMessageBox.Cancel | QMessageBox.Escape,
+ QMessageBox.NoButton) == QMessageBox.Cancel:
+ break
+
diff --git a/hplip-rebase.sh b/hplip-rebase.sh
new file mode 100755
index 0000000..f33edca
--- /dev/null
+++ b/hplip-rebase.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+if [ "$1" == "-h" -o "$1" == "--help" ]
+then
+ echo "Usage: ./hplip-rebase.sh X.Y.Z"
+ echo " X.Y.Z - new hplip version"
+ exit 0
+fi
+
+wget -O hplip-plugin.run http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-$1-plugin.run
+
+if [ $? -gt 0 ]
+then
+ echo "Error while downloading plugin. Check version passed by argument or internet connection. For usage run script with -h or --help argument."
+ rm hplip-plugin.run
+ exit 1
+fi
+rm hplip-plugin.run
+
+fedpkg mockbuild
+if [ $? -gt 0 ]
+then
+ echo "Error during mockbuild."
+ exit 1
+fi
+exit 0
diff --git a/hplip-repack.sh b/hplip-repack.sh
deleted file mode 100755
index a67e7ee..0000000
--- a/hplip-repack.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/bash
-
-
-VERSION=$1
-
-if [ "${VERSION:="*"}" == "*" ]
-then
- echo "Define a version of hplip as an argument."
- exit 1
-fi
-
-# extract the original tarball
-tar -xaf hplip-$VERSION.tar.gz || exit 1
-
-# remove unwanted files - license-related ones reported here https://bugs.launchpad.net/hplip/+bug/2028938
-rm hplip-$VERSION/locatedriver
-
-# compress into a new tarball
-tar -cjvf hplip-$VERSION-repack.tar.gz hplip-$VERSION || exit 1
-
-# check whether plugin is available
-wget -O hplip-plugin.run https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-$1-plugin.run || wget -O hplip-plugin.run https://developers.hp.com/sites/default/files/hplip-$1-plugin.run || exit 1
-
-# check whether the file is sane
-file --mime hplip-plugin.run | grep 'x-shellscript' || exit 1
-
-echo "hplip-${VERSION}-repack.tar.gz is prepared for uploading..."
-
-exit 0
-
-# upload a new source tarball
-#fedpkg new-sources hplip-$VERSION-repack.tar.gz || exit 1
diff --git a/hplip-revert-plugins.patch b/hplip-revert-plugins.patch
deleted file mode 100644
index 823fb14..0000000
--- a/hplip-revert-plugins.patch
+++ /dev/null
@@ -1,1178 +0,0 @@
-diff -up hplip-3.20.9/data/models/models.dat.revert-plugins hplip-3.20.9/data/models/models.dat
---- hplip-3.20.9/data/models/models.dat.revert-plugins 2020-10-02 07:44:26.873416731 +0200
-+++ hplip-3.20.9/data/models/models.dat 2020-10-02 08:49:32.418280169 +0200
-@@ -2123,7 +2123,7 @@ ppd-name=hp-laserjet_100_color_mfp_m175-
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=64
- power-settings=0
- pq-diag-type=0
-@@ -3373,7 +3373,7 @@ model1=HP LaserJet Pro MFP M125r
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -3416,7 +3416,7 @@ model1=HP LaserJet Pro MFP M125s
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -3459,7 +3459,7 @@ model1=HP LaserJet Pro MFP M125a
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -3502,7 +3502,7 @@ model1=HP LaserJet Pro MFP M125nw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -3545,7 +3545,7 @@ model1=HP LaserJet Pro MFP M125rnw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -3588,7 +3588,7 @@ model1=HP LaserJet Pro MFP M125nr
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -3631,7 +3631,7 @@ model1=HP LaserJet Pro MFP M126a
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -3674,7 +3674,7 @@ model1=HP LaserJet Pro MFP M126nw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -3717,7 +3717,7 @@ model1=HP LaserJet Pro MFP M127fp
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -3760,7 +3760,7 @@ model1=HP LaserJet Pro MFP M127fn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -3846,7 +3846,7 @@ model1=HP LaserJet Pro MFP M128fn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -3889,7 +3889,7 @@ model1=HP LaserJet Pro MFP M128fp
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -3932,7 +3932,7 @@ model1=HP LaserJet Pro MFP M128fw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -4225,7 +4225,7 @@ model1=HP Color LaserJet Pro MPF M177fw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -4277,8 +4277,8 @@ model1=HP LaserJet Pro 200 color MFP M27
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m276-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4331,8 +4331,8 @@ model1=HP LaserJet 200 Color MFP M275s
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m275-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4385,8 +4385,8 @@ model1=HP LaserJet 200 Color MFP M275u
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m275-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4439,8 +4439,8 @@ model1=HP LaserJet 200 Color MFP M275t
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m275-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4492,8 +4492,8 @@ linefeed-cal-type=0
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m276-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4545,8 +4545,8 @@ linefeed-cal-type=0
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m276-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4598,8 +4598,8 @@ linefeed-cal-type=0
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m276-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4652,8 +4652,8 @@ model1=HP LaserJet Pro 200 color MFP M27
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m276-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4705,8 +4705,8 @@ linefeed-cal-type=0
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m276-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4758,8 +4758,8 @@ linefeed-cal-type=0
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m276-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4811,8 +4811,8 @@ linefeed-cal-type=0
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m276-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4864,8 +4864,8 @@ linefeed-cal-type=0
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m276-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4917,8 +4917,8 @@ linefeed-cal-type=0
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m276-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -4970,8 +4970,8 @@ linefeed-cal-type=0
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m276-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -5023,8 +5023,8 @@ linefeed-cal-type=0
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m276-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -5077,8 +5077,8 @@ model1=HP LaserJet 200 Color MFP M275nw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_200_colormfp_m275-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -6214,7 +6214,7 @@ model1=HP LaserJet Pro MFP M225rdn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=2112
- power-settings=0
- ppd-name=hp-laserjet_pro_mfp_m225_m226-ps.ppd
-@@ -6257,7 +6257,7 @@ model1=HP LaserJet Pro MFP M225dw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=2112
- power-settings=0
- ppd-name=hp-laserjet_pro_mfp_m225_m226-ps.ppd
-@@ -6298,7 +6298,7 @@ model1=HP LaserJet Pro MFP M225dn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=2112
- power-settings=0
- ppd-name=hp-laserjet_pro_mfp_m225_m226-ps.ppd
-@@ -6339,7 +6339,7 @@ model1=HP LaserJet Pro MFP M226dw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=2112
- power-settings=0
- ppd-name=hp-laserjet_pro_mfp_m225_m226-ps.ppd
-@@ -6381,7 +6381,7 @@ model1=HP LaserJet Pro MFP M226dn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=2112
- power-settings=0
- ppd-name=hp-laserjet_pro_mfp_m225_m226-ps.ppd
-@@ -6830,8 +6830,8 @@ model1=HP LaserJet 300 Color MFP M375nw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-lj_300_400_color_mfp_m375_m475-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -8227,8 +8227,8 @@ model1=HP LaserJet 400 Color MFP M475dw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-lj_300_400_color_mfp_m375_m475-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -8371,8 +8371,8 @@ model1=HP LaserJet 400 MFP M425dw
- monitor-type=1
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_400_mfp_m425-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -8416,8 +8416,8 @@ model1=HP Laserjet 400 MFP M425dn
- monitor-type=1
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_400_mfp_m425-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -8804,8 +8804,8 @@ model1=HP LaserJet 400 Color MFP M475dn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-lj_300_400_color_mfp_m375_m475-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -9115,8 +9115,8 @@ model1=HP LaserJet Pro MFP M435nw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- pq-diag-type=0
- r-type=0
-@@ -9738,8 +9738,8 @@ model1=HP Color Laserjet Pro MFP M476dw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-color_laserjet_pro_mfp_m476-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -9780,8 +9780,8 @@ model1=HP Color Laserjet Pro MFP M476nw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-color_laserjet_pro_mfp_m476-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -9822,8 +9822,8 @@ model1=HP Color Laserjet Pro MFP M476dn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-color_laserjet_pro_mfp_m476-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -10118,8 +10118,8 @@ model1=HP LaserJet Pro 500 color MFP M57
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_500_color_mfp_m570-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -10172,8 +10172,8 @@ model1=HP LaserJet Pro 500 color MFP M57
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_500_color_mfp_m570-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -10747,8 +10747,8 @@ model1=HP LaserJet Pro M521dn Multifunct
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_mfp_m521-ps.ppd
- family-ppd=hp-postscript-laserjet.ppd
-@@ -10792,8 +10792,8 @@ model1=HP LaserJet Pro M521dw Multifunct
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_mfp_m521-ps.ppd
- family-ppd=hp-postscript-laserjet.ppd
-@@ -18353,7 +18353,7 @@ model1=HP LaserJet Pro CP1025 Color Prin
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -18989,7 +18989,7 @@ model1=HP LaserJet Professional P 1102w
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -19032,7 +19032,7 @@ model1=HP Laserjet Professional P1106w P
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -19075,7 +19075,7 @@ model1=HP Laserjet Professional P1106 Pr
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -19118,7 +19118,7 @@ model1=HP LaserJet Professional P1107 Pr
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -19161,7 +19161,7 @@ model1=HP LaserJet Professional P1107w P
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -19204,7 +19204,7 @@ model1=HP Laserjet Professional P1108w P
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -19247,7 +19247,7 @@ model1=HP Laserjet Professional P1108 Pr
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -19290,7 +19290,7 @@ model1=HP LaserJet Professional P1109w P
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -19333,7 +19333,7 @@ model1=HP LaserJet Professional P1109 Pr
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -19683,7 +19683,7 @@ model2=HP LaserJet Professional M1132s M
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -19726,7 +19726,7 @@ model1=HP Laserjet Professional M1136 Mu
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -19769,7 +19769,7 @@ model1=HP LaserJet Professional M1137 Mu
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -19812,7 +19812,7 @@ model1=HP LaserJet Professional M1138 Mu
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -19855,7 +19855,7 @@ model1=HP LaserJet Professional M1139 Mu
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -20447,7 +20447,7 @@ model1=HP LaserJet Professional M1212nf
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -20490,7 +20490,7 @@ model1=HP LaserJet Professional M1213nf
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -20533,7 +20533,7 @@ model1=HP LaserJet Professional M1214nfh
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -20675,7 +20675,7 @@ model1=HP LaserJet Professional M1216nfh
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -20718,7 +20718,7 @@ model1=HP Color LaserJet CP1217 Printer
- monitor-type=0
- panel-check-type=1
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -20813,7 +20813,7 @@ model1=HP Laserjet M1210 MFP Series
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -20903,7 +20903,7 @@ model1=HP HotSpot LaserJet Pro M1218nfs
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -20945,7 +20945,7 @@ linefeed-cal-type=0
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -20987,7 +20987,7 @@ linefeed-cal-type=0
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -21030,7 +21030,7 @@ model1=HP LaserJet Professional M1219nf
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -22320,8 +22320,8 @@ model1=HP LaserJet Professional CM1411fn
- monitor-type=0
- panel-check-type=1
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_cm1410_series-ps.ppd
- pq-diag-type=0
-@@ -22373,8 +22373,8 @@ model1=HP LaserJet Professional CM1412fn
- monitor-type=0
- panel-check-type=1
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_cm1410_series-ps.ppd
- pq-diag-type=0
-@@ -22426,8 +22426,8 @@ model1=HP LaserJet Professional CM1413fn
- monitor-type=0
- panel-check-type=1
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_cm1410_series-ps.ppd
- pq-diag-type=0
-@@ -22479,8 +22479,8 @@ model1=HP LaserJet Professional CM1415fn
- monitor-type=0
- panel-check-type=1
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_cm1410_series-ps.ppd
- pq-diag-type=0
-@@ -22532,8 +22532,8 @@ model1=HP LaserJet Professional CM1415fn
- monitor-type=0
- panel-check-type=1
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_cm1410_series-ps.ppd
- pq-diag-type=0
-@@ -22585,8 +22585,8 @@ model1=HP LaserJet Professional CM1416fn
- monitor-type=0
- panel-check-type=1
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_cm1410_series-ps.ppd
- pq-diag-type=0
-@@ -22638,8 +22638,8 @@ model1=HP LaserJet Professional CM1417fn
- monitor-type=0
- panel-check-type=1
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_cm1410_series-ps.ppd
- pq-diag-type=0
-@@ -22691,8 +22691,8 @@ model1=HP LaserJet Professional CM1418fn
- monitor-type=0
- panel-check-type=1
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_cm1410_series-ps.ppd
- pq-diag-type=0
-@@ -23889,8 +23889,8 @@ model1=HP LaserJet M1536dnf MFP
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_m1530_mfp_series-ps.ppd
- family-ppd=hp-postscript-laserjet.ppd
-@@ -23934,8 +23934,8 @@ model1=HP LaserJet M1537dnf MFP
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_m1530_mfp_series-ps.ppd
- pq-diag-type=0
-@@ -23978,8 +23978,8 @@ model1=HP LaserJet M1538dnf MFP
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_m1530_mfp_series-ps.ppd
- pq-diag-type=0
-@@ -24022,8 +24022,8 @@ model1=HP LaserJet M1539dnf MFP
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_m1530_mfp_series-ps.ppd
- pq-diag-type=0
-@@ -24109,7 +24109,7 @@ model1=HP LaserJet Professional P1567
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -24152,7 +24152,7 @@ model1=HP LaserJet Professional P1568
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -24195,7 +24195,7 @@ model1=HP LaserJet Professional P1569
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -24631,7 +24631,7 @@ model1=HP LaserJet Professional P1606dn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -24674,7 +24674,7 @@ model1=HP LaserJet Professional P1607dn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -24717,7 +24717,7 @@ model1=HP LaserJet Professional P1608dn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -24760,7 +24760,7 @@ model1=HP LaserJet Professional P1609dn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -29946,8 +29946,8 @@ ppd-name=hp-color_laserjet_2800-ps.ppd
- monitor-type=0
- panel-check-type=1
- pcard-type=2
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- pq-diag-type=0
- r-type=0
-@@ -30068,8 +30068,8 @@ ppd-name=hp-color_laserjet_2820-ps.ppd
- monitor-type=0
- panel-check-type=1
- pcard-type=2
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- pq-diag-type=0
- r-type=0
-@@ -53138,8 +53138,8 @@ model1=HP Color LaserJet MFP M277n
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-color_laserjet_mfp_m277
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -53192,8 +53192,8 @@ model1=HP Color LaserJet MFP M277dw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-color_laserjet_pro_mfp_m277
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -53933,8 +53933,8 @@ model1=HP Color LaserJet Pro MFP M274n
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-color_laserjet_mfp_m274-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -54716,8 +54716,8 @@ model1=HP Laserjet Pro MFP M426fdn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=laserjet_mfp_m426_m427
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -54761,8 +54761,8 @@ model1=HP Laserjet Pro MFP M426fdw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=laserjet_mfp_m426_m427
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -54806,8 +54806,8 @@ model1=HP Laserjet Pro MFP M427dn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=laserjet_mfp_m426_m427
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -54851,8 +54851,8 @@ model1=HP Laserjet Pro MFP M427fdw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=laserjet_mfp_m426_m427
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -54896,8 +54896,8 @@ model1=HP Laserjet Pro MFP M426dw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=laserjet_mfp_m426_m427
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -54941,8 +54941,8 @@ model1=HP Laserjet Pro MFP M427dw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-laserjet_mfp_m426_m427-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -55271,8 +55271,8 @@ model1=HP Color Laserjet Pro MFP M477 fn
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-color_laserjet_pro_mfp_m477-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -55313,8 +55313,8 @@ model1=HP Color Laserjet Pro MFP M477 fd
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=color_laserjet_pro_mfp_m477d
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -55355,8 +55355,8 @@ model1=HP Color Laserjet Pro MFP M477 fd
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-color_laserjet_pro_mfp_m477d-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -55437,7 +55437,7 @@ model1=HP LaserJet Pro MFP M127fs
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=65
- power-settings=0
- pq-diag-type=0
-@@ -56513,8 +56513,8 @@ model1=HP Color Laserjet MFP M377 fnw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-color_laserjet_pro_mfp_m377-ps.ppd
- family-ppd=hp-postscript-laserjet-pro.ppd
-@@ -57475,8 +57475,8 @@ model1=HP Color LaserJet MFP M277c6
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- ppd-name=hp-color_laserjet_pro_mfp_m277-ps.ppd
- pq-diag-type=0
-@@ -60453,7 +60453,7 @@ model1=HP LaserJet Pro MFP M26a
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -60493,7 +60493,7 @@ model1=HP LaserJet Pro MFP M26nw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -60653,7 +60653,7 @@ model1=HP LaserJet Pro MFP M27cnw
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
-+plugin=1
- plugin-reason=1
- power-settings=0
- pq-diag-type=0
-@@ -65387,8 +65387,8 @@ model1=HP Smart Tank Plus 570 series
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- pq-diag-type=0
- r-type=0
-@@ -67470,8 +67470,8 @@ model2=HP DeskJet Ink Advantage 2700 All
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- pq-diag-type=0
- r-type=0
-@@ -67510,8 +67510,8 @@ model1=HP DeskJet Plus 4100 All-in-One P
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- pq-diag-type=0
- r-type=0
-@@ -67632,8 +67632,8 @@ model2=HP DeskJet Ink Advantage 2300 All
- monitor-type=0
- panel-check-type=0
- pcard-type=0
--plugin=0
--plugin-reason=0
-+plugin=1
-+plugin-reason=64
- power-settings=0
- pq-diag-type=0
- r-type=0
diff --git a/hplip-scan-hpaio-include.patch b/hplip-scan-hpaio-include.patch
deleted file mode 100644
index 79d1d94..0000000
--- a/hplip-scan-hpaio-include.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-scam/sane/hpaio.c: Include orblite.h for more function prototypes
-
-Otherwise the build fails with compilers which do not support
-implicit function declarations.
-
-Submitted upstream:
-
-diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c
-index d342626822fc2190..57d1ddea32fb5816 100644
---- a/scan/sane/hpaio.c
-+++ b/scan/sane/hpaio.c
-@@ -50,6 +50,7 @@
- #include "sclpml.h"
- #include "escl.h"
- #include "io.h"
-+#include "orblite.h"
- #include "orblitei.h"
-
-
diff --git a/hplip-scan-orblite-c99.patch b/hplip-scan-orblite-c99.patch
deleted file mode 100644
index c921f22..0000000
--- a/hplip-scan-orblite-c99.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c
-index ba86640..2eb7aba 100644
---- a/scan/sane/orblite.c
-+++ b/scan/sane/orblite.c
-@@ -20,6 +20,7 @@
- #include "orblitei.h"
- #include "orblite.h"//Added New
- #include
-+#include
- #include "utils.h"
- #include "io.h"
-
-@@ -195,7 +196,7 @@ bugout:
-
- static int bb_unload(SANE_THandle ps)
- {
-- _DBG("Calling orblite bb_unload: \n");
-+ DBG("Calling orblite bb_unload: \n");
- if (ps->bb_handle)
- {
- dlclose(ps->bb_handle);
diff --git a/hplip-scan-size.patch b/hplip-scan-size.patch
deleted file mode 100644
index 1ff8cb3..0000000
--- a/hplip-scan-size.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff --git a/scan.py b/scan.py
-index b262ef2..cb0ffc1 100755
---- a/scan.py
-+++ b/scan.py
-@@ -83,7 +83,7 @@ edge_erase_value = 0
- contrast = 0
- set_contrast = False
-
--page_size = ''
-+page_size = 'a4'
- size_desc = ''
- page_units = 'mm'
- default_res = 300
-@@ -1615,7 +1615,7 @@ try:
- else:
- im = im.convert("RGB")
-
-- #im = imageprocessing.resize_to_scan_area(im,PAGE_SIZES[size],res)
-+ #im = imageprocessing.resize_to_scan_area(im,PAGE_SIZES[page_size],res)
- if barcode_count>0:
- if barcode_first_occurence == True:
- if barcode_first_page == False:
-@@ -1718,12 +1718,12 @@ try:
- #so that the output image size matches with the input scan area
- #for Flatbad
- if im:
-- im = imageprocessing.resize_to_scan_area(im,PAGE_SIZES[size],res)
-+ im = imageprocessing.resize_to_scan_area(im,PAGE_SIZES[page_size],res)
- """
- #for ADF
- for Image_file in adf_page_files:
- image = Image.open(Image_file)
-- resized_image = imageprocessing.resize_to_scan_area(image,PAGE_SIZES[size],res)
-+ resized_image = imageprocessing.resize_to_scan_area(image,PAGE_SIZES[page_size],res)
- resized_image.save(Image_file)
- """
- if adf and (save_file =='jpg' or save_file == 'png' or save_file == 'tiff' or save_file == 'pdf' or save_file == 'bmp'):
diff --git a/hplip-scan-tmp.patch b/hplip-scan-tmp.patch
index 552a112..39f2b96 100644
--- a/hplip-scan-tmp.patch
+++ b/hplip-scan-tmp.patch
@@ -1,18 +1,18 @@
-diff -up hplip-3.18.12/scan.py.scan-tmp hplip-3.18.12/scan.py
---- hplip-3.18.12/scan.py.scan-tmp 2019-01-08 12:48:20.194815147 +0100
-+++ hplip-3.18.12/scan.py 2019-01-08 12:50:47.942620000 +0100
-@@ -1887,7 +1887,7 @@ try:
+diff -up hplip-3.15.2/scan.py.scan-tmp hplip-3.15.2/scan.py
+--- hplip-3.15.2/scan.py.scan-tmp 2015-02-04 15:27:20.423562999 +0100
++++ hplip-3.15.2/scan.py 2015-02-04 15:34:59.170978476 +0100
+@@ -1080,7 +1080,7 @@ try:
if ('editor' in dest or 'viewer' in dest or 'email' in dest or 'print' in dest) \
and not file_saved:
- output_fd, output = utils.make_temp_file(suffix='.png')
+ output_fd, output = utils.make_temp_file(dir='/var/tmp', suffix='.png')
try:
- '''pyPlatform = platform.python_version()
- num = pyPlatform.split('.')
-diff -up hplip-3.18.12/scan/sane.py.scan-tmp hplip-3.18.12/scan/sane.py
---- hplip-3.18.12/scan/sane.py.scan-tmp 2018-12-03 08:10:22.000000000 +0100
-+++ hplip-3.18.12/scan/sane.py 2019-01-08 12:48:20.194815147 +0100
+ im.save(output)
+ except IOError as e:
+diff -up hplip-3.15.2/scan/sane.py.scan-tmp hplip-3.15.2/scan/sane.py
+--- hplip-3.15.2/scan/sane.py.scan-tmp 2015-01-29 13:20:21.000000000 +0100
++++ hplip-3.15.2/scan/sane.py 2015-02-04 15:27:20.424562984 +0100
@@ -425,7 +425,8 @@ class ScanThread(threading.Thread):
self.dev = device
self.update_queue = update_queue
diff --git a/hplip-sclpml-strcasestr.patch b/hplip-sclpml-strcasestr.patch
deleted file mode 100644
index daf86c8..0000000
--- a/hplip-sclpml-strcasestr.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Switch the whole libsane-hpaio to get proper definition of strcasestr() used in
-sclpml.c
-
-diff --git a/Makefile.am b/Makefile.am
-index 15d953a..7105f74 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -73,7 +73,7 @@ endif
- # The following is a interlibrary dependency that must be compiled first.
- libsane_hpaio_la_LIBADD = libhpip.la libhpmud.la libhpipp.la $(DBUS_LIBS) -lcups -ldl
- #libsane_hpaio_la_CFLAGS = -DWITH_NONAMESPACES -DSOAP_DEBUG
--libsane_hpaio_la_CFLAGS = $(DBUS_CFLAGS) -Iprotocol
-+libsane_hpaio_la_CFLAGS = $(DBUS_CFLAGS) -Iprotocol -D_GNU_SOURCE
-
- if NETWORK_BUILD
- libsane_hpaio_la_LIBADD += libhpdiscovery.la
diff --git a/hplip-snmp-quirks.patch b/hplip-snmp-quirks.patch
index 3f7be41..e31b698 100644
--- a/hplip-snmp-quirks.patch
+++ b/hplip-snmp-quirks.patch
@@ -1,18 +1,18 @@
-diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.snmp-quirks hplip-3.19.6/prnt/drv/hpcups.drv.in
---- hplip-3.19.6/prnt/drv/hpcups.drv.in.snmp-quirks 2019-07-12 08:38:36.362527348 +0200
-+++ hplip-3.19.6/prnt/drv/hpcups.drv.in 2019-07-12 08:46:28.236417835 +0200
-@@ -10334,6 +10334,8 @@ Manufacturer "HP"
+diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.snmp-quirks hplip-3.17.11/prnt/drv/hpcups.drv.in
+--- hplip-3.17.11/prnt/drv/hpcups.drv.in.snmp-quirks 2017-12-07 15:21:34.149138400 +0100
++++ hplip-3.17.11/prnt/drv/hpcups.drv.in 2017-12-07 15:33:32.443211804 +0100
+@@ -10831,6 +10831,8 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
Attribute "NickName" "" "HP Officejet Pro 8500 a909a, hpcups $Version"
- Attribute "ShortNickName" "" "HP OJ Pro 8500 a909a hpijs"
+ Attribute "ShortNickName" "" "HP Officejet Pro 8500 a909a hpijs"
Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet pro 8500 a909a;DES:officejet pro 8500 a909a;"
+ // This device lies about its supplies capacity.
+ Attribute "cupsSNMPQuirks" "" "capacity"
PCFileName "hp-officejet_pro_8500_a909a.ppd"
Attribute "Product" "" "(HP Officejet Pro 8500 All-in-one Printer - a909a)"
}
-@@ -10342,6 +10344,8 @@ Manufacturer "HP"
+@@ -10839,6 +10841,8 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
Attribute "NickName" "" "HP Officejet Pro 8500 a909g, hpcups $Version"
- Attribute "ShortNickName" "" "HP OJ Pro 8500 a909g hpijs"
+ Attribute "ShortNickName" "" "HP Officejet Pro 8500 a909g hpijs"
Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet pro 8500 a909g;DES:officejet pro 8500 a909g;"
+ // This device lies about its supplies capacity.
+ Attribute "cupsSNMPQuirks" "" "capacity"
diff --git a/hplip-strncpy.patch b/hplip-strncpy.patch
index cbd262d..eac29b8 100644
--- a/hplip-strncpy.patch
+++ b/hplip-strncpy.patch
@@ -1,7 +1,7 @@
-diff -up hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp
---- hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp.strncpy 2025-04-11 10:16:00.438702562 +0200
-+++ hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp 2025-04-11 10:21:25.088096376 +0200
-@@ -211,6 +211,7 @@ HPCupsFilter::HPCupsFilter() : m_pPrinte
+diff -up hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp
+--- hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp.strncpy 2015-01-21 16:52:44.066497631 +0000
++++ hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp 2015-01-21 16:59:46.216434376 +0000
+@@ -203,6 +203,7 @@ HPCupsFilter::HPCupsFilter() : m_pPrinte
adj_k_width = 0;
black_raster = NULL;
color_raster = NULL;
@@ -9,7 +9,7 @@ diff -up hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.25.2/prnt/hpc
}
HPCupsFilter::~HPCupsFilter()
-@@ -428,15 +429,15 @@ DRIVER_ERROR HPCupsFilter::startPage (cu
+@@ -384,9 +385,9 @@ DRIVER_ERROR HPCupsFilter::startPage (cu
m_JA.media_attributes.physical_height = cups_header->PageSize[1];
m_JA.media_attributes.printable_width = ((cups_header->ImagingBoundingBox[2]-cups_header->ImagingBoundingBox[0]) * horz_res) / 72;
m_JA.media_attributes.printable_height = ((cups_header->ImagingBoundingBox[3]-cups_header->ImagingBoundingBox[1]) * vert_res) / 72;
@@ -20,18 +20,11 @@ diff -up hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.25.2/prnt/hpc
+ strncpy(m_JA.media_attributes.MediaTypeName, cups_header->MediaType, sizeof(m_JA.media_attributes.MediaTypeName)-1);
+ strncpy(m_JA.quality_attributes.hbpl1_print_quality, cups_header->OutputType, sizeof(m_JA.quality_attributes.hbpl1_print_quality)-1);
m_JA.color_mode = cups_header->cupsRowStep;
-
- if (m_JA.media_attributes.PageSizeName[0] == '\0') {
- // Copy the value of cups_header->cupsPageSizeName if it isnot null
- if (cups_header->cupsPageSizeName != nullptr) {
-- strncpy(m_JA.media_attributes.PageSizeName, cups_header->cupsPageSizeName, sizeof(m_JA.media_attributes.PageSizeName));
-+ strncpy(m_JA.media_attributes.PageSizeName, cups_header->cupsPageSizeName, sizeof(m_JA.media_attributes.PageSizeName) - 1);
- }
- }
}
-diff -up hplip-3.25.2/prnt/hpijs/hpijs.cpp.strncpy hplip-3.25.2/prnt/hpijs/hpijs.cpp
---- hplip-3.25.2/prnt/hpijs/hpijs.cpp.strncpy 2025-04-11 10:16:00.434453252 +0200
-+++ hplip-3.25.2/prnt/hpijs/hpijs.cpp 2025-04-11 10:16:00.501228045 +0200
+ else {
+diff -up hplip-3.14.10/prnt/hpijs/hpijs.cpp.strncpy hplip-3.14.10/prnt/hpijs/hpijs.cpp
+--- hplip-3.14.10/prnt/hpijs/hpijs.cpp.strncpy 2015-01-21 17:00:03.225512410 +0000
++++ hplip-3.14.10/prnt/hpijs/hpijs.cpp 2015-01-21 17:04:59.308870785 +0000
@@ -605,7 +605,7 @@ int main (int argc, char *argv[], char *
}
@@ -41,9 +34,9 @@ diff -up hplip-3.25.2/prnt/hpijs/hpijs.cpp.strncpy hplip-3.25.2/prnt/hpijs/hpijs
#ifdef HAVE_LIBHPIP
char *pDev;
-diff -up hplip-3.25.2/prnt/hpijs/hpijsfax.cpp.strncpy hplip-3.25.2/prnt/hpijs/hpijsfax.cpp
---- hplip-3.25.2/prnt/hpijs/hpijsfax.cpp.strncpy 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/prnt/hpijs/hpijsfax.cpp 2025-04-11 10:16:00.501403513 +0200
+diff -up hplip-3.14.10/prnt/hpijs/hpijsfax.cpp.strncpy hplip-3.14.10/prnt/hpijs/hpijsfax.cpp
+--- hplip-3.14.10/prnt/hpijs/hpijsfax.cpp.strncpy 2015-01-21 17:05:06.585904171 +0000
++++ hplip-3.14.10/prnt/hpijs/hpijsfax.cpp 2015-01-21 17:05:15.787946389 +0000
@@ -282,7 +282,7 @@ int hpijsFaxServer (int argc, char **arg
char user_name[32]={0,};
diff --git a/hplip-systray-blockerror.patch b/hplip-systray-blockerror.patch
deleted file mode 100644
index 92a8cdf..0000000
--- a/hplip-systray-blockerror.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/systray.py b/systray.py
-index 07db0fa..3a35b30 100644
---- a/systray.py
-+++ b/systray.py
-@@ -89,7 +89,14 @@ if __name__ == '__main__':
- log.debug("Creating pipe: hpssd (%d) ==> systemtray (%d)" % (w1, r1))
-
- parent_pid = os.getpid()
-- child_pid1 = os.fork()
-+ try:
-+ child_pid1 = os.fork()
-+ except BlockingIOErrror as e:
-+ log.error("hp-systray: error during fork - %s" % e)
-+ os.close(w1)
-+ os.close(r1)
-+ mod.unlockInstance()
-+ sys.exit(1)
-
- if child_pid1:
- # parent (UI)
diff --git a/hplip-typo.patch b/hplip-typo.patch
index 4d93801..f8a6aca 100644
--- a/hplip-typo.patch
+++ b/hplip-typo.patch
@@ -1,6 +1,6 @@
-diff -up hplip-3.20.11/firmware.py.typo hplip-3.20.11/firmware.py
---- hplip-3.20.11/firmware.py.typo 2021-02-03 10:53:34.311743805 +0100
-+++ hplip-3.20.11/firmware.py 2021-02-03 10:54:13.229386257 +0100
+diff -up hplip-3.17.11/firmware.py.typo hplip-3.17.11/firmware.py
+--- hplip-3.17.11/firmware.py.typo 2018-01-12 16:50:10.338366719 +0100
++++ hplip-3.17.11/firmware.py 2018-01-12 16:50:33.563184939 +0100
@@ -99,7 +99,7 @@ try:
if mode == GUI_MODE and (ui_toolkit == 'qt4' or ui_toolkit == 'qt5'):
if not utils.canEnterGUIMode4():
diff --git a/hplip-ui-optional.patch b/hplip-ui-optional.patch
index d724a30..f7cbed2 100644
--- a/hplip-ui-optional.patch
+++ b/hplip-ui-optional.patch
@@ -1,96 +1,76 @@
-diff --git a/base/module.py b/base/module.py
-index dd3efa3..04ac5b8 100644
---- a/base/module.py
-+++ b/base/module.py
-@@ -432,6 +432,12 @@ class Module(object):
- if show_usage is not None:
- sys.exit(0)
-
-+ if mode == GUI_MODE:
-+ if not utils.canEnterGUIMode4():
-+ log.warn("GUI mode not available - switching to interactive mode.")
-+ mode = INTERACTIVE_MODE
-+ ui_toolkit = 'none'
-+
- self.mode = mode
- return opts, device_uri, printer_name, mode, ui_toolkit, lang
-
-diff --git a/base/utils.py b/base/utils.py
-index 98437a3..9b8813b 100644
---- a/base/utils.py
-+++ b/base/utils.py
-@@ -722,6 +722,15 @@ def canEnterGUIMode4(): # qt4
- log.warn(e)
- return False
-
-+ try:
-+ import ui4
-+ except ImportError:
-+ try:
-+ import ui5.setupdialog
-+ except ImportError as e:
-+ log.warn(e)
-+ return False
-+
- return True
-
-
-@@ -734,6 +743,11 @@ def checkPyQtImport(): # qt3
+diff -up hplip-3.18.4/base/utils.py.ui-optional hplip-3.18.4/base/utils.py
+--- hplip-3.18.4/base/utils.py.ui-optional 2018-04-25 12:34:16.000000000 +0200
++++ hplip-3.18.4/base/utils.py 2018-04-26 09:27:26.487258888 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ # -*- coding: utf-8 -*-
+ #
+ # (c) Copyright 2001-2015 HP Development Company, L.P.
+@@ -733,6 +733,13 @@ def checkPyQtImport(): # qt3
if os.getenv('DISPLAY') and os.getenv('STARTED_FROM_MENU'):
no_qt_message_gtk()
++ # hplip-gui sub-package (Fedora)
+ try:
+ import ui
+ except ImportError:
++ log.error("hplip-gui not installed. GUI not available. Exiting.")
+ return False
+
log.error("PyQt not installed. GUI not available. Exiting.")
return False
-@@ -781,11 +795,13 @@ def checkPyQtImport4():
- import PyQt4
- import ui4
- except ImportError:
-- import PyQt5
-- import ui5
-- else:
+@@ -783,7 +790,8 @@ def checkPyQtImport4():
+ import PyQt5
+ import ui5
+ else:
- log.debug("HPLIP is not installed properly or is installed without graphical support. Please reinstall HPLIP again")
-- return False
-+ try:
-+ import PyQt5
-+ import ui5.setupdialog
-+ except ImportError:
-+ log.debug('GUI not available.')
-+ return False
-+
++ # hplip-gui sub-package (Fedora) requires python3-qt5
++ log.error("Install the hplip-gui package for graphical support.")
+ return False
return True
- # def checkPyQtImport5():
-diff --git a/fab.py b/fab.py
-index 5577af5..194ceed 100755
---- a/fab.py
-+++ b/fab.py
-@@ -776,14 +776,15 @@ mod.setUsage(module.USAGE_FLAG_NONE)
- opts, device_uri, printer_name, mode, ui_toolkit, loc = \
- mod.parseStdOpts(handle_device_printer=False)
+@@ -2434,6 +2442,7 @@ def checkPyQtImport45():
+ except ImportError as e:
+ log.debug(e)
--if ui_toolkit == 'qt3':
-- if not utils.canEnterGUIMode():
-- log.error("%s GUI mode requires GUI support (try running with --qt4). Entering interactive mode." % __mod__)
-- mode = INTERACTIVE_MODE
--else:
-- if not utils.canEnterGUIMode4():
-- log.error("%s GUI mode requires GUI support (try running with --qt3). Entering interactive mode." % __mod__)
-- mode = INTERACTIVE_MODE
-+if ui_toolkit != 'none':
-+ if ui_toolkit == 'qt3':
-+ if not utils.canEnterGUIMode():
-+ log.error("%s GUI mode requires GUI support (try running with --qt4). Entering interactive mode." % __mod__)
-+ mode = INTERACTIVE_MODE
-+ else:
-+ if not utils.canEnterGUIMode4():
-+ log.error("%s GUI mode requires GUI support (try running with --qt3). Entering interactive mode." % __mod__)
-+ mode = INTERACTIVE_MODE
++ log.error("Install the hplip-gui package for graphical support.")
+ raise ImportError("GUI Modules PyQt4 and PyQt5 are not installed")
- if mode == GUI_MODE:
+@@ -2455,6 +2464,7 @@ def import_dialog(ui_toolkit):
+ return (QApplication, "ui4")
+ except ImportError as e:
+ log.error(e)
++ log.error("Unable to load Qt support. Is hplip-gui package installed?")
+ sys.exit(1)
+ elif ui_toolkit == "qt5":
+ try:
+@@ -2463,9 +2473,7 @@ def import_dialog(ui_toolkit):
+ return (QApplication, "ui5")
+ except ImportError as e:
+ log.error(e)
+- sys.exit(1)
+- else:
+- log.error("Unable to load Qt support. Is it installed?")
++ log.error("Unable to load Qt support. Is hplip-gui package installed?")
+ sys.exit(1)
+
+
+diff -up hplip-3.18.4/plugin.py.ui-optional hplip-3.18.4/plugin.py
+--- hplip-3.18.4/plugin.py.ui-optional 2018-05-11 10:06:02.925579534 +0200
++++ hplip-3.18.4/plugin.py 2018-05-11 10:25:08.576302069 +0200
+@@ -252,7 +252,11 @@ if mode == GUI_MODE:
+ # clean_exit(1)
+
+ QApplication, ui_package = utils.import_dialog(ui_toolkit)
+- ui = import_module(ui_package + ".plugindialog")
++ try:
++ ui = import_module(ui_package + ".plugindialog")
++ except ModuleNotFoundError:
++ log.error("hplip-gui not installed. GUI not available. Exiting.")
++ clean_exit(1)
+ if ui_toolkit == "qt5":
+ from PyQt5.QtWidgets import QMessageBox
+ elif ui_toolkit == "qt4":
diff --git a/hplip-uiscan-help.patch b/hplip-uiscan-help.patch
deleted file mode 100644
index 6951308..0000000
--- a/hplip-uiscan-help.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/uiscan.py b/uiscan.py
-index f46ec5b..0ac993a 100755
---- a/uiscan.py
-+++ b/uiscan.py
-@@ -22,8 +22,8 @@ except ImportError as e:
-
-
-
--mod = module.Module(__mod__, __title__, __version__, __doc__, None, (INTERACTIVE_MODE,))
--
-+mod = module.Module(__mod__, __title__, __version__, __doc__, None, (GUI_MODE,), (UI_TOOLKIT_QT4, UI_TOOLKIT_QT5))
-+mod.setUsage(module.USAGE_FLAG_NONE, extra_options=None, see_also_list = ['hp-scan'])
-
-
- if __name__ == "__main__":
diff --git a/hplip-unicodeerror.patch b/hplip-unicodeerror.patch
deleted file mode 100644
index f98c7a3..0000000
--- a/hplip-unicodeerror.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/base/sixext.py b/base/sixext.py
-index 0bf4fc4..311bf72 100644
---- a/base/sixext.py
-+++ b/base/sixext.py
-@@ -110,11 +110,11 @@ if PY3:
-
-
- def to_string_utf8(s):
-- return s.decode("utf-8")
-+ return s.decode("utf-8", 'ignore')
-
-
- def to_string_latin(s):
-- return s.decode("latin-1")
-+ return s.decode("latin-1", 'ignore')
-
-
- def to_unicode(s, enc=None):
diff --git a/hplip-use-raw-strings.patch b/hplip-use-raw-strings.patch
deleted file mode 100644
index 77d1b87..0000000
--- a/hplip-use-raw-strings.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-diff -up hplip-3.25.2/base/device.py.raw-strings hplip-3.25.2/base/device.py
-diff -up hplip-3.25.2/base/g.py.raw-strings hplip-3.25.2/base/g.py
-diff -up hplip-3.25.2/base/LedmWifi.py.raw-strings hplip-3.25.2/base/LedmWifi.py
---- hplip-3.25.2/base/LedmWifi.py.raw-strings 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/base/LedmWifi.py 2025-04-11 10:26:18.519166530 +0200
-@@ -31,7 +31,7 @@ from .g import *
- from . import device, utils
- from .sixext import to_bytes_utf8
-
--http_result_pat = re.compile("""HTTP/\d.\d\s(\d+)""", re.I)
-+http_result_pat = re.compile(r"""HTTP/\d.\d\s(\d+)""", re.I)
- HTTP_OK = 200
- HTTP_ACCEPTED = 202
- HTTP_NOCONTENT = 204
-diff -up hplip-3.25.2/base/logger.py.raw-strings hplip-3.25.2/base/logger.py
-diff -up hplip-3.25.2/base/models.py.raw-strings hplip-3.25.2/base/models.py
-diff -up hplip-3.25.2/base/password.py.raw-strings hplip-3.25.2/base/password.py
-diff -up hplip-3.25.2/base/queues.py.raw-strings hplip-3.25.2/base/queues.py
---- hplip-3.25.2/base/queues.py.raw-strings 2025-04-11 10:26:18.512773352 +0200
-+++ hplip-3.25.2/base/queues.py 2025-04-11 10:26:18.520514306 +0200
-@@ -46,7 +46,7 @@ HPPS = 3
- HPOTHER = 4
-
- DEVICE_URI_PATTERN = re.compile(r"""(.*):/(.*?)/(\S*?)\?(?:serial=(\S*)|device=(\S*)|ip=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[^&]*)|zc=(\S+))(?:&port=(\d))?""", re.I)
--NICKNAME_PATTERN = re.compile(b'''\*NickName:\s*\"(.*)"''', re.MULTILINE)
-+NICKNAME_PATTERN = re.compile(r'''\*NickName:\s*\"(.*)"''', re.MULTILINE)
- NET_PATTERN = re.compile(r"""(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})""")
- NET_ZC_PATTERN = re.compile(r'''zc=(.*)''',re.IGNORECASE)
- NET_OTHER_PATTERN = re.compile(r'''(.*)://(.*)''',re.IGNORECASE)
-@@ -149,7 +149,7 @@ def parseQueues(mode):
- desc=''
- else:
- try:
-- desc = to_string_utf8( NICKNAME_PATTERN.search(fileptr).group(1) )
-+ desc = to_string_utf8( NICKNAME_PATTERN.search(fileptr.decode('utf-8')).group(1) )
- except AttributeError:
- desc = ''
-
-diff -up hplip-3.25.2/base/status.py.raw-strings hplip-3.25.2/base/status.py
-diff -up hplip-3.25.2/base/tui.py.raw-strings hplip-3.25.2/base/tui.py
-diff -up hplip-3.25.2/base/utils.py.raw-strings hplip-3.25.2/base/utils.py
-diff -up hplip-3.25.2/check.py.raw-strings hplip-3.25.2/check.py
---- hplip-3.25.2/check.py.raw-strings 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/check.py 2025-04-11 10:26:18.521601431 +0200
-@@ -627,7 +627,7 @@ class DependenciesCheck(object):
- status, output = utils.run("%s -d03f0:" % lsusb)
-
- if output:
-- lsusb_pat = re.compile("""^Bus\s([0-9a-fA-F]{3,3})\sDevice\s([0-9a-fA-F]{3,3}):\sID\s([0-9a-fA-F]{4,4}):([0-9a-fA-F]{4,4})(.*)""", re.IGNORECASE)
-+ lsusb_pat = re.compile(r"""^Bus\s([0-9a-fA-F]{3,3})\sDevice\s([0-9a-fA-F]{3,3}):\sID\s([0-9a-fA-F]{4,4}):([0-9a-fA-F]{4,4})(.*)""", re.IGNORECASE)
- log.debug(output)
- try:
- hpmudext = utils.import_ext('hpmudext')
-@@ -682,7 +682,7 @@ class DependenciesCheck(object):
-
- out =''
- for g in getfacl_out_list:
-- if 'getfacl' not in g and '' is not g and 'file' not in g:
-+ if 'getfacl' not in g and '' != g and 'file' not in g:
- pat = re.compile('''.*:(.*)''')
- if pat.search(g):
- out = out +' '+ pat.search(g).group(1)
-diff -up hplip-3.25.2/fax/soapfax.py.raw-strings hplip-3.25.2/fax/soapfax.py
---- hplip-3.25.2/fax/soapfax.py.raw-strings 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/fax/soapfax.py 2025-04-11 10:26:18.521745824 +0200
-@@ -42,7 +42,7 @@ from base.sixext import to_bytes_utf8
-
- # **************************************************************************** #
-
--http_result_pat = re.compile("""HTTP/\d.\d\s(\d+)""", re.I)
-+http_result_pat = re.compile(r"""HTTP/\d.\d\s(\d+)""", re.I)
-
-
- TIME_FORMAT_AM_PM = 1
-diff -up hplip-3.25.2/installer/dcheck.py.raw-strings hplip-3.25.2/installer/dcheck.py
-diff -up hplip-3.25.2/makeuri.py.raw-strings hplip-3.25.2/makeuri.py
---- hplip-3.25.2/makeuri.py.raw-strings 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/makeuri.py 2025-04-11 10:26:18.522024483 +0200
-@@ -46,7 +46,7 @@ USAGE = [ (__doc__, "", "name", True),
- ("DEVNODE (parallel only):", '"/dev/parportX", X=0,1,2,...', "option", False),
- ("SERIAL NO. (usb and parallel only):", '"serial no."', "option", True),
- utils.USAGE_OPTIONS,
-- ("To specify the port on a multi-port JetDirect:", "-p or --port= (Valid values are 1\*, 2, and 3. \*default)", "option", False),
-+ ("To specify the port on a multi-port JetDirect:", r"-p or --port= (Valid values are 1\*, 2, and 3. \*default)", "option", False),
- ("Show the CUPS URI only (quiet mode):", "-c or --cups", "option", False),
- ("Show the SANE URI only (quiet mode):", "-s or --sane", "option", False),
- ("Show the HP Fax URI only (quiet mode):", "-f or --fax", "option", False),
-diff -up hplip-3.25.2/prnt/cups.py.raw-strings hplip-3.25.2/prnt/cups.py
-diff -up hplip-3.25.2/probe.py.raw-strings hplip-3.25.2/probe.py
---- hplip-3.25.2/probe.py.raw-strings 2025-02-27 13:12:29.000000000 +0100
-+++ hplip-3.25.2/probe.py 2025-04-11 10:26:18.522312569 +0200
-@@ -42,11 +42,11 @@ USAGE = [(__doc__, "", "name", True),
- ("Usage: %s [OPTIONS]" % __mod__, "", "summary", True),
- utils.USAGE_OPTIONS,
- ("Bus to probe:", "-b or --bus=", "option", False),
-- ("", ": cups, usb\*, net, bt, fw, par (\*default) (Note: bt and fw not supported in this release.)", "option", False),
-+ ("", r": cups, usb\*, net, bt, fw, par (\*default) (Note: bt and fw not supported in this release.)", "option", False),
- ("Set Time to Live (TTL):", "-t or --ttl= (Default is 4).", "option", False),
- ("Set timeout:", "-o or --timeout=", "option", False),
- ("Filter by functionality:", "-e or --filter=", "option", False),
-- ("", ": comma separated list of one or more of: scan, pcard, fax, copy, or none\*. (\*none is the default)", "option", False),
-+ ("", r": comma separated list of one or more of: scan, pcard, fax, copy, or none\*. (\*none is the default)", "option", False),
- ("Search:", "-s or --search=", "option", False),
- ("", " must be a valid regular expression (not case sensitive)", "option", False),
- ("Network discovery method:", "-m or --method=: is 'slp'* or 'mdns'.", "option", False),
-diff -up hplip-3.25.2/scan.py.raw-strings hplip-3.25.2/scan.py
-diff -up hplip-3.25.2/setup.py.raw-strings hplip-3.25.2/setup.py
---- hplip-3.25.2/setup.py.raw-strings 2025-04-11 10:26:18.496992045 +0200
-+++ hplip-3.25.2/setup.py 2025-04-11 10:26:18.522775511 +0200
-@@ -79,11 +79,11 @@ USAGE = [ (__doc__, "", "name", True),
- utils.USAGE_SPACE,
- utils.USAGE_OPTIONS,
- ("Automatic mode:", "-a or --auto (-i mode only)", "option", False),
-- ("To specify the port on a multi-port JetDirect:", "--port= (Valid values are 1\*, 2, and 3. \*default)", "option", False),
-+ ("To specify the port on a multi-port JetDirect:", r"--port= (Valid values are 1\*, 2, and 3. \*default)", "option", False),
- ("No testpage in automatic mode:", "-x (-i mode only)", "option", False),
- ("To specify a CUPS printer queue name:", "-p or --printer= (-i mode only)", "option", False),
- ("To specify a CUPS fax queue name:", "-f or --fax= (-i mode only)", "option", False),
-- ("Type of queue(s) to install:", "-t or --type=. : print*, fax\* (\*default) (-i mode only)", "option", False),
-+ ("Type of queue(s) to install:", r"-t or --type=. : print*, fax\* (\*default) (-i mode only)", "option", False),
- ("To specify the device URI to install:", "-d or --device= (--qt4 mode only)", "option", False),
- ("Remove printers or faxes instead of setting-up:", "-r or --rm or --remove", "option", False),
- utils.USAGE_LANGUAGE,
diff --git a/hplip-wifisetup.patch b/hplip-wifisetup.patch
index a7dc21b..9b0cda9 100644
--- a/hplip-wifisetup.patch
+++ b/hplip-wifisetup.patch
@@ -1,12 +1,19 @@
-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
+commit 7cdc26da185db2335f1efdc6716804266caa1712
+Author: Tomas Korbar
+Date: Thu Sep 20 15:04:47 2018 +0200
+
+ Fix wifi printer setup
+
+diff --git a/ui5/wifisetupdialog.py b/ui5/wifisetupdialog.py
+index 74cc0ef..8daff7d 100644
+--- a/ui5/wifisetupdialog.py
++++ b/ui5/wifisetupdialog.py
+@@ -570,7 +570,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog):
+ try:
self.ip,_,addressmode, subnetmask, gateway, pridns, sec_dns= self.wifiObj.getIPConfiguration(self.dev, self.adapterName)
if self.ip == "0.0.0.0":
- 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)
+- 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.appdata.xml b/hplip.appdata.xml
index 17ddd4a..9c0b711 100644
--- a/hplip.appdata.xml
+++ b/hplip.appdata.xml
@@ -1,9 +1,9 @@
-
- hplip.desktop
+
+ HP-hplip.desktop
CC0-1.0
- GPL-2.0+
+ GPL-2.0 and MIT and BSD-2-Clause
HPLIP Graphic Tools
HPLIP GUI tools and GUI part of other HPLIP tools
diff --git a/hplip.spec b/hplip.spec
index d6b78cd..5ba9e75 100644
--- a/hplip.spec
+++ b/hplip.spec
@@ -6,38 +6,15 @@
Summary: HP Linux Imaging and Printing Project
Name: hplip
-Version: 3.25.8
-Release: 1%{?dist}
-# most files (base/*, *, ui*/...) - GPL2+
-# prnt/hpijs/ jpeg related files - IJG
-# prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267
-# base/exif.py - BSD-2-Clause - reported as https://gitlab.com/fedora/legal/fedora-license-data/-/issues/268
-# base/ldif.py - python-ldap - reported https://gitlab.com/fedora/legal/fedora-license-data/-/issues/269
-# io/*, scan/* - MIT
-# protocol/discovery/* - LGPL-2.1-or-later
-# protocol/* - GPL2only
-# scan/sane/sane.h - Public Domain
-License: GPL-2.0-or-later AND MIT AND BSD-3-Clause-HP AND IJG AND GPL-2.0-only AND LGPL-2.1-or-later AND BSD-2-Clause AND LicenseRef-Fedora-Public-Domain AND python-ldap
+Version: 3.18.6
+Release: 5%{?dist}
+License: GPLv2+ and MIT and BSD
Url: https://developers.hp.com/hp-linux-imaging-and-printing
-# Original source tarball
-# Source0: http://downloads.sourceforge.net/sourceforge/hplip/hplip-%%{version}.tar.gz
-#
-# Repacked source tarball without redundant files - always repack
-# the original tarball once a new version arrives by:
-#
-# ./hplip-repack.sh
-#
-
-Source0: hplip-%{version}-repack.tar.gz
+Source0: http://downloads.sourceforge.net/sourceforge/hplip/hplip-%{version}.tar.gz
Source1: hpcups-update-ppds.sh
Source2: copy-deviceids.py
Source3: %{name}.appdata.xml
-Source4: hp-laserjet_cp_1025nw.ppd.gz
-Source5: hp-laserjet_professional_p_1102w.ppd.gz
-Source6: hplip-repack.sh
-Source7: hp-plugin.in
-
Patch1: hplip-pstotiff-is-rubbish.patch
Patch2: hplip-strstr-const.patch
Patch3: hplip-ui-optional.patch
@@ -56,296 +33,67 @@ Patch15: hplip-ppd-ImageableArea.patch
Patch16: hplip-scan-tmp.patch
Patch17: hplip-log-stderr.patch
Patch18: hplip-avahi-parsing.patch
-Patch19: hplip-dj990c-margin.patch
-Patch20: hplip-strncpy.patch
-Patch21: hplip-no-write-bytecode.patch
-Patch22: hplip-silence-ioerror.patch
-Patch23: hplip-sourceoption.patch
-Patch24: hplip-noernie.patch
-Patch25: hplip-appdata.patch
-Patch26: hplip-check-cups.patch
-Patch27: hplip-typo.patch
+Patch20: hplip-dj990c-margin.patch
+Patch21: hplip-strncpy.patch
+Patch22: hplip-no-write-bytecode.patch
+Patch23: hplip-silence-ioerror.patch
+Patch24: hplip-3165-sourceoption.patch
+Patch25: hplip-noernie.patch
+Patch26: hplip-appdata.patch
+Patch27: hplip-check-cups.patch
+Patch30: hplip-typo.patch
# python3 - recent HP release removed encoding/decoding to utf-8 in fax/pmlfax.py -
# that results in text string going into translate function in base/utils.py, which
# expects binary string because of parameters. Remove this patch if base/utils.py
# code gets fixed.
-Patch28: hplip-use-binary-str.patch
+Patch31: hplip-use-binary-str.patch
# m278-m281 doesn't work correctly again
-Patch29: hplip-error-print.patch
-Patch30: hplip-hpfax-importerror-print.patch
-Patch31: hplip-wifisetup.patch
-# pgp.mit.edu keyserver got bad connection, so we need to have pool of keyservers
-# to choose (Bz#1641100, launchpad#1799212)
-# F42+ update: HP has new key, and currently only on Ubuntu keyserver - so this patch now
-# only adjust terminal output, we will see if connection problems reappear
-Patch32: hplip-keyserver.patch
-# QMessagebox call was copy-pasted from Qt4 version, but Qt5 has different arguments,
-# This patch solves most of them
-Patch33: 0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch
-# HP upstream introduced new binary blob, which is not open-source, so it violates
-# FPG by two ways - shipping binary blob and non open source code - so it needs to be removed.
-# Patch is taken from Debian.
-Patch34: 0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
-# In hplip-3.18.10 some parts of UI code was commented out, which leaved hp-toolbox
-# unusable (crashed on the start). The patch removes usages of variables, which were
-# commented out.
-# The patch is taken from Debian.
-Patch35: 0027-Fixed-incomplete-removal-of-hp-toolbox-features-whic.patch
-# hp-setup crashed when user wanted to define a path to PPD file. It was due
-# byte + string variables incompatibility and it is fixed by decoding the
-# bytes-like variable
-# part of https://bugzilla.redhat.com/show_bug.cgi?id=1666076
-# reported upstream https://bugs.launchpad.net/hplip/+bug/1814272
-Patch36: hplip-add-ppd-crash.patch
-# external scripts, which are downloaded and run by hp-plugin, try to create links
-# in non-existing dirs. These scripts ignore errors, so plugin is installed fine
-# but then internal hp-plugin can check for plugin state, where links are checked too.
-# It results in corrupted plugin state, which breaks printer installation by GUI hp-setup.
-# Temporary workaround is to ignore these bad links and real fix should come from HP,
-# because their external scripts try to create links in non-existing dirs.
-# Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1671513
-# Reported upstream: https://bugs.launchpad.net/hplip/+bug/1814574
-Patch37: hplip-missing-links.patch
-# change in 3.18.9 in scanext.c caused broken scanning for HP LaserJet 3052. Since I cannot figure
-# it out what author wanted by the change (it sets option number 9 to true, but different handles
-# have different options, so I'm not sure what author wanted to set).
-# Remove the change for now, it works for user and me.
-Patch38: hplip-hplj-3052.patch
-# hpmud parses mdns txt record badly
-# upstream tickets: https://bugs.launchpad.net/hplip/+bug/1797501
-# https://bugs.launchpad.net/hplip/+bug/1817214
-# https://bugs.launchpad.net/hplip/+bug/1821932
-# with no response from upstream
-# Patch taken from Debian https://lists.debian.org/debian-printing/2018/11/msg00049.html
-Patch39: hplip-hpmud-string-parse.patch
-# Part of https://bugzilla.redhat.com/show_bug.cgi?id=1694663
-# It was found out that specific device needs plugin for scanning
-# Reported upstream as https://bugs.launchpad.net/hplip/+bug/1822762
-Patch40: hplip-m278-m281-needs-plugin.patch
-# hpcups crashes when a printer needs a plugin and does not have one installed
-# it crashes in destructor, because pointer is not initialized
-# bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=1695716
-# reported upstream
-Patch41: hplip-hpcups-crash.patch
-# Fixing the issues found by coverity scan
-# reported upstream https://bugs.launchpad.net/hplip/+bug/1808145
-Patch42: hplip-covscan.patch
-# Segfault during logging to syslog because argument are switched
-# bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=1727162
-# upstream https://bugs.launchpad.net/hplip/+bug/1837846
-Patch43: hplip-logging-segfault.patch
-# Traceback in hp-systray when there are no resource
-# wanted to report upstream, but launchpad ends with timeout error
-# bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=1738321
-Patch44: hplip-systray-blockerror.patch
-# several printers were removed in 3.19.1, but actually someone still uses them
-# reported upstream https://bugs.launchpad.net/hplip/+bug/1843592
-# bugzillas 1742949, 1740132, 1739855
-Patch45: hplip-missing-drivers.patch
-# laserjet 2200 and other devices have different device id than HP expects...
-# https://bugzilla.redhat.com/show_bug.cgi?id=1772698
-# reported upstream https://bugs.launchpad.net/hplip/+bug/1853002
-Patch46: hplip-model-mismatch.patch
-# sixext has problems with python3 strings (bz#1573430)
-# reported https://bugs.launchpad.net/bugs/1480152
-Patch47: hplip-unicodeerror.patch
-# error with new gcc, already reported in upstream as
-# https://bugs.launchpad.net/hplip/+bug/1836735
-Patch48: hplip-fix-Wreturn-type-warning.patch
-# upstream check for python clears OS build system
-# CFLAGS
-# https://bugs.launchpad.net/hplip/+bug/1879445
-Patch49: hplip-configure-python.patch
-# taken from hplip upstream report - toolbox uses deprecated method
-# setMargin(), which generates an exception, resulting in a infinite loop
-# of request on cupsd
-# https://bugs.launchpad.net/hplip/+bug/1880275
-Patch50: hplip-dialog-infinite-loop.patch
-# searching algorithm did not expect '-' in model name and thought it is a new PDL
-# it resulted in incorrect PPD match, so e.g. hpijs driver was used instead of hpcups
-# bug: https://bugzilla.redhat.com/show_bug.cgi?id=1590014
-# reported upstream: https://bugs.launchpad.net/hplip/+bug/1881587
-Patch51: hplip-find-driver.patch
-# hp-clean didn't work for Photosmart C1410 because it was comparing
-# string length with buffer size for string object, which is different,
-# causing cleaning to fail - the fix is to make the object bytes-like,
-# then buffer size is the same as the length.
-# Thanks to Stefan Assmann we were able to fix level 1 cleaning
-# for the device, but there can be similar issues with other devices
-# bug https://bugzilla.redhat.com/show_bug.cgi?id=1833308
-# reported upstream https://bugs.launchpad.net/hplip/+bug/1882193
-Patch52: hplip-clean-ldl.patch
-# 3.20.6 turned off requirement for most devices which needed it
-# - it will cause malfunction of printing and scanning for them
-# https://bugs.launchpad.net/hplip/+bug/1883898
-Patch53: hplip-revert-plugins.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
-Patch54: hplip-hpsetup-noscanjets.patch
-# 1963114 - patch for hplip firmware load timeout fix
-# reported upstream https://bugs.launchpad.net/hplip/+bug/1922404
-Patch55: hplip-hpfirmware-timeout.patch
-# 1985251 - Incorrect permission for gpg directory
-# reported upstream https://bugs.launchpad.net/hplip/+bug/1938442
-Patch56: hplip-gpgdir-perms.patch
-# 1987141 - hp-plugin installs malformed udev files
-# reported upstream https://bugs.launchpad.net/hplip/+bug/1847477
-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,
-# but dlopen() in hplip was set to load the unversioned .so - so to remove rpmlint
-# error (when libhpmud.so is in non-devel package) and prevent runtime dependency on -devel
-# 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()
-Patch58: hplip-no-libhpmud-libm-warnings.patch
-Patch59: hplip-plugin-script.patch
-# C99 compatibility fixes by fweimer - use explicit int
-# Submitted upstream:
-Patch60: hplip-pserror-c99.patch
-# C99 compatibility patch by fweimer - several undefined functions in hpaio
-# backend are declared in orblite.h
-# Submitted upstream:
-Patch61: 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:
-Patch62: 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:
-Patch63: hplip-pcardext-disable.patch
-# undefined strcasestr() in sclpml.c - build with _GNU_SOURCE
-# Submitted upstream:
-Patch64: hplip-sclpml-strcasestr.patch
-# 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed
-# https://bugs.launchpad.net/hplip/+bug/2027972
-Patch65: hplip-fix-parsing-lpstat.patch
-# switch to curl by downstream patch from wget to workaround openstack dropping IPv6
-# which causes great delays...
-# Remove this once internal openstack handles IPv6 better - test by pinging IPv6 in OpenStack,
-# it should not hang.
-Patch66: hplip-plugin-curl.patch
-# fix SyntaxWarning from python3.12
-# https://bugs.launchpad.net/hplip/+bug/2029480
-Patch67: hplip-use-raw-strings.patch
-# FTBFS GCC 14
-# https://bugs.launchpad.net/hplip/+bug/2048780
-Patch68: hplip-hpaio-gcc14.patch
-# format is no longer method in locale module
-# https://bugs.launchpad.net/hplip/+bug/2045507
-Patch69: hplip-locale-format.patch
-# function prototype did not specify argument's data types
-# https://bugs.launchpad.net/hplip/+bug/2096650
-Patch70: hplip-gcc15-stdc23.patch
-# status history table shows unformatted QDateTime values
-# https://bugs.launchpad.net/hplip/+bug/1956547
-Patch71: hplip-format-qdatetime.patch
-# Python 3.14 removed urlopener
-# https://bugs.launchpad.net/hplip/+bug/2115046
-Patch72: hplip-no-urlopener.patch
-# hp-scan command failed to run and gives an error (fedora#2395809)
-# https://bugs.launchpad.net/hplip/+bug/2124268
-Patch73: hplip-scan-size.patch
-# 3.25.8 brings new implementation for calling commands in subprocess,
-# but again directs I/O into pipes, which does not work for TUI plugin
-# installation. Additionally it tracebacks if stdout/stderr is None
-# https://bugs.launchpad.net/hplip/+bug/2110101
-Patch74: hplip-plugin-stdout.patch
+Patch32: hplip-colorlaserjet-mfp-m278-m281.patch
+Patch33: hplip-error-print.patch
+Patch34: hplip-hpfax-importerror-print.patch
+Patch35: hplip-wifisetup.patch
+Patch36: hplip-qmsgbox-typos.patch
-%if 0%{?fedora} || 0%{?rhel} <= 8
-# mention hplip-gui if you want to have GUI
-Patch1000: hplip-fedora-gui.patch
-%endif
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Requires: python3-pillow
+Requires: cups
+Requires: wget
+Requires: python3-dbus
+# set require directly to /usr/bin/gpg, because gnupg2 and gnupg ships it,
+# but gnupg will be deprecated in the future
+Requires: %{_bindir}/gpg
+# /usr/lib/udev/rules.d
+Requires: systemd
-
-# uses automatic creation of configure
-BuildRequires: autoconf
-# uses automatic creation of Makefile
-BuildRequires: automake
-# Make sure we get postscriptdriver tags - need cups and python3-cups.
-BuildRequires: cups
-# uses functions from CUPS in filters, backends and libraries defining them
-BuildRequires: cups-devel
-%if 0%{?rhel} <= 8 || 0%{?fedora}
-# needed for desktop file validation in spec file
-BuildRequires: desktop-file-utils
-%endif
# gcc and gcc-c++ are no longer in buildroot by default
+
# gcc is needed for compilation of HPAIO scanning backend, HP implementation of
-# IPP and MDNS protocols, hpps driver, hp backend, hpip (image processing
+# IPP and MDNS protocols, hpps driver, hp backend, hpip (image processing
# library), multipoint transport driver hpmud
BuildRequires: gcc
# gcc-c++ is needed for hpijs, hpcups drivers
BuildRequires: gcc-c++
-# support for JPEG file formats in hp-scan
-BuildRequires: libjpeg-devel
-# uses libtool for autorconf
-BuildRequires: libtool
-# implements support for USB devices
-BuildRequires: libusb1-devel
-# uses make
-BuildRequires: make
-# SLP device discovery is based on SNMP
+
+BuildRequires: autoconf automake libtool
BuildRequires: net-snmp-devel
-# wasn't able to find out why, but SO libraries in hplip-libs require them...
-BuildRequires: openssl-devel
-# supports mDNS device discovery via Avahi
-BuildRequires: pkgconfig(avahi-client)
-BuildRequires: pkgconfig(avahi-core)
-BuildRequires: pkgconfig(dbus-1)
-BuildRequires: python3-cups
-# implements C Python extensions like hpmudext, cupsext, scanext
+BuildRequires: cups-devel
BuildRequires: python3-devel
-# distutils are removed in Python3.12, use setuptools
-BuildRequires: python3-setuptools
-# SANE backend hpaio uses function from SANE API
+BuildRequires: libjpeg-devel
+BuildRequires: desktop-file-utils
+BuildRequires: libusb1-devel
+BuildRequires: openssl-devel
BuildRequires: sane-backends-devel
+BuildRequires: pkgconfig(dbus-1)
+
+# Make sure we get postscriptdriver tags.
+BuildRequires: python3-cups, cups
+
# macros: %%{_tmpfilesdir}, %%{_udevrulesdir}
BuildRequires: systemd
-%if 0%{?fedora} || 0%{?rhel} <= 8
-Suggests: hplip-gui
-%endif
-# uses avahi-browse for discovering IPP-over-USB printers
-Recommends: avahi-tools
-# 1733449 - Scanner on an HP AIO printer is not detected unless libsane-hpaio is installed
-Recommends: libsane-hpaio%{?_isa} = %{version}-%{release}
-# downloaded plugin requires python3-gobject to work even via CLI...
-# but make it weak dependency, so users which don't need the plugin and have servers
-# can remove the python3-gobject which is used by desktop apps
-Recommends: python3-gobject
-
-Requires: cups
-# switch to curl by downstream patch from wget to workaround openstack dropping IPv6
-# which causes great delays...
-Requires: curl
-# set require directly to /usr/bin/gpg, because gnupg2 and gnupg ships it,
-# but gnupg will be deprecated in the future
-Requires: %{_bindir}/gpg
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-Requires: python3-dbus
-%if 0%{?rhel} <= 8 || 0%{?fedora}
-Requires: python3-pillow
-%endif
-# user+group lp
-Requires: setup
-# /usr/lib/udev/rules.d
-Requires: systemd
-# 1788643 - Fedora minimal does not ship tar by default
-Requires: tar
-# require usbutils, hp-diagnose_queues needs lsusb
-Requires: usbutils
-
-# require coreutils, because timeout binary is needed in post scriptlet,
-# because hpcups-update-ppds script can freeze in certain situation and
-# stop the update
-Requires(post): coreutils
+# hpijs was merged into main package in 3.15.7-2
+Obsoletes: hpijs < 1:%{version}-%{release}
+Provides: hpijs = 1:%{version}-%{release}
%description
The Hewlett-Packard Linux Imaging and Printing Project provides
@@ -353,42 +101,40 @@ drivers for HP printers and multi-function peripherals.
%package common
Summary: Files needed by the HPLIP printer and scanner drivers
+License: GPLv2+
%description common
Files needed by the HPLIP printer and scanner drivers.
%package libs
Summary: HPLIP libraries
+License: GPLv2+ and MIT
Requires: %{name}-common%{?_isa} = %{version}-%{release}
Requires: python3
+Obsoletes: %{name}-compat-libs < %{version}-%{release}
%description libs
Libraries needed by HPLIP.
-%if 0%{?rhel} <= 8 || 0%{?fedora}
%package gui
Summary: HPLIP graphical tools
+License: BSD
BuildRequires: libappstream-glib
-
-# for avahi-browse - looks for devices on local network
-Recommends: avahi-tools
-Recommends: libsane-hpaio%{?_isa} = %{version}-%{release}
-# for hp-check
-Recommends: pkgconf
-
-Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: python3-qt5
+Requires: python3-reportlab
# hpssd.py
Requires: python3-gobject
-Requires: python3-reportlab
-Requires: python3-qt5
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: libsane-hpaio%{?_isa} = %{version}-%{release}
%description gui
HPLIP graphical tools.
-%endif
%package -n libsane-hpaio
Summary: SANE driver for scanners in HP's multi-function devices
-
+License: GPLv2+
+Obsoletes: libsane-hpoj < 0.91
+Provides: libsane-hpoj = 0.91
Requires: sane-backends
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
@@ -399,21 +145,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).
-%patch -P 1 -p1 -b .pstotiff-is-rubbish
+%patch1 -p1 -b .pstotiff-is-rubbish
# Fix compilation.
-%patch -P 2 -p1 -b .strstr-const
+%patch2 -p1 -b .strstr-const
# Make utils.checkPyQtImport() look for the gui sub-package (bug #243273).
-%patch -P 3 -p1 -b .ui-optional
+%patch3 -p1 -b .ui-optional
# Make sure to avoid handwritten asm.
-%patch -P 4 -p1 -b .no-asm
+%patch4 -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)
-%patch -P 5 -p1 -b .deviceIDs-drv
+%patch5 -p1 -b .deviceIDs-drv
chmod +x %{SOURCE2}
mv prnt/drv/hpijs.drv.in{,.deviceIDs-drv-hpijs}
%{SOURCE2} prnt/drv/hpcups.drv.in \
@@ -421,28 +167,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).
-%patch -P 6 -p1 -b .udev-rules
+%patch6 -p1 -b .udev-rules
# Retry when connecting to device fails (bug #532112).
-%patch -P 7 -p1 -b .retry-open
+%patch7 -p1 -b .retry-open
# Mark SNMP quirks in PPD for HP OfficeJet Pro 8500 (bug #581825).
-%patch -P 8 -p1 -b .snmp-quirks
+%patch8 -p1 -b .snmp-quirks
# Fixed bogus low ink warnings from hpijs driver (bug #643643).
-%patch -P 9 -p1 -b .hpijs-marker-supply
+%patch9 -p1 -b .hpijs-marker-supply
# Clear old printer-state-reasons we used to manage (bug #510926).
-%patch -P 10 -p1 -b .clear-old-state-reasons
+%patch10 -p1 -b .clear-old-state-reasons
# Avoid busy loop in hpcups when backend has exited (bug #525944).
-%patch -P 11 -p1 -b .hpcups-sigpipe
+%patch11 -p1 -b .hpcups-sigpipe
# CUPS filters should use TMPDIR when available (bug #865603).
-%patch -P 12 -p1 -b .logdir
+%patch12 -p1 -b .logdir
# Fixed Device ID parsing code in hpijs's dj9xxvip.c (bug #510926).
-%patch -P 13 -p1 -b .bad-low-ink-warning
+%patch13 -p1 -b .bad-low-ink-warning
# Add Device ID for
# HP LaserJet Color M451dn (bug #1159380)
@@ -450,7 +196,7 @@ for ppd_file in $(grep '^diff' %{PATCH14} | cut -d " " -f 4);
do
gunzip ${ppd_file#*/}.gz
done
-%patch -P 14 -p1 -b .deviceIDs-ppd
+%patch14 -p1 -b .deviceIDs-ppd
for ppd_file in $(grep '^diff' %{PATCH14} | cut -d " " -f 4);
do
gzip -n ${ppd_file#*/}
@@ -461,175 +207,76 @@ for ppd_file in $(grep '^diff' %{PATCH15} | cut -d " " -f 4);
do
gunzip ${ppd_file#*/}.gz
done
-%patch -P 15 -p1 -b .ImageableArea
+%patch15 -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).
-%patch -P 16 -p1 -b .scan-tmp
+%patch16 -p1 -b .scan-tmp
# Treat logging before importing of logger module (bug #984699).
-%patch -P 17 -p1 -b .log-stderr
+%patch17 -p1 -b .log-stderr
# Fix parsing of avahi-daemon output (bug #1096939).
-%patch -P 18 -p1 -b .parsing
+%patch18 -p1 -b .parsing
# Fixed left/right margins for HP DeskJet 990C (LP #1405212).
-%patch -P 19 -p1 -b .dj990c-margin
+%patch20 -p1 -b .dj990c-margin
# Fixed uses of strncpy throughout.
-%patch -P 20 -p1 -b .strncpy
+%patch21 -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).
-%patch -P 21 -p1 -b .no-write-bytecode
+%patch22 -p1 -b .no-write-bytecode
# Ignore IOError when logging output (bug #712537).
-%patch -P 22 -p1 -b .silence-ioerror
+%patch23 -p1 -b .silence-ioerror
# [abrt] hplip: hp-scan:663::NameError: name 'source_option' is not defined (bug #1341304)
-%patch -P 23 -p1 -b .sourceoption
+%patch24 -p1 -b .sourceoption
# hplip license problem (bug #1364711)
-%patch -P 24 -p1 -b .no-ernie
+%patch25 -p1 -b .no-ernie
# hplip appdata
-%patch -P 25 -p1 -b .appdata
+%patch26 -p1 -b .appdata
+
+rm prnt/hpcups/ErnieFilter.{cpp,h} prnt/hpijs/ernieplatform.h
# hp-check shows 'CUPS incompatible or not running' even if CUPS is running (bug #1456467)
-%patch -P 26 -p1 -b .check-cups
+%patch27 -p1 -b .check-cups
# hp-firmware:NameError: name 'INTERACTIVE_MODE4' is not defined (bug #1533869)
-%patch -P 27 -p1 -b .typo
+%patch30 -p1 -b .typo
-%patch -P 28 -p1 -b .use-binary-str
+%patch31 -p1 -b .use-binary-str
+%patch32 -p1 -b .colorlaserjet-mfp-m278-m281
# 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.
-%patch -P 29 -p1 -b .error-print-fix
+%patch33 -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
-%patch -P 30 -p1 -b .hpfax-import-error-print
+%patch34 -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
-%patch -P 31 -p1 -b .wifisetup-bad-call-fix
-
-# have pool of keyservers to choose
-%patch -P 32 -p1 -b .keyserver
+%patch35 -p1 -b .wifisetup-bad-call-fix
# 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
-%patch -P 33 -p1 -b .qmsgbox-typos-fix
-
-# removal of non open source code, taken from ubuntu
-%patch -P 34 -p1 -b .libimageprocessor-removal
-
-%{_bindir}/rm prnt/hpcups/libImageProcessor-x86*
-
-%patch -P 35 -p1 -b .toolbox-crash
-# part of https://bugzilla.redhat.com/show_bug.cgi?id=1666076
-%patch -P 36 -p1 -b .add-ppd-crash
-# 1671513 - after 'successful' plugin installation it is not installed
-%patch -P 37 -p1 -b .missing-links
-# 1684434 - Scanning broken for HP LaserJet 3052
-%patch -P 38 -p1 -b .hp-laserjet-3052-broken-scanning
-# 1694663 - Cannot scan with M281fdw LaserJet - failed: Error during device I/O (part 1)
-%patch -P 39 -p1 -b .hpmud-string-parse
-# 1694663 - Cannot scan with M281fdw LaserJet - failed: Error during device I/O (part 2)
-%patch -P 40 -p1 -b .m278-m281-needs-plugin
-# 1695716 - hpcups crashes in Compressor destructor
-%patch -P 41 -p1 -b .hpcups-crash
-# fixing issues found by coverity scan
-%patch -P 42 -p1 -b .covscan
-# segfault during logging (1727162)
-%patch -P 43 -p1 -b .logging-segfault
-# 1738321 - [abrt] hp-systray:BlockingIOError: [Errno 11] Resource temporarily unavailable
-%patch -P 44 -p1 -b .systray-blockerror
-# 1742949, 1740132, 1739855 - missing drivers
-%patch -P 45 -p1 -b .missing-drivers
-# 1772698 - Can't setup printer (HP LJ 2200): no attributes found in model.dat
-%patch -P 46 -p1 -b .model-mismatch
-# 1573430 - sixext.py:to_string_utf8:UnicodeDecodeError: 'utf-8' codec can't decode bytes
-%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
-%patch -P 51 -p1 -b .find-driver
-# 1833308 - hp-clean cannot clean HP PSC1410 - Device I/O error
-%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
-%patch -P 54 -p1 -b .hpsetup-noscanjets
-# 1963114 - patch for hplip firmware load timeout fix
-%patch -P 55 -p1 -b .hpfirmware-timeout
-# 1985251 - Incorrect permission for gpg directory
-%patch -P 56 -p1 -b .gpgdir-perms
-# 1987141 - hp-plugin installs malformed udev files
-%patch -P 57 -p1 -b .hpplugin-udevperms
-# 2080235 - Misleading errors about missing shared libraries when scanning
-%patch -P 58 -p1 -b .no-libm-libhpmud-warn
-%patch -P 59 -p1 -b .plugin-patch
-# C99 compatibility fixes by fweimer - use explicit int
-# Submitted upstream:
-%patch -P 60 -p1 -b .pserror-int
-# C99 compatibility patch by fweimer - several undefined functions in hpaio
-# backend are declared in orblite.h
-# Submitted upstream:
-%patch -P 61 -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:
-%patch -P 62 -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
-%patch -P 63 -p1 -b .pcardext-disable
-# C99 compatibility patch by fweimer - undefined strcasestr() in sclpml.c - build with _GNU_SOURCE
-%patch -P 64 -p1 -b .sclpml-strcasestr
-# 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed
-# https://bugs.launchpad.net/hplip/+bug/2027972
-%patch -P 65 -p1 -b .lpstat-parse
-# switch to curl by downstream patch from wget to workaround openstack dropping IPv6
-# which causes great delays...
-%patch -P 66 -p1 -b .curl-switch
-# fix warnings
-# upstream https://bugs.launchpad.net/hplip/+bug/2029480
-%patch -P 67 -p1 -b .raw-strings
-# FTBFS GCC 14
-# https://bugs.launchpad.net/hplip/+bug/2048780
-%patch -P 68 -p1 -b .hpaio-gcc14
-# format is no longer method in locale module
-# https://bugs.launchpad.net/hplip/+bug/2045507
-%patch -P 69 -p1 -b .locale-format
-# https://bugs.launchpad.net/hplip/+bug/2096650
-%patch -P 70 -p1 -b .gcc-strc23
-# https://bugs.launchpad.net/hplip/+bug/1956547
-%patch -P 71 -p1 -b .format-qdatetime
-# https://bugs.launchpad.net/hplip/+bug/2115046
-%patch -P 72 -p1 -b .no-urlopener
-# https://bugs.launchpad.net/hplip/+bug/2124268
-%patch -P 73 -p1 -b .scan-size
-# https://bugs.launchpad.net/hplip/+bug/2110101
-%patch -P 74 -p1 -b .plugin-stdout
-
-# 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
-%patch -P 1000 -p1 -b .fedora-gui
-%endif
-
+# this patch fixes more of those typos
+%patch36 -p1 -b .qmsgbox-typos-fix
sed -i.duplex-constraints \
-e 's,\(UIConstraints.* \*Duplex\),//\1,' \
@@ -642,11 +289,7 @@ sed -i.env-python -e 's,^#!/usr/bin/env python,#!%{__python3},' \
prnt/filters/hpps \
fax/filters/pstotiff
-cp -p %{SOURCE4} %{SOURCE5} ppd/hpcups
-
-# 2129849 - move hp-plugin script into srcdir
-cp -p %{SOURCE7} .
-
+rm locatedriver
%build
# Work-around Makefile.am imperfections.
@@ -657,26 +300,20 @@ sed -i 's|^AM_INIT_AUTOMAKE|AM_INIT_AUTOMAKE([foreign])|g' configure.in
autoreconf --verbose --force --install
%configure \
- --enable-fax-build \
+ --enable-scan-build --enable-gui-build --enable-fax-build \
+ --disable-foomatic-rip-hplip-install --enable-pp-build \
+ --disable-qt4 --enable-qt5 \
+ --enable-hpcups-install --enable-cups-drv-install \
--enable-foomatic-drv-install \
- --enable-gui-build \
- --enable-hpcups-install \
--enable-hpijs-install \
- --enable-pp-build \
- --enable-qt5 \
- --enable-scan-build \
- --disable-foomatic-rip-hplip-install \
- --disable-imageProcessor-build \
- --disable-policykit \
- --disable-qt4 \
- --with-mimedir=%{_datadir}/cups/mime PYTHON=%{__python3}
+ --disable-policykit --with-mimedir=%{_datadir}/cups/mime PYTHON=%{__python3}
-%make_build
+make %{?_smp_mflags}
%install
mkdir -p %{buildroot}%{_bindir}
-%make_install PYTHON=%{__python3}
+make install DESTDIR=%{buildroot} PYTHON=%{__python3}
# Create /run/hplip & /var/lib/hp
mkdir -p %{buildroot}/run/hplip
@@ -696,9 +333,8 @@ rm -rf %{buildroot}%{_sysconfdir}/sane.d \
%{buildroot}%{_docdir} \
%{buildroot}%{_datadir}/hal/fdi \
%{buildroot}%{_datadir}/hplip/pkservice.py \
- %{buildroot}%{_bindir}/hp-pkservice
-
-rm -rf %{buildroot}%{_datadir}/hplip/locatedriver* \
+ %{buildroot}%{_bindir}/hp-pkservice \
+ %{buildroot}%{_datadir}/hplip/locatedriver* \
%{buildroot}%{_datadir}/hplip/dat2drv*
rm -f %{buildroot}%{_bindir}/hp-logcapture \
@@ -713,7 +349,6 @@ rm -f %{buildroot}%{_bindir}/foomatic-rip \
%{buildroot}%{_libdir}/*.la \
%{buildroot}%{python3_sitearch}/*.la \
%{buildroot}%{_libdir}/libhpip.so \
- %{buildroot}%{_libdir}/libhpmud.so \
%{buildroot}%{_libdir}/libhpipp.so \
%{buildroot}%{_libdir}/libhpdiscovery.so \
%{buildroot}%{_libdir}/sane/*.la \
@@ -721,76 +356,8 @@ rm -f %{buildroot}%{_bindir}/foomatic-rip \
%{buildroot}%{_datadir}/applications/hplip.desktop \
%{buildroot}%{_datadir}/ppd/HP/*.ppd
-rm -f %{buildroot}%{_datadir}/hplip/hpaio.desc
-
-rm -rf %{buildroot}%{_datadir}/hplip/install.* \
- %{buildroot}%{_datadir}/hplip/uninstall.* \
- %{buildroot}%{_bindir}/hp-uninstall \
- %{buildroot}%{_datadir}/hplip/upgrade.* \
- %{buildroot}%{_bindir}/hp-upgrade \
- %{buildroot}%{_datadir}/hplip/hplip-install
-
-rm -f %{buildroot}%{_datadir}/hplip/hpijs.drv.in.template
-
-rm -f %{buildroot}%{_datadir}/cups/mime/pstotiff.types \
- %{buildroot}%{_datadir}/hplip/fax/pstotiff*
-
-rm -f %{buildroot}%{_datadir}/hplip/hplip-install
-
-rm -f %{buildroot}%{_unitdir}/hplip-printer@.service
-
-rm -f %{buildroot}%{_datadir}/ipp-usb/quirks/HPLIP.conf
-
-rm -rf %{buildroot}%{_bindir}/hp-unload \
- %{buildroot}%{_datadir}/%{name}/pcard
-
-# The systray applet doesn't work properly (displays icon as a
-# window), so don't ship the launcher yet.
-rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
-
-%if 0%{?rhel} > 8
-rm -rf %{buildroot}%{_bindir}/hp-check \
- %{buildroot}%{_bindir}/hp-devicesettings \
- %{buildroot}%{_bindir}/hp-diagnose_plugin \
- %{buildroot}%{_bindir}/hp-faxsetup \
- %{buildroot}%{_bindir}/hp-linefeedcal \
- %{buildroot}%{_bindir}/hp-makecopies \
- %{buildroot}%{_bindir}/hp-print \
- %{buildroot}%{_bindir}/hp-printsettings \
- %{buildroot}%{_bindir}/hp-systray \
- %{buildroot}%{_bindir}/hp-scan \
- %{buildroot}%{_bindir}/hp-toolbox \
- %{buildroot}%{_bindir}/hp-uiscan \
- %{buildroot}%{_bindir}/hp-wificonfig \
- %{buildroot}%{_datadir}/applications/*.desktop \
- %{buildroot}%{_datadir}/metainfo/hplip.appdata.xml \
- %{buildroot}%{_datadir}/icons/hicolor/*/apps/* \
- %{buildroot}%{_datadir}/hplip/base/imageprocessing.py* \
- %{buildroot}%{_datadir}/hplip/check.py* \
- %{buildroot}%{_datadir}/hplip/devicesettings.py* \
- %{buildroot}%{_datadir}/hplip/diagnose_plugin.py* \
- %{buildroot}%{_datadir}/hplip/faxsetup.py* \
- %{buildroot}%{_datadir}/hplip/linefeedcal.py* \
- %{buildroot}%{_datadir}/hplip/makecopies.py* \
- %{buildroot}%{_datadir}/hplip/print.py* \
- %{buildroot}%{_datadir}/hplip/printsettings.py* \
- %{buildroot}%{_datadir}/hplip/systray.py* \
- %{buildroot}%{_datadir}/hplip/scan.py* \
- %{buildroot}%{_datadir}/hplip/toolbox.py* \
- %{buildroot}%{_datadir}/hplip/uiscan.py* \
- %{buildroot}%{_datadir}/hplip/wificonfig.py* \
- %{buildroot}%{_datadir}/hplip/data/images \
- %{buildroot}%{_datadir}/hplip/scan \
- %{buildroot}%{_datadir}/hplip/ui5 \
- %{buildroot}%{_docdir}/hplip/hpscan.html \
- doc/hpscan.html
-%endif
-
-install -p -m755 hp-plugin %{buildroot}%{_bindir}/hp-plugin-download
-
-%if 0%{?rhel} <= 8 || 0%{?fedora}
-mkdir -p %{buildroot}%{_datadir}/metainfo
-cp %{SOURCE3} %{buildroot}%{_datadir}/metainfo/
+mkdir -p %{buildroot}%{_datadir}/appdata
+cp %{SOURCE3} %{buildroot}%{_datadir}/appdata/
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{16x16,32x32,64x64}/apps
install -p -m644 %{buildroot}%{_datadir}/hplip/data/images/16x16/hp_logo.png \
@@ -806,27 +373,14 @@ sed -i -e '/^Categories=/d' hplip.desktop
sed -i -e '/^Encoding=/d' hplip.desktop
desktop-file-validate hplip.desktop
-desktop-file-install \
+desktop-file-install --vendor HP \
--dir %{buildroot}/%{_datadir}/applications \
- --add-category System \
- --add-category Settings \
+ --add-category System \
+ --add-category Settings \
--add-category HardwareSettings \
hplip.desktop
-appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.appdata.xml
-
-# install hp-uiscan desktop file
-sed -i 's/\/usr\/share\/icons\/Humanity\/devices\/48\/printer\.svg/hp_logo/' hp-uiscan.desktop
-
-desktop-file-validate hp-uiscan.desktop
-
-desktop-file-install \
- --dir %{buildroot}/%{_datadir}/applications \
- --add-category Graphics \
- --add-category Scanning \
- --add-category Application \
- hp-uiscan.desktop
-%endif
+appstream-util validate-relax --nonet %{buildroot}%{_datadir}/appdata/*.appdata.xml
# Regenerate hpcups PPDs on upgrade if necessary (bug #579355).
install -p -m755 %{SOURCE1} %{buildroot}%{_bindir}/hpcups-update-ppds
@@ -841,11 +395,34 @@ find doc/images -type f -exec chmod 644 {} \;
# SELinux file context (bug #564551).
%{__mkdir_p} %{buildroot}%{_datadir}/hplip/prnt/plugins
-%post
-# timeout is to prevent possible freeze during update
-%{_bindir}/timeout 10m -k 15m %{_bindir}/hpcups-update-ppds &>/dev/null ||:
+# Remove files we don't want to package.
+rm -f %{buildroot}%{_datadir}/hplip/hpaio.desc
+rm -f %{buildroot}%{_datadir}/hplip/hplip-install
+rm -rf %{buildroot}%{_datadir}/hplip/install.*
+rm -f %{buildroot}%{_datadir}/hplip/uninstall.*
+rm -f %{buildroot}%{_bindir}/hp-uninstall
+rm -f %{buildroot}%{_datadir}/hplip/upgrade.*
+rm -f %{buildroot}%{_bindir}/hp-upgrade
+rm -f %{buildroot}%{_datadir}/hplip/hpijs.drv.in.template
+rm -f %{buildroot}%{_datadir}/cups/mime/pstotiff.types
+rm -f %{buildroot}%{_datadir}/hplip/fax/pstotiff*
+rm -f %{buildroot}%{_unitdir}/hplip-printer@.service
-%ldconfig_scriptlets libs
+# The systray applet doesn't work properly (displays icon as a
+# window), so don't ship the launcher yet.
+rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
+
+# hp-setup needs to have cups service enabled and running for setups of queues
+%pre
+%{_bindir}/systemctl start cups &>/dev/null ||:
+%{_bindir}/systemctl enable cups &>/dev/null ||:
+
+%post
+%{_bindir}/hpcups-update-ppds &>/dev/null ||:
+
+%post libs -p /sbin/ldconfig
+
+%postun libs -p /sbin/ldconfig
%files
@@ -858,6 +435,7 @@ find doc/images -type f -exec chmod 644 {} \;
%{_bindir}/hp-clean
%{_bindir}/hp-colorcal
%{_bindir}/hp-config_usb_printer
+%{_bindir}/hp-diagnose_plugin
%{_bindir}/hp-diagnose_queues
%{_bindir}/hp-fab
%{_bindir}/hp-firmware
@@ -865,20 +443,17 @@ find doc/images -type f -exec chmod 644 {} \;
%{_bindir}/hp-levels
%{_bindir}/hp-makeuri
%{_bindir}/hp-plugin
-%{_bindir}/hp-plugin-download
%{_bindir}/hp-probe
%{_bindir}/hp-query
-%if 0%{?rhel} <= 8 || 0%{?fedora}
%{_bindir}/hp-scan
-%endif
%{_bindir}/hp-sendfax
%{_bindir}/hp-setup
%{_bindir}/hp-testpage
%{_bindir}/hp-timedate
+%{_bindir}/hp-unload
%{_cups_serverbin}/backend/hp
%{_cups_serverbin}/backend/hpfax
# ex-hpijs
-%{_cups_serverbin}/filter/hpcdmfax
%{_cups_serverbin}/filter/hpcups
%{_cups_serverbin}/filter/hpcupsfax
%{_cups_serverbin}/filter/hpps
@@ -892,6 +467,7 @@ find doc/images -type f -exec chmod 644 {} \;
%{_datadir}/hplip/clean.py*
%{_datadir}/hplip/colorcal.py*
%{_datadir}/hplip/config_usb_printer.py*
+%{_datadir}/hplip/diagnose_plugin.py*
%{_datadir}/hplip/diagnose_queues.py*
%{_datadir}/hplip/fab.py*
%{_datadir}/hplip/fax
@@ -906,9 +482,7 @@ find doc/images -type f -exec chmod 644 {} \;
%{_datadir}/hplip/plugin.py*
%{_datadir}/hplip/probe.py*
%{_datadir}/hplip/query.py*
-%if 0%{?rhel} <= 8 || 0%{?fedora}
%{_datadir}/hplip/scan.py*
-%endif
%{_datadir}/hplip/sendfax.py*
%{_datadir}/hplip/setup.py*
%{_datadir}/hplip/testpage.py*
@@ -922,10 +496,9 @@ find doc/images -type f -exec chmod 644 {} \;
%{_datadir}/hplip/data/pcl
%{_datadir}/hplip/data/ps
%{_datadir}/hplip/installer
+%{_datadir}/hplip/pcard
%{_datadir}/hplip/prnt
-%if 0%{?rhel} <= 8 || 0%{?fedora}
%{_datadir}/hplip/scan
-%endif
%{_datadir}/ppd
%{_sharedstatedir}/hp
%dir %attr(0775,root,lp) /run/hplip
@@ -947,16 +520,16 @@ find doc/images -type f -exec chmod 644 {} \;
%{_libdir}/libhpipp.so.0.0.1
%{_libdir}/libhpdiscovery.so.0
%{_libdir}/libhpdiscovery.so.0.0.1
+# The so symlink is required here (see bug #489059).
+%{_libdir}/libhpmud.so
%{_libdir}/libhpmud.so.0
%{_libdir}/libhpmud.so.0.0.6
# Python extension
%{python3_sitearch}/*
-%if 0%{?rhel} <= 8 || 0%{?fedora}
%files gui
%{_bindir}/hp-check
%{_bindir}/hp-devicesettings
-%{_bindir}/hp-diagnose_plugin
%{_bindir}/hp-faxsetup
%{_bindir}/hp-linefeedcal
%{_bindir}/hp-makecopies
@@ -964,15 +537,13 @@ find doc/images -type f -exec chmod 644 {} \;
%{_bindir}/hp-printsettings
%{_bindir}/hp-systray
%{_bindir}/hp-toolbox
-%{_bindir}/hp-uiscan
%{_bindir}/hp-wificonfig
%{_datadir}/applications/*.desktop
-%{_datadir}/metainfo/hplip.appdata.xml
+%{_datadir}/appdata/hplip.appdata.xml
# Files
%{_datadir}/icons/hicolor/*/apps/*
%{_datadir}/hplip/check.py*
%{_datadir}/hplip/devicesettings.py*
-%{_datadir}/hplip/diagnose_plugin.py*
%{_datadir}/hplip/faxsetup.py*
%{_datadir}/hplip/linefeedcal.py*
%{_datadir}/hplip/makecopies.py*
@@ -980,12 +551,10 @@ find doc/images -type f -exec chmod 644 {} \;
%{_datadir}/hplip/printsettings.py*
%{_datadir}/hplip/systray.py*
%{_datadir}/hplip/toolbox.py*
-%{_datadir}/hplip/uiscan.py*
%{_datadir}/hplip/wificonfig.py*
# Directories
%{_datadir}/hplip/data/images
%{_datadir}/hplip/ui5
-%endif
%files -n libsane-hpaio
%{_libdir}/sane/libsane-*.so
@@ -994,508 +563,17 @@ find doc/images -type f -exec chmod 644 {} \;
%config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio
%changelog
-* Fri Jan 09 2026 Zdenek Dohnal - 3.25.8-1
-- hplip-3.25.8 is available (fedora#2415311)
-
-* Wed Sep 17 2025 Zdenek Dohnal - 3.25.6-1
-- hp-scan command failed to run and gives an error (fedora#2395809)
-- use new GPG key from HP - new key was used as fix for CVE-2025-43023
-
-* Tue Aug 12 2025 Zdenek Dohnal - 3.25.6-1
-- hplip-3.25.6 is available (fedora#2386814)
-
-* Thu Jul 24 2025 Fedora Release Engineering - 3.25.2-8
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
-
-* Thu Jun 19 2025 Zdenek Dohnal - 3.25.2-7
-- Python 3.14 removed URLopener
-
-* Mon Jun 02 2025 Python Maint - 3.25.2-6
-- Rebuilt for Python 3.14
-
-* Mon May 26 2025 Zdenek Dohnal - 3.25.2-5
-- hp-toolbox shows traceback when closing and there is no HP device (fedora#2360501)
-
-* Mon May 12 2025 Zdenek Dohnal - 3.25.2-4
-- plugin.conf now looks to use sha256 as well per email comms with HP, drop the revert
-
-* Wed May 07 2025 Zdenek Dohnal - 3.25.2-3
-- hp-plugin failed checksum due usage of different hashes (fedora#2361230)
-- output is not seen after installing plugin (fedora#2361230)
-
-* Wed Apr 16 2025 Zdenek Dohnal - 3.25.2-2
-- remove Recommends on hplip-gui due complaint at (fedora#2360020)
-
-* Fri Apr 11 2025 Zdenek Dohnal - 3.25.2-1
-- hplip-3.25.2 is available (fedora#2353147)
-
-* Thu Apr 03 2025 FeRD (Frank Dana) - 3.24.5-5
-- hp-plugin: Use rpm queryformat to get version (no gawk dependency)
-
-* Thu Apr 03 2025 FeRD (Frank Dana) - 3.24.4-5
-- Use weak rich dependency for hplip-gui
-
-* Wed Apr 02 2025 FeRD (Frank Dana) - 3.24.4-5
-- Format QDateTime strings in Status History table, elsewhere
-
-* Wed Apr 02 2025 Zdenek Dohnal - 3.24.4-5
-- hp-plugin-download did not follow redirections and was missing '-o' in grep
-
-* Mon Mar 03 2025 Zdenek Dohnal - 3.24.4-4
-- enable following links with curl in all use cases (fedora#2349177)
-
-* Tue Feb 11 2025 Zdenek Dohnal - 3.24.4-3
-- require setup because of lp group
-
-* Fri Jan 24 2025 Zdenek Dohnal - 3.24.4-2
-- fix FTBFS (fedora#2340616)
-
-* Fri Jan 17 2025 Fedora Release Engineering - 3.24.4-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
-
-* Tue Jul 23 2024 Zdenek Dohnal - 3.24.4-1
-- 2292623 - hplip-3.24.4 is available
-
-* Thu Jul 18 2024 Fedora Release Engineering - 3.23.12-8
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
-
-* Fri Jun 07 2024 Python Maint - 3.23.12-7
-- Rebuilt for Python 3.13
-
-* Thu Mar 21 2024 Zdenek Dohnal - 3.23.12-6
-- hp-plugin-download - curl removed --create-dir parameter
-
-* Mon Mar 18 2024 Zdenek Dohnal - 3.23.12-5
-- 2270031 - hp-firmware: module 'locale' not longer provides method 'format', causing traceback
-
-* Wed Jan 24 2024 Fedora Release Engineering - 3.23.12-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
-
-* Sat Jan 20 2024 Fedora Release Engineering - 3.23.12-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
-
-* Fri Jan 19 2024 Zdenek Dohnal - 3.23.12-2
-- add fallback url to hp-plugin-download
-
-* Mon Jan 08 2024 Zdenek Dohnal - 3.23.12-1
-- 2252302 - hplip-3.23.12 is available
-
-* Tue Oct 03 2023 Zdenek Dohnal - 3.23.8-1
-- 2239465 - hplip-3.23.8 is available
-
-* Tue Oct 03 2023 Zdenek Dohnal - 3.23.5-10
-- BSD-3-Clause-HP and python-ldap are added into SPDX list
-
-* Thu Aug 24 2023 Zdenek Dohnal - 3.23.5-9
-- hp-check: use pkgconf when checking for cups version
-
-* Thu Aug 03 2023 Zdenek Dohnal - 3.23.5-8
-- fallback to using external plugin for Hbpl1 printers
-
-* Fri Jul 28 2023 Zdenek Dohnal - 3.23.5-7
-- SPDX migration
-
-* Thu Jul 27 2023 Zdenek Dohnal - 3.23.5-6
-- remove redundant files
-
-* Fri Jul 21 2023 Zdenek Dohnal - 3.23.5-6
-- fix syntax warnings
-
-* Thu Jul 20 2023 Fedora Release Engineering - 3.23.5-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
-
-* Tue Jul 18 2023 Adam Williamson - 3.23.5-4
-- Require curl, not curl-minimal, due to conflicts
-
-* Mon Jul 17 2023 Zdenek Dohnal - 3.23.5-3
-- 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed
-- switch to curl when downloading plugin
-- 2221311 - [python3.12] hplip tools/binaries crash due depending on removed configparser.readfp()
-
-* Tue Jun 13 2023 Python Maint - 3.23.5-2
-- Rebuilt for Python 3.12
-
-* 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
-
-* Thu Dec 01 2022 Zdenek Dohnal - 3.22.10-3
-- 2148210 - hplip: pcardext Python extension broken
-- stop shipping hp-unload, since it depends on pcardext
-
-* Thu Nov 24 2022 Florian Weimer - 3.22.10-2
-- C99 compatibility fixes
-- Stop building the pcardext Python extension because it unusable (#2148210)
-
-* Wed Nov 23 2022 Zdenek Dohnal - 3.22.10-1
-- 2139309 - hplip-3.22.10 is available
-
-* Wed Oct 19 2022 Zdenek Dohnal - 3.22.6-5
-- distutils will be removed in Python3.12, use setuptools now
-
-* Thu Oct 13 2022 Zdenek Dohnal - 3.22.6-4
-- bump the NVR
-
-* Thu Oct 13 2022 Zdenek Dohnal - 3.22.6-3
-- 2129849 - hp-plugin unable to load plugin.conf - add a new backup download script
-
-* Thu Jul 21 2022 Fedora Release Engineering - 3.22.6-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
-
-* Tue Jul 19 2022 Zdenek Dohnal - 3.22.6-1
-- 2101790 - hplip-3.22.6 is available
-
-* Mon Jul 18 2022 Zdenek Dohnal - 3.22.4-3
-- recommend libsane-hpaio - duplicated scanners are better than no scanner
-
-* Mon Jun 13 2022 Python Maint - 3.22.4-2
-- Rebuilt for Python 3.11
-
-* Tue May 17 2022 Zdenek Dohnal - 3.22.4-1
-- 2080235 - Misleading errors about missing shared libraries when scanning
-
-* Wed May 11 2022 Zdenek Dohnal - 3.22.4-1
-- 2079740 - hplip-3.22.4 is available
-
-* Mon Mar 28 2022 Zdenek Dohnal - 3.22.2-2
-- make libsane-hpaio only suggested to prevent possible duplicated scanner devices
-
-* Thu Mar 10 2022 Zdenek Dohnal - 3.22.2-1
-- 2059085 - hplip-3.22.2 is available
-
-* Thu Jan 20 2022 Fedora Release Engineering - 3.21.12-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
-
-* Mon Jan 17 2022 Zdenek Dohnal - 3.21.12-1
-- 2015910 - [GUI] hp-setup crashes when loading smart_install module
-
-* Fri Jan 14 2022 Zdenek Dohnal - 3.21.12-1
-- 1959242 - hplip-3.21.12 is available
-
-* Fri Dec 03 2021 Zdenek Dohnal - 3.21.2-15
-- 2028697 - hp-setup trackbacks when hplip-gui RPM is not installed
-
-* Tue Nov 23 2021 Zdenek Dohnal - 3.21.2-14
-- 2025853 - hplip: double "and" in license
-
-* Tue Oct 26 2021 Zdenek Dohnal - 3.21.2-13
-- 2015428 - python3.10 has Callable in collections.abc
-- GUI hp-setup uses avahi-browse
-- adjust osname for CoreOS/Linux
-- 2015428 - python3.10 doesn't do an implicit conversion for integer arguments
-
-* Tue Sep 14 2021 Sahana Prasad - 3.21.2-12
-- Rebuilt with OpenSSL 3.0.0
-
-* Fri Sep 03 2021 Zdenek Dohnal - 3.21.2-11
-- 1995647 - Hplip package shows as proprietary in Gnome Software
-
-* Fri Jul 30 2021 Zdenek Dohnal - 3.21.2-10
-- 1985251 - Incorrect permission for gpg directory
-- 1987141 - hp-plugin installs malformed udev files
-- fixed warning: redhatenterpriselinux distro is not found in AUTH_TYPES
-
-* Thu Jul 22 2021 Fedora Release Engineering - 3.21.2-9
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
-
-* Fri Jul 02 2021 Zdenek Dohnal - 3.21.2-8
-- 1976465 - [hplip] PY_SSIZE_T_CLEAN macro must be defined for '#' formats
-- require usbutils - needed by hp-diagnose_queues
-
-* Mon Jun 28 2021 Zdenek Dohnal - 3.21.2-7
-- sleep after utils.run() (related #1963114)
-
-* Fri Jun 11 2021 Zdenek Dohnal - 3.21.2-6
-- 1963114 - patch for hplip firmware load timeout fix
-
-* Wed Jun 09 2021 Zdenek Dohnal - 3.21.2-5
-- track hplip-repack.sh as source, to have it in srpm
-
-* Wed Jun 09 2021 Zdenek Dohnal - 3.21.2-4
-- remove redundant files
-
-* Fri Jun 04 2021 Python Maint - 3.21.2-3
-- Rebuilt for Python 3.10
-
-* Thu Apr 22 2021 Zdenek Dohnal - 3.21.2-2
-- 1951922 - hp-systray doesn't support a valid --qt5 option
-
-* Fri Feb 19 2021 Zdenek Dohnal - 3.21.2-1
-- 1929977 - hplip-3.21.2 is available
-
-* Fri Feb 19 2021 Zdenek Dohnal - 3.20.11-6
-- get out of hp-setup if the device is a standalone scanner
-
-* Thu Feb 18 2021 Zdenek Dohnal - 3.20.11-6
-- remove the old search algorithm
-
-* Fri Feb 05 2021 Zdenek Dohnal - 3.20.11-5
-- 1925259 - %pre scriptlet enables and starts cups.service, which is unnecessary
-- 1919556 - hp-fab crashed: QFileDialog.getOpenFileName is not used correctly
-
-* Tue Feb 02 2021 Zdenek Dohnal - 3.20.11-4
-- 1912147 - Enable matching for '_series' drivers in PPD search algorithm
-- rework optional gui messages
-
-* Tue Jan 26 2021 Fedora Release Engineering - 3.20.11-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
-
-* Thu Jan 14 2021 Zdenek Dohnal - 3.20.11-2
-- apply eln changes
-
-* Wed Dec 02 2020 Zdenek Dohnal - 3.20.11-1
-- 1903029 - hplip-3.20.11 is available
-
-* Thu Nov 19 2020 Zdenek Dohnal - 3.20.9-4
-- 1899410 - non-sudoers cannot authenticate because of bad username in prompt
-
-* Thu Nov 05 2020 Zdenek Dohnal - 3.20.9-3
-- make is no longer in buildroot by default
-
-* Thu Oct 22 2020 Zdenek Dohnal - 3.20.9-2
-- timeb is removed from glibc
-
-* Tue Oct 13 2020 Zdenek Dohnal - 3.20.9-2
-- downloading gpg key for plugin can take some time and wayland can
- kill the connection, work it around to prefer more stable keyservers
-
-* Mon Oct 12 2020 Zdenek Dohnal - 3.20.9-2
-- fix the patch for adding uncompressed ppd via CLI
-- fix the patch for GUI too
-
-* Fri Oct 02 2020 Zdenek Dohnal - 3.20.9-1
-- 3.20.9
-
-* Wed Sep 30 2020 Zdenek Dohnal - 3.20.6-13
-- fix bashisms in hplip-configure-python.patch
-- thanks for Daniel Pielmeier from Gentoo for review
-
-* Fri Sep 11 2020 Zdenek Dohnal - 3.20.6-12
-- move ifdef for removing hplip-gui a little in install phase
-
-* Thu Aug 27 2020 Josef Ridky - 3.20.6-11
-- Rebuilt for new net-snmp release
-
-* Tue Aug 25 2020 Zdenek Dohnal - 3.20.6-10
-- fix eln build - remove unpackaged files
-
-* Tue Aug 25 2020 Zdenek Dohnal - 3.20.6-9
-- 1772698 - dont use uninitialized value as an index
-
-* Mon Aug 24 2020 Zdenek Dohnal - 3.20.6-8
-- typo in hplip-model-mismatch.patch causes regression for 1772698
-
-* Wed Aug 05 2020 Zdenek Dohnal - 3.20.6-7
-- don't build gui for newer RHELs
-
-* Sat Aug 01 2020 Fedora Release Engineering - 3.20.6-6
-- Second attempt - Rebuilt for
- https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Tue Jul 28 2020 Zdenek Dohnal - 3.20.6-5
-- 1861055 - hplip: remove threading.Thread.isAlive method calls - use threading.Thread.is_alive()
-
-* Tue Jul 28 2020 Fedora Release Engineering - 3.20.6-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Mon Jul 13 2020 Tom Stellard - 3.20.6-3
-- Use make macros
-- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
-
-* Tue Jun 23 2020 Zdenek Dohnal - 3.20.6-2
-- appdata.xml needs to be in %%{_datadir}/metainfo
-
-* Wed Jun 17 2020 Zdenek Dohnal - 3.20.6-1
-- 3.20.6
-
-* Tue Jun 16 2020 Zdenek Dohnal - 3.20.5-6
-- remove the check for scripts which are only in hplip-gui
-
-* Tue Jun 16 2020 Zdenek Dohnal - 3.20.5-5
-- fix the optional GUI
-
-* Fri Jun 05 2020 Zdenek Dohnal - 3.20.5-4
-- 1833308 - hp-clean cannot clean HP PSC1410 - Device I/O error
-
-* Mon Jun 01 2020 Zdenek Dohnal - 3.20.5-4
-- 1794147 - HP-setup crashes with Python3 ui5 module not found error
-- 1590014 - hplip PPD search doesn't expect '-' in device name
-
-* Tue May 26 2020 Miro Hrončok - 3.20.5-3
-- Rebuilt for Python 3.9
-
-* Mon May 25 2020 Zdenek Dohnal - 3.20.5-2
-- fix infinite loop in password dialog in hp-toolbox
-
-* Thu May 14 2020 Zdenek Dohnal - 3.20.5-1
-- 3.20.5
-
-* Wed Apr 15 2020 Zdenek Dohnal - 3.20.3-5
-- model mismatch during scanning due 'HP_' string
-
-* Tue Apr 07 2020 Zdenek Dohnal - 3.20.3-4
-- add keyserver.ubuntu.com too (1821469)
-
-* Tue Apr 07 2020 Zdenek Dohnal - 3.20.3-3
-- 1821469 - use list of keyservers when trying to download gpg keys
-
-* Wed Mar 25 2020 Tom Stellard - 3.20.3-2
-- Fix some -Wreturn-type warnings
-- clang treates these as errors, so this fixes the build with clang.
-
-* Tue Mar 10 2020 Zdenek Dohnal - 3.20.3-1
-- 3.20.3
-
-* Wed Mar 04 2020 Zdenek Dohnal - 3.20.2-1
-- 3.20.2
-
-* Mon Feb 17 2020 Zdenek Dohnal - 3.19.12-4
-- 1573430 - sixext.py:to_string_utf8:UnicodeDecodeError: 'utf-8' codec can't decode bytes
-- fix pillow version check
-
-* Wed Jan 29 2020 Fedora Release Engineering - 3.19.12-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
-
-* Wed Jan 08 2020 Zdenek Dohnal - 3.19.12-2
-- 1788643 - hp-plugin needs explicit requirement for tar
-
-* Thu Dec 12 2019 Zdenek Dohnal - 3.19.12-1
-- 3.19.12
-
-* Thu Nov 28 2019 Zdenek Dohnal - 3.19.11-1
-- 3.19.11
-
-* Thu Nov 28 2019 Zdenek Dohnal - 3.19.10-3
-- 1777457 - hplip-3.19.10-2 breaks support for devices with '_series' in device id
-
-* Mon Nov 18 2019 Zdenek Dohnal - 3.19.10-2
-- 1773345 - Problems with HP M281fdw LaserJet
-
-* Fri Nov 15 2019 Zdenek Dohnal - 3.19.10-2
-- 1772698 - missing HP LaserJet 2200 driver
-
-* Fri Nov 01 2019 Zdenek Dohnal - 3.19.10-1
-- 3.19.10
-
-* Tue Oct 01 2019 Zdenek Dohnal - 3.19.8-2
-- hp-check traceback due change in python-pillow
-
-* Tue Oct 01 2019 Zdenek Dohnal - 3.19.8-1
-- 3.19.8
-
-* Tue Sep 10 2019 Zdenek Dohnal - 3.19.6-9
-- 1739855, 1740132, 1742949 - missing drivers
-
-* Mon Sep 09 2019 Zdenek Dohnal - 3.19.6-8
-- 1750111 - [abrt] hplip: syntax(): unindent does not match any outer indentation level
-
-* Fri Sep 06 2019 Zdenek Dohnal - 3.19.6-7
-- 1745317 - hp-plugin is broken on Rawhide
-
-* Mon Aug 19 2019 Miro Hrončok - 3.19.6-6
-- Rebuilt for Python 3.8
-
-* Thu Aug 08 2019 Zdenek Dohnal - 3.19.6-5
-- 1738321 - [abrt] hp-systray:BlockingIOError: [Errno 11] Resource temporarily unavailable
-
-* Thu Aug 01 2019 Zdenek Dohnal - 3.19.6-4
-- sks-keyservers.net seems more reliable
-
-* Mon Jul 29 2019 Zdenek Dohnal - 3.19.6-3
-- 1733449 - Scanner on an HP AIO printer is not detected unless libsane-hpaio is installed
-
-* Thu Jul 25 2019 Zdenek Dohnal - 3.19.6-2
-- 1727162 - [abrt] hplip: strlen(): hp killed by SIGSEGV
-
-* Fri Jul 12 2019 Zdenek Dohnal - 3.19.6-1
-- 3.19.6
-
-* Fri Jul 12 2019 Zdenek Dohnal - 3.18.12-16
-- fixing issues found by coverity scan
-
-* Thu Jul 11 2019 Zdenek Dohnal - 3.18.12-15
-- ignore symlinks when installing plugins, because they are ubuntu-specific
- and are not used, but its checking breaks plugin installation
-
-* Tue Jul 09 2019 Zdenek Dohnal - 3.18.12-14
-- remove old obsoletes and provides for hpijs, libsane-hpoj and hplip-compat-libs
-
-* Wed Jun 26 2019 Zdenek Dohnal - 3.18.12-13
-- fix #1722222 without downstream patch, just call desktop-install-file with
- other parameters
-
-* Thu Jun 20 2019 Zdenek Dohnal - 3.18.12-12
-- 1722222 - Broken hp-uiscan.desktop (upstream bug)
-
-* Thu May 16 2019 Zdenek Dohnal - 3.18.12-11
-- 1706233 - hplip FTBFS with python38
-
-* Mon Apr 15 2019 Zdenek Dohnal - 3.18.12-10
-- fix several desktop issues reported in bodhi
-
-* Thu Apr 04 2019 Zdenek Dohnal - 3.18.12-9
-- 1695716 - hpcups crashes in Compressor destructor
-
-* Mon Apr 01 2019 Zdenek Dohnal - 3.18.12-8
-- 1694663 - Cannot scan with M281fdw LaserJet - failed: Error during device I/O
-
-* Mon Apr 01 2019 Zdenek Dohnal - 3.18.12-7
-- 1694569 - hp-uiscan does not have interactive mode
-
-* Mon Mar 25 2019 Zdenek Dohnal - 3.18.12-6
-- 1684434 - Scanning broken for HP LaserJet 3052
-
-* Mon Mar 04 2019 Zdenek Dohnal - 3.18.12-5
-- 1684792 - devel-file-in-non-devel-package /usr/lib64/libhpmud.so
-
-* Tue Feb 05 2019 Zdenek Dohnal - 3.18.12-4
-- 1671513 - after 'successful' plugin installation it is not installed
-
-* Fri Feb 01 2019 Zdenek Dohnal - 3.18.12-3
-- m277-m281 printer support got some fixes, so try to do not use our downstream patch
-- hpcups-update-ppds can freeze sometimes, add timeout for to be sure
-- fixed hp-setup crash when user wants to define path to PPD file
-
-* Fri Feb 01 2019 Fedora Release Engineering - 3.18.12-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Tue Jan 08 2019 Zdenek Dohnal - 3.18.12-1
-- 3.18.12
-
-* Mon Dec 03 2018 Zdenek Dohnal - 3.18.6-12
-- Built with new net-snmp
-
-* Tue Nov 13 2018 Zdenek Dohnal - 3.18.6-11
-- 1641100 - Retrieval of signing keys for plugin verification should use a server pool
-
-* Mon Nov 12 2018 Zdenek Dohnal - 3.18.6-10
-- 1645815 - hp-check --runtime crashes involving FileNotFoundError
-
-* Mon Oct 01 2018 Tomas Korbar - 3.18.6-9
+* Tue Oct 09 2018 Tomas Korbar - 3.18.6-5
- 1594602 - Fix typos in QMessageBox constructor calls
-* Mon Oct 01 2018 Tomas Korbar - 3.18.6-8
+* Tue Oct 09 2018 Tomas Korbar - 3.18.6-4
- 1626877 - Fix AttributeError when connecting to printer via wifi
-* Tue Sep 25 2018 Tomas Korbar - 3.18.6-7
+* Tue Sep 25 2018 Tomas Korbar - 3.18.6-3
- 1566938 - Fix TypeError when printing ImportError message in hpfax
-* Tue Sep 18 2018 Tomas Korbar - 3.18.6-6
-- 1564770 - Fix TypeError when printing error object message
-
-* Tue Jul 24 2018 Zdenek Dohnal - 3.18.6-5
-- correcting license
-
-* Sat Jul 21 2018 Kevin Fenzi - 3.18.6-4
-- Rebuild for new net-snmp
-
-* Fri Jul 13 2018 Fedora Release Engineering - 3.18.6-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
-
-* Tue Jun 19 2018 Miro Hrončok - 3.18.6-2
-- Rebuilt for Python 3.7
+* Tue Sep 25 2018 Tomas Korbar - 3.18.6-2
+- 1564770 - Fix TypeError when printing error object message
* Mon Jun 11 2018 Zdenek Dohnal - 3.18.6-1
- 3.18.6, have cups running because hp tools
diff --git a/plans.fmf b/plans.fmf
deleted file mode 100644
index f4c2755..0000000
--- a/plans.fmf
+++ /dev/null
@@ -1,37 +0,0 @@
-/tier1-internal:
- plan:
- import:
- url: https://gitlab.com/redhat/centos-stream/tests/hplip.git
- name: /plans/tier1/internal
-
-/tier1-public:
- plan:
- import:
- url: https://gitlab.com/redhat/centos-stream/tests/hplip.git
- name: /plans/tier1/public
-
-/tier2-tier3-internal:
- plan:
- import:
- url: https://gitlab.com/redhat/centos-stream/tests/hplip.git
- name: /plans/tier2-tier3/internal
-
-/tier2-tier3-public:
- plan:
- import:
- url: https://gitlab.com/redhat/centos-stream/tests/hplip.git
- name: /plans/tier2-tier3/public
-
-
-/others-internal:
- plan:
- import:
- url: https://gitlab.com/redhat/centos-stream/tests/hplip.git
- name: /plans/others/internal
-
-/others-public:
- plan:
- import:
- url: https://gitlab.com/redhat/centos-stream/tests/hplip.git
- name: /plans/others/public
-
diff --git a/rpminspect.yaml b/rpminspect.yaml
deleted file mode 100644
index 3092346..0000000
--- a/rpminspect.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-badfuncs:
- allowed:
- # printers usually do not live on networks which would require
- # IPv6 due having too many hosts on one network, so it is not
- # a priority to have IPv6 support.
- # It is reported upstream at https://bugzilla.redhat.com/show_bug.cgi?id=2275938
- /usr/lib*/libhpmud.so.*:
- - gethostbyname
- - inet_addr
diff --git a/sources b/sources
index 601b241..0c9dbb3 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (hplip-3.25.8-repack.tar.gz) = e4f82215e2753bee864e5ba643be2ce3566f1691638c35c74016279f92c872713d06e38a066d283f03f3e571d10c8ac2f1539bd32f6bafd1958641d96fe11059
+SHA512 (hplip-3.18.6.tar.gz) = deb4e6e1c7e9ea7452967f7d7d7fd93e92eb59406b4978bb9b874db93bc5022b25aab012a7420ac3e991259032bc7cb749cd924c93a164544e29a4152962184f
diff --git a/upstream-key.gpg b/upstream-key.gpg
new file mode 100644
index 0000000..bccc555
--- /dev/null
+++ b/upstream-key.gpg
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.10 (GNU/Linux)
+
+mQGiBEsnpscRBACyclffkMVkXXdtY2qTT2+B6HN4hBoUxBwZBULyHFuSP9lsB7wK
+16Hl5ZTu+oy+GegzzFRrHWxBLN9i67T0plNkqDJhWUrmXR7xvX+dFc+Qrl+uPR0i
+CY1NMnWwnFh01YtYb9NAlb3bLn8RLBH8Zo60i7wfwdW9Wi1mgzmUT/UI9wCg7y6R
+VmF4RjNWJ2WRdL/jVeAB8H0D/0xfePoYWrSGzOp7+Vl+xYo5TdSrzohUUnly6xla
+UIKwlBCG/jpQqKH17803GpkFyh5FxG1Db7VWsciDv7flcBLPtn75gU2fPHXL+gnv
+r1eJ+ugQwCl4/8d4iJ5TMXmHQOW2Pd0U47OmbZYNNgtA+lXhF8n8+6w3GRhqubLF
+/9b/A/4wH37bv1shLhdLpP+9WYHc8z9+jmStVUFdAGoD/n6vOpBX+GQYaEY5Y8RS
+Wf0DFhMF6CFYNZ2ngDyvPt53M2jU7hrxXIfs/b5bLMqG2et9M/avdEWGUKTsC7wu
+0zeGtD07r9EA3WDIhxN9QEGZAq5Q3NSbedMHIVE4Ynq7VNCdsrQ0SFBMSVAgKEhQ
+IExpbnV4IEltYWdpbmcgYW5kIFByaW50aW5nKSA8aHBsaXBAaHAuY29tPohgBBMR
+AgAgBQJLJ6bHAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQc9dwzaWQR7n4
+dQCghZgIpxuTC+GhiQIO0dK9wTlbMmoAoOB252fEOvf73v8Ya8qmN1GlmYiXuQIN
+BEsnpscQCACEO/wh+X9Apok41vn+qby5YLvSuXNcub1iVSlsByv+28KQbbvXDNPh
+LP9wdO9DmzfIGwarj0uLtn0h9UWTnEpXSZ0bKJnCYc7GZpUvcNyjIuSs69hK2rLd
+38MSb1hoBaICLjZERUhe+ZGwlx7zvAIghj+ss1udwpc6PcdPNaimp+ck9/+eSpir
+BZsWRDEyYZ8r0Tzh0vCMZG3AJZvm439gsze5ImvAt+xFluYRCHMAkXaYimXAipHd
+Hudqu5B1/KNp3kRc68pDw/kzFSJ4bEdSW/3Qu5gJxb4y9XDTMipyFt1YZrP4sYJN
+EMAjIllnMHqQsK4efdNY/JSk92wEjmN/AAQLB/42X5RSrDQc9k/2RdgbRUQPXAXF
+YRySDMt4XfaQNAYiU2nQ1thxJuLzFLnp8VumzMD4tmsmBNmacVFTAMJyWZrum6eP
+dvyczSBG0e+4t6e2YCGdA8hfxJYNHCEE0i6NI7FCu2OPDqgXKsyViql7vchQAAg3
+N4ILBlcoO86JOCbugj+Yjp8mI2tzw2o3GEZLgHPD+t7ECFmeB6QypH02CXGTsTNQ
+6qt99zr86urV8Ta39Q0A6pVV81fkXaGIg1eLX7LCE5g4lV9D/G6KXYWYju3EBz/t
+eZRyrE3BrKM7MEqVUcgBwjIswBPDfJFW+H6B7Ma9RsT0efJgeruc712Z6cztiEkE
+GBECAAkFAksnpscCGwwACgkQc9dwzaWQR7mkswCcD+QNKEcLN9XmWhlzJfwzjW3N
+JgMAniNROBBXr37dCkmawTcagKSwhiUx
+=2aUQ
+-----END PGP PUBLIC KEY BLOCK-----