Compare commits
168 commits
private-pr
...
rawhide
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
075cac0afb | ||
|
|
be70bd6792 | ||
|
|
334237ac68 | ||
|
|
01d1e50f44 | ||
|
|
5ad054fcdb | ||
|
|
73678936ce | ||
|
|
a995e312cb | ||
|
|
b1ef7ae35e | ||
|
|
8541ecd6f8 | ||
|
|
61a4f33d3a | ||
|
|
f66385472f | ||
|
|
ae17763066 | ||
|
|
4cfd5e5ec3 | ||
|
|
f08eed6ffd | ||
|
|
8104c07571 | ||
|
|
ea1621b02f | ||
|
|
c5b4c3d5cb | ||
|
|
b549b17216 | ||
|
|
4a5cbec2d3 | ||
|
|
690f2e34e8 | ||
|
|
b6d5d44957 | ||
|
|
25bd7772e9 | ||
|
|
ee555b54af | ||
|
|
489909d19a | ||
|
|
46b9593576 | ||
|
|
c78ccf59f8 | ||
|
|
dbdc2cce2a | ||
|
|
48d1741f8d | ||
|
|
19b7cb0614 | ||
|
|
3f33fc6240 | ||
|
|
0b780c93e6 | ||
|
|
d5743e6d63 | ||
|
|
a13fbe55d3 | ||
|
|
dabcff0237 | ||
|
|
639b6e999f | ||
|
|
187b064062 | ||
|
|
d726b77698 | ||
|
|
a6c2c2b70b | ||
|
|
b7a8b0b5a8 | ||
|
|
f488895f79 | ||
|
|
b77080962d | ||
|
|
6d550c7123 | ||
|
|
249ea11cfb | ||
|
|
66bf018624 | ||
|
|
606f617bde | ||
|
|
31a7a6c1ee | ||
|
|
4fa25e2888 | ||
|
|
ac09a5bddc | ||
|
|
e174e9103e | ||
|
|
76d7fdfefc | ||
|
|
f9aafff426 | ||
|
|
a15ae7afb4 | ||
|
|
f22496015e | ||
|
|
aef1ccce5b | ||
|
|
c775adaac1 | ||
|
|
ec4e2f53cc | ||
|
|
a3f2418e3a | ||
|
|
65ca3e41cf | ||
|
|
9a35bb2322 | ||
|
|
83a6c95d49 | ||
|
|
eb5e881525 | ||
|
|
0426012736 | ||
|
|
f616afe827 | ||
|
|
031349c9fd | ||
|
|
363dc1639d | ||
|
|
850284dda4 | ||
|
|
ac182d7612 | ||
|
|
2cf2a6900a | ||
|
|
a3d30bea25 | ||
|
|
bbb19dff5e | ||
|
|
a960ac4214 | ||
|
|
ca1713968e | ||
|
|
652db6693c | ||
|
|
09cd5eff22 | ||
|
|
6cb741bb45 | ||
|
|
cc60476218 | ||
|
|
cfce1c8fa6 | ||
|
|
3c7687254d | ||
|
|
c7dbb064bd | ||
|
|
e4d8f7e061 | ||
|
|
297f625d95 | ||
|
|
eabb56cabe | ||
|
|
129beeedb9 | ||
|
|
0933ecaffa | ||
|
|
121a2286ef | ||
|
|
21fc6a9ec6 | ||
|
|
94e3b4a4c0 | ||
|
|
fea1bc106d | ||
|
|
11664de4a6 | ||
|
|
7153ae8af4 | ||
|
|
d6bd8532ea | ||
|
|
302fef07d8 | ||
|
|
437db9d451 | ||
|
|
416b1932b5 | ||
|
|
8d02f877eb | ||
|
|
8f08be8b1f | ||
|
|
53aab4a410 | ||
|
|
43689ff8e0 | ||
|
|
d360f3c690 | ||
|
|
581db10c37 | ||
|
|
0b9d626c35 | ||
|
|
58b699ef49 | ||
|
|
9c9af2ba19 | ||
|
|
b7addb99c0 | ||
|
|
17cee5bcf6 | ||
|
|
32191b2666 | ||
|
|
f5837c16e5 | ||
|
|
4769a36684 | ||
|
|
fd0b4b17ec | ||
|
|
613fa6c3de | ||
|
|
0f40a3baaa | ||
|
|
bfad24d925 | ||
|
|
b2f875a767 | ||
|
|
5a340ce89d | ||
|
|
bb45ee25cc | ||
|
|
2dc288f050 | ||
|
|
b4f017fe30 | ||
|
|
46cc98726f | ||
|
|
b249f70f9c | ||
|
|
3edd0aeaa5 | ||
|
|
2015e140a3 | ||
|
|
494ebc3d38 | ||
|
|
c69a0429a3 | ||
|
|
7cb6f648cd | ||
|
|
430ac6f1d4 | ||
|
|
b80a1ae081 | ||
|
|
2f37664639 | ||
|
|
43a26f09d8 | ||
|
|
394e7d6500 | ||
|
|
63b9a8e131 | ||
|
|
7932099ed7 | ||
|
|
61d7a0bd9d | ||
|
|
80149bea94 | ||
|
|
8f59268dca | ||
|
|
431609f643 | ||
|
|
9f437c9892 | ||
|
|
aecb84c039 | ||
|
|
6e28c1cddf | ||
|
|
e59c9e0058 | ||
|
|
c8c103d91c | ||
|
|
5eb8189bae | ||
|
|
57dab6529d | ||
|
|
c9df354ed6 | ||
|
|
97d6cead18 | ||
|
|
458a657499 | ||
|
|
d6b7a484d5 | ||
|
|
a7ca817248 | ||
|
|
2b42a1175e | ||
|
|
a82459c176 | ||
|
|
0f2672f23b | ||
|
|
07e64db764 | ||
|
|
16f1c5dbc9 | ||
|
|
5cb03441e9 | ||
|
|
48d84277fa | ||
|
|
ffccbcb989 | ||
|
|
49a583d4e8 | ||
|
|
9ac914b020 | ||
|
|
ed50eac680 | ||
|
|
f0692ad1ee | ||
|
|
538f042a5c | ||
|
|
2247e69265 | ||
|
|
b2350835fd | ||
|
|
6d0c695611 | ||
|
|
212ea17bdd | ||
|
|
9ea0342f43 | ||
|
|
c07d98eebd | ||
|
|
35def6bed1 | ||
|
|
87a48a2fc2 |
69 changed files with 4161 additions and 1142 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
|||
1
|
||||
26
.gitignore
vendored
26
.gitignore
vendored
|
|
@ -91,6 +91,28 @@ hplip-3.10.6.tar.gz
|
|||
/hplip-3.18.6.tar.gz
|
||||
/hplip-3.18.12.tar.gz
|
||||
/hplip-3.19.6.tar.gz
|
||||
/hp-laserjet_cp_1025nw.ppd.gz
|
||||
/hp-laserjet_professional_p_1102w.ppd.gz
|
||||
/hplip-3.19.8.tar.gz
|
||||
/hplip-3.19.10.tar.gz
|
||||
/hplip-3.19.11.tar.gz
|
||||
/hplip-3.19.12.tar.gz
|
||||
/hplip-3.20.2.tar.gz
|
||||
/hplip-3.20.3.tar.gz
|
||||
/hplip-3.20.5.tar.gz
|
||||
/hplip-3.20.6.tar.gz
|
||||
/hplip-3.20.9.tar.gz
|
||||
/hplip-3.20.11.tar.gz
|
||||
/hplip-3.21.2.tar.gz
|
||||
/hplip-3.21.2-repack.tar.gz
|
||||
/hplip-3.21.12-repack.tar.gz
|
||||
/hplip-3.22.2-repack.tar.gz
|
||||
/hplip-3.22.4-repack.tar.gz
|
||||
/hplip-3.22.6-repack.tar.gz
|
||||
/hplip-3.22.10-repack.tar.gz
|
||||
/hplip-3.23.3-repack.tar.gz
|
||||
/hplip-3.23.5-repack.tar.gz
|
||||
/hplip-3.23.8-repack.tar.gz
|
||||
/hplip-3.23.12-repack.tar.gz
|
||||
/hplip-3.24.4-repack.tar.gz
|
||||
/hplip-3.25.2-repack.tar.gz
|
||||
/hplip-3.25.6-repack.tar.gz
|
||||
/hplip-3.25.8-repack.tar.gz
|
||||
|
|
|
|||
|
|
@ -1,16 +1,17 @@
|
|||
diff -up hplip-3.18.12/Makefile.am.libimageprocessor-removal hplip-3.18.12/Makefile.am
|
||||
--- hplip-3.18.12/Makefile.am.libimageprocessor-removal 2019-01-08 12:51:08.629447883 +0100
|
||||
+++ hplip-3.18.12/Makefile.am 2019-01-08 12:51:08.710447208 +0100
|
||||
@@ -166,7 +166,7 @@ if !HPLIP_CLASS_DRIVER
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index f65afea..12317dc 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -167,7 +167,7 @@ if !HPLIP_CLASS_DRIVER
|
||||
dist_hplip_SCRIPTS = hpssd.py __init__.py hpdio.py
|
||||
endif #HPLIP_CLASS_DRIVER
|
||||
|
||||
-dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template prnt/hpcups/libImageProcessor-x86_64.so prnt/hpcups/libImageProcessor-x86_32.so
|
||||
+dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template
|
||||
dist_noinst_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
|
||||
@@ -594,7 +594,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilte
|
||||
dist_noinst_DATA += prnt/ipp-usb/HPLIP.conf
|
||||
dist_noinst_SCRIPTS += dat2drv.py install.py hplip-install init-suse-firewall init-iptables-firewall class_rpm_build.sh hplipclassdriver.spec createPPD.sh Makefile_dat2drv hpijs-drv
|
||||
@@ -597,7 +597,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp
|
||||
prnt/hpcups/ImageProcessor.h
|
||||
|
||||
hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
|
||||
|
|
@ -19,7 +20,7 @@ diff -up hplip-3.18.12/Makefile.am.libimageprocessor-removal hplip-3.18.12/Makef
|
|||
#else
|
||||
#hpcupsdir = $(cupsfilterdir)
|
||||
#hpcups_PROGRAMS = hpcups
|
||||
@@ -684,16 +684,6 @@ endif #HPLIP_CLASS_DRIVER
|
||||
@@ -687,16 +687,6 @@ endif #HPLIP_CLASS_DRIVER
|
||||
|
||||
install-data-hook:
|
||||
if HPLIP_BUILD
|
||||
|
|
@ -33,69 +34,6 @@ diff -up hplip-3.18.12/Makefile.am.libimageprocessor-removal hplip-3.18.12/Makef
|
|||
- 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.18.12/prnt/hpcups/HPCupsFilter.cpp.libimageprocessor-removal hplip-3.18.12/prnt/hpcups/HPCupsFilter.cpp
|
||||
--- hplip-3.18.12/prnt/hpcups/HPCupsFilter.cpp.libimageprocessor-removal 2019-01-08 12:51:08.619447966 +0100
|
||||
+++ hplip-3.18.12/prnt/hpcups/HPCupsFilter.cpp 2019-01-08 12:52:39.321686854 +0100
|
||||
@@ -31,7 +31,6 @@
|
||||
\*****************************************************************************/
|
||||
|
||||
#include "HPCupsFilter.h"
|
||||
-#include "ImageProcessor.h"
|
||||
|
||||
#include <signal.h>
|
||||
#include <sys/wait.h>
|
||||
@@ -645,16 +644,10 @@ int HPCupsFilter::processRasterData(cups
|
||||
|
||||
|
||||
snprintf(hpPreProcessedRasterFile, sizeof (hpPreProcessedRasterFile), "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
|
||||
- image_processor_t* imageProcessor = imageProcessorCreate();
|
||||
|
||||
while (cupsRasterReadHeader2(cups_raster, &cups_header))
|
||||
{
|
||||
|
||||
- IMAGE_PROCESSOR_ERROR 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) {
|
||||
@@ -753,12 +746,6 @@ int HPCupsFilter::processRasterData(cups
|
||||
color_raster = rgbRaster;
|
||||
black_raster = kRaster;
|
||||
|
||||
- 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
|
||||
@@ -788,12 +775,6 @@ int HPCupsFilter::processRasterData(cups
|
||||
}
|
||||
} // for() loop end
|
||||
|
||||
- result = imageProcessorEndPage(imageProcessor);
|
||||
- if (result != IPE_SUCCESS){
|
||||
- dbglog("DEBUG: imageProcessorEndPage failed result = %d\n", result);
|
||||
- }
|
||||
-
|
||||
-
|
||||
m_Job.NewPage();
|
||||
if (err != NO_ERROR) {
|
||||
break;
|
||||
@@ -808,8 +789,6 @@ int HPCupsFilter::processRasterData(cups
|
||||
rgbRaster = NULL;
|
||||
}
|
||||
|
||||
- imageProcessorDestroy(imageProcessor);
|
||||
-
|
||||
unlink(hpPreProcessedRasterFile);
|
||||
return ret_status;
|
||||
}
|
||||
if [ -d "/usr/share/ipp-usb/quirks/" ]; then \
|
||||
echo "ipp-usb directory exists"; \
|
||||
cp prnt/ipp-usb/HPLIP.conf /usr/share/ipp-usb/quirks/ ; \
|
||||
|
|
|
|||
|
|
@ -1,45 +1,108 @@
|
|||
From 95a73bbc9bd65602a0f9411469ab511bc80a01d0 Mon Sep 17 00:00:00 2001
|
||||
From: Till Kamppeter <till.kamppeter@gmail.com>
|
||||
Date: Wed, 3 Oct 2018 15:13:00 +0200
|
||||
Subject: Call QMessageBox constructors of PyQT5 with the correct parameters
|
||||
|
||||
The whole Python source code of HPLIP contains 40 incorrect calls of
|
||||
the QMessageBox constructurs, mostly the list of buttons was given as
|
||||
separate arguments instead of a bitwise OR of each button's
|
||||
representation value. If the flow of the code hits one of these
|
||||
calls (usually when some error or warnings message should be
|
||||
displayed or an "Are you sure?" question asked) the GUI app crashes.
|
||||
See https://pythonspot.com/pyqt5-messagebox/ for QMessageBox
|
||||
documentation.
|
||||
This patch corrects all these calls.
|
||||
|
||||
Bug-Debian: https://bugs.debian.org/912768
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/1745383
|
||||
---
|
||||
ui/devmgr4.py | 16 ++++++++--------
|
||||
ui/faxaddrbookform.py | 6 +++---
|
||||
ui/faxsendjobform.py | 6 +++---
|
||||
ui/firmwaredialog.py | 2 +-
|
||||
ui/makecopiesform.py | 4 ++--
|
||||
ui/nodevicesform.py | 2 +-
|
||||
ui/pluginform2.py | 4 ++--
|
||||
ui/printerform.py | 2 +-
|
||||
ui/settingsdialog.py | 4 ++--
|
||||
ui/setupform.py | 10 +++++-----
|
||||
ui/unloadform.py | 2 +-
|
||||
ui/upgradeform.py | 4 ++--
|
||||
ui5/devmgr5.py | 6 ++----
|
||||
ui5/fabwindow.py | 2 +-
|
||||
ui5/nodevicesdialog.py | 3 +--
|
||||
ui5/plugindialog.py | 2 +-
|
||||
ui5/queuesconf.py | 2 +-
|
||||
ui5/setupdialog.py | 6 +++---
|
||||
18 files changed, 40 insertions(+), 43 deletions(-)
|
||||
|
||||
diff --git a/ui/devmgr4.py b/ui/devmgr4.py
|
||||
index cc2552f91..a868ccac0 100644
|
||||
--- a/ui/devmgr4.py
|
||||
+++ b/ui/devmgr4.py
|
||||
diff -up hplip-3.23.3/ui5/devmgr5.py.qmsgbox-typos-fix hplip-3.23.3/ui5/devmgr5.py
|
||||
--- hplip-3.23.3/ui5/devmgr5.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui5/devmgr5.py 2023-05-29 13:48:48.429731297 +0200
|
||||
@@ -144,8 +144,7 @@ class PluginInstall(QObject):
|
||||
install_plugin = QMessageBox.warning(self.parent,
|
||||
self.parent.windowTitle(),
|
||||
self.__tr("<b>The HPLIP plugin is already installed.</b><p>Do you want to continue and re-install it?"),
|
||||
- QMessageBox.Yes,
|
||||
- QMessageBox.No,
|
||||
+ QMessageBox.Yes | QMessageBox.No,
|
||||
QMessageBox.NoButton) == QMessageBox.Yes
|
||||
|
||||
if install_plugin:
|
||||
@@ -154,8 +153,7 @@ class PluginInstall(QObject):
|
||||
QMessageBox.critical(self.parent,
|
||||
self.parent.windowTitle(),
|
||||
self.__tr("<b>Unable to find an appropriate su/sudo utility to run hp-plugin.</b><p>Install kdesu, gnomesu, or gksu.</p>"),
|
||||
- QMessageBox.Ok,
|
||||
- QMessageBox.NoButton,
|
||||
+ QMessageBox.Ok | QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
|
||||
diff -up hplip-3.23.3/ui5/fabwindow.py.qmsgbox-typos-fix hplip-3.23.3/ui5/fabwindow.py
|
||||
--- hplip-3.23.3/ui5/fabwindow.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui5/fabwindow.py 2023-05-29 13:48:48.429731297 +0200
|
||||
@@ -344,7 +344,7 @@ class FABWindow(QMainWindow, Ui_MainWin
|
||||
new_name = to_unicode(self.NameLineEdit.text())
|
||||
if new_name != self.name:
|
||||
if QMessageBox.question(self, self.__tr("Rename?"), "Rename '%s' to '%s'?"%(self.name,new_name), \
|
||||
- QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes:
|
||||
+ QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes:
|
||||
|
||||
self.db.rename(self.name, new_name)
|
||||
log.debug("Rename %s to %s" % (self.name, new_name))
|
||||
diff -up hplip-3.23.3/ui5/nodevicesdialog.py.qmsgbox-typos-fix hplip-3.23.3/ui5/nodevicesdialog.py
|
||||
--- hplip-3.23.3/ui5/nodevicesdialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui5/nodevicesdialog.py 2023-05-29 13:48:48.429731297 +0200
|
||||
@@ -64,8 +64,7 @@ class NoDevicesDialog(QDialog, Ui_NoDevi
|
||||
QMessageBox.critical(self,
|
||||
self.windowTitle(),
|
||||
self.__tr("<b>An error occurred.</b><p>Please re-start the Device Manager and try again."),
|
||||
- QMessageBox.Ok,
|
||||
- QMessageBox.NoButton,
|
||||
+ QMessageBox.Ok | QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
|
||||
diff -up hplip-3.23.3/ui5/plugindialog.py.qmsgbox-typos-fix hplip-3.23.3/ui5/plugindialog.py
|
||||
--- hplip-3.23.3/ui5/plugindialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui5/plugindialog.py 2023-05-29 13:48:48.429731297 +0200
|
||||
@@ -252,7 +252,7 @@ class PluginDialog(QDialog, Ui_Dialog):
|
||||
|
||||
if QMessageBox.question(self, " ",
|
||||
self.__tr("<b>%s</b><p>Without this, it is not possible to authenticate and validate the plug-in prior to installation.</p>Do you still want to install the plug-in?" %error_str),
|
||||
- QMessageBox.Yes | QMessageBox.No) != QMessageBox.Yes:
|
||||
+ QMessageBox.Yes | QMessageBox.No, QMessageBox.No) != QMessageBox.Yes:
|
||||
|
||||
self.pluginObj.deleteInstallationFiles(download_plugin_file)
|
||||
self.close()
|
||||
diff -up hplip-3.23.3/ui5/queuesconf.py.qmsgbox-typos-fix hplip-3.23.3/ui5/queuesconf.py
|
||||
--- hplip-3.23.3/ui5/queuesconf.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui5/queuesconf.py 2023-05-29 13:48:48.430731291 +0200
|
||||
@@ -245,7 +245,7 @@ class QueuesDiagnose(QDialog, Ui_Dialog)
|
||||
|
||||
if QMessageBox.question(self, " ",
|
||||
self.__tr("<b>%s</b><p>Without this, it is not possible to authenticate and validate this tool prior to installation.</p>Do you still want to run Smart Install disabler?" %error_str),
|
||||
- QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes:
|
||||
+ QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes:
|
||||
# Disabling without verification.
|
||||
sts, out = utils.run("sh %s"%smart_install_run)
|
||||
|
||||
diff -up hplip-3.23.3/ui5/setupdialog.py.qmsgbox-typos-fix hplip-3.23.3/ui5/setupdialog.py
|
||||
--- hplip-3.23.3/ui5/setupdialog.py.qmsgbox-typos-fix 2023-05-29 13:48:48.430731291 +0200
|
||||
+++ hplip-3.23.3/ui5/setupdialog.py 2023-05-29 13:54:03.236851925 +0200
|
||||
@@ -886,7 +886,7 @@ class SetupDialog(QDialog, Ui_Dialog):
|
||||
self.windowTitle(),
|
||||
warn_text,
|
||||
QMessageBox.Yes |
|
||||
- QMessageBox.No |
|
||||
+ QMessageBox.No,
|
||||
QMessageBox.NoButton) == QMessageBox.Yes):
|
||||
i = 2
|
||||
while True:
|
||||
@@ -1171,7 +1171,7 @@ class SetupDialog(QDialog, Ui_Dialog):
|
||||
if QMessageBox.critical(self,
|
||||
self.windowTitle(),
|
||||
error_text,
|
||||
- QMessageBox.Retry | QMessageBox.Default,
|
||||
+ QMessageBox.Retry | QMessageBox.Default |\
|
||||
QMessageBox.Cancel | QMessageBox.Escape,
|
||||
QMessageBox.NoButton) == QMessageBox.Cancel:
|
||||
break
|
||||
@@ -1223,7 +1223,7 @@ class SetupDialog(QDialog, Ui_Dialog):
|
||||
if QMessageBox.critical(self,
|
||||
self.windowTitle(),
|
||||
error_text,
|
||||
- QMessageBox.Retry | QMessageBox.Default,
|
||||
+ QMessageBox.Retry | QMessageBox.Default |\
|
||||
QMessageBox.Cancel | QMessageBox.Escape,
|
||||
QMessageBox.NoButton) == QMessageBox.Cancel:
|
||||
break
|
||||
diff -up hplip-3.23.3/ui/devmgr4.py.qmsgbox-typos-fix hplip-3.23.3/ui/devmgr4.py
|
||||
--- hplip-3.23.3/ui/devmgr4.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui/devmgr4.py 2023-05-29 13:48:48.424731328 +0200
|
||||
@@ -1422,7 +1422,7 @@ class DevMgr4(DevMgr4_base):
|
||||
QMessageBox.critical(self,
|
||||
self.caption(),
|
||||
|
|
@ -112,11 +175,10 @@ index cc2552f91..a868ccac0 100644
|
|||
QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
diff --git a/ui/faxaddrbookform.py b/ui/faxaddrbookform.py
|
||||
index 109462207..b23364410 100644
|
||||
--- a/ui/faxaddrbookform.py
|
||||
+++ b/ui/faxaddrbookform.py
|
||||
@@ -228,7 +228,7 @@ class FaxAddrBookGroupsForm(FaxAddrBookGroupsForm_base):
|
||||
diff -up hplip-3.23.3/ui/faxaddrbookform.py.qmsgbox-typos-fix hplip-3.23.3/ui/faxaddrbookform.py
|
||||
--- hplip-3.23.3/ui/faxaddrbookform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui/faxaddrbookform.py 2023-05-29 13:48:48.424731328 +0200
|
||||
@@ -228,7 +228,7 @@ class FaxAddrBookGroupsForm(FaxAddrBookG
|
||||
x = QMessageBox.critical(self,
|
||||
self.caption(),
|
||||
self.__tr("<b>Annoying Confirmation: Are you sure you want to delete this group?</b>"),
|
||||
|
|
@ -125,7 +187,7 @@ index 109462207..b23364410 100644
|
|||
QMessageBox.No | QMessageBox.Default,
|
||||
QMessageBox.NoButton)
|
||||
if x == QMessageBox.Yes:
|
||||
@@ -421,7 +421,7 @@ class FaxAddrBookForm(FaxAddrBookForm_base):
|
||||
@@ -421,7 +421,7 @@ class FaxAddrBookForm(FaxAddrBookForm_ba
|
||||
if QMessageBox.critical(self,
|
||||
self.caption(),
|
||||
self.__tr("<b>Annoying Confirmation: Are you sure you want to delete this address book entry?</b>"),
|
||||
|
|
@ -134,7 +196,7 @@ index 109462207..b23364410 100644
|
|||
QMessageBox.No | QMessageBox.Default,
|
||||
QMessageBox.NoButton) == QMessageBox.Yes:
|
||||
db.delete(self.current.entry['name'])
|
||||
@@ -451,7 +451,7 @@ class FaxAddrBookForm(FaxAddrBookForm_base):
|
||||
@@ -451,7 +451,7 @@ class FaxAddrBookForm(FaxAddrBookForm_ba
|
||||
QMessageBox.critical(self,
|
||||
self.caption(),
|
||||
QString(error_text),
|
||||
|
|
@ -143,10 +205,9 @@ index 109462207..b23364410 100644
|
|||
QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
diff --git a/ui/faxsendjobform.py b/ui/faxsendjobform.py
|
||||
index 106215c5e..69f424c42 100644
|
||||
--- a/ui/faxsendjobform.py
|
||||
+++ b/ui/faxsendjobform.py
|
||||
diff -up hplip-3.23.3/ui/faxsendjobform.py.qmsgbox-typos-fix hplip-3.23.3/ui/faxsendjobform.py
|
||||
--- hplip-3.23.3/ui/faxsendjobform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui/faxsendjobform.py 2023-05-29 13:48:48.424731328 +0200
|
||||
@@ -210,7 +210,7 @@ class FaxSendJobForm(QMainWindow):
|
||||
QMessageBox.information(self,
|
||||
self.caption(),
|
||||
|
|
@ -174,11 +235,10 @@ index 106215c5e..69f424c42 100644
|
|||
QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
diff --git a/ui/firmwaredialog.py b/ui/firmwaredialog.py
|
||||
index 16b313374..0bcee1164 100644
|
||||
--- a/ui/firmwaredialog.py
|
||||
+++ b/ui/firmwaredialog.py
|
||||
@@ -109,7 +109,7 @@ class FirmwareDialog(QDialog, FirmwareDialog_Base):
|
||||
diff -up hplip-3.23.3/ui/firmwaredialog.py.qmsgbox-typos-fix hplip-3.23.3/ui/firmwaredialog.py
|
||||
--- hplip-3.23.3/ui/firmwaredialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui/firmwaredialog.py 2023-05-29 13:48:48.424731328 +0200
|
||||
@@ -109,7 +109,7 @@ class FirmwareDialog(QDialog, FirmwareDi
|
||||
QMessageBox.critical(self,
|
||||
self.caption(),
|
||||
error_text,
|
||||
|
|
@ -187,10 +247,9 @@ index 16b313374..0bcee1164 100644
|
|||
QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
diff --git a/ui/makecopiesform.py b/ui/makecopiesform.py
|
||||
index 27f144b36..0fbb573e3 100644
|
||||
--- a/ui/makecopiesform.py
|
||||
+++ b/ui/makecopiesform.py
|
||||
diff -up hplip-3.23.3/ui/makecopiesform.py.qmsgbox-typos-fix hplip-3.23.3/ui/makecopiesform.py
|
||||
--- hplip-3.23.3/ui/makecopiesform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui/makecopiesform.py 2023-05-29 13:48:48.424731328 +0200
|
||||
@@ -156,7 +156,7 @@ class MakeCopiesForm(QMainWindow):
|
||||
QMessageBox.critical(self,
|
||||
self.caption(),
|
||||
|
|
@ -209,10 +268,9 @@ index 27f144b36..0fbb573e3 100644
|
|||
QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
diff --git a/ui/nodevicesform.py b/ui/nodevicesform.py
|
||||
index 01f6ae53b..57a696375 100644
|
||||
--- a/ui/nodevicesform.py
|
||||
+++ b/ui/nodevicesform.py
|
||||
diff -up hplip-3.23.3/ui/nodevicesform.py.qmsgbox-typos-fix hplip-3.23.3/ui/nodevicesform.py
|
||||
--- hplip-3.23.3/ui/nodevicesform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui/nodevicesform.py 2023-05-29 13:48:48.424731328 +0200
|
||||
@@ -67,7 +67,7 @@ class NoDevicesForm(NoDevicesForm_base):
|
||||
QMessageBox.critical(self,
|
||||
self.caption(),
|
||||
|
|
@ -222,10 +280,9 @@ index 01f6ae53b..57a696375 100644
|
|||
QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
diff --git a/ui/pluginform2.py b/ui/pluginform2.py
|
||||
index 64e64aa77..76cb0238b 100644
|
||||
--- a/ui/pluginform2.py
|
||||
+++ b/ui/pluginform2.py
|
||||
diff -up hplip-3.23.3/ui/pluginform2.py.qmsgbox-typos-fix hplip-3.23.3/ui/pluginform2.py
|
||||
--- hplip-3.23.3/ui/pluginform2.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui/pluginform2.py 2023-05-29 13:48:48.424731328 +0200
|
||||
@@ -173,7 +173,7 @@ class PluginForm2(PluginForm2_base):
|
||||
QMessageBox.critical(self,
|
||||
self.caption(),
|
||||
|
|
@ -244,10 +301,9 @@ index 64e64aa77..76cb0238b 100644
|
|||
QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
diff --git a/ui/printerform.py b/ui/printerform.py
|
||||
index 0c6c4f39e..7c10ab07b 100644
|
||||
--- a/ui/printerform.py
|
||||
+++ b/ui/printerform.py
|
||||
diff -up hplip-3.23.3/ui/printerform.py.qmsgbox-typos-fix hplip-3.23.3/ui/printerform.py
|
||||
--- hplip-3.23.3/ui/printerform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui/printerform.py 2023-05-29 13:48:48.425731321 +0200
|
||||
@@ -154,7 +154,7 @@ class PrinterForm(QMainWindow):
|
||||
QMessageBox.critical(self,
|
||||
self.caption(),
|
||||
|
|
@ -257,11 +313,10 @@ index 0c6c4f39e..7c10ab07b 100644
|
|||
QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
diff --git a/ui/settingsdialog.py b/ui/settingsdialog.py
|
||||
index 92da22546..24f02fd84 100644
|
||||
--- a/ui/settingsdialog.py
|
||||
+++ b/ui/settingsdialog.py
|
||||
@@ -146,7 +146,7 @@ class SettingsDialog(SettingsDialog_base):
|
||||
diff -up hplip-3.23.3/ui/settingsdialog.py.qmsgbox-typos-fix hplip-3.23.3/ui/settingsdialog.py
|
||||
--- hplip-3.23.3/ui/settingsdialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui/settingsdialog.py 2023-05-29 13:48:48.425731321 +0200
|
||||
@@ -146,7 +146,7 @@ class SettingsDialog(SettingsDialog_base
|
||||
## QMessageBox.warning(self,
|
||||
## self.caption(),
|
||||
## self.__tr("<b>One or more email addresses are missing.</b><p>Please enter this information and try again."),
|
||||
|
|
@ -270,7 +325,7 @@ index 92da22546..24f02fd84 100644
|
|||
## QMessageBox.NoButton,
|
||||
## QMessageBox.NoButton)
|
||||
## return
|
||||
@@ -163,7 +163,7 @@ class SettingsDialog(SettingsDialog_base):
|
||||
@@ -163,7 +163,7 @@ class SettingsDialog(SettingsDialog_base
|
||||
## QMessageBox.information(self,
|
||||
## self.caption(),
|
||||
## self.__tr("<p><b>Please check your email for a test message.</b><p>If the message doesn't arrive, please check your settings and try again."),
|
||||
|
|
@ -279,10 +334,9 @@ index 92da22546..24f02fd84 100644
|
|||
## QMessageBox.NoButton,
|
||||
## QMessageBox.NoButton)
|
||||
|
||||
diff --git a/ui/setupform.py b/ui/setupform.py
|
||||
index 307917b02..78863fdd8 100644
|
||||
--- a/ui/setupform.py
|
||||
+++ b/ui/setupform.py
|
||||
diff -up hplip-3.23.3/ui/setupform.py.qmsgbox-typos-fix hplip-3.23.3/ui/setupform.py
|
||||
--- hplip-3.23.3/ui/setupform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui/setupform.py 2023-05-29 13:48:48.425731321 +0200
|
||||
@@ -602,7 +602,7 @@ class SetupForm(SetupForm_base):
|
||||
if ( QMessageBox.warning(self,
|
||||
self.caption(),
|
||||
|
|
@ -328,10 +382,9 @@ index 307917b02..78863fdd8 100644
|
|||
QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
diff --git a/ui/unloadform.py b/ui/unloadform.py
|
||||
index 8397a689c..ae363e01e 100644
|
||||
--- a/ui/unloadform.py
|
||||
+++ b/ui/unloadform.py
|
||||
diff -up hplip-3.23.3/ui/unloadform.py.qmsgbox-typos-fix hplip-3.23.3/ui/unloadform.py
|
||||
--- hplip-3.23.3/ui/unloadform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui/unloadform.py 2023-05-29 13:48:48.425731321 +0200
|
||||
@@ -135,7 +135,7 @@ class UnloadForm(QMainWindow):
|
||||
QMessageBox.critical(self,
|
||||
self.caption(),
|
||||
|
|
@ -341,10 +394,9 @@ index 8397a689c..ae363e01e 100644
|
|||
QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
diff --git a/ui/upgradeform.py b/ui/upgradeform.py
|
||||
index 6b9acf5cc..d0b418419 100644
|
||||
--- a/ui/upgradeform.py
|
||||
+++ b/ui/upgradeform.py
|
||||
diff -up hplip-3.23.3/ui/upgradeform.py.qmsgbox-typos-fix hplip-3.23.3/ui/upgradeform.py
|
||||
--- hplip-3.23.3/ui/upgradeform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/ui/upgradeform.py 2023-05-29 13:48:48.425731321 +0200
|
||||
@@ -118,7 +118,7 @@ class UpgradeForm(UpgradeForm_base):
|
||||
QMessageBox.critical(self,
|
||||
self.caption(),
|
||||
|
|
@ -363,111 +415,3 @@ index 6b9acf5cc..d0b418419 100644
|
|||
QMessageBox.NoButton,
|
||||
QMessageBox.NoButton)
|
||||
|
||||
diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
|
||||
index 495883f72..0ca016820 100644
|
||||
--- a/ui5/devmgr5.py
|
||||
+++ b/ui5/devmgr5.py
|
||||
@@ -139,8 +139,7 @@ class PluginInstall(QObject):
|
||||
install_plugin = QMessageBox.warning(self.parent,
|
||||
self.parent.windowTitle(),
|
||||
self.__tr("<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
|
||||
|
|
|
|||
1
ci.fmf
Normal file
1
ci.fmf
Normal file
|
|
@ -0,0 +1 @@
|
|||
resultsdb-testcase: separate
|
||||
25
gating.yaml
Normal file
25
gating.yaml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_testing
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional}
|
||||
|
||||
#Rawhide
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_stable
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional}
|
||||
|
||||
#gating rhel
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-*
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-public.functional}
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional}
|
||||
BIN
hp-laserjet_cp_1025nw.ppd.gz
Normal file
BIN
hp-laserjet_cp_1025nw.ppd.gz
Normal file
Binary file not shown.
BIN
hp-laserjet_professional_p_1102w.ppd.gz
Normal file
BIN
hp-laserjet_professional_p_1102w.ppd.gz
Normal file
Binary file not shown.
62
hp-plugin.in
Normal file
62
hp-plugin.in
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
#!/usr/bin/bash
|
||||
|
||||
# get version from base hplip rpm
|
||||
VER=$(@bindir@/rpm -q hplip --queryformat='%{version}')
|
||||
|
||||
if test "x$VER" = "x"
|
||||
then
|
||||
@bindir@/echo "Version was not acquired - exiting..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# plugin name
|
||||
PLUGIN_FILE="hplip-${VER}-plugin.run"
|
||||
|
||||
download()
|
||||
{
|
||||
SOURCE="$1"
|
||||
|
||||
@bindir@/curl --create-dirs -O --output-dir ~/.hplip --location ${SOURCE}
|
||||
}
|
||||
|
||||
# link to the plugin
|
||||
PLUGIN_SOURCE="https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${PLUGIN_FILE}"
|
||||
FALLBACK_SOURCE="https://developers.hp.com/sites/default/files/${PLUGIN_FILE}"
|
||||
|
||||
# create a hidden hplip dir to store a file indicating the plugin version after successful install
|
||||
# the directory can be used by other hplip tools, so we don't have to remove it if the failure happens
|
||||
if [ ! -d ~/.hplip ]
|
||||
then
|
||||
@bindir@/mkdir ~/.hplip || (@bindir@/echo "Cannot create the ~/.hplip dir, exiting" && exit 1)
|
||||
fi
|
||||
|
||||
for link in ${PLUGIN_SOURCE} ${FALLBACK_SOURCE}
|
||||
do
|
||||
download ${link}
|
||||
|
||||
if test "x$(file --mime ~/.hplip/${PLUGIN_FILE} | grep -o 'text/x-shellscript')" = "xtext/x-shellscript"
|
||||
then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if test "x$(file --mime ~/.hplip/${PLUGIN_FILE} | grep -o 'text/x-shellscript')" = "x"
|
||||
then
|
||||
@bindir@/echo "The downloaded file does not exist or is not a shell script - error during downloading, exiting..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@bindir@/bash ~/.hplip/${PLUGIN_FILE}
|
||||
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
@bindir@/echo "Plugin installation failed, exiting..."
|
||||
@bindir@/rm -f ~/.hplip/${PLUGIN_FILE} &> /dev/null
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@bindir@/rm -f ~/.hplip/${PLUGIN_FILE} &> /dev/null
|
||||
@bindir@/rm -f ~/.hplip/plugin-installed-* &> /dev/null
|
||||
@bindir@/touch ~/.hplip/plugin-installed-$VER
|
||||
|
||||
exit 0
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.11 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAlsYzCYACgkQc9dwzaWQR7k3kQCgpUG6Okb3nGf7qodmI9zTBf3A
|
||||
a8AAoLD0LiwifYlnEBlHS5Eaw/ylB9A8
|
||||
=H/1x
|
||||
-----END PGP SIGNATURE-----
|
||||
|
|
@ -1,14 +1,17 @@
|
|||
diff --git a/setup.py b/setup.py
|
||||
index ba1b519..4f64eed 100755
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -556,6 +556,9 @@ else: # INTERACTIVE_MODE
|
||||
else:
|
||||
nickname = open(file_path, 'r').read(4096)
|
||||
diff -up hplip-3.23.3/ui5/setupdialog.py.add-ppd-crash hplip-3.23.3/ui5/setupdialog.py
|
||||
--- hplip-3.23.3/ui5/setupdialog.py.add-ppd-crash 2023-05-29 13:55:03.443497903 +0200
|
||||
+++ hplip-3.23.3/ui5/setupdialog.py 2023-05-29 13:57:19.014700721 +0200
|
||||
@@ -765,10 +765,9 @@ class SetupDialog(QDialog, Ui_Dialog):
|
||||
pass
|
||||
|
||||
+ if sys.version_info[0] > 2:
|
||||
+ nickname = nickname.decode('utf-8')
|
||||
+
|
||||
try:
|
||||
desc = nickname_pat.search(nickname).group(1)
|
||||
except AttributeError:
|
||||
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))
|
||||
|
|
|
|||
|
|
@ -1,16 +1,17 @@
|
|||
diff -up hplip-3.17.11/installer/core_install.py.check-cups hplip-3.17.11/installer/core_install.py
|
||||
--- hplip-3.17.11/installer/core_install.py.check-cups 2017-12-07 15:34:24.855761874 +0100
|
||||
+++ hplip-3.17.11/installer/core_install.py 2017-12-07 15:38:44.749568860 +0100
|
||||
@@ -349,9 +349,9 @@ class CoreInstall(object):
|
||||
diff --git a/installer/core_install.py b/installer/core_install.py
|
||||
index a6654e2..0bd1e9c 100644
|
||||
--- a/installer/core_install.py
|
||||
+++ b/installer/core_install.py
|
||||
@@ -362,9 +362,9 @@ class CoreInstall(object):
|
||||
'automake': (True, ['prnt'], AUTOMAKE_STR, self.check_automake, DEPENDENCY_RUN_AND_COMPILE_TIME, '-', None, GENERALDEP),
|
||||
'libjpeg': (True, ['base', 'prnt'], JPEG_STR, self.check_libjpeg, DEPENDENCY_RUN_AND_COMPILE_TIME, '-', None, GENERALDEP),
|
||||
'libtool': (True, ['base', 'prnt'], LIBTOOL_STR, self.check_libtool, DEPENDENCY_COMPILE_TIME, '-', 'libtool --version', COMPILEDEP),
|
||||
- 'cups': (True, ['base', 'prnt'], CUPS_STR, self.check_cups, DEPENDENCY_RUN_TIME, '1.1', 'cups-config --version', EXTERNALDEP),
|
||||
- 'cups-devel': (True, ['base', 'prnt'], CUPS_DEV_STR, self.check_cups_devel, DEPENDENCY_COMPILE_TIME, '-', 'cups-config --version', GENERALDEP),
|
||||
- 'cups-image': (True, ['base', 'prnt'], CUPS_IMG_STR, self.check_cups_image, DEPENDENCY_COMPILE_TIME, '-', 'cups-config --version', GENERALDEP),
|
||||
+ 'cups': (True, ['base', 'prnt'], CUPS_STR, self.check_cups, DEPENDENCY_RUN_TIME, '1.1', 'lpstat -r', EXTERNALDEP),
|
||||
+ 'cups-devel': (True, ['base', 'prnt'], CUPS_DEV_STR, self.check_cups_devel, DEPENDENCY_COMPILE_TIME, '-', 'lpstat -r', GENERALDEP),
|
||||
+ 'cups-image': (True, ['base', 'prnt'], CUPS_IMG_STR, self.check_cups_image, DEPENDENCY_COMPILE_TIME, '-', 'lpstat -r', GENERALDEP),
|
||||
+ 'cups': (True, ['base', 'prnt'], CUPS_STR, self.check_cups, DEPENDENCY_RUN_TIME, '-', None, EXTERNALDEP),
|
||||
+ 'cups-devel': (True, ['base', 'prnt'], CUPS_DEV_STR, self.check_cups_devel, DEPENDENCY_COMPILE_TIME, '1.1', 'pkgconf --modversion cups', GENERALDEP),
|
||||
+ 'cups-image': (True, ['base', 'prnt'], CUPS_IMG_STR, self.check_cups_image, DEPENDENCY_COMPILE_TIME, '1.1', 'pkgconf --modversion cups', GENERALDEP),
|
||||
'gcc': (True, ['base', 'prnt'], GCC_STR, self.check_gcc, DEPENDENCY_COMPILE_TIME, '-', 'gcc --version', COMPILEDEP),
|
||||
'make': (True, ['base', 'prnt'], MAKE_STR, self.check_make, DEPENDENCY_COMPILE_TIME, '3.0', 'make --version', COMPILEDEP),
|
||||
'libpthread': (True, ['base', 'prnt'], THREAD_STR, self.check_libpthread, DEPENDENCY_RUN_AND_COMPILE_TIME, '-', 'FUNC#get_libpthread_version', GENERALDEP),
|
||||
|
|
|
|||
44
hplip-clean-ldl.patch
Normal file
44
hplip-clean-ldl.patch
Normal 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:
|
||||
|
||||
|
|
@ -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
|
||||
|
||||
+[hp_colorlaserjet_mfp_m278-m281]
|
||||
+align-type=0
|
||||
+clean-type=0
|
||||
+color-cal-type=0
|
||||
+copy-type=0
|
||||
+embedded-server-type=1
|
||||
+fax-type=7
|
||||
+fw-download=False
|
||||
+icon=hp_color_laserjet_cm1312_mfp.png
|
||||
+io-mfp-mode=1
|
||||
+io-mode=1
|
||||
+io-support=14
|
||||
+job-storage=0
|
||||
+linefeed-cal-type=0
|
||||
+model1=HP Color LaserJet MFP M278-281
|
||||
+monitor-type=0
|
||||
+panel-check-type=0
|
||||
+pcard-type=0
|
||||
+plugin=1
|
||||
+plugin-reason=64
|
||||
+power-settings=0
|
||||
+ppd-name=hp-color_laserjet_pro_mfp_m277
|
||||
+pq-diag-type=0
|
||||
+r-type=0
|
||||
+r0-agent1-kind=4
|
||||
+r0-agent1-sku=CF400A/CF400X
|
||||
+r0-agent1-type=1
|
||||
+r0-agent2-kind=4
|
||||
+r0-agent2-sku=CF401A
|
||||
+r0-agent2-type=4
|
||||
+r0-agent3-kind=4
|
||||
+r0-agent3-sku=CF403A
|
||||
+r0-agent3-type=5
|
||||
+r0-agent4-kind=4
|
||||
+r0-agent4-sku=CF402A
|
||||
+r0-agent4-type=6
|
||||
+scan-src=3
|
||||
+scan-type=5
|
||||
+status-battery-check=0
|
||||
+status-dynamic-counters=0
|
||||
+status-type=10
|
||||
+support-released=True
|
||||
+support-subtype=48c3
|
||||
+support-type=2
|
||||
+support-ver=3.15.4
|
||||
+tech-class=Postscript
|
||||
+family-class=Undefined
|
||||
+tech-subclass=Normal
|
||||
+tech-type=4
|
||||
+usb-pid=3c2a
|
||||
+usb-vid=3f0
|
||||
+wifi-config=3
|
||||
+
|
||||
[hp_color_laserjet_m553]
|
||||
align-type=0
|
||||
clean-type=0
|
||||
52
hplip-configure-python.patch
Normal file
52
hplip-configure-python.patch
Normal 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)])
|
||||
|
|
@ -1,38 +1,6 @@
|
|||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 62a25d3..2c4d6f8 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -3,7 +3,7 @@
|
||||
#
|
||||
# (c) 2004-2015 Copyright HP Development Company, LP
|
||||
# Author: David Suffield, Naga Samrat Chowdary Narla, Sarbeswar Meher
|
||||
-INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/
|
||||
+INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/ -Iprotocol
|
||||
CFLAGS+= -DCONFDIR=\"$(hplip_confdir)\"
|
||||
CXXFLAGS+= -DCONFDIR=\"$(hplip_confdir)\"
|
||||
|
||||
@@ -304,7 +304,7 @@ dist_pcard_DATA = pcard/__init__.py pcard/photocard.py
|
||||
pcardextdir = $(pyexecdir)
|
||||
pcardext_LTLIBRARIES = pcardext.la
|
||||
pcardext_la_LDFLAGS = -module -avoid-version
|
||||
-pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c
|
||||
+pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h
|
||||
pcardext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
|
||||
|
||||
# prnt
|
||||
@@ -316,7 +316,7 @@ lib_LTLIBRARIES += libhpipp.la
|
||||
#hpipp_LTLIBRARIES = hpipp.la
|
||||
#hpipp_la_LDFLAGS = -module -avoid-version
|
||||
libhpipp_la_SOURCES = protocol/hp_ipp.c protocol/hp_ipp.h protocol/hp_ipp_i.h
|
||||
-libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\"
|
||||
+libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\" -D_GNU_SOURCE
|
||||
libhpipp_la_LDFLAGS = -version-info 0:1:0
|
||||
libhpipp_la_LIBADD = libhpmud.la
|
||||
|
||||
diff --git a/common/utils.c b/common/utils.c
|
||||
index d8ecee9..def4e47 100644
|
||||
--- a/common/utils.c
|
||||
+++ b/common/utils.c
|
||||
diff -up hplip-3.25.2/common/utils.c.covscan hplip-3.25.2/common/utils.c
|
||||
--- hplip-3.25.2/common/utils.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/common/utils.c 2025-04-11 10:21:58.034950818 +0200
|
||||
@@ -1,5 +1,9 @@
|
||||
+#ifndef _GNU_SOURCE
|
||||
+#define _GNU_SOURCE
|
||||
|
|
@ -44,11 +12,10 @@ index d8ecee9..def4e47 100644
|
|||
#include <dlfcn.h>
|
||||
#include <sys/stat.h>
|
||||
#include <errno.h>
|
||||
diff --git a/io/hpmud/hpmud.c b/io/hpmud/hpmud.c
|
||||
index 0eb6fff..358f279 100644
|
||||
--- a/io/hpmud/hpmud.c
|
||||
+++ b/io/hpmud/hpmud.c
|
||||
@@ -759,6 +759,7 @@ enum HPMUD_RESULT hpmud_get_dstat(HPMUD_DEVICE dd, struct hpmud_dstat *ds)
|
||||
diff -up hplip-3.25.2/io/hpmud/hpmud.c.covscan hplip-3.25.2/io/hpmud/hpmud.c
|
||||
--- hplip-3.25.2/io/hpmud/hpmud.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/io/hpmud/hpmud.c 2025-04-11 10:21:58.035151792 +0200
|
||||
@@ -769,6 +769,7 @@ enum HPMUD_RESULT hpmud_get_dstat(HPMUD_
|
||||
}
|
||||
|
||||
strncpy(ds->uri, msp->device[dd].uri, sizeof(ds->uri));
|
||||
|
|
@ -56,10 +23,9 @@ index 0eb6fff..358f279 100644
|
|||
ds->io_mode = msp->device[dd].io_mode;
|
||||
ds->channel_cnt = msp->device[dd].channel_cnt;
|
||||
ds->mlc_up = msp->device[dd].mlc_up;
|
||||
diff --git a/io/hpmud/jd.c b/io/hpmud/jd.c
|
||||
index 06f5072..20df27a 100644
|
||||
--- a/io/hpmud/jd.c
|
||||
+++ b/io/hpmud/jd.c
|
||||
diff -up hplip-3.25.2/io/hpmud/jd.c.covscan hplip-3.25.2/io/hpmud/jd.c
|
||||
--- hplip-3.25.2/io/hpmud/jd.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/io/hpmud/jd.c 2025-04-11 10:21:58.035328288 +0200
|
||||
@@ -31,6 +31,7 @@
|
||||
#endif
|
||||
|
||||
|
|
@ -68,10 +34,9 @@ index 06f5072..20df27a 100644
|
|||
#include "hpmud.h"
|
||||
#include "hpmudi.h"
|
||||
|
||||
diff --git a/io/hpmud/model.c b/io/hpmud/model.c
|
||||
index 4ea8990..a917d69 100644
|
||||
--- a/io/hpmud/model.c
|
||||
+++ b/io/hpmud/model.c
|
||||
diff -up hplip-3.25.2/io/hpmud/model.c.covscan hplip-3.25.2/io/hpmud/model.c
|
||||
--- hplip-3.25.2/io/hpmud/model.c.covscan 2025-04-11 10:21:58.023885145 +0200
|
||||
+++ hplip-3.25.2/io/hpmud/model.c 2025-04-11 10:21:58.035487541 +0200
|
||||
@@ -117,6 +117,7 @@ static int ReadConfig()
|
||||
if (rcbuf[0] == '[')
|
||||
{
|
||||
|
|
@ -88,11 +53,10 @@ index 4ea8990..a917d69 100644
|
|||
break; /* done */
|
||||
}
|
||||
}
|
||||
diff --git a/io/hpmud/musb.c b/io/hpmud/musb.c
|
||||
index 6e99c15..755493e 100644
|
||||
--- a/io/hpmud/musb.c
|
||||
+++ b/io/hpmud/musb.c
|
||||
@@ -775,7 +775,7 @@ static int device_id(int fd, unsigned char *buffer, int size)
|
||||
diff -up hplip-3.25.2/io/hpmud/musb.c.covscan hplip-3.25.2/io/hpmud/musb.c
|
||||
--- hplip-3.25.2/io/hpmud/musb.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/io/hpmud/musb.c 2025-04-11 10:21:58.035717762 +0200
|
||||
@@ -776,7 +776,7 @@ static int device_id(int fd, unsigned ch
|
||||
len = size-1; /* leave byte for zero termination */
|
||||
if (len > 2)
|
||||
len -= 2;
|
||||
|
|
@ -101,11 +65,10 @@ index 6e99c15..755493e 100644
|
|||
buffer[len]=0;
|
||||
DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);
|
||||
|
||||
diff --git a/io/hpmud/pp.c b/io/hpmud/pp.c
|
||||
index 74c5fdc..021d627 100644
|
||||
--- a/io/hpmud/pp.c
|
||||
+++ b/io/hpmud/pp.c
|
||||
@@ -632,7 +632,7 @@ static int device_id(int fd, char *buffer, int size)
|
||||
diff -up hplip-3.25.2/io/hpmud/pp.c.covscan hplip-3.25.2/io/hpmud/pp.c
|
||||
--- hplip-3.25.2/io/hpmud/pp.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/io/hpmud/pp.c 2025-04-11 10:21:58.035977040 +0200
|
||||
@@ -632,7 +632,7 @@ static int device_id(int fd, char *buffe
|
||||
len = size-1; /* leave byte for zero termination */
|
||||
if (len > 2)
|
||||
len -= 2;
|
||||
|
|
@ -114,10 +77,39 @@ index 74c5fdc..021d627 100644
|
|||
buffer[len]=0;
|
||||
|
||||
DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);
|
||||
diff --git a/pcard/fat.c b/pcard/fat.c
|
||||
index caa383f..e1425c0 100644
|
||||
--- a/pcard/fat.c
|
||||
+++ b/pcard/fat.c
|
||||
diff -up hplip-3.25.2/Makefile.am.covscan hplip-3.25.2/Makefile.am
|
||||
--- hplip-3.25.2/Makefile.am.covscan 2025-04-11 10:21:58.010155532 +0200
|
||||
+++ hplip-3.25.2/Makefile.am 2025-04-11 10:22:52.826357214 +0200
|
||||
@@ -3,7 +3,7 @@
|
||||
#
|
||||
# (c) 2004-2015 Copyright HP Development Company, LP
|
||||
# Author: David Suffield, Naga Samrat Chowdary Narla, Sarbeswar Meher
|
||||
-INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/
|
||||
+INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/ -Iprotocol
|
||||
CFLAGS+= -DCONFDIR=\"$(hplip_confdir)\"
|
||||
CXXFLAGS+= -DCONFDIR=\"$(hplip_confdir)\"
|
||||
|
||||
@@ -310,7 +310,7 @@ dist_pcard_DATA = pcard/__init__.py pcar
|
||||
pcardextdir = $(PYTHONEXECDIR)
|
||||
pcardext_LTLIBRARIES = pcardext.la
|
||||
pcardext_la_LDFLAGS = -module -avoid-version
|
||||
-pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c
|
||||
+pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h
|
||||
pcardext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
|
||||
|
||||
# prnt
|
||||
@@ -322,7 +322,7 @@ lib_LTLIBRARIES += libhpipp.la
|
||||
#hpipp_LTLIBRARIES = hpipp.la
|
||||
#hpipp_la_LDFLAGS = -module -avoid-version
|
||||
libhpipp_la_SOURCES = protocol/hp_ipp.c protocol/hp_ipp.h protocol/hp_ipp_i.h
|
||||
-libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\"
|
||||
+libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\" -D_GNU_SOURCE
|
||||
libhpipp_la_LDFLAGS = -version-info 0:1:0
|
||||
libhpipp_la_LIBADD = libhpmud.la
|
||||
|
||||
diff -up hplip-3.25.2/pcard/fat.c.covscan hplip-3.25.2/pcard/fat.c
|
||||
--- hplip-3.25.2/pcard/fat.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/pcard/fat.c 2025-04-11 10:21:58.036450105 +0200
|
||||
@@ -519,14 +519,17 @@ int FatFreeSpace(void)
|
||||
|
||||
int FatDiskAttributes( PHOTO_CARD_ATTRIBUTES * pa )
|
||||
|
|
@ -147,48 +139,9 @@ index caa383f..e1425c0 100644
|
|||
cwd.StartSector = ConvertClusterToSector(fa.StartCluster);
|
||||
cwd.CurrSector = cwd.StartSector;
|
||||
cwd.StartCluster = fa.StartCluster;
|
||||
diff --git a/prnt/hpcups/genPCLm.cpp b/prnt/hpcups/genPCLm.cpp
|
||||
index c0cdc73..4db4bde 100644
|
||||
--- a/prnt/hpcups/genPCLm.cpp
|
||||
+++ b/prnt/hpcups/genPCLm.cpp
|
||||
@@ -1237,11 +1237,16 @@ void PCLmGenerator::writeJobTicket()
|
||||
char orientation[256];
|
||||
char duplex[256];
|
||||
char colorthemes[256];
|
||||
- strncpy(colorthemes,getColorThemesString(m_pPCLmSSettings->colorTheme),256);
|
||||
- strncpy(inputBin,getInputBinString(m_pPCLmSSettings->userInputBin),256);
|
||||
- strncpy(outputBin,getOutputBin(m_pPCLmSSettings->userOutputBin),256);
|
||||
- strncpy(orientation,getOrientationString(m_pPCLmSSettings->userOrientation),256);
|
||||
- strncpy(duplex,getDuplexString(currDuplexDisposition),256);
|
||||
+ strncpy(colorthemes,getColorThemesString(m_pPCLmSSettings->colorTheme), sizeof(colorthemes));
|
||||
+ colorthemes[sizeof(colorthemes)-1] = '\0';
|
||||
+ strncpy(inputBin,getInputBinString(m_pPCLmSSettings->userInputBin), sizeof(inputBin));
|
||||
+ inputBin[sizeof(inputBin)-1] = '\0';
|
||||
+ strncpy(outputBin,getOutputBin(m_pPCLmSSettings->userOutputBin), sizeof(outputBin));
|
||||
+ outputBin[sizeof(outputBin)-1] = '\0';
|
||||
+ strncpy(orientation,getOrientationString(m_pPCLmSSettings->userOrientation), sizeof(orientation));
|
||||
+ orientation[sizeof(orientation)-1] = '\0';
|
||||
+ strncpy(duplex,getDuplexString(currDuplexDisposition), sizeof(duplex));
|
||||
+ duplex[sizeof(duplex)-1] = '\0';
|
||||
|
||||
snprintf(pOutStr,OUT_STR_SIZE,"%% genPCLm (Ver: %f)\n",PCLM_Ver); writeStr2OutBuff(pOutStr);
|
||||
snprintf(pOutStr,OUT_STR_SIZE,"%%============= Job Ticket =============\n"); writeStr2OutBuff(pOutStr);
|
||||
@@ -1635,7 +1640,10 @@ int PCLmGenerator::StartPage(PCLmPageSetup *PCLmPageContent, void **pOutBuffer,
|
||||
}
|
||||
|
||||
if(strlen(PCLmPageContent->mediaSizeName))
|
||||
- strncpy(currMediaName,PCLmPageContent->mediaSizeName,256);
|
||||
+ {
|
||||
+ strncpy(currMediaName,PCLmPageContent->mediaSizeName, sizeof(currMediaName));
|
||||
+ currMediaName[sizeof(currMediaName)-1] = '\0';
|
||||
+ }
|
||||
|
||||
currStripHeight=PCLmPageContent->stripHeight;
|
||||
if(!currStripHeight)
|
||||
diff --git a/prnt/hpijs/context2.cpp b/prnt/hpijs/context2.cpp
|
||||
index c3df482..19490b1 100644
|
||||
--- a/prnt/hpijs/context2.cpp
|
||||
+++ b/prnt/hpijs/context2.cpp
|
||||
diff -up hplip-3.25.2/prnt/hpijs/context2.cpp.covscan hplip-3.25.2/prnt/hpijs/context2.cpp
|
||||
--- hplip-3.25.2/prnt/hpijs/context2.cpp.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/prnt/hpijs/context2.cpp 2025-04-11 10:21:58.036656862 +0200
|
||||
@@ -1302,6 +1302,7 @@ DRIVER_ERROR PrintContext::SelectDevice
|
||||
if(0 == strnlen((const char *)pSS->strDevID, DevIDBuffSize))
|
||||
{
|
||||
|
|
@ -197,11 +150,10 @@ index c3df482..19490b1 100644
|
|||
}
|
||||
thePrinter = pPFI->CreatePrinter (pSS, familyHandle);
|
||||
if (thePrinter->constructor_error != NO_ERROR)
|
||||
diff --git a/prnt/hpijs/systemservices.cpp b/prnt/hpijs/systemservices.cpp
|
||||
index 95f5a64..f5b4bb5 100644
|
||||
--- a/prnt/hpijs/systemservices.cpp
|
||||
+++ b/prnt/hpijs/systemservices.cpp
|
||||
@@ -396,7 +396,10 @@ void SystemServices::AdjustIO(IO_MODE IM, const char* model)
|
||||
diff -up hplip-3.25.2/prnt/hpijs/systemservices.cpp.covscan hplip-3.25.2/prnt/hpijs/systemservices.cpp
|
||||
--- hplip-3.25.2/prnt/hpijs/systemservices.cpp.covscan 2025-02-27 13:12:44.000000000 +0100
|
||||
+++ hplip-3.25.2/prnt/hpijs/systemservices.cpp 2025-04-11 10:21:58.036891582 +0200
|
||||
@@ -396,7 +396,10 @@ void SystemServices::AdjustIO(IO_MODE IM
|
||||
IOMode.bDevID =IM.bDevID && IOMode.bDevID;
|
||||
|
||||
if (model)
|
||||
|
|
@ -212,11 +164,10 @@ index 95f5a64..f5b4bb5 100644
|
|||
}
|
||||
|
||||
APDK_END_NAMESPACE
|
||||
diff --git a/prnt/hpps/hppsfilter.c b/prnt/hpps/hppsfilter.c
|
||||
index 5879a70..d246041 100644
|
||||
--- a/prnt/hpps/hppsfilter.c
|
||||
+++ b/prnt/hpps/hppsfilter.c
|
||||
@@ -230,13 +230,13 @@ static void WriteHeader(char **argument)
|
||||
diff -up hplip-3.25.2/prnt/hpps/hppsfilter.c.covscan hplip-3.25.2/prnt/hpps/hppsfilter.c
|
||||
--- hplip-3.25.2/prnt/hpps/hppsfilter.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/prnt/hpps/hppsfilter.c 2025-04-11 10:21:58.037072084 +0200
|
||||
@@ -329,13 +329,13 @@ static void WriteHeader(char **argument)
|
||||
/* Writing Header Information
|
||||
argument[1] = JOB ID , argument[2]= USERNAME, argument[3] = TITLE */
|
||||
hpwrite("\x1b%-12345X@PJL JOBNAME=", strlen("\x1b%-12345X@PJL JOBNAME="));
|
||||
|
|
@ -233,40 +184,24 @@ index 5879a70..d246041 100644
|
|||
hpwrite(buffer, strlen(buffer));
|
||||
fprintf(stderr, "HP PS filter func = WriteHeader : WRITING PJL HEADER INFO\n");
|
||||
return;
|
||||
diff --git a/protocol/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
|
||||
+++ b/protocol/hp_ipp.h
|
||||
@@ -166,5 +166,10 @@ int getCupsPrinters(printer_t **printer_list);
|
||||
HPIPP_RESULT parseResponseHeader(char* header, int *content_length, int *chunked, int* header_size);
|
||||
HPIPP_RESULT prepend_http_header(raw_ipp *raw_request);
|
||||
diff -up hplip-3.25.2/protocol/hp_ipp.h.covscan hplip-3.25.2/protocol/hp_ipp.h
|
||||
--- hplip-3.25.2/protocol/hp_ipp.h.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/protocol/hp_ipp.h 2025-04-11 10:21:58.037239020 +0200
|
||||
@@ -168,6 +168,11 @@ HPIPP_RESULT parseResponseHeader(char* h
|
||||
HPIPP_RESULT prepend_http_header(raw_ipp *raw_request,const char *resource);
|
||||
enum HPMUD_RESULT sendUSBRequest(char *buf, int size, raw_ipp *responseptr, char * device_uri);
|
||||
enum HPMUD_RESULT sendUSBFileRequest(char *buf, int size, int fileHandle,raw_ipp *responseptr, char *device_uri);
|
||||
+void _releaseCupsInstance();
|
||||
+int addCupsPrinter(char *name, char *device_uri, char *location, char *ppd_file, char *model, char *info);
|
||||
+int delCupsPrinter(char *pr_name);
|
||||
+int setDefaultCupsPrinter(char *pr_name);
|
||||
+int controlCupsPrinter(char *pr_name, int op);
|
||||
|
||||
# endif //_IPP_H
|
||||
diff --git a/scan/sane/bb_ledm.c b/scan/sane/bb_ledm.c
|
||||
index b233d1e..7ba0edf 100644
|
||||
--- a/scan/sane/bb_ledm.c
|
||||
+++ b/scan/sane/bb_ledm.c
|
||||
ipp_t * createFaxDetailRequest(const char *printer_name);
|
||||
ipp_t * getDeviceFaxModemAttributes(char* device_uri,char* printer_name, int *count);
|
||||
diff -up hplip-3.25.2/scan/sane/bb_ledm.c.covscan hplip-3.25.2/scan/sane/bb_ledm.c
|
||||
--- hplip-3.25.2/scan/sane/bb_ledm.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/scan/sane/bb_ledm.c 2025-04-11 10:21:58.037378913 +0200
|
||||
@@ -26,6 +26,7 @@
|
||||
# include "http.h"
|
||||
# include "xml.h"
|
||||
|
|
@ -275,10 +210,9 @@ index b233d1e..7ba0edf 100644
|
|||
|
||||
# include <stdint.h>
|
||||
|
||||
diff --git a/scan/sane/common.h b/scan/sane/common.h
|
||||
index 0f67542..e496a74 100644
|
||||
--- a/scan/sane/common.h
|
||||
+++ b/scan/sane/common.h
|
||||
diff -up hplip-3.25.2/scan/sane/common.h.covscan hplip-3.25.2/scan/sane/common.h
|
||||
--- hplip-3.25.2/scan/sane/common.h.covscan 2025-04-11 10:21:57.806326475 +0200
|
||||
+++ hplip-3.25.2/scan/sane/common.h 2025-04-11 10:21:58.037532413 +0200
|
||||
@@ -36,7 +36,7 @@
|
||||
#define _STRINGIZE(x) #x
|
||||
#define STRINGIZE(x) _STRINGIZE(x)
|
||||
|
|
@ -288,11 +222,10 @@ index 0f67542..e496a74 100644
|
|||
#define BUG_DUMP(data, size) bugdump((data), (size))
|
||||
#define BUG_SZ(args...) {syslog(LOG_ERR, args); DBG(2, args);}
|
||||
|
||||
diff --git a/scan/sane/escl.c b/scan/sane/escl.c
|
||||
index af45bff..4f59b21 100644
|
||||
--- a/scan/sane/escl.c
|
||||
+++ b/scan/sane/escl.c
|
||||
@@ -795,7 +795,7 @@ SANE_Status escl_control_option(SANE_Handle handle, SANE_Int option, SANE_Action
|
||||
diff -up hplip-3.25.2/scan/sane/escl.c.covscan hplip-3.25.2/scan/sane/escl.c
|
||||
--- hplip-3.25.2/scan/sane/escl.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/scan/sane/escl.c 2025-04-11 10:21:58.037677793 +0200
|
||||
@@ -849,7 +849,7 @@ SANE_Status escl_control_option(SANE_Han
|
||||
//DBG8("escl_control_option (option=%s) action=%d\n", ps->option[option].name, action);
|
||||
if (stat != SANE_STATUS_GOOD)
|
||||
{
|
||||
|
|
@ -301,7 +234,7 @@ index af45bff..4f59b21 100644
|
|||
}
|
||||
|
||||
return stat;
|
||||
@@ -1102,7 +1102,7 @@ void escl_close(SANE_Handle handle)
|
||||
@@ -1159,7 +1159,7 @@ void escl_close(SANE_Handle handle)
|
||||
|
||||
if (ps == NULL || ps != session)
|
||||
{
|
||||
|
|
@ -310,22 +243,9 @@ 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
|
||||
+++ b/scan/sane/http.c
|
||||
diff -up hplip-3.25.2/scan/sane/http.c.covscan hplip-3.25.2/scan/sane/http.c
|
||||
--- hplip-3.25.2/scan/sane/http.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/scan/sane/http.c 2025-04-11 10:21:58.037859247 +0200
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <string.h>
|
||||
#include <syslog.h>
|
||||
|
|
@ -334,11 +254,10 @@ index 800df91..45668cd 100644
|
|||
#include "hpmud.h"
|
||||
#include "http.h"
|
||||
|
||||
diff --git a/scan/sane/io.c b/scan/sane/io.c
|
||||
index 4508458..7bbddea 100755
|
||||
--- a/scan/sane/io.c
|
||||
+++ b/scan/sane/io.c
|
||||
@@ -50,7 +50,7 @@ int __attribute__ ((visibility ("hidden"))) InitDbus(void)
|
||||
diff -up hplip-3.25.2/scan/sane/io.c.covscan hplip-3.25.2/scan/sane/io.c
|
||||
--- hplip-3.25.2/scan/sane/io.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/scan/sane/io.c 2025-04-11 10:21:58.037998005 +0200
|
||||
@@ -50,7 +50,7 @@ int __attribute__ ((visibility ("hidden"
|
||||
|
||||
if (dbus_error_is_set(&dbus_err))
|
||||
{
|
||||
|
|
@ -347,7 +266,7 @@ index 4508458..7bbddea 100755
|
|||
dbus_error_free(&dbus_err);
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ int __attribute__ ((visibility ("hidden"))) SendScanEvent(char *device_uri, int
|
||||
@@ -79,7 +79,7 @@ int __attribute__ ((visibility ("hidden"
|
||||
|
||||
if (NULL == msg)
|
||||
{
|
||||
|
|
@ -356,7 +275,7 @@ index 4508458..7bbddea 100755
|
|||
return 0;
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ int __attribute__ ((visibility ("hidden"))) SendScanEvent(char *device_uri, int
|
||||
@@ -94,7 +94,7 @@ int __attribute__ ((visibility ("hidden"
|
||||
|
||||
if (!dbus_connection_send(dbus_conn, msg, NULL))
|
||||
{
|
||||
|
|
@ -365,11 +284,10 @@ index 4508458..7bbddea 100755
|
|||
return 0;
|
||||
}
|
||||
|
||||
diff --git a/scan/sane/ledm.c b/scan/sane/ledm.c
|
||||
index 9a1ff02..07ab5b0 100644
|
||||
--- a/scan/sane/ledm.c
|
||||
+++ b/scan/sane/ledm.c
|
||||
@@ -802,7 +802,7 @@ SANE_Status ledm_control_option(SANE_Handle handle, SANE_Int option, SANE_Action
|
||||
diff -up hplip-3.25.2/scan/sane/ledm.c.covscan hplip-3.25.2/scan/sane/ledm.c
|
||||
--- hplip-3.25.2/scan/sane/ledm.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/scan/sane/ledm.c 2025-04-11 10:21:58.038131991 +0200
|
||||
@@ -813,7 +813,7 @@ SANE_Status ledm_control_option(SANE_Han
|
||||
|
||||
if (stat != SANE_STATUS_GOOD)
|
||||
{
|
||||
|
|
@ -378,7 +296,7 @@ index 9a1ff02..07ab5b0 100644
|
|||
}
|
||||
|
||||
return stat;
|
||||
@@ -1067,7 +1067,7 @@ void ledm_close(SANE_Handle handle)
|
||||
@@ -1078,7 +1078,7 @@ void ledm_close(SANE_Handle handle)
|
||||
|
||||
if (ps == NULL || ps != session)
|
||||
{
|
||||
|
|
@ -387,11 +305,10 @@ index 9a1ff02..07ab5b0 100644
|
|||
return;
|
||||
}
|
||||
|
||||
diff --git a/scan/sane/marvell.c b/scan/sane/marvell.c
|
||||
index ad267a3..236f7c9 100644
|
||||
--- a/scan/sane/marvell.c
|
||||
+++ b/scan/sane/marvell.c
|
||||
@@ -134,7 +134,7 @@ static int get_ip_data(struct marvell_session *ps, SANE_Byte *data, SANE_Int max
|
||||
diff -up hplip-3.25.2/scan/sane/marvell.c.covscan hplip-3.25.2/scan/sane/marvell.c
|
||||
--- hplip-3.25.2/scan/sane/marvell.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/scan/sane/marvell.c 2025-04-11 10:21:58.038309394 +0200
|
||||
@@ -134,7 +134,7 @@ static int get_ip_data(struct marvell_se
|
||||
|
||||
if (!ps->ip_handle)
|
||||
{
|
||||
|
|
@ -400,7 +317,7 @@ index ad267a3..236f7c9 100644
|
|||
goto bugout;
|
||||
}
|
||||
|
||||
@@ -335,7 +335,7 @@ static struct marvell_session *create_session()
|
||||
@@ -335,7 +335,7 @@ static struct marvell_session *create_se
|
||||
|
||||
if ((ps = malloc(sizeof(struct marvell_session))) == NULL)
|
||||
{
|
||||
|
|
@ -409,7 +326,7 @@ index ad267a3..236f7c9 100644
|
|||
return NULL;
|
||||
}
|
||||
memset(ps, 0, sizeof(struct marvell_session));
|
||||
@@ -402,7 +402,7 @@ SANE_Status marvell_open(SANE_String_Const device, SANE_Handle *handle)
|
||||
@@ -402,7 +402,7 @@ SANE_Status marvell_open(SANE_String_Con
|
||||
|
||||
if (session)
|
||||
{
|
||||
|
|
@ -418,7 +335,7 @@ index ad267a3..236f7c9 100644
|
|||
return SANE_STATUS_DEVICE_BUSY;
|
||||
}
|
||||
|
||||
@@ -431,7 +431,7 @@ SANE_Status marvell_open(SANE_String_Const device, SANE_Handle *handle)
|
||||
@@ -431,7 +431,7 @@ SANE_Status marvell_open(SANE_String_Con
|
||||
|
||||
if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK)
|
||||
{
|
||||
|
|
@ -427,7 +344,7 @@ index ad267a3..236f7c9 100644
|
|||
goto bugout;
|
||||
|
||||
free(session);
|
||||
@@ -441,7 +441,7 @@ SANE_Status marvell_open(SANE_String_Const device, SANE_Handle *handle)
|
||||
@@ -441,7 +441,7 @@ SANE_Status marvell_open(SANE_String_Con
|
||||
|
||||
if (hpmud_open_channel(session->dd, HPMUD_S_MARVELL_SCAN_CHANNEL, &session->cd) != HPMUD_R_OK)
|
||||
{
|
||||
|
|
@ -445,7 +362,7 @@ index ad267a3..236f7c9 100644
|
|||
return;
|
||||
}
|
||||
|
||||
@@ -849,7 +849,7 @@ SANE_Status marvell_control_option(SANE_Handle handle, SANE_Int option, SANE_Act
|
||||
@@ -849,7 +849,7 @@ SANE_Status marvell_control_option(SANE_
|
||||
stat = SANE_STATUS_GOOD;
|
||||
break;
|
||||
}
|
||||
|
|
@ -454,7 +371,7 @@ index ad267a3..236f7c9 100644
|
|||
}
|
||||
else
|
||||
{ /* Set default. */
|
||||
@@ -866,7 +866,7 @@ SANE_Status marvell_control_option(SANE_Handle handle, SANE_Int option, SANE_Act
|
||||
@@ -866,7 +866,7 @@ SANE_Status marvell_control_option(SANE_
|
||||
|
||||
if (stat != SANE_STATUS_GOOD)
|
||||
{
|
||||
|
|
@ -463,7 +380,7 @@ index ad267a3..236f7c9 100644
|
|||
action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
|
||||
}
|
||||
|
||||
@@ -905,7 +905,7 @@ SANE_Status marvell_start(SANE_Handle handle)
|
||||
@@ -905,7 +905,7 @@ SANE_Status marvell_start(SANE_Handle ha
|
||||
|
||||
if (set_extents(ps))
|
||||
{
|
||||
|
|
@ -472,7 +389,7 @@ index ad267a3..236f7c9 100644
|
|||
ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);
|
||||
stat = SANE_STATUS_INVAL;
|
||||
goto bugout;
|
||||
@@ -963,7 +963,7 @@ SANE_Status marvell_start(SANE_Handle handle)
|
||||
@@ -963,7 +963,7 @@ SANE_Status marvell_start(SANE_Handle ha
|
||||
/* Open image processor. */
|
||||
if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE)
|
||||
{
|
||||
|
|
@ -481,7 +398,7 @@ index ad267a3..236f7c9 100644
|
|||
stat = SANE_STATUS_INVAL;
|
||||
goto bugout;
|
||||
}
|
||||
@@ -1023,7 +1023,7 @@ SANE_Status marvell_read(SANE_Handle handle, SANE_Byte *data, SANE_Int maxLength
|
||||
@@ -1023,7 +1023,7 @@ SANE_Status marvell_read(SANE_Handle han
|
||||
|
||||
if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
|
||||
{
|
||||
|
|
@ -490,10 +407,9 @@ index ad267a3..236f7c9 100644
|
|||
goto bugout;
|
||||
}
|
||||
|
||||
diff --git a/scan/sane/sclpml.c b/scan/sane/sclpml.c
|
||||
index 9a5975f..dc8b32c 100644
|
||||
--- a/scan/sane/sclpml.c
|
||||
+++ b/scan/sane/sclpml.c
|
||||
diff -up hplip-3.25.2/scan/sane/sclpml.c.covscan hplip-3.25.2/scan/sane/sclpml.c
|
||||
--- hplip-3.25.2/scan/sane/sclpml.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/scan/sane/sclpml.c 2025-04-11 10:21:58.038605168 +0200
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
|
|
@ -511,11 +427,10 @@ index 9a5975f..dc8b32c 100644
|
|||
return;
|
||||
}
|
||||
|
||||
diff --git a/scan/sane/soap.c b/scan/sane/soap.c
|
||||
index 07106fe..0d22e52 100644
|
||||
--- a/scan/sane/soap.c
|
||||
+++ b/scan/sane/soap.c
|
||||
@@ -142,7 +142,7 @@ static int get_ip_data(struct soap_session *ps, SANE_Byte *data, SANE_Int maxLen
|
||||
diff -up hplip-3.25.2/scan/sane/soap.c.covscan hplip-3.25.2/scan/sane/soap.c
|
||||
--- hplip-3.25.2/scan/sane/soap.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/scan/sane/soap.c 2025-04-11 10:21:58.038894758 +0200
|
||||
@@ -142,7 +142,7 @@ static int get_ip_data(struct soap_sessi
|
||||
|
||||
if (!ps->ip_handle)
|
||||
{
|
||||
|
|
@ -524,7 +439,7 @@ index 07106fe..0d22e52 100644
|
|||
goto bugout;
|
||||
}
|
||||
|
||||
@@ -219,7 +219,7 @@ static struct soap_session *create_session()
|
||||
@@ -219,7 +219,7 @@ static struct soap_session *create_sessi
|
||||
|
||||
if ((ps = malloc(sizeof(struct soap_session))) == NULL)
|
||||
{
|
||||
|
|
@ -533,7 +448,7 @@ index 07106fe..0d22e52 100644
|
|||
return NULL;
|
||||
}
|
||||
memset(ps, 0, sizeof(struct soap_session));
|
||||
@@ -418,7 +418,7 @@ SANE_Status soap_open(SANE_String_Const device, SANE_Handle *handle)
|
||||
@@ -418,7 +418,7 @@ SANE_Status soap_open(SANE_String_Const
|
||||
|
||||
if (session)
|
||||
{
|
||||
|
|
@ -542,7 +457,7 @@ index 07106fe..0d22e52 100644
|
|||
return SANE_STATUS_DEVICE_BUSY;
|
||||
}
|
||||
|
||||
@@ -434,7 +434,7 @@ SANE_Status soap_open(SANE_String_Const device, SANE_Handle *handle)
|
||||
@@ -434,7 +434,7 @@ SANE_Status soap_open(SANE_String_Const
|
||||
|
||||
if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK)
|
||||
{
|
||||
|
|
@ -560,7 +475,7 @@ index 07106fe..0d22e52 100644
|
|||
return;
|
||||
}
|
||||
|
||||
@@ -824,7 +824,7 @@ SANE_Status soap_control_option(SANE_Handle handle, SANE_Int option, SANE_Action
|
||||
@@ -824,7 +824,7 @@ SANE_Status soap_control_option(SANE_Han
|
||||
|
||||
if (stat != SANE_STATUS_GOOD)
|
||||
{
|
||||
|
|
@ -569,7 +484,7 @@ index 07106fe..0d22e52 100644
|
|||
action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
|
||||
}
|
||||
|
||||
@@ -862,7 +862,7 @@ SANE_Status soap_start(SANE_Handle handle)
|
||||
@@ -862,7 +862,7 @@ SANE_Status soap_start(SANE_Handle handl
|
||||
ps->user_cancel = 0;
|
||||
if (set_extents(ps))
|
||||
{
|
||||
|
|
@ -578,7 +493,7 @@ index 07106fe..0d22e52 100644
|
|||
ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);
|
||||
stat = SANE_STATUS_INVAL;
|
||||
goto bugout;
|
||||
@@ -913,7 +913,7 @@ SANE_Status soap_start(SANE_Handle handle)
|
||||
@@ -913,7 +913,7 @@ SANE_Status soap_start(SANE_Handle handl
|
||||
/* Open image processor. */
|
||||
if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE)
|
||||
{
|
||||
|
|
@ -587,7 +502,7 @@ index 07106fe..0d22e52 100644
|
|||
stat = SANE_STATUS_INVAL;
|
||||
goto bugout;
|
||||
}
|
||||
@@ -955,7 +955,7 @@ SANE_Status soap_start(SANE_Handle handle)
|
||||
@@ -955,7 +955,7 @@ SANE_Status soap_start(SANE_Handle handl
|
||||
|
||||
if (ret & (IP_INPUT_ERROR | IP_FATAL_ERROR | IP_DONE))
|
||||
{
|
||||
|
|
@ -596,7 +511,7 @@ index 07106fe..0d22e52 100644
|
|||
stat = SANE_STATUS_IO_ERROR;
|
||||
goto bugout;
|
||||
}
|
||||
@@ -1007,7 +1007,7 @@ SANE_Status soap_read(SANE_Handle handle, SANE_Byte *data, SANE_Int maxLength, S
|
||||
@@ -1007,7 +1007,7 @@ SANE_Status soap_read(SANE_Handle handle
|
||||
|
||||
if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
|
||||
{
|
||||
|
|
@ -605,11 +520,10 @@ index 07106fe..0d22e52 100644
|
|||
goto bugout;
|
||||
}
|
||||
|
||||
diff --git a/scan/sane/soapht.c b/scan/sane/soapht.c
|
||||
index 269ab21..139100d 100644
|
||||
--- a/scan/sane/soapht.c
|
||||
+++ b/scan/sane/soapht.c
|
||||
@@ -136,7 +136,7 @@ static int get_ip_data(struct soap_session *ps, SANE_Byte *data, SANE_Int maxLen
|
||||
diff -up hplip-3.25.2/scan/sane/soapht.c.covscan hplip-3.25.2/scan/sane/soapht.c
|
||||
--- hplip-3.25.2/scan/sane/soapht.c.covscan 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/scan/sane/soapht.c 2025-04-11 10:21:58.039106018 +0200
|
||||
@@ -136,7 +136,7 @@ static int get_ip_data(struct soap_sessi
|
||||
|
||||
if (!ps->ip_handle)
|
||||
{
|
||||
|
|
@ -618,7 +532,7 @@ index 269ab21..139100d 100644
|
|||
goto bugout;
|
||||
}
|
||||
|
||||
@@ -435,7 +435,7 @@ static struct soap_session *create_session()
|
||||
@@ -435,7 +435,7 @@ static struct soap_session *create_sessi
|
||||
|
||||
if ((ps = malloc(sizeof(struct soap_session))) == NULL)
|
||||
{
|
||||
|
|
@ -627,7 +541,7 @@ index 269ab21..139100d 100644
|
|||
return NULL;
|
||||
}
|
||||
memset(ps, 0, sizeof(struct soap_session));
|
||||
@@ -459,7 +459,7 @@ SANE_Status soapht_open(SANE_String_Const device, SANE_Handle *handle)
|
||||
@@ -459,7 +459,7 @@ SANE_Status soapht_open(SANE_String_Cons
|
||||
|
||||
if (session)
|
||||
{
|
||||
|
|
@ -636,7 +550,7 @@ index 269ab21..139100d 100644
|
|||
return SANE_STATUS_DEVICE_BUSY;
|
||||
}
|
||||
|
||||
@@ -475,7 +475,7 @@ SANE_Status soapht_open(SANE_String_Const device, SANE_Handle *handle)
|
||||
@@ -475,7 +475,7 @@ SANE_Status soapht_open(SANE_String_Cons
|
||||
|
||||
if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK)
|
||||
{
|
||||
|
|
@ -654,7 +568,7 @@ index 269ab21..139100d 100644
|
|||
return;
|
||||
}
|
||||
|
||||
@@ -904,7 +904,7 @@ SANE_Status soapht_control_option(SANE_Handle handle, SANE_Int option, SANE_Acti
|
||||
@@ -904,7 +904,7 @@ SANE_Status soapht_control_option(SANE_H
|
||||
|
||||
if (stat != SANE_STATUS_GOOD)
|
||||
{
|
||||
|
|
@ -663,7 +577,7 @@ index 269ab21..139100d 100644
|
|||
action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
|
||||
}
|
||||
|
||||
@@ -946,7 +946,7 @@ SANE_Status soapht_start(SANE_Handle handle)
|
||||
@@ -946,7 +946,7 @@ SANE_Status soapht_start(SANE_Handle han
|
||||
|
||||
if (set_extents(ps))
|
||||
{
|
||||
|
|
@ -672,7 +586,7 @@ index 269ab21..139100d 100644
|
|||
ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);
|
||||
stat = SANE_STATUS_INVAL;
|
||||
goto bugout;
|
||||
@@ -1032,7 +1032,7 @@ SANE_Status soapht_start(SANE_Handle handle)
|
||||
@@ -1032,7 +1032,7 @@ SANE_Status soapht_start(SANE_Handle han
|
||||
/* Open image processor. */
|
||||
if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE)
|
||||
{
|
||||
|
|
@ -681,7 +595,7 @@ index 269ab21..139100d 100644
|
|||
stat = SANE_STATUS_INVAL;
|
||||
goto bugout;
|
||||
}
|
||||
@@ -1075,7 +1075,7 @@ SANE_Status soapht_start(SANE_Handle handle)
|
||||
@@ -1075,7 +1075,7 @@ SANE_Status soapht_start(SANE_Handle han
|
||||
|
||||
if (ret & (IP_INPUT_ERROR | IP_FATAL_ERROR | IP_DONE))
|
||||
{
|
||||
|
|
@ -690,7 +604,7 @@ index 269ab21..139100d 100644
|
|||
stat = SANE_STATUS_IO_ERROR;
|
||||
goto bugout;
|
||||
}
|
||||
@@ -1124,7 +1124,7 @@ SANE_Status soapht_read(SANE_Handle handle, SANE_Byte *data, SANE_Int maxLength,
|
||||
@@ -1124,7 +1124,7 @@ SANE_Status soapht_read(SANE_Handle hand
|
||||
|
||||
if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
|
||||
{
|
||||
|
|
|
|||
25
hplip-dialog-infinite-loop.patch
Normal file
25
hplip-dialog-infinite-loop.patch
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
|
||||
index c23957a..48b248f 100644
|
||||
--- a/ui5/devmgr5.py
|
||||
+++ b/ui5/devmgr5.py
|
||||
@@ -2300,14 +2300,15 @@ class PasswordDialog(QDialog):
|
||||
# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
|
||||
def showPasswordUI(prompt):
|
||||
+ dlg = None
|
||||
+
|
||||
try:
|
||||
dlg = PasswordDialog(prompt, None)
|
||||
+ except Exception as e:
|
||||
+ log.error('Unable to open password dialog due following error:\n {}'.format(e))
|
||||
|
||||
- if dlg.exec_() == QDialog.Accepted:
|
||||
- return (dlg.getUsername(), dlg.getPassword())
|
||||
-
|
||||
- finally:
|
||||
- pass
|
||||
+ if dlg and dlg.exec_() == QDialog.Accepted:
|
||||
+ return (dlg.getUsername(), dlg.getPassword())
|
||||
|
||||
return ("", "")
|
||||
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
diff --git a/base/password.py b/base/password.py
|
||||
index 45c6641..62d93ca 100644
|
||||
--- a/base/password.py
|
||||
+++ b/base/password.py
|
||||
@@ -78,10 +78,15 @@ def get_distro_name():
|
||||
os_name = None
|
||||
try:
|
||||
import platform
|
||||
- os_name = platform.dist()[0]
|
||||
except ImportError:
|
||||
os_name = None
|
||||
|
||||
+ try:
|
||||
+ os_name = platform.dist()[0]
|
||||
+ except AttributeError:
|
||||
+ import distro
|
||||
+ os_name = distro.linux_distribution()[0]
|
||||
+
|
||||
if not os_name:
|
||||
name = os.popen('lsb_release -i | cut -f 2')
|
||||
os_name = name.read().strip()
|
||||
@@ -140,7 +145,11 @@ class Password(object):
|
||||
self.__authType = AUTH_TYPES[distro_name]
|
||||
if distro_name == 'fedora':
|
||||
import platform
|
||||
- ver = int(platform.dist()[1])
|
||||
+ try:
|
||||
+ ver = int(platform.dist()[1])
|
||||
+ except AttributeError:
|
||||
+ import distro
|
||||
+ ver = int(distro.linux_distribution()[1])
|
||||
if ver >= 28:
|
||||
self.__authType = AUTH_TYPES['fedora28']
|
||||
except KeyError:
|
||||
diff --git a/installer/core_install.py b/installer/core_install.py
|
||||
index 9a3b5ac..af1348d 100644
|
||||
--- a/installer/core_install.py
|
||||
+++ b/installer/core_install.py
|
||||
@@ -640,8 +640,15 @@ class CoreInstall(object):
|
||||
# Getting distro information using platform module
|
||||
try:
|
||||
import platform
|
||||
- name = platform.dist()[0].lower()
|
||||
- ver = platform.dist()[1]
|
||||
+ try:
|
||||
+ name = platform.dist()[0].lower()
|
||||
+ ver = platform.dist()[1]
|
||||
+ except AttributeError:
|
||||
+ import distro
|
||||
+
|
||||
+ name = distro.linux_distribution()[0].lower()
|
||||
+ ver = distro.linux_distribution()[1]
|
||||
+
|
||||
if not name:
|
||||
found = False
|
||||
log.debug("Not able to detect distro")
|
||||
|
|
@ -32,47 +32,3 @@ index fdb48e8..345ed82 100644
|
|||
self.cleanup(EVENT_PCARD_UNABLE_TO_MOUNT)
|
||||
return False
|
||||
|
||||
diff --git a/ui4/wifisetupdialog.py b/ui4/wifisetupdialog.py
|
||||
index 9fd1786..4d36f83 100644
|
||||
--- a/ui4/wifisetupdialog.py
|
||||
+++ b/ui4/wifisetupdialog.py
|
||||
@@ -256,7 +256,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog):
|
||||
try:
|
||||
self.dev = device.Device(self.device_uri)
|
||||
except Error as e:
|
||||
- FailureUI(self, self.__tr("<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()
|
||||
|
|
|
|||
31
hplip-fedora-gui.patch
Normal file
31
hplip-fedora-gui.patch
Normal 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.setupdialog
|
||||
- except ImportError as e:
|
||||
- log.warn(e)
|
||||
+ except ImportError:
|
||||
+ log.error("hplip-gui not installed. GUI not available.")
|
||||
return False
|
||||
|
||||
return True
|
||||
@@ -746,6 +746,7 @@ def checkPyQtImport(): # qt3
|
||||
try:
|
||||
import ui
|
||||
except ImportError:
|
||||
+ log.error("hplip-gui not installed. GUI not available.")
|
||||
return False
|
||||
|
||||
log.error("PyQt not installed. GUI not available. Exiting.")
|
||||
@@ -800,6 +801,7 @@ def checkPyQtImport4():
|
||||
import ui5.setupdialog
|
||||
except ImportError:
|
||||
log.debug('GUI not available.')
|
||||
+ log.error('hplip-gui not installed. GUI not available.')
|
||||
return False
|
||||
|
||||
return True
|
||||
163
hplip-find-driver.patch
Normal file
163
hplip-find-driver.patch
Normal 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, '')
|
||||
|
||||
100
hplip-fix-Wreturn-type-warning.patch
Normal file
100
hplip-fix-Wreturn-type-warning.patch
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
--- hplip-3.20.3/scan/sane/hpaio.c.orig 2020-03-25 01:24:15.558732638 +0000
|
||||
+++ hplip-3.20.3/scan/sane/hpaio.c 2020-03-25 02:48:36.097054366 +0000
|
||||
@@ -406,20 +406,34 @@ extern SANE_Status sane_hpaio_open(SANE_
|
||||
|
||||
extern void sane_hpaio_close(SANE_Handle handle)
|
||||
{
|
||||
- if (strcmp(*((char **)handle), "MARVELL") == 0)
|
||||
- return marvell_close(handle);
|
||||
- if (strcmp(*((char **)handle), "SOAP") == 0)
|
||||
- return soap_close(handle);
|
||||
- if (strcmp(*((char **)handle), "SOAPHT") == 0)
|
||||
- return soapht_close(handle);
|
||||
- if (strcmp(*((char **)handle), "LEDM") == 0)
|
||||
- return ledm_close(handle);
|
||||
- if (strcmp(*((char **)handle), "SCL-PML") == 0)
|
||||
- return sclpml_close(handle);
|
||||
- if (strcmp(*((char **)handle), "ESCL") == 0)
|
||||
- return escl_close(handle);
|
||||
- if (strcmp(*((char **)handle), "ORBLITE") == 0)
|
||||
- return orblite_close(handle);
|
||||
+ if (strcmp(*((char **)handle), "MARVELL") == 0) {
|
||||
+ marvell_close(handle);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (strcmp(*((char **)handle), "SOAP") == 0) {
|
||||
+ soap_close(handle);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (strcmp(*((char **)handle), "SOAPHT") == 0) {
|
||||
+ soapht_close(handle);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (strcmp(*((char **)handle), "LEDM") == 0) {
|
||||
+ ledm_close(handle);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (strcmp(*((char **)handle), "SCL-PML") == 0) {
|
||||
+ sclpml_close(handle);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (strcmp(*((char **)handle), "ESCL") == 0) {
|
||||
+ escl_close(handle);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (strcmp(*((char **)handle), "ORBLITE") == 0) {
|
||||
+ orblite_close(handle);
|
||||
+ return;
|
||||
+ }
|
||||
} /* sane_hpaio_close() */
|
||||
|
||||
extern const SANE_Option_Descriptor * sane_hpaio_get_option_descriptor(SANE_Handle handle, SANE_Int option)
|
||||
@@ -539,20 +553,34 @@ extern SANE_Status sane_hpaio_read(SANE_
|
||||
/* Note, sane_cancel is called normally not just during IO abort situations. */
|
||||
extern void sane_hpaio_cancel( SANE_Handle handle )
|
||||
{
|
||||
- if (strcmp(*((char **)handle), "MARVELL") == 0)
|
||||
- return marvell_cancel(handle);
|
||||
- if (strcmp(*((char **)handle), "SOAP") == 0)
|
||||
- return soap_cancel(handle);
|
||||
- if (strcmp(*((char **)handle), "SOAPHT") == 0)
|
||||
- return soapht_cancel(handle);
|
||||
- if (strcmp(*((char **)handle), "LEDM") == 0)
|
||||
- return ledm_cancel(handle);
|
||||
- if (strcmp(*((char **)handle), "SCL-PML") == 0)
|
||||
- return sclpml_cancel(handle);
|
||||
- if (strcmp(*((char **)handle), "ESCL") == 0)
|
||||
- return escl_cancel(handle);
|
||||
- if (strcmp(*((char **)handle), "ORBLITE") == 0)
|
||||
- return orblite_cancel(handle);
|
||||
+ if (strcmp(*((char **)handle), "MARVELL") == 0) {
|
||||
+ marvell_cancel(handle);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (strcmp(*((char **)handle), "SOAP") == 0) {
|
||||
+ soap_cancel(handle);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (strcmp(*((char **)handle), "SOAPHT") == 0) {
|
||||
+ soapht_cancel(handle);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (strcmp(*((char **)handle), "LEDM") == 0) {
|
||||
+ ledm_cancel(handle);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (strcmp(*((char **)handle), "SCL-PML") == 0) {
|
||||
+ sclpml_cancel(handle);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (strcmp(*((char **)handle), "ESCL") == 0) {
|
||||
+ escl_cancel(handle);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (strcmp(*((char **)handle), "ORBLITE") == 0) {
|
||||
+ orblite_cancel(handle);
|
||||
+ return;
|
||||
+ }
|
||||
} /* sane_hpaio_cancel() */
|
||||
|
||||
extern SANE_Status sane_hpaio_set_io_mode(SANE_Handle handle, SANE_Bool nonBlocking)
|
||||
13
hplip-fix-parsing-lpstat.patch
Normal file
13
hplip-fix-parsing-lpstat.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/base/queues.py b/base/queues.py
|
||||
index 2f56c8a..0818574 100755
|
||||
--- a/base/queues.py
|
||||
+++ b/base/queues.py
|
||||
@@ -101,7 +101,7 @@ def parseQueues(mode):
|
||||
try:
|
||||
match = LPSTAT_PATTERN.search(p)
|
||||
printer_name = match.group(1)
|
||||
- device_uri = match.group(2)
|
||||
+ device_uri = match.group(3)
|
||||
cups_printers.append((printer_name, device_uri))
|
||||
except AttributeError:
|
||||
pass
|
||||
53
hplip-format-qdatetime.patch
Normal file
53
hplip-format-qdatetime.patch
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
From 839a216f17ce17a5667eecd54de2a70b1383df2c Mon Sep 17 00:00:00 2001
|
||||
From: "FeRD (Frank Dana)" <ferdnyc@gmail.com>
|
||||
Date: Wed, 5 Jan 2022 21:57:06 -0500
|
||||
Subject: [PATCH 1/2] Info dlg: Use QDateTime.toString()
|
||||
|
||||
---
|
||||
ui5/infodialog.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ui5/infodialog.py b/ui5/infodialog.py
|
||||
index 0de62fb..eaa846d 100644
|
||||
--- a/ui5/infodialog.py
|
||||
+++ b/ui5/infodialog.py
|
||||
@@ -186,7 +186,7 @@ class InfoDialog(QDialog, Ui_Dialog):
|
||||
for row, h in enumerate(history):
|
||||
dt = QDateTime()
|
||||
dt.setTime_t(int(h.timedate))
|
||||
- dt = value_str(dt)
|
||||
+ dt = value_str(dt.toString())
|
||||
|
||||
ess = device.queryString(h.event_code, 0)
|
||||
|
||||
--
|
||||
2.33.1
|
||||
|
||||
From f6e7ab1542afe7fbcd2d29b6cb15b97484e3779c Mon Sep 17 00:00:00 2001
|
||||
From: "FeRD (Frank Dana)" <ferdnyc@gmail.com>
|
||||
Date: Wed, 5 Jan 2022 21:56:39 -0500
|
||||
Subject: [PATCH 2/2] value_str: Handle QDateTime correctly
|
||||
|
||||
---
|
||||
ui5/ui_utils.py | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ui5/ui_utils.py b/ui5/ui_utils.py
|
||||
index caba339..225ca1c 100644
|
||||
--- a/ui5/ui_utils.py
|
||||
+++ b/ui5/ui_utils.py
|
||||
@@ -105,7 +105,10 @@ def value_str(data):
|
||||
if data is None:
|
||||
return ""
|
||||
try:
|
||||
- if not PY3:
|
||||
+ if PY3:
|
||||
+ if isinstance(data, QDateTime):
|
||||
+ data = data.toString()
|
||||
+ else:
|
||||
try:
|
||||
data = data.toString()
|
||||
except AttributeError as e:
|
||||
--
|
||||
2.33.1
|
||||
|
||||
13
hplip-gcc15-stdc23.patch
Normal file
13
hplip-gcc15-stdc23.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/scan/sane/ledmi.h b/scan/sane/ledmi.h
|
||||
index a987c5d..f72847b 100644
|
||||
--- a/scan/sane/ledmi.h
|
||||
+++ b/scan/sane/ledmi.h
|
||||
@@ -162,7 +162,7 @@ struct ledm_session
|
||||
int bb_open(struct ledm_session*);
|
||||
int bb_close(struct ledm_session*);
|
||||
int bb_get_parameters(struct ledm_session*, SANE_Parameters*, int);
|
||||
-int bb_is_paper_in_adf(); /* 0 = no paper in adf, 1 = paper in adf, -1 = error */
|
||||
+int bb_is_paper_in_adf(struct ledm_session*); /* 0 = no paper in adf, 1 = paper in adf, -1 = error */
|
||||
SANE_Status bb_start_scan(struct ledm_session*);
|
||||
int bb_get_image_data(struct ledm_session*, int);
|
||||
int bb_end_page(struct ledm_session*, int);
|
||||
13
hplip-gpgdir-perms.patch
Normal file
13
hplip-gpgdir-perms.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/base/validation.py b/base/validation.py
|
||||
index 96e65be..35f22eb 100644
|
||||
--- a/base/validation.py
|
||||
+++ b/base/validation.py
|
||||
@@ -58,7 +58,7 @@ class GPG_Verification(DigiSign_Verification):
|
||||
|
||||
if not os.path.exists(self.__gpg_dir):
|
||||
try:
|
||||
- os.mkdir(self.__gpg_dir, 0o755)
|
||||
+ os.mkdir(self.__gpg_dir, 0o700)
|
||||
except OSError:
|
||||
log.error("Failed to create %s" % self.__gpg_dir)
|
||||
self.__change_owner()
|
||||
24
hplip-gui-close-trace.patch
Normal file
24
hplip-gui-close-trace.patch
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
|
||||
index 79f8fa8..28a77b3 100644
|
||||
--- a/ui5/devmgr5.py
|
||||
+++ b/ui5/devmgr5.py
|
||||
@@ -816,6 +816,9 @@ class DevMgr5(Ui_MainWindow_Derived, Ui_MainWindow, QMainWindow):
|
||||
|
||||
|
||||
def updateWindowTitle(self):
|
||||
+ if self.cur_device is None or self.cur_device_uri is None:
|
||||
+ return
|
||||
+
|
||||
if self.cur_device.device_type == DEVICE_TYPE_FAX:
|
||||
self.setWindowTitle(self.__tr("HP Device Manager - %s (Fax)"%self.cur_device.model_ui))
|
||||
else:
|
||||
@@ -1876,6 +1879,9 @@ class DevMgr5(Ui_MainWindow_Derived, Ui_MainWindow, QMainWindow):
|
||||
|
||||
|
||||
def updatePrintControlTab(self):
|
||||
+ if self.cur_device is None or self.cur_printer is None:
|
||||
+ return
|
||||
+
|
||||
if self.cur_device.device_type == DEVICE_TYPE_PRINTER:
|
||||
self.PrintControlPrinterNameLabel.setText(self.__tr("Printer Name:"))
|
||||
self.groupBox.setTitle(QApplication.translate("MainWindow", "Printer Queue Control", None))
|
||||
114
hplip-hpaio-gcc14.patch
Normal file
114
hplip-hpaio-gcc14.patch
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c
|
||||
index 57d1dde..3475929 100644
|
||||
--- a/scan/sane/hpaio.c
|
||||
+++ b/scan/sane/hpaio.c
|
||||
@@ -379,7 +379,7 @@ extern SANE_Status sane_hpaio_get_devices(const SANE_Device ***deviceList, SANE_
|
||||
ResetDeviceList(&DeviceList);
|
||||
DevDiscovery(localOnly);
|
||||
*deviceList = (const SANE_Device **)DeviceList;
|
||||
- SANE_Device*** devList;
|
||||
+ const SANE_Device*** devList;
|
||||
orblite_get_devices(devList, localOnly);
|
||||
|
||||
return SANE_STATUS_GOOD;
|
||||
diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c
|
||||
index 2eb7aba..4eaa468 100644
|
||||
--- a/scan/sane/orblite.c
|
||||
+++ b/scan/sane/orblite.c
|
||||
@@ -64,28 +64,28 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
|
||||
SANE_NAME_SCAN_TL_X, SANE_TITLE_SCAN_TL_X, SANE_DESC_SCAN_TL_X, // name, title, desc
|
||||
SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
|
||||
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
|
||||
- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeLeft // constraint_type, constraint
|
||||
+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeLeft // constraint_type, constraint
|
||||
},
|
||||
|
||||
{
|
||||
SANE_NAME_SCAN_TL_Y, SANE_TITLE_SCAN_TL_Y, SANE_DESC_SCAN_TL_Y, // name, title, desc
|
||||
SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
|
||||
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
|
||||
- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeTop // constraint_type, constraint
|
||||
+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeTop // constraint_type, constraint
|
||||
},
|
||||
|
||||
{
|
||||
SANE_NAME_SCAN_BR_X, SANE_TITLE_SCAN_BR_X, SANE_DESC_SCAN_BR_X, // name, title, desc
|
||||
SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
|
||||
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
|
||||
- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeRight // constraint_type, constraint
|
||||
+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeRight // constraint_type, constraint
|
||||
},
|
||||
|
||||
{
|
||||
SANE_NAME_SCAN_BR_Y, SANE_TITLE_SCAN_BR_Y, SANE_DESC_SCAN_BR_Y, // name, title, desc
|
||||
SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
|
||||
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
|
||||
- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeBottom // constraint_type, constraint
|
||||
+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeBottom // constraint_type, constraint
|
||||
},
|
||||
|
||||
// optResolution, // resolution group
|
||||
@@ -93,7 +93,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
|
||||
SANE_NAME_SCAN_RESOLUTION, SANE_TITLE_SCAN_RESOLUTION, SANE_DESC_SCAN_RESOLUTION, // name, title, desc
|
||||
SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word), // type, unit, size,
|
||||
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
|
||||
- SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint
|
||||
+ SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint
|
||||
},
|
||||
|
||||
// optMode, // color/depth group
|
||||
@@ -101,7 +101,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
|
||||
SANE_NAME_SCAN_MODE, SANE_TITLE_SCAN_MODE, SANE_DESC_SCAN_MODE, // name, title, desc
|
||||
SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
|
||||
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
|
||||
- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_modes // constraint type, constraint
|
||||
+ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_modes // constraint type, constraint
|
||||
},
|
||||
|
||||
// optSource,
|
||||
@@ -109,7 +109,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
|
||||
SANE_NAME_SCAN_SOURCE, SANE_TITLE_SCAN_SOURCE, SANE_DESC_SCAN_SOURCE, // name, title, desc
|
||||
SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
|
||||
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
|
||||
- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_sources // constraint type, constraint
|
||||
+ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_sources // constraint type, constraint
|
||||
},
|
||||
|
||||
// optPaperSize,
|
||||
@@ -117,7 +117,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
|
||||
SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc
|
||||
SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
|
||||
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
|
||||
- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_paper_sizes // constraint type, constraint
|
||||
+ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_paper_sizes // constraint type, constraint
|
||||
},
|
||||
|
||||
// optPaperSize,
|
||||
@@ -125,7 +125,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
|
||||
SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc
|
||||
SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word), // type, unit, size,
|
||||
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
|
||||
- SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint
|
||||
+ SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint
|
||||
},
|
||||
#ifdef NOTDEF
|
||||
// default template
|
||||
@@ -274,6 +274,7 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
|
||||
SANE_Auth_Callback authorize;
|
||||
const SANE_Device *** device_list;
|
||||
SANE_Bool local_only;
|
||||
+ void * temp_handle;
|
||||
|
||||
|
||||
// Allocate handle, set all handle values to zero
|
||||
@@ -305,7 +306,9 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
|
||||
if (stat != SANE_STATUS_GOOD)
|
||||
return stat;
|
||||
|
||||
- stat = g_handle->bb_orblite_open(devicename, &g_handle);
|
||||
+ temp_handle = g_handle;
|
||||
+ stat = g_handle->bb_orblite_open(devicename, &temp_handle);
|
||||
+ g_handle = temp_handle;
|
||||
if (stat == SANE_STATUS_GOOD)
|
||||
*handle = g_handle;
|
||||
|
||||
|
|
@ -1,16 +1,10 @@
|
|||
commit cdf5cb36e5d5a86f6a690c5861666cdc2da70593
|
||||
Author: Tomas Korbar <tkorbar@redhat.com>
|
||||
Date: Wed Sep 19 15:33:03 2018 +0200
|
||||
|
||||
Fix TypeError in hpfax
|
||||
|
||||
diff --git a/fax/backend/hpfax.py b/fax/backend/hpfax.py
|
||||
index 9560e84..bc0912a 100755
|
||||
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
|
||||
#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))
|
||||
|
|
|
|||
24
hplip-hpfirmware-timeout.patch
Normal file
24
hplip-hpfirmware-timeout.patch
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
diff --git a/config_usb_printer.py b/config_usb_printer.py
|
||||
index 946a2d4..8db097e 100755
|
||||
--- a/config_usb_printer.py
|
||||
+++ b/config_usb_printer.py
|
||||
@@ -28,6 +28,7 @@ __doc__ = "Udev invokes this tool. Tool detects the plugin, Smart Install (C/DVD
|
||||
# Std Lib
|
||||
import sys
|
||||
import os
|
||||
+import time
|
||||
|
||||
# Local
|
||||
from base.g import *
|
||||
@@ -181,9 +182,10 @@ try:
|
||||
# ******************************* RUNNING FIRMWARE DOWNLOAD TO DEVICE FOR SUPPORTED PRINTER'S
|
||||
fw_download_req = mq.get('fw-download', False)
|
||||
if fw_download_req:
|
||||
- fw_cmd = "hp-firmware -y3 -s %s"%param
|
||||
+ fw_cmd = "hp-firmware -n -y3 -s %s"%param
|
||||
log.info(fw_cmd)
|
||||
fw_sts, fw_out = utils.run(fw_cmd)
|
||||
+ time.sleep(5)
|
||||
if fw_sts == 0:
|
||||
log.debug("Firmware downloaded to %s "%device_uri)
|
||||
else:
|
||||
46
hplip-hpsetup-noscanjets.patch
Normal file
46
hplip-hpsetup-noscanjets.patch
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
diff -up hplip-3.23.3/setup.py.hpsetup-noscanjets hplip-3.23.3/setup.py
|
||||
--- hplip-3.23.3/setup.py.hpsetup-noscanjets 2023-05-29 14:16:26.148133678 +0200
|
||||
+++ hplip-3.23.3/setup.py 2023-05-29 14:16:26.220133253 +0200
|
||||
@@ -399,9 +399,19 @@ else: # INTERACTIVE_MODE
|
||||
#log.warning("Cannot setup fax - device does not have fax feature.")
|
||||
setup_fax = False
|
||||
|
||||
+ norm_model = models.normalizeModelName(model).lower()
|
||||
+
|
||||
+ # get out if the found model is standalone scanner, hp-setup is printer/fax setup tool
|
||||
+ if 'scanjet' in norm_model:
|
||||
+ log.error('The device {} is a standalone scanner. '
|
||||
+ 'hp-setup is a printer/MFD setup tool, '
|
||||
+ 'not scanner installation tool. '.format(model))
|
||||
+ log.info(log.bold('Scanners do not need a installation, but they may '
|
||||
+ 'require a binary plugin (install by \'hp-plugin -i\').'))
|
||||
+ clean_exit(1)
|
||||
+
|
||||
# ******************************* PLUGIN
|
||||
|
||||
- norm_model = models.normalizeModelName(model).lower()
|
||||
plugin = mq.get('plugin', PLUGIN_NONE)
|
||||
|
||||
if ignore_plugin_check is False and plugin > PLUGIN_NONE:
|
||||
diff -up hplip-3.23.3/ui5/setupdialog.py.hpsetup-noscanjets hplip-3.23.3/ui5/setupdialog.py
|
||||
--- hplip-3.23.3/ui5/setupdialog.py.hpsetup-noscanjets 2023-05-29 14:16:26.220133253 +0200
|
||||
+++ hplip-3.23.3/ui5/setupdialog.py 2023-05-29 14:18:12.475041454 +0200
|
||||
@@ -1391,6 +1391,18 @@ class SetupDialog(QDialog, Ui_Dialog):
|
||||
back_end, is_hp, bus, model, serial, dev_file, host, zc, port = device.parseDeviceURI(
|
||||
self.device_uri)
|
||||
self.model = models.normalizeModelName(model).lower()
|
||||
+ if 'scanjet' in self.model:
|
||||
+ FailureUI(self,
|
||||
+ self.__tr('<b>The device {} is a standalone '
|
||||
+ 'scanner.</b> <p>\'hp-setup\' is a tool '
|
||||
+ 'for installing printers and multifunction '
|
||||
+ 'devices. Scanners supported by HPLIP '
|
||||
+ 'work out-of-the-box after HPLIP installation, '
|
||||
+ 'or they may require a binary plugin, which you '
|
||||
+ 'can install by \'hp-plugin -i\'.</p>'.format(model)))
|
||||
+ self.displayPage(PAGE_DEVICES)
|
||||
+ return
|
||||
+
|
||||
self.showAddPrinterPage()
|
||||
|
||||
elif p == PAGE_ADD_PRINTER:
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
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):
|
||||
diff --git a/base/tui.py b/base/tui.py
|
||||
index 99bda7b..0f90f92 100644
|
||||
--- a/base/tui.py
|
||||
+++ b/base/tui.py
|
||||
@@ -241,6 +241,7 @@ class ProgressMeter(object):
|
||||
sys.stdout.write(y)
|
||||
|
||||
sys.stdout.flush()
|
||||
+ sys.stdout.write('\n')
|
||||
self.prev_length = len(y)
|
||||
self.spinner_pos = (self.spinner_pos + 1) % 8
|
||||
|
||||
class GPG_Verification(DigiSign_Verification):
|
||||
- def __init__(self, pgp_site = 'pgp.mit.edu', key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9):
|
||||
+ def __init__(self, pgp_site = 'sks-keyservers.net', key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9):
|
||||
self.__pgp_site = pgp_site
|
||||
self.__key = key
|
||||
self.__gpg = utils.which('gpg',True)
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
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)
|
||||
13
hplip-locale-format.patch
Normal file
13
hplip-locale-format.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/base/utils.py b/base/utils.py
|
||||
index e2de550..55848b8 100644
|
||||
--- a/base/utils.py
|
||||
+++ b/base/utils.py
|
||||
@@ -474,7 +474,7 @@ def sort_dict_by_value(d):
|
||||
|
||||
|
||||
def commafy(val):
|
||||
- return locale.format("%s", val, grouping=True)
|
||||
+ return locale.format_string("%s", val, grouping=True)
|
||||
|
||||
|
||||
def format_bytes(s, show_bytes=False):
|
||||
|
|
@ -1,18 +1,18 @@
|
|||
diff -up hplip-3.18.12/prnt/hpcups/HPCupsFilter.cpp.logdir hplip-3.18.12/prnt/hpcups/HPCupsFilter.cpp
|
||||
--- hplip-3.18.12/prnt/hpcups/HPCupsFilter.cpp.logdir 2019-01-08 12:31:15.346315031 +0100
|
||||
+++ hplip-3.18.12/prnt/hpcups/HPCupsFilter.cpp 2019-01-08 12:47:42.314131260 +0100
|
||||
@@ -643,7 +643,7 @@ int HPCupsFilter::processRasterData(cups
|
||||
diff -up hplip-3.21.12/prnt/hpcups/HPCupsFilter.cpp.logdir hplip-3.21.12/prnt/hpcups/HPCupsFilter.cpp
|
||||
--- hplip-3.21.12/prnt/hpcups/HPCupsFilter.cpp.logdir 2022-01-12 11:27:25.509348511 +0100
|
||||
+++ hplip-3.21.12/prnt/hpcups/HPCupsFilter.cpp 2022-01-12 11:29:11.507661838 +0100
|
||||
@@ -669,7 +669,7 @@ int HPCupsFilter::processRasterData(cups
|
||||
char hpPreProcessedRasterFile[MAX_FILE_PATH_LEN]; //temp file needed to store raster data with swaped pages.
|
||||
|
||||
|
||||
- sprintf(hpPreProcessedRasterFile, "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
|
||||
+ snprintf(hpPreProcessedRasterFile, sizeof (hpPreProcessedRasterFile), "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
|
||||
image_processor_t* imageProcessor = imageProcessorCreate();
|
||||
|
||||
while (cupsRasterReadHeader2(cups_raster, &cups_header))
|
||||
diff -up hplip-3.18.12/prnt/hpcups/SystemServices.cpp.logdir hplip-3.18.12/prnt/hpcups/SystemServices.cpp
|
||||
--- hplip-3.18.12/prnt/hpcups/SystemServices.cpp.logdir 2018-12-03 08:07:13.000000000 +0100
|
||||
+++ hplip-3.18.12/prnt/hpcups/SystemServices.cpp 2019-01-08 12:31:15.346315031 +0100
|
||||
#ifndef DISABLE_IMAGEPROCESSOR
|
||||
image_processor_t* imageProcessor=NULL;
|
||||
IMAGE_PROCESSOR_ERROR result;
|
||||
diff -up hplip-3.21.12/prnt/hpcups/SystemServices.cpp.logdir hplip-3.21.12/prnt/hpcups/SystemServices.cpp
|
||||
--- hplip-3.21.12/prnt/hpcups/SystemServices.cpp.logdir 2021-12-13 10:07:36.000000000 +0100
|
||||
+++ hplip-3.21.12/prnt/hpcups/SystemServices.cpp 2022-01-12 11:27:25.509348511 +0100
|
||||
@@ -38,7 +38,7 @@ SystemServices::SystemServices(int iLogL
|
||||
if (iLogLevel & SAVE_OUT_FILE)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,63 +1,25 @@
|
|||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 57b2812..250e2dc 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -1542,6 +1542,7 @@ am__dist_ppd_DATA_DIST = prnt/ps/hp-designjet_z6810ps_42in-ps.ppd.gz \
|
||||
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 \
|
||||
@@ -1655,6 +1656,7 @@ am__dist_ppd_DATA_DIST = prnt/ps/hp-designjet_z6810ps_42in-ps.ppd.gz \
|
||||
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 \
|
||||
@@ -3895,6 +3897,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 \
|
||||
@@ -4007,6 +4010,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 --git a/cups_drv.inc b/cups_drv.inc
|
||||
index 3863c52..50c570d 100644
|
||||
--- a/cups_drv.inc
|
||||
+++ b/cups_drv.inc
|
||||
@@ -398,6 +398,7 @@ cups_ppd_printers = \
|
||||
diff -up hplip-3.22.2/cups_drv.inc.missing-drivers hplip-3.22.2/cups_drv.inc
|
||||
--- hplip-3.22.2/cups_drv.inc.missing-drivers 2022-02-23 08:42:29.000000000 +0100
|
||||
+++ hplip-3.22.2/cups_drv.inc 2022-03-10 09:11:00.337315604 +0100
|
||||
@@ -411,6 +411,7 @@ cups_ppd_printers = \
|
||||
ppd/hpcups/hp-laserjet_cm1418fnw-pcl3.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_cp1025.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_cp1025nw.ppd.gz \
|
||||
+ ppd/hpcups/hp-laserjet_cp_1025nw.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_m1005.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_m1120_mfp.ppd.gz \
|
||||
@@ -510,6 +511,7 @@ cups_ppd_printers = \
|
||||
ppd/hpcups/hp-laserjet_m109-m112.ppd.gz \
|
||||
@@ -527,6 +528,7 @@ cups_ppd_printers = \
|
||||
ppd/hpcups/hp-laserjet_professional_p1607dn.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_professional_p1608dn.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_professional_p1609dn.ppd.gz \
|
||||
+ ppd/hpcups/hp-laserjet_professional_p1102w.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_professional_p_1102w.ppd.gz \
|
||||
ppd/hpcups/hp-mopier_240-pcl3.ppd.gz \
|
||||
ppd/hpcups/hp-mopier_320-pcl3.ppd.gz \
|
||||
diff --git a/data/models/models.dat b/data/models/models.dat
|
||||
index 9dfcf3d..9da0acd 100644
|
||||
--- a/data/models/models.dat
|
||||
+++ b/data/models/models.dat
|
||||
ppd/hpcups/hp-laserjet_tank_1020.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
|
||||
diff -up hplip-3.22.2/data/models/models.dat.missing-drivers hplip-3.22.2/data/models/models.dat
|
||||
--- hplip-3.22.2/data/models/models.dat.missing-drivers 2022-03-10 09:10:13.601066235 +0100
|
||||
+++ hplip-3.22.2/data/models/models.dat 2022-03-10 09:10:13.622066347 +0100
|
||||
@@ -2104,7 +2104,7 @@ usb-pid=411
|
||||
usb-vid=3f0
|
||||
wifi-config=0
|
||||
|
|
@ -461,7 +423,7 @@ index 9dfcf3d..9da0acd 100644
|
|||
[officejet_100_mobile_l411]
|
||||
align-type=-1
|
||||
clean-type=1
|
||||
@@ -17865,6 +18229,58 @@ usb-pid=2c17
|
||||
@@ -17867,6 +18231,58 @@ usb-pid=2c17
|
||||
usb-vid=3f0
|
||||
wifi-config=0
|
||||
|
||||
|
|
@ -520,7 +482,7 @@ index 9dfcf3d..9da0acd 100644
|
|||
[hp_laserjet_cp1025nw]
|
||||
align-type=0
|
||||
clean-type=0
|
||||
@@ -18466,6 +18882,49 @@ usb-pid=3011
|
||||
@@ -18468,6 +18884,49 @@ usb-pid=3011
|
||||
usb-vid=3f0
|
||||
wifi-config=0
|
||||
|
||||
|
|
@ -570,15 +532,48 @@ index 9dfcf3d..9da0acd 100644
|
|||
[hp_laserjet_professional_p1102]
|
||||
align-type=0
|
||||
clean-type=0
|
||||
diff --git a/prnt/drv/hpcups.drv.in b/prnt/drv/hpcups.drv.in
|
||||
index 335b3da..d7a1872 100644
|
||||
--- a/prnt/drv/hpcups.drv.in
|
||||
+++ b/prnt/drv/hpcups.drv.in
|
||||
@@ -22258,6 +22258,14 @@ Group "RLT/HP Real Life Technologies"
|
||||
Attribute "Product" "" "(HP LaserJet Professional p1102 Printer)"
|
||||
diff -up hplip-3.22.2/Makefile.in.missing-drivers hplip-3.22.2/Makefile.in
|
||||
--- hplip-3.22.2/Makefile.in.missing-drivers 2022-02-23 08:42:31.000000000 +0100
|
||||
+++ hplip-3.22.2/Makefile.in 2022-03-10 09:11:45.915558795 +0100
|
||||
@@ -1613,6 +1613,7 @@ am__dist_ppd_DATA_DIST = prnt/ps/hp-lase
|
||||
ppd/hpcups/hp-laserjet_cm1418fnw-pcl3.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_cp1025.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_cp1025nw.ppd.gz \
|
||||
+ ppd/hpcups/hp-laserjet_cp_1025nw.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_m1005.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_m109-m112.ppd.gz \
|
||||
@@ -1729,6 +1730,7 @@ am__dist_ppd_DATA_DIST = prnt/ps/hp-lase
|
||||
ppd/hpcups/hp-laserjet_professional_p1607dn.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_professional_p1608dn.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_professional_p1609dn.ppd.gz \
|
||||
+ ppd/hpcups/hp-laserjet_professional_p1102w.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_professional_p_1102w.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_tank_1020.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
|
||||
@@ -4090,6 +4092,7 @@ dist_unrel_DATA =
|
||||
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cm1418fnw-pcl3.ppd.gz \
|
||||
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cp1025.ppd.gz \
|
||||
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cp1025nw.ppd.gz \
|
||||
+@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cp_1025nw.ppd.gz \
|
||||
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_m1005.ppd.gz \
|
||||
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
|
||||
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_m109-m112.ppd.gz \
|
||||
@@ -4206,6 +4209,7 @@ dist_unrel_DATA =
|
||||
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1607dn.ppd.gz \
|
||||
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1608dn.ppd.gz \
|
||||
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1609dn.ppd.gz \
|
||||
+@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1102w.ppd.gz \
|
||||
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p_1102w.ppd.gz \
|
||||
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_tank_1020.ppd.gz \
|
||||
@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
|
||||
diff -up hplip-3.22.2/prnt/drv/hpcups.drv.in.missing-drivers hplip-3.22.2/prnt/drv/hpcups.drv.in
|
||||
--- hplip-3.22.2/prnt/drv/hpcups.drv.in.missing-drivers 2022-03-10 09:10:13.554065984 +0100
|
||||
+++ hplip-3.22.2/prnt/drv/hpcups.drv.in 2022-03-10 09:10:13.629066384 +0100
|
||||
@@ -22693,6 +22693,14 @@ Group "RLT/HP Real Life Technologies"
|
||||
Attribute "Product" "" "(HP LaserJet Professional p1102s Printer)"
|
||||
}
|
||||
+ {
|
||||
{
|
||||
+ ModelName "HP LaserJet Professional p1102w"
|
||||
+ Attribute "NickName" "" "HP LaserJet Professional p1102w, hpcups $Version, requires proprietary plugin"
|
||||
+ Attribute "ShortNickName" "" "HP LaserJet Professional p1102w hpijs"
|
||||
|
|
@ -586,10 +581,11 @@ index 335b3da..d7a1872 100644
|
|||
+ 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, requires proprietary plugin"
|
||||
@@ -22692,6 +22700,14 @@ Group "RLT/HP Real Life Technologies"
|
||||
Attribute "NickName" "" "HP LaserJet Professional p1106, hpcups $Version"
|
||||
Attribute "ShortNickName" "" "HP LJ Pro p1106 hpijs"
|
||||
@@ -23126,6 +23134,14 @@ Group "RLT/HP Real Life Technologies"
|
||||
PCFileName "hp-laserjet_cp1025nw.ppd"
|
||||
Attribute "Product" "" "(HP LaserJet Pro cp1025nw Color Printer Series)"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
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:
|
||||
diff -up hplip-3.21.12/installer/pluginhandler.py.missing-links hplip-3.21.12/installer/pluginhandler.py
|
||||
--- hplip-3.21.12/installer/pluginhandler.py.missing-links 2022-01-12 16:55:39.761934879 +0100
|
||||
+++ hplip-3.21.12/installer/pluginhandler.py 2022-01-12 17:22:33.367435334 +0100
|
||||
@@ -167,7 +167,7 @@ class PluginHandle(object):
|
||||
continue
|
||||
if link != "":
|
||||
if not utils.check_library(link):
|
||||
- self.__plugin_state = PLUGIN_FILES_CORRUPTED
|
||||
|
|
|
|||
64
hplip-model-mismatch.patch
Normal file
64
hplip-model-mismatch.patch
Normal 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);
|
||||
108
hplip-no-libhpmud-libm-warnings.patch
Normal file
108
hplip-no-libhpmud-libm-warnings.patch
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
diff --git a/scan/sane/escl.c b/scan/sane/escl.c
|
||||
index 9fbbcaf..bc9e0b5 100644
|
||||
--- a/scan/sane/escl.c
|
||||
+++ b/scan/sane/escl.c
|
||||
@@ -37,18 +37,12 @@ static int bb_load(struct escl_session *ps, const char *so)
|
||||
int stat=1;
|
||||
|
||||
/* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
|
||||
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
|
||||
- {
|
||||
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
|
||||
- goto bugout;
|
||||
- }
|
||||
+ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
|
||||
+ goto bugout;
|
||||
|
||||
/* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
|
||||
- if ((ps->math_handle = load_library("libm.so")) == NULL)
|
||||
- {
|
||||
- if ((ps->math_handle = load_library("libm.so.6")) == NULL)
|
||||
- goto bugout;
|
||||
- }
|
||||
+ if ((ps->math_handle = load_library("libm.so.6")) == NULL)
|
||||
+ goto bugout;
|
||||
if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL)
|
||||
{
|
||||
SendScanEvent(ps->uri, EVENT_PLUGIN_FAIL);
|
||||
diff --git a/scan/sane/marvell.c b/scan/sane/marvell.c
|
||||
index 236f7c9..793104c 100644
|
||||
--- a/scan/sane/marvell.c
|
||||
+++ b/scan/sane/marvell.c
|
||||
@@ -60,18 +60,12 @@ static int bb_load(struct marvell_session *ps, const char *so)
|
||||
int stat=1;
|
||||
|
||||
/* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
|
||||
- if ((ps->hpmud_handle = load_library("libhpmud.so")) == NULL)
|
||||
- {
|
||||
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
|
||||
- goto bugout;
|
||||
- }
|
||||
+ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
|
||||
+ goto bugout;
|
||||
|
||||
/* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
|
||||
- if ((ps->math_handle = load_library("libm.so")) == NULL)
|
||||
- {
|
||||
- if ((ps->math_handle = load_library("libm.so.6")) == NULL)
|
||||
- goto bugout;
|
||||
- }
|
||||
+ if ((ps->math_handle = load_library("libm.so.6")) == NULL)
|
||||
+ goto bugout;
|
||||
|
||||
if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL)
|
||||
{
|
||||
diff --git a/scan/sane/soap.c b/scan/sane/soap.c
|
||||
index 0d22e52..dcd8c7c 100644
|
||||
--- a/scan/sane/soap.c
|
||||
+++ b/scan/sane/soap.c
|
||||
@@ -68,18 +68,12 @@ static int bb_load(struct soap_session *ps, const char *so)
|
||||
int stat=1;
|
||||
|
||||
/* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
|
||||
- if ((ps->hpmud_handle = load_library("libhpmud.so")) == NULL)
|
||||
- {
|
||||
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
|
||||
- goto bugout;
|
||||
- }
|
||||
+ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
|
||||
+ goto bugout;
|
||||
|
||||
/* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
|
||||
- if ((ps->math_handle = load_library("libm.so")) == NULL)
|
||||
- {
|
||||
- if ((ps->math_handle = load_library("libm.so.6")) == NULL)
|
||||
- goto bugout;
|
||||
- }
|
||||
+ if ((ps->math_handle = load_library("libm.so.6")) == NULL)
|
||||
+ goto bugout;
|
||||
|
||||
if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL)
|
||||
{
|
||||
diff --git a/scan/sane/soapht.c b/scan/sane/soapht.c
|
||||
index 139100d..74e8391 100644
|
||||
--- a/scan/sane/soapht.c
|
||||
+++ b/scan/sane/soapht.c
|
||||
@@ -62,18 +62,12 @@ static int bb_load(struct soap_session *ps, const char *so)
|
||||
int stat=1;
|
||||
|
||||
/* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */
|
||||
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
|
||||
- {
|
||||
- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
|
||||
- goto bugout;
|
||||
- }
|
||||
+ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL)
|
||||
+ goto bugout;
|
||||
|
||||
/* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */
|
||||
- if ((ps->math_handle = load_library("libm.so")) == NULL)
|
||||
- {
|
||||
- if ((ps->math_handle = load_library("libm.so.6")) == NULL)
|
||||
- goto bugout;
|
||||
- }
|
||||
+ if ((ps->math_handle = load_library("libm.so.6")) == NULL)
|
||||
+ goto bugout;
|
||||
|
||||
if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL)
|
||||
{
|
||||
79
hplip-no-urlopener.patch
Normal file
79
hplip-no-urlopener.patch
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
diff --git a/base/device.py b/base/device.py
|
||||
index 2fdb29c..ca0d97e 100644
|
||||
--- a/base/device.py
|
||||
+++ b/base/device.py
|
||||
@@ -2526,9 +2526,9 @@ Content-length: %d\r
|
||||
data = None
|
||||
|
||||
log.debug("Opening: %s" % url2)
|
||||
- opener = LocalOpener({})
|
||||
+ opener = LocalOpener()
|
||||
try:
|
||||
- f = opener.open(url2, data)
|
||||
+ f = opener.open_hp(url2, data)
|
||||
|
||||
except Error:
|
||||
log.error("Status read failed: %s" % url2)
|
||||
@@ -2548,7 +2548,7 @@ Content-length: %d\r
|
||||
try:
|
||||
url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url)
|
||||
data = self
|
||||
- opener = LocalOpenerEWS_LEDM({})
|
||||
+ opener = LocalOpenerEWS_LEDM()
|
||||
try:
|
||||
if footer:
|
||||
return opener.open_hp(url2, data, footer)
|
||||
@@ -2563,7 +2563,7 @@ Content-length: %d\r
|
||||
try:
|
||||
url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url)
|
||||
data = self
|
||||
- opener = LocalOpener_LEDM({})
|
||||
+ opener = LocalOpener_LEDM()
|
||||
try:
|
||||
if footer:
|
||||
return opener.open_hp(url2, data, footer)
|
||||
@@ -2580,7 +2580,7 @@ Content-length: %d\r
|
||||
url="/cdm/supply/v1/suppliesPublic"
|
||||
url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url)
|
||||
data = self
|
||||
- opener = LocalOpener_CDM({})
|
||||
+ opener = LocalOpener_CDM()
|
||||
try:
|
||||
if footer:
|
||||
return opener.open_hp(url2, data, footer)
|
||||
@@ -2688,7 +2688,7 @@ Content-length: %d\r
|
||||
|
||||
|
||||
# URLs: hp:/usb/HP_LaserJet_3050?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
|
||||
-class LocalOpener(urllib_request.URLopener):
|
||||
+class LocalOpener():
|
||||
def open_hp(self, url, dev):
|
||||
log.debug("open_hp(%s)" % url)
|
||||
|
||||
@@ -2718,7 +2718,7 @@ class LocalOpener(urllib_request.URLopener):
|
||||
return response#.fp
|
||||
|
||||
# URLs: hp:/usb/HP_OfficeJet_7500?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
|
||||
-class LocalOpenerEWS_LEDM(urllib_request.URLopener):
|
||||
+class LocalOpenerEWS_LEDM():
|
||||
def open_hp(self, url, dev, foot=""):
|
||||
log.debug("open_hp(%s)" % url)
|
||||
|
||||
@@ -2744,7 +2744,7 @@ class LocalOpenerEWS_LEDM(urllib_request.URLopener):
|
||||
|
||||
|
||||
# URLs: hp:/usb/HP_OfficeJet_7500?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
|
||||
-class LocalOpener_LEDM(urllib_request.URLopener):
|
||||
+class LocalOpener_LEDM():
|
||||
def open_hp(self, url, dev, foot=""):
|
||||
log.debug("open_hp(%s)" % url)
|
||||
|
||||
@@ -2771,7 +2771,7 @@ class LocalOpener_LEDM(urllib_request.URLopener):
|
||||
|
||||
|
||||
# URLs: hp:/usb/HP_OfficeJet_7500?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
|
||||
-class LocalOpener_CDM(urllib_request.URLopener):
|
||||
+class LocalOpener_CDM():
|
||||
def open_hp(self, url, dev, foot=""):
|
||||
log.debug("open_hp(%s)" % url)
|
||||
match_obj = http_pat_url.search(url)
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
diff -up hplip-3.17.4/Makefile.am.no-ernie hplip-3.17.4/Makefile.am
|
||||
--- hplip-3.17.4/Makefile.am.no-ernie 2017-04-26 16:28:35.398099978 +0200
|
||||
+++ hplip-3.17.4/Makefile.am 2017-04-26 16:29:02.235879035 +0200
|
||||
@@ -519,7 +519,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilte
|
||||
diff -up hplip-3.23.3/Makefile.am.no-ernie hplip-3.23.3/Makefile.am
|
||||
--- hplip-3.23.3/Makefile.am.no-ernie 2023-05-29 13:15:58.008610471 +0200
|
||||
+++ hplip-3.23.3/Makefile.am 2023-05-29 13:15:58.134609689 +0200
|
||||
@@ -562,7 +562,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilte
|
||||
prnt/hpcups/Mode2.cpp prnt/hpcups/Mode2.h prnt/hpcups/Mode3.cpp prnt/hpcups/Mode3.h \
|
||||
prnt/hpcups/Mode9.cpp prnt/hpcups/Mode9.h prnt/hpcups/Mode10.cpp prnt/hpcups/Mode10.h \
|
||||
prnt/hpcups/ModeDeltaPlus.cpp prnt/hpcups/ModeDeltaPlus.h prnt/hpcups/ModeJbig.cpp prnt/hpcups/ModeJbig.h \
|
||||
|
|
@ -10,9 +10,9 @@ diff -up hplip-3.17.4/Makefile.am.no-ernie hplip-3.17.4/Makefile.am
|
|||
prnt/hpcups/Encapsulator.cpp prnt/hpcups/Encapsulator.h prnt/hpcups/Pcl3.cpp prnt/hpcups/Pcl3.h \
|
||||
prnt/hpcups/Pcl3Gui.cpp prnt/hpcups/Pcl3Gui.h prnt/hpcups/Pcl3Gui2.cpp prnt/hpcups/Pcl3Gui2.h \
|
||||
prnt/hpcups/LJMono.cpp prnt/hpcups/LJMono.h prnt/hpcups/LJColor.cpp prnt/hpcups/LJColor.h \
|
||||
diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp
|
||||
--- hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie 2017-04-26 16:28:39.525066003 +0200
|
||||
+++ hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp 2017-04-26 16:29:46.987510614 +0200
|
||||
diff -up hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp
|
||||
--- hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp.no-ernie 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp 2023-05-29 13:17:02.468210361 +0200
|
||||
@@ -30,7 +30,6 @@
|
||||
|
||||
#include "CommonDefinitions.h"
|
||||
|
|
@ -26,7 +26,7 @@ diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.17.4/prnt/hpcups
|
|||
{
|
||||
speed_mech_enabled = true;
|
||||
- m_run_ernie_filter = true;
|
||||
crd_type = eCrd_both;
|
||||
crd_type = eCrd_color_only; // pcl3 printers support RGB only ref:hplip-1701
|
||||
strcpy(m_szLanguage, "PCL3GUI");
|
||||
}
|
||||
@@ -59,21 +57,6 @@ DRIVER_ERROR Pcl3Gui2::Configure(Pipelin
|
||||
|
|
@ -51,9 +51,9 @@ diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.17.4/prnt/hpcups
|
|||
|
||||
if (crd_type != eCrd_black_only) {
|
||||
Mode10 *pMode10;
|
||||
diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h.no-ernie hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h
|
||||
--- hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h.no-ernie 2017-04-26 16:28:43.277035115 +0200
|
||||
+++ hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h 2017-04-26 16:30:05.826355522 +0200
|
||||
diff -up hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h.no-ernie hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h
|
||||
--- hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h.no-ernie 2023-03-28 09:26:11.000000000 +0200
|
||||
+++ hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h 2023-05-29 13:15:58.134609689 +0200
|
||||
@@ -60,7 +60,6 @@ private:
|
||||
DRIVER_ERROR encapsulateRaster(BYTE *input_raster, unsigned int num_bytes, COLORTYPE c_type);
|
||||
bool speed_mech_enabled;
|
||||
|
|
|
|||
18
hplip-pcardext-disable.patch
Normal file
18
hplip-pcardext-disable.patch
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
diff -up hplip-3.25.6/Makefile.am.pcardext-disable hplip-3.25.6/Makefile.am
|
||||
--- hplip-3.25.6/Makefile.am.pcardext-disable 2025-08-11 12:52:35.359621088 +0200
|
||||
+++ hplip-3.25.6/Makefile.am 2025-08-11 12:54:58.654515582 +0200
|
||||
@@ -306,14 +306,6 @@ if !HPLIP_CLASS_DRIVER
|
||||
pcarddir = $(hplipdir)/pcard
|
||||
dist_pcard_DATA = pcard/__init__.py pcard/photocard.py
|
||||
|
||||
-# pcardext
|
||||
-pcardextdir = $(PYTHONEXECDIR)
|
||||
-pcardextdir = $(PYTHONEXECDIR)
|
||||
-pcardext_LTLIBRARIES = pcardext.la
|
||||
-pcardext_la_LDFLAGS = -module -avoid-version
|
||||
-pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h
|
||||
-pcardext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
|
||||
-
|
||||
# prnt
|
||||
prntdir = $(hplipdir)/prnt
|
||||
dist_prnt_DATA = prnt/cups.py prnt/__init__.py prnt/ldl.py prnt/pcl.py prnt/colorcal.py
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/installer/dcheck.py b/installer/dcheck.py
|
||||
index 38bb76c..3d0624e 100644
|
||||
--- a/installer/dcheck.py
|
||||
+++ b/installer/dcheck.py
|
||||
@@ -370,7 +370,7 @@ def get_pil_version():
|
||||
except ImportError:
|
||||
return '-'
|
||||
else:
|
||||
- return Image.VERSION
|
||||
+ return Image.PILLOW_VERSION
|
||||
|
||||
def get_libpthread_version():
|
||||
try:
|
||||
58
hplip-plugin-curl.patch
Normal file
58
hplip-plugin-curl.patch
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
diff --git a/installer/pluginhandler.py b/installer/pluginhandler.py
|
||||
index 56683fb..031ceec 100755
|
||||
--- a/installer/pluginhandler.py
|
||||
+++ b/installer/pluginhandler.py
|
||||
@@ -185,14 +185,16 @@ class PluginHandle(object):
|
||||
if self.__plugin_conf_file.startswith('file://'):
|
||||
status, filename = utils.download_from_network(self.__plugin_conf_file, local_conf, True)
|
||||
else:
|
||||
- wget = utils.which("wget", True)
|
||||
- if wget:
|
||||
- status, output = utils.run("%s --tries=3 --timeout=60 --output-document=%s %s --cache=off" %(wget, local_conf, self.__plugin_conf_file))
|
||||
+ curl = utils.which("curl", True)
|
||||
+ if curl:
|
||||
+ cmd = "%s --retry 3 --max-time 10 --output %s --location %s" %(curl, local_conf, self.__plugin_conf_file)
|
||||
+ log.debug(cmd)
|
||||
+ status, output = utils.run(cmd)
|
||||
if status:
|
||||
log.error("Plugin download failed with error code = %d" %status)
|
||||
return status, url, check_sum
|
||||
else:
|
||||
- log.error("Please install wget package to download the plugin.")
|
||||
+ log.error("Please install curl package to download the plugin.")
|
||||
return status, url, check_sum
|
||||
except IOError as e:
|
||||
log.error("I/O Error: %s" % e.strerror)
|
||||
@@ -284,18 +284,18 @@ class PluginHandle(object):
|
||||
if src.startswith('file://'):
|
||||
status, filename = utils.download_from_network(src, plugin_file, True)
|
||||
else:
|
||||
- wget = utils.which("wget", True)
|
||||
- if wget:
|
||||
- cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,src)
|
||||
+ curl = utils.which("curl", True)
|
||||
+ if curl:
|
||||
+ cmd = "%s --create-dirs -O --output-dir %s --location %s" % (curl,self.__plugin_path,src)
|
||||
log.debug(cmd)
|
||||
status, output = utils.run(cmd)
|
||||
- log.debug("wget returned: %d" % status)
|
||||
+ log.debug("curl returned: %d" % status)
|
||||
|
||||
#Check whether plugin is accessible in Openprinting.org website otherwise dowload plugin from alternate location.
|
||||
if status != 0 or os_utils.getFileSize(plugin_file) <= 0:
|
||||
src = os.path.join(PLUGIN_FALLBACK_LOCATION, self.__plugin_name)
|
||||
log.info("Plugin is not accessible. Trying to download it from fallback location: [%s]" % src)
|
||||
- cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,src)
|
||||
+ cmd = "%s --create-dirs -O --output-dir %s --location %s" % (curl,self.__plugin_path,src)
|
||||
log.debug(cmd)
|
||||
status, output = utils.run(cmd)
|
||||
|
||||
@@ -323,7 +323,7 @@ class PluginHandle(object):
|
||||
if digsig_url.startswith('file://'):
|
||||
status, filename = utils.download_from_network(digsig_url, digsig_file, True)
|
||||
else:
|
||||
- cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,digsig_url)
|
||||
+ cmd = "%s --create-dirs -O --output-dir %s --location %s" % (curl, self.__plugin_path,digsig_url)
|
||||
log.debug(cmd)
|
||||
status, output = utils.run(cmd)
|
||||
except IOError as e:
|
||||
28
hplip-plugin-script.patch
Normal file
28
hplip-plugin-script.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
diff --git a/Makefile.am b/Makefile.am
|
||||
index bb4195c..ddac16a 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -680,6 +680,12 @@ if HPLIP_CLASS_DRIVER
|
||||
filterdir=$(cupsfilterdir)
|
||||
printpluginsdir=$(cupsfilterdir)
|
||||
|
||||
+#
|
||||
+# HP Plugin
|
||||
+#
|
||||
+
|
||||
+pkgplugindir=$(bindir)
|
||||
+pkgplugin_DATA=hp-plugin
|
||||
|
||||
dist_filter_DATA = hpcups hpps dat2drv
|
||||
dist_printplugins_DATA = prnt/plugins/hbpl1-arm32.so prnt/plugins/hbpl1-arm64.so prnt/plugins/hbpl1-x86_32.so prnt/plugins/hbpl1-x86_64.so prnt/plugins/lj-arm32.so prnt/plugins/lj-arm64.so prnt/plugins/lj-x86_32.so prnt/plugins/lj-x86_64.so
|
||||
diff --git a/configure.in b/configure.in
|
||||
index f8f1a28..7fa5d12 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -801,5 +801,5 @@ AC_SUBST(udev_sysfs_rules)
|
||||
AC_SUBST(epm_class_driver)
|
||||
AC_SUBST(epm_class_install)
|
||||
|
||||
-AC_CONFIG_FILES(Makefile hplip.conf hplip.desktop hp-uiscan.desktop hplip-systray.desktop prnt/drv/hpijs.drv prnt/drv/hpcups.drv hplip.list data/policykit/com.hp.hplip.service)
|
||||
+AC_CONFIG_FILES(Makefile hplip.conf hplip.desktop hp-uiscan.desktop hplip-systray.desktop prnt/drv/hpijs.drv prnt/drv/hpcups.drv hplip.list data/policykit/com.hp.hplip.service hp-plugin)
|
||||
AC_OUTPUT
|
||||
41
hplip-plugin-stdout.patch
Normal file
41
hplip-plugin-stdout.patch
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
diff --git a/base/os_utils.py b/base/os_utils.py
|
||||
index 82a8b42..d918822 100644
|
||||
--- a/base/os_utils.py
|
||||
+++ b/base/os_utils.py
|
||||
@@ -26,6 +26,7 @@ import locale
|
||||
import stat
|
||||
import subprocess
|
||||
import shlex
|
||||
+import sys
|
||||
|
||||
#Local
|
||||
from . import logger
|
||||
@@ -37,17 +38,22 @@ def execute(cmd):
|
||||
try:
|
||||
# Use shlex.split to safely split the command into arguments
|
||||
args = shlex.split(cmd)
|
||||
- process = subprocess.Popen(args,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
+ process = subprocess.Popen(args,stdout=sys.stdout, stderr=sys.stderr, stdin=sys.stdin)
|
||||
process.wait()
|
||||
stdout, stderr = process.communicate()
|
||||
- log.debug(f"Command executed: {cmd}\n{stdout.decode()}")
|
||||
+
|
||||
+ log.debug(f"Command executed: {cmd}{f'\n{stdout.decode()}' if stdout else ''}")
|
||||
+
|
||||
if process.returncode != 0:
|
||||
- error_message = f"Command failed with return code {process.returncode}: {cmd}\n{stderr.decode()}"
|
||||
- log.error(error_message)
|
||||
+ log.error(f"Command failed with return code" \
|
||||
+ f"{process.returncode}: {cmd}" \
|
||||
+ f"{f'\n{stderr.decode()}' if stderr else ''}")
|
||||
+
|
||||
return process.returncode
|
||||
except subprocess.CalledProcessError as e:
|
||||
- error_message = f"Command failed with return code {e.returncode}: {cmd}\n{e.stderr.decode()}"
|
||||
- log.error(error_message)
|
||||
+ log.error(f"Command failed with return code" \
|
||||
+ f"{e.returncode}: {cmd}" \
|
||||
+ f"{f'\n{e.stderr.decode()}' if e.stderr else ''}")
|
||||
return e.returncode
|
||||
except Exception as e:
|
||||
log.error(f"Error executing command: {cmd}\n{str(e)}")
|
||||
26
hplip-plugin-udevissues.patch
Normal file
26
hplip-plugin-udevissues.patch
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
diff --git a/installer/pluginhandler.py b/installer/pluginhandler.py
|
||||
index 1af8d85..5c498ab 100755
|
||||
--- a/installer/pluginhandler.py
|
||||
+++ b/installer/pluginhandler.py
|
||||
@@ -403,7 +403,20 @@ class PluginHandle(object):
|
||||
log.error("Target file %s does not exist. File copy failed." % trg)
|
||||
continue
|
||||
else:
|
||||
- os.chmod(trg, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
|
||||
+ if trg == '/etc/udev/rules.d/S99-2000S1.rules' or \
|
||||
+ trg == '/etc/udev/rules.d/40-libsane.rules':
|
||||
+ os.chmod(trg, 0o644)
|
||||
+ with open(trg, 'r') as udev_f:
|
||||
+ content = udev_f.read()
|
||||
+
|
||||
+ content = content.replace('libsane_rules_end', 'libsane_usb_rules_end')
|
||||
+ content = content.replace('GROUP="scanner", ', '')
|
||||
+
|
||||
+ with open(trg, 'w') as udev_f:
|
||||
+ udev_f.write(content)
|
||||
+
|
||||
+ else:
|
||||
+ os.chmod(trg, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
|
||||
|
||||
if link:
|
||||
if os.path.exists(link):
|
||||
17
hplip-pserror-c99.patch
Normal file
17
hplip-pserror-c99.patch
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
prnt/pserror.c: Replace an implicit int with an explicit int
|
||||
|
||||
Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>
|
||||
|
||||
diff --git a/prnt/hpps/pserror.c b/prnt/hpps/pserror.c
|
||||
index 114d7e1b5fa364fb..493b49c27917a7e6 100644
|
||||
--- a/prnt/hpps/pserror.c
|
||||
+++ b/prnt/hpps/pserror.c
|
||||
@@ -24,7 +24,7 @@ extern char *program ; /* Defined by main program, giving program name */
|
||||
void message(int flags, char *format, ...)
|
||||
{
|
||||
va_list args ;
|
||||
- static column = 0 ; /* current screen column for message wrap */
|
||||
+ static int column = 0 ; /* current screen column for message wrap */
|
||||
char msgbuf[MAX_MESSAGE] ; /* buffer in which to put the message */
|
||||
char *bufptr = msgbuf ; /* message buffer pointer */
|
||||
|
||||
|
|
@ -57,8 +57,8 @@ diff -up hplip-3.15.2/fax/filters/pstotiff.pstotiff-is-rubbish hplip-3.15.2/fax/
|
|||
+TMPFILE=`mktemp /tmp/pstotiff.XXXXXX` || exit 1
|
||||
+gs -I/usr/share/cups/fonts -sDEVICE=tiffg4 -dMaxStripSize=0 -r204x196 \
|
||||
+ -dNOPAUSE -dBATCH -dSAFER -dPARANOIDSAFER \
|
||||
+ -dSHORTERRORS -dWRITESYSTEMDICT -dGHOSTSCRIPT \
|
||||
+ -sstdout=%stderr -sOutputFile="$TMPFILE" "$IN"
|
||||
+ -dSHORTERRORS -dGHOSTSCRIPT -sstdout=%stderr \
|
||||
+ -sOutputFile="$TMPFILE" "$IN"
|
||||
+RET=$?
|
||||
+cat "$TMPFILE"
|
||||
+rm -f "$TMPFILE"
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
#!/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
|
||||
32
hplip-repack.sh
Executable file
32
hplip-repack.sh
Executable file
|
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/bash
|
||||
|
||||
|
||||
VERSION=$1
|
||||
|
||||
if [ "${VERSION:="*"}" == "*" ]
|
||||
then
|
||||
echo "Define a version of hplip as an argument."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# extract the original tarball
|
||||
tar -xaf hplip-$VERSION.tar.gz || exit 1
|
||||
|
||||
# remove unwanted files - license-related ones reported here https://bugs.launchpad.net/hplip/+bug/2028938
|
||||
rm hplip-$VERSION/locatedriver
|
||||
|
||||
# compress into a new tarball
|
||||
tar -cjvf hplip-$VERSION-repack.tar.gz hplip-$VERSION || exit 1
|
||||
|
||||
# check whether plugin is available
|
||||
wget -O hplip-plugin.run https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-$1-plugin.run || wget -O hplip-plugin.run https://developers.hp.com/sites/default/files/hplip-$1-plugin.run || exit 1
|
||||
|
||||
# check whether the file is sane
|
||||
file --mime hplip-plugin.run | grep 'x-shellscript' || exit 1
|
||||
|
||||
echo "hplip-${VERSION}-repack.tar.gz is prepared for uploading..."
|
||||
|
||||
exit 0
|
||||
|
||||
# upload a new source tarball
|
||||
#fedpkg new-sources hplip-$VERSION-repack.tar.gz || exit 1
|
||||
1178
hplip-revert-plugins.patch
Normal file
1178
hplip-revert-plugins.patch
Normal file
File diff suppressed because it is too large
Load diff
19
hplip-scan-hpaio-include.patch
Normal file
19
hplip-scan-hpaio-include.patch
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
scam/sane/hpaio.c: Include orblite.h for more function prototypes
|
||||
|
||||
Otherwise the build fails with compilers which do not support
|
||||
implicit function declarations.
|
||||
|
||||
Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>
|
||||
|
||||
diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c
|
||||
index d342626822fc2190..57d1ddea32fb5816 100644
|
||||
--- a/scan/sane/hpaio.c
|
||||
+++ b/scan/sane/hpaio.c
|
||||
@@ -50,6 +50,7 @@
|
||||
#include "sclpml.h"
|
||||
#include "escl.h"
|
||||
#include "io.h"
|
||||
+#include "orblite.h"
|
||||
#include "orblitei.h"
|
||||
|
||||
|
||||
21
hplip-scan-orblite-c99.patch
Normal file
21
hplip-scan-orblite-c99.patch
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c
|
||||
index ba86640..2eb7aba 100644
|
||||
--- a/scan/sane/orblite.c
|
||||
+++ b/scan/sane/orblite.c
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "orblitei.h"
|
||||
#include "orblite.h"//Added New
|
||||
#include <math.h>
|
||||
+#include <dlfcn.h>
|
||||
#include "utils.h"
|
||||
#include "io.h"
|
||||
|
||||
@@ -195,7 +196,7 @@ bugout:
|
||||
|
||||
static int bb_unload(SANE_THandle ps)
|
||||
{
|
||||
- _DBG("Calling orblite bb_unload: \n");
|
||||
+ DBG("Calling orblite bb_unload: \n");
|
||||
if (ps->bb_handle)
|
||||
{
|
||||
dlclose(ps->bb_handle);
|
||||
37
hplip-scan-size.patch
Normal file
37
hplip-scan-size.patch
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
diff --git a/scan.py b/scan.py
|
||||
index b262ef2..cb0ffc1 100755
|
||||
--- a/scan.py
|
||||
+++ b/scan.py
|
||||
@@ -83,7 +83,7 @@ edge_erase_value = 0
|
||||
contrast = 0
|
||||
set_contrast = False
|
||||
|
||||
-page_size = ''
|
||||
+page_size = 'a4'
|
||||
size_desc = ''
|
||||
page_units = 'mm'
|
||||
default_res = 300
|
||||
@@ -1615,7 +1615,7 @@ try:
|
||||
else:
|
||||
im = im.convert("RGB")
|
||||
|
||||
- #im = imageprocessing.resize_to_scan_area(im,PAGE_SIZES[size],res)
|
||||
+ #im = imageprocessing.resize_to_scan_area(im,PAGE_SIZES[page_size],res)
|
||||
if barcode_count>0:
|
||||
if barcode_first_occurence == True:
|
||||
if barcode_first_page == False:
|
||||
@@ -1718,12 +1718,12 @@ try:
|
||||
#so that the output image size matches with the input scan area
|
||||
#for Flatbad
|
||||
if im:
|
||||
- im = imageprocessing.resize_to_scan_area(im,PAGE_SIZES[size],res)
|
||||
+ im = imageprocessing.resize_to_scan_area(im,PAGE_SIZES[page_size],res)
|
||||
"""
|
||||
#for ADF
|
||||
for Image_file in adf_page_files:
|
||||
image = Image.open(Image_file)
|
||||
- resized_image = imageprocessing.resize_to_scan_area(image,PAGE_SIZES[size],res)
|
||||
+ resized_image = imageprocessing.resize_to_scan_area(image,PAGE_SIZES[page_size],res)
|
||||
resized_image.save(Image_file)
|
||||
"""
|
||||
if adf and (save_file =='jpg' or save_file == 'png' or save_file == 'tiff' or save_file == 'pdf' or save_file == 'bmp'):
|
||||
16
hplip-sclpml-strcasestr.patch
Normal file
16
hplip-sclpml-strcasestr.patch
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
Switch the whole libsane-hpaio to get proper definition of strcasestr() used in
|
||||
sclpml.c
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 15d953a..7105f74 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -73,7 +73,7 @@ endif
|
||||
# The following is a interlibrary dependency that must be compiled first.
|
||||
libsane_hpaio_la_LIBADD = libhpip.la libhpmud.la libhpipp.la $(DBUS_LIBS) -lcups -ldl
|
||||
#libsane_hpaio_la_CFLAGS = -DWITH_NONAMESPACES -DSOAP_DEBUG
|
||||
-libsane_hpaio_la_CFLAGS = $(DBUS_CFLAGS) -Iprotocol
|
||||
+libsane_hpaio_la_CFLAGS = $(DBUS_CFLAGS) -Iprotocol -D_GNU_SOURCE
|
||||
|
||||
if NETWORK_BUILD
|
||||
libsane_hpaio_la_LIBADD += libhpdiscovery.la
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
diff -up hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp
|
||||
--- hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp.strncpy 2015-01-21 16:52:44.066497631 +0000
|
||||
+++ hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp 2015-01-21 16:59:46.216434376 +0000
|
||||
@@ -203,6 +203,7 @@ HPCupsFilter::HPCupsFilter() : m_pPrinte
|
||||
diff -up hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp
|
||||
--- hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp.strncpy 2025-04-11 10:16:00.438702562 +0200
|
||||
+++ hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp 2025-04-11 10:21:25.088096376 +0200
|
||||
@@ -211,6 +211,7 @@ HPCupsFilter::HPCupsFilter() : m_pPrinte
|
||||
adj_k_width = 0;
|
||||
black_raster = NULL;
|
||||
color_raster = NULL;
|
||||
|
|
@ -9,7 +9,7 @@ diff -up hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.14.10/prnt/h
|
|||
}
|
||||
|
||||
HPCupsFilter::~HPCupsFilter()
|
||||
@@ -384,9 +385,9 @@ DRIVER_ERROR HPCupsFilter::startPage (cu
|
||||
@@ -428,15 +429,15 @@ DRIVER_ERROR HPCupsFilter::startPage (cu
|
||||
m_JA.media_attributes.physical_height = cups_header->PageSize[1];
|
||||
m_JA.media_attributes.printable_width = ((cups_header->ImagingBoundingBox[2]-cups_header->ImagingBoundingBox[0]) * horz_res) / 72;
|
||||
m_JA.media_attributes.printable_height = ((cups_header->ImagingBoundingBox[3]-cups_header->ImagingBoundingBox[1]) * vert_res) / 72;
|
||||
|
|
@ -20,11 +20,18 @@ diff -up hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.14.10/prnt/h
|
|||
+ strncpy(m_JA.media_attributes.MediaTypeName, cups_header->MediaType, sizeof(m_JA.media_attributes.MediaTypeName)-1);
|
||||
+ strncpy(m_JA.quality_attributes.hbpl1_print_quality, cups_header->OutputType, sizeof(m_JA.quality_attributes.hbpl1_print_quality)-1);
|
||||
m_JA.color_mode = cups_header->cupsRowStep;
|
||||
|
||||
if (m_JA.media_attributes.PageSizeName[0] == '\0') {
|
||||
// Copy the value of cups_header->cupsPageSizeName if it isnot null
|
||||
if (cups_header->cupsPageSizeName != nullptr) {
|
||||
- strncpy(m_JA.media_attributes.PageSizeName, cups_header->cupsPageSizeName, sizeof(m_JA.media_attributes.PageSizeName));
|
||||
+ strncpy(m_JA.media_attributes.PageSizeName, cups_header->cupsPageSizeName, sizeof(m_JA.media_attributes.PageSizeName) - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
diff -up hplip-3.14.10/prnt/hpijs/hpijs.cpp.strncpy hplip-3.14.10/prnt/hpijs/hpijs.cpp
|
||||
--- hplip-3.14.10/prnt/hpijs/hpijs.cpp.strncpy 2015-01-21 17:00:03.225512410 +0000
|
||||
+++ hplip-3.14.10/prnt/hpijs/hpijs.cpp 2015-01-21 17:04:59.308870785 +0000
|
||||
diff -up hplip-3.25.2/prnt/hpijs/hpijs.cpp.strncpy hplip-3.25.2/prnt/hpijs/hpijs.cpp
|
||||
--- hplip-3.25.2/prnt/hpijs/hpijs.cpp.strncpy 2025-04-11 10:16:00.434453252 +0200
|
||||
+++ hplip-3.25.2/prnt/hpijs/hpijs.cpp 2025-04-11 10:16:00.501228045 +0200
|
||||
@@ -605,7 +605,7 @@ int main (int argc, char *argv[], char *
|
||||
}
|
||||
|
||||
|
|
@ -34,9 +41,9 @@ diff -up hplip-3.14.10/prnt/hpijs/hpijs.cpp.strncpy hplip-3.14.10/prnt/hpijs/hpi
|
|||
|
||||
#ifdef HAVE_LIBHPIP
|
||||
char *pDev;
|
||||
diff -up hplip-3.14.10/prnt/hpijs/hpijsfax.cpp.strncpy hplip-3.14.10/prnt/hpijs/hpijsfax.cpp
|
||||
--- hplip-3.14.10/prnt/hpijs/hpijsfax.cpp.strncpy 2015-01-21 17:05:06.585904171 +0000
|
||||
+++ hplip-3.14.10/prnt/hpijs/hpijsfax.cpp 2015-01-21 17:05:15.787946389 +0000
|
||||
diff -up hplip-3.25.2/prnt/hpijs/hpijsfax.cpp.strncpy hplip-3.25.2/prnt/hpijs/hpijsfax.cpp
|
||||
--- hplip-3.25.2/prnt/hpijs/hpijsfax.cpp.strncpy 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/prnt/hpijs/hpijsfax.cpp 2025-04-11 10:16:00.501403513 +0200
|
||||
@@ -282,7 +282,7 @@ int hpijsFaxServer (int argc, char **arg
|
||||
char user_name[32]={0,};
|
||||
|
||||
|
|
|
|||
|
|
@ -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():
|
||||
|
|
|
|||
|
|
@ -1,76 +1,96 @@
|
|||
diff -up hplip-3.19.6/base/utils.py.ui-optional hplip-3.19.6/base/utils.py
|
||||
--- hplip-3.19.6/base/utils.py.ui-optional 2019-06-26 15:07:10.000000000 +0200
|
||||
+++ hplip-3.19.6/base/utils.py 2019-07-12 08:16:22.390256936 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# (c) Copyright 2001-2018 HP Development Company, L.P.
|
||||
@@ -734,6 +734,13 @@ def checkPyQtImport(): # qt3
|
||||
diff --git a/base/module.py b/base/module.py
|
||||
index dd3efa3..04ac5b8 100644
|
||||
--- a/base/module.py
|
||||
+++ b/base/module.py
|
||||
@@ -432,6 +432,12 @@ class Module(object):
|
||||
if show_usage is not None:
|
||||
sys.exit(0)
|
||||
|
||||
+ if mode == GUI_MODE:
|
||||
+ if not utils.canEnterGUIMode4():
|
||||
+ log.warn("GUI mode not available - switching to interactive mode.")
|
||||
+ mode = INTERACTIVE_MODE
|
||||
+ ui_toolkit = 'none'
|
||||
+
|
||||
self.mode = mode
|
||||
return opts, device_uri, printer_name, mode, ui_toolkit, lang
|
||||
|
||||
diff --git a/base/utils.py b/base/utils.py
|
||||
index 98437a3..9b8813b 100644
|
||||
--- a/base/utils.py
|
||||
+++ b/base/utils.py
|
||||
@@ -722,6 +722,15 @@ def canEnterGUIMode4(): # qt4
|
||||
log.warn(e)
|
||||
return False
|
||||
|
||||
+ try:
|
||||
+ import ui4
|
||||
+ except ImportError:
|
||||
+ try:
|
||||
+ import ui5.setupdialog
|
||||
+ except ImportError as e:
|
||||
+ log.warn(e)
|
||||
+ return False
|
||||
+
|
||||
return True
|
||||
|
||||
|
||||
@@ -734,6 +743,11 @@ def checkPyQtImport(): # qt3
|
||||
if os.getenv('DISPLAY') and os.getenv('STARTED_FROM_MENU'):
|
||||
no_qt_message_gtk()
|
||||
|
||||
+ # 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
|
||||
|
||||
@@ -784,7 +791,8 @@ def checkPyQtImport4():
|
||||
import PyQt5
|
||||
import ui5
|
||||
else:
|
||||
@@ -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")
|
||||
+ # hplip-gui sub-package (Fedora) requires python3-qt5
|
||||
+ log.error("Install the hplip-gui package for graphical support.")
|
||||
return False
|
||||
- return False
|
||||
+ try:
|
||||
+ import PyQt5
|
||||
+ import ui5.setupdialog
|
||||
+ except ImportError:
|
||||
+ log.debug('GUI not available.')
|
||||
+ return False
|
||||
+
|
||||
return True
|
||||
|
||||
@@ -2456,6 +2464,7 @@ def checkPyQtImport45():
|
||||
except ImportError as e:
|
||||
log.debug(e)
|
||||
# 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)
|
||||
|
||||
+ log.error("Install the hplip-gui package for graphical support.")
|
||||
raise ImportError("GUI Modules PyQt4 and PyQt5 are not installed")
|
||||
-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
|
||||
|
||||
|
||||
@@ -2477,6 +2486,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:
|
||||
@@ -2485,9 +2495,7 @@ def import_dialog(ui_toolkit):
|
||||
return (QApplication, "ui5")
|
||||
except ImportError as e:
|
||||
log.error(e)
|
||||
- sys.exit(1)
|
||||
- else:
|
||||
- log.error("Unable to load Qt support. Is it installed?")
|
||||
+ log.error("Unable to load Qt support. Is hplip-gui package installed?")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
diff -up hplip-3.19.6/plugin.py.ui-optional hplip-3.19.6/plugin.py
|
||||
--- hplip-3.19.6/plugin.py.ui-optional 2019-06-26 15:07:10.000000000 +0200
|
||||
+++ hplip-3.19.6/plugin.py 2019-07-12 08:15:03.731933177 +0200
|
||||
@@ -252,7 +252,11 @@ if mode == GUI_MODE:
|
||||
# clean_exit(1)
|
||||
|
||||
QApplication, ui_package = utils.import_dialog(ui_toolkit)
|
||||
- ui = import_module(ui_package + ".plugindialog")
|
||||
+ try:
|
||||
+ ui = import_module(ui_package + ".plugindialog")
|
||||
+ except ModuleNotFoundError:
|
||||
+ log.error("hplip-gui not installed. GUI not available. Exiting.")
|
||||
+ clean_exit(1)
|
||||
if ui_toolkit == "qt5":
|
||||
from PyQt5.QtWidgets import QMessageBox
|
||||
elif ui_toolkit == "qt4":
|
||||
if mode == GUI_MODE:
|
||||
|
|
|
|||
18
hplip-unicodeerror.patch
Normal file
18
hplip-unicodeerror.patch
Normal 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):
|
||||
123
hplip-use-raw-strings.patch
Normal file
123
hplip-use-raw-strings.patch
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
diff -up hplip-3.25.2/base/device.py.raw-strings hplip-3.25.2/base/device.py
|
||||
diff -up hplip-3.25.2/base/g.py.raw-strings hplip-3.25.2/base/g.py
|
||||
diff -up hplip-3.25.2/base/LedmWifi.py.raw-strings hplip-3.25.2/base/LedmWifi.py
|
||||
--- hplip-3.25.2/base/LedmWifi.py.raw-strings 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/base/LedmWifi.py 2025-04-11 10:26:18.519166530 +0200
|
||||
@@ -31,7 +31,7 @@ from .g import *
|
||||
from . import device, utils
|
||||
from .sixext import to_bytes_utf8
|
||||
|
||||
-http_result_pat = re.compile("""HTTP/\d.\d\s(\d+)""", re.I)
|
||||
+http_result_pat = re.compile(r"""HTTP/\d.\d\s(\d+)""", re.I)
|
||||
HTTP_OK = 200
|
||||
HTTP_ACCEPTED = 202
|
||||
HTTP_NOCONTENT = 204
|
||||
diff -up hplip-3.25.2/base/logger.py.raw-strings hplip-3.25.2/base/logger.py
|
||||
diff -up hplip-3.25.2/base/models.py.raw-strings hplip-3.25.2/base/models.py
|
||||
diff -up hplip-3.25.2/base/password.py.raw-strings hplip-3.25.2/base/password.py
|
||||
diff -up hplip-3.25.2/base/queues.py.raw-strings hplip-3.25.2/base/queues.py
|
||||
--- hplip-3.25.2/base/queues.py.raw-strings 2025-04-11 10:26:18.512773352 +0200
|
||||
+++ hplip-3.25.2/base/queues.py 2025-04-11 10:26:18.520514306 +0200
|
||||
@@ -46,7 +46,7 @@ HPPS = 3
|
||||
HPOTHER = 4
|
||||
|
||||
DEVICE_URI_PATTERN = re.compile(r"""(.*):/(.*?)/(\S*?)\?(?:serial=(\S*)|device=(\S*)|ip=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[^&]*)|zc=(\S+))(?:&port=(\d))?""", re.I)
|
||||
-NICKNAME_PATTERN = re.compile(b'''\*NickName:\s*\"(.*)"''', re.MULTILINE)
|
||||
+NICKNAME_PATTERN = re.compile(r'''\*NickName:\s*\"(.*)"''', re.MULTILINE)
|
||||
NET_PATTERN = re.compile(r"""(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})""")
|
||||
NET_ZC_PATTERN = re.compile(r'''zc=(.*)''',re.IGNORECASE)
|
||||
NET_OTHER_PATTERN = re.compile(r'''(.*)://(.*)''',re.IGNORECASE)
|
||||
@@ -149,7 +149,7 @@ def parseQueues(mode):
|
||||
desc=''
|
||||
else:
|
||||
try:
|
||||
- desc = to_string_utf8( NICKNAME_PATTERN.search(fileptr).group(1) )
|
||||
+ desc = to_string_utf8( NICKNAME_PATTERN.search(fileptr.decode('utf-8')).group(1) )
|
||||
except AttributeError:
|
||||
desc = ''
|
||||
|
||||
diff -up hplip-3.25.2/base/status.py.raw-strings hplip-3.25.2/base/status.py
|
||||
diff -up hplip-3.25.2/base/tui.py.raw-strings hplip-3.25.2/base/tui.py
|
||||
diff -up hplip-3.25.2/base/utils.py.raw-strings hplip-3.25.2/base/utils.py
|
||||
diff -up hplip-3.25.2/check.py.raw-strings hplip-3.25.2/check.py
|
||||
--- hplip-3.25.2/check.py.raw-strings 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/check.py 2025-04-11 10:26:18.521601431 +0200
|
||||
@@ -627,7 +627,7 @@ class DependenciesCheck(object):
|
||||
status, output = utils.run("%s -d03f0:" % lsusb)
|
||||
|
||||
if output:
|
||||
- lsusb_pat = re.compile("""^Bus\s([0-9a-fA-F]{3,3})\sDevice\s([0-9a-fA-F]{3,3}):\sID\s([0-9a-fA-F]{4,4}):([0-9a-fA-F]{4,4})(.*)""", re.IGNORECASE)
|
||||
+ lsusb_pat = re.compile(r"""^Bus\s([0-9a-fA-F]{3,3})\sDevice\s([0-9a-fA-F]{3,3}):\sID\s([0-9a-fA-F]{4,4}):([0-9a-fA-F]{4,4})(.*)""", re.IGNORECASE)
|
||||
log.debug(output)
|
||||
try:
|
||||
hpmudext = utils.import_ext('hpmudext')
|
||||
@@ -682,7 +682,7 @@ class DependenciesCheck(object):
|
||||
|
||||
out =''
|
||||
for g in getfacl_out_list:
|
||||
- if 'getfacl' not in g and '' is not g and 'file' not in g:
|
||||
+ if 'getfacl' not in g and '' != g and 'file' not in g:
|
||||
pat = re.compile('''.*:(.*)''')
|
||||
if pat.search(g):
|
||||
out = out +' '+ pat.search(g).group(1)
|
||||
diff -up hplip-3.25.2/fax/soapfax.py.raw-strings hplip-3.25.2/fax/soapfax.py
|
||||
--- hplip-3.25.2/fax/soapfax.py.raw-strings 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/fax/soapfax.py 2025-04-11 10:26:18.521745824 +0200
|
||||
@@ -42,7 +42,7 @@ from base.sixext import to_bytes_utf8
|
||||
|
||||
# **************************************************************************** #
|
||||
|
||||
-http_result_pat = re.compile("""HTTP/\d.\d\s(\d+)""", re.I)
|
||||
+http_result_pat = re.compile(r"""HTTP/\d.\d\s(\d+)""", re.I)
|
||||
|
||||
|
||||
TIME_FORMAT_AM_PM = 1
|
||||
diff -up hplip-3.25.2/installer/dcheck.py.raw-strings hplip-3.25.2/installer/dcheck.py
|
||||
diff -up hplip-3.25.2/makeuri.py.raw-strings hplip-3.25.2/makeuri.py
|
||||
--- hplip-3.25.2/makeuri.py.raw-strings 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/makeuri.py 2025-04-11 10:26:18.522024483 +0200
|
||||
@@ -46,7 +46,7 @@ USAGE = [ (__doc__, "", "name", True),
|
||||
("DEVNODE (parallel only):", '"/dev/parportX", X=0,1,2,...', "option", False),
|
||||
("SERIAL NO. (usb and parallel only):", '"serial no."', "option", True),
|
||||
utils.USAGE_OPTIONS,
|
||||
- ("To specify the port on a multi-port JetDirect:", "-p<port> or --port=<port> (Valid values are 1\*, 2, and 3. \*default)", "option", False),
|
||||
+ ("To specify the port on a multi-port JetDirect:", r"-p<port> or --port=<port> (Valid values are 1\*, 2, and 3. \*default)", "option", False),
|
||||
("Show the CUPS URI only (quiet mode):", "-c or --cups", "option", False),
|
||||
("Show the SANE URI only (quiet mode):", "-s or --sane", "option", False),
|
||||
("Show the HP Fax URI only (quiet mode):", "-f or --fax", "option", False),
|
||||
diff -up hplip-3.25.2/prnt/cups.py.raw-strings hplip-3.25.2/prnt/cups.py
|
||||
diff -up hplip-3.25.2/probe.py.raw-strings hplip-3.25.2/probe.py
|
||||
--- hplip-3.25.2/probe.py.raw-strings 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ hplip-3.25.2/probe.py 2025-04-11 10:26:18.522312569 +0200
|
||||
@@ -42,11 +42,11 @@ USAGE = [(__doc__, "", "name", True),
|
||||
("Usage: %s [OPTIONS]" % __mod__, "", "summary", True),
|
||||
utils.USAGE_OPTIONS,
|
||||
("Bus to probe:", "-b<bus> or --bus=<bus>", "option", False),
|
||||
- ("", "<bus>: cups, usb\*, net, bt, fw, par (\*default) (Note: bt and fw not supported in this release.)", "option", False),
|
||||
+ ("", r"<bus>: cups, usb\*, net, bt, fw, par (\*default) (Note: bt and fw not supported in this release.)", "option", False),
|
||||
("Set Time to Live (TTL):", "-t<ttl> or --ttl=<ttl> (Default is 4).", "option", False),
|
||||
("Set timeout:", "-o<timeout in secs.> or --timeout=<timeout is secs.>", "option", False),
|
||||
("Filter by functionality:", "-e<filter list> or --filter=<filter list>", "option", False),
|
||||
- ("", "<filter list>: comma separated list of one or more of: scan, pcard, fax, copy, or none\*. (\*none is the default)", "option", False),
|
||||
+ ("", r"<filter list>: comma separated list of one or more of: scan, pcard, fax, copy, or none\*. (\*none is the default)", "option", False),
|
||||
("Search:", "-s<search re> or --search=<search re>", "option", False),
|
||||
("", "<search re> must be a valid regular expression (not case sensitive)", "option", False),
|
||||
("Network discovery method:", "-m<method> or --method=<method>: <method> is 'slp'* or 'mdns'.", "option", False),
|
||||
diff -up hplip-3.25.2/scan.py.raw-strings hplip-3.25.2/scan.py
|
||||
diff -up hplip-3.25.2/setup.py.raw-strings hplip-3.25.2/setup.py
|
||||
--- hplip-3.25.2/setup.py.raw-strings 2025-04-11 10:26:18.496992045 +0200
|
||||
+++ hplip-3.25.2/setup.py 2025-04-11 10:26:18.522775511 +0200
|
||||
@@ -79,11 +79,11 @@ USAGE = [ (__doc__, "", "name", True),
|
||||
utils.USAGE_SPACE,
|
||||
utils.USAGE_OPTIONS,
|
||||
("Automatic mode:", "-a or --auto (-i mode only)", "option", False),
|
||||
- ("To specify the port on a multi-port JetDirect:", "--port=<port> (Valid values are 1\*, 2, and 3. \*default)", "option", False),
|
||||
+ ("To specify the port on a multi-port JetDirect:", r"--port=<port> (Valid values are 1\*, 2, and 3. \*default)", "option", False),
|
||||
("No testpage in automatic mode:", "-x (-i mode only)", "option", False),
|
||||
("To specify a CUPS printer queue name:", "-p<printer> or --printer=<printer> (-i mode only)", "option", False),
|
||||
("To specify a CUPS fax queue name:", "-f<fax> or --fax=<fax> (-i mode only)", "option", False),
|
||||
- ("Type of queue(s) to install:", "-t<typelist> or --type=<typelist>. <typelist>: print*, fax\* (\*default) (-i mode only)", "option", False),
|
||||
+ ("Type of queue(s) to install:", r"-t<typelist> or --type=<typelist>. <typelist>: print*, fax\* (\*default) (-i mode only)", "option", False),
|
||||
("To specify the device URI to install:", "-d<device> or --device=<device> (--qt4 mode only)", "option", False),
|
||||
("Remove printers or faxes instead of setting-up:", "-r or --rm or --remove", "option", False),
|
||||
utils.USAGE_LANGUAGE,
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
diff -up hplip-3.19.6/ui5/wifisetupdialog.py.wifisetup-bad-call-fix hplip-3.19.6/ui5/wifisetupdialog.py
|
||||
--- hplip-3.19.6/ui5/wifisetupdialog.py.wifisetup-bad-call-fix 2019-07-12 08:46:56.873167869 +0200
|
||||
+++ hplip-3.19.6/ui5/wifisetupdialog.py 2019-07-12 08:49:36.813769803 +0200
|
||||
@@ -570,7 +570,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog
|
||||
try:
|
||||
diff -up hplip-3.23.3/ui5/wifisetupdialog.py.wifisetup-bad-call-fix hplip-3.23.3/ui5/wifisetupdialog.py
|
||||
--- hplip-3.23.3/ui5/wifisetupdialog.py.wifisetup-bad-call-fix 2023-05-29 13:45:35.830961640 +0200
|
||||
+++ hplip-3.23.3/ui5/wifisetupdialog.py 2023-05-29 13:48:05.939993288 +0200
|
||||
@@ -665,7 +665,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog
|
||||
self.ip,_,addressmode, subnetmask, gateway, pridns, sec_dns= self.wifiObj.getIPConfiguration(self.dev, self.adapterName)
|
||||
if self.ip == "0.0.0.0":
|
||||
- self.ip, subnetmask, gateway, pri_dns, sec_dns, addressmode = self.wifiObj.getwifiotherdetails(self.dev,self.adapterName)
|
||||
+ self.ip, subnetmask, gateway, pridns, sec_dns, addressmode = self.wifiObj.getwifiotherdetails(self.dev,self.adapterName)
|
||||
if not self.wifiObj == CdmWifi:
|
||||
- self.ip, subnetmask, gateway, pri_dns, sec_dns, addressmode = self.wifiObj.getwifiotherdetails(self.dev,self.adapterName)
|
||||
+ self.ip, subnetmask, gateway, pridns, sec_dns, addressmode = self.wifiObj.getwifiotherdetails(self.dev,self.adapterName)
|
||||
vsa_codes = self.wifiObj.getVSACodes(self.dev, self.adapterName)
|
||||
ss_max, ss_min, ss_val, ss_dbm = self.wifiObj.getSignalStrength(self.dev, self.adapterName,self.network, self.adaptor_id)
|
||||
self.hn = self.wifiObj.getHostname(self.dev)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2014 Richard Hughes <richard@hughsie.com> -->
|
||||
<component type="desktop-application">
|
||||
<id>HP-hplip.desktop</id>
|
||||
<component type="desktop">
|
||||
<id>hplip.desktop</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>GPL-2.0 and MIT and BSD-2-Clause</project_license>
|
||||
<project_license>GPL-2.0+</project_license>
|
||||
<name>HPLIP Graphic Tools</name>
|
||||
<summary>HPLIP GUI tools and GUI part of other HPLIP tools</summary>
|
||||
<description>
|
||||
|
|
|
|||
1038
hplip.spec
1038
hplip.spec
File diff suppressed because it is too large
Load diff
37
plans.fmf
Normal file
37
plans.fmf
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/tier1-internal:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/hplip.git
|
||||
name: /plans/tier1/internal
|
||||
|
||||
/tier1-public:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/hplip.git
|
||||
name: /plans/tier1/public
|
||||
|
||||
/tier2-tier3-internal:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/hplip.git
|
||||
name: /plans/tier2-tier3/internal
|
||||
|
||||
/tier2-tier3-public:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/hplip.git
|
||||
name: /plans/tier2-tier3/public
|
||||
|
||||
|
||||
/others-internal:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/hplip.git
|
||||
name: /plans/others/internal
|
||||
|
||||
/others-public:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/hplip.git
|
||||
name: /plans/others/public
|
||||
|
||||
10
rpminspect.yaml
Normal file
10
rpminspect.yaml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
badfuncs:
|
||||
allowed:
|
||||
# printers usually do not live on networks which would require
|
||||
# IPv6 due having too many hosts on one network, so it is not
|
||||
# a priority to have IPv6 support.
|
||||
# It is reported upstream at https://bugzilla.redhat.com/show_bug.cgi?id=2275938
|
||||
/usr/lib*/libhpmud.so.*:
|
||||
- gethostbyname
|
||||
- inet_addr
|
||||
4
sources
4
sources
|
|
@ -1,3 +1 @@
|
|||
SHA512 (hplip-3.19.8.tar.gz) = 99b7661c9b1d70f3c762658fcbff1ab0c170be8f8fd6cc8bbc80bb0860ccc6d69d38b662ff8be2bd38986a95385a5e5766f22003ee3e74b764dab3d46c6cb9ac
|
||||
SHA512 (hp-laserjet_cp_1025nw.ppd.gz) = d79aa8c777b6be434578febe4bdce6b208ea2f13a5be48c855ff4b74f008cf20fd24ba1c003fca6dc532d5c558e162333dd1d3ca2cc13d980c7668381e121ec1
|
||||
SHA512 (hp-laserjet_professional_p_1102w.ppd.gz) = 8c7e5cb2122bed3ee0d789297f60fd92836f947af486d986af60bf98fefb05c38093d62c8871e920ab6b0b31f2f71632a23c71c55be99746e3658959e083e888
|
||||
SHA512 (hplip-3.25.8-repack.tar.gz) = e4f82215e2753bee864e5ba643be2ce3566f1691638c35c74016279f92c872713d06e38a066d283f03f3e571d10c8ac2f1539bd32f6bafd1958641d96fe11059
|
||||
|
|
|
|||
|
|
@ -1,30 +0,0 @@
|
|||
-----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-----
|
||||
Loading…
Add table
Add a link
Reference in a new issue