Compare commits

...

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

78 changed files with 4542 additions and 357 deletions

106
.gitignore vendored
View File

@ -1 +1,105 @@
SOURCES/hplip-3.18.4.tar.gz
hplip-0.9.3.tar.gz
hplip-0.9.4.tar.gz
hplip-0.9.5.tar.gz
hplip-0.9.6.tar.gz
hplip-0.9.7.tar.gz
hplip-0.9.8.tar.gz
hplip-0.9.9.tar.gz
hplip-0.9.10.tar.gz
hplip-0.9.11.tar.gz
hplip-1.6.6.tar.gz
hplip-1.6.6a.tar.gz
hplip-1.6.7.tar.gz
hplip-1.6.10.tar.gz
hplip-1.6.12.tar.gz
hplip-1.7.1.tar.gz
hplip-1.7.2.tar.gz
hplip-1.7.4a.tar.gz
hplip-2.7.6.tar.gz
hplip-2.7.7.tar.gz
hplip-2.7.9.tar.gz
hplip-2.7.10.tar.gz
hplip-2.7.12.tar.gz
hplip-2.8.2.tar.gz
hplip-2.8.5.tar.gz
hplip-2.8.6.tar.gz
hplip-2.8.6b.tar.gz
hplip-2.8.7.tar.gz
hplip-2.8.10.tar.gz
hplip-2.8.12.tar.gz
hplip-3.9.2.tar.gz
hplip-3.9.6b.tar.gz
hplip-3.9.8.tar.gz
hplip-3.9.10.tar.gz
hplip-3.9.12.tar.gz
hplip-3.10.2.tar.gz
hpcups-update-ppds.sh
hplip-3.10.5.tar.gz
hplip-3.10.6.tar.gz
/hplip-3.10.9.tar.gz
/hplip-3.11.1.tar.gz
/hplip-3.11.3.tar.gz
/hplip-3.11.3a.tar.gz
/hplip-3.11.5.tar.gz
/hplip-3.11.7.tar.gz
/hplip-3.11.10.tar.gz
/hplip-3.11.12.tar.gz
/hplip-3.12.2.tar.gz
/hplip-3.12.4.tar.gz
/hplip-3.12.6.tar.gz
/hplip-3.12.9.tar.gz
/hplip-3.12.10.tar.gz
/hplip-3.12.10a.tar.gz
/hplip-3.12.11.tar.gz
/hplip-3.13.2.tar.gz
/hplip-3.13.3.tar.gz
/hplip-3.13.4.tar.gz
/hplip-3.13.5.tar.gz
/hplip-3.13.6.tar.gz
/hplip-3.13.7.tar.gz
/hplip-3.13.8.tar.gz
/hplip-3.13.9.tar.gz
/hplip-3.13.10.tar.gz
/hplip-3.13.11.tar.gz
/hplip-3.14.1.tar.gz
/hplip-3.14.3.tar.gz
/hplip-3.14.4.tar.gz
/hplip-3.14.6.tar.gz
/hplip-3.14.10.tar.gz
/hplip-3.15.2.tar.gz
/hplip-3.15.4.tar.gz
/hplip-3.15.6.tar.gz
/hplip-3.15.7.tar.gz
/hplip-3.15.9.tar.gz
/hplip-3.15.11.tar.gz
/hplip-3.16.2.tar.gz
/hplip-3.16.3.tar.gz
/hplip-3.16.5.tar.gz
/hplip-3.16.7.tar.gz
/hplip-3.16.8.tar.gz
/hplip-3.16.9.tar.gz
/hplip-3.16.10.tar.gz
/hplip-3.16.11.tar.gz
/hplip-3.17.4.tar.gz
/hplip-3.17.6.tar.gz
/hplip-3.17.9.tar.gz
/hplip-3.17.10.tar.gz
/hplip-3.17.11.tar.gz
/hplip-3.18.3.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

View File

@ -1 +0,0 @@
ecffcd8287f1bc1491b47e25377ca5d086250798 SOURCES/hplip-3.18.4.tar.gz

View File

@ -0,0 +1,112 @@
diff -up hplip-3.21.2/Makefile.am.libimageprocessor-removal hplip-3.21.2/Makefile.am
--- hplip-3.21.2/Makefile.am.libimageprocessor-removal 2021-02-24 12:38:31.707900421 +0100
+++ hplip-3.21.2/Makefile.am 2021-02-24 12:38:31.735900172 +0100
@@ -167,7 +167,7 @@ if !HPLIP_CLASS_DRIVER
dist_hplip_SCRIPTS = hpssd.py __init__.py hpdio.py
endif #HPLIP_CLASS_DRIVER
-dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template prnt/hpcups/libImageProcessor-x86_64.so prnt/hpcups/libImageProcessor-x86_32.so
+dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template
dist_noinst_SCRIPTS += dat2drv.py install.py hplip-install init-suse-firewall init-iptables-firewall class_rpm_build.sh hplipclassdriver.spec createPPD.sh Makefile_dat2drv hpijs-drv
if !HPLIP_CLASS_DRIVER
@@ -595,7 +595,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilte
prnt/hpcups/ImageProcessor.h
hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
-hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lImageProcessor -lcups -lcupsimage -lz $(DBUS_LIBS)
+hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lcups -lcupsimage -lz $(DBUS_LIBS)
#else
#hpcupsdir = $(cupsfilterdir)
#hpcups_PROGRAMS = hpcups
@@ -685,16 +685,6 @@ endif #HPLIP_CLASS_DRIVER
install-data-hook:
if HPLIP_BUILD
- if [ \( "$(UNAME)" = "x86_64" -a -d "$(libdir)/" \) ]; then \
- cp prnt/hpcups/libImageProcessor-x86_64.so $(libdir)/ ; \
- chmod 775 $(libdir)/libImageProcessor-x86_64.so ; \
- ln -sf $(libdir)/libImageProcessor-x86_64.so $(libdir)/libImageProcessor.so ; \
- fi; \
- if [ \( \( "$(UNAME)" = "i686" -o "$(UNAME)" = "i386" \) -a -d "$(libdir)/" \) ]; then \
- cp prnt/hpcups/libImageProcessor-x86_32.so $(libdir)/ ; \
- chmod 775 $(libdir)/libImageProcessor-x86_32.so ; \
- ln -sf $(libdir)/libImageProcessor-x86_32.so $(libdir)/libImageProcessor.so ; \
- fi
if !HPLIP_CLASS_DRIVER
# If scanner build, add hpaio entry to sane dll.conf.
if [ "$(scan_build)" = "yes" ]; then \
diff -up hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp.libimageprocessor-removal hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp
--- hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp.libimageprocessor-removal 2021-02-24 12:38:31.701900474 +0100
+++ hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp 2021-02-24 12:42:49.445720549 +0100
@@ -31,7 +31,6 @@
\*****************************************************************************/
#include "HPCupsFilter.h"
-#include "ImageProcessor.h"
#include <signal.h>
#include <sys/wait.h>
@@ -659,21 +658,8 @@ int HPCupsFilter::processRasterData(cups
snprintf(hpPreProcessedRasterFile, sizeof (hpPreProcessedRasterFile), "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
- image_processor_t* imageProcessor=NULL;
- IMAGE_PROCESSOR_ERROR result;
- //added if condition to check if pinter language is "ljzjstream"
- //If so, then bypass imageprocessing functions while running HPCUPS filter.
- if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0){
- imageProcessor = imageProcessorCreate();
- }
while (cupsRasterReadHeader2(cups_raster, &cups_header))
{
- if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0){
- result = imageProcessorStartPage(imageProcessor, &cups_header);
- if (result != IPE_SUCCESS){
- dbglog("DEBUG: imageProcessorStartPage failed result = %d\n", result);
- }
- }
current_page_number++;
if (current_page_number == 1) {
@@ -772,14 +758,6 @@ int HPCupsFilter::processRasterData(cups
color_raster = rgbRaster;
black_raster = kRaster;
- if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0)
- {
- result = imageProcessorProcessLine(imageProcessor, m_pPrinterBuffer, cups_header.cupsBytesPerLine);
- if (result != IPE_SUCCESS){
- dbglog("DEBUG: imageProcessorProcessLine failed result = %d\n", result);
- }
- }
-
if ((y == 0) && !is_ljmono) {
//For ljmono, make sure that first line is not a blankRaster line.Otherwise printer
//may not skip blank lines before actual data
@@ -809,14 +787,6 @@ int HPCupsFilter::processRasterData(cups
}
} // for() loop end
- if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0)
- {
- result = imageProcessorEndPage(imageProcessor);
- if (result != IPE_SUCCESS){
- dbglog("DEBUG: imageProcessorEndPage failed result = %d\n", result);
- }
- }
-
m_Job.NewPage();
if (err != NO_ERROR) {
break;
@@ -832,10 +802,6 @@ int HPCupsFilter::processRasterData(cups
}
- if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0)
- {
- imageProcessorDestroy(imageProcessor);
- }
unlink(hpPreProcessedRasterFile);
return ret_status;
}

View File

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

View File

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

View File

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

View File

@ -1,12 +0,0 @@
diff -up hplip-3.18.6/base/validation.py.keyserver hplip-3.18.6/base/validation.py
--- hplip-3.18.6/base/validation.py.keyserver 2018-11-13 17:35:38.085322569 +0100
+++ hplip-3.18.6/base/validation.py 2018-11-13 17:36:18.026991983 +0100
@@ -42,7 +42,7 @@ class DigiSign_Verification(object):
class GPG_Verification(DigiSign_Verification):
- def __init__(self, pgp_site = 'pgp.mit.edu', key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9):
+ def __init__(self, pgp_site = 'pool.sks-keyservers.net', key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9):
self.__pgp_site = pgp_site
self.__key = key
self.__gpg = utils.which('gpg',True)

