SHA256
1
0
forked from printing/hplip

33 Commits

Author SHA256 Message Date
Martin Wilck
9fe62f807f 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
2026-02-03 20:51:32 +01:00
Martin Wilck
448d8bcf6d Updated .gitignore 2026-02-03 20:51:30 +01:00
Martin Wilck
4a010374b7 Fix for boo#1257529
Fix PPD lookup by moving PPDs from manufacturer-PPDs/hplip-fax
to  manufacturer-PPDs/hplip/fax etc.
2026-02-03 16:26:02 +01:00
10bfb902d4 Accepting request 1320016 from Printing
Remove dependency on update-desktop-files for factory

OBS-URL: https://build.opensuse.org/request/show/1320016
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hplip?expand=0&rev=166
2025-11-27 14:19:01 +00:00
7ffbbaa882 OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=280 2025-11-25 14:01:01 +00:00
ee0405583d - Remove unused BuildRequires: update-desktop-files.
OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=279
2025-11-25 13:49:28 +00:00
03fb19a3a4 Rremoved an invisible Unicode U+2002 character in hplip.changes
OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=278
2025-11-19 14:29:40 +00:00
f3d2506529 Accepting request 1309931 from Printing
- 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.
- 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
- Drop dependency on cups-ppdc. It isn't necessary, as PPD
  generation on target system is done by cups-driverd.
- 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)
- 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).
- 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

OBS-URL: https://build.opensuse.org/request/show/1309931
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hplip?expand=0&rev=165
2025-10-10 15:07:41 +00:00
756b74b309 OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=276 2025-10-09 08:43:31 +00:00
497ec9ee78 - 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.

- 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

- Drop dependency on cups-ppdc. It isn't necessary, as PPD
  generation on target system is done by cups-driverd.

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

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

- 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

OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=275
2025-10-09 08:17:23 +00:00
c3f7a8c460 Accepting request 1300306 from Printing
OBS-URL: https://build.opensuse.org/request/show/1300306
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hplip?expand=0&rev=164
2025-08-20 11:24:51 +00:00
23d046f249 - Fix verification of HP plugin with new GPG key (lp#2120738)
* add hplip-hardcode-new-signing-key-AC69536A2CF3A243.patch
- Fix python crash in hp-setup on compressed PPD file (lp#2120739)
  * add hp-setup-fix-python-crash-when-manually-importing-gz.patch
- Fix missing urllib.URLopener in python 3.14 (lp#2115046)
  * add hplip-no-urlopener.patch
- Only run cupstestppd if explicitly requested with "--with testppd"
  build parameter

- Updated hplip gpg public key
  fingerprint: 82FF A7C6 AA74 11D9 34BD E173 AC69 536A 2CF3 A243
  https://developers.hp.com/hp-linux-imaging-and-printing/hplipDigitalCertificate.html
- Update to hplip 3.25.6
- Added support for new printers:
  * HP LaserJet Enterprise Flow MFP 8601z
  * HP LaserJet Pro MFP M126a plus
  * HP LaserJet Pro MFP M126nw plus
  * HP LaserJet Pro MFP M126snw plus
  * HP Envy Photo 7200 series
  * HP Envy Photo 7900 series
  * HP OfficeJet Pro 9110 Series
  * HP OfficeJet 9120 Series
  * HP OfficeJet Pro 9120 Series
  * HP OfficeJet Pro 9130 Series

OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=273
2025-08-19 14:25:36 +00:00
6af0bcd0d2 Accepting request 1299861 from Printing
- Disable hp-scan-utils on Leap 16.0
  Leap does not want to ship scikit-image -> python-pandas

OBS-URL: https://build.opensuse.org/request/show/1299861
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hplip?expand=0&rev=163
2025-08-16 18:37:09 +00:00
2685c80bcc Fix syntax of "%bcond_with scan_utils"
OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=271
2025-08-15 20:20:18 +00:00
ee64d56499 - Disable hp-scan-utils on Leap 16.0
Leap does not want to ship scikit-image -> python-pandas

OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=270
2025-08-15 15:40:10 +00:00
4f46173b7f Accepting request 1295165 from Printing
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1295165
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hplip?expand=0&rev=162
2025-07-24 16:34:36 +00:00
c69d1bf3db - Fix ReDoS issue in HPLIP's SLP parser (bsc#1245358)
* add Fix-ReDoS-issue-in-HPLIP-s-SLP-parser.patch

OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=268
2025-07-15 17:54:10 +00:00
01111b9fc0 Accepting request 1275594 from Printing
OBS-URL: https://build.opensuse.org/request/show/1275594
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hplip?expand=0&rev=161
2025-05-09 16:39:34 +00:00
b2ab3cb1c9 - Update to hplip 3.25.2
- Added support for new printers:
  * HP LaserJet Enterprise Flow MFP 8601z
  * HP LaserJet Enterprise Flow MFP 8601z+
  * HP LaserJet Enterprise MFP 8601dn
  * HP Color LaserJet Enterprise MFP 8801dn
  * HP Color LaserJet Enterprise Flow MFP 8801z
  * HP Color LaserJet Enterprise Flow MFP 8801z+
  * HP LaserJet Enterprise 8501dn
  * HP LaserJet Enterprise 8501x
  * HP LaserJet Enterprise 8501x+
  * DEX MFP D826
  * DEX MFP D82640
  * DEX MFP D82650
  * DEX MFP D82660
  * DEX D50145
  * DEX MFP D42540
  * DEX MFP D52645
  * DEX Color D55745
  * DEX Color MFP D57945
  * DEX Color MFP D677
  * DEX Color MFP D67755
  * DEX Color MFP D67765
  * DEX Color MFP D877
  * DEX Color MFP D87740
  * DEX Color MFP D87750
  * DEX Color MFP D87760
  * DEX Color MFP D87770
  * DEX Color MFP D786
  * DEX Colour MFP D78625

OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=266
2025-05-08 14:17:16 +00:00
2d0f1b8130 Accepting request 1274854 from Printing
OBS-URL: https://build.opensuse.org/request/show/1274854
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hplip?expand=0&rev=160
2025-05-07 17:14:50 +00:00
0f6411a364 add hplip-3.24.4-gcc15.patch to fix gcc-15 compile time error
OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=264
2025-05-06 10:04:04 +00:00
18d65bd90a Accepting request 1245683 from Printing
- Add python3-setuptools BuildRequires: replaces the fix to
  manually inject PYTHON_INCLUDEDIR. Fix needed to build against
  Python 3.13.

Fixes build in Staging_A (python 3.13) - and seems to address the real reaason why PYTHON_INCLUDEDIR needed to be injected (forwarded request 1241212 from dimstar)

OBS-URL: https://build.opensuse.org/request/show/1245683
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hplip?expand=0&rev=159
2025-02-14 18:19:48 +00:00
b4c6de1fe0 - Add python3-setuptools BuildRequires: replaces the fix to
manually inject PYTHON_INCLUDEDIR. Fix needed to build against
  Python 3.13.

Fixes build in Staging_A (python 3.13) - and seems to address the real reaason why PYTHON_INCLUDEDIR needed to be injected

OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=262
2025-02-13 14:47:04 +00:00
ecc13f65af Accepting request 1241606 from Printing
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1241606
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hplip?expand=0&rev=158
2025-02-03 20:40:38 +00:00
55c3139c15 - Fix error in ConfigBase handling (bsc#1209401)
- add hplip-base-fix-error-in-ConfigBase-handling.patch

- Fix python error on SLE12-SP3 (bsc#1209401, bsc#1234745)
  - add hplip-base-replace-f-string-with-string.format-for-p.patch

OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=260
2025-01-24 09:10:34 +00:00
4291a2a098 added jira reference
OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=259
2025-01-17 16:42:26 +00:00
b59d505c60 Accepting request 1238011 from Printing
- hplip.spec: re-introduce macros for SLE12 compatibility, so that
  we can backport security fixes to older releases
  (bsc#1234745, CVE-2020-6923)

OBS-URL: https://build.opensuse.org/request/show/1238011
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hplip?expand=0&rev=157
2025-01-16 17:31:15 +00:00
fb006c9b16 we can backport security fixes to older releases
(bsc#1234745, CVE-2020-6923)

OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=257
2025-01-15 09:35:23 +00:00
1f5e2304f2 - hplip.spec: re-introduce macros for SLE12 compatibility, so that
we can backport security fixes to older releases (bsc#1234745)

OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=256
2025-01-14 15:39:17 +00:00
6e09f335a7 Accepting request 1224910 from Printing
add a bug ref

OBS-URL: https://build.opensuse.org/request/show/1224910
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hplip?expand=0&rev=156
2024-11-18 19:01:38 +00:00
e2859bda9a - Bug fixes:
* hpmud: sanitize printer serial number (bsc#1209401, lp#2012262)

OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=254
2024-11-18 16:03:56 +00:00
462d0be98f Accepting request 1187617 from Printing
OBS-URL: https://build.opensuse.org/request/show/1187617
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hplip?expand=0&rev=155
2024-07-17 13:13:40 +00:00
95e3708c4c - Add hplip-pserror-c99.patch hplip-scan-hpaio-include.patch
hplip-scan-orblite-c99.patch hplip-sclpml-strcasestr.patch
  hplip-hpaio-gcc14.patch to avoid C99 violations which prevent
  building with GCC 14. [boo#1225777]

The patches were taken from
bbb19dff5e
and
d726b77698

If the request is OK, please forward it to Factory soon-ish too so
that we can switch the default compiler.  Thanks!

OBS-URL: https://build.opensuse.org/package/show/Printing/hplip?expand=0&rev=252
2024-07-15 19:10:46 +00:00
45 changed files with 1855 additions and 530 deletions

4
.gitignore vendored
View File

@@ -1 +1,5 @@
.osc
*~
\#*
*.rej
*.orig

View File

@@ -0,0 +1,48 @@
From 1586048802a90d90f039378ef793681d16960176 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
Patch for the ReDoS issue in HPLIP's SLP parser (bsc#1245358).
https://bugs.launchpad.net/hplip/+bug/2115626
An unauthenticated denial-of-service attack in the local network is possible
against HPLIP's SLP network printer discovery. This vulnerability arises from
an algorithmic complexity attack on regular expressions within the SLP parser
(`base/slp.py`).
Signed-off-by: Wolfgang Frisch <wfrisch@suse.de>
---
base/slp.py | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/base/slp.py b/base/slp.py
index 8e2d8f9..06a00aa 100644
--- a/base/slp.py
+++ b/base/slp.py
@@ -33,14 +33,14 @@ from .g import *
from . import utils
from .sixext import to_bytes_utf8, to_unicode, to_string_utf8
-prod_pat = re.compile(r"""\(\s*x-hp-prod_id\s*=\s*(.*?)\s*\)""", re.IGNORECASE)
-mac_pat = re.compile(r"""\(\s*x-hp-mac\s*=\s*(.*?)\s*\)""", re.IGNORECASE)
-num_port_pat = re.compile(r"""\(\s*x-hp-num_port\s*=\s*(.*?)\s*\)""", re.IGNORECASE)
-ip_pat = re.compile(r"""\(\s*x-hp-ip\s*=\s*(.*?)\s*\)""", re.IGNORECASE)
-p1_pat = re.compile(r"""\(\s*x-hp-p1\s*=(?:\d\)|\s*(.*?)\s*\))""", re.IGNORECASE)
-p2_pat = re.compile(r"""\(\s*x-hp-p2\s*=(?:\d\)|\s*(.*?)\s*\))""", re.IGNORECASE)
-p3_pat = re.compile(r"""\(\s*x-hp-p3\s*=(?:\d\)|\s*(.*?)\s*\))""", re.IGNORECASE)
-hn_pat = re.compile(r"""\(\s*x-hp-hn\s*=\s*(.*?)\s*\)""", re.IGNORECASE)
+prod_pat = re.compile(r"""\(\s*x-hp-prod_id\s*=\s*([^\s]*)\s*\)""", re.IGNORECASE)
+mac_pat = re.compile(r"""\(\s*x-hp-mac\s*=\s*([^\s]*)\s*\)""", re.IGNORECASE)
+num_port_pat = re.compile(r"""\(\s*x-hp-num_port\s*=\s*([^\s]*)\s*\)""", re.IGNORECASE)
+ip_pat = re.compile(r"""\(\s*x-hp-ip\s*=\s*([^\s]*)\s*\)""", re.IGNORECASE)
+p1_pat = re.compile(r"""\(\s*x-hp-p1\s*=(?:\d\)|\s*([^\s]*)\s*\))""", re.IGNORECASE)
+p2_pat = re.compile(r"""\(\s*x-hp-p2\s*=(?:\d\)|\s*([^\s]*)\s*\))""", re.IGNORECASE)
+p3_pat = re.compile(r"""\(\s*x-hp-p3\s*=(?:\d\)|\s*([^\s]*)\s*\))""", re.IGNORECASE)
+hn_pat = re.compile(r"""\(\s*x-hp-hn\s*=\s*([^\s]*)\s*\)""", re.IGNORECASE)
def createSocketsWithsetOption(ttl=4):
s=None
--
2.52.0

View File

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

View File

@@ -1,7 +1,7 @@
From af8ddd502a88f8dc0910c2c9a91471be8434af61 Mon Sep 17 00:00:00 2001
From f6715cc06a34ea49c17cde8861e6036024195243 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck@suse.com>
Date: Mon, 13 Jan 2020 18:20:22 +0100
Subject: [PATCH] Revert changes from 3.18.5 that break hp-setup for fax
Subject: [PATCH 15/33] 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 f268cf8..cc77820 100644
index e8fe42c..6f1412d 100644
--- a/base/utils.py
+++ b/base/utils.py
@@ -954,10 +954,7 @@ else:
@@ -986,10 +986,7 @@ else:
def printable(s):
@@ -30,10 +30,10 @@ index f268cf8..cc77820 100644
def any(S,f=lambda x:x):
diff --git a/fax/pmlfax.py b/fax/pmlfax.py
index adcc1cb..b68ff6a 100644
index 0ae5f5e..d85b151 100644
--- a/fax/pmlfax.py
+++ b/fax/pmlfax.py
@@ -143,8 +143,8 @@ class PMLFaxDevice(FaxDevice):
@@ -145,8 +145,8 @@ class PMLFaxDevice(FaxDevice):
def getPhoneNum(self):
if PY3:
@@ -44,7 +44,7 @@ index adcc1cb..b68ff6a 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")
@@ -155,8 +155,8 @@ class PMLFaxDevice(FaxDevice):
@@ -157,8 +157,8 @@ class PMLFaxDevice(FaxDevice):
def getStationName(self):
if PY3:
@@ -56,5 +56,5 @@ index adcc1cb..b68ff6a 100644
return utils.printable(self.getPML(pml.OID_FAX_STATION_NAME)[1])
--
2.24.1
2.52.0

View File

@@ -0,0 +1,109 @@
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
--- a/base/device.py
+++ b/base/device.py
@@ -2525,9 +2525,9 @@ Content-length: %d\r
data = None
log.debug("Opening: %s" % url2)
- opener = LocalOpener({})
+ opener = LocalOpener()
try:
- f = opener.open(url2, data)
+ f = opener.open_hp(url2, data)
except Error:
log.error("Status read failed: %s" % url2)
@@ -2547,7 +2547,7 @@ Content-length: %d\r
try:
url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url)
data = self
- opener = LocalOpenerEWS_LEDM({})
+ opener = LocalOpenerEWS_LEDM()
try:
if footer:
return opener.open_hp(url2, data, footer)
@@ -2562,7 +2562,7 @@ Content-length: %d\r
try:
url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url)
data = self
- opener = LocalOpener_LEDM({})
+ opener = LocalOpener_LEDM()
try:
if footer:
return opener.open_hp(url2, data, footer)
@@ -2579,7 +2579,7 @@ Content-length: %d\r
url="/cdm/supply/v1/suppliesPublic"
url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url)
data = self
- opener = LocalOpener_CDM({})
+ opener = LocalOpener_CDM()
try:
if footer:
return opener.open_hp(url2, data, footer)
@@ -2687,7 +2687,7 @@ Content-length: %d\r
# URLs: hp:/usb/HP_LaserJet_3050?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
-class LocalOpener(urllib_request.URLopener):
+class LocalOpener():
def open_hp(self, url, dev):
log.debug("open_hp(%s)" % url)
@@ -2717,7 +2717,7 @@ class LocalOpener(urllib_request.URLopener):
return response#.fp
# URLs: hp:/usb/HP_OfficeJet_7500?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
-class LocalOpenerEWS_LEDM(urllib_request.URLopener):
+class LocalOpenerEWS_LEDM():
def open_hp(self, url, dev, foot=""):
log.debug("open_hp(%s)" % url)
@@ -2743,7 +2743,7 @@ class LocalOpenerEWS_LEDM(urllib_request.URLopener):
# URLs: hp:/usb/HP_OfficeJet_7500?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
-class LocalOpener_LEDM(urllib_request.URLopener):
+class LocalOpener_LEDM():
def open_hp(self, url, dev, foot=""):
log.debug("open_hp(%s)" % url)
@@ -2770,7 +2770,7 @@ class LocalOpener_LEDM(urllib_request.URLopener):
# URLs: hp:/usb/HP_OfficeJet_7500?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml
-class LocalOpener_CDM(urllib_request.URLopener):
+class LocalOpener_CDM():
def open_hp(self, url, dev, foot=""):
log.debug("open_hp(%s)" % url)
match_obj = http_pat_url.search(url)
--
2.52.0

View File

@@ -1,7 +1,7 @@
From ba542439639453148ea804fc4e396534cd99abb9 Mon Sep 17 00:00:00 2001
From 1f97ae55acde846513c8634966252865d4a134ca Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck@suse.com>
Date: Mon, 2 Jan 2023 15:33:07 +0100
Subject: [PATCH] Use lsb_release fallback code if "import distro" fails
Subject: [PATCH 11/33] 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 94d5c8c..458ddd8 100644
index d176c0d..e8fe42c 100644
--- a/base/utils.py
+++ b/base/utils.py
@@ -2519,10 +2519,14 @@ def get_distro_name(passwordObj = None):
@@ -2551,10 +2551,14 @@ def get_distro_name(passwordObj = None):
name = platform.dist()[0].lower()
ver = platform.dist()[1]
except AttributeError:
@@ -37,5 +37,5 @@ index 94d5c8c..458ddd8 100644
found = False
log.debug("Not able to detect distro")
--
2.39.0
2.52.0

View File

@@ -1,7 +1,7 @@
From d52301159a5add137b46e7183970ea1f1cbfe8ac Mon Sep 17 00:00:00 2001
From 935b009caf6de3071675894f4756f99f8e3d46ff 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/19] add missing includes and define GNU_SOURCE
Subject: [PATCH 04/33] 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 be3c823..c15ed9c 100644
index 94474c8..f86f96a 100644
--- a/io/hpmud/jd.c
+++ b/io/hpmud/jd.c
@@ -31,6 +31,7 @@
@@ -43,7 +43,7 @@ index be3c823..c15ed9c 100644
#include "hpmudi.h"
diff --git a/protocol/hp_ipp.c b/protocol/hp_ipp.c
index 8b72c65..9b05f5e 100644
index 6e60ac0..e7d4b8c 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.42.0
2.52.0

View File

@@ -1,7 +1,7 @@
From 9a7ed59efcf645256f8a07f4fb71bf0f838e3838 Mon Sep 17 00:00:00 2001
From ea881d92ac3a55d946514a0d8fef260bb2af2173 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck@suse.com>
Date: Sat, 9 Jan 2021 01:21:08 +0100
Subject: [PATCH] dcheck.py: fix crash in Qt4 version check
Subject: [PATCH 12/33] 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 d684c10..6215b4b 100644
index 2d1c413..6dd7d51 100644
--- a/installer/dcheck.py
+++ b/installer/dcheck.py
@@ -300,8 +300,12 @@ def get_pyQt4_version():
@@ -60,5 +60,5 @@ index d684c10..6215b4b 100644
def get_reportlab_version():
--
2.29.2
2.52.0

View File

@@ -1,8 +1,17 @@
Index: b/upgrade.py
===================================================================
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
--- a/upgrade.py
+++ b/upgrade.py
@@ -207,6 +207,11 @@ if os.geteuid() == 0:
@@ -208,6 +208,11 @@ if os.geteuid() == 0:
if os.getenv("HPLIP_DEBUG"):
log.set_level('debug')
@@ -14,3 +23,6 @@ Index: b/upgrade.py
for o, a in opts:
if o in ('-h', '--help'):
usage()
--
2.52.0

View File

@@ -1,7 +1,7 @@
From 8b1bbbb9a3659475367a6f58986ac8248576663b Mon Sep 17 00:00:00 2001
From 2361ee7133810599690dd52f483fdcd943366cd0 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck@suse.com>
Date: Fri, 10 Jan 2020 14:44:51 +0100
Subject: [PATCH] hp-sendfax: avoid crash if python-reportlab is missing
Subject: [PATCH 10/33] hp-sendfax: avoid crash if python-reportlab is missing
Avoids this crash:
@@ -35,5 +35,5 @@ index 4248907..3c3e880 100644
#
--
2.24.1
2.52.0

View File

@@ -1,7 +1,7 @@
From 10fe460cca9536dbb52c30fa8bec5c6a01e94ea0 Mon Sep 17 00:00:00 2001
From 2092ec111169da87dde1be45f997e9cfd7311ab6 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/19] hp_ipp.h: add missing prototypes
Subject: [PATCH 09/33] 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.42.0
2.52.0

View File

@@ -0,0 +1,28 @@
From f0c9ccc3a4b1e58b977eb831a311a3c5973ce7e2 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
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
replace nullptr with NULL.
---
prnt/hpcups/HPCupsFilter.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/prnt/hpcups/HPCupsFilter.cpp b/prnt/hpcups/HPCupsFilter.cpp
index 6750684..7d397ed 100644
--- a/prnt/hpcups/HPCupsFilter.cpp
+++ b/prnt/hpcups/HPCupsFilter.cpp
@@ -435,7 +435,7 @@ DRIVER_ERROR HPCupsFilter::startPage (cups_page_header2_t *cups_header)
if (m_JA.media_attributes.PageSizeName[0] == '\0') {
// Copy the value of cups_header->cupsPageSizeName if it isnot null
- if (cups_header->cupsPageSizeName != nullptr) {
+ if (cups_header->cupsPageSizeName != NULL) {
strncpy(m_JA.media_attributes.PageSizeName, cups_header->cupsPageSizeName, sizeof(m_JA.media_attributes.PageSizeName));
}
}
--
2.52.0

View File

@@ -1,7 +1,7 @@
From ca4af49f2979610ff2c6818ebd0072432417ba95 Mon Sep 17 00:00:00 2001
From dc200dc097ecff4b1573afcd76f2438754fffcd7 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck@suse.com>
Date: Fri, 1 Jun 2018 17:09:31 +0200
Subject: [PATCH] hpijs: avoid segfault in DJGenericVIP::DJGenericVIP()
Subject: [PATCH 05/33] 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.17.0
2.52.0

BIN
hpijs.1.gz LFS

Binary file not shown.

View File

@@ -1,8 +1,17 @@
Index: b/configure.in
===================================================================
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
--- a/configure.in
+++ b/configure.in
@@ -628,20 +628,31 @@ if test "$class_driver" = "no" && test "
@@ -630,20 +630,31 @@ if test "$class_driver" = "no" && test "$hpijs_only_build" = "no" && test "$hpcu
fi
fi
@@ -46,7 +55,7 @@ Index: b/configure.in
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])
@@ -655,7 +666,6 @@ if test "$class_driver" = "no" && test "
@@ -683,7 +694,6 @@ if test "$class_driver" = "no" && test "$hpijs_only_build" = "no" && test "$lite
AS_IF([test "x$FOUND_HEADER" != "xyes"],
[AC_MSG_ERROR([cannot find python-devel support], 6)])
fi
@@ -54,3 +63,6 @@ Index: b/configure.in
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

Binary file not shown.

View File

@@ -1,6 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iF0EABECAB0WIQRKui9m29WpWJSRDgZz13DNpZBHuQUCZk13yQAKCRBz13DNpZBH
uc7TAKDAX4308SYP7pgb85UTMbPbhfivmgCghMp2sBrpiCvOZTeozYO4WVzW1mg=
=CKxG
-----END PGP SIGNATURE-----

BIN
hplip-3.25.8.tar.gz LFS Normal file

Binary file not shown.

11
hplip-3.25.8.tar.gz.asc Normal file
View File

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

View File

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

View File

@@ -0,0 +1,29 @@
From 4aaaf3ce526ff27f7941631889f5edf7b2a1b044 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
The code in question was apparently meant to handle the replacement
of ConfigParser.readfp() by ConfigParser.read_file(). But the code
is obviously broken, trying read_file() first and then read_file()
again.
---
base/g.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/base/g.py b/base/g.py
index 445372d..123c73e 100644
--- a/base/g.py
+++ b/base/g.py
@@ -128,7 +128,7 @@ class ConfigBase(object):
try:
fp = open(self.filename, "r")
try:
- self.conf.read_file(fp)
+ self.conf.readfp(fp)
except AttributeError as e:
log.error(f"Error: {e}. Retrying with read_file")
try:
--
2.52.0

View File

@@ -1,13 +0,0 @@
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)

View File

@@ -1,8 +1,17 @@
Index: b/data/rules/56-hpmud.rules
===================================================================
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
--- a/data/rules/56-hpmud.rules
+++ b/data/rules/56-hpmud.rules
@@ -1,8 +1,33 @@
@@ -1,8 +1,31 @@
# HPLIP udev rules file. Notify console user if plugin support is required for this device.
+#
+# SUSE changed:
@@ -27,8 +36,6 @@ Index: b/data/rules/56-hpmud.rules
+# 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"
@@ -37,7 +44,7 @@ Index: b/data/rules/56-hpmud.rules
GOTO="hpmud_rules_end"
LABEL="hpmud_usb_rules"
@@ -13,6 +38,12 @@ ENV{ID_USB_INTERFACES}=="", IMPORT{built
@@ -13,6 +36,9 @@ ENV{ID_USB_INTERFACES}=="", IMPORT{builtin}="usb_id"
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.
@@ -45,9 +52,9 @@ Index: b/data/rules/56-hpmud.rules
+#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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,127 @@
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
--- a/scan/sane/hpaio.c
+++ b/scan/sane/hpaio.c
@@ -379,7 +379,7 @@ extern SANE_Status sane_hpaio_get_devices(const SANE_Device ***deviceList, SANE_
ResetDeviceList(&DeviceList);
DevDiscovery(localOnly);
*deviceList = (const SANE_Device **)DeviceList;
- SANE_Device*** devList;
+ const SANE_Device*** devListi = NULL;
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
--- a/scan/sane/orblite.c
+++ b/scan/sane/orblite.c
@@ -64,28 +64,28 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
SANE_NAME_SCAN_TL_X, SANE_TITLE_SCAN_TL_X, SANE_DESC_SCAN_TL_X, // name, title, desc
SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeLeft // constraint_type, constraint
+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeLeft // constraint_type, constraint
},
{
SANE_NAME_SCAN_TL_Y, SANE_TITLE_SCAN_TL_Y, SANE_DESC_SCAN_TL_Y, // name, title, desc
SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeTop // constraint_type, constraint
+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeTop // constraint_type, constraint
},
{
SANE_NAME_SCAN_BR_X, SANE_TITLE_SCAN_BR_X, SANE_DESC_SCAN_BR_X, // name, title, desc
SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeRight // constraint_type, constraint
+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeRight // constraint_type, constraint
},
{
SANE_NAME_SCAN_BR_Y, SANE_TITLE_SCAN_BR_Y, SANE_DESC_SCAN_BR_Y, // name, title, desc
SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeBottom // constraint_type, constraint
+ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeBottom // constraint_type, constraint
},
// optResolution, // resolution group
@@ -93,7 +93,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
SANE_NAME_SCAN_RESOLUTION, SANE_TITLE_SCAN_RESOLUTION, SANE_DESC_SCAN_RESOLUTION, // name, title, desc
SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word), // type, unit, size,
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint
+ SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint
},
// optMode, // color/depth group
@@ -101,7 +101,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
SANE_NAME_SCAN_MODE, SANE_TITLE_SCAN_MODE, SANE_DESC_SCAN_MODE, // name, title, desc
SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_modes // constraint type, constraint
+ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_modes // constraint type, constraint
},
// optSource,
@@ -109,7 +109,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
SANE_NAME_SCAN_SOURCE, SANE_TITLE_SCAN_SOURCE, SANE_DESC_SCAN_SOURCE, // name, title, desc
SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_sources // constraint type, constraint
+ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_sources // constraint type, constraint
},
// optPaperSize,
@@ -117,7 +117,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc
SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_paper_sizes // constraint type, constraint
+ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_paper_sizes // constraint type, constraint
},
// optPaperSize,
@@ -125,7 +125,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc
SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word), // type, unit, size,
SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
- SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint
+ SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint
},
#ifdef NOTDEF
// default template
@@ -253,6 +253,7 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
SANE_Auth_Callback authorize;
const SANE_Device *** device_list;
SANE_Bool local_only;
+ void * temp_handle;
// Allocate handle, set all handle values to zero
@@ -284,7 +285,9 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
if (stat != SANE_STATUS_GOOD)
return stat;
- stat = g_handle->bb_orblite_open(devicename, &g_handle);
+ temp_handle = g_handle;
+ stat = g_handle->bb_orblite_open(devicename, &temp_handle);
+ g_handle = temp_handle;
if (stat == SANE_STATUS_GOOD)
*handle = g_handle;
--
2.52.0

