forked from printing/hplip
Compare commits
2 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| 0e36a88b3f | |||
| 0d27ced5bc |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,5 +1 @@
|
||||
.osc
|
||||
*~
|
||||
\#*
|
||||
*.rej
|
||||
*.orig
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 1586048802a90d90f039378ef793681d16960176 Mon Sep 17 00:00:00 2001
|
||||
From 4315485efe9318b18bf859c5bf1a810b9235ae2e Mon Sep 17 00:00:00 2001
|
||||
From: Wolfgang Frisch <wfrisch@suse.de>
|
||||
Date: Tue, 15 Jul 2025 19:12:53 +0200
|
||||
Subject: [PATCH 17/33] Fix ReDoS issue in HPLIP's SLP parser
|
||||
Subject: [PATCH] Fix ReDoS issue in HPLIP's SLP parser
|
||||
|
||||
Patch for the ReDoS issue in HPLIP's SLP parser (bsc#1245358).
|
||||
https://bugs.launchpad.net/hplip/+bug/2115626
|
||||
@@ -44,5 +44,5 @@ index 8e2d8f9..06a00aa 100644
|
||||
def createSocketsWithsetOption(ttl=4):
|
||||
s=None
|
||||
--
|
||||
2.52.0
|
||||
2.50.0
|
||||
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
From 5aeb785fb886de701f1e177a23a8cfbdf236ac67 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 14 Jan 2025 21:56:01 +0100
|
||||
Subject: [PATCH 33/33] Fix two compiler warnings that cause build failure on
|
||||
SLE15 (GA)
|
||||
|
||||
[ 163s] ... running 50-check-gcc-output
|
||||
[ 163s] ... testing for serious compiler warnings
|
||||
[ 163s] (using /usr/lib/build/checks-data/check_gcc_output)
|
||||
[ 163s] (using //.build.log)
|
||||
[ 163s]
|
||||
[ 163s] I: Program is using uninitialized variables.
|
||||
[ 163s] Note the difference between "is used" and "may be used"
|
||||
[ 163s] W: hplip uninitialized-variable scan/sane/hpaio.c:383
|
||||
[ 163s]
|
||||
[ 163s] I: Program returns random data in a function
|
||||
[ 163s] E: hplip no-return-in-nonvoid-function protocol/hp_ipp.c:1375
|
||||
[ 163s]
|
||||
[ 163s] I: Program returns random data in a function
|
||||
[ 163s] E: hplip no-return-in-nonvoid-function protocol/hp_ipp.c:1375
|
||||
|
||||
The check has been removed deliberately in later SPs
|
||||
(https://github.com/openSUSE/post-build-checks/pull/26)
|
||||
|
||||
The test also ran on SLE12-SP3, but there apparently the compiler didn't emit
|
||||
the offending warnings.
|
||||
---
|
||||
protocol/hp_ipp.c | 1 +
|
||||
scan/sane/hpaio.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/protocol/hp_ipp.c b/protocol/hp_ipp.c
|
||||
index e7d4b8c..39107e4 100644
|
||||
--- a/protocol/hp_ipp.c
|
||||
+++ b/protocol/hp_ipp.c
|
||||
@@ -1372,6 +1372,7 @@ int getJobStatus(int iJobID, const char *iPrinterName, const char *iDeviceUri)
|
||||
return aRetnValue;
|
||||
}
|
||||
}
|
||||
+ return HPIPP_ERROR;
|
||||
}
|
||||
|
||||
HPIPP_RESULT sendFaxJob(const char *iDeviceUri, const char *iPrinterName, const char *iFileName, const char *iFaxNumber)
|
||||
diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c
|
||||
index 2e52e19..1acc528 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;
|
||||
- const SANE_Device*** devListi = NULL;
|
||||
+ const SANE_Device*** devList = NULL;
|
||||
orblite_get_devices(devList, localOnly);
|
||||
|
||||
return SANE_STATUS_GOOD;
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From f6715cc06a34ea49c17cde8861e6036024195243 Mon Sep 17 00:00:00 2001
|
||||
From af8ddd502a88f8dc0910c2c9a91471be8434af61 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Mon, 13 Jan 2020 18:20:22 +0100
|
||||
Subject: [PATCH 15/33] Revert changes from 3.18.5 that break hp-setup for fax
|
||||
Subject: [PATCH] Revert changes from 3.18.5 that break hp-setup for fax
|
||||
devices
|
||||
|
||||
See bsc#1107711, lp#1773320
|
||||
@@ -14,10 +14,10 @@ Credits: Eric Schirra <ecsos@schirra.net>
|
||||
2 files changed, 5 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/base/utils.py b/base/utils.py
|
||||
index e8fe42c..6f1412d 100644
|
||||
index f268cf8..cc77820 100644
|
||||
--- a/base/utils.py
|
||||
+++ b/base/utils.py
|
||||
@@ -986,10 +986,7 @@ else:
|
||||
@@ -954,10 +954,7 @@ else:
|
||||
|
||||
|
||||
def printable(s):
|
||||
@@ -30,10 +30,10 @@ index e8fe42c..6f1412d 100644
|
||||
|
||||
def any(S,f=lambda x:x):
|
||||
diff --git a/fax/pmlfax.py b/fax/pmlfax.py
|
||||
index 0ae5f5e..d85b151 100644
|
||||
index adcc1cb..b68ff6a 100644
|
||||
--- a/fax/pmlfax.py
|
||||
+++ b/fax/pmlfax.py
|
||||
@@ -145,8 +145,8 @@ class PMLFaxDevice(FaxDevice):
|
||||
@@ -143,8 +143,8 @@ class PMLFaxDevice(FaxDevice):
|
||||
|
||||
def getPhoneNum(self):
|
||||
if PY3:
|
||||
@@ -44,7 +44,7 @@ index 0ae5f5e..d85b151 100644
|
||||
else:
|
||||
return utils.printable(self.getPML(pml.OID_FAX_LOCAL_PHONE_NUM)[1])
|
||||
phone_num = property(getPhoneNum, setPhoneNum, doc="OID_FAX_LOCAL_PHONE_NUM")
|
||||
@@ -157,8 +157,8 @@ class PMLFaxDevice(FaxDevice):
|
||||
@@ -155,8 +155,8 @@ class PMLFaxDevice(FaxDevice):
|
||||
|
||||
def getStationName(self):
|
||||
if PY3:
|
||||
@@ -56,5 +56,5 @@ index 0ae5f5e..d85b151 100644
|
||||
return utils.printable(self.getPML(pml.OID_FAX_STATION_NAME)[1])
|
||||
|
||||
--
|
||||
2.52.0
|
||||
2.24.1
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 1f97ae55acde846513c8634966252865d4a134ca Mon Sep 17 00:00:00 2001
|
||||
From ba542439639453148ea804fc4e396534cd99abb9 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Mon, 2 Jan 2023 15:33:07 +0100
|
||||
Subject: [PATCH 11/33] Use lsb_release fallback code if "import distro" fails
|
||||
Subject: [PATCH] Use lsb_release fallback code if "import distro" fails
|
||||
|
||||
With python 3.8, the standard python "platform" module doesn't
|
||||
provide the "dist()" function any more. The "distro" module is
|
||||
@@ -14,10 +14,10 @@ using lsb_release.
|
||||
1 file changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/base/utils.py b/base/utils.py
|
||||
index d176c0d..e8fe42c 100644
|
||||
index 94d5c8c..458ddd8 100644
|
||||
--- a/base/utils.py
|
||||
+++ b/base/utils.py
|
||||
@@ -2551,10 +2551,14 @@ def get_distro_name(passwordObj = None):
|
||||
@@ -2519,10 +2519,14 @@ def get_distro_name(passwordObj = None):
|
||||
name = platform.dist()[0].lower()
|
||||
ver = platform.dist()[1]
|
||||
except AttributeError:
|
||||
@@ -37,5 +37,5 @@ index d176c0d..e8fe42c 100644
|
||||
found = False
|
||||
log.debug("Not able to detect distro")
|
||||
--
|
||||
2.52.0
|
||||
2.39.0
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 935b009caf6de3071675894f4756f99f8e3d46ff Mon Sep 17 00:00:00 2001
|
||||
From d52301159a5add137b46e7183970ea1f1cbfe8ac Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Fri, 15 Sep 2023 18:27:13 +0200
|
||||
Subject: [PATCH 04/33] add missing includes and define GNU_SOURCE
|
||||
Subject: [PATCH 04/19] add missing includes and define GNU_SOURCE
|
||||
|
||||
---
|
||||
common/utils.c | 5 +++++
|
||||
@@ -31,7 +31,7 @@ index d8ecee9..6f5cef9 100644
|
||||
extern int errno;
|
||||
|
||||
diff --git a/io/hpmud/jd.c b/io/hpmud/jd.c
|
||||
index 94474c8..f86f96a 100644
|
||||
index be3c823..c15ed9c 100644
|
||||
--- a/io/hpmud/jd.c
|
||||
+++ b/io/hpmud/jd.c
|
||||
@@ -31,6 +31,7 @@
|
||||
@@ -43,7 +43,7 @@ index 94474c8..f86f96a 100644
|
||||
#include "hpmudi.h"
|
||||
|
||||
diff --git a/protocol/hp_ipp.c b/protocol/hp_ipp.c
|
||||
index 6e60ac0..e7d4b8c 100644
|
||||
index 8b72c65..9b05f5e 100644
|
||||
--- a/protocol/hp_ipp.c
|
||||
+++ b/protocol/hp_ipp.c
|
||||
@@ -18,6 +18,10 @@ Boston, MA 02110-1301, USA.
|
||||
@@ -91,5 +91,5 @@ index 9a5975f..3250541 100644
|
||||
#include "saneopts.h"
|
||||
#include "common.h"
|
||||
--
|
||||
2.52.0
|
||||
2.42.0
|
||||
|
||||
@@ -1,17 +1,8 @@
|
||||
From 8d6273e18bac296a80593649e617628dc8eefc32 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 17:57:25 +0100
|
||||
Subject: [PATCH 01/33] hplip: change udev rules
|
||||
|
||||
---
|
||||
data/rules/56-hpmud.rules | 30 ++++++++++++++++++++++++++++--
|
||||
1 file changed, 28 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/data/rules/56-hpmud.rules b/data/rules/56-hpmud.rules
|
||||
index 8311063..ec57f57 100644
|
||||
Index: b/data/rules/56-hpmud.rules
|
||||
===================================================================
|
||||
--- a/data/rules/56-hpmud.rules
|
||||
+++ b/data/rules/56-hpmud.rules
|
||||
@@ -1,8 +1,31 @@
|
||||
@@ -1,8 +1,33 @@
|
||||
# HPLIP udev rules file. Notify console user if plugin support is required for this device.
|
||||
+#
|
||||
+# SUSE changed:
|
||||
@@ -36,6 +27,8 @@ index 8311063..ec57f57 100644
|
||||
+# is also used to upload firmware into printers that need it
|
||||
+# see https://bugs.launchpad.net/bugs/1220628
|
||||
+# a rule that only uploads firmware into printers that need it is added.
|
||||
+#
|
||||
+# If possible activate hpaio backend support in /etc/sane.d/dll.conf.
|
||||
|
||||
ACTION!="add", GOTO="hpmud_rules_end"
|
||||
-SUBSYSTEM=="ppdev", OWNER="root", GROUP="lp", MODE="0664"
|
||||
@@ -44,7 +37,7 @@ index 8311063..ec57f57 100644
|
||||
GOTO="hpmud_rules_end"
|
||||
|
||||
LABEL="hpmud_usb_rules"
|
||||
@@ -13,6 +36,9 @@ ENV{ID_USB_INTERFACES}=="", IMPORT{builtin}="usb_id"
|
||||
@@ -13,6 +38,12 @@ ENV{ID_USB_INTERFACES}=="", IMPORT{built
|
||||
ATTR{idVendor}=="03f0", ENV{ID_USB_INTERFACES}=="*:0701??:*|*:ffcc00:", OWNER="root", GROUP="lp", MODE="0664", ENV{libsane_matched}="yes", ENV{hp_test}="yes", ENV{ID_HPLIP}="1"
|
||||
|
||||
# This rule will check the smart install feature, plugin status and firmware download for the required printers.
|
||||
@@ -52,9 +45,9 @@ index 8311063..ec57f57 100644
|
||||
+#ENV{hp_test}=="yes", PROGRAM="/bin/sh -c 'logger -p user.info loading HP Device $env{BUSNUM} $env{DEVNUM}'", RUN+="/bin/sh -c '/usr/bin/nohup /usr/bin/hp-config_usb_printer $env{BUSNUM}:$env{DEVNUM}'"
|
||||
+# This rule uploads firmware to HP USB printer devices if needed:
|
||||
+ENV{hp_test}=="yes", PROGRAM="/bin/logger -p user.info udev hpmud.rules runs hp-firmware to test if HP device with USB vendor ID $attr{idVendor} and USB product ID $attr{idProduct} at USB bus ID $env{BUSNUM} and USB device ID $env{DEVNUM} needs firmware and if yes to upload it", RUN+="/usr/bin/hp-firmware -s $env{BUSNUM}:$env{DEVNUM}"
|
||||
+
|
||||
+# If possible activate hpaio backend support in /etc/sane.d/dll.conf:
|
||||
+ENV{libsane_matched}=="yes", RUN+="/bin/sh -c 'if test -w /etc/sane.d/dll.conf ; then sed -i -e /hpaio/d /etc/sane.d/dll.conf ; echo hpaio >>/etc/sane.d/dll.conf ; fi'"
|
||||
|
||||
LABEL="hpmud_rules_end"
|
||||
+
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From ea881d92ac3a55d946514a0d8fef260bb2af2173 Mon Sep 17 00:00:00 2001
|
||||
From 9a7ed59efcf645256f8a07f4fb71bf0f838e3838 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Sat, 9 Jan 2021 01:21:08 +0100
|
||||
Subject: [PATCH 12/33] dcheck.py: fix crash in Qt4 version check
|
||||
Subject: [PATCH] dcheck.py: fix crash in Qt4 version check
|
||||
|
||||
On openSUSE, the "PyQt4" module may be available with no submodules.
|
||||
I.e. "import PyQt4" succeeds, wheras "from PyQt4 import QtCore" fails.
|
||||
@@ -26,7 +26,7 @@ Fix it.
|
||||
1 file changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/installer/dcheck.py b/installer/dcheck.py
|
||||
index 2d1c413..6dd7d51 100644
|
||||
index d684c10..6215b4b 100644
|
||||
--- a/installer/dcheck.py
|
||||
+++ b/installer/dcheck.py
|
||||
@@ -300,8 +300,12 @@ def get_pyQt4_version():
|
||||
@@ -60,5 +60,5 @@ index 2d1c413..6dd7d51 100644
|
||||
|
||||
def get_reportlab_version():
|
||||
--
|
||||
2.52.0
|
||||
2.29.2
|
||||
|
||||
|
||||
@@ -1,17 +1,8 @@
|
||||
From 1b1711f104b38c0b39e76098532846c20761e65b Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 17:57:25 +0100
|
||||
Subject: [PATCH 02/33] disable hp-upgrade
|
||||
|
||||
---
|
||||
upgrade.py | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/upgrade.py b/upgrade.py
|
||||
index a3ea6b1..7f1750b 100755
|
||||
Index: b/upgrade.py
|
||||
===================================================================
|
||||
--- a/upgrade.py
|
||||
+++ b/upgrade.py
|
||||
@@ -208,6 +208,11 @@ if os.geteuid() == 0:
|
||||
@@ -207,6 +207,11 @@ if os.geteuid() == 0:
|
||||
if os.getenv("HPLIP_DEBUG"):
|
||||
log.set_level('debug')
|
||||
|
||||
@@ -23,6 +14,3 @@ index a3ea6b1..7f1750b 100755
|
||||
for o, a in opts:
|
||||
if o in ('-h', '--help'):
|
||||
usage()
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 2361ee7133810599690dd52f483fdcd943366cd0 Mon Sep 17 00:00:00 2001
|
||||
From 8b1bbbb9a3659475367a6f58986ac8248576663b Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Fri, 10 Jan 2020 14:44:51 +0100
|
||||
Subject: [PATCH 10/33] hp-sendfax: avoid crash if python-reportlab is missing
|
||||
Subject: [PATCH] hp-sendfax: avoid crash if python-reportlab is missing
|
||||
|
||||
Avoids this crash:
|
||||
|
||||
@@ -35,5 +35,5 @@ index 4248907..3c3e880 100644
|
||||
|
||||
#
|
||||
--
|
||||
2.52.0
|
||||
2.24.1
|
||||
|
||||
|
||||
28
hp-setup-fix-python-crash-when-manually-importing-gz.patch
Normal file
28
hp-setup-fix-python-crash-when-manually-importing-gz.patch
Normal file
@@ -0,0 +1,28 @@
|
||||
From 216b15eb68bd5cacd26ff554e244fc4ea50a1acf Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Fri, 15 Aug 2025 23:10:44 +0200
|
||||
Subject: [PATCH 1/2] hp-setup: fix python crash when manually importing
|
||||
gzipped PPD
|
||||
|
||||
data read from gzip.GzipFile must be converted to a string, otherwise
|
||||
the subsequent regex match will cause a python stacktrace.
|
||||
---
|
||||
setup.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 2608f95..962909b 100755
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -552,7 +552,7 @@ else: # INTERACTIVE_MODE
|
||||
if os.path.exists(file_path) and os.path.isfile(file_path):
|
||||
|
||||
if file_path.endswith('.gz'):
|
||||
- nickname = gzip.GzipFile(file_path, 'r').read(4096)
|
||||
+ nickname = gzip.GzipFile(file_path, 'r').read(4096).decode("utf-8")
|
||||
else:
|
||||
nickname = open(file_path, 'r').read(4096)
|
||||
|
||||
--
|
||||
2.50.1
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 2092ec111169da87dde1be45f997e9cfd7311ab6 Mon Sep 17 00:00:00 2001
|
||||
From 10fe460cca9536dbb52c30fa8bec5c6a01e94ea0 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Fri, 15 Sep 2023 18:28:47 +0200
|
||||
Subject: [PATCH 09/33] hp_ipp.h: add missing prototypes
|
||||
Subject: [PATCH 09/19] hp_ipp.h: add missing prototypes
|
||||
|
||||
---
|
||||
protocol/hp_ipp.h | 6 ++++++
|
||||
@@ -32,5 +32,5 @@ index 032be9a..518d0ae 100644
|
||||
HPIPP_RESULT parseResponseHeader(char* header, int *content_length, int *chunked, int* header_size);
|
||||
HPIPP_RESULT prepend_http_header(raw_ipp *raw_request,const char *resource);
|
||||
--
|
||||
2.52.0
|
||||
2.42.0
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From f0c9ccc3a4b1e58b977eb831a311a3c5973ce7e2 Mon Sep 17 00:00:00 2001
|
||||
From e95a9cb2e946bec33d7f0afa04850f93ae258477 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Wed, 7 May 2025 15:53:46 +0200
|
||||
Subject: [PATCH 32/33] hpcups: fix compilation on SLE12
|
||||
Subject: [PATCH] hpcups: fix compilation on SLE12
|
||||
|
||||
SLE12-SP5 is not using C++11 by default, thus nullptr is not
|
||||
defined. NULL is used elsewhere in the file, so we can just
|
||||
@@ -24,5 +24,5 @@ index 6750684..7d397ed 100644
|
||||
}
|
||||
}
|
||||
--
|
||||
2.52.0
|
||||
2.49.0
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From dc200dc097ecff4b1573afcd76f2438754fffcd7 Mon Sep 17 00:00:00 2001
|
||||
From ca4af49f2979610ff2c6818ebd0072432417ba95 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Fri, 1 Jun 2018 17:09:31 +0200
|
||||
Subject: [PATCH 05/33] hpijs: avoid segfault in DJGenericVIP::DJGenericVIP()
|
||||
Subject: [PATCH] hpijs: avoid segfault in DJGenericVIP::DJGenericVIP()
|
||||
|
||||
DJGenericVIP::DJGenericVIP() doesn't treat an error from VerifyPenInfo() as
|
||||
fatal, but the superclass constructor DJ9xxVIP::DJ9xxVIP() does. This
|
||||
@@ -69,5 +69,5 @@ index b7e79dc..7228fcf 100644
|
||||
|
||||
if (!proto && IOMode.bDevID)
|
||||
--
|
||||
2.52.0
|
||||
2.17.0
|
||||
|
||||
|
||||
BIN
hpijs.1.gz
LFS
Normal file
BIN
hpijs.1.gz
LFS
Normal file
Binary file not shown.
@@ -1,17 +1,8 @@
|
||||
From 15c0c0a70812c6793b8d5b21f33d809c2ef586b0 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 17:57:27 +0100
|
||||
Subject: [PATCH 16/33] hplip 3.20.6 python includes
|
||||
|
||||
---
|
||||
configure.in | 36 +++++++++++++++++++++++-------------
|
||||
1 file changed, 23 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/configure.in b/configure.in
|
||||
index f1919cb..46e8ec3 100644
|
||||
Index: b/configure.in
|
||||
===================================================================
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -630,20 +630,31 @@ if test "$class_driver" = "no" && test "$hpijs_only_build" = "no" && test "$hpcu
|
||||
@@ -628,20 +628,31 @@ if test "$class_driver" = "no" && test "
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -55,7 +46,7 @@ index f1919cb..46e8ec3 100644
|
||||
if test "$class_driver" = "no" && test "$hpijs_only_build" = "no" && test "$lite_build" = "no" && test "$hpcups_only_build" = "no"; then
|
||||
AC_ARG_VAR([PYTHON], [Python interpreter/compiler command])
|
||||
AC_CHECK_PROGS(PYTHON,[python python3 python2])
|
||||
@@ -683,7 +694,6 @@ if test "$class_driver" = "no" && test "$hpijs_only_build" = "no" && test "$lite
|
||||
@@ -655,7 +666,6 @@ if test "$class_driver" = "no" && test "
|
||||
AS_IF([test "x$FOUND_HEADER" != "xyes"],
|
||||
[AC_MSG_ERROR([cannot find python-devel support], 6)])
|
||||
fi
|
||||
@@ -63,6 +54,3 @@ index f1919cb..46e8ec3 100644
|
||||
|
||||
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)])
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
||||
@@ -1,20 +1,11 @@
|
||||
From 2b10c4e48befdb14a1271929adc310eefdd080ed Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Wed, 7 May 2025 15:28:19 +0200
|
||||
Subject: [PATCH 29/33] hplip/sane: fix compilation with gcc 15
|
||||
|
||||
bugs.launchpad.net/hplip/+bug/2096650
|
||||
|
||||
src.fedoraproject.org/rpms/hplip/blob/f42/f/hplip-gcc15-stdc23.patch
|
||||
---
|
||||
scan/sane/ledmi.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/scan/sane/ledmi.h b/scan/sane/ledmi.h
|
||||
index a987c5d..484ff34 100644
|
||||
--- a/scan/sane/ledmi.h
|
||||
+++ b/scan/sane/ledmi.h
|
||||
@@ -162,7 +162,7 @@ struct ledm_session
|
||||
--- a/scan/sane/ledmi.h 2025-02-27 13:12:29.000000000 +0100
|
||||
+++ b/scan/sane/ledmi.h 2025-05-05 12:28:33.445527226 +0200
|
||||
@@ -162,7 +162,7 @@
|
||||
int bb_open(struct ledm_session*);
|
||||
int bb_close(struct ledm_session*);
|
||||
int bb_get_parameters(struct ledm_session*, SANE_Parameters*, int);
|
||||
@@ -23,6 +14,3 @@ index a987c5d..484ff34 100644
|
||||
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);
|
||||
--
|
||||
2.52.0
|
||||
|
||||
BIN
hplip-3.25.6.tar.gz
LFS
Normal file
BIN
hplip-3.25.6.tar.gz
LFS
Normal file
Binary file not shown.
11
hplip-3.25.6.tar.gz.asc
Normal file
11
hplip-3.25.6.tar.gz.asc
Normal file
@@ -0,0 +1,11 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2
|
||||
|
||||
iQEcBAABCAAGBQJoekszAAoJEF5OTSSjTs1XCjUH/3W/RawreKnt4IuIqUqHMTJn
|
||||
haeiPj/jdArhbxreCjvYk3Z91VXJ4n2pyVWAwhW8ZKmSzdubDOEUrSs1fiRLF1qe
|
||||
y/wmCSmDF+ZcQu7/QfLDhZQI7I7IOFKNGTNNlWh1z3HpnHqBywPusM8ej8EgEb76
|
||||
6tGLlNuo8ykFDAQNJAPCN/qexj/LUs+p/s4lhpkNa+A7OIhBmQkfwscHXXrhf67f
|
||||
slavMnkCKbccegOtd9+i2NggtwkJDeNqZfgq6J7yXSxAm8jJjdAgJkqLmc9Vkxku
|
||||
GuUkQffIlHeDKj6jKg8Og+oAeRShLf6rxlFIB/PedJ9bjbZwUZDHUd80dHlAFWU=
|
||||
=VrP+
|
||||
-----END PGP SIGNATURE-----
|
||||
BIN
hplip-3.25.8.tar.gz
LFS
BIN
hplip-3.25.8.tar.gz
LFS
Binary file not shown.
@@ -1,11 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2
|
||||
|
||||
iQEcBAABCAAGBQJpFcfJAAoJEF5OTSSjTs1XToAIAIso2g95VNLw5nzwCpXp0z65
|
||||
6QlWDTl7XEvU2hDzqqG2wzFTkphrHwjwt91GV26kRz9MR1QDdni6LT2nocq2mQkg
|
||||
Q+t1xbqtjeW6Tk4Tw4iAtJRl4VnocrMmVXLUI9HQistO+dhoW/uMtNO+9NdzSywj
|
||||
kpiiqTayZ/d5Tmsu1VEassK+9JRF1uu6zXTHzopYZX/sSYwDskno5RZY3atqyZQm
|
||||
XN5YeCm0jTofCHKx0h70vmS5zEvtBI0RxcHoUBEtWTBct+YWc0E4XqxugoMalS7A
|
||||
siXHF46IaC2d64HITN9ymP9E6sqxlDag6EMT8ZWEviHJkf23hYasx3dE0TQ+Rhc=
|
||||
=U5X+
|
||||
-----END PGP SIGNATURE-----
|
||||
@@ -1,38 +0,0 @@
|
||||
From 6ea289207f5805085bbe36f6e5d4cdb262717e02 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Thu, 23 Jan 2025 16:47:10 +0100
|
||||
Subject: [PATCH 30/33] hplip/base: Fix "Found No Section" error with python
|
||||
2.7.13
|
||||
|
||||
See https://bugs.launchpad.net/hplip/+bug/2095776
|
||||
---
|
||||
base/g.py | 13 +++++++++++--
|
||||
1 file changed, 11 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/base/g.py b/base/g.py
|
||||
index 123c73e..e659213 100644
|
||||
--- a/base/g.py
|
||||
+++ b/base/g.py
|
||||
@@ -137,8 +137,17 @@ class ConfigBase(object):
|
||||
except Exception as e:
|
||||
log.error(f"Reading file with read_file also failed. Error: {e}")
|
||||
except configparser.MissingSectionHeaderError:
|
||||
- print("")
|
||||
- log.error("Found No Section in %s. Please set the http proxy for root and try again." % self.filename)
|
||||
+ fp.close()
|
||||
+ # Workaround for lp#2095776: skip leading whitespace in plugin.conf
|
||||
+ from StringIO import StringIO
|
||||
+ t0 = open(self.filename, "r").read()
|
||||
+ t0 = t0[t0.find("["): -1]
|
||||
+ fp = StringIO(t0)
|
||||
+ try:
|
||||
+ self.conf.readfp(fp)
|
||||
+ except Exception as e:
|
||||
+ print("")
|
||||
+ log.error("Found No Section in %s. Please set the http proxy for root and try again." % self.filename)
|
||||
except (configparser.DuplicateOptionError):
|
||||
log.warn("Found Duplicate Entery in %s" % self.filename)
|
||||
self.CheckDuplicateEntries()
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 4aaaf3ce526ff27f7941631889f5edf7b2a1b044 Mon Sep 17 00:00:00 2001
|
||||
From 2a13a15b7f533606667e8586ff5ed736f038f2e8 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Thu, 23 Jan 2025 12:47:43 +0100
|
||||
Subject: [PATCH 24/33] hplip/base: fix error in ConfigBase handling
|
||||
Subject: [PATCH 1/2] hplip/base: fix error in ConfigBase handling
|
||||
|
||||
The code in question was apparently meant to handle the replacement
|
||||
of ConfigParser.readfp() by ConfigParser.read_file(). But the code
|
||||
@@ -12,7 +12,7 @@ again.
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/base/g.py b/base/g.py
|
||||
index 445372d..123c73e 100644
|
||||
index 0d1c986..c1f5d24 100644
|
||||
--- a/base/g.py
|
||||
+++ b/base/g.py
|
||||
@@ -128,7 +128,7 @@ class ConfigBase(object):
|
||||
@@ -25,5 +25,5 @@ index 445372d..123c73e 100644
|
||||
log.error(f"Error: {e}. Retrying with read_file")
|
||||
try:
|
||||
--
|
||||
2.52.0
|
||||
2.48.1
|
||||
|
||||
|
||||
32
hplip-base-replace-f-string-with-string.format-for-p.patch
Normal file
32
hplip-base-replace-f-string-with-string.format-for-p.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
From f1fef1ed07951fbc6e81d90ab43172974979eeeb Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Wed, 22 Jan 2025 17:44:04 +0100
|
||||
Subject: [PATCH 2/2] hplip/base: replace f-string with string.format for
|
||||
python2 compatibility
|
||||
|
||||
---
|
||||
base/g.py | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/base/g.py b/base/g.py
|
||||
index c1f5d24..a3b6191 100644
|
||||
--- a/base/g.py
|
||||
+++ b/base/g.py
|
||||
@@ -130,12 +130,12 @@ class ConfigBase(object):
|
||||
try:
|
||||
self.conf.readfp(fp)
|
||||
except AttributeError as e:
|
||||
- log.error(f"Error: {e}. Retrying with read_file")
|
||||
+ log.error("Error: {0}. Retrying with read_file".format(e))
|
||||
try:
|
||||
# Attempting to use read_file as a fallback
|
||||
self.conf.read_file(fp)
|
||||
except Exception as e:
|
||||
- log.error(f"Reading file with read_file also failed. Error: {e}")
|
||||
+ log.error("Reading file with read_file also failed. Error: {0}".format(e))
|
||||
except configparser.MissingSectionHeaderError:
|
||||
print("")
|
||||
log.error("Found No Section in %s. Please set the http proxy for root and try again." % self.filename)
|
||||
--
|
||||
2.48.1
|
||||
|
||||
13
hplip-change-pgp-server.patch
Normal file
13
hplip-change-pgp-server.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
Index: hplip-3.19.6/base/validation.py
|
||||
===================================================================
|
||||
--- hplip-3.19.6.orig/base/validation.py 2019-06-26 15:07:10.000000000 +0200
|
||||
+++ hplip-3.19.6/base/validation.py 2019-10-16 09:53:51.966435988 +0200
|
||||
@@ -42,7 +42,7 @@ class DigiSign_Verification(object):
|
||||
|
||||
|
||||
class GPG_Verification(DigiSign_Verification):
|
||||
- def __init__(self, pgp_site = 'pgp.mit.edu', key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9):
|
||||
+ def __init__(self, pgp_site = 'pgp.surf.nl', key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9):
|
||||
self.__pgp_site = pgp_site
|
||||
self.__key = key
|
||||
self.__gpg = utils.which('gpg',True)
|
||||
@@ -1,62 +0,0 @@
|
||||
From 465a9cccbc48fb6f7b35d89851e0237556bd76da Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 19 Aug 2025 12:06:17 +0200
|
||||
Subject: [PATCH 27/33] hplip: fix driver probing using avahi
|
||||
|
||||
- _printer._tcp doesn't work for my printer (HP Smart Tank 7300 series).
|
||||
mdns.py uses _pdl-datastream._tcp, which works.
|
||||
- my printer sends `usb_MDL` property, which mdns.py accepts as alternative
|
||||
for `ty`.
|
||||
- "bonjour" search protocol exists nowhere else in the code. "avahi" does.
|
||||
---
|
||||
base/avahi.py | 8 ++++++--
|
||||
probe.py | 4 ++--
|
||||
2 files changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/base/avahi.py b/base/avahi.py
|
||||
index 51795dd..b82a089 100755
|
||||
--- a/base/avahi.py
|
||||
+++ b/base/avahi.py
|
||||
@@ -37,6 +37,9 @@ def detectNetworkDevices(ttl=4, timeout=10):
|
||||
# Obtain all the resolved services which has service type '_printer._tcp' from avahi-browse
|
||||
p = Popen(['avahi-browse', '-kprt', '_printer._tcp'], stdout=PIPE)
|
||||
output = to_string_utf8(p.communicate()[0])
|
||||
+ p = Popen(['avahi-browse', '-kprt', '_pdl-datastream._tcp'], stdout=PIPE)
|
||||
+ output += to_string_utf8(p.communicate()[0])
|
||||
+
|
||||
for line in output.splitlines():
|
||||
if line.startswith('='):
|
||||
bits = line.split(';')
|
||||
@@ -55,11 +58,12 @@ def detectNetworkDevices(ttl=4, timeout=10):
|
||||
details = bits[9].split('" "')
|
||||
for item in details:
|
||||
key, value = item.split('=', 1)
|
||||
- if key == 'ty':
|
||||
+ if key == 'ty' or key == 'usb_MDL':
|
||||
y['mdns'] = value
|
||||
y['device1'] = "MFG:Hewlett-Packard;MDL:%s;CLS:PRINTER;" % value
|
||||
break
|
||||
- found_devices[y['ip']] = y
|
||||
+ if y['ip'] not in found_devices:
|
||||
+ found_devices[y['ip']] = y
|
||||
#log.debug("ip=%s hn=%s ty=%s" %(ip,y['hn'], y['mdns']))
|
||||
except socket.gaierror:
|
||||
pass
|
||||
diff --git a/probe.py b/probe.py
|
||||
index 82e5de9..3bf3ba8 100755
|
||||
--- a/probe.py
|
||||
+++ b/probe.py
|
||||
@@ -93,8 +93,8 @@ try:
|
||||
elif o in ('-m', '--method'):
|
||||
method = a.lower().strip()
|
||||
|
||||
- if method not in ('slp', 'mdns', 'bonjour'):
|
||||
- mod.usage(error_msg=["Invalid network search protocol name. Must be 'slp' or 'mdns'."])
|
||||
+ if method not in ('slp', 'mdns', 'avahi'):
|
||||
+ mod.usage(error_msg=["Invalid network search protocol name. Must be 'slp', 'mdns', or 'avahi'."])
|
||||
else:
|
||||
bus = ['net']
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@@ -1,93 +0,0 @@
|
||||
From 29b5c15877f56c01992af5dd28a9ba6c896d5927 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 12:10:38 +0100
|
||||
Subject: [PATCH 31/33] hplip: fix handling of ConfigParser().readfp() vs.
|
||||
read_file()
|
||||
|
||||
hplip 3.24.4 introduced code to handle the removal of the
|
||||
ConfigParser.readfp() method in python. But this code was incorrect.
|
||||
By trying to catch this with an exception, the handling of other possible
|
||||
exceptions (configparser.DuplicateOptionError) was broken, because
|
||||
these exceptions wouldn't be caught any more.
|
||||
|
||||
It's better to simply check for the availability of the "readfp"
|
||||
attribute.
|
||||
|
||||
Moreover, fix the readfp()/read_file() calls in devmgr5.py as well.
|
||||
|
||||
Signed-off-by: Martin Wilck <mwilck@suse.com>
|
||||
---
|
||||
base/g.py | 15 +++++++--------
|
||||
ui4/devmgr5.py | 5 ++++-
|
||||
ui5/devmgr5.py | 5 ++++-
|
||||
3 files changed, 15 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/base/g.py b/base/g.py
|
||||
index e659213..b173985 100644
|
||||
--- a/base/g.py
|
||||
+++ b/base/g.py
|
||||
@@ -128,14 +128,10 @@ class ConfigBase(object):
|
||||
try:
|
||||
fp = open(self.filename, "r")
|
||||
try:
|
||||
- self.conf.readfp(fp)
|
||||
- except AttributeError as e:
|
||||
- log.error(f"Error: {e}. Retrying with read_file")
|
||||
- try:
|
||||
- # Attempting to use read_file as a fallback
|
||||
+ if hasattr(self.conf, "readfp"):
|
||||
+ self.conf.readfp(fp)
|
||||
+ else:
|
||||
self.conf.read_file(fp)
|
||||
- except Exception as e:
|
||||
- log.error(f"Reading file with read_file also failed. Error: {e}")
|
||||
except configparser.MissingSectionHeaderError:
|
||||
fp.close()
|
||||
# Workaround for lp#2095776: skip leading whitespace in plugin.conf
|
||||
@@ -144,7 +140,10 @@ class ConfigBase(object):
|
||||
t0 = t0[t0.find("["): -1]
|
||||
fp = StringIO(t0)
|
||||
try:
|
||||
- self.conf.readfp(fp)
|
||||
+ if hasattr(self.conf, "readfp"):
|
||||
+ self.conf.readfp(fp)
|
||||
+ else:
|
||||
+ self.conf.read_file(fp)
|
||||
except Exception as e:
|
||||
print("")
|
||||
log.error("Found No Section in %s. Please set the http proxy for root and try again." % self.filename)
|
||||
diff --git a/ui4/devmgr5.py b/ui4/devmgr5.py
|
||||
index fc28445..d33fd06 100644
|
||||
--- a/ui4/devmgr5.py
|
||||
+++ b/ui4/devmgr5.py
|
||||
@@ -1024,7 +1024,10 @@ class DevMgr5(QMainWindow, Ui_MainWindow):
|
||||
|
||||
hplip_conf = configparser.ConfigParser()
|
||||
fp = open("/etc/hp/hplip.conf", "r")
|
||||
- hplip_conf.readfp(fp)
|
||||
+ if hasattr(hplip_conf, "readfp"):
|
||||
+ hplip_conf.readfp(fp)
|
||||
+ else:
|
||||
+ hplip_conf.read_file(fp)
|
||||
fp.close()
|
||||
|
||||
try:
|
||||
diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py
|
||||
index 8a19840..0c3f1e4 100644
|
||||
--- a/ui5/devmgr5.py
|
||||
+++ b/ui5/devmgr5.py
|
||||
@@ -1075,7 +1075,10 @@ class DevMgr5(Ui_MainWindow_Derived, Ui_MainWindow, QMainWindow):
|
||||
|
||||
hplip_conf = configparser.ConfigParser()
|
||||
fp = open("/etc/hp/hplip.conf", "r")
|
||||
- hplip_conf.read_file(fp)
|
||||
+ if hasattr(hplip_conf, "readfp"):
|
||||
+ hplip_conf.readfp(fp)
|
||||
+ else:
|
||||
+ hplip_conf.read_file(fp)
|
||||
fp.close()
|
||||
|
||||
try:
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
From 0045bcf5646e6e24a7f1701dc91be722a93bfb73 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 19 Aug 2025 23:38:24 +0200
|
||||
Subject: [PATCH 28/33] hplip: fix python crash in avahi.py
|
||||
|
||||
The avahi search method may crash on MDNS records that have
|
||||
an empty "details" field (field 9). This can happen e.g. for
|
||||
existing shared local printers advertized by cups.
|
||||
---
|
||||
base/avahi.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/base/avahi.py b/base/avahi.py
|
||||
index b82a089..f168585 100755
|
||||
--- a/base/avahi.py
|
||||
+++ b/base/avahi.py
|
||||
@@ -43,7 +43,7 @@ def detectNetworkDevices(ttl=4, timeout=10):
|
||||
for line in output.splitlines():
|
||||
if line.startswith('='):
|
||||
bits = line.split(';')
|
||||
- if bits[2] == 'IPv4' and len(bits[7].split('.')) == 4:
|
||||
+ if bits[2] == 'IPv4' and len(bits[7].split('.')) == 4 and bits[9] != "":
|
||||
ip = bits[7]
|
||||
port = bits[8]
|
||||
# Run through the offered addresses and see if we have a bound local
|
||||
--
|
||||
2.52.0
|
||||
|
||||
83
hplip-hardcode-new-signing-key-AC69536A2CF3A243.patch
Normal file
83
hplip-hardcode-new-signing-key-AC69536A2CF3A243.patch
Normal file
@@ -0,0 +1,83 @@
|
||||
From b862d309e533c3272795119bfb706a1cc11d4727 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Fri, 15 Aug 2025 23:12:13 +0200
|
||||
Subject: [PATCH 2/2] hplip: hardcode new signing key AC69536A2CF3A243
|
||||
|
||||
hplip as introduced a new GPG key with fingerprint for 3.25.6:
|
||||
|
||||
82FF A7C6 AA74 11D9 34BD E173 AC69 536A 2CF3 A243
|
||||
|
||||
See https://developers.hp.com/hp-linux-imaging-and-printing/hplipDigitalCertificate.html
|
||||
|
||||
This key doesn't seem to be on public keyservers yet.
|
||||
For now, simply hardcode the public key in hplip. It's the same
|
||||
key with which the hplip code is signed, anyway.
|
||||
---
|
||||
base/validation.py | 50 +++++++++++++++++++++++++++++++++++++++++++---
|
||||
1 file changed, 47 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/base/validation.py b/base/validation.py
|
||||
index d555f12..a2e5540 100644
|
||||
--- a/base/validation.py
|
||||
+++ b/base/validation.py
|
||||
@@ -83,10 +83,54 @@ class GPG_Verification(DigiSign_Verification):
|
||||
|
||||
def __acquire_gpg_key(self):
|
||||
|
||||
- cmd = '%s --homedir %s --no-permission-warning --keyserver %s --recv-keys 0x%X' \
|
||||
- % (self.__gpg, self.__gpg_dir, self.__pgp_site, self.__key)
|
||||
+ key_AC69536A2CF3A243 = """
|
||||
+-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
- log.info("Receiving digital keys: %s" % cmd)
|
||||
+mQENBGhe8voBCAC/FDH1D4Y7d+8YbEjSb0jFROcpQrTBvB59tvTetm1YKi3Zm6Im
|
||||
+BHqHaOLRsJk28lmv0JKPAQj52ybXvTgFwsbjFaOkA6X6y6jNdjzRXLMSGQxY1HMb
|
||||
+0+ZwtLqEm3yWKsVuDHJ/8AsXc5uLT7q1v5snCWIzzapKD2UIcNL9nUkq1TGAD4xh
|
||||
+sjoBy247ofnjZq921QJOod5GOhZfskISU7wfWwwSPl6NbOc5cK4Qpo2PMA/r38+m
|
||||
+Y2svwS6u8XnljRU44txp76pNEFMYwGHsiaIviqTA/UXeib3yuN5NY7w2iXWMSqBs
|
||||
+b0L9RWFCaxt/ZjNmG1qvo+MdGCSqs3E6wZzDABEBAAG0NEhQTElQIChIUCBMaW51
|
||||
+eCBJbWFnaW5nIGFuZCBQcmludGluZykgPGhwbGlwQGhwLmNvbT6JATkEEwECACMF
|
||||
+Amhe8voCGy8HCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCsaVNqLPOiQ2Lt
|
||||
+B/950TaQebUviamSc+R+65jM6u2janmEAD0m9BMveUBNwMkAp4MycKuVEw04IPCa
|
||||
+XKUhdQJw0a19SgqKjy3RYoksgYfpKCrQAN6iyNIjIvbm51Ui4VyQXIGDi/ytu6fW
|
||||
+wQZG0mlc0BboZWFniERP17jDPVHLTrbERByvdr+ytPVzsnRGEURQpl+dIRA/V4jx
|
||||
+euzcTwJ92pJDg/l0kenXv4JgZlOlsB60wFqFO2zWXiplpgprIvrOfpoynfYjTu96
|
||||
+3stRD3z+PoEa9llWRMTuooHPLC1+lknuQxO+xeNMT9q68zUanpgp6K82ZH1ZDjaP
|
||||
+ec+xtHmbhNxz1M724/3OLU3OuQENBGhe8voBCADRlC7StIqnYRIw9rHKDY5eSMht
|
||||
+6y8hrO7Fmdb5+wdOgLTNXuEaQZxgU1w+CdWUFUxUf3V/NBojHM0I29GuIcIRByKX
|
||||
+QmqHNAtfNnj8hsFFiU0Dmail4oPfwdXOgh5vo65sfYK+tvJH4SrYYh55DN/j4a3H
|
||||
+sPEZ0rxG8kM3s7AyXU1gEotPUsrv8k255oEPD1OdFrKZ5urcQ4dunvbcGQ71Qjw1
|
||||
+dYPtUv9iPnxxXTA9X5aXqCwlTeeL4jQSrJa5Rr8z/gpbFynLrgkV/FUzEcRuQ4gs
|
||||
+POhcDgsGLPBOlFatoHU3Zk1HrflNSiV+kE7Uy9Uf8FIR9e2BIU8mtvj8YLc1ABEB
|
||||
+AAGJAj4EGAECAAkFAmhe8voCGy4BKQkQrGlTaizzokPAXSAEGQECAAYFAmhe8voA
|
||||
+CgkQXk5NJKNOzVeOdQgAk3Zp0eTuzxDZn9QQefM/hxFI2bxR2TNzV7QadphvwmRW
|
||||
+9G1vnQPosTNs2ock23DQiBayh5oYExF2Y34hr8/GAwfViAKo/fzIZYzF9GosscRV
|
||||
+R9SbeHEVQ8GZuXa9ifIv9L6fPvP+AsDA76stXGPWpDCGHHcP1eZ3jmDsoxucEDKK
|
||||
+UgNwL8XSZUbjusrEJJtrNu0UTToo+dMF//9xsIWnsWJ16ypVNSAXCTlyQO8fBSEO
|
||||
+m6+d1mAdMRd64o9QBu1iYB0DCotLE/gPdKOthIUElNQXey6jYUpg0kRqAvPxd1DH
|
||||
+wZ+/MphQXtdIG3Sb4ogB/7o6R6iqOdp5lrCwORWmacgSB/oCVB8OVY0GqP1qYj/+
|
||||
+tup+s8esPsJRCOlv5bPVGhzVTgCgBQWK4wsp57grAiptseBDoVF37HY3vRi/ldy0
|
||||
+SoISK1udxR7j/cy6Bzsv5xB2UR2K5uaYW/MTd+RkncOT5rHijyrrYBLJvhpnvhzw
|
||||
+H/fm+XRHQPEu+i3tsMgNrZ4No8Nxa/i+0lpNS1+TbtcPt27RFC+1F4P7Ff9xFSrL
|
||||
+nkm8j4hYZzG5s8K3TvDGiosqLGcMsVVXt8lFFdC1Pxd1TuLiUM7IMnPweiAjlfM0
|
||||
+onZMYpdNUWSPht/2v/UQLVe0U9Y2lEnYiqY+IXqnWT7N/0d1Zt+K+7IfZsJt4Uio
|
||||
+6saq
|
||||
+=EWRb
|
||||
+-----END PGP PUBLIC KEY BLOCK-----
|
||||
+"""
|
||||
+
|
||||
+ import tempfile
|
||||
+ tf = tempfile.NamedTemporaryFile(mode='w', delete=False, encoding='utf-8')
|
||||
+ tf.write(key_AC69536A2CF3A243)
|
||||
+ tf.close()
|
||||
+
|
||||
+ cmd = '%s --homedir %s --import %s' \
|
||||
+ % (self.__gpg, self.__gpg_dir, tf.name)
|
||||
+
|
||||
+ log.info("Importing digital keys: %s" % cmd)
|
||||
status, output = utils.run(cmd)
|
||||
log.debug(output)
|
||||
|
||||
--
|
||||
2.50.1
|
||||
|
||||
@@ -1,15 +1,5 @@
|
||||
From 1bfe28f76b82fd0627a6ad7185997fbcd973a4b5 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 18:01:09 +0100
|
||||
Subject: [PATCH 23/33] hplip: hpaio: avoid C99 violations
|
||||
|
||||
---
|
||||
scan/sane/hpaio.c | 2 +-
|
||||
scan/sane/orblite.c | 23 +++++++++++++----------
|
||||
2 files changed, 14 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c
|
||||
index 087efb1..2e52e19 100644
|
||||
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_
|
||||
@@ -17,12 +7,12 @@ index 087efb1..2e52e19 100644
|
||||
DevDiscovery(localOnly);
|
||||
*deviceList = (const SANE_Device **)DeviceList;
|
||||
- SANE_Device*** devList;
|
||||
+ const SANE_Device*** devListi = NULL;
|
||||
+ 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 490ad82..177f5d4 100644
|
||||
index 2eb7aba..4eaa468 100644
|
||||
--- a/scan/sane/orblite.c
|
||||
+++ b/scan/sane/orblite.c
|
||||
@@ -64,28 +64,28 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
|
||||
@@ -103,7 +93,7 @@ index 490ad82..177f5d4 100644
|
||||
},
|
||||
#ifdef NOTDEF
|
||||
// default template
|
||||
@@ -253,6 +253,7 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
|
||||
@@ -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;
|
||||
@@ -111,7 +101,7 @@ index 490ad82..177f5d4 100644
|
||||
|
||||
|
||||
// Allocate handle, set all handle values to zero
|
||||
@@ -284,7 +285,9 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
|
||||
@@ -305,7 +306,9 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
|
||||
if (stat != SANE_STATUS_GOOD)
|
||||
return stat;
|
||||
|
||||
@@ -122,6 +112,3 @@ index 490ad82..177f5d4 100644
|
||||
if (stat == SANE_STATUS_GOOD)
|
||||
*handle = g_handle;
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@@ -1,16 +1,7 @@
|
||||
From 2833f857a2cf664071a8745d3c40b61581ce1e55 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 17:57:26 +0100
|
||||
Subject: [PATCH 08/33] hplip: misc missing includes and definitions
|
||||
|
||||
---
|
||||
scan/sane/http.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/scan/sane/http.c b/scan/sane/http.c
|
||||
index 800df91..ae5edf4 100644
|
||||
--- a/scan/sane/http.c
|
||||
+++ b/scan/sane/http.c
|
||||
Index: hplip-3.20.9/scan/sane/http.c
|
||||
===================================================================
|
||||
--- hplip-3.20.9.orig/scan/sane/http.c
|
||||
+++ hplip-3.20.9/scan/sane/http.c
|
||||
@@ -33,6 +33,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
@@ -19,6 +10,3 @@ index 800df91..ae5edf4 100644
|
||||
#include <string.h>
|
||||
#include <syslog.h>
|
||||
#include <ctype.h>
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From c15938665bca226acd1af751d885e58d41d6298b Mon Sep 17 00:00:00 2001
|
||||
From eab655e0f8ab7c7520e0c60970d74e51b25c2061 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Fri, 15 Sep 2023 18:31:38 +0200
|
||||
Subject: [PATCH 18/33] hplip: missing drivers
|
||||
Subject: [PATCH 18/18] hplip: missing drivers
|
||||
|
||||
---
|
||||
cups_drv.inc | 2 +
|
||||
@@ -10,10 +10,10 @@ Subject: [PATCH 18/33] hplip: missing drivers
|
||||
3 files changed, 486 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/cups_drv.inc b/cups_drv.inc
|
||||
index 4a77af6..6612730 100644
|
||||
index 8a33bfe..dc38978 100644
|
||||
--- a/cups_drv.inc
|
||||
+++ b/cups_drv.inc
|
||||
@@ -416,6 +416,7 @@ cups_ppd_printers = \
|
||||
@@ -414,6 +414,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 \
|
||||
@@ -21,7 +21,7 @@ index 4a77af6..6612730 100644
|
||||
ppd/hpcups/hp-laserjet_m1005.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_m109-m112.ppd.gz \
|
||||
@@ -534,6 +535,7 @@ cups_ppd_printers = \
|
||||
@@ -531,6 +532,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 \
|
||||
@@ -30,7 +30,7 @@ index 4a77af6..6612730 100644
|
||||
ppd/hpcups/hp-laserjet_tank_1020.ppd.gz \
|
||||
ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
|
||||
diff --git a/data/models/models.dat b/data/models/models.dat
|
||||
index faea8bc..aecd54a 100644
|
||||
index a567fdd..ed89569 100644
|
||||
--- a/data/models/models.dat
|
||||
+++ b/data/models/models.dat
|
||||
@@ -2104,7 +2104,7 @@ usb-pid=411
|
||||
@@ -546,10 +546,10 @@ index faea8bc..aecd54a 100644
|
||||
align-type=0
|
||||
clean-type=0
|
||||
diff --git a/prnt/drv/hpcups.drv.in b/prnt/drv/hpcups.drv.in
|
||||
index 5e9730b..8865213 100644
|
||||
index 2829168..3c1377a 100644
|
||||
--- a/prnt/drv/hpcups.drv.in
|
||||
+++ b/prnt/drv/hpcups.drv.in
|
||||
@@ -23304,6 +23304,14 @@ Group "RLT/HP Real Life Technologies"
|
||||
@@ -23107,6 +23107,14 @@ Group "RLT/HP Real Life Technologies"
|
||||
Attribute "Product" "" "(HP LaserJet Professional p1102 Printer)"
|
||||
Attribute "Product" "" "(HP LaserJet Professional p1102s Printer)"
|
||||
}
|
||||
@@ -564,7 +564,7 @@ index 5e9730b..8865213 100644
|
||||
{
|
||||
ModelName "HP LaserJet Professional p1106"
|
||||
Attribute "NickName" "" "HP LaserJet Professional p1106, hpcups $Version"
|
||||
@@ -23738,6 +23746,14 @@ Group "RLT/HP Real Life Technologies"
|
||||
@@ -23541,6 +23549,14 @@ Group "RLT/HP Real Life Technologies"
|
||||
PCFileName "hp-laserjet_cp1025nw.ppd"
|
||||
Attribute "Product" "" "(HP LaserJet Pro cp1025nw Color Printer Series)"
|
||||
}
|
||||
@@ -580,5 +580,5 @@ index 5e9730b..8865213 100644
|
||||
} // End LJZjsColor (for proprietary plugin)
|
||||
|
||||
--
|
||||
2.52.0
|
||||
2.43.0
|
||||
|
||||
|
||||
@@ -1,35 +1,8 @@
|
||||
From ff0ea4370845a314a32730f76f40cc7ff960c7ee Mon Sep 17 00:00:00 2001
|
||||
From: Zdenek Dohnal <zdohnal@redhat.com>
|
||||
Date: Fri, 15 Aug 2025 23:36:43 +0200
|
||||
Subject: [PATCH 26/33] URLopener was removed in Python 3.14 and hplip
|
||||
tracebacks without it
|
||||
|
||||
URLopener was removed in Python 3.14 in Fedora 43, which causes several hplip scripts to traceback.
|
||||
|
||||
For now I've applied the attached patch to remove URLopener, since hplip modules look like they don't use the methods from the class, but rather the method implemented in class LocalOpener, which inherits from URLOpener - major scripts like hp-plugin, hp-setup and hp-toolbox look to be working with the fix.
|
||||
|
||||
It would be great if URLopener was removed from hplip project and replaced if required - Fedora will try the attached patch for now to make hplip working to some extent in Fedora 43.
|
||||
|
||||
Traceback example:
|
||||
|
||||
/usr/share/hplip/prnt/cups.py:699: SyntaxWarning: 'return' in a 'finally' block
|
||||
return fax_ppd,expected_fax_ppd_name, nick
|
||||
Traceback (most recent call last):
|
||||
File "/usr/bin/hp-plugin", line 41, in <module>
|
||||
from base import device, utils, tui, module, services
|
||||
File "/usr/share/hplip/base/device.py", line 2691, in <module>
|
||||
class LocalOpener(urllib_request.URLopener):
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
AttributeError: module 'urllib.request' has no attribute 'URLopener'
|
||||
---
|
||||
base/device.py | 18 +++++++++---------
|
||||
1 file changed, 9 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/base/device.py b/base/device.py
|
||||
index d381363..ef52359 100644
|
||||
index 2fdb29c..ca0d97e 100644
|
||||
--- a/base/device.py
|
||||
+++ b/base/device.py
|
||||
@@ -2525,9 +2525,9 @@ Content-length: %d\r
|
||||
@@ -2526,9 +2526,9 @@ Content-length: %d\r
|
||||
data = None
|
||||
|
||||
log.debug("Opening: %s" % url2)
|
||||
@@ -41,7 +14,7 @@ index d381363..ef52359 100644
|
||||
|
||||
except Error:
|
||||
log.error("Status read failed: %s" % url2)
|
||||
@@ -2547,7 +2547,7 @@ Content-length: %d\r
|
||||
@@ -2548,7 +2548,7 @@ Content-length: %d\r
|
||||
try:
|
||||
url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url)
|
||||
data = self
|
||||
@@ -50,7 +23,7 @@ index d381363..ef52359 100644
|
||||
try:
|
||||
if footer:
|
||||
return opener.open_hp(url2, data, footer)
|
||||
@@ -2562,7 +2562,7 @@ Content-length: %d\r
|
||||
@@ -2563,7 +2563,7 @@ Content-length: %d\r
|
||||
try:
|
||||
url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url)
|
||||
data = self
|
||||
@@ -59,7 +32,7 @@ index d381363..ef52359 100644
|
||||
try:
|
||||
if footer:
|
||||
return opener.open_hp(url2, data, footer)
|
||||
@@ -2579,7 +2579,7 @@ Content-length: %d\r
|
||||
@@ -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
|
||||
@@ -68,7 +41,7 @@ index d381363..ef52359 100644
|
||||
try:
|
||||
if footer:
|
||||
return opener.open_hp(url2, data, footer)
|
||||
@@ -2687,7 +2687,7 @@ Content-length: %d\r
|
||||
@@ -2688,7 +2688,7 @@ Content-length: %d\r
|
||||
|
||||
|
||||
# URLs: hp:/usb/HP_LaserJet_3050?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
|
||||
@@ -77,7 +50,7 @@ index d381363..ef52359 100644
|
||||
def open_hp(self, url, dev):
|
||||
log.debug("open_hp(%s)" % url)
|
||||
|
||||
@@ -2717,7 +2717,7 @@ class LocalOpener(urllib_request.URLopener):
|
||||
@@ -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
|
||||
@@ -86,7 +59,7 @@ index d381363..ef52359 100644
|
||||
def open_hp(self, url, dev, foot=""):
|
||||
log.debug("open_hp(%s)" % url)
|
||||
|
||||
@@ -2743,7 +2743,7 @@ class LocalOpenerEWS_LEDM(urllib_request.URLopener):
|
||||
@@ -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
|
||||
@@ -95,7 +68,7 @@ index d381363..ef52359 100644
|
||||
def open_hp(self, url, dev, foot=""):
|
||||
log.debug("open_hp(%s)" % url)
|
||||
|
||||
@@ -2770,7 +2770,7 @@ class LocalOpener_LEDM(urllib_request.URLopener):
|
||||
@@ -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
|
||||
@@ -104,6 +77,3 @@ index d381363..ef52359 100644
|
||||
def open_hp(self, url, dev, foot=""):
|
||||
log.debug("open_hp(%s)" % url)
|
||||
match_obj = http_pat_url.search(url)
|
||||
--
|
||||
2.52.0
|
||||
|
||||
11
hplip-orblite-return-null.diff
Normal file
11
hplip-orblite-return-null.diff
Normal file
@@ -0,0 +1,11 @@
|
||||
diff -ur hplip-3.19.3-orig/scan/sane/orblite.c hplip-3.19.3/scan/sane/orblite.c
|
||||
--- hplip-3.19.3-orig/scan/sane/orblite.c 2019-03-14 10:28:56.000000000 +0100
|
||||
+++ hplip-3.19.3/scan/sane/orblite.c 2019-04-12 18:59:07.734202665 +0200
|
||||
@@ -331,6 +331,7 @@
|
||||
return &g_handle->Options[option];
|
||||
}
|
||||
//return g_handle->bb_orblite_get_option_descriptor(g_handle, option);
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
From f10bf02187e7e2069bc401a0146a9c9deeec686f Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 17:57:27 +0100
|
||||
Subject: [PATCH 14/33] hplip: orblite: return null
|
||||
|
||||
---
|
||||
scan/sane/orblite.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c
|
||||
index ba86640..87c4de8 100644
|
||||
--- a/scan/sane/orblite.c
|
||||
+++ b/scan/sane/orblite.c
|
||||
@@ -331,6 +331,7 @@ if (option >= optCount && option < optLast)
|
||||
return &g_handle->Options[option];
|
||||
}
|
||||
//return g_handle->bb_orblite_get_option_descriptor(g_handle, option);
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
From 172b9b7b4fc55233015202f5d9a467674e8dcb3f Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 17:57:28 +0100
|
||||
Subject: [PATCH 19/33] hplip: pserror c99
|
||||
prnt/pserror.c: Replace an implicit int with an explicit int
|
||||
|
||||
---
|
||||
prnt/hpps/pserror.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>
|
||||
|
||||
diff --git a/prnt/hpps/pserror.c b/prnt/hpps/pserror.c
|
||||
index 114d7e1..493b49c 100644
|
||||
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 */
|
||||
@@ -20,6 +15,3 @@ index 114d7e1..493b49c 100644
|
||||
char msgbuf[MAX_MESSAGE] ; /* buffer in which to put the message */
|
||||
char *bufptr = msgbuf ; /* message buffer pointer */
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
||||
@@ -1,17 +1,7 @@
|
||||
From 4ce96ef1d4ec67f6032b4e8e31839456b71b0a7e Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 17:57:27 +0100
|
||||
Subject: [PATCH 13/33] hplip: remove imageprocessor
|
||||
|
||||
---
|
||||
Makefile.am | 14 ++------------
|
||||
1 file changed, 2 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 5381a24..a03b2bf 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -167,7 +167,7 @@ if !HPLIP_CLASS_DRIVER
|
||||
diff -ur hplip-3.21.4.orig/Makefile.am hplip-3.21.4/Makefile.am
|
||||
--- hplip-3.21.4.orig/Makefile.am 2021-05-06 10:39:14.000000000 +0200
|
||||
+++ hplip-3.21.4/Makefile.am 2021-06-16 09:19:42.354489830 +0200
|
||||
@@ -167,7 +167,7 @@
|
||||
dist_hplip_SCRIPTS = hpssd.py __init__.py hpdio.py
|
||||
endif #HPLIP_CLASS_DRIVER
|
||||
|
||||
@@ -20,7 +10,7 @@ index 5381a24..a03b2bf 100644
|
||||
|
||||
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
|
||||
@@ -598,7 +598,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp
|
||||
@@ -595,7 +595,7 @@
|
||||
prnt/hpcups/ImageProcessor.h
|
||||
|
||||
hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
|
||||
@@ -29,7 +19,7 @@ index 5381a24..a03b2bf 100644
|
||||
#else
|
||||
#hpcupsdir = $(cupsfilterdir)
|
||||
#hpcups_PROGRAMS = hpcups
|
||||
@@ -696,16 +696,6 @@ endif #HPLIP_CLASS_DRIVER
|
||||
@@ -685,16 +685,6 @@
|
||||
|
||||
install-data-hook:
|
||||
if HPLIP_BUILD
|
||||
@@ -46,6 +36,3 @@ index 5381a24..a03b2bf 100644
|
||||
if [ -d "/usr/share/ipp-usb/quirks/" ]; then \
|
||||
echo "ipp-usb directory exists"; \
|
||||
cp prnt/ipp-usb/HPLIP.conf /usr/share/ipp-usb/quirks/ ; \
|
||||
--
|
||||
2.52.0
|
||||
|
||||
@@ -2,5 +2,8 @@ from Config import *
|
||||
|
||||
addFilter("arch-dependent-file-in-usr-share")
|
||||
# Ignore any duplicate files
|
||||
addFilter("files-duplicate .*/hplip/.*/__init__.py")
|
||||
addFilter("files-duplicate .*/hplip/.*/__init__.py")
|
||||
addFilter("files-duplicate .*/hplip/*/__init__.*pyc")
|
||||
addFilter("files-duplicate .*/hplip/.*/__pycache__/__init__.*.pyc")
|
||||
#
|
||||
addFilter("non-executable-script /usr/share/hplip/.*")
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
From c7421d6de605b1ebbef5664551b33ed0d4db60fd Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 17:57:28 +0100
|
||||
Subject: [PATCH 20/33] hplip: scan-hpaio-include
|
||||
scam/sane/hpaio.c: Include orblite.h for more function prototypes
|
||||
|
||||
---
|
||||
scan/sane/hpaio.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
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 62d14eb..087efb1 100644
|
||||
index d342626822fc2190..57d1ddea32fb5816 100644
|
||||
--- a/scan/sane/hpaio.c
|
||||
+++ b/scan/sane/hpaio.c
|
||||
@@ -50,6 +50,7 @@
|
||||
@@ -19,6 +17,3 @@ index 62d14eb..087efb1 100644
|
||||
#include "orblitei.h"
|
||||
|
||||
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
From b9b39dc4520da4841ab61503ac8429d1ecf5415e Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 17:57:28 +0100
|
||||
Subject: [PATCH 21/33] hplip: scan-orblite-c99
|
||||
scan/sane/orblite: Include <dflcn.h> for function prototypes
|
||||
|
||||
---
|
||||
scan/sane/orblite.c | 22 +---------------------
|
||||
1 file changed, 1 insertion(+), 21 deletions(-)
|
||||
This is required for C99 compatibility. Also delete the unused
|
||||
bb_unload function because it calls a call to the undefined
|
||||
_DBG function/macro.
|
||||
|
||||
Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>
|
||||
|
||||
diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c
|
||||
index 87c4de8..490ad82 100644
|
||||
index ba86640c7528fc9c..ac59dda9c2dba593 100644
|
||||
--- a/scan/sane/orblite.c
|
||||
+++ b/scan/sane/orblite.c
|
||||
@@ -20,6 +20,7 @@
|
||||
@@ -47,6 +46,3 @@ index 87c4de8..490ad82 100644
|
||||
SANE_Status
|
||||
orblite_init (SANE_Int * version_code, SANE_Auth_Callback authorize)
|
||||
{
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
From 62fefeeef8cd3dff5b25167d6e9060ac85707e6b Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 17:57:28 +0100
|
||||
Subject: [PATCH 22/33] hplip: sclpml-strcasestr
|
||||
Kludge to support building C99 mode. This should no longer be needed
|
||||
once glibc declares strcasestr by default, and not just with
|
||||
-D_GNU_SOURCE.
|
||||
|
||||
---
|
||||
scan/sane/sclpml.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>
|
||||
|
||||
diff --git a/scan/sane/sclpml.c b/scan/sane/sclpml.c
|
||||
index 3250541..97fa608 100644
|
||||
index dc8b32ce02ad1202..f2cacd53e86800ce 100644
|
||||
--- a/scan/sane/sclpml.c
|
||||
+++ b/scan/sane/sclpml.c
|
||||
@@ -51,6 +51,9 @@
|
||||
@@ -47,6 +47,9 @@
|
||||
#define DEBUG_DECLARE_ONLY
|
||||
#include "sanei_debug.h"
|
||||
|
||||
@@ -21,6 +18,3 @@ index 3250541..97fa608 100644
|
||||
//# define SCLPML_DEBUG
|
||||
# ifdef SCLPML_DEBUG
|
||||
# define _DBG(args...) syslog(LOG_INFO, __FILE__ " " STRINGIZE(__LINE__) ": " args)
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
||||
@@ -1,17 +1,8 @@
|
||||
From 5e4a9b9cfc3f4afb936c458bf7299633afe6dd46 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 3 Feb 2026 17:57:25 +0100
|
||||
Subject: [PATCH 03/33] hplip: udev rules in usr
|
||||
|
||||
---
|
||||
Makefile.am | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 605744a..5381a24 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -137,7 +137,7 @@ dist_rulessystem_DATA =data/rules/hplip-printer@.service
|
||||
Index: hplip-3.20.9/Makefile.am
|
||||
===================================================================
|
||||
--- hplip-3.20.9.orig/Makefile.am
|
||||
+++ hplip-3.20.9/Makefile.am
|
||||
@@ -137,7 +137,7 @@ dist_rulessystem_DATA =data/rules/hplip-
|
||||
|
||||
# hpmud.rules
|
||||
if !HPLIP_CLASS_DRIVER
|
||||
@@ -20,6 +11,3 @@ index 605744a..5381a24 100644
|
||||
if UDEV_SYSFS_RULES
|
||||
dist_rules_DATA = data/rules/56-hpmud_sysfs.rules
|
||||
else
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 81e1d025b161f82bf3e24ae0710b5488ae2d689a Mon Sep 17 00:00:00 2001
|
||||
From 8d14912a48e589bee05e0c377c29218132083145 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Wed, 7 May 2025 15:23:17 +0200
|
||||
Subject: [PATCH 25/33] hplip/utils: Fix plugin verification with sha256
|
||||
Subject: [PATCH] hplip/utils: Fix plugin verification with sha256
|
||||
|
||||
https://bugs.launchpad.net/hplip/+bug/2110100
|
||||
---
|
||||
@@ -24,7 +24,7 @@ index cff5924..699f70f 100755
|
||||
|
||||
#Validate Digital Signature
|
||||
diff --git a/base/utils.py b/base/utils.py
|
||||
index 6f1412d..24bcc6d 100644
|
||||
index d5b3a49..f9de94e 100644
|
||||
--- a/base/utils.py
|
||||
+++ b/base/utils.py
|
||||
@@ -72,8 +72,18 @@ import hashlib
|
||||
@@ -64,5 +64,5 @@ index a37db39..26b0033 100755
|
||||
|
||||
#Validate Digital Signatures
|
||||
--
|
||||
2.52.0
|
||||
2.49.0
|
||||
|
||||
|
||||
157
hplip.changes
157
hplip.changes
@@ -1,158 +1,3 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 3 19:30:34 UTC 2026 - Martin Wilck <mwilck@suse.com>
|
||||
|
||||
- Update to HPLIP 3.25.8
|
||||
|
||||
- Added support for the following new Printers:
|
||||
* HP LaserJet Enterprise Flow MFP 8601z
|
||||
* HP LaserJet Enterprise 5501
|
||||
* HP LaserJet Enterprise MFP 5601dn
|
||||
* HP LaserJet Enterprise 6500dn
|
||||
* HP LaserJet Enterprise 5501n
|
||||
* HP LaserJet Enterprise MFP 5601
|
||||
* HP LaserJet Enterprise 6500
|
||||
* HP LaserJet Enterprise 5502dn
|
||||
* HP LaserJet Enterprise MFP 5602dn
|
||||
* HP LaserJet Enterprise 6500n
|
||||
* HP LaserJet Enterprise 5502
|
||||
* HP LaserJet Enterprise MFP 5602f
|
||||
* HP LaserJet Enterprise 6501dn
|
||||
* HP LaserJet Enterprise X50452dn
|
||||
* HP LaserJet Enterprise Flow MFP 5602zfw
|
||||
* HP LaserJet Enterprise 6501
|
||||
* HP LaserJet Enterprise X50452
|
||||
* HP LaserJet Enterprise MFP 5602
|
||||
* HP LaserJet Enterprise X60257dn
|
||||
* HP LaserJet Enterprise MFP X53052dn
|
||||
* HP LaserJet Enterprise Flow MFP X530
|
||||
* HP LaserJet Enterprise X60257
|
||||
* HP LaserJet Enterprise MFP X53052
|
||||
* HP LaserJet Enterprise X60357dn
|
||||
* HP LaserJet Enterprise X60357
|
||||
* HP LaserJet Enterprise MFP 6600dn
|
||||
* HP LaserJet Enterprise Flow MFP 6600zfw
|
||||
* HP LaserJet Enterprise MFP 6600
|
||||
* HP LaserJet Enterprise Flow MFP 6600zfsw
|
||||
* HP LaserJet Enterprise MFP X62757dn
|
||||
* HP LaserJet Enterprise Flow MFP X62757zs
|
||||
* HP LaserJet Enterprise MFP X62757
|
||||
* DEX D50452dn
|
||||
* DEX MFP D53052dn
|
||||
|
||||
- Drop patches that have been merged upstream:
|
||||
* Drop hplip-change-pgp-server.patch
|
||||
* Drop hp-setup-fix-python-crash-when-manually-importing-gz.patch
|
||||
|
||||
- Fix handling of readfp() and read_filke() for ConfigParser objects,
|
||||
avoiding confusing error messages (lp#2139771)
|
||||
* Add hplip-fix-handling-of-ConfigParser-.readfp-vs.-read_.patch
|
||||
* Drop hplip-base-replace-f-string-with-string.format-for-p.patch
|
||||
- Fix compiler warnings on SLE15
|
||||
* Add Fix-two-compiler-warnings-that-cause-build-failure-o.patch
|
||||
|
||||
- Renamed patch files to achieve a consistent patch naming according
|
||||
to the rules of git-format-patch:
|
||||
* Rename change-udev-rules.diff -> hplip-change-udev-rules.patch
|
||||
* Rename disable_hp-upgrade.patch -> disable-hp-upgrade.patch
|
||||
* Rename add_missing_includes_and_define_GNU_SOURCE.patch
|
||||
-> add-missing-includes-and-define-GNU_SOURCE.patch
|
||||
* Rename hplip-remove-imageprocessor.diff
|
||||
-> hplip-remove-imageprocessor.patch
|
||||
* Rename hplip-orblite-return-null.diff -> hplip-orblite-return-null.patch
|
||||
* Rename hplip-hpaio-gcc14.patch -> hplip-hpaio-avoid-C99-violations.patch
|
||||
* Rename hplip-no-urlopener.patch
|
||||
-> URLopener-was-removed-in-Python-3.14-and-hplip-trace.patch
|
||||
* Rename hplip-3.24.4-gcc15.patch -> hplip-sane-fix-compilation-with-gcc-15.patch
|
||||
Patches are now managed under https://github.com/mwilck/hplip
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 3 10:24:52 UTC 2026 - Martin Wilck <mwilck@suse.com>
|
||||
|
||||
- Fix PPD lookup by moving PPDs from manufacturer-PPDs/hplip-fax
|
||||
to manufacturer-PPDs/hplip/fax etc (boo#1257529)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 22 21:18:02 CET 2025 - Stanislav Brabec <sbrabec@suse.com>
|
||||
|
||||
- Remove unused BuildRequires: update-desktop-files.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 8 20:43:58 UTC 2025 - Martin Wilck <mwilck@suse.com>
|
||||
|
||||
- Move more utilities from hplip-utils to hplip-base.
|
||||
* hplip-base now contains all utilities that are not totally useless
|
||||
and can run without the Qt GUI.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 8 14:55:02 UTC 2025 - Martin Wilck <mwilck@suse.com>
|
||||
|
||||
- Update fix for support of new GPG key, as the key has now been
|
||||
uploaded to GPG keyservers (lp#2120738)
|
||||
* drop hplip-hardcode-new-signing-key-AC69536A2CF3A243.patch
|
||||
* update hplip-change-pgp-server.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 8 14:28:09 UTC 2025 - Martin Wilck <mwilck@suse.com>
|
||||
|
||||
- Drop dependency on cups-ppdc. It isn't necessary, as PPD
|
||||
generation on target system is done by cups-driverd.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 29 13:13:08 UTC 2025 - Johannes Meixner <jsmeix@suse.com>
|
||||
|
||||
- The old and outdated 'hpijs' driver support is finally dropped
|
||||
(the 'hpcups' driver is the default driver since 2009)
|
||||
so that there is no need for foomatic-filters (boo#1250481)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 21 10:50:17 UTC 2025 - Martin Wilck <martin.wilck@suse.com>
|
||||
|
||||
- Continue refactoring:
|
||||
* move GUI tools to "hplip-utils" subpackage
|
||||
* convert "hplip" into an empty metapackage that pulls in hplip-utils
|
||||
and all drivers / PPDs (except hpijs PPDs).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 19 13:33:02 UTC 2025 - Martin Wilck <mwilck@suse.com>
|
||||
|
||||
- Refactor package structure:
|
||||
* hplip: full set of utilities. Pulls in almost all subpackages
|
||||
to deliver the "traditional" hplip experience
|
||||
* hplip-base: small set of basic utilities that can be run
|
||||
without GUI. Includes hp-probe and hp-plugin
|
||||
* hplip-cups: minimal package for printing, without PPDs or
|
||||
setup helpers
|
||||
* hplip-sane: scanning support (unchanged)
|
||||
* hplip-driver-hpcups: hpcups.drv for generating hpcups PPDs on
|
||||
the fly (requires ppdc). The functionality of this package is
|
||||
similar to the old (misnamed) "hplip-hpijs" package.
|
||||
* hplip-driver-hpijs: hpijs.drv for generating PPDs for the deprecated
|
||||
hpijs / foomatic_rip filter. Note that this functionality was not part of
|
||||
the late hplip-hpijs package, because upstream hasn't ship foomatic PPDs
|
||||
since hplip 3.17.11.
|
||||
* hplip-ppds-{hpcups,hpps,postscript,hpijs,fax,plugin}: static PPD
|
||||
files for different printer types.
|
||||
hplip-ppds-hpcups is an alternative to hplip-driver-hpcups.
|
||||
* libhplip0: shared library package, used by hplip-cups and
|
||||
hplip-sane
|
||||
* hplip-common: configuration files and directories used by
|
||||
all hplip packages.
|
||||
|
||||
- Other spec file changes:
|
||||
* Skip deprecated suse_update_desktop_file by default on TW
|
||||
* Don't mess with sane configuration in udev rules
|
||||
* Only the hpijs packages depend on foomatic-rip, which is only
|
||||
provided by cups-filters-1.x. The other packages can be used
|
||||
with cups-filters2.
|
||||
* Remove Obsoletes: for ancient predecessor packages
|
||||
* Remove outdated comments from spec file
|
||||
* Shorten package descriptions
|
||||
* Fix a couple of rpmlint issues
|
||||
|
||||
- Fix printer probing using avahi (lp#2120947)
|
||||
* Add hplip-fix-driver-probing-using-avahi.patch
|
||||
* Add hplip-fix-python-crash-in-avahi.py.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 15 21:38:25 UTC 2025 - Martin Wilck <mwilck@suse.com>
|
||||
|
||||
@@ -315,7 +160,7 @@ Wed Jan 3 16:11:11 UTC 2024 - Martin Wilck <mwilck@suse.com>
|
||||
* HP OfficeJet Pro 9110b series
|
||||
* HP Color LaserJet Enterprise Flow MFP X58045z
|
||||
* HP Color LaserJet Enterprise Flow MFP X58045zs
|
||||
* HP Color LaserJet Enterprise MFP X58045dn
|
||||
* HP Color LaserJet Enterprise MFP X58045dn
|
||||
* HP Color LaserJet Enterprise MFP X58045
|
||||
* HP LaserJet Pro P1106 plus
|
||||
* HP LaserJet Pro P1108 plus
|
||||
|
||||
727
hplip.spec
727
hplip.spec
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package hplip
|
||||
#
|
||||
# Copyright (c) 2026 SUSE LLC and contributors
|
||||
# Copyright (c) 2025 SUSE LLC and contributors
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -16,8 +16,6 @@
|
||||
#
|
||||
|
||||
|
||||
%global basic_tools align clean colorcal diagnose_queues doctor fab firmware info levels logcapture makecopies makeuri plugin probe query sendfax setup testpage timedate unload
|
||||
|
||||
# python-rpm-macros doesn't work for hplip!
|
||||
%if 0%{?suse_version} >= 1500
|
||||
%define pyversion 3
|
||||
@@ -46,12 +44,8 @@
|
||||
%bcond_without scan_utils
|
||||
%endif
|
||||
|
||||
# update_desktop_files is deprecated in TW
|
||||
%if 0%{?suse_version} > 1600
|
||||
%bcond_with update_desktop
|
||||
%else
|
||||
%bcond_without update_desktop
|
||||
%endif
|
||||
# Run cupstestppd on the generated PPDs (prints many warnings)
|
||||
%bcond_with testppd
|
||||
|
||||
%if 0%{use_qt5}
|
||||
%global config_qt_opts --disable-qt4 --enable-qt5
|
||||
@@ -63,10 +57,8 @@
|
||||
%global ui_dir ui4
|
||||
%endif
|
||||
|
||||
%global drvdir %{_datadir}/cups/drv
|
||||
|
||||
Name: hplip
|
||||
Version: 3.25.8
|
||||
Version: 3.25.6
|
||||
Release: 0
|
||||
Summary: HP's Printing, Scanning, and Faxing Software
|
||||
License: BSD-3-Clause AND GPL-2.0-or-later AND MIT
|
||||
@@ -85,23 +77,25 @@ Source2: hplip.keyring
|
||||
# Patch0...Patch9 is for patches from HP:
|
||||
# Patch10...Patch99 is for Suse patches for the sources from HP:
|
||||
# Source100... is for special SUSE sources:
|
||||
# Source102 is a small man page for /usr/bin/hpijs:
|
||||
Source102: hpijs.1.gz
|
||||
# Actual drivers for hplip-missing-drivers.patch
|
||||
Source103: hp-laserjet_cp_1025nw.ppd.gz
|
||||
Source104: hp-laserjet_professional_p_1102w.ppd.gz
|
||||
#
|
||||
Source1000: %{name}-rpmlintrc
|
||||
# Patch100... is for special Suse patches:
|
||||
# Patch101 change-udev-rules.patch changes the udev rules file 56-hpmud.rules
|
||||
Patch101: hplip-change-udev-rules.patch
|
||||
# Patch101 change-udev-rules.diff changes the udev rules file 56-hpmud.rules
|
||||
Patch101: change-udev-rules.diff
|
||||
# Patch106 disable_hp-upgrade.patch disables hp-upgrade/upgrade.py for security reasons,
|
||||
# see https://bugzilla.novell.com/show_bug.cgi?id=853405
|
||||
# To upgrade HPLIP an openSUSE software package manager like YaST or zypper should be used.
|
||||
Patch106: disable-hp-upgrade.patch
|
||||
Patch106: disable_hp-upgrade.patch
|
||||
# PATCH-FIX-SUSE: use proper udev rulesdir which is in usr not in /etc
|
||||
Patch107: hplip-udev-rules-in-usr.patch
|
||||
# Patch108 add_missing_includes_and_define_GNU_SOURCE.patch adds missing '#include <...>'
|
||||
# and missing '#define _GNU_SOURCE' see https://bugs.launchpad.net/hplip/+bug/1456590
|
||||
Patch108: add-missing-includes-and-define-GNU_SOURCE.patch
|
||||
Patch108: add_missing_includes_and_define_GNU_SOURCE.patch
|
||||
Patch110: hpijs-avoid-segfault-in-DJGenericVIP-DJGenericVIP.patch
|
||||
Patch112: ui5-systemtray-wait-only-10s-for-system-tray.patch
|
||||
# Python3 port: cleanup patches
|
||||
@@ -115,12 +109,15 @@ Patch305: Use-lsb_release-fallback-code-if-import-distro-fails.patch
|
||||
# bsc#1180724
|
||||
Patch306: dcheck.py-fix-crash-in-Qt4-version-check.patch
|
||||
# PATCH-FIX-SUSE: Remove references to the closed-source ImageProcessor
|
||||
Patch400: hplip-remove-imageprocessor.patch
|
||||
Patch400: hplip-remove-imageprocessor.diff
|
||||
# Let a function return NULL instead of nothing
|
||||
Patch401: hplip-orblite-return-null.patch
|
||||
Patch401: hplip-orblite-return-null.diff
|
||||
# Use a pgp server (pool.sks-keyservers.net) which doesn't throw proxy errors
|
||||
# or run into timeouts most of the time
|
||||
Patch402: hplip-change-pgp-server.patch
|
||||
# boo#1107711
|
||||
Patch403: Revert-changes-from-3.18.5-that-break-hp-setup-for-f.patch
|
||||
# lp#1879445
|
||||
# PATCH-FIX-UPSTREAM: https://bugs.launchpad.net/hplip/+bug/1879445
|
||||
Patch404: hplip-3.20.6-python-includes.patch
|
||||
# PATCH-FIX-SUSE https://bugs.launchpad.net/hplip/+bug/2115626 bsc#1245358
|
||||
Patch405: Fix-ReDoS-issue-in-HPLIP-s-SLP-parser.patch
|
||||
@@ -130,27 +127,21 @@ Patch601: hplip-pserror-c99.patch
|
||||
Patch602: hplip-scan-hpaio-include.patch
|
||||
Patch603: hplip-scan-orblite-c99.patch
|
||||
Patch604: hplip-sclpml-strcasestr.patch
|
||||
Patch605: hplip-hpaio-avoid-C99-violations.patch
|
||||
Patch605: hplip-hpaio-gcc14.patch
|
||||
Patch606: hplip-base-fix-error-in-ConfigBase-handling.patch
|
||||
Patch607: hplip-utils-Fix-plugin-verification-with-sha256.patch
|
||||
# lp#2120739
|
||||
Patch608: hp-setup-fix-python-crash-when-manually-importing-gz.patch
|
||||
# lp#2120738
|
||||
Patch609: hplip-hardcode-new-signing-key-AC69536A2CF3A243.patch
|
||||
# lp#2115046
|
||||
Patch610: URLopener-was-removed-in-Python-3.14-and-hplip-trace.patch
|
||||
Patch611: hplip-fix-driver-probing-using-avahi.patch
|
||||
Patch612: hplip-fix-python-crash-in-avahi.py.patch
|
||||
# lp#2095776
|
||||
Patch613: hplip-base-Fix-Found-No-Section-error-with-python-2..patch
|
||||
# lp#2096650
|
||||
Patch614: hplip-sane-fix-compilation-with-gcc-15.patch
|
||||
# lp#2139771
|
||||
Patch615: hplip-fix-handling-of-ConfigParser-.readfp-vs.-read_.patch
|
||||
|
||||
Patch610: hplip-no-urlopener.patch
|
||||
# PATCH-FIX-UPSTREAM https://bugs.launchpad.net/hplip/+bug/2096650
|
||||
Patch651: hplip-3.24.4-gcc15.patch
|
||||
# Compatibility patches for old SUSE releases
|
||||
Patch700: hplip-base-replace-f-string-with-string.format-for-p.patch
|
||||
Patch701: hpcups-fix-compilation-on-SLE12.patch
|
||||
Patch703: Fix-two-compiler-warnings-that-cause-build-failure-o.patch
|
||||
|
||||
# cups-rpm-helper is now pulled in indirectly via cups-devel.
|
||||
# This causes the "postscriptdriver" provides to be generated.
|
||||
# To avoid that, put "Ignore: cups-devel: cups-rpm-helper in the prjconf.
|
||||
%if %use_qt5
|
||||
BuildRequires: %{pymod qt5-devel}
|
||||
%else
|
||||
@@ -177,9 +168,7 @@ BuildRequires: python-rpm-macros
|
||||
BuildRequires: readline-devel
|
||||
BuildRequires: sane-backends-devel
|
||||
BuildRequires: systemd-rpm-macros
|
||||
%if %{with update_desktop}
|
||||
BuildRequires: update-desktop-files
|
||||
%endif
|
||||
#!BuildIgnore: clang8
|
||||
#!BuildIgnore: libclang8
|
||||
# Break this dependency chain that has caused build breakage
|
||||
@@ -189,233 +178,161 @@ BuildRequires: update-desktop-files
|
||||
# Break this dependency chain that has caused build breakage
|
||||
# python3-qt5-devel -> libqt5-qtwebengine-devel -> libavcodec58 -> libdav1d.so.1
|
||||
#!BuildIgnore: libqt5-qtwebengine-devel
|
||||
|
||||
# Require the exact matching version-release of the utils subackage.
|
||||
Requires: %{name}-utils = %{version}-%{release}
|
||||
# To ensure the "hplip" package provides a similar user experience as before,
|
||||
# pull in the necessary PPDs.
|
||||
%if 0%{?suse_version} >= 1500
|
||||
# Works with either driver-hpcus or ppds-hpcups; driver-hpcups is preferred
|
||||
Requires: (%{name}-driver-hpcups or %{name}-ppds-hpcups)
|
||||
Suggests: %{name}-driver-hpcups
|
||||
%else
|
||||
# On older distros, prefer ppds for historical reasons
|
||||
Requires: %{name}-ppds-hpcups
|
||||
%endif
|
||||
Requires: %{name}-ppds-fax = %{version}-%{release}
|
||||
Requires: %{name}-ppds-hpps = %{version}-%{release}
|
||||
Requires: %{name}-ppds-postscript = %{version}-%{release}
|
||||
# hplip3 and hplip3-hpijs existed only in SLE11 as an alternative in addition to hplip:
|
||||
Obsoletes: hplip3
|
||||
Obsoletes: hplip3-hpijs
|
||||
|
||||
%description
|
||||
The Hewlett-Packard Linux Imaging and Printing project (HPLIP) provides
|
||||
support for HP printers, scanners, and all-in-one devices.
|
||||
|
||||
This is a meta package that pulls in the entire HPLIP software suite.
|
||||
|
||||
%package utils
|
||||
Summary: HPLIP GUI utilities
|
||||
Group: Hardware/Printing
|
||||
Requires: %{name}-base = %{version}-%{release}
|
||||
# Require the exact matching version-release of the hpijs sub-package to make sure
|
||||
# to have the exact matching version of libhpip and libhpmud installed.
|
||||
# The exact matching version-release of the sub-package is available on the same
|
||||
# repository where the main-package is (compare the "Recommends: hplip" entry below).
|
||||
Requires: %{name}-hpijs = %{version}-%{release}
|
||||
# Require the exact matching version-release of the sane sub-package to make sure
|
||||
# to have the exact matching version of libsane-hpaio installed:
|
||||
Requires: %{name}-sane = %{version}-%{release}
|
||||
Requires: %{pymod dbus-python} >= 0.80
|
||||
Requires: %{pymod gobject}
|
||||
Requires: %{requires_qt}
|
||||
Requires: cups > 1.5
|
||||
# foomatic-filters and cups-filters-foomatic-rip
|
||||
# do not require Ghostscript because depending on the PPD
|
||||
# (e.g. some PPDs for PostScript printers in OpenPrintingPPDs-postscript)
|
||||
# foomatic-rip can also be used without Ghostscript but for the drivers
|
||||
# HPIJS and HPCUPS Ghostscript is needed.
|
||||
# The RPM requirement for ghostscript should actually be in the
|
||||
# hplip-hpijs sub-package but this would bloat a minimalist system
|
||||
# (see the comment for the hplip-hpijs sub-package below).
|
||||
# Therefore the hplip main package which is intended
|
||||
# to get "all the HPLIP stuff" installed has the RPM requirement:
|
||||
# Because foomatic-rip-hplip has CVE-2011-2697 (bnc#698451)
|
||||
# plus a leftover in CVE-2004-0801 (bnc#59233)
|
||||
# foomatic-rip-hplip is no longer installed and foomatic-rip
|
||||
# from foomatic-filters or cups-filters-foomatic-rip is used instead.
|
||||
# The RPM requirement for foomatic-filters should actually be
|
||||
# in the hplip-hpijs sub-package but this would bloat a minimalist system
|
||||
# (see the comment for the hplip-hpijs sub-package below).
|
||||
# Therefore the hplip main package which is intended
|
||||
# to get "all the HPLIP stuff" installed has the RPM requirement:
|
||||
Requires: foomatic-filters
|
||||
Requires: ghostscript
|
||||
# hp-plugin requries lsb_release
|
||||
Requires: lsb-release
|
||||
# hp-plugin installation fails without /etc/sane/dll.conf
|
||||
Requires: sane-backends
|
||||
Requires(post): %{_bindir}/find
|
||||
Requires(post): /bin/grep
|
||||
Requires(post): /bin/sed
|
||||
Requires(post): coreutils
|
||||
%if 0%{?suse_version} >= 1500
|
||||
Recommends: python3-reportlab
|
||||
%endif
|
||||
# Obsolete earlier package names
|
||||
Obsoletes: hplip17
|
||||
Provides: hplip3 = 3.9.5
|
||||
Obsoletes: hplip3 < 3.9.5
|
||||
# cups-rpm-helper is now pulled in indirectly via cups-devel.
|
||||
# This causes the "postscriptdriver" provides to be generated.
|
||||
# To avoid that, put "Ignore: cups-devel: cups-rpm-helper in the prjconf.
|
||||
|
||||
# Make sure we obsolete old scan-utils
|
||||
# in case we're built without scan_utils
|
||||
%if %{without scan_utils}
|
||||
Obsoletes: hplip-scan-utils < %{version}
|
||||
%endif
|
||||
|
||||
%description utils
|
||||
%description
|
||||
The Hewlett-Packard Linux Imaging and Printing project (HPLIP) provides
|
||||
support for HP printers, scanners, and all-in-one devices.
|
||||
a unified single and multifunction connectivity solution for HP
|
||||
printers, scanners, and all-in-one devices.
|
||||
|
||||
This package contains graphical and command line utilities with extended
|
||||
functionality, specifically "hp-toolbox". It is not necessary for printing
|
||||
and scanning with HP devices.
|
||||
This package contains command line and UI front-ends for HPLIP, and tools
|
||||
for extra functionality such as status and supply information. It is
|
||||
not required for basic printing and scanning with HP hardware, except
|
||||
for those devices that need the proprietary hplip plugin, see
|
||||
https://developers.hp.com/hp-linux-imaging-and-printing/binary_plugin.html
|
||||
|
||||
For setting up new devices, install hplip-driver-* or hplip-ppds-* packages.
|
||||
|
||||
%package base
|
||||
Summary: HPLIP basic utilities
|
||||
%package hpijs
|
||||
Summary: Printer drivers for HP printers and all-in-one devices
|
||||
# On a minimalist system only hplip-hpijs may be installed
|
||||
# or on a minimalist package repository (e.g. on the openSUSE CDs)
|
||||
# only hplip-hpijs may be available (even when a usual system is installed).
|
||||
# When only hplip-hpijs is there, it should tell the dependency resolver
|
||||
# that for usual functionality, hplip should be installed too (if possible).
|
||||
# Unfortunately the installer ignores suggested packages silently
|
||||
# but on the other hand I cannot use "Recommends hplip" here
|
||||
# because the installer installs recommended packages silently
|
||||
# which would bloat a minimal selection (when hplip is available to be installed)
|
||||
# because the minimal selection contains hplip-hpijs which recommends hplip
|
||||
# so that the installer installs hplip and all what this requires silently
|
||||
# see https://bugzilla.novell.com/show_bug.cgi?id=546893
|
||||
# Require only the matching version of the hplip main-package
|
||||
# (compare the "Requires: hplip-hpijs" entry above) but do not depend
|
||||
# on the exact matching release because the exact matching release
|
||||
# may be not available to be installed (e.g. when hplip-hpijs-1.2.3-4.5 is
|
||||
# installed from the openSUSE CDs but on our official online repository
|
||||
# only hplip-1.2.3-6.7 is available which should usually also work):
|
||||
Group: Hardware/Printing
|
||||
Requires: %{name}-cups = %{version}-%{release}
|
||||
Requires: %{name}-sane = %{version}-%{release}
|
||||
# hp-plugin installation fails without /etc/sane/dll.conf
|
||||
Requires: sane-backends
|
||||
Requires: wget
|
||||
|
||||
%description base
|
||||
The Hewlett-Packard Linux Imaging and Printing project (HPLIP) provides
|
||||
support for HP printers, scanners, and all-in-one devices.
|
||||
|
||||
This package contains basic command line utilities for probing HP printers
|
||||
and all-in-one devices, and for installing the proprietary HP plugin.
|
||||
|
||||
For setting up new devices, install hplip-driver-* or hp-ppds-* packages.
|
||||
|
||||
%package common
|
||||
Summary: HPLIP common files
|
||||
Group: Hardware/Printing
|
||||
BuildArch: noarch
|
||||
Provides: %{name}-udev-rules = %{version}-%{release}
|
||||
Obsoletes: %{name}-udev-rules < %{version}-%{release}
|
||||
|
||||
%description common
|
||||
This package contains common files needed by other hplip packages.
|
||||
|
||||
%package -n libhplip0
|
||||
Summary: Shared libraries for the HPLIP printing system
|
||||
Group: System/Libraries
|
||||
# rpmlint complains about a versioned dependency here
|
||||
Requires: %{name}-common
|
||||
|
||||
%description -n libhplip0
|
||||
This package contains shared libraries needed by other hplip packages.
|
||||
|
||||
%package cups
|
||||
Summary: HPLIP printing backends and filters for CUPS
|
||||
Group: Hardware/Printing
|
||||
# Require the exact matching version-release of the libhpli0 sub-package.
|
||||
Requires: %{name}-common = %{version}-%{release}
|
||||
Requires: cups > 1.5
|
||||
Requires: libhplip0 = %{version}-%{release}
|
||||
%if 0%{?suse_version} >= 1500
|
||||
# Works with either driver-hpcus or ppds-hpcups; driver-hpcups is preferred
|
||||
Recommends: (%{name}-driver-hpcups or %{name}-ppds-hpcups)
|
||||
Suggests: %{name}-driver-hpcups
|
||||
Supplements: (%{name}-common and cups)
|
||||
%else
|
||||
# On older distros, prefer ppds for historical reasons
|
||||
Recommends: %{name}-ppds-hpcups
|
||||
%endif
|
||||
# cups-filters can be provided by the cups-filters2 package
|
||||
Recommends: cups-filters
|
||||
Recommends: %{name}-base = %{version}
|
||||
Recommends: ghostscript
|
||||
Requires: %{name}-udev-rules = %{version}-%{release}
|
||||
Suggests: %{name} = %{version}
|
||||
Suggests: %{name}-ppds-hpps = %{version}
|
||||
Suggests: %{name}-ppds-postscript = %{version}
|
||||
Suggests: %{name}-ppds-fax = %{version}
|
||||
# Since Nov 14 2007 ghostscript-library does no longer require /usr/bin/hpijs
|
||||
# but only "Suggests hplip-hpijs" (see Novell/Suse Bugzilla bnc#341564).
|
||||
# Have the matching "reverse suggests" = "Enhances" here
|
||||
# to document the ghostscript <-> hplip-hpijs relationship:
|
||||
Enhances: ghostscript
|
||||
# hpijs-standalone was a stand-alone minimalist package
|
||||
# which is no longer provided since a long time.
|
||||
# hplip-hpijs and hpijs-standalone both contain /usr/bin/hpijs
|
||||
# so that both packages have a RPM conflict which should
|
||||
# be solved by a silent replacement of the old hpijs-standalone.
|
||||
# This Obsoletes is intentionally unversioned because
|
||||
# hplip-hpijs should replace any version of hpijs-standalone.
|
||||
Obsoletes: hpijs-standalone
|
||||
# Either the hplip17 packages or the hplip packages can be installed,
|
||||
# see https://bugzilla.novell.com/show_bug.cgi?id=251830#c20
|
||||
# for the full story why there is this unversioned Obsoletes:
|
||||
Obsoletes: hplip17-hpijs
|
||||
# Obsolete the hplip3 copy that was introduced for older SLED11-GA HP preloads:
|
||||
Provides: hplip3-hpijs = 3.9.5
|
||||
Obsoletes: hplip3-hpijs < 3.9.5
|
||||
# PackMan provides HPLIP in the packages hplip and hplip-hpcups.
|
||||
# HPLIP does not work if the openSUSE packages hplip and hplip-hpijs
|
||||
# are installed together with a leftover PackMan package hplip-hpcups
|
||||
# see https://bugzilla.novell.com/show_bug.cgi?id=515005#c17
|
||||
# This Obsoletes is intentionally unversioned because
|
||||
# the openSUSE package hplip-hpijs must replace
|
||||
# any version of PackMan's hplip-hpcups package.
|
||||
Obsoletes: hplip-hpcups
|
||||
|
||||
%description cups
|
||||
This package contains filter programs and backends for the CUPS printing
|
||||
system which are necessary for printing with HP printers.
|
||||
%description hpijs
|
||||
This package contains the backend drivers and PPDs for printing
|
||||
with HP printers using CUPS.
|
||||
|
||||
%package driver-hpcups
|
||||
Summary: Driver for HP printers and all-in-one devices (hpcups)
|
||||
Group: Hardware/Printing
|
||||
BuildArch: noarch
|
||||
Requires: %{name}-cups = %{version}-%{release}
|
||||
Conflicts: %{name}-ppds-hpcups
|
||||
# Until October 2025, the package with the misleading name "hplip-hpijs"
|
||||
# provided the hpcups driver and PPDs
|
||||
Provides: %{name}-hpijs = %{version}-%{release}
|
||||
Obsoletes: %{name}-hpijs < %{version}-%{release}
|
||||
HPCUPS is HPLIP's native CUPS printer driver for HP printers.
|
||||
HPIJS (deprecated) is HPLIP's Ghostscript printer driver for
|
||||
HP printers, and only used for some Fax devices nowadays.
|
||||
|
||||
%description driver-hpcups
|
||||
This package provides printer setup support for most HP printers and all-in-one
|
||||
devices. It uses CUPS functionality to generate the PPDs for the printers
|
||||
dynamically.
|
||||
|
||||
This package is not necessary for operation of already configured devices.
|
||||
|
||||
%package ppds-hpcups
|
||||
Summary: PPDs for HP printers and all-in-one devices (hpcups)
|
||||
Group: Hardware/Printing
|
||||
BuildArch: noarch
|
||||
Requires: %{name}-cups = %{version}-%{release}
|
||||
Conflicts: %{name}-driver-hpcups
|
||||
# Until October 2025, the package with the misleading name "hplip-hpijs"
|
||||
# provided the hpcups driver and PPDs
|
||||
Provides: %{name}-hpijs = %{version}-%{release}
|
||||
Obsoletes: %{name}-hpijs < %{version}-%{release}
|
||||
|
||||
%description ppds-hpcups
|
||||
This package provides printer setup support for most HP printers and all-in-one
|
||||
devices. It contains statically compiled PPDs.
|
||||
|
||||
This package is not necessary for operation of already configured devices.
|
||||
|
||||
%package ppds-postscript
|
||||
Summary: PPDs for HP printers (PostScript)
|
||||
Group: Hardware/Printing
|
||||
BuildArch: noarch
|
||||
# Also PostScript printers may benefit from HP's special CUPS backend 'hp'
|
||||
# but normally PostScript printers also work with the generic CUPS backends:
|
||||
Recommends: %{name}-cups = %{version}-%{release}
|
||||
|
||||
%description ppds-postscript
|
||||
This package provides printer setup support for HP PostScript printers that need no
|
||||
CUPS filter.
|
||||
|
||||
This package is not necessary for operation of already configured devices.
|
||||
|
||||
%package ppds-hpps
|
||||
Summary: PPDs for HP printers (PostScript + hpps)
|
||||
Group: Hardware/Printing
|
||||
BuildArch: noarch
|
||||
Requires: %{name}-cups = %{version}-%{release}
|
||||
|
||||
%description ppds-hpps
|
||||
This package provides printer setup support for HP PostScript printers using the
|
||||
hpps filter, which adds support for model-specific functionality such as
|
||||
"Secure printing".
|
||||
|
||||
This package is not necessary for operation of already configured devices.
|
||||
|
||||
%package ppds-fax
|
||||
Summary: PPDs for HP Fax devices
|
||||
Group: Hardware/Printing
|
||||
BuildArch: noarch
|
||||
Requires: %{name}-cups = %{version}-%{release}
|
||||
|
||||
%description ppds-fax
|
||||
This package provides support for HP fax devices and multi-function devices.
|
||||
|
||||
This package is not necessary for operation of already configured devices.
|
||||
|
||||
%package ppds-plugin
|
||||
Summary: PPDs for HP printers (proprietary plugin)
|
||||
Group: Hardware/Printing
|
||||
BuildArch: noarch
|
||||
Requires: %{name}-cups = %{version}-%{release}
|
||||
# Require hplip for the hp-plugin tool
|
||||
Requires: %{name}-base = %{version}-%{release}
|
||||
|
||||
%description ppds-plugin
|
||||
This package provides printer setup support for HP printers that need the
|
||||
proprietary HPLIP plugin. Use the hp-plugin tool from the %{name}-base package
|
||||
to install the plugin.
|
||||
|
||||
This package is not necessary for operation of already configured devices.
|
||||
Install the "hplip" package if you need the proprietary HP plugin
|
||||
required by some devices, or additional functionality besides plain
|
||||
printing.
|
||||
|
||||
%package sane
|
||||
Summary: SANE backends for HP scanners and all-in-one devices
|
||||
# Require the exact matching version-release of the hpijs sub-package to make sure
|
||||
# to have the exact matching version of libhpip and libhpmud installed.
|
||||
# A wrong library version may let libsane-hpaio crash (e.g. segfault)
|
||||
# which lets the whole scanning stack frontend<->libsane-dll<->libsane-backend crash
|
||||
# also for any other backend when the hpaio backend is enabled (e.g. "scanimage -L"):
|
||||
Group: Hardware/Scanner
|
||||
# Require the exact matching version-release of the libhpli0 sub-package.
|
||||
Requires: %{name}-common = %{version}-%{release}
|
||||
Requires: libhplip0 = %{version}-%{release}
|
||||
Recommends: %{name}-base = %{version}
|
||||
Requires: %{name}-hpijs = %{version}-%{release}
|
||||
Requires: %{name}-udev-rules = %{version}-%{release}
|
||||
# See comment in hpijs sub-package for same Suggests:
|
||||
Suggests: %{name} = %{version}
|
||||
Enhances: sane-backends
|
||||
# Automatically install this package if hplip-common and sane-backends are
|
||||
# Automatically install this package if hpijs sub-package and sane-backends are
|
||||
# both installed (syntax only
|
||||
%if 0%{?suse_version} >= 1500
|
||||
Supplements: (%{name}-common and sane-backends)
|
||||
Supplements: (%{name}-hpijs and sane-backends)
|
||||
%endif
|
||||
|
||||
%description sane
|
||||
The Hewlett-Packard Linux Imaging and Printing project (HPLIP) provides
|
||||
support for HP printers, scanners, and all-in-one devices.
|
||||
|
||||
This package provides scanning support for HP scanners and all-in-one
|
||||
devices. Some devices need the proprietary hplip plugin. Use the hp-plugin
|
||||
tool from the %{name}-base package to install the plugin.
|
||||
This package includes the backend driver for scanning with HP scanners
|
||||
and all-in-one devices using SANE tools like xsane or scanimage.
|
||||
|
||||
%if %{with scan_utils}
|
||||
%package scan-utils
|
||||
@@ -438,6 +355,13 @@ utilities are alternatives to the SANE frontends "xsane" and "scanimage". They
|
||||
expose some advanced features of certain HP scanner models.
|
||||
%endif
|
||||
|
||||
%package udev-rules
|
||||
Summary: HPLIP udev rules
|
||||
Group: Hardware/Scanner
|
||||
|
||||
%description udev-rules
|
||||
This package provides the udev rules required to use these devices as a normal user.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for hplip
|
||||
# Require the exact matching version-release of the hpijs sub-package to make sure
|
||||
@@ -454,13 +378,12 @@ Requires: libusb-1_0-devel
|
||||
Requires: net-snmp-devel
|
||||
|
||||
%description devel
|
||||
This package is only required by developers.
|
||||
This sub-package is only required by developers.
|
||||
|
||||
%prep
|
||||
# Be quiet when unpacking:
|
||||
%setup -q
|
||||
|
||||
# Patch101 change-udev-rules.patch changes the udev rules file 56-hpmud.rules
|
||||
# Patch101 change-udev-rules.diff changes the udev rules file 56-hpmud.rules
|
||||
%patch -P 101 -p1 -b .change-udev-rules.orig
|
||||
# Patch106 disable_hp-upgrade.patch disables hp-upgrade/upgrade.py for security reasons,
|
||||
# see https://bugzilla.novell.com/show_bug.cgi?id=853405
|
||||
@@ -480,6 +403,7 @@ This package is only required by developers.
|
||||
%patch -P 306 -p1
|
||||
%patch -P 400 -p1
|
||||
%patch -P 401 -p1
|
||||
%patch -P 402 -p1
|
||||
%patch -P 403 -p1
|
||||
%if 0%{?suse_version} >= 1500
|
||||
# This patch replaces python-config by python3-config, don't apply on SLE12
|
||||
@@ -494,21 +418,15 @@ This package is only required by developers.
|
||||
%patch -P 605 -p1
|
||||
%patch -P 606 -p1
|
||||
%patch -P 607 -p1
|
||||
%patch -P 608 -p1
|
||||
%patch -P 609 -p1
|
||||
%patch -P 610 -p1
|
||||
%patch -P 611 -p1
|
||||
%patch -P 612 -p1
|
||||
%patch -P 613 -p1
|
||||
%patch -P 614 -p1
|
||||
%patch -P 615 -p1
|
||||
%patch -P 651 -p1
|
||||
%if 0%{?suse_version} < 1500
|
||||
# python2 compatibility
|
||||
%patch -P 700 -p1
|
||||
%patch -P 701 -p1
|
||||
%endif
|
||||
%if 0%{?suse_version} < 1500
|
||||
# python2 compatibility
|
||||
%patch -P 701 -p1
|
||||
%endif
|
||||
%patch -P 703 -p1
|
||||
|
||||
# replace "env" shebang and "/usr/bin/python" with real executable
|
||||
find . -name '*.py' -o -name pstotiff | \
|
||||
@@ -536,12 +454,22 @@ export CXXFLAGS="%{optflags} -fno-strict-aliasing -Wno-error=return-type"
|
||||
# According to http://hplipopensource.com/hplip-web/release_notes.html
|
||||
# all drv installs require CUPSDDK 1.2.3 or higher.
|
||||
# Otherwise a static PPD install must be performed.
|
||||
# Furthermore dynamic PPDs will be deprecated in the future in CUPS,
|
||||
# see http://www.cups.org/str.php?L3772
|
||||
# For hpcups static PPD install one needs:
|
||||
# --enable-hpcups-install enable hpcups install (default=yes)
|
||||
# --disable-cups-drv-install enable cups dynamic ppd install (default=yes)
|
||||
# --enable-cups-ppd-install enable cups static ppd install (default=no)
|
||||
# For both hpcups and hpijs install with static PPDs one needs additionally:
|
||||
# --enable-hpijs-install enable hpijs install (default=no)
|
||||
# --disable-foomatic-drv-install enable foomatic dynamic ppd install (default=no), uses drvdir and hpppddir
|
||||
# --enable-foomatic-ppd-install enable foomatic static ppd install (default=no), uses hpppddir
|
||||
# Because foomatic-rip-hplip has CVE-2011-2697 (bnc#698451) plus a leftover in CVE-2004-0801 (bnc#59233)
|
||||
# which are fixed up to openSUSE 11.4 with patches, after openSUSE 11.4 (i.e. since openSUSE 12.1)
|
||||
# foomatic-rip-hplip is no longer installed and because foomatic-rip is a generic security issue
|
||||
# and only used by 'hpijs' which is dropped via --disable-hpijs-install also foomatic support is dropped
|
||||
# via --disable-foomatic-drv-install --disable-foomatic-ppd-install --disable-foomatic-rip-hplip-install
|
||||
# see https://bugzilla.suse.com/show_bug.cgi?id=1250481
|
||||
# foomatic-rip-hplip is no longer installed and foomatic-rip from
|
||||
# foomatic-filters or cups-filters-foomatic-rip is used instead so that
|
||||
# --disable-foomatic-rip-hplip-install is explicitly set and as a consequence the "cupsFilter" entries
|
||||
# in the static PPDs are changed in the install section to use foomatic-rip.
|
||||
# Since HPLIP 3.13.10 --with-htmldir is new but it does not inhertit its value from --with-docdir
|
||||
# so that --with-htmldir must be explicitly set.
|
||||
%configure \
|
||||
@@ -556,17 +484,17 @@ export CXXFLAGS="%{optflags} -fno-strict-aliasing -Wno-error=return-type"
|
||||
--enable-fax-build \
|
||||
--enable-dbus-build \
|
||||
--enable-hpcups-install \
|
||||
--enable-cups-drv-install \
|
||||
--disable-cups-ppd-install \
|
||||
--disable-hpijs-install \
|
||||
--disable-imageProcessor-build \
|
||||
--disable-cups-drv-install \
|
||||
--enable-cups-ppd-install \
|
||||
--enable-hpijs-install \
|
||||
--disable-foomatic-drv-install \
|
||||
--disable-foomatic-ppd-install \
|
||||
--disable-imageProcessor-build \
|
||||
--enable-foomatic-ppd-install \
|
||||
--disable-foomatic-rip-hplip-install \
|
||||
--with-hpppddir=%{_datadir}/cups/model/manufacturer-PPDs/%{name} \
|
||||
--with-cupsbackenddir=%{_prefix}/lib/cups/backend \
|
||||
--with-cupsfilterdir=%{_prefix}/lib/cups/filter \
|
||||
--with-drvdir=%{drvdir} \
|
||||
--with-drvdir=%{_prefix}/lib/cups/driver \
|
||||
--with-mimedir=%{_sysconfdir}/cups \
|
||||
--with-docdir=%{_defaultdocdir}/%{name} \
|
||||
--with-htmldir=%{_defaultdocdir}/%{name} \
|
||||
@@ -579,28 +507,35 @@ sed -i 's|ppd/hpcups/\*.ppd.gz ||g' Makefile
|
||||
|
||||
# Make and install Python compiled bytecode files
|
||||
%py_compile -O %{buildroot}%{_datadir}/hplip
|
||||
|
||||
# Hardlink .pyc and .pyo when they have same content.
|
||||
# Do not run "fdupes buildroot/_datadir/hplip" because
|
||||
# fdupes will link any files with same content there
|
||||
# which can have unexpected side-effects, compare
|
||||
# https://bugzilla.opensuse.org/show_bug.cgi?id=784670
|
||||
# E.g. fdupes may create links between files that belong
|
||||
# to different subpackages.
|
||||
for pyc in $( find %{buildroot}%{_datadir}/hplip -name '*.pyc' )
|
||||
do
|
||||
pyo="${pyc%.pyc}.opt-1.pyc"
|
||||
if test -f "$pyo" && cmp -s "$pyc" "$pyo"
|
||||
then
|
||||
ln -f "$pyc" "$pyo"
|
||||
if test -f $pyo && cmp -s $pyc $pyo
|
||||
then echo hardlinking $pyc and $pyo because both have same content
|
||||
ln -f $pyc $pyo
|
||||
fi
|
||||
done
|
||||
|
||||
# see https://bugs.launchpad.net/hplip/+bug/1064247 and bnc#783810
|
||||
# HPLIP's "make install" installs -rw-r--r-- usr/share/hplip/fax/pstotiff
|
||||
# and usr/lib/cups/filter/pstotiff -> usr/share/hplip/fax/pstotiff
|
||||
# so that when the CUPS filter usr/lib/cups/filter/pstotiff is called,
|
||||
# it cannot execute usr/share/hplip/fax/pstotiff which is fixed hereby
|
||||
# (see https://bugs.launchpad.net/hplip/+bug/1064247 and bnc#783810):
|
||||
chmod a+x %{buildroot}%{_datadir}/hplip/fax/pstotiff
|
||||
# The /var/lib/hp directory is created everywhere except on openSUSE 12.2 and later versions
|
||||
# (perhaps an autoconf issue) so that it is created here as simple and fail-safe workaround
|
||||
# see https://bugs.launchpad.net/bugs/1018303 and bnc#780413
|
||||
# using fixed "/var/log/hp" because this is hardcoded in the HPLIP sources
|
||||
# regarding owner and permissions see the "files hpijs" section below
|
||||
# and Patch102 no-chgrp_lp_hplip_Logdir.diff:
|
||||
test -d %{buildroot}%{_localstatedir}/lib/hp || install -d %{buildroot}%{_localstatedir}/lib/hp
|
||||
# Create a /var/log/hp/tmp/ directory that is needed by hp-sendfax
|
||||
# as a workaround until HPLIP upstream implemented it correctly
|
||||
# see https://bugzilla.novell.com/show_bug.cgi?id=800312
|
||||
# and https://bugs.launchpad.net/bugs/1016507
|
||||
install -d %{buildroot}%{_localstatedir}/log/hp/tmp
|
||||
@@ -620,75 +555,106 @@ rm %{buildroot}%{_datadir}/hal/fdi/preprobe/10osvendor/20-hplip-devices.fdi
|
||||
# while in contrast manual printer setup via hp-setup usually "just works"
|
||||
# and it is clear for the user what goes on and in case of failure what went wrong.
|
||||
rm %{buildroot}%{_unitdir}/hplip-printer@.service
|
||||
|
||||
# Remove selinux configurations we are not supporting on SUSE
|
||||
# force for not on all distributions the files were installed
|
||||
# Can't be disabled during configure
|
||||
rm -f %{buildroot}/%{name}.{fc,if,pp,te}
|
||||
|
||||
# Begin "General tests and adjustments for all PPDs" (see manufacturer-PPDs.spec):
|
||||
pushd %{buildroot}%{_datadir}/cups/model/manufacturer-PPDs/%{name}
|
||||
# Do not pollute the build log file with zillions of meaningless messages:
|
||||
set +x
|
||||
|
||||
# Create appropriate sub-directories for PPDs:
|
||||
install -d %{buildroot}%{_datadir}/cups/model/manufacturer-PPDs/%{name}/ps
|
||||
install -d %{buildroot}%{_datadir}/cups/model/manufacturer-PPDs/%{name}/hpps
|
||||
install -d %{buildroot}%{_datadir}/cups/model/manufacturer-PPDs/%{name}/plugin
|
||||
install -d %{buildroot}%{_datadir}/cups/model/manufacturer-PPDs/%{name}/hpcups
|
||||
install -d %{buildroot}%{_datadir}/cups/model/manufacturer-PPDs/%{name}/fax
|
||||
|
||||
gunzip *.ppd.gz
|
||||
# Make some general tests and adjustments for all PPDs:
|
||||
echo "Making some general tests and adjustments for all PPDs:"
|
||||
# Add a line-feed to the end of all PPDs to fix those PPDs where it is missing.
|
||||
# See Novell/Suse Bugzilla bug #309832: Unix/Linux text files must end with a line-feed.
|
||||
# Otherwise reading the last line results EOF and then some programs may ignore the last line.
|
||||
echo "Adding a line-feed to the end of all PPDs to fix those PPDs where it is missing..."
|
||||
for p in *.ppd
|
||||
do echo -en '\n' >>$p
|
||||
done
|
||||
# Because foomatic-rip-hplip has CVE-2011-2697 (bnc#698451) plus a leftover in CVE-2004-0801 (bnc#59233)
|
||||
# foomatic-rip-hplip is no longer installed and foomatic-rip from foomatic-filters or cups-filters-foomatic-rip
|
||||
# is used instead so that the "cupsFilter" entries in the static PPDs must be changed accordingly:
|
||||
echo "Replacing insecure foomatic-rip-hplip with foomatic-rip everywhere in in the PPDs..."
|
||||
for p in *.ppd
|
||||
do sed -i -e 's/foomatic-rip-hplip/foomatic-rip/' $p
|
||||
done
|
||||
# Final test by cupstestppd:
|
||||
# To save disk space gzip the files (gzipped PPDs can also be used by CUPS).
|
||||
# Future goal: Only have files which don't FAIL for cupstestppd.
|
||||
# Update 2025-08-15: this goal is unrealistic. Skip the testppd step unless
|
||||
# explicitly enabled with --with testppd
|
||||
for p in *.ppd
|
||||
do
|
||||
# Add a line-feed to the end of all PPDs to fix those PPDs where it is missing.
|
||||
# See Novell/Suse Bugzilla bug #309832: Unix/Linux text files must end with a line-feed.
|
||||
# Otherwise reading the last line results EOF and then some programs may ignore the last line:
|
||||
echo -en '\n' >>"$p"
|
||||
# Move PPDs into appropriate sub-directories:
|
||||
if grep -q '^\*NickName:.*requires proprietary plugin' "$p"; then
|
||||
dir=./plugin
|
||||
else
|
||||
filter=$( grep -m1 cupsFilter "$p" ) || true
|
||||
case $filter in
|
||||
*foomatic-rip*)
|
||||
# Skip 'hpijs' PPDs which are those that use foomatic-rip as cupsFilter
|
||||
# see https://bugzilla.suse.com/show_bug.cgi?id=1250481#c1
|
||||
continue;;
|
||||
*hpcupsfax*|*hpcdmfax*)
|
||||
dir=./fax;;
|
||||
*hpcups*)
|
||||
dir=./hpcups;;
|
||||
*hpps*)
|
||||
dir=./hpps;;
|
||||
"")
|
||||
dir=./ps;;
|
||||
esac
|
||||
fi
|
||||
gzip -n -9 "$p"
|
||||
mv -f "$p.gz" "$dir"
|
||||
%if %{with testppd}
|
||||
grep -E -v '^\*UIConstraints:|^\*NonUIConstraints:|^\*cupsFilter:' $p | cupstestppd - || true
|
||||
%endif
|
||||
gzip -n -9 $p
|
||||
done
|
||||
|
||||
echo "Moving PPDs that use the hpps filter to %{_datadir}/cups/model/manufacturer-PPDs/hplip-hpps..."
|
||||
# PPDs for various printers that use the hpps filter
|
||||
# must be moved to the hplip main-package because
|
||||
# the /usr/lib/cups/filter/hpps Python script imports
|
||||
# various HPLIP modules from the hplip main-package
|
||||
# so that the hpps filter belongs to the hplip main-package
|
||||
# (see https://bugzilla.novell.com/show_bug.cgi?id=876690).
|
||||
# Accordingly the PPDs that use the hpps filter must be moved
|
||||
# to the hplip main-package which is implemented by moving them
|
||||
# to a new directory /usr/share/cups/model/manufacturer-PPDs/hplip-hpps
|
||||
# that is listed in the files list of the hplip main-package:
|
||||
install -d %{buildroot}%{_datadir}/cups/model/manufacturer-PPDs/%{name}-hpps
|
||||
for p in *.ppd.gz
|
||||
do zgrep -q '^\*cupsFilter:.*hpps' $p && mv $p ../%{name}-hpps
|
||||
done
|
||||
echo "Moving PPDs that require a proprietary plugin from HP to %{_datadir}/cups/model/manufacturer-PPDs/hplip-plugin..."
|
||||
# PPDs for various printers that require a proprietary plugin from HP
|
||||
# must be moved to the hplip main-package because
|
||||
# the proprietary plugin from HP must be downloaded and installed
|
||||
# by using HP's "hp-plugin" tool from the hplip main-package
|
||||
# (HP's "hp-setup" tool calls "hp-plugin" when needed).
|
||||
# Accordingly PPDs that require a proprietary plugin from HP must be moved
|
||||
# to the hplip main-package which is implemented by moving them
|
||||
# to a new directory /usr/share/cups/model/manufacturer-PPDs/hplip-plugin
|
||||
# that is listed in the files list of the hplip main-package
|
||||
# (see https://bugzilla.novell.com/show_bug.cgi?id=876690):
|
||||
install -d %{buildroot}%{_datadir}/cups/model/manufacturer-PPDs/%{name}-plugin
|
||||
for p in *.ppd.gz
|
||||
do zgrep -q '^\*NickName:.*requires proprietary plugin' $p && mv $p ../%{name}-plugin
|
||||
done
|
||||
echo "End of general tests and adjustments for all PPDs."
|
||||
# Switch back to the usual build log messages:
|
||||
set -x
|
||||
# End of "General tests and adjustments for all PPDs":
|
||||
popd
|
||||
|
||||
# Replace the invalid Desktop categories
|
||||
%if %{with update_desktop}
|
||||
%suse_update_desktop_file -r %{buildroot}%{_datadir}/applications/hplip.desktop System HardwareSettings
|
||||
%suse_update_desktop_file -r %{buildroot}%{_datadir}/applications/hp-uiscan.desktop System HardwareSettings
|
||||
%suse_update_desktop_file -i %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
|
||||
%endif
|
||||
# End of "Desktop menue entry stuff".
|
||||
|
||||
# Remove libtool archives:
|
||||
# Let suse_update_desktop_file add X-SuSE-translate key to /etc/xdg/autostart/hplip-systray.desktop
|
||||
# so that we can update its translations with translation-only packages.
|
||||
%suse_update_desktop_file -i %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
|
||||
# End of "Desktop menue entry stuff".
|
||||
# Install the man page for /usr/bin/hpijs:
|
||||
install -d %{buildroot}%{_mandir}/man1
|
||||
install -m 644 %{SOURCE102} %{buildroot}%{_mandir}/man1/
|
||||
|
||||
# remove libtool archives
|
||||
find "%{buildroot}" -type f -name "*.la" -delete -print
|
||||
|
||||
# Run fdupes only on the images subdir to avoid broken symlinks in subpackages:
|
||||
# Run fdupes:
|
||||
# The RPM macro fdupes runs /usr/bin/fdupes that links files with identical content.
|
||||
# Never run fdupes carelessly over the whole buildroot directory
|
||||
# because in older openSUSE and SLE11 versions fdupes
|
||||
# links files with different owner, group, or permissions
|
||||
# see https://bugzilla.novell.com/show_bug.cgi?id=784670
|
||||
# and even in current openSUSE versions fdupes links across sub-package boundaries,
|
||||
# compare https://bugzilla.novell.com/show_bug.cgi?id=784869
|
||||
# so that fdupes can only run for specific directories where linking files is safe:
|
||||
%fdupes -s %{buildroot}%{_datadir}/hplip/data/images
|
||||
|
||||
# Ensure we have no unpackaged files if build without scan-util:
|
||||
# Ensure we have no unpackaged files if build
|
||||
# without scan-util
|
||||
%if !%{with scan_utils}
|
||||
rm -f %{buildroot}%{_bindir}/hp-scan
|
||||
rm -f %{buildroot}%{_bindir}/hp-uiscan
|
||||
@@ -696,8 +662,17 @@ rm -f %{buildroot}%{python_sitearch}/scanext.so
|
||||
rm -f %{buildroot}%{_datadir}/applications/hp-uiscan.desktop
|
||||
%endif
|
||||
|
||||
%post common
|
||||
%post -p /bin/bash
|
||||
%udev_rules_update
|
||||
%desktop_database_post
|
||||
%icon_theme_cache_post
|
||||
/sbin/ldconfig
|
||||
exit 0
|
||||
|
||||
%postun -p /bin/bash
|
||||
%desktop_database_postun
|
||||
%icon_theme_cache_postun
|
||||
/sbin/ldconfig
|
||||
|
||||
%postun sane
|
||||
# Earlier versions of hplip modified /etc/sane.d/dll.conf
|
||||
@@ -709,57 +684,67 @@ if [ "$1" = "0" ] && [ -w %{_sysconfdir}/sane.d/dll.conf ]; then
|
||||
fi
|
||||
exit 0
|
||||
|
||||
%post -n libhplip0 -p %{run_ldconfig}
|
||||
%postun -n libhplip0 -p %{run_ldconfig}
|
||||
%post hpijs -p /bin/bash
|
||||
/sbin/ldconfig
|
||||
exit 0
|
||||
|
||||
%post base -p %{run_ldconfig}
|
||||
%postun base -p %{run_ldconfig}
|
||||
%postun hpijs -p /bin/bash
|
||||
/sbin/ldconfig
|
||||
exit 0
|
||||
|
||||
%files
|
||||
# empty
|
||||
|
||||
%files base
|
||||
%(for _x in %{basic_tools}; do echo "%{_bindir}/hp-$_x"; done)
|
||||
%(for _x in %{basic_tools}; do echo "%{_datadir}/hplip/$_x.py"; done)
|
||||
%(for _x in %{basic_tools}; do echo "%{_datadir}/hplip/__pycache__/$_x.*"; done)
|
||||
%{_datadir}/hplip/base
|
||||
%exclude %{_datadir}/hplip/base/imageprocessing.py*
|
||||
%exclude %{_datadir}/hplip/base/__pycache__/imageprocessing.*
|
||||
%{_datadir}/hplip/fax
|
||||
%{_datadir}/hplip/installer
|
||||
%{_datadir}/hplip/prnt
|
||||
%{_libdir}/python%{pyver}/site-packages/cupsext.*
|
||||
%{_libdir}/python%{pyver}/site-packages/hpmudext.*
|
||||
%{_libdir}/python%{pyver}/site-packages/pcardext.*
|
||||
|
||||
%files utils
|
||||
%config %{_sysconfdir}/xdg/autostart/hplip-systray.desktop
|
||||
# GUI tools (not in the basic_tools list above)
|
||||
%{_bindir}/hp-align
|
||||
%{_bindir}/hp-check
|
||||
%{_bindir}/hp-clean
|
||||
%{_bindir}/hp-colorcal
|
||||
%{_bindir}/hp-config_usb_printer
|
||||
%{_bindir}/hp-devicesettings
|
||||
%{_bindir}/hp-diagnose_plugin
|
||||
%{_bindir}/hp-diagnose_queues
|
||||
%{_bindir}/hp-doctor
|
||||
%{_bindir}/hp-fab
|
||||
%{_bindir}/hp-faxsetup
|
||||
%{_bindir}/hp-firmware
|
||||
%{_bindir}/hp-info
|
||||
%{_bindir}/hp-levels
|
||||
%{_bindir}/hp-linefeedcal
|
||||
%{_bindir}/hp-logcapture
|
||||
%{_bindir}/hp-makecopies
|
||||
%{_bindir}/hp-makeuri
|
||||
%{_bindir}/hp-pkservice
|
||||
%{_bindir}/hp-plugin
|
||||
%{_bindir}/hp-pqdiag
|
||||
%{_bindir}/hp-print
|
||||
%{_bindir}/hp-printsettings
|
||||
%{_bindir}/hp-probe
|
||||
%{_bindir}/hp-query
|
||||
%{_bindir}/hp-sendfax
|
||||
%{_bindir}/hp-setup
|
||||
%{_bindir}/hp-systray
|
||||
%{_bindir}/hp-testpage
|
||||
%{_bindir}/hp-timedate
|
||||
%{_bindir}/hp-toolbox
|
||||
%{_bindir}/hp-wificonfig
|
||||
# Fixme: these tools are useless on openSUSE.
|
||||
%{_bindir}/hp-pkservice
|
||||
%{_bindir}/hp-uninstall
|
||||
%{_bindir}/hp-unload
|
||||
%{_bindir}/hp-upgrade
|
||||
%{_bindir}/hp-wificonfig
|
||||
%{_libdir}/python%{pyver}/site-packages/cupsext.*
|
||||
%{_libdir}/python%{pyver}/site-packages/hpmudext.*
|
||||
%{_libdir}/python%{pyver}/site-packages/pcardext.*
|
||||
%dir %{_prefix}/lib/cups
|
||||
%dir %{_prefix}/lib/cups/backend
|
||||
%{_prefix}/lib/cups/backend/hpfax
|
||||
%dir %{_prefix}/lib/cups/filter
|
||||
%{_prefix}/lib/cups/filter/hpps
|
||||
%dir %{_datadir}/cups
|
||||
%dir %{_datadir}/cups/model
|
||||
%dir %{_datadir}/cups/model/manufacturer-PPDs
|
||||
%{_datadir}/cups/model/manufacturer-PPDs/%{name}-hpps/
|
||||
%{_datadir}/cups/model/manufacturer-PPDs/%{name}-plugin/
|
||||
%doc %{_defaultdocdir}/%{name}/
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/hplip/
|
||||
%{expand:%(for _x in %{basic_tools}; do echo "%%exclude %{_datadir}/hplip/$_x.py"; done)}
|
||||
%{expand:%(for _x in %{basic_tools}; do echo "%%exclude %{_datadir}/hplip/__pycache__/$_x.*"; done)}
|
||||
%exclude %{_datadir}/hplip/base
|
||||
%exclude %{_datadir}/hplip/fax
|
||||
%exclude %{_datadir}/hplip/installer
|
||||
%exclude %{_datadir}/hplip/prnt
|
||||
%exclude %{_datadir}/hplip/data/models/models.dat
|
||||
%exclude %{_datadir}/hplip/base/imageprocessing.py*
|
||||
%exclude %{_datadir}/hplip/%{ui_dir}/scandialog.py*
|
||||
@@ -792,16 +777,29 @@ exit 0
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%files common
|
||||
%files hpijs
|
||||
%config %{_sysconfdir}/hp/
|
||||
%config %{_sysconfdir}/cups/pstotiff.convs
|
||||
%config %{_sysconfdir}/cups/pstotiff.types
|
||||
%{_datadir}/%{name}/data/models/models.dat
|
||||
%{_udevrulesdir}/56-hpmud.rules
|
||||
%{_bindir}/hpijs
|
||||
%{_mandir}/man1/hpijs.1%{?ext_man}
|
||||
%{_libdir}/libhpip.so.*
|
||||
%{_libdir}/libhpipp.so.*
|
||||
%{_libdir}/libhpmud.so.*
|
||||
%{_libdir}/libhpdiscovery.so.*
|
||||
%dir %{_prefix}/lib/cups
|
||||
%dir %{_prefix}/lib/cups/backend
|
||||
%{_prefix}/lib/cups/backend/hp
|
||||
%dir %{_prefix}/lib/cups/filter
|
||||
%{_prefix}/lib/cups/filter/hpcups
|
||||
%{_prefix}/lib/cups/filter/hpcupsfax
|
||||
%{_prefix}/lib/cups/filter/hpcdmfax
|
||||
%{_prefix}/lib/cups/filter/pstotiff
|
||||
%dir %{_datadir}/cups
|
||||
%dir %{_datadir}/cups/model
|
||||
%dir %{_datadir}/cups/model/manufacturer-PPDs
|
||||
%dir %{_datadir}/cups/model/manufacturer-PPDs/%{name}
|
||||
%{_datadir}/cups/model/manufacturer-PPDs/%{name}/
|
||||
%{_datadir}/%{name}/data/models/models.dat
|
||||
# Use fixed "/var/log/hp" because this is hardcoded in the HPLIP sources.
|
||||
# Regarding attr(0775,root,lp) see the comment for /var/log/hp/tmp below:
|
||||
%dir %attr(0775,root,lp) %{_localstatedir}/log/hp
|
||||
@@ -812,48 +810,15 @@ exit 0
|
||||
# Use fixed "/var/lib/hp" because this is hardcoded in the HPLIP sources:
|
||||
%dir %{_localstatedir}/lib/hp
|
||||
|
||||
%files -n libhplip0
|
||||
%{_libdir}/libhpip.so.*
|
||||
%{_libdir}/libhpipp.so.*
|
||||
%{_libdir}/libhpmud.so.*
|
||||
%{_libdir}/libhpdiscovery.so.*
|
||||
|
||||
%files cups
|
||||
%dir %{_prefix}/lib/cups/filter
|
||||
%{_prefix}/lib/cups/filter/hpps
|
||||
%{_prefix}/lib/cups/filter/hpcups
|
||||
%{_prefix}/lib/cups/filter/hpcupsfax
|
||||
%{_prefix}/lib/cups/filter/hpcdmfax
|
||||
%{_prefix}/lib/cups/filter/pstotiff
|
||||
%dir %{_prefix}/lib/cups/backend
|
||||
%{_prefix}/lib/cups/backend/hp
|
||||
%{_prefix}/lib/cups/backend/hpfax
|
||||
|
||||
%files driver-hpcups
|
||||
%dir %{drvdir}
|
||||
%{drvdir}/hpcups.drv
|
||||
|
||||
%files ppds-hpcups
|
||||
%{_datadir}/cups/model/manufacturer-PPDs/%{name}/hpcups
|
||||
|
||||
%files ppds-hpps
|
||||
%{_datadir}/cups/model/manufacturer-PPDs/%{name}/hpps
|
||||
|
||||
%files ppds-postscript
|
||||
%{_datadir}/cups/model/manufacturer-PPDs/%{name}/ps
|
||||
|
||||
%files ppds-plugin
|
||||
%{_datadir}/cups/model/manufacturer-PPDs/%{name}/plugin
|
||||
|
||||
%files ppds-fax
|
||||
%{_datadir}/cups/model/manufacturer-PPDs/%{name}/fax
|
||||
|
||||
%files sane
|
||||
%dir %{_libdir}/sane
|
||||
%{_libdir}/sane/libsane-hpaio.so.*
|
||||
%dir %{_sysconfdir}/sane.d
|
||||
%dir %{_sysconfdir}/sane.d/dll.d
|
||||
%config %{_sysconfdir}/sane.d/dll.d/hpaio
|
||||
%{_sysconfdir}/sane.d/dll.d/hpaio
|
||||
|
||||
%files udev-rules
|
||||
%{_udevrulesdir}/56-hpmud.rules
|
||||
|
||||
%files devel
|
||||
%{_libdir}/libhpip.so
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
From 0e635e8c5d97b4ab86a16678c38cd43c8086679e Mon Sep 17 00:00:00 2001
|
||||
From 74ed15a16e7564d0665afc68defbd6d03bdff21d Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Wed, 21 Mar 2018 23:55:12 +0100
|
||||
Subject: [PATCH 07/33] pcardext: python3 fixes
|
||||
Subject: [PATCH] pcardext: python3 fixes
|
||||
|
||||
---
|
||||
pcard/pcardext/pcardext.c | 36 ++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 34 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/pcard/pcardext/pcardext.c b/pcard/pcardext/pcardext.c
|
||||
index 131e5e9..e1eb3e1 100644
|
||||
index c1a8273e4359..cdf260d62223 100644
|
||||
--- a/pcard/pcardext/pcardext.c
|
||||
+++ b/pcard/pcardext/pcardext.c
|
||||
@@ -39,6 +39,12 @@ typedef int Py_ssize_t;
|
||||
@@ -36,6 +36,12 @@ typedef int Py_ssize_t;
|
||||
#define PY_SSIZE_T_MIN INT_MIN
|
||||
#endif
|
||||
|
||||
@@ -24,7 +24,7 @@ index 131e5e9..e1eb3e1 100644
|
||||
int verbose=0;
|
||||
|
||||
PyObject * readsectorFunc = NULL;
|
||||
@@ -81,8 +87,11 @@ int WriteSector(int sector, int nsector, void *buf, int size )
|
||||
@@ -78,8 +84,11 @@ int WriteSector(int sector, int nsector, void *buf, int size )
|
||||
|
||||
if( writesectorFunc )
|
||||
{
|
||||
@@ -37,7 +37,7 @@ index 131e5e9..e1eb3e1 100644
|
||||
return PyInt_AS_LONG( result );
|
||||
}
|
||||
|
||||
@@ -233,9 +242,31 @@ static PyMethodDef pcardext_methods[] =
|
||||
@@ -230,9 +239,31 @@ static PyMethodDef pcardext_methods[] =
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
@@ -70,12 +70,12 @@ index 131e5e9..e1eb3e1 100644
|
||||
void initpcardext( void )
|
||||
{
|
||||
PyObject * mod = Py_InitModule4( "pcardext", pcardext_methods,
|
||||
@@ -246,4 +277,5 @@ void initpcardext( void )
|
||||
@@ -243,4 +274,5 @@ void initpcardext( void )
|
||||
return;
|
||||
}
|
||||
|
||||
+#endif
|
||||
|
||||
--
|
||||
2.52.0
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 158a81abdd16a9fe05869de1b76baa1075f8a7bd Mon Sep 17 00:00:00 2001
|
||||
From 92ddbb36e2a589fe4d1cf27c30b67a1bb12bf9dc Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Fri, 16 Nov 2018 11:00:44 +0100
|
||||
Subject: [PATCH 06/33] ui5/systemtray: wait only 10s for system tray
|
||||
Subject: [PATCH] ui5/systemtray: wait only 10s for system tray
|
||||
|
||||
On GNOME >= 3.26, it will never show up. This may cause hangs on
|
||||
logout if users log in and log out quickly again.
|
||||
@@ -10,7 +10,7 @@ logout if users log in and log out quickly again.
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ui5/systemtray.py b/ui5/systemtray.py
|
||||
index 28078cf..96ec37c 100644
|
||||
index a0cdaf1..101807a 100644
|
||||
--- a/ui5/systemtray.py
|
||||
+++ b/ui5/systemtray.py
|
||||
@@ -841,7 +841,7 @@ def run(read_pipe):
|
||||
@@ -23,5 +23,5 @@ index 28078cf..96ec37c 100644
|
||||
break
|
||||
time.sleep(1.0)
|
||||
--
|
||||
2.52.0
|
||||
2.21.0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user