View File

@ -1,54 +0,0 @@
diff -up hplip-3.16.7/base/utils.py.ui-optional hplip-3.16.7/base/utils.py
--- hplip-3.16.7/base/utils.py.ui-optional 2016-07-15 12:12:28.000000000 +0200
+++ hplip-3.16.7/base/utils.py 2016-08-12 10:12:24.599398769 +0200
@@ -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
@@ -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")
+ # hplip-gui sub-package (Fedora) requires python3-qt5
+ log.error("Install the hplip-gui package for graphical support.")
return False
return True
@@ -2434,6 +2442,7 @@ def checkPyQtImport45():
except ImportError as e:
log.debug(e)
+ log.error("Install the hplip-gui package for graphical support.")
raise ImportError("GUI Modules PyQt4 and PyQt5 are not installed")
@@ -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)

8
gating.yaml Normal file
View File

@ -0,0 +1,8 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tedude.validation}
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.acceptance-tier.functional}

Binary file not shown.

Binary file not shown.

7
hplip-3.21.2.tar.gz.asc Normal file
View File

@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iEYEABECAAYFAmApuOMACgkQc9dwzaWQR7kddgCeNSUemyt9lpIk8a37ItEiX7XO
xXYAnjgAIdzPYdmSMFJ5Bqv1JLTv7RiC
=oTOD
-----END PGP SIGNATURE-----

31
hplip-add-ppd-crash.patch Normal file
View File

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

View File

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

44
hplip-clean-ldl.patch Normal file
View File

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

View File

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

View File

@ -233,21 +233,6 @@ index 5879a70..d246041 100644
hpwrite(buffer, strlen(buffer));
fprintf(stderr, "HP PS filter func = WriteHeader : WRITING PJL HEADER INFO\n");
return;
diff --git a/protocol/discovery/mdns.c b/protocol/discovery/mdns.c
index abca295..8dd6fa5 100644
--- a/protocol/discovery/mdns.c
+++ b/protocol/discovery/mdns.c
@@ -31,6 +31,10 @@
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
+#include <unistd.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
#include "mdns.h"
/* Convert "www.google.com" to "3www6google3com". */
diff --git a/protocol/hp_ipp.h b/protocol/hp_ipp.h
index 3853f84..de76202 100644
--- a/protocol/hp_ipp.h
@ -310,18 +295,6 @@ index af45bff..4f59b21 100644
return;
}
diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c
index ae34cfb..ffde2ad 100644
--- a/scan/sane/hpaio.c
+++ b/scan/sane/hpaio.c
@@ -41,6 +41,7 @@
#include "soap.h"
#include "soapht.h"
#include "marvell.h"
+#include "mdns.h"
#include "hpaio.h"
#include "ledm.h"
#include "sclpml.h"
diff --git a/scan/sane/http.c b/scan/sane/http.c
index 800df91..45668cd 100644
--- a/scan/sane/http.c

View File