View File

@@ -1,7 +1,16 @@
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
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
@@ -33,6 +33,7 @@
#include <stdio.h>
@@ -10,3 +19,6 @@ Index: hplip-3.20.9/scan/sane/http.c
#include <string.h>
#include <syslog.h>
#include <ctype.h>
--
2.52.0

View File

@@ -1,7 +1,7 @@
From eab655e0f8ab7c7520e0c60970d74e51b25c2061 Mon Sep 17 00:00:00 2001
From c15938665bca226acd1af751d885e58d41d6298b 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/18] hplip: missing drivers
Subject: [PATCH 18/33] hplip: missing drivers
---
cups_drv.inc | 2 +
@@ -10,10 +10,10 @@ Subject: [PATCH 18/18] hplip: missing drivers
3 files changed, 486 insertions(+), 9 deletions(-)
diff --git a/cups_drv.inc b/cups_drv.inc
index 8a33bfe..dc38978 100644
index 4a77af6..6612730 100644
--- a/cups_drv.inc
+++ b/cups_drv.inc
@@ -414,6 +414,7 @@ cups_ppd_printers = \
@@ -416,6 +416,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 8a33bfe..dc38978 100644
ppd/hpcups/hp-laserjet_m1005.ppd.gz \
ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
ppd/hpcups/hp-laserjet_m109-m112.ppd.gz \
@@ -531,6 +532,7 @@ cups_ppd_printers = \
@@ -534,6 +535,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 8a33bfe..dc38978 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 a567fdd..ed89569 100644
index faea8bc..aecd54a 100644
--- a/data/models/models.dat
+++ b/data/models/models.dat
@@ -2104,7 +2104,7 @@ usb-pid=411
@@ -546,10 +546,10 @@ index a567fdd..ed89569 100644
align-type=0
clean-type=0
diff --git a/prnt/drv/hpcups.drv.in b/prnt/drv/hpcups.drv.in
index 2829168..3c1377a 100644
index 5e9730b..8865213 100644
--- a/prnt/drv/hpcups.drv.in
+++ b/prnt/drv/hpcups.drv.in
@@ -23107,6 +23107,14 @@ Group "RLT/HP Real Life Technologies"
@@ -23304,6 +23304,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 2829168..3c1377a 100644
{
ModelName "HP LaserJet Professional p1106"
Attribute "NickName" "" "HP LaserJet Professional p1106, hpcups $Version"
@@ -23541,6 +23549,14 @@ Group "RLT/HP Real Life Technologies"
@@ -23738,6 +23746,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 2829168..3c1377a 100644
} // End LJZjsColor (for proprietary plugin)
--
2.43.0
2.52.0