@ -1,6 +1,6 @@
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
diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.19.6/prnt/drv/hpcups.drv.in
--- hplip-3.19.6/prnt/drv/hpcups.drv.in.deviceIDs-drv 2019-06-26 15:09:17.000000000 +0200
+++ hplip-3.19.6/prnt/drv/hpcups.drv.in 2019-07-12 08:34:02.789910485 +0200
@@ -487,7 +487,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 3820"
Attribute "NickName" "" "HP Deskjet 3820, hpcups $Version"
@ -65,24 +65,6 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
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"
@ -91,7 +73,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_g55.ppd"
Attribute "Product" "" "(HP Officejet g55 All-in-one Printer)"
}
@@ -706,7 +706,7 @@ Manufacturer "HP"
@@ -681,7 +681,7 @@ Manufacturer "HP"
ModelName "HP Officejet g85"
Attribute "NickName" "" "HP Officejet g85, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet g85 hpijs"
@ -100,7 +82,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_g85.ppd"
Attribute "Product" "" "(HP Officejet g85 All-in-one Printer)"
}
@@ -722,7 +722,7 @@ Manufacturer "HP"
@@ -697,7 +697,7 @@ Manufacturer "HP"
ModelName "HP Officejet g95"
Attribute "NickName" "" "HP Officejet g95, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet g95 hpijs"
@ -109,7 +91,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_g95.ppd"
Attribute "Product" "" "(HP Officejet g95 All-in-one Printer)"
}
@@ -770,7 +770,7 @@ Manufacturer "HP"
@@ -745,7 +745,7 @@ Manufacturer "HP"
ModelName "HP Officejet v40"
Attribute "NickName" "" "HP Officejet v40, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet v40 hpijs"
@ -118,7 +100,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_v40.ppd"
Attribute "Product" "" "(HP Officejet v40 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet v40s All-in-one Printer)"
@@ -779,7 +779,7 @@ Manufacturer "HP"
@@ -754,7 +754,7 @@ Manufacturer "HP"
ModelName "HP Officejet v40xi"
Attribute "NickName" "" "HP Officejet v40xi, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet v40xi hpijs"
@ -127,7 +109,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_v40xi.ppd"
Attribute "Product" "" "(HP Officejet v40xi All-in-one Printer)"
}
@@ -795,7 +795,7 @@ Manufacturer "HP"
@@ -770,7 +770,7 @@ Manufacturer "HP"
ModelName "HP Photosmart p1000"
Attribute "NickName" "" "HP Photosmart p1000, hpcups $Version"
Attribute "ShortNickName" "" "HP Photosmart p1000 hpijs"
@ -136,7 +118,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-photosmart_p1000.ppd"
Attribute "Product" "" "(HP Photosmart p1000/1000 Printer)"
Attribute "Product" "" "(HP Photosmart p1000xi Printer)"
@@ -804,7 +804,7 @@ Manufacturer "HP"
@@ -779,7 +779,7 @@ Manufacturer "HP"
ModelName "HP Photosmart p1100"
Attribute "NickName" "" "HP Photosmart p1100, hpcups $Version"
Attribute "ShortNickName" "" "HP Photosmart p1100 hpijs"
@ -145,7 +127,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-photosmart_p1100.ppd"
Attribute "Product" "" "(HP Photosmart p1100 Printer)"
Attribute "Product" "" "(HP Photosmart p1100xi Printer)"
@@ -821,7 +821,7 @@ Manufacturer "HP"
@@ -796,7 +796,7 @@ Manufacturer "HP"
ModelName "HP PSC 750"
Attribute "NickName" "" "HP PSC 750, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 750 hpijs"
@ -154,7 +136,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-psc_750.ppd"
Attribute "Product" "" "(HP PSC 750 All-in-one Printer)"
}
@@ -829,7 +829,7 @@ Manufacturer "HP"
@@ -804,7 +804,7 @@ Manufacturer "HP"
ModelName "HP PSC 750xi"
Attribute "NickName" "" "HP PSC 750xi, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 750xi hpijs"
@ -163,7 +145,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-psc_750xi.ppd"
Attribute "Product" "" "(HP PSC 750xi All-in-one Printer)"
}
@@ -861,7 +861,7 @@ Manufacturer "HP"
@@ -836,7 +836,7 @@ Manufacturer "HP"
ModelName "HP PSC 900 Series"
Attribute "NickName" "" "HP PSC 900 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 900 Series hpijs"
@ -172,7 +154,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-psc_900_series.ppd"
Attribute "Product" "" "(HP PSC 900 All-in-one Printer)"
}
@@ -935,7 +935,7 @@ Manufacturer "HP"
@@ -910,7 +910,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 1220c"
Attribute "NickName" "" "HP Deskjet 1220c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 1220c hpijs"
@ -181,7 +163,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_1220c.ppd"
Attribute "Product" "" "(HP Deskjet 1220c Printer)"
Attribute "Product" "" "(HP Deskjet 1220cse Printer)"
@@ -1125,7 +1125,7 @@ Manufacturer "HP"
@@ -1100,7 +1100,7 @@ Manufacturer "HP"
ModelName "HP 2000c"
Attribute "NickName" "" "HP 2000c, hpcups $Version"
Attribute "ShortNickName" "" "HP 2000c hpijs"
@ -190,7 +172,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-2000c.ppd"
Attribute "Product" "" "(HP 2000cse Printer)"
Attribute "Product" "" "(HP 2000c Printer)"
@@ -1589,7 +1589,7 @@ Manufacturer "HP"
@@ -1564,7 +1564,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 960c"
Attribute "NickName" "" "HP Deskjet 960c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 960c hpijs"
@ -199,7 +181,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_960c.ppd"
Attribute "Product" "" "(HP Deskjet 960cse Printer)"
Attribute "Product" "" "(HP Deskjet 960cxi Printer)"
@@ -1599,7 +1599,7 @@ Manufacturer "HP"
@@ -1574,7 +1574,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 980c"
Attribute "NickName" "" "HP Deskjet 980c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 980c hpijs"
@ -208,7 +190,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_980c.ppd"
Attribute "Product" "" "(HP Deskjet 980cxi Printer)"
Attribute "Product" "" "(HP Deskjet 980c Printer)"
@@ -1608,7 +1608,7 @@ Manufacturer "HP"
@@ -1583,7 +1583,7 @@ Manufacturer "HP"
ModelName "HP Deskjet 990c"
Attribute "NickName" "" "HP Deskjet 990c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 990c hpijs"
@ -217,16 +199,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_990c.ppd"
Attribute "Product" "" "(HP Deskjet 990cxi Printer)"
Attribute "Product" "" "(HP Deskjet 990cse Printer)"
@@ -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"
@@ -1613,7 +1613,7 @@ Manufacturer "HP"
ModelName "HP Officejet 7100 Series"
Attribute "NickName" "" "HP Officejet 7100 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 7100 Series hpijs"
@ -235,7 +208,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_7100_series.ppd"
Attribute "Product" "" "(HP Officejet 7100 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 7110 All-in-one Printer)"
@@ -1661,7 +1661,7 @@ Manufacturer "HP"
@@ -1628,7 +1628,7 @@ Manufacturer "HP"
ModelName "HP Officejet D Series"
Attribute "NickName" "" "HP Officejet D Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet D Series hpijs"
@ -244,7 +217,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_d_series.ppd"
Attribute "Product" "" "(HP Officejet d125xi All-in-one Printer)"
Attribute "Product" "" "(HP Officejet d135 All-in-one Printer)"
@@ -1708,7 +1708,7 @@ Manufacturer "HP"
@@ -1675,7 +1675,7 @@ Manufacturer "HP"
ModelName "HP PSC 2100 Series"
Attribute "NickName" "" "HP PSC 2100 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2100 Series hpijs"
@ -253,7 +226,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-psc_2100_series.ppd"
Attribute "Product" "" "(HP PSC 2105 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2108 All-in-one Printer)"
@@ -1721,7 +1721,7 @@ Manufacturer "HP"
@@ -1688,7 +1688,7 @@ Manufacturer "HP"
ModelName "HP PSC 2150 Series"
Attribute "NickName" "" "HP PSC 2150 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2150 Series hpijs"
@ -262,7 +235,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-psc_2150_series.ppd"
Attribute "Product" "" "(HP PSC 2150 All-in-one Printer)"
}
@@ -1729,7 +1729,7 @@ Manufacturer "HP"
@@ -1696,7 +1696,7 @@ Manufacturer "HP"
ModelName "HP PSC 2170 Series"
Attribute "NickName" "" "HP PSC 2170 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2170 Series hpijs"
@ -271,7 +244,16 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-psc_2170_series.ppd"
Attribute "Product" "" "(HP PSC 2170 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2171 All-in-one Printer)"
@@ -1951,7 +1951,7 @@ Manufacturer "HP"
@@ -1743,7 +1743,7 @@ Manufacturer "HP"
ModelName "HP Color Inkjet Printer cp1700"
Attribute "NickName" "" "HP Color Inkjet Printer cp1700, hpcups $Version"
Attribute "ShortNickName" "" "HP CJ IJ Printer cp1700 hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:hp color inkjet printer cp1700;DES:hp color inkjet printer cp1700;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:HP Color Inkjet CP1700;DES:HP Color Inkjet CP1700;"
PCFileName "hp-color_inkjet_printer_cp1700.ppd"
Attribute "Product" "" "(HP Color Inkjet cp1700 Printer)"
Attribute "Product" "" "(HP Color Inkjet cp1700ps Printer)"
@@ -1918,7 +1918,7 @@ Manufacturer "HP"
ModelName "HP Business Inkjet 2200"
Attribute "NickName" "" "HP Business Inkjet 2200, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2200 hpijs"
@ -280,7 +262,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-business_inkjet_2200.ppd"
Attribute "Product" "" "(HP Business Inkjet 2200 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2200se Printer)"
@@ -1961,7 +1961,7 @@ Manufacturer "HP"
@@ -1928,7 +1928,7 @@ Manufacturer "HP"
ModelName "HP Business Inkjet 2230"
Attribute "NickName" "" "HP Business Inkjet 2230, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2230 hpijs"
@ -289,7 +271,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-business_inkjet_2230.ppd"
Attribute "Product" "" "(HP Business Inkjet 2230 Printer)"
}
@@ -1969,7 +1969,7 @@ Manufacturer "HP"
@@ -1936,7 +1936,7 @@ Manufacturer "HP"
ModelName "HP Business Inkjet 2250"
Attribute "NickName" "" "HP Business Inkjet 2250 pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2250 hpijs"
@ -298,7 +280,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-business_inkjet_2250-pcl3.ppd"
Attribute "Product" "" "(HP Business Inkjet 2250 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2250tn Printer)"
@@ -1978,7 +1978,7 @@ Manufacturer "HP"
@@ -1945,7 +1945,7 @@ Manufacturer "HP"
ModelName "HP Business Inkjet 2280"
Attribute "NickName" "" "HP Business Inkjet 2280 pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2280 hpijs"
@ -307,7 +289,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-business_inkjet_2280-pcl3.ppd"
Attribute "Product" "" "(HP Business Inkjet 2280 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2280tn Printer)"
@@ -2740,7 +2740,7 @@ Manufacturer "HP"
@@ -2689,7 +2689,7 @@ Manufacturer "HP"
ModelName "HP Officejet 7200 Series"
Attribute "NickName" "" "HP Officejet 7200 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 7200 Series hpijs"
@ -316,7 +298,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_7200_series.ppd"
Attribute "Product" "" "(HP Officejet 7205 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 7208 All-in-one Printer)"
@@ -2764,7 +2764,7 @@ Manufacturer "HP"
@@ -2713,7 +2713,7 @@ Manufacturer "HP"
ModelName "HP Officejet 7400 Series"
Attribute "NickName" "" "HP Officejet 7400 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 7400 Series hpijs"
@ -325,7 +307,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_7400_series.ppd"
Attribute "Product" "" "(HP Officejet 7408 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 7410 All-in-one Printer)"
@@ -2810,7 +2810,7 @@ Manufacturer "HP"
@@ -2757,7 +2757,7 @@ Manufacturer "HP"
ModelName "HP Officejet j5700 Series"
Attribute "NickName" "" "HP Officejet j5700 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet j5700 Series hpijs"
@ -334,7 +316,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_j5700_series.ppd"
Attribute "Product" "" "(HP Officejet j5725 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet j5785 All-in-one Printer)"
@@ -3488,7 +3488,7 @@ Manufacturer "HP"
@@ -3391,7 +3391,7 @@ Manufacturer "HP"
ModelName "HP PSC 2200 Series"
Attribute "NickName" "" "HP PSC 2200 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2200 Series hpijs"
@ -343,7 +325,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-psc_2200_series.ppd"
Attribute "Product" "" "(HP PSC 2200 All-in-one Printer)"
}
@@ -3506,7 +3506,7 @@ Manufacturer "HP"
@@ -3409,7 +3409,7 @@ Manufacturer "HP"
ModelName "HP PSC 2300 Series"
Attribute "NickName" "" "HP PSC 2300 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2300 Series hpijs"
@ -352,7 +334,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
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)"
@@ -3514,8 +3514,7 @@ Manufacturer "HP"
@@ -3417,8 +3417,7 @@ Manufacturer "HP"
{
ModelName "HP PSC 2350 Series"
Attribute "NickName" "" "HP PSC 2350 Series, hpcups $Version"
@ -362,7 +344,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-psc_2350_series.ppd"
Attribute "Product" "" "(HP PSC 2350 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 2358 All-in-one Printer)"
@@ -3545,7 +3544,7 @@ Manufacturer "HP"
@@ -3448,7 +3447,7 @@ Manufacturer "HP"
ModelName "HP PSC 2500 Series"
Attribute "NickName" "" "HP PSC 2500 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 2500 Series hpijs"
@ -371,7 +353,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
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)"
@@ -7134,7 +7133,7 @@ Manufacturer "HP"
@@ -7023,7 +7022,7 @@ Manufacturer "HP"
ModelName "HP Officejet 6100"
Attribute "NickName" "" "HP Officejet 6100, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 6100 hpijs"
@ -380,7 +362,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_6100.ppd"
Attribute "Product" "" "(HP Officejet 6100 Eprinter h611a)"
}
@@ -16828,7 +16827,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
@@ -16708,7 +16707,7 @@ Manufacturer "HP"
ModelName "HP Officejet 4100 Series"
Attribute "NickName" "" "HP Officejet 4100 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 4100 Series hpijs"
@ -389,7 +371,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
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)"
@@ -16855,7 +16854,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
@@ -16735,7 +16734,7 @@ Manufacturer "HP"
ModelName "HP Officejet 4300 Series"
Attribute "NickName" "" "HP Officejet 4300 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 4300 Series hpijs"
@ -398,7 +380,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_4300_series.ppd"
Attribute "Product" "" "(HP Officejet 4308 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 4338 All-in-one Printer)"
@@ -16887,7 +16886,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
@@ -16767,7 +16766,7 @@ Manufacturer "HP"
ModelName "HP PSC 1100 Series"
Attribute "NickName" "" "HP PSC 1100 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 1100 Series hpijs"
@ -407,7 +389,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-psc_1100_series.ppd"
Attribute "Product" "" "(HP PSC 1110 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 1110v All-in-one Printer)"
@@ -16897,7 +16896,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
@@ -16777,7 +16776,7 @@ Manufacturer "HP"
ModelName "HP PSC 1200 Series"
Attribute "NickName" "" "HP PSC 1200 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 1200 Series hpijs"
@ -416,7 +398,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-psc_1200_series.ppd"
Attribute "Product" "" "(HP PSC 1200 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 1217 All-in-one Printer)"
@@ -17200,7 +17199,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
@@ -17077,7 +17076,7 @@ Manufacturer "HP"
ModelName "HP Officejet 4200 Series"
Attribute "NickName" "" "HP Officejet 4200 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 4200 Series hpijs"
@ -425,7 +407,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_4200_series.ppd"
Attribute "Product" "" "(HP Officejet 4200 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet 4211 All-in-one Printer)"
@@ -17265,7 +17264,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
@@ -17142,7 +17141,7 @@ Manufacturer "HP"
ModelName "HP Officejet j3600 Series"
Attribute "NickName" "" "HP Officejet j3600 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet j3600 Series hpijs"
@ -434,7 +416,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_j3600_series.ppd"
Attribute "Product" "" "(HP Officejet j3608 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet j3625 All-in-one Printer)"
@@ -17768,6 +17767,7 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
@@ -17639,6 +17638,7 @@ Manufacturer "HP"
Attribute "NickName" "" "HP Photosmart 380 Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Photosmart 380 Series hpijs"
Attribute "1284DeviceID" "" "MFG:HP;MDL:photosmart 380 series;DES:photosmart 380 series;"
@ -442,7 +424,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-photosmart_380_series.ppd"
Attribute "Product" "" "(HP Photosmart 385 Compact Photo Printer)"
Attribute "Product" "" "(HP Photosmart 385xi Compact Photo Printer)"
@@ -19573,7 +19573,7 @@ Group "RLT/HP Real Life Technologies"
@@ -19378,7 +19378,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Business Inkjet 2300"
Attribute "NickName" "" "HP Business Inkjet 2300 pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2300 hpijs"
@ -451,7 +433,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-business_inkjet_2300-pcl3.ppd"
Attribute "Product" "" "(HP Business Inkjet 2300 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2300n Printer)"
@@ -19973,7 +19973,7 @@ Group "RLT/HP Real Life Technologies"
@@ -19759,7 +19759,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet 9100 Series"
Attribute "NickName" "" "HP Officejet 9100 Series pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet 9100 Series hpijs"
@ -460,7 +442,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
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)"
@@ -20057,7 +20057,7 @@ Group "RLT/HP Real Life Technologies"
@@ -19843,7 +19843,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Business Inkjet 2800"
Attribute "NickName" "" "HP Business Inkjet 2800 pcl3, hpcups $Version"
Attribute "ShortNickName" "" "HP Business Inkjet 2800 hpijs"
@ -469,7 +451,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-business_inkjet_2800-pcl3.ppd"
Attribute "Product" "" "(HP Business Inkjet 2800 Printer)"
Attribute "Product" "" "(HP Business Inkjet 2800dt Printer)"
@@ -20600,7 +20600,7 @@ Group "RLT/HP Real Life Technologies"
@@ -20379,7 +20379,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Lx"
Attribute "NickName" "" "HP Officejet Lx, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Lx hpijs"
@ -478,7 +460,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_lx.ppd"
Attribute "Product" "" "(HP Officejet Lx All-in-one Printer)"
}
@@ -20737,7 +20737,7 @@ Group "RLT/HP Real Life Technologies"
@@ -20516,7 +20516,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 540"
Attribute "NickName" "" "HP Deskjet 540, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 540 hpijs"
@ -487,7 +469,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_540.ppd"
Attribute "Product" "" "(HP Deskjet 540 Printer)"
}
@@ -20745,7 +20745,7 @@ Group "RLT/HP Real Life Technologies"
@@ -20524,7 +20524,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 400"
Attribute "NickName" "" "HP Deskjet 400, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 400 hpijs"
@ -496,7 +478,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_400.ppd"
Attribute "Product" "" "(HP Deskjet 400 Printer)"
Attribute "Product" "" "(HP Deskjet 400 Color Capable Printer)"
@@ -20762,7 +20762,7 @@ Group "RLT/HP Real Life Technologies"
@@ -20541,7 +20541,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Series 300"
Attribute "NickName" "" "HP Officejet Series 300, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Series 300 hpijs"
@ -505,7 +487,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_series_300.ppd"
Attribute "Product" "" "(HP Officejet 300 All-in-one Printer)"
}
@@ -20895,7 +20895,7 @@ Group "RLT/HP Real Life Technologies"
@@ -20674,7 +20674,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 630c"
Attribute "NickName" "" "HP Deskjet 630c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 630c hpijs"
@ -514,7 +496,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_630c.ppd"
Attribute "Product" "" "(HP Deskjet 630c Printer)"
}
@@ -20911,7 +20911,7 @@ Group "RLT/HP Real Life Technologies"
@@ -20690,7 +20690,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 656c"
Attribute "NickName" "" "HP Deskjet 656c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 656c hpijs"
@ -523,7 +505,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_656c.ppd"
Attribute "Product" "" "(HP Deskjet 656c Printer)"
Attribute "Product" "" "(HP Deskjet 656cvr Printer)"
@@ -21024,7 +21024,7 @@ Group "RLT/HP Real Life Technologies"
@@ -20803,7 +20803,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 600"
Attribute "NickName" "" "HP Deskjet 600, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 600 hpijs"
@ -532,7 +514,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_600.ppd"
Attribute "Product" "" "(HP Deskjet 600c Printer)"
Attribute "Product" "" "(HP Deskjet 600 Printer)"
@@ -21065,7 +21065,7 @@ Group "RLT/HP Real Life Technologies"
@@ -20843,7 +20843,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 670c"
Attribute "NickName" "" "HP Deskjet 670c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 670c hpijs"
@ -541,7 +523,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_670c.ppd"
Attribute "Product" "" "(HP Deskjet 670c Printer)"
}
@@ -21137,7 +21137,7 @@ Group "RLT/HP Real Life Technologies"
@@ -20915,7 +20915,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Series 600"
Attribute "NickName" "" "HP Officejet Series 600, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Series 600 hpijs"
@ -550,7 +532,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_series_600.ppd"
Attribute "Product" "" "(HP Officejet 600 All-in-one Printer)"
}
@@ -21282,7 +21282,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21060,7 +21060,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 610c"
Attribute "NickName" "" "HP Deskjet 610c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 610c hpijs"
@ -559,7 +541,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_610c.ppd"
Attribute "Product" "" "(HP Deskjet 610c Printer)"
}
@@ -21306,7 +21306,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21084,7 +21084,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 640c"
Attribute "NickName" "" "HP Deskjet 640c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 640c hpijs"
@ -568,16 +550,16 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_640c.ppd"
Attribute "Product" "" "(HP Deskjet 640c Lite Printer)"
Attribute "Product" "" "(HP Deskjet 640c Printer)"
@@ -21335,7 +21335,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21104,7 +21104,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 690c"
Attribute "NickName" "" "HP Deskjet 690c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 690c hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:deskjet 690c;DES:deskjet 690c;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:DESKJET 690C;DES:Hewlett-Packard DeskJet 690C;"
PCFileName "hp-deskjet_690c.ppd"
Attribute "Product" "" "(HP Deskjet 690 Printer)"
Attribute "Product" "" "(HP Deskjet 690c Plus Printer)"
Attribute "Product" "" "(HP Deskjet 690c Printer)"
@@ -21386,7 +21386,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21156,7 +21156,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Series 700"
Attribute "NickName" "" "HP Officejet Series 700, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Series 700 hpijs"
@ -586,7 +568,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_series_700.ppd"
Attribute "Product" "" "(HP Officejet 700 All-in-one Printer)"
}
@@ -21537,7 +21537,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21307,7 +21307,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 812c"
Attribute "NickName" "" "HP Deskjet 812c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 812c hpijs"
@ -595,7 +577,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_812c.ppd"
Attribute "Product" "" "(HP Deskjet 812c Printer)"
}
@@ -21545,7 +21545,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21315,7 +21315,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 815c"
Attribute "NickName" "" "HP Deskjet 815c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 815c hpijs"
@ -604,7 +586,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_815c.ppd"
Attribute "Product" "" "(HP Deskjet 815c Printer)"
}
@@ -21577,7 +21577,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21347,7 +21347,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 840c"
Attribute "NickName" "" "HP Deskjet 840c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 840c hpijs"
@ -613,7 +595,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_840c.ppd"
Attribute "Product" "" "(HP Deskjet 840c Printer)"
}
@@ -21585,7 +21585,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21355,7 +21355,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 841c"
Attribute "NickName" "" "HP Deskjet 841c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 841c hpijs"
@ -622,7 +604,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_841c.ppd"
Attribute "Product" "" "(HP Deskjet 841c Printer)"
}
@@ -21601,7 +21601,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21371,7 +21371,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 843c"
Attribute "NickName" "" "HP Deskjet 843c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 843c hpijs"
@ -631,7 +613,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_843c.ppd"
Attribute "Product" "" "(HP Deskjet 843c Printer)"
Attribute "Product" "" "(HP Deskjet 843cxe Printer)"
@@ -21610,7 +21610,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21380,7 +21380,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 880c"
Attribute "NickName" "" "HP Deskjet 880c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 880c hpijs"
@ -640,7 +622,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_880c.ppd"
Attribute "Product" "" "(HP Deskjet 880c Printer)"
}
@@ -21626,7 +21626,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21396,7 +21396,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 895c"
Attribute "NickName" "" "HP Deskjet 895c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 895c hpijs"
@ -649,7 +631,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_895c.ppd"
Attribute "Product" "" "(HP Deskjet 895cse Printer)"
Attribute "Product" "" "(HP Deskjet 895c Printer)"
@@ -21636,7 +21636,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21406,7 +21406,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet r40"
Attribute "NickName" "" "HP Officejet r40, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet r40 hpijs"
@ -658,7 +640,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_r40.ppd"
Attribute "Product" "" "(HP Officejet r40 All-in-one Printer)"
}
@@ -21660,7 +21660,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21430,7 +21430,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet r60"
Attribute "NickName" "" "HP Officejet r60, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet r60 hpijs"
@ -667,7 +649,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_r60.ppd"
Attribute "Product" "" "(HP Officejet r60 All-in-one Printer)"
}
@@ -21668,7 +21668,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21438,7 +21438,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet r65"
Attribute "NickName" "" "HP Officejet r65, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet r65 hpijs"
@ -676,7 +658,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_r65.ppd"
Attribute "Product" "" "(HP Officejet r65 All-in-one Printer)"
}
@@ -21676,7 +21676,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21446,7 +21446,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet r80"
Attribute "NickName" "" "HP Officejet r80, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet r80 hpijs"
@ -685,16 +667,16 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-officejet_r80.ppd"
Attribute "Product" "" "(HP Officejet r80 All-in-one Printer)"
}
@@ -21692,7 +21692,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21462,7 +21462,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet T Series"
Attribute "NickName" "" "HP Officejet T Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet T Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet t series;DES:officejet t series;"
+ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:OfficeJet T Series;DES:Hewlett-Packard OfficeJet T Series;"
PCFileName "hp-officejet_t_series.ppd"
Attribute "Product" "" "(HP Officejet t45 All-in-one Printer)"
Attribute "Product" "" "(HP Officejet t45xi All-in-one Printer)"
@@ -21703,7 +21703,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)"
@@ -21473,7 +21473,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP PSC 500"
Attribute "NickName" "" "HP PSC 500, hpcups $Version"
Attribute "ShortNickName" "" "HP PSC 500 hpijs"
@ -703,7 +685,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-psc_500.ppd"
Attribute "Product" "" "(HP PSC 500 All-in-one Printer)"
Attribute "Product" "" "(HP PSC 500xi All-in-one Printer)"
@@ -21819,7 +21819,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21589,7 +21589,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 825c"
Attribute "NickName" "" "HP Deskjet 825c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 825c hpijs"
@ -712,7 +694,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_825c.ppd"
Attribute "Product" "" "(HP Deskjet 825cvr Printer)"
Attribute "Product" "" "(HP Deskjet 825c Printer)"
@@ -21828,7 +21828,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21598,7 +21598,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 845c"
Attribute "NickName" "" "HP Deskjet 845c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 845c hpijs"
@ -721,7 +703,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_845c.ppd"
Attribute "Product" "" "(HP Deskjet 845c Printer)"
Attribute "Product" "" "(HP Deskjet 845cvr Printer)"
@@ -21939,7 +21939,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21709,7 +21709,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 850c"
Attribute "NickName" "" "HP Deskjet 850c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 850c hpijs"
@ -730,7 +712,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_850c.ppd"
Attribute "Product" "" "(HP Deskjet 850k Printer)"
Attribute "Product" "" "(HP Deskjet 850c Printer)"
@@ -21958,7 +21958,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21728,7 +21728,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 870c"
Attribute "NickName" "" "HP Deskjet 870c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 870c hpijs"
@ -739,7 +721,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_870c.ppd"
Attribute "Product" "" "(HP Deskjet 870k Printer)"
Attribute "Product" "" "(HP Deskjet 870c Printer)"
@@ -21969,7 +21969,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21739,7 +21739,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Pro 1150c"
Attribute "NickName" "" "HP Officejet Pro 1150c, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Pro 1150c hpijs"
@ -748,7 +730,7 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
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)"
@@ -22083,7 +22083,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21853,7 +21853,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Deskjet 890c"
Attribute "NickName" "" "HP Deskjet 890c, hpcups $Version"
Attribute "ShortNickName" "" "HP Deskjet 890c hpijs"
@ -757,10 +739,10 @@ diff -up hplip-3.17.11/prnt/drv/hpcups.drv.in.deviceIDs-drv hplip-3.17.11/prnt/d
PCFileName "hp-deskjet_890c.ppd"
Attribute "Product" "" "(HP Deskjet 890cse Printer)"
Attribute "Product" "" "(HP Deskjet 890c Printer)"
@@ -22092,7 +22092,7 @@ Group "RLT/HP Real Life Technologies"
@@ -21862,7 +21862,7 @@ Group "RLT/HP Real Life Technologies"
ModelName "HP Officejet Pro 1170c Series"
Attribute "NickName" "" "HP Officejet Pro 1170c Series, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Pro 1170c Series hpijs"
Attribute "ShortNickName" "" "HP OJ Pro 1170c Series hpijs"
- Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet pro 1170c series;DES:officejet pro 1170c series;"
+ Attribute "1284DeviceID" "" "MFG:HEWLETT-PACKARD;MDL:OFFICEJET PRO 1170C SERIES;DES:Hewlett-Packard OfficeJet Pro 1170C Series;"
PCFileName "hp-officejet_pro_1170c_series.ppd"

View File

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

78
hplip-error-print.patch Normal file
View File

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

13
hplip-fab-import.patch Normal file
View File

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

31
hplip-fedora-gui.patch Normal file
View File

@ -0,0 +1,31 @@
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
- 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
except ImportError:
log.debug('GUI not available.')
+ log.error('hplip-gui not installed. GUI not available.')
return False
return True

163
hplip-find-driver.patch Normal file
View File

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

View File

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

13
hplip-hpcups-crash.patch Normal file
View File

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

View File

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

21
hplip-hplj-3052.patch Normal file
View File

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

View File

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

View File

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

60
hplip-keyserver.patch Normal file
View File

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

14
hplip-lineart.patch Normal file
View File

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

View File

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

View File

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

View File

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

602
hplip-missing-drivers.patch Normal file
View File

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

13
hplip-missing-links.patch Normal file
View File

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

View File

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

25
hplip-rebase.sh Executable file
View File

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

22
hplip-repack.sh Executable file
View File

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

1178
hplip-revert-plugins.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,18 +1,18 @@
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:
diff -up hplip-3.18.12/scan.py.scan-tmp hplip-3.18.12/scan.py
--- hplip-3.18.12/scan.py.scan-tmp 2019-01-08 12:48:20.194815147 +0100
+++ hplip-3.18.12/scan.py 2019-01-08 12:50:47.942620000 +0100
@@ -1887,7 +1887,7 @@ try:
if ('editor' in dest or 'viewer' in dest or 'email' in dest or 'print' in dest) \
and not file_saved:
- output_fd, output = utils.make_temp_file(suffix='.png')
+ output_fd, output = utils.make_temp_file(dir='/var/tmp', suffix='.png')
try:
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
'''pyPlatform = platform.python_version()
num = pyPlatform.split('.')
diff -up hplip-3.18.12/scan/sane.py.scan-tmp hplip-3.18.12/scan/sane.py
--- hplip-3.18.12/scan/sane.py.scan-tmp 2018-12-03 08:10:22.000000000 +0100
+++ hplip-3.18.12/scan/sane.py 2019-01-08 12:48:20.194815147 +0100
@@ -425,7 +425,8 @@ class ScanThread(threading.Thread):
self.dev = device
self.update_queue = update_queue

View File

@ -1,18 +1,18 @@
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
diff -up hplip-3.19.6/prnt/drv/hpcups.drv.in.snmp-quirks hplip-3.19.6/prnt/drv/hpcups.drv.in
--- hplip-3.19.6/prnt/drv/hpcups.drv.in.snmp-quirks 2019-07-12 08:38:36.362527348 +0200
+++ hplip-3.19.6/prnt/drv/hpcups.drv.in 2019-07-12 08:46:28.236417835 +0200
@@ -10334,6 +10334,8 @@ Manufacturer "HP"
Attribute "NickName" "" "HP Officejet Pro 8500 a909a, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Pro 8500 a909a hpijs"
Attribute "ShortNickName" "" "HP OJ Pro 8500 a909a hpijs"
Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet pro 8500 a909a;DES:officejet pro 8500 a909a;"
+ // This device lies about its supplies capacity.
+ Attribute "cupsSNMPQuirks" "" "capacity"
PCFileName "hp-officejet_pro_8500_a909a.ppd"
Attribute "Product" "" "(HP Officejet Pro 8500 All-in-one Printer - a909a)"
}
@@ -10839,6 +10841,8 @@ CustomMedia "B5/B5 176x250mm" 498.96 708
@@ -10342,6 +10344,8 @@ Manufacturer "HP"
Attribute "NickName" "" "HP Officejet Pro 8500 a909g, hpcups $Version"
Attribute "ShortNickName" "" "HP Officejet Pro 8500 a909g hpijs"
Attribute "ShortNickName" "" "HP OJ Pro 8500 a909g hpijs"
Attribute "1284DeviceID" "" "MFG:HP;MDL:officejet pro 8500 a909g;DES:officejet pro 8500 a909g;"
+ // This device lies about its supplies capacity.
+ Attribute "cupsSNMPQuirks" "" "capacity"

View File

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

View File

@ -0,0 +1,93 @@
diff --git a/copier/copier.py b/copier/copier.py
index a595baa..7794f48 100644
--- a/copier/copier.py
+++ b/copier/copier.py
@@ -73,13 +73,13 @@ class PMLCopyDevice(device.Device):
def isCopyActive(self):
if self.copy_thread is not None:
- return self.copy_thread.isAlive()
+ return self.copy_thread.is_alive()
else:
return False
def waitForCopyThread(self):
if self.copy_thread is not None and \
- self.copy_thread.isAlive():
+ self.copy_thread.is_alive():
self.copy_thread.join()
diff --git a/fax/fax.py b/fax/fax.py
index 3d69226..0878a64 100644
--- a/fax/fax.py
+++ b/fax/fax.py
@@ -478,13 +478,13 @@ class FaxDevice(device.Device):
def isSendFaxActive(self):
if self.send_fax_thread is not None:
- return self.send_fax_thread.isAlive()
+ return self.send_fax_thread.is_alive()
else:
return False
def waitForSendFaxThread(self):
if self.send_fax_thread is not None and \
- self.send_fax_thread.isAlive():
+ self.send_fax_thread.is_alive():
try:
self.send_fax_thread.join()
diff --git a/fax/pmlfax.py b/fax/pmlfax.py
index b68ff6a..b1020d0 100644
--- a/fax/pmlfax.py
+++ b/fax/pmlfax.py
@@ -179,13 +179,13 @@ class PMLFaxDevice(FaxDevice):
def isUploadLogActive(self):
if self.upload_log_thread is not None:
- return self.upload_log_thread.isAlive()
+ return self.upload_log_thread.is_alive()
else:
return False
def waitForUploadLogThread(self):
if self.upload_log_thread is not None and \
- self.upload_log_thread.isAlive():
+ self.upload_log_thread.is_alive():
self.upload_log_thread.join()
diff --git a/scan/sane.py b/scan/sane.py
index b6c4acd..e8f8db8 100755
--- a/scan/sane.py
+++ b/scan/sane.py
@@ -378,14 +378,14 @@ class ScanDevice:
def isScanActive(self):
if self.scan_thread is not None:
- return self.scan_thread.isAlive() and self.scan_thread.scan_active
+ return self.scan_thread.is_alive() and self.scan_thread.scan_active
else:
return False
def waitForScanDone(self):
if self.scan_thread is not None and \
- self.scan_thread.isAlive() and \
+ self.scan_thread.is_alive() and \
self.scan_thread.scan_active:
try:
@@ -398,9 +398,9 @@ class ScanDevice:
#time.sleep(0.5)
if self.scan_thread is not None:
while True:
- #print self.scan_thread.isAlive()
+ #print self.scan_thread.is_alive()
#print self.scan_thread.scan_active
- if self.scan_thread.isAlive() and \
+ if self.scan_thread.is_alive() and \
self.scan_thread.scan_active:
return

12
hplip-timeb-removed.patch Normal file
View File

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

View File

@ -1,6 +1,6 @@
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
diff -up hplip-3.20.11/firmware.py.typo hplip-3.20.11/firmware.py
--- hplip-3.20.11/firmware.py.typo 2021-02-03 10:53:34.311743805 +0100
+++ hplip-3.20.11/firmware.py 2021-02-03 10:54:13.229386257 +0100
@@ -99,7 +99,7 @@ try:
if mode == GUI_MODE and (ui_toolkit == 'qt4' or ui_toolkit == 'qt5'):
if not utils.canEnterGUIMode4():

96
hplip-ui-optional.patch Normal file
View File

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

15
hplip-uiscan-help.patch Normal file
View File

@ -0,0 +1,15 @@
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__":

18
hplip-unicodeerror.patch Normal file
View File

@ -0,0 +1,18 @@
diff --git a/base/sixext.py b/base/sixext.py
index 0bf4fc4..311bf72 100644
--- a/base/sixext.py
+++ b/base/sixext.py
@@ -110,11 +110,11 @@ if PY3:
def to_string_utf8(s):
- return s.decode("utf-8")
+ return s.decode("utf-8", 'ignore')
def to_string_latin(s):
- return s.decode("latin-1")
+ return s.decode("latin-1", 'ignore')
def to_unicode(s, enc=None):

View File

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

12
hplip-wifisetup.patch Normal file
View File

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

View File

@ -6,15 +6,28 @@
Summary: HP Linux Imaging and Printing Project
Name: hplip
Version: 3.18.4
Release: 9%{?dist}
Version: 3.21.2
Release: 6%{?dist}
License: GPLv2+ and MIT and BSD and IJG and Public Domain and GPLv2+ with exceptions and ISC
Url: https://developers.hp.com/hp-linux-imaging-and-printing
Source0: http://downloads.sourceforge.net/sourceforge/hplip/hplip-%{version}.tar.gz
# 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 <version>
#
Source0: hplip-%{version}-repack.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
Patch1: hplip-pstotiff-is-rubbish.patch
Patch2: hplip-strstr-const.patch
Patch3: hplip-ui-optional.patch
@ -41,13 +54,150 @@ Patch24: hplip-3165-sourceoption.patch
Patch25: hplip-noernie.patch
Patch26: hplip-appdata.patch
Patch27: hplip-check-cups.patch
Patch28: hplip-colorlaserjet-mfp-m278-m281.patch
Patch30: hplip-typo.patch
Patch31: hplip-keyserver.patch
Patch32: hplip-covscan.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.
Patch31: hplip-use-binary-str.patch
# m278-m281 doesn't work correctly again
Patch32: hplip-error-print.patch
Patch33: hplip-hpfax-importerror-print.patch
Patch34: hplip-wifisetup.patch
# pgp.mit.edu keyserver got bad connection, so we need to have pool of keyservers
# to choose (Bz#1641100, launchpad#1799212)
Patch35: hplip-keyserver.patch
# QMessagebox call was copy-pasted from Qt4 version, but Qt5 has different arguments,
# This patch solves most of them
Patch36: 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.
Patch37: 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.
Patch38: 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
Patch39: 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
Patch40: 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.
Patch41: 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
Patch42: 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
Patch43: 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
Patch44: hplip-hpcups-crash.patch
# Fixing the issues found by coverity scan
# reported upstream https://bugs.launchpad.net/hplip/+bug/1808145
Patch45: 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
Patch46: 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
Patch47: 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
Patch48: 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
Patch49: hplip-model-mismatch.patch
# sixext has problems with python3 strings (bz#1573430)
# reported https://bugs.launchpad.net/bugs/1480152
Patch50: hplip-unicodeerror.patch
# error with new gcc, already reported in upstream as
# https://bugs.launchpad.net/hplip/+bug/1836735
Patch51: hplip-fix-Wreturn-type-warning.patch
# upstream check for python clears OS build system
# CFLAGS
# https://bugs.launchpad.net/hplip/+bug/1879445
Patch52: 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
Patch53: 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
Patch54: 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
Patch55: 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
Patch56: hplip-revert-plugins.patch
# python3.9 removes threading.Thread.isAlive() and it is substituted
# by threading.Thread.is_alive()
# https://bugzilla.redhat.com/show_bug.cgi?id=1861055
# reported upstream https://bugs.launchpad.net/fedora/+bug/1889280
Patch57: hplip-thread-isalive-removed.patch
# glibc moved timeb.h into compat package and it will be removed in the future
# the code doesn't use anything from timeb.h, so it is safe to remove it
# reported upstream https://bugs.launchpad.net/hplip/+bug/1900977
Patch58: hplip-timeb-removed.patch
# non-sudoers cannot authenticate
# reported upstream https://bugs.launchpad.net/hplip/+bug/1904888
Patch59: hplip-check-userperms.patch
# 1919556 - hp-fab crashed: QFileDialog.getOpenFileName is not used correctly
# getOpenFileName returns a tuple, but hp-fab expects a simple variable
# reported upstream as https://bugs.launchpad.net/hplip/+bug/1914743
Patch60: hplip-fab-import.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
Patch61: hplip-hpsetup-noscanjets.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}
%if 0%{?rhel} <= 8 || 0%{?fedora}
Requires: python3-pillow
%endif
Requires: cups
Requires: wget
Requires: python3-dbus
@ -56,6 +206,15 @@ Requires: python3-dbus
Requires: %{_bindir}/gpg
# /usr/lib/udev/rules.d
Requires: systemd
# 1733449 - Scanner on an HP AIO printer is not detected unless libsane-hpaio is installed
Requires: libsane-hpaio
# 1788643 - Fedora minimal does not ship tar by default
Requires: tar
# 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
# gcc and gcc-c++ are no longer in buildroot by default
@ -65,9 +224,13 @@ Requires: systemd
BuildRequires: gcc
# gcc-c++ is needed for hpijs, hpcups drivers
BuildRequires: gcc-c++
# uses make
BuildRequires: make
BuildRequires: autoconf automake libtool
BuildRequires: net-snmp-devel
BuildRequires: pkgconfig(avahi-client)
BuildRequires: pkgconfig(avahi-core)
BuildRequires: cups-devel
BuildRequires: python3-devel
BuildRequires: libjpeg-devel
@ -77,16 +240,13 @@ BuildRequires: openssl-devel
BuildRequires: sane-backends-devel
BuildRequires: pkgconfig(dbus-1)
# Make sure we get postscriptdriver tags.
BuildRequires: python3-cups, cups
# Make sure we get postscriptdriver tags - need cups and python3-cups.
BuildRequires: cups
BuildRequires: python3-cups
# macros: %%{_tmpfilesdir}, %%{_udevrulesdir}
BuildRequires: systemd
# 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
drivers for HP printers and multi-function peripherals.
@ -102,12 +262,12 @@ Files needed by the HPLIP printer and scanner drivers.
Summary: HPLIP libraries
License: GPLv2+ and MIT
Requires: %{name}-common%{?_isa} = %{version}-%{release}
Requires: %{__python3}
Obsoletes: %{name}-compat-libs < %{version}-%{release}
Requires: python3
%description libs
Libraries needed by HPLIP.
%if 0%{?rhel} <= 8 || 0%{?fedora}
%package gui
Summary: HPLIP graphical tools
License: BSD
@ -121,12 +281,11 @@ 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}
@ -237,22 +396,93 @@ done
# hplip 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)
%patch27 -p1 -b .check-cups
# Add support for HP ColorLaserjet MFP M278-M281 (bug #1509394)
%patch28 -p1 -b .colorlaserjet-mfp-m278-m281
# hp-firmware:NameError: name 'INTERACTIVE_MODE4' is not defined (bug #1533869)
%patch30 -p1 -b .typo
# 1649487 - Retrieve public key from pool of keyservers
%patch31 -p1 -b .keyserver
%patch31 -p1 -b .use-binary-str
# 1602547 - Please review important issues found by covscan in "hplip-3.18.4-2.el8+7" package
%patch32 -p1 -b .covscan
# 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.
%patch32 -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
%patch33 -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
%patch34 -p1 -b .wifisetup-bad-call-fix
# have pool of keyservers to choose
%patch35 -p1 -b .keyserver
# TypeError: argument 5 has unexpected type 'StandardButtons' (bug #1594602)
# upstream bug: https://bugs.launchpad.net/ubuntu/+source/hplip/+bug/1745383
# bug caused by typo in QMessageBox constructor call
# this patch fixes more of those typos - some fixed by tkorbar, some taken from ubuntu fix
%patch36 -p1 -b .qmsgbox-typos-fix
# removal of non open source code, taken from ubuntu
%patch37 -p1 -b .libimageprocessor-removal
%{_bindir}/rm prnt/hpcups/libImageProcessor-x86*
%patch38 -p1 -b .toolbox-crash
# part of https://bugzilla.redhat.com/show_bug.cgi?id=1666076
%patch39 -p1 -b .add-ppd-crash
# 1671513 - after 'successful' plugin installation it is not installed
%patch40 -p1 -b .missing-links
# 1684434 - Scanning broken for HP LaserJet 3052
%patch41 -p1 -b .hp-laserjet-3052-broken-scanning
# 1694663 - Cannot scan with M281fdw LaserJet - failed: Error during device I/O (part 1)
%patch42 -p1 -b .hpmud-string-parse
# 1694663 - Cannot scan with M281fdw LaserJet - failed: Error during device I/O (part 2)
%patch43 -p1 -b .m278-m281-needs-plugin
# 1695716 - hpcups crashes in Compressor destructor
%patch44 -p1 -b .hpcups-crash
# fixing issues found by coverity scan
%patch45 -p1 -b .covscan
# segfault during logging (1727162)
%patch46 -p1 -b .logging-segfault
# 1738321 - [abrt] hp-systray:BlockingIOError: [Errno 11] Resource temporarily unavailable
%patch47 -p1 -b .systray-blockerror
# 1742949, 1740132, 1739855 - missing drivers
%patch48 -p1 -b .missing-drivers
# 1772698 - Can't setup printer (HP LJ 2200): no attributes found in model.dat
%patch49 -p1 -b .model-mismatch
# 1573430 - sixext.py:to_string_utf8:UnicodeDecodeError: 'utf-8' codec can't decode bytes
%patch50 -p1 -b .unicodeerror
%patch51 -p1 -b .Wreturn-fix
%patch52 -p1 -b .configure-python
%patch53 -p1 -b .dialog-infinite-loop
# 1590014 - hplip PPD search doesn't expect '-' in device name
%patch54 -p1 -b .find-driver
# 1833308 - hp-clean cannot clean HP PSC1410 - Device I/O error
%patch55 -p1 -b .clean-ldl
%patch56 -p1 -b .revert-plugins
# 1861055 - hplip: remove threading.Thread.isAlive method calls - use threading.Thread.is_alive()
%patch57 -p1 -b .thread-isalive-removed
# timed.h is removed from glibc
%patch58 -p1 -b .timed-removed
# 1899410 - non-sudoers cannot authenticate because of bad username in prompt
%patch59 -p1 -b .check-userperms
# 1919556 - hp-fab crashed: QFileDialog.getOpenFileName is not used correctly
%patch60 -p1 -b .fab-import
# if an user tries to install scanner via hp-setup (printer/fax utility)
# it fails further down - break out earlier with a message
%patch61 -p1 -b .hpsetup-noscanjets
%if 0%{?fedora} || 0%{?rhel} <= 8
# mention hplip-gui should be installed if you want GUI
%patch1000 -p1 -b .fedora-gui
%endif
sed -i.duplex-constraints \
-e 's,\(UIConstraints.* \*Duplex\),//\1,' \
@ -267,6 +497,8 @@ sed -i.env-python -e 's,^#!/usr/bin/env python,#!%{__python3},' \
rm locatedriver
cp -p %{SOURCE4} %{SOURCE5} ppd/hpcups
%build
# Work-around Makefile.am imperfections.
sed -i 's|^AM_INIT_AUTOMAKE|AM_INIT_AUTOMAKE([foreign])|g' configure.in
@ -284,12 +516,12 @@ autoreconf --verbose --force --install
--enable-hpijs-install \
--disable-policykit --with-mimedir=%{_datadir}/cups/mime PYTHON=%{__python3}
make %{?_smp_mflags}
%make_build
%install
mkdir -p %{buildroot}%{_bindir}
make install DESTDIR=%{buildroot} PYTHON=%{__python3}
%make_install PYTHON=%{__python3}
# Create /run/hplip & /var/lib/hp
mkdir -p %{buildroot}/run/hplip
@ -325,6 +557,7 @@ 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 \
@ -332,8 +565,47 @@ rm -f %{buildroot}%{_bindir}/foomatic-rip \
%{buildroot}%{_datadir}/applications/hplip.desktop \
%{buildroot}%{_datadir}/ppd/HP/*.ppd
mkdir -p %{buildroot}%{_datadir}/appdata
cp %{SOURCE3} %{buildroot}%{_datadir}/appdata/
%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
%if 0%{?rhel} <= 8 || 0%{?fedora}
mkdir -p %{buildroot}%{_datadir}/metainfo
cp %{SOURCE3} %{buildroot}%{_datadir}/metainfo/
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{16x16,32x32,64x64}/apps
install -p -m644 %{buildroot}%{_datadir}/hplip/data/images/16x16/hp_logo.png \
@ -349,14 +621,27 @@ sed -i -e '/^Categories=/d' hplip.desktop
sed -i -e '/^Encoding=/d' hplip.desktop
desktop-file-validate hplip.desktop
desktop-file-install --vendor HP \
desktop-file-install \
--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}/appdata/*.appdata.xml
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
# Regenerate hpcups PPDs on upgrade if necessary (bug #579355).
install -p -m755 %{SOURCE1} %{buildroot}%{_bindir}/hpcups-update-ppds
@ -388,17 +673,12 @@ rm -f %{buildroot}%{_unitdir}/hplip-printer@.service
# window), so don't ship the launcher yet.
rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
# hp tools needs to have cups service enabled and running for its functionality
%pre
%{_bindir}/systemctl start cups &>/dev/null ||:
%{_bindir}/systemctl enable cups &>/dev/null ||:
%post
%{_bindir}/hpcups-update-ppds &>/dev/null ||:
# timeout is to prevent possible freeze during update
%{_bindir}/timeout 10m -k 15m %{_bindir}/hpcups-update-ppds &>/dev/null ||:
%post libs -p /sbin/ldconfig
%ldconfig_scriptlets libs
%postun libs -p /sbin/ldconfig
%files
%doc COPYING doc/*
@ -410,7 +690,6 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
%{_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
@ -420,7 +699,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
%{_bindir}/hp-plugin
%{_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
@ -442,7 +723,6 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
%{_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
@ -457,7 +737,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
%{_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*
@ -473,7 +755,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
%{_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
@ -495,16 +779,16 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
%{_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
@ -512,13 +796,15 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
%{_bindir}/hp-printsettings
%{_bindir}/hp-systray
%{_bindir}/hp-toolbox
%{_bindir}/hp-uiscan
%{_bindir}/hp-wificonfig
%{_datadir}/applications/*.desktop
%{_datadir}/appdata/hplip.appdata.xml
%{_datadir}/metainfo/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*
@ -526,10 +812,12 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
%{_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
@ -538,30 +826,313 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
%config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio
%changelog
* Fri Jun 14 2019 Tomas Korbar <tkorbar@redhat.com> - 3.18.4-9
- update patch for covscan bug rhbz#1602547
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3.21.2-6
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Wed Jun 12 2019 Tomas Korbar <tkorbar@redhat.com> - 3.18.4-8
- 1602547 - Please review important issues found by covscan in "hplip-3.18.4-2.el8+7" package
* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.21.2-5
- Rebuilt for RHEL 9 BETA for openssl 3.0
Related: rhbz#1971065
* Tue Dec 04 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.4-7
- fixing rpmdiff license error found during errata checks for rhbz#1633680
* Wed Jun 09 2021 Zdenek Dohnal <zdohnal@redhat.com> - 3.21.2-4
- add hplip-repack.sh as a source
* Wed Nov 14 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.4-6
- 1649487 - Retrieve public key from pool of keyservers
* Wed Jun 09 2021 Zdenek Dohnal <zdohnal@redhat.com> - 3.21.2-3
- 1969767 - remove redundant files
* Thu Sep 20 2018 Tomas Orsava <torsava@redhat.com> - 3.18.4-5
- Require the Python interpreter directly instead of using the package name
- Related: rhbz#1619153
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.21.2-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Thu Aug 09 2018 Josef Ridky <jridky@redhat.com> - 3.18.4-4
- Rebuild for Net-SNMP
* Fri Feb 19 2021 Zdenek Dohnal <zdohnal@redhat.com> - 3.21.2-1
- 1929977 - hplip-3.21.2 is available
* Tue Jul 24 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.4-3
* Fri Feb 19 2021 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.11-6
- get out of hp-setup if the device is a standalone scanner
* Thu Feb 18 2021 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.11-6
- remove the old search algorithm
* Fri Feb 05 2021 Zdenek Dohnal <zdohnal@redhat.com> - 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 <zdohnal@redhat.com> - 3.20.11-4
- 1912147 - Enable matching for '<model>_series' drivers in PPD search algorithm
- rework optional gui messages
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.20.11-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Jan 14 2021 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.11-2
- apply eln changes
* Wed Dec 02 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.11-1
- 1903029 - hplip-3.20.11 is available
* Thu Nov 19 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.9-4
- 1899410 - non-sudoers cannot authenticate because of bad username in prompt
* Thu Nov 05 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.9-3
- make is no longer in buildroot by default
* Thu Oct 22 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.9-2
- timeb is removed from glibc
* Tue Oct 13 2020 Zdenek Dohnal <zdohnal@redhat.com> - 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 <zdohnal@redhat.com> - 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 <zdohnal@redhat.com> - 3.20.9-1
- 3.20.9
* Wed Sep 30 2020 Zdenek Dohnal <zdohnal@redhat.com> - 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 <zdohnal@redhat.com> - 3.20.6-12
- move ifdef for removing hplip-gui a little in install phase
* Thu Aug 27 2020 Josef Ridky <jridky@redhat.com> - 3.20.6-11
- Rebuilt for new net-snmp release
* Tue Aug 25 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.6-10
- fix eln build - remove unpackaged files
* Tue Aug 25 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.6-9
- 1772698 - dont use uninitialized value as an index
* Mon Aug 24 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.6-8
- typo in hplip-model-mismatch.patch causes regression for 1772698
* Wed Aug 05 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.6-7
- don't build gui for newer RHELs
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.20.6-6
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 28 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.6-5
- 1861055 - hplip: remove threading.Thread.isAlive method calls - use threading.Thread.is_alive()
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.20.6-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 3.20.6-3
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Tue Jun 23 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.6-2
- appdata.xml needs to be in %%{_datadir}/metainfo
* Wed Jun 17 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.6-1
- 3.20.6
* Tue Jun 16 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.5-6
- remove the check for scripts which are only in hplip-gui
* Tue Jun 16 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.5-5
- fix the optional GUI
* Fri Jun 05 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.5-4
- 1833308 - hp-clean cannot clean HP PSC1410 - Device I/O error
* Mon Jun 01 2020 Zdenek Dohnal <zdohnal@redhat.com> - 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 <mhroncok@redhat.com> - 3.20.5-3
- Rebuilt for Python 3.9
* Mon May 25 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.5-2
- fix infinite loop in password dialog in hp-toolbox
* Thu May 14 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.5-1
- 3.20.5
* Wed Apr 15 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.3-5
- model mismatch during scanning due 'HP_' string
* Tue Apr 07 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.3-4
- add keyserver.ubuntu.com too (1821469)
* Tue Apr 07 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.3-3
- 1821469 - use list of keyservers when trying to download gpg keys
* Wed Mar 25 2020 Tom Stellard <tstellar@redhat.com> - 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 <zdohnal@redhat.com> - 3.20.3-1
- 3.20.3
* Wed Mar 04 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.20.2-1
- 3.20.2
* Mon Feb 17 2020 Zdenek Dohnal <zdohnal@redhat.com> - 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 <releng@fedoraproject.org> - 3.19.12-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Jan 08 2020 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.12-2
- 1788643 - hp-plugin needs explicit requirement for tar
* Thu Dec 12 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.12-1
- 3.19.12
* Thu Nov 28 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.11-1
- 3.19.11
* Thu Nov 28 2019 Zdenek Dohnal <zdohnal@redhat.com> - 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 <zdohnal@redhat.com> - 3.19.10-2
- 1773345 - Problems with HP M281fdw LaserJet
* Fri Nov 15 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.10-2
- 1772698 - missing HP LaserJet 2200 driver
* Fri Nov 01 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.10-1
- 3.19.10
* Tue Oct 01 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.8-2
- hp-check traceback due change in python-pillow
* Tue Oct 01 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.8-1
- 3.19.8
* Tue Sep 10 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.6-9
- 1739855, 1740132, 1742949 - missing drivers
* Mon Sep 09 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.6-8
- 1750111 - [abrt] hplip: syntax(): unindent does not match any outer indentation level
* Fri Sep 06 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.6-7
- 1745317 - hp-plugin is broken on Rawhide
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 3.19.6-6
- Rebuilt for Python 3.8
* Thu Aug 08 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.6-5
- 1738321 - [abrt] hp-systray:BlockingIOError: [Errno 11] Resource temporarily unavailable
* Thu Aug 01 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.6-4
- sks-keyservers.net seems more reliable
* Mon Jul 29 2019 Zdenek Dohnal <zdohnal@redhat.com> - 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 <zdohnal@redhat.com> - 3.19.6-2
- 1727162 - [abrt] hplip: strlen(): hp killed by SIGSEGV
* Fri Jul 12 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.19.6-1
- 3.19.6
* Fri Jul 12 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.12-16
- fixing issues found by coverity scan
* Thu Jul 11 2019 Zdenek Dohnal <zdohnal@redhat.com> - 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 <zdohnal@redhat.com> - 3.18.12-14
- remove old obsoletes and provides for hpijs, libsane-hpoj and hplip-compat-libs
* Wed Jun 26 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.12-13
- fix #1722222 without downstream patch, just call desktop-install-file with
other parameters
* Thu Jun 20 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.12-12
- 1722222 - Broken hp-uiscan.desktop (upstream bug)
* Thu May 16 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.12-11
- 1706233 - hplip FTBFS with python38
* Mon Apr 15 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.12-10
- fix several desktop issues reported in bodhi
* Thu Apr 04 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.12-9
- 1695716 - hpcups crashes in Compressor destructor
* Mon Apr 01 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.12-8
- 1694663 - Cannot scan with M281fdw LaserJet - failed: Error during device I/O
* Mon Apr 01 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.12-7
- 1694569 - hp-uiscan does not have interactive mode
* Mon Mar 25 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.12-6
- 1684434 - Scanning broken for HP LaserJet 3052
* Mon Mar 04 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.12-5
- 1684792 - devel-file-in-non-devel-package /usr/lib64/libhpmud.so
* Tue Feb 05 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.12-4
- 1671513 - after 'successful' plugin installation it is not installed
* Fri Feb 01 2019 Zdenek Dohnal <zdohnal@redhat.com> - 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 <releng@fedoraproject.org> - 3.18.12-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Tue Jan 08 2019 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.12-1
- 3.18.12
* Mon Dec 03 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.6-12
- Built with new net-snmp
* Tue Nov 13 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.6-11
- 1641100 - Retrieval of signing keys for plugin verification should use a server pool
* Mon Nov 12 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.6-10
- 1645815 - hp-check --runtime crashes involving FileNotFoundError
* Mon Oct 01 2018 Tomas Korbar <tkorbar@redhat.com> - 3.18.6-9
- 1594602 - Fix typos in QMessageBox constructor calls
* Mon Oct 01 2018 Tomas Korbar <tkorbar@redhat.com> - 3.18.6-8
- 1626877 - Fix AttributeError when connecting to printer via wifi
* Tue Sep 25 2018 Tomas Korbar <tkorbar@redhat.com> - 3.18.6-7
- 1566938 - Fix TypeError when printing ImportError message in hpfax
* Tue Sep 18 2018 Tomas Korbar <tkorbar@redhat.com> - 3.18.6-6
- 1564770 - Fix TypeError when printing error object message
* Tue Jul 24 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.6-5
- correcting license
* Tue Jun 12 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.4-2
- hp tools needs to have cups service running for its functionality
* Sat Jul 21 2018 Kevin Fenzi <kevin@scrye.com> - 3.18.6-4
- Rebuild for new net-snmp
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.18.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 3.18.6-2
- Rebuilt for Python 3.7
* Mon Jun 11 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.6-1
- 3.18.6, have cups running because hp tools
* Fri May 25 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.5-2
- hp-setup fails on fax setup - use binary strings
- m278-m281 doesn;t work correctly again
* Thu May 24 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.5-1
- 3.18.5
* Thu May 24 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.4-3
- revert 1544912
* Fri May 11 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.4-2
- 1577078 - add other trap for missing gui
* Thu Apr 26 2018 Zdenek Dohnal <zdohnal@redhat.com> - 3.18.4-1
- 3.18.4

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (hplip-3.21.2-repack.tar.gz) = d39469676d518bee0c36a0fff0e74f140c685148217fcab07d71dc3809b2114e3cfea10968937d0844fb0518c74a1653b346d6e64320fa9b969e5b40a425422b

30
upstream-key.gpg Normal file
View File

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