View File

@@ -1,11 +0,0 @@
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;
}

View File

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

25
hplip-pserror-c99.patch Normal file
View File

@@ -0,0 +1,25 @@
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/hpps/pserror.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/prnt/hpps/pserror.c b/prnt/hpps/pserror.c
index 114d7e1..493b49c 100644
--- a/prnt/hpps/pserror.c
+++ b/prnt/hpps/pserror.c
@@ -24,7 +24,7 @@ extern char *program ; /* Defined by main program, giving program name */
void message(int flags, char *format, ...)
{
va_list args ;
- static column = 0 ; /* current screen column for message wrap */
+ static int column = 0 ; /* current screen column for message wrap */
char msgbuf[MAX_MESSAGE] ; /* buffer in which to put the message */
char *bufptr = msgbuf ; /* message buffer pointer */
--
2.52.0

View File

@@ -1,7 +1,17 @@
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 @@
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
dist_hplip_SCRIPTS = hpssd.py __init__.py hpdio.py
endif #HPLIP_CLASS_DRIVER
@@ -10,7 +20,7 @@ diff -ur hplip-3.21.4.orig/Makefile.am hplip-3.21.4/Makefile.am
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
@@ -595,7 +595,7 @@
@@ -598,7 +598,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp
prnt/hpcups/ImageProcessor.h
hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
@@ -19,7 +29,7 @@ diff -ur hplip-3.21.4.orig/Makefile.am hplip-3.21.4/Makefile.am
#else
#hpcupsdir = $(cupsfilterdir)
#hpcups_PROGRAMS = hpcups
@@ -685,16 +685,6 @@
@@ -696,16 +696,6 @@ endif #HPLIP_CLASS_DRIVER
install-data-hook:
if HPLIP_BUILD
@@ -36,3 +46,6 @@ diff -ur hplip-3.21.4.orig/Makefile.am hplip-3.21.4/Makefile.am
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

View File

@@ -2,8 +2,5 @@ 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__.*pyc")
addFilter("files-duplicate .*/hplip/.*/__pycache__/__init__.*.pyc")
#
addFilter("files-duplicate .*/hplip/.*/__init__.py")
addFilter("non-executable-script /usr/share/hplip/.*")

View File

@@ -0,0 +1,28 @@
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
int bb_open(struct ledm_session*);
int bb_close(struct ledm_session*);
int bb_get_parameters(struct ledm_session*, SANE_Parameters*, int);
-int bb_is_paper_in_adf(); /* 0 = no paper in adf, 1 = paper in adf, -1 = error */
+int bb_is_paper_in_adf(struct ledm_session *); /* 0 = no paper in adf, 1 = paper in adf, -1 = error */
SANE_Status bb_start_scan(struct ledm_session*);
int bb_get_image_data(struct ledm_session*, int);
int bb_end_page(struct ledm_session*, int);
--
2.52.0

View File

@@ -0,0 +1,24 @@
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
---
scan/sane/hpaio.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c
index 62d14eb..087efb1 100644
--- a/scan/sane/hpaio.c
+++ b/scan/sane/hpaio.c
@@ -50,6 +50,7 @@
#include "sclpml.h"
#include "escl.h"
#include "io.h"
+#include "orblite.h"
#include "orblitei.h"
--
2.52.0

View File

@@ -0,0 +1,52 @@
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.c | 22 +---------------------
1 file changed, 1 insertion(+), 21 deletions(-)
diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c
index 87c4de8..490ad82 100644
--- a/scan/sane/orblite.c
+++ b/scan/sane/orblite.c
@@ -20,6 +20,7 @@
#include "orblitei.h"
#include "orblite.h"//Added New
#include <math.h>
+#include <dlfcn.h>
#include "utils.h"
#include "io.h"
@@ -193,27 +194,6 @@ bugout:
}
-static int bb_unload(SANE_THandle ps)
-{
- _DBG("Calling orblite bb_unload: \n");
- if (ps->bb_handle)
- {
- dlclose(ps->bb_handle);
- ps->bb_handle = NULL;
- }
- if (ps->hpmud_handle)
- {
- dlclose(ps->hpmud_handle);
- ps->hpmud_handle = NULL;
- }
-// if (ps->math_handle)
-// {
-// dlclose(ps->math_handle);
-// ps->math_handle = NULL;
-// }
- return 0;
-}
-
SANE_Status
orblite_init (SANE_Int * version_code, SANE_Auth_Callback authorize)
{
--
2.52.0

View File

@@ -0,0 +1,26 @@
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
---
scan/sane/sclpml.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/scan/sane/sclpml.c b/scan/sane/sclpml.c
index 3250541..97fa608 100644
--- a/scan/sane/sclpml.c
+++ b/scan/sane/sclpml.c
@@ -51,6 +51,9 @@
#define DEBUG_DECLARE_ONLY
#include "sanei_debug.h"
+/* This file is not built with _GNU_SOURCE. */
+char *strcasestr(const char *, const char *);
+
//# define SCLPML_DEBUG
# ifdef SCLPML_DEBUG
# define _DBG(args...) syslog(LOG_INFO, __FILE__ " " STRINGIZE(__LINE__) ": " args)
--
2.52.0

View File

@@ -1,8 +1,17 @@
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-
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
# hpmud.rules
if !HPLIP_CLASS_DRIVER
@@ -11,3 +20,6 @@ Index: hplip-3.20.9/Makefile.am
if UDEV_SYSFS_RULES
dist_rules_DATA = data/rules/56-hpmud_sysfs.rules
else
--
2.52.0

View File

@@ -0,0 +1,68 @@
From 81e1d025b161f82bf3e24ae0710b5488ae2d689a 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
https://bugs.launchpad.net/hplip/+bug/2110100
---
base/smart_install.py | 2 +-
base/utils.py | 12 +++++++++++-
installer/pluginhandler.py | 4 ++--
3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/base/smart_install.py b/base/smart_install.py
index cff5924..699f70f 100755
--- a/base/smart_install.py
+++ b/base/smart_install.py
@@ -155,7 +155,7 @@ def validate(mode, smart_install_run, smart_install_asc, req_checksum=''):
calc_checksum = utils.get_checksum(open(smart_install_run, 'r').read())
log.debug("File checksum=%s" % calc_checksum)
- if req_checksum and req_checksum != calc_checksum:
+ if utils.sha256_checksum(req_checksum) != calc_checksum:
return ERROR_FILE_CHECKSUM, queryString(ERROR_CHECKSUM_ERROR, 0, plugin_file)
#Validate Digital Signature
diff --git a/base/utils.py b/base/utils.py
index 6f1412d..24bcc6d 100644
--- a/base/utils.py
+++ b/base/utils.py
@@ -72,8 +72,18 @@ import hashlib
def get_checksum(s):
return hashlib.sha256(s).hexdigest()
+__sha1_sha256_map = {
+ "bd99405113d43447e7a37ed46d75187785774cff":
+ "9a2cf8d5661e846548dbbb595231a5448a5cb63729cc93df8d1f652dfd167a54"
+}
-
+def sha256_checksum(s):
+ if not s:
+ return ""
+ elif s in __sha1_sha256_map:
+ return __sha1_sha256_map[s]
+ else:
+ return s
# Local
from .g import *
diff --git a/installer/pluginhandler.py b/installer/pluginhandler.py
index a37db39..26b0033 100755
--- a/installer/pluginhandler.py
+++ b/installer/pluginhandler.py
@@ -217,9 +217,9 @@ class PluginHandle(object):
def __validatePlugin(self,plugin_file, digsig_file, req_checksum):
#Validate Checksum
- calc_checksum = get_checksum(open(plugin_file, 'rb').read())
+ calc_checksum = utils.get_checksum(open(plugin_file, 'rb').read())
log.debug("D/L file checksum=%s" % calc_checksum)
- if req_checksum and req_checksum != calc_checksum:
+ if utils.sha256_checksum(req_checksum) != calc_checksum:
return ERROR_CHECKSUM_ERROR, queryString(ERROR_CHECKSUM_ERROR, 0, plugin_file)
#Validate Digital Signatures
--
2.52.0

View File

@@ -1,3 +1,288 @@
-------------------------------------------------------------------
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>
- Fix verification of HP plugin with new GPG key (lp#2120738)
* add hplip-hardcode-new-signing-key-AC69536A2CF3A243.patch
- Fix python crash in hp-setup on compressed PPD file (lp#2120739)
* add hp-setup-fix-python-crash-when-manually-importing-gz.patch
- Fix missing urllib.URLopener in python 3.14 (lp#2115046)
* add hplip-no-urlopener.patch
- Only run cupstestppd if explicitly requested with "--with testppd"
build parameter
-------------------------------------------------------------------
Fri Aug 15 15:59:19 UTC 2025 - Martin Wilck <mwilck@suse.com>
- Updated hplip gpg public key
fingerprint: 82FF A7C6 AA74 11D9 34BD E173 AC69 536A 2CF3 A243
https://developers.hp.com/hp-linux-imaging-and-printing/hplipDigitalCertificate.html
- Update to hplip 3.25.6
- Added support for new printers:
* HP LaserJet Enterprise Flow MFP 8601z
* HP LaserJet Pro MFP M126a plus
* HP LaserJet Pro MFP M126nw plus
* HP LaserJet Pro MFP M126snw plus
* HP Envy Photo 7200 series
* HP Envy Photo 7900 series
* HP OfficeJet Pro 9110 Series
* HP OfficeJet 9120 Series
* HP OfficeJet Pro 9120 Series
* HP OfficeJet Pro 9130 Series
-------------------------------------------------------------------
Thu Aug 14 19:57:37 UTC 2025 - Lubos Kocman <lubos.kocman@suse.com>
- Disable hp-scan-utils on Leap 16.0
Leap does not want to ship scikit-image -> python-pandas
-------------------------------------------------------------------
Tue Jul 15 17:52:47 UTC 2025 - Martin Wilck <mwilck@suse.com>
- Fix ReDoS issue in HPLIP's SLP parser (bsc#1245358)
* add Fix-ReDoS-issue-in-HPLIP-s-SLP-parser.patch
-------------------------------------------------------------------
Wed May 7 13:33:02 UTC 2025 - Martin Wilck <mwilck@suse.com>
- Update to hplip 3.25.2
- Added support for new printers:
* HP LaserJet Enterprise Flow MFP 8601z
* HP LaserJet Enterprise Flow MFP 8601z+
* HP LaserJet Enterprise MFP 8601dn
* HP Color LaserJet Enterprise MFP 8801dn
* HP Color LaserJet Enterprise Flow MFP 8801z
* HP Color LaserJet Enterprise Flow MFP 8801z+
* HP LaserJet Enterprise 8501dn
* HP LaserJet Enterprise 8501x
* HP LaserJet Enterprise 8501x+
* DEX MFP D826
* DEX MFP D82640
* DEX MFP D82650
* DEX MFP D82660
* DEX D50145
* DEX MFP D42540
* DEX MFP D52645
* DEX Color D55745
* DEX Color MFP D57945
* DEX Color MFP D677
* DEX Color MFP D67755
* DEX Color MFP D67765
* DEX Color MFP D877
* DEX Color MFP D87740
* DEX Color MFP D87750
* DEX Color MFP D87760
* DEX Color MFP D87770
* DEX Color MFP D786
* DEX Colour MFP D78625
* DEX Color MFP D78630
* DEX Color MFP D78635
* DEX MFP D731
* DEX MFP D73130
* DEX MFP D73135
* DEX MFP D73140
- Fix plugin verification with sha256 (lp#2110100)
* add hplip-utils-Fix-plugin-verification-with-sha256.patch
- Fix C++ compilation on SLE12
* add hpcups-fix-compilation-on-SLE12.patch
-------------------------------------------------------------------
Mon May 5 11:07:28 UTC 2025 - Friedrich Haubensak <hsk17@mail.de>
- Add hplip-3.24.4-gcc15.patch to fix gcc-15 compile time error
(lp#2096650)
-------------------------------------------------------------------
Wed Jan 29 14:51:04 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Add python3-setuptools BuildRequires: replaces the fix to
manually inject PYTHON_INCLUDEDIR. Fix needed to build against
Python 3.13.
-------------------------------------------------------------------
Thu Jan 23 11:52:26 UTC 2025 - Martin Wilck <mwilck@suse.com>
- Fix error in ConfigBase handling (bsc#1209401)
- add hplip-base-fix-error-in-ConfigBase-handling.patch
-------------------------------------------------------------------
Wed Jan 22 16:52:17 UTC 2025 - Martin Wilck <mwilck@suse.com>
- Fix python error on SLE12-SP3 (bsc#1209401, bsc#1234745)
- add hplip-base-replace-f-string-with-string.format-for-p.patch
-------------------------------------------------------------------
Tue Jan 14 11:34:35 UTC 2025 - Martin Wilck <mwilck@suse.com>
- hplip.spec: re-introduce macros for SLE12 compatibility, so that
we can backport security fixes to older releases
(bsc#1234745, CVE-2020-6923, jsc#PED-11978)
-------------------------------------------------------------------
Mon Jul 15 15:19:58 UTC 2024 - Martin Jambor <mjambor@suse.com>
- Add hplip-pserror-c99.patch hplip-scan-hpaio-include.patch
hplip-scan-orblite-c99.patch hplip-sclpml-strcasestr.patch
hplip-hpaio-gcc14.patch to avoid C99 violations which prevent
building with GCC 14. [boo#1225777]
-------------------------------------------------------------------
Fri Jun 21 21:30:55 UTC 2024 - Martin Wilck <martin.wilck@suse.com>
@@ -9,6 +294,8 @@ Fri Jun 21 21:30:55 UTC 2024 - Martin Wilck <martin.wilck@suse.com>
* HP OfficeJet Pro 8130 All-in-One series
* HP OfficeJet Pro 9720 Series
* HP OfficeJet Pro 9730 Series
- Bug fixes:
* hpmud: sanitize printer serial number (bsc#1209401, lp#2012262)
-------------------------------------------------------------------
Thu Feb 22 07:51:33 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
@@ -28,7 +315,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

View File

@@ -1,39 +1,37 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.18 (GNU/Linux)
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
=lgaV
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
6saq
=EWRb
-----END PGP PUBLIC KEY BLOCK-----

File diff suppressed because it is too large Load Diff

View File

@@ -1,17 +1,17 @@
From 74ed15a16e7564d0665afc68defbd6d03bdff21d Mon Sep 17 00:00:00 2001
From 0e635e8c5d97b4ab86a16678c38cd43c8086679e Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck@suse.com>
Date: Wed, 21 Mar 2018 23:55:12 +0100
Subject: [PATCH] pcardext: python3 fixes
Subject: [PATCH 07/33] 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 c1a8273e4359..cdf260d62223 100644
index 131e5e9..e1eb3e1 100644
--- a/pcard/pcardext/pcardext.c
+++ b/pcard/pcardext/pcardext.c
@@ -36,6 +36,12 @@ typedef int Py_ssize_t;
@@ -39,6 +39,12 @@ typedef int Py_ssize_t;
#define PY_SSIZE_T_MIN INT_MIN
#endif
@@ -24,7 +24,7 @@ index c1a8273e4359..cdf260d62223 100644
int verbose=0;
PyObject * readsectorFunc = NULL;
@@ -78,8 +84,11 @@ int WriteSector(int sector, int nsector, void *buf, int size )
@@ -81,8 +87,11 @@ int WriteSector(int sector, int nsector, void *buf, int size )
if( writesectorFunc )
{
@@ -37,7 +37,7 @@ index c1a8273e4359..cdf260d62223 100644
return PyInt_AS_LONG( result );
}
@@ -230,9 +239,31 @@ static PyMethodDef pcardext_methods[] =
@@ -233,9 +242,31 @@ static PyMethodDef pcardext_methods[] =
{ NULL, NULL }
};
@@ -70,12 +70,12 @@ index c1a8273e4359..cdf260d62223 100644
void initpcardext( void )
{
PyObject * mod = Py_InitModule4( "pcardext", pcardext_methods,
@@ -243,4 +274,5 @@ void initpcardext( void )
@@ -246,4 +277,5 @@ void initpcardext( void )
return;
}
+#endif
--
2.16.1
2.52.0

View File

@@ -1,7 +1,7 @@
From 92ddbb36e2a589fe4d1cf27c30b67a1bb12bf9dc Mon Sep 17 00:00:00 2001
From 158a81abdd16a9fe05869de1b76baa1075f8a7bd Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck@suse.com>
Date: Fri, 16 Nov 2018 11:00:44 +0100
Subject: [PATCH] ui5/systemtray: wait only 10s for system tray
Subject: [PATCH 06/33] 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 a0cdaf1..101807a 100644
index 28078cf..96ec37c 100644
--- a/ui5/systemtray.py
+++ b/ui5/systemtray.py
@@ -841,7 +841,7 @@ def run(read_pipe):
@@ -23,5 +23,5 @@ index a0cdaf1..101807a 100644
break
time.sleep(1.0)
--
2.21.0
2.52.0