From 121a2286ef9998ad2fc943438acb592b76e716af Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 28 Mar 2022 20:09:25 +0200 Subject: [PATCH 01/84] make libsane-hpaio only suggested to prevent possible duplicated scanner devices ipp-usb is pulled in automatically now, so newer devices can be supported by two backends, sane-airscan and libsane-hpaio, which can be confusing. So make libsane-hpaio only suggested to prevent that. --- hplip.spec | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/hplip.spec b/hplip.spec index 3e0e6bb..9709cc5 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.22.2 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -260,8 +260,6 @@ Requires: python3-dbus Requires: %{_bindir}/gpg # /usr/lib/udev/rules.d Requires: systemd -# 1733449 - Scanner on an HP AIO printer is not detected unless libsane-hpaio is installed -Requires: libsane-hpaio # 1788643 - Fedora minimal does not ship tar by default Requires: tar # require usbutils, hp-diagnose_queues needs lsusb @@ -274,6 +272,8 @@ Recommends: avahi-tools # stop the update Requires(post): coreutils +# 1733449 - Scanner on an HP AIO printer is not detected unless libsane-hpaio is installed +Suggests: libsane-hpaio %description The Hewlett-Packard Linux Imaging and Printing Project provides @@ -307,7 +307,7 @@ Requires: python3-reportlab # hpssd.py Requires: python3-gobject Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: libsane-hpaio%{?_isa} = %{version}-%{release} +Suggests: libsane-hpaio%{?_isa} = %{version}-%{release} %description gui HPLIP graphical tools. @@ -873,6 +873,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Mon Mar 28 2022 Zdenek Dohnal - 3.22.2-2 +- make libsane-hpaio only suggested to prevent possible duplicated scanner devices + * Thu Mar 10 2022 Zdenek Dohnal - 3.22.2-1 - 2059085 - hplip-3.22.2 is available From 0933ecaffa3ac02015f358961e2f418443b50f0d Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Wed, 11 May 2022 13:31:08 +0200 Subject: [PATCH 02/84] 2079740 - hplip-3.22.4 is available --- .gitignore | 1 + hplip-py310-collections-abc.patch | 13 ------------- hplip-qt5-smart-install.py | 13 ------------- hplip.spec | 15 ++++----------- sources | 2 +- 5 files changed, 6 insertions(+), 38 deletions(-) delete mode 100644 hplip-py310-collections-abc.patch delete mode 100644 hplip-qt5-smart-install.py diff --git a/.gitignore b/.gitignore index 069fe93..8c9958b 100644 --- a/.gitignore +++ b/.gitignore @@ -105,3 +105,4 @@ hplip-3.10.6.tar.gz /hplip-3.21.2-repack.tar.gz /hplip-3.21.12-repack.tar.gz /hplip-3.22.2-repack.tar.gz +/hplip-3.22.4-repack.tar.gz diff --git a/hplip-py310-collections-abc.patch b/hplip-py310-collections-abc.patch deleted file mode 100644 index a31687d..0000000 --- a/hplip-py310-collections-abc.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/base/exif.py b/base/exif.py -index 2b8c447..38dca63 100644 ---- a/base/exif.py -+++ b/base/exif.py -@@ -798,7 +798,7 @@ class EXIF_header: - tag_name=tag_entry[0] - if len(tag_entry) != 1: - # optional 2nd tag element is present -- if isinstance(tag_entry[1], collections.Callable): -+ if isinstance(tag_entry[1], collections.abc.Callable): - # call mapping function - printable=tag_entry[1](values) - else: diff --git a/hplip-qt5-smart-install.py b/hplip-qt5-smart-install.py deleted file mode 100644 index 322edf1..0000000 --- a/hplip-qt5-smart-install.py +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/base/smart_install.py b/base/smart_install.py -index ec30aef..dd95e09 100755 ---- a/base/smart_install.py -+++ b/base/smart_install.py -@@ -226,7 +226,7 @@ def disable(mode, ui_toolkit='qt4', dialog=None, app=None, passwordObj = None): - dialog.init(printer_names, "", QUEUES_SMART_INSTALL_ENABLED) - else: # If QT object is not created, creating QT app - try: -- from ui4.queuesconf import QueuesDiagnose -+ from ui5.queuesconf import QueuesDiagnose - except ImportError: - log.error("Unable to load Qt4 support. Is it installed?") - else: # app = QApplication(sys.argv) # caller needs to inoke this, if already QApplication object is not created. diff --git a/hplip.spec b/hplip.spec index 9709cc5..a61292d 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.22.2 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -192,12 +192,6 @@ Patch59: hplip-gpgdir-perms.patch Patch60: hplip-plugin-udevissues.patch # reported upstream https://bugs.launchpad.net/hplip/+bug/1938504 Patch61: hplip-osname-mismatch.patch -# 2015428 - python3.10 has Callable in collections.abc -# reported as https://bugs.launchpad.net/hplip/+bug/1948801 -Patch62: hplip-py310-collections-abc.patch -# 2015910 - [GUI] hp-setup crashes when loading smart_install module -# reported as https://bugs.launchpad.net/hplip/+bug/1957891 -Patch63: hplip-qt5-smart-install.py %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -514,10 +508,6 @@ done %patch60 -p1 -b .hpplugin-udevperms # upstream bug https://bugs.launchpad.net/hplip/+bug/1938504 %patch61 -p1 -b .osname-mismatch -# 2015428 - python3.10 has Callable in collections.abc -%patch62 -p1 -b .abc -# 2015910 - [GUI] hp-setup crashes when loading smart_install module -%patch63 -p1 -b .qt5-smart %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui should be installed if you want GUI @@ -873,6 +863,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Wed May 11 2022 Zdenek Dohnal - 3.22.2-3 +- 2079740 - hplip-3.22.4 is available + * Mon Mar 28 2022 Zdenek Dohnal - 3.22.2-2 - make libsane-hpaio only suggested to prevent possible duplicated scanner devices diff --git a/sources b/sources index 80c60de..341dfad 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hplip-3.22.2-repack.tar.gz) = ab7e0bb4eaaa04aa4be4ee8d1ea5825d3856e93f9a2108149f7282c988c079949668dacfd5b69af0e2a812d2ebc01ff2205d2548336ce43faf6591a98f80e874 +SHA512 (hplip-3.22.4-repack.tar.gz) = 33b228ee29536060918d0d15ff563c77e189d1ba1dd728b3038d202714a5d8d7742effb6ad8a2b1e5ea104784bc5d995bf793e4b61ab26552737e09aad318f3e From 129beeedb91f5f4f26c480e23825db54ec4b7583 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Wed, 11 May 2022 13:32:21 +0200 Subject: [PATCH 03/84] 2079740 - hplip-3.22.4 is available --- hplip.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hplip.spec b/hplip.spec index a61292d..5340480 100644 --- a/hplip.spec +++ b/hplip.spec @@ -6,8 +6,8 @@ Summary: HP Linux Imaging and Printing Project Name: hplip -Version: 3.22.2 -Release: 3%{?dist} +Version: 3.22.4 +Release: 1%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -863,7 +863,7 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog -* Wed May 11 2022 Zdenek Dohnal - 3.22.2-3 +* Wed May 11 2022 Zdenek Dohnal - 3.22.4-1 - 2079740 - hplip-3.22.4 is available * Mon Mar 28 2022 Zdenek Dohnal - 3.22.2-2 From eabb56cabed7b4d1c18977b3e51bb9afaac8c939 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Wed, 11 May 2022 13:38:09 +0200 Subject: [PATCH 04/84] Fix prep phase --- hplip-systray-qt5.patch | 14 -------------- hplip.spec | 21 ++++++++------------- 2 files changed, 8 insertions(+), 27 deletions(-) delete mode 100644 hplip-systray-qt5.patch diff --git a/hplip-systray-qt5.patch b/hplip-systray-qt5.patch deleted file mode 100644 index 00d2d32..0000000 --- a/hplip-systray-qt5.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/base/module.py b/base/module.py -index 04ac5b8..56be168 100644 ---- a/base/module.py -+++ b/base/module.py -@@ -301,6 +301,9 @@ class Module(object): - if UI_TOOLKIT_QT4 in self.supported_ui_toolkits and UI_TOOLKIT_QT4 in self.installed_ui_toolkits: - long_params.extend(['qt4', 'use-qt4']) - -+ if UI_TOOLKIT_QT5 in self.supported_ui_toolkits and UI_TOOLKIT_QT5 in self.installed_ui_toolkits: -+ long_params.extend(['qt5', 'use-qt5']) -+ - if extra_params is not None: - params = ''.join([params, extra_params]) - diff --git a/hplip.spec b/hplip.spec index 5340480..c94227a 100644 --- a/hplip.spec +++ b/hplip.spec @@ -178,20 +178,17 @@ Patch55: hplip-fab-import.patch # it fails further down - break out earlier with a message # reported upstream as https://bugs.launchpad.net/hplip/+bug/1916114 Patch56: hplip-hpsetup-noscanjets.patch -# 1951922 - hp-systray doesn't support a valid --qt5 option -# reported upstream https://bugs.launchpad.net/hplip/+bug/1925480 -Patch57: hplip-systray-qt5.patch # 1963114 - patch for hplip firmware load timeout fix # reported upstream https://bugs.launchpad.net/hplip/+bug/1922404 -Patch58: hplip-hpfirmware-timeout.patch +Patch57: hplip-hpfirmware-timeout.patch # 1985251 - Incorrect permission for gpg directory # reported upstream https://bugs.launchpad.net/hplip/+bug/1938442 -Patch59: hplip-gpgdir-perms.patch +Patch58: hplip-gpgdir-perms.patch # 1987141 - hp-plugin installs malformed udev files # reported upstream https://bugs.launchpad.net/hplip/+bug/1847477 -Patch60: hplip-plugin-udevissues.patch +Patch59: hplip-plugin-udevissues.patch # reported upstream https://bugs.launchpad.net/hplip/+bug/1938504 -Patch61: hplip-osname-mismatch.patch +Patch60: hplip-osname-mismatch.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -498,16 +495,14 @@ done # if an user tries to install scanner via hp-setup (printer/fax utility) # it fails further down - break out earlier with a message %patch56 -p1 -b .hpsetup-noscanjets -# 1951922 - hp-systray doesn't support a valid --qt5 option -%patch57 -p1 -b .systray-qt5 # 1963114 - patch for hplip firmware load timeout fix -%patch58 -p1 -b .hpfirmware-timeout +%patch57 -p1 -b .hpfirmware-timeout # 1985251 - Incorrect permission for gpg directory -%patch59 -p1 -b .gpgdir-perms +%patch58 -p1 -b .gpgdir-perms # 1987141 - hp-plugin installs malformed udev files -%patch60 -p1 -b .hpplugin-udevperms +%patch59 -p1 -b .hpplugin-udevperms # upstream bug https://bugs.launchpad.net/hplip/+bug/1938504 -%patch61 -p1 -b .osname-mismatch +%patch60 -p1 -b .osname-mismatch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui should be installed if you want GUI From 297f625d957216cbfffbab984afbc76424f5e30f Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 17 May 2022 12:53:06 +0200 Subject: [PATCH 05/84] 2080235 - Misleading errors about missing shared libraries when scanning --- hplip-no-libhpmud-libm-warnings.patch | 108 ++++++++++++++++++++++++++ hplip.spec | 14 ++++ 2 files changed, 122 insertions(+) create mode 100644 hplip-no-libhpmud-libm-warnings.patch diff --git a/hplip-no-libhpmud-libm-warnings.patch b/hplip-no-libhpmud-libm-warnings.patch new file mode 100644 index 0000000..160b70e --- /dev/null +++ b/hplip-no-libhpmud-libm-warnings.patch @@ -0,0 +1,108 @@ +diff --git a/scan/sane/escl.c b/scan/sane/escl.c +index 9fbbcaf..bc9e0b5 100644 +--- a/scan/sane/escl.c ++++ b/scan/sane/escl.c +@@ -37,18 +37,12 @@ static int bb_load(struct escl_session *ps, const char *so) + int stat=1; + + /* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */ +- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL) +- { +- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL) +- goto bugout; +- } ++ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL) ++ goto bugout; + + /* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */ +- if ((ps->math_handle = load_library("libm.so")) == NULL) +- { +- if ((ps->math_handle = load_library("libm.so.6")) == NULL) +- goto bugout; +- } ++ if ((ps->math_handle = load_library("libm.so.6")) == NULL) ++ goto bugout; + if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL) + { + SendScanEvent(ps->uri, EVENT_PLUGIN_FAIL); +diff --git a/scan/sane/marvell.c b/scan/sane/marvell.c +index 236f7c9..793104c 100644 +--- a/scan/sane/marvell.c ++++ b/scan/sane/marvell.c +@@ -60,18 +60,12 @@ static int bb_load(struct marvell_session *ps, const char *so) + int stat=1; + + /* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */ +- if ((ps->hpmud_handle = load_library("libhpmud.so")) == NULL) +- { +- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL) +- goto bugout; +- } ++ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL) ++ goto bugout; + + /* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */ +- if ((ps->math_handle = load_library("libm.so")) == NULL) +- { +- if ((ps->math_handle = load_library("libm.so.6")) == NULL) +- goto bugout; +- } ++ if ((ps->math_handle = load_library("libm.so.6")) == NULL) ++ goto bugout; + + if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL) + { +diff --git a/scan/sane/soap.c b/scan/sane/soap.c +index 0d22e52..dcd8c7c 100644 +--- a/scan/sane/soap.c ++++ b/scan/sane/soap.c +@@ -68,18 +68,12 @@ static int bb_load(struct soap_session *ps, const char *so) + int stat=1; + + /* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */ +- if ((ps->hpmud_handle = load_library("libhpmud.so")) == NULL) +- { +- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL) +- goto bugout; +- } ++ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL) ++ goto bugout; + + /* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */ +- if ((ps->math_handle = load_library("libm.so")) == NULL) +- { +- if ((ps->math_handle = load_library("libm.so.6")) == NULL) +- goto bugout; +- } ++ if ((ps->math_handle = load_library("libm.so.6")) == NULL) ++ goto bugout; + + if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL) + { +diff --git a/scan/sane/soapht.c b/scan/sane/soapht.c +index 139100d..74e8391 100644 +--- a/scan/sane/soapht.c ++++ b/scan/sane/soapht.c +@@ -62,18 +62,12 @@ static int bb_load(struct soap_session *ps, const char *so) + int stat=1; + + /* Load hpmud manually with symbols exported. Otherwise the plugin will not find it. */ +- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL) +- { +- if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL) +- goto bugout; +- } ++ if ((ps->hpmud_handle = load_library("libhpmud.so.0")) == NULL) ++ goto bugout; + + /* Load math library manually with symbols exported (Ubuntu 8.04). Otherwise the plugin will not find it. */ +- if ((ps->math_handle = load_library("libm.so")) == NULL) +- { +- if ((ps->math_handle = load_library("libm.so.6")) == NULL) +- goto bugout; +- } ++ if ((ps->math_handle = load_library("libm.so.6")) == NULL) ++ goto bugout; + + if ((ps->bb_handle = load_plugin_library(UTILS_SCAN_PLUGIN_LIBRARY, so)) == NULL) + { diff --git a/hplip.spec b/hplip.spec index c94227a..57ed4ef 100644 --- a/hplip.spec +++ b/hplip.spec @@ -189,6 +189,15 @@ Patch58: hplip-gpgdir-perms.patch Patch59: hplip-plugin-udevissues.patch # reported upstream https://bugs.launchpad.net/hplip/+bug/1938504 Patch60: hplip-osname-mismatch.patch +# 2080235 - Misleading errors about missing shared libraries when scanning +# downstream patch to prevent errors: +# - when loading libhpmud.so - unversioned .so files belong into devel packages, +# but dlopen() in hplip was set to load the unversioned .so - so to remove rpmlint +# error (when libhpmud.so is in non-devel package) and prevent runtime dependency on -devel +# package (if libhpmud.so had been moved to -devel) the dlopen on unversioned .so file was +# removed +# - /lib64/libm.so is not symlink but ld script, which cannot be used in dlopen() +Patch61: hplip-no-libhpmud-libm-warnings.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -503,6 +512,8 @@ done %patch59 -p1 -b .hpplugin-udevperms # upstream bug https://bugs.launchpad.net/hplip/+bug/1938504 %patch60 -p1 -b .osname-mismatch +# 2080235 - Misleading errors about missing shared libraries when scanning +%patch61 -p1 -b .no-libm-libhpmud-warn %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui should be installed if you want GUI @@ -858,6 +869,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Tue May 17 2022 Zdenek Dohnal - 3.22.4-1 +- 2080235 - Misleading errors about missing shared libraries when scanning + * Wed May 11 2022 Zdenek Dohnal - 3.22.4-1 - 2079740 - hplip-3.22.4 is available From e4d8f7e061c99f193da9e733cc1a9c5132e0e63a Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 13 Jun 2022 17:35:17 +0200 Subject: [PATCH 06/84] Rebuilt for Python 3.11 --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index 57ed4ef..c7c5eec 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.22.4 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -869,6 +869,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Mon Jun 13 2022 Python Maint - 3.22.4-2 +- Rebuilt for Python 3.11 + * Tue May 17 2022 Zdenek Dohnal - 3.22.4-1 - 2080235 - Misleading errors about missing shared libraries when scanning From c7dbb064bdb2253e12905a14126216ee2d047fd2 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 18 Jul 2022 11:57:36 +0200 Subject: [PATCH 07/84] recommend libsane-hpaio - duplicated scanners are better than no scanner --- hplip.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hplip.spec b/hplip.spec index c7c5eec..ff04eab 100644 --- a/hplip.spec +++ b/hplip.spec @@ -273,7 +273,7 @@ Recommends: avahi-tools Requires(post): coreutils # 1733449 - Scanner on an HP AIO printer is not detected unless libsane-hpaio is installed -Suggests: libsane-hpaio +Recommends: libsane-hpaio%{?_isa} = %{version}-%{release} %description The Hewlett-Packard Linux Imaging and Printing Project provides @@ -307,7 +307,7 @@ Requires: python3-reportlab # hpssd.py Requires: python3-gobject Requires: %{name}%{?_isa} = %{version}-%{release} -Suggests: libsane-hpaio%{?_isa} = %{version}-%{release} +Recommends: libsane-hpaio%{?_isa} = %{version}-%{release} %description gui HPLIP graphical tools. @@ -869,6 +869,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Mon Jul 18 2022 Zdenek Dohnal - 3.22.4-3 +- recommend libsane-hpaio - duplicated scanners are better than no scanner + * Mon Jun 13 2022 Python Maint - 3.22.4-2 - Rebuilt for Python 3.11 From 3c7687254deeef5381343f15cd0b046c3fa084b2 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 18 Jul 2022 12:10:41 +0200 Subject: [PATCH 08/84] hplip-repack.sh: Merge hplip-repack and hplip-rebase --- hplip-rebase.sh | 25 ------------------------- hplip-repack.sh | 10 ++++++++++ 2 files changed, 10 insertions(+), 25 deletions(-) delete mode 100755 hplip-rebase.sh diff --git a/hplip-rebase.sh b/hplip-rebase.sh deleted file mode 100755 index f33edca..0000000 --- a/hplip-rebase.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -if [ "$1" == "-h" -o "$1" == "--help" ] -then - echo "Usage: ./hplip-rebase.sh X.Y.Z" - echo " X.Y.Z - new hplip version" - exit 0 -fi - -wget -O hplip-plugin.run http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-$1-plugin.run - -if [ $? -gt 0 ] -then - echo "Error while downloading plugin. Check version passed by argument or internet connection. For usage run script with -h or --help argument." - rm hplip-plugin.run - exit 1 -fi -rm hplip-plugin.run - -fedpkg mockbuild -if [ $? -gt 0 ] -then - echo "Error during mockbuild." - exit 1 -fi -exit 0 diff --git a/hplip-repack.sh b/hplip-repack.sh index 7639dbe..c25fbb0 100755 --- a/hplip-repack.sh +++ b/hplip-repack.sh @@ -18,5 +18,15 @@ rm hplip-$VERSION/prnt/hpcups/ErnieFilter.{cpp,h} hplip-$VERSION/prnt/hpijs/erni # compress into a new tarball tar -cjvf hplip-$VERSION-repack.tar.gz hplip-$VERSION || exit 1 +# check whether plugin is available +wget -O hplip-plugin.run https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-$1-plugin.run || exit 1 + +# check whether the file is sane +file --mime hplip-plugin.run | grep 'x-shellscript' || exit 1 + +echo "hplip-${VERSION}-repack.tar.gz is prepared for uploading..." + +exit 0 + # upload a new source tarball #fedpkg new-sources hplip-$VERSION-repack.tar.gz || exit 1 From cfce1c8fa6b2d016665477be0bf1479cf3a2c93f Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 19 Jul 2022 16:20:46 +0200 Subject: [PATCH 09/84] recommend libsane-hpaio - duplicated scanners are better than no scanner 2101790 - hplip-3.22.6 is available --- .gitignore | 1 + hplip-configure-python.patch | 4 +-- hplip-error-print.patch | 44 ------------------------------- hplip-snprintf-format.patch | 50 ++++++++++++++++++++++++++++++++++++ hplip.spec | 12 +++++++-- sources | 2 +- 6 files changed, 64 insertions(+), 49 deletions(-) create mode 100644 hplip-snprintf-format.patch diff --git a/.gitignore b/.gitignore index 8c9958b..2da15b2 100644 --- a/.gitignore +++ b/.gitignore @@ -106,3 +106,4 @@ hplip-3.10.6.tar.gz /hplip-3.21.12-repack.tar.gz /hplip-3.22.2-repack.tar.gz /hplip-3.22.4-repack.tar.gz +/hplip-3.22.6-repack.tar.gz diff --git a/hplip-configure-python.patch b/hplip-configure-python.patch index 9dc78cd..2ae7620 100644 --- a/hplip-configure-python.patch +++ b/hplip-configure-python.patch @@ -28,8 +28,8 @@ diff -up hplip-3.20.9/configure.in.configure-python hplip-3.20.9/configure.in + AC_MSG_ERROR([Cannot get Python libs via python3-config], 6) +fi + -+SAVE_CFLAGS=$CFLAGS -+SAVE_LIBS=$LIBS ++SAVE_CFLAGS="$CFLAGS" ++SAVE_LIBS="$LIBS" + +CFLAGS="$CFLAGS $PYTHON_INCLUDES" +LIBS="$LIBS $PYTHON_LIBS" diff --git a/hplip-error-print.patch b/hplip-error-print.patch index e4b3e5f..b7b1a6f 100644 --- a/hplip-error-print.patch +++ b/hplip-error-print.patch @@ -32,47 +32,3 @@ index fdb48e8..345ed82 100644 self.cleanup(EVENT_PCARD_UNABLE_TO_MOUNT) return False -diff --git a/ui4/wifisetupdialog.py b/ui4/wifisetupdialog.py -index 9fd1786..4d36f83 100644 ---- a/ui4/wifisetupdialog.py -+++ b/ui4/wifisetupdialog.py -@@ -256,7 +256,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog): - try: - self.dev = device.Device(self.device_uri) - except Error as e: -- FailureUI(self, self.__tr("Error opening device:

%s

(%s)

") %(self.device_uri, QString(e[0]))) -+ FailureUI(self, self.__tr("Error opening device:

%s

(%s)

") %(self.device_uri, QString(e.msg))) - - if self.dev is not None: - self.dev.close() -@@ -834,7 +834,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog): - - - def showIOError(self, e): -- FailureUI(self, self.__tr("An I/O error occurred.

Please check the USB connection to your printer and try again.

(%s)" % QString(e[0]))) -+ FailureUI(self, self.__tr("An I/O error occurred.

Please check the USB connection to your printer and try again.

(%s)" % QString(e.msg))) - - if self.dev is not None: - self.dev.close() -diff --git a/ui5/wifisetupdialog.py b/ui5/wifisetupdialog.py -index e0c7aee..74cc0ef 100644 ---- a/ui5/wifisetupdialog.py -+++ b/ui5/wifisetupdialog.py -@@ -259,7 +259,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog): - try: - self.dev = device.Device(self.device_uri) - except Error as e: -- FailureUI(self, self.__tr("Error opening device:

%s

(%s)

") %(self.device_uri, str(e[0]))) -+ FailureUI(self, self.__tr("Error opening device:

%s

(%s)

") %(self.device_uri, str(e.msg))) - - if self.dev is not None: - self.dev.close() -@@ -840,7 +840,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog): - - - def showIOError(self, e): -- FailureUI(self, self.__tr("An I/O error occurred.

Please check the USB connection to your printer and try again.

(%s)" % str(e[0]))) -+ FailureUI(self, self.__tr("An I/O error occurred.

Please check the USB connection to your printer and try again.

(%s)" % str(e.msg))) - - if self.dev is not None: - self.dev.close() diff --git a/hplip-snprintf-format.patch b/hplip-snprintf-format.patch new file mode 100644 index 0000000..221f1d1 --- /dev/null +++ b/hplip-snprintf-format.patch @@ -0,0 +1,50 @@ +diff --git a/protocol/hp_ipp.c b/protocol/hp_ipp.c +index 97d827d..af25b3e 100644 +--- a/protocol/hp_ipp.c ++++ b/protocol/hp_ipp.c +@@ -110,9 +110,9 @@ int addCupsPrinter(char *name, char *device_uri, char *location, char *ppd_file, + } + + if ( info == NULL ) +- snprintf( info,sizeof(info), name ); ++ info = name; + +- sprintf( printer_uri, "ipp://localhost/printers/%s", name ); ++ snprintf( printer_uri, sizeof(printer_uri), "ipp://localhost/printers/%s", name); + + cupsSetUser ("root"); + /* Connect to the HTTP server */ +@@ -511,27 +511,27 @@ int __parsePrinterAttributes(ipp_t *response, printer_t **printer_list) + + if ( strcmp(attr_name, "printer-name") == 0 && + val_tag == IPP_TAG_NAME ) { +- snprintf(t_printer->name, sizeof(t_printer->name),ippGetString(attr, 0, NULL) ); ++ snprintf(t_printer->name, sizeof(t_printer->name), "%s", ippGetString(attr, 0, NULL)); + } + else if ( strcmp(attr_name, "device-uri") == 0 && + val_tag == IPP_TAG_URI ) { +- snprintf(t_printer->device_uri,sizeof(t_printer->device_uri), ippGetString(attr, 0, NULL) ); ++ snprintf(t_printer->device_uri, sizeof(t_printer->device_uri), "%s", ippGetString(attr, 0, NULL)); + } + else if ( strcmp(attr_name, "printer-uri-supported") == 0 && + val_tag == IPP_TAG_URI ) { +- snprintf(t_printer->printer_uri,sizeof(t_printer->printer_uri), ippGetString(attr, 0, NULL) ); ++ snprintf(t_printer->printer_uri, sizeof(t_printer->printer_uri), "%s", ippGetString(attr, 0, NULL)); + } + else if ( strcmp(attr_name, "printer-info") == 0 && + val_tag == IPP_TAG_TEXT ) { +- snprintf(t_printer->info,sizeof(t_printer->info), ippGetString(attr, 0, NULL) ); ++ snprintf(t_printer->info, sizeof(t_printer->info), "%s", ippGetString(attr, 0, NULL)); + } + else if ( strcmp(attr_name, "printer-location") == 0 && + val_tag == IPP_TAG_TEXT ) { +- snprintf(t_printer->location,sizeof(t_printer->location),ippGetString(attr, 0, NULL) ); ++ snprintf(t_printer->location, sizeof(t_printer->location), "%s", ippGetString(attr, 0, NULL)); + } + else if ( strcmp(attr_name, "printer-make-and-model") == 0 && + val_tag == IPP_TAG_TEXT ) { +- snprintf(t_printer->make_model,sizeof(t_printer->make_model),ippGetString(attr, 0, NULL) ); ++ snprintf(t_printer->make_model, sizeof(t_printer->make_model), "%s", ippGetString(attr, 0, NULL)); + } + else if ( strcmp(attr_name, "printer-state") == 0 && + val_tag == IPP_TAG_ENUM ) { diff --git a/hplip.spec b/hplip.spec index ff04eab..a76a870 100644 --- a/hplip.spec +++ b/hplip.spec @@ -6,8 +6,8 @@ Summary: HP Linux Imaging and Printing Project Name: hplip -Version: 3.22.4 -Release: 2%{?dist} +Version: 3.22.6 +Release: 1%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -198,6 +198,9 @@ Patch60: hplip-osname-mismatch.patch # removed # - /lib64/libm.so is not symlink but ld script, which cannot be used in dlopen() Patch61: hplip-no-libhpmud-libm-warnings.patch +# hplip 3.22.6 doesn't use the correct arguments for snprintf +# reported as https://bugs.launchpad.net/hplip/+bug/1982185 +Patch62: hplip-snprintf-format.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -514,6 +517,8 @@ done %patch60 -p1 -b .osname-mismatch # 2080235 - Misleading errors about missing shared libraries when scanning %patch61 -p1 -b .no-libm-libhpmud-warn +# hplip 3.22.6 doesn't use proper arguments for snprintf +%patch62 -p1 -b .snprintf-format %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui should be installed if you want GUI @@ -869,6 +874,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Tue Jul 19 2022 Zdenek Dohnal - 3.22.6-1 +- 2101790 - hplip-3.22.6 is available + * Mon Jul 18 2022 Zdenek Dohnal - 3.22.4-3 - recommend libsane-hpaio - duplicated scanners are better than no scanner diff --git a/sources b/sources index 341dfad..65eeba2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hplip-3.22.4-repack.tar.gz) = 33b228ee29536060918d0d15ff563c77e189d1ba1dd728b3038d202714a5d8d7742effb6ad8a2b1e5ea104784bc5d995bf793e4b61ab26552737e09aad318f3e +SHA512 (hplip-3.22.6-repack.tar.gz) = 6296bf9751b2202beb28e481b556fab838a82905fbc40429bcd654570491e6d9cf8fb9c6d4781924136968d71ad47cba32b4385577e7062ce4a8ee23df44b9da From cc60476218506c1a13db71fc13408643a8d041d9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 21 Jul 2022 13:44:10 +0000 Subject: [PATCH 10/84] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index a76a870..197c315 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.22.6 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -874,6 +874,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Jul 21 2022 Fedora Release Engineering - 3.22.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Tue Jul 19 2022 Zdenek Dohnal - 3.22.6-1 - 2101790 - hplip-3.22.6 is available From 6cb741bb4533bd1bd7b91f6b00efa76be9f0491a Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 13 Oct 2022 14:43:35 +0200 Subject: [PATCH 11/84] 2129849 - hp-plugin unable to load plugin.conf --- hp-plugin.in | 46 +++++++++++++++++++++++++++ hplip-plugin-script.patch | 28 +++++++++++++++++ hplip.spec | 65 +++++++++++++++++++++++++-------------- 3 files changed, 116 insertions(+), 23 deletions(-) create mode 100644 hp-plugin.in create mode 100644 hplip-plugin-script.patch diff --git a/hp-plugin.in b/hp-plugin.in new file mode 100644 index 0000000..c3e7bd3 --- /dev/null +++ b/hp-plugin.in @@ -0,0 +1,46 @@ +#!/usr/bin/bash + +# get version from base hplip rpm - it is always in the second column +VER=$(@bindir@/rpm -q hplip | @bindir@/awk -F '-' '{print $2}') + +if test "x$VER" = "x" +then + @bindir@/echo "Version was not acquired - exiting..." + exit 1 +fi + +# link to the plugin +PLUGIN_SOURCE="https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-${VER}-plugin.run" + +# plugin name +PLUGIN_FILE="hplip-${VER}-plugin.run" + +# create a hidden hplip dir to store a file indicating the plugin version after successful install +# the directory can be used by other hplip tools, so we don't have to remove it if the failure happens +if [ ! -d ~/.hplip ] +then + @bindir@/mkdir ~/.hplip || @bindir@/echo "Cannot create the ~/.hplip dir, exiting" && exit 1 +fi + +@bindir@/wget -O ~/.hplip/${PLUGIN_FILE} ${PLUGIN_SOURCE} + +if [ ! -f ~/.hplip/${PLUGIN_FILE} ] +then + @bindir@/echo "The downloaded file does not exist - error during downloading, exiting..." + exit 1 +fi + +@bindir@/bash ~/.hplip/${PLUGIN_FILE} + +if [ $? -ne 0 ] +then + @bindir@/echo "Plugin installation failed, exiting..." + @bindir@/rm -f ~/.hplip/${PLUGIN_FILE} &> /dev/null + exit 1 +fi + +@bindir@/rm -f ~/.hplip/${PLUGIN_FILE} &> /dev/null +@bindir@/rm -f ~/.hplip/plugin-installed-* &> /dev/null +@bindir@/touch ~/.hplip/plugin-installed-$VER + +exit 0 diff --git a/hplip-plugin-script.patch b/hplip-plugin-script.patch new file mode 100644 index 0000000..9b3c196 --- /dev/null +++ b/hplip-plugin-script.patch @@ -0,0 +1,28 @@ +diff --git a/Makefile.am b/Makefile.am +index bb4195c..ddac16a 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -680,6 +680,12 @@ if HPLIP_CLASS_DRIVER + filterdir=$(cupsfilterdir) + printpluginsdir=$(cupsfilterdir) + ++# ++# HP Plugin ++# ++ ++pkgplugindir=$(bindir) ++pkgplugin_DATA=hp-plugin + + dist_filter_DATA = hpcups hpps dat2drv + dist_printplugins_DATA = prnt/plugins/hbpl1-arm32.so prnt/plugins/hbpl1-arm64.so prnt/plugins/hbpl1-x86_32.so prnt/plugins/hbpl1-x86_64.so prnt/plugins/lj-arm32.so prnt/plugins/lj-arm64.so prnt/plugins/lj-x86_32.so prnt/plugins/lj-x86_64.so +diff --git a/configure.in b/configure.in +index f8f1a28..7fa5d12 100644 +--- a/configure.in ++++ b/configure.in +@@ -801,5 +801,5 @@ AC_SUBST(udev_sysfs_rules) + AC_SUBST(epm_class_driver) + AC_SUBST(epm_class_install) + +-AC_CONFIG_FILES(Makefile hplip.conf hplip.desktop hp-uiscan.desktop hplip-systray.desktop prnt/drv/hpijs.drv prnt/drv/hpcups.drv hplip.list data/policykit/com.hp.hplip.service) ++AC_CONFIG_FILES(Makefile hplip.conf hplip.desktop hp-uiscan.desktop hplip-systray.desktop prnt/drv/hpijs.drv prnt/drv/hpcups.drv hplip.list data/policykit/com.hp.hplip.service hp-plugin) + AC_OUTPUT diff --git a/hplip.spec b/hplip.spec index 197c315..27279c5 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.22.6 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -27,6 +27,7 @@ Source3: %{name}.appdata.xml Source4: hp-laserjet_cp_1025nw.ppd.gz Source5: hp-laserjet_professional_p_1102w.ppd.gz Source6: hplip-repack.sh +Source7: hp-plugin.in Patch1: hplip-pstotiff-is-rubbish.patch Patch2: hplip-strstr-const.patch @@ -201,6 +202,7 @@ Patch61: hplip-no-libhpmud-libm-warnings.patch # hplip 3.22.6 doesn't use the correct arguments for snprintf # reported as https://bugs.launchpad.net/hplip/+bug/1982185 Patch62: hplip-snprintf-format.patch +Patch63: hplip-plugin-script.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -213,9 +215,12 @@ BuildRequires: autoconf BuildRequires: automake # Make sure we get postscriptdriver tags - need cups and python3-cups. BuildRequires: cups -BuildRequires: python3-cups # uses functions from CUPS in filters, backends and libraries defining them BuildRequires: cups-devel +%if 0%{?rhel} <= 8 || 0%{?fedora} +# needed for desktop file validation in spec file +BuildRequires: desktop-file-utils +%endif # gcc and gcc-c++ are no longer in buildroot by default # gcc is needed for compilation of HPAIO scanning backend, HP implementation of # IPP and MDNS protocols, hpps driver, hp backend, hpip (image processing @@ -238,46 +243,44 @@ BuildRequires: openssl-devel # supports mDNS device discovery via Avahi BuildRequires: pkgconfig(avahi-client) BuildRequires: pkgconfig(avahi-core) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: python3-cups # implements C Python extensions like hpmudext, cupsext, scanext BuildRequires: python3-devel # SANE backend hpaio uses function from SANE API BuildRequires: sane-backends-devel -BuildRequires: pkgconfig(dbus-1) # macros: %%{_tmpfilesdir}, %%{_udevrulesdir} BuildRequires: systemd -%if 0%{?rhel} <= 8 || 0%{?fedora} -# needed for desktop file validation in spec file -BuildRequires: desktop-file-utils -%endif +# uses avahi-browse for discovering IPP-over-USB printers +Recommends: avahi-tools +# 1733449 - Scanner on an HP AIO printer is not detected unless libsane-hpaio is installed +Recommends: libsane-hpaio%{?_isa} = %{version}-%{release} -Requires: %{name}-libs%{?_isa} = %{version}-%{release} -%if 0%{?rhel} <= 8 || 0%{?fedora} -Requires: python3-pillow -%endif Requires: cups -Requires: wget -Requires: python3-dbus +# for bash script acting as hp-plugin (Source7) +Requires: gawk # set require directly to /usr/bin/gpg, because gnupg2 and gnupg ships it, # but gnupg will be deprecated in the future Requires: %{_bindir}/gpg +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: python3-dbus +%if 0%{?rhel} <= 8 || 0%{?fedora} +Requires: python3-pillow +%endif # /usr/lib/udev/rules.d Requires: systemd # 1788643 - Fedora minimal does not ship tar by default Requires: tar # require usbutils, hp-diagnose_queues needs lsusb Requires: usbutils -# uses avahi-browse for discovering IPP-over-USB printers -Recommends: avahi-tools +Requires: wget # require coreutils, because timeout binary is needed in post scriptlet, # because hpcups-update-ppds script can freeze in certain situation and # stop the update Requires(post): coreutils -# 1733449 - Scanner on an HP AIO printer is not detected unless libsane-hpaio is installed -Recommends: libsane-hpaio%{?_isa} = %{version}-%{release} - %description The Hewlett-Packard Linux Imaging and Printing Project provides drivers for HP printers and multi-function peripherals. @@ -303,14 +306,16 @@ Libraries needed by HPLIP. Summary: HPLIP graphical tools License: BSD BuildRequires: libappstream-glib + # for avahi-browse - looks for devices on local network Recommends: avahi-tools -Requires: python3-qt5 -Requires: python3-reportlab +Recommends: libsane-hpaio%{?_isa} = %{version}-%{release} + +Requires: %{name}%{?_isa} = %{version}-%{release} # hpssd.py Requires: python3-gobject -Requires: %{name}%{?_isa} = %{version}-%{release} -Recommends: libsane-hpaio%{?_isa} = %{version}-%{release} +Requires: python3-reportlab +Requires: python3-qt5 %description gui HPLIP graphical tools. @@ -319,6 +324,7 @@ HPLIP graphical tools. %package -n libsane-hpaio Summary: SANE driver for scanners in HP's multi-function devices License: GPLv2+ + Requires: sane-backends Requires: %{name}-libs%{?_isa} = %{version}-%{release} @@ -519,6 +525,7 @@ done %patch61 -p1 -b .no-libm-libhpmud-warn # hplip 3.22.6 doesn't use proper arguments for snprintf %patch62 -p1 -b .snprintf-format +%patch63 -p1 -b .plugin-patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui should be installed if you want GUI @@ -540,6 +547,9 @@ rm locatedriver cp -p %{SOURCE4} %{SOURCE5} ppd/hpcups +# 2129849 - move hp-plugin script into srcdir +cp -p %{SOURCE7} . + %build # Work-around Makefile.am imperfections. sed -i 's|^AM_INIT_AUTOMAKE|AM_INIT_AUTOMAKE([foreign])|g' configure.in @@ -612,6 +622,13 @@ rm -f %{buildroot}%{_bindir}/foomatic-rip \ %{buildroot}%{_datadir}/applications/hplip.desktop \ %{buildroot}%{_datadir}/ppd/HP/*.ppd +# 2129849 - remove hp-plugin script, since it depends on plugin.conf being available at +# http://hplip.sourceforge.net/plugin.conf +rm -f %{buildroot}%{_bindir}/hp-plugin \ + %{buildroot}%{_datadir}/hplip/plugin.py* + +install -p -m755 hp-plugin %{buildroot}%{_bindir}/hp-plugin + %if 0%{?rhel} > 8 rm -rf %{buildroot}%{_bindir}/hp-check \ %{buildroot}%{_bindir}/hp-devicesettings \ @@ -782,7 +799,6 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %{_datadir}/hplip/__init__.py* %{_datadir}/hplip/levels.py* %{_datadir}/hplip/makeuri.py* -%{_datadir}/hplip/plugin.py* %{_datadir}/hplip/probe.py* %{_datadir}/hplip/query.py* %if 0%{?rhel} <= 8 || 0%{?fedora} @@ -874,6 +890,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Oct 13 2022 Zdenek Dohnal - 3.22.6-3 +- 2129849 - hp-plugin unable to load plugin.conf + * Thu Jul 21 2022 Fedora Release Engineering - 3.22.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 09cd5eff2237ba1bea0415477ce4cb0571a62f1f Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 13 Oct 2022 15:06:24 +0200 Subject: [PATCH 12/84] 2129849 - hp-plugin unable to load plugin.conf - add a new backup download script --- hplip.spec | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/hplip.spec b/hplip.spec index 27279c5..f0e4f52 100644 --- a/hplip.spec +++ b/hplip.spec @@ -622,12 +622,7 @@ rm -f %{buildroot}%{_bindir}/foomatic-rip \ %{buildroot}%{_datadir}/applications/hplip.desktop \ %{buildroot}%{_datadir}/ppd/HP/*.ppd -# 2129849 - remove hp-plugin script, since it depends on plugin.conf being available at -# http://hplip.sourceforge.net/plugin.conf -rm -f %{buildroot}%{_bindir}/hp-plugin \ - %{buildroot}%{_datadir}/hplip/plugin.py* - -install -p -m755 hp-plugin %{buildroot}%{_bindir}/hp-plugin +install -p -m755 hp-plugin %{buildroot}%{_bindir}/hp-plugin-download %if 0%{?rhel} > 8 rm -rf %{buildroot}%{_bindir}/hp-check \ @@ -762,6 +757,7 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %{_bindir}/hp-levels %{_bindir}/hp-makeuri %{_bindir}/hp-plugin +%{_bindir}/hp-plugin-download %{_bindir}/hp-probe %{_bindir}/hp-query %if 0%{?rhel} <= 8 || 0%{?fedora} @@ -799,6 +795,7 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %{_datadir}/hplip/__init__.py* %{_datadir}/hplip/levels.py* %{_datadir}/hplip/makeuri.py* +%{_datadir}/hplip/plugin.py* %{_datadir}/hplip/probe.py* %{_datadir}/hplip/query.py* %if 0%{?rhel} <= 8 || 0%{?fedora} @@ -891,7 +888,7 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %changelog * Thu Oct 13 2022 Zdenek Dohnal - 3.22.6-3 -- 2129849 - hp-plugin unable to load plugin.conf +- 2129849 - hp-plugin unable to load plugin.conf - add a new backup download script * Thu Jul 21 2022 Fedora Release Engineering - 3.22.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 652db6693cf9460f27c6b14282f76f4aad4c3fd7 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 13 Oct 2022 15:07:30 +0200 Subject: [PATCH 13/84] 2129849 - hp-plugin unable to load plugin.conf - add a new backup download script --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index f0e4f52..3fa1a00 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.22.6 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -887,6 +887,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Oct 13 2022 Zdenek Dohnal - 3.22.6-4 +- bump the NVR + * Thu Oct 13 2022 Zdenek Dohnal - 3.22.6-3 - 2129849 - hp-plugin unable to load plugin.conf - add a new backup download script From ca1713968e5ca3d3c24756ec049c413e4f876aa0 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Wed, 19 Oct 2022 14:05:07 +0200 Subject: [PATCH 14/84] distutils will be removed in Python3.12, use setuptools now --- hplip.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index 3fa1a00..4cfeb80 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.22.6 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -247,6 +247,8 @@ BuildRequires: pkgconfig(dbus-1) BuildRequires: python3-cups # implements C Python extensions like hpmudext, cupsext, scanext BuildRequires: python3-devel +# distutils are removed in Python3.12, use setuptools +BuildRequires: python3-setuptools # SANE backend hpaio uses function from SANE API BuildRequires: sane-backends-devel # macros: %%{_tmpfilesdir}, %%{_udevrulesdir} @@ -887,6 +889,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Wed Oct 19 2022 Zdenek Dohnal - 3.22.6-5 +- distutils will be removed in Python3.12, use setuptools now + * Thu Oct 13 2022 Zdenek Dohnal - 3.22.6-4 - bump the NVR From a960ac4214ffd3a10e5d65567281d1f51d247895 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 24 Nov 2022 12:04:27 +0100 Subject: [PATCH 15/84] 2139309 - hplip-3.22.10 is available --- .gitignore | 1 + hplip-fab-import.patch | 13 ----------- hplip-osname-mismatch.patch | 12 ---------- hplip.spec | 45 ++++++++++++++++--------------------- sources | 2 +- 5 files changed, 21 insertions(+), 52 deletions(-) delete mode 100644 hplip-fab-import.patch delete mode 100644 hplip-osname-mismatch.patch diff --git a/.gitignore b/.gitignore index 2da15b2..242bd0c 100644 --- a/.gitignore +++ b/.gitignore @@ -107,3 +107,4 @@ hplip-3.10.6.tar.gz /hplip-3.22.2-repack.tar.gz /hplip-3.22.4-repack.tar.gz /hplip-3.22.6-repack.tar.gz +/hplip-3.22.10-repack.tar.gz diff --git a/hplip-fab-import.patch b/hplip-fab-import.patch deleted file mode 100644 index 0d2e94b..0000000 --- a/hplip-fab-import.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/ui5/fabwindow.py b/ui5/fabwindow.py -index 0b95c94..631727c 100644 ---- a/ui5/fabwindow.py -+++ b/ui5/fabwindow.py -@@ -518,7 +518,7 @@ class FABWindow(QMainWindow, Ui_MainWindow): - self.__tr("Import fax addresses from LDIF or vCard"), - #user_conf.workingDirectory(), - self.user_settings.working_dir, -- "vCard (*.vcf);;LDIF (*.ldif *.ldi)")) -+ "vCard (*.vcf);;LDIF (*.ldif *.ldi)")[0]) - - if result: - working_directory = to_unicode(os.path.dirname(result)) diff --git a/hplip-osname-mismatch.patch b/hplip-osname-mismatch.patch deleted file mode 100644 index 5f8acb4..0000000 --- a/hplip-osname-mismatch.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up hplip-3.21.12/base/password.py.osname-mismatch hplip-3.21.12/base/password.py ---- hplip-3.21.12/base/password.py.osname-mismatch 2022-01-14 08:36:11.413431048 +0100 -+++ hplip-3.21.12/base/password.py 2022-01-14 09:14:57.315230889 +0100 -@@ -105,7 +105,7 @@ def get_distro_name(): - os_name = name.read().strip() - name.close() - -- os_name = os_name.lower() -+ os_name = os_name.lower().replace(' ','') - if 'MX' in distro_release_name: - os_name = "mxlinux" - if "redhatenterprise" in os_name: diff --git a/hplip.spec b/hplip.spec index 4cfeb80..832f047 100644 --- a/hplip.spec +++ b/hplip.spec @@ -6,8 +6,8 @@ Summary: HP Linux Imaging and Printing Project Name: hplip -Version: 3.22.6 -Release: 5%{?dist} +Version: 3.22.10 +Release: 1%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -171,25 +171,19 @@ Patch53: hplip-revert-plugins.patch # non-sudoers cannot authenticate # reported upstream https://bugs.launchpad.net/hplip/+bug/1904888 Patch54: hplip-check-userperms.patch -# 1919556 - hp-fab crashed: QFileDialog.getOpenFileName is not used correctly -# getOpenFileName returns a tuple, but hp-fab expects a simple variable -# reported upstream as https://bugs.launchpad.net/hplip/+bug/1914743 -Patch55: hplip-fab-import.patch # if an user tries to install scanner via hp-setup (printer/fax utility) # it fails further down - break out earlier with a message # reported upstream as https://bugs.launchpad.net/hplip/+bug/1916114 -Patch56: hplip-hpsetup-noscanjets.patch +Patch55: hplip-hpsetup-noscanjets.patch # 1963114 - patch for hplip firmware load timeout fix # reported upstream https://bugs.launchpad.net/hplip/+bug/1922404 -Patch57: hplip-hpfirmware-timeout.patch +Patch56: hplip-hpfirmware-timeout.patch # 1985251 - Incorrect permission for gpg directory # reported upstream https://bugs.launchpad.net/hplip/+bug/1938442 -Patch58: hplip-gpgdir-perms.patch +Patch57: hplip-gpgdir-perms.patch # 1987141 - hp-plugin installs malformed udev files # reported upstream https://bugs.launchpad.net/hplip/+bug/1847477 -Patch59: hplip-plugin-udevissues.patch -# reported upstream https://bugs.launchpad.net/hplip/+bug/1938504 -Patch60: hplip-osname-mismatch.patch +Patch58: hplip-plugin-udevissues.patch # 2080235 - Misleading errors about missing shared libraries when scanning # downstream patch to prevent errors: # - when loading libhpmud.so - unversioned .so files belong into devel packages, @@ -198,11 +192,11 @@ Patch60: hplip-osname-mismatch.patch # package (if libhpmud.so had been moved to -devel) the dlopen on unversioned .so file was # removed # - /lib64/libm.so is not symlink but ld script, which cannot be used in dlopen() -Patch61: hplip-no-libhpmud-libm-warnings.patch +Patch59: hplip-no-libhpmud-libm-warnings.patch # hplip 3.22.6 doesn't use the correct arguments for snprintf # reported as https://bugs.launchpad.net/hplip/+bug/1982185 -Patch62: hplip-snprintf-format.patch -Patch63: hplip-plugin-script.patch +Patch60: hplip-snprintf-format.patch +Patch61: hplip-plugin-script.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -510,24 +504,20 @@ done %patch53 -p1 -b .revert-plugins # 1899410 - non-sudoers cannot authenticate because of bad username in prompt %patch54 -p1 -b .check-userperms -# 1919556 - hp-fab crashed: QFileDialog.getOpenFileName is not used correctly -%patch55 -p1 -b .fab-import # if an user tries to install scanner via hp-setup (printer/fax utility) # it fails further down - break out earlier with a message -%patch56 -p1 -b .hpsetup-noscanjets +%patch55 -p1 -b .hpsetup-noscanjets # 1963114 - patch for hplip firmware load timeout fix -%patch57 -p1 -b .hpfirmware-timeout +%patch56 -p1 -b .hpfirmware-timeout # 1985251 - Incorrect permission for gpg directory -%patch58 -p1 -b .gpgdir-perms +%patch57 -p1 -b .gpgdir-perms # 1987141 - hp-plugin installs malformed udev files -%patch59 -p1 -b .hpplugin-udevperms -# upstream bug https://bugs.launchpad.net/hplip/+bug/1938504 -%patch60 -p1 -b .osname-mismatch +%patch58 -p1 -b .hpplugin-udevperms # 2080235 - Misleading errors about missing shared libraries when scanning -%patch61 -p1 -b .no-libm-libhpmud-warn +%patch59 -p1 -b .no-libm-libhpmud-warn # hplip 3.22.6 doesn't use proper arguments for snprintf -%patch62 -p1 -b .snprintf-format -%patch63 -p1 -b .plugin-patch +%patch60 -p1 -b .snprintf-format +%patch61 -p1 -b .plugin-patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui should be installed if you want GUI @@ -889,6 +879,9 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Wed Nov 23 2022 Zdenek Dohnal - 3.22.10-1 +- 2139309 - hplip-3.22.10 is available + * Wed Oct 19 2022 Zdenek Dohnal - 3.22.6-5 - distutils will be removed in Python3.12, use setuptools now diff --git a/sources b/sources index 65eeba2..b462c5f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hplip-3.22.6-repack.tar.gz) = 6296bf9751b2202beb28e481b556fab838a82905fbc40429bcd654570491e6d9cf8fb9c6d4781924136968d71ad47cba32b4385577e7062ce4a8ee23df44b9da +SHA512 (hplip-3.22.10-repack.tar.gz) = cc7cc12ed04e08cbded581351280b71e13525b06a333d43078d67ae591baeecd29773a7f7fb5ebfc3dd842b1e4c9a84af9c5747987ef1941d1eef405ecb65fc1 From bbb19dff5e32c47720b7523412dd7a59112a19a3 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Thu, 24 Nov 2022 17:24:31 +0100 Subject: [PATCH 16/84] C99 compatibility fixes Stop building the pcardext Python extension because it unusable (#2148210). Related to: --- hplip-pcardext-disable.patch | 34 ++++++++++++++++++++++++ hplip-pserror-c99.patch | 17 ++++++++++++ hplip-scan-hpaio-include.patch | 19 ++++++++++++++ hplip-scan-orblite-c99.patch | 48 ++++++++++++++++++++++++++++++++++ hplip-sclpml-strcasestr.patch | 20 ++++++++++++++ hplip.spec | 20 +++++++++++++- 6 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 hplip-pcardext-disable.patch create mode 100644 hplip-pserror-c99.patch create mode 100644 hplip-scan-hpaio-include.patch create mode 100644 hplip-scan-orblite-c99.patch create mode 100644 hplip-sclpml-strcasestr.patch diff --git a/hplip-pcardext-disable.patch b/hplip-pcardext-disable.patch new file mode 100644 index 0000000..adcac1d --- /dev/null +++ b/hplip-pcardext-disable.patch @@ -0,0 +1,34 @@ +The pcardext Python extension cannot be loaded because it has not been +ported to Python 3: + +>>> import pcardext +Traceback (most recent call last): + File "", line 1, in +ImportError: /usr/lib64/python3.11/site-packages/pcardext.so: undefined symbol: PyString_AsStringAndSize +>>> + +Stop building this extension because it breaks the build if the +compiler lacks support for implicit function declarations. + +Bug: + +Submitted upstream: + +diff --git a/Makefile.am b/Makefile.am +index ddac16a9dd514008..15d953af9150c09e 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -306,13 +306,6 @@ if !HPLIP_CLASS_DRIVER + pcarddir = $(hplipdir)/pcard + dist_pcard_DATA = pcard/__init__.py pcard/photocard.py + +-# pcardext +-pcardextdir = $(pyexecdir) +-pcardext_LTLIBRARIES = pcardext.la +-pcardext_la_LDFLAGS = -module -avoid-version +-pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h +-pcardext_la_CFLAGS = -I$(PYTHONINCLUDEDIR) +- + # prnt + prntdir = $(hplipdir)/prnt + dist_prnt_DATA = prnt/cups.py prnt/__init__.py prnt/ldl.py prnt/pcl.py prnt/colorcal.py diff --git a/hplip-pserror-c99.patch b/hplip-pserror-c99.patch new file mode 100644 index 0000000..747af3a --- /dev/null +++ b/hplip-pserror-c99.patch @@ -0,0 +1,17 @@ +prnt/pserror.c: Replace an implicit int with an explicit int + +Submitted upstream: + +diff --git a/prnt/hpps/pserror.c b/prnt/hpps/pserror.c +index 114d7e1b5fa364fb..493b49c27917a7e6 100644 +--- a/prnt/hpps/pserror.c ++++ b/prnt/hpps/pserror.c +@@ -24,7 +24,7 @@ extern char *program ; /* Defined by main program, giving program name */ + void message(int flags, char *format, ...) + { + va_list args ; +- static column = 0 ; /* current screen column for message wrap */ ++ static int column = 0 ; /* current screen column for message wrap */ + char msgbuf[MAX_MESSAGE] ; /* buffer in which to put the message */ + char *bufptr = msgbuf ; /* message buffer pointer */ + diff --git a/hplip-scan-hpaio-include.patch b/hplip-scan-hpaio-include.patch new file mode 100644 index 0000000..79d1d94 --- /dev/null +++ b/hplip-scan-hpaio-include.patch @@ -0,0 +1,19 @@ +scam/sane/hpaio.c: Include orblite.h for more function prototypes + +Otherwise the build fails with compilers which do not support +implicit function declarations. + +Submitted upstream: + +diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c +index d342626822fc2190..57d1ddea32fb5816 100644 +--- a/scan/sane/hpaio.c ++++ b/scan/sane/hpaio.c +@@ -50,6 +50,7 @@ + #include "sclpml.h" + #include "escl.h" + #include "io.h" ++#include "orblite.h" + #include "orblitei.h" + + diff --git a/hplip-scan-orblite-c99.patch b/hplip-scan-orblite-c99.patch new file mode 100644 index 0000000..e2899f0 --- /dev/null +++ b/hplip-scan-orblite-c99.patch @@ -0,0 +1,48 @@ +scan/sane/orblite: Include for function prototypes + +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: + +diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c +index ba86640c7528fc9c..ac59dda9c2dba593 100644 +--- a/scan/sane/orblite.c ++++ b/scan/sane/orblite.c +@@ -20,6 +20,7 @@ + #include "orblitei.h" + #include "orblite.h"//Added New + #include ++#include + #include "utils.h" + #include "io.h" + +@@ -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) + { diff --git a/hplip-sclpml-strcasestr.patch b/hplip-sclpml-strcasestr.patch new file mode 100644 index 0000000..e2d0bb8 --- /dev/null +++ b/hplip-sclpml-strcasestr.patch @@ -0,0 +1,20 @@ +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. + +Submitted upstream: + +diff --git a/scan/sane/sclpml.c b/scan/sane/sclpml.c +index dc8b32ce02ad1202..f2cacd53e86800ce 100644 +--- a/scan/sane/sclpml.c ++++ b/scan/sane/sclpml.c +@@ -47,6 +47,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) diff --git a/hplip.spec b/hplip.spec index 832f047..5c8a837 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.22.10 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -203,6 +203,14 @@ Patch61: hplip-plugin-script.patch Patch1000: hplip-fedora-gui.patch %endif +# C99 compatibility fixes. +# Submitted uostream: +Patch1001: hplip-pserror-c99.patch +Patch1002: hplip-scan-hpaio-include.patch +Patch1003: hplip-scan-orblite-c99.patch +Patch1004: hplip-pcardext-disable.patch +Patch1005: hplip-sclpml-strcasestr.patch + # uses automatic creation of configure BuildRequires: autoconf # uses automatic creation of Makefile @@ -524,6 +532,12 @@ done %patch1000 -p1 -b .fedora-gui %endif +%patch1001 -p1 +%patch1002 -p1 +%patch1003 -p1 +%patch1004 -p1 +%patch1005 -p1 + sed -i.duplex-constraints \ -e 's,\(UIConstraints.* \*Duplex\),//\1,' \ prnt/drv/hpcups.drv.in @@ -879,6 +893,10 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Nov 24 2022 Florian Weimer - 3.22.10-2 +- C99 compatibility fixes +- Stop building the pcardext Python extension because it unusable (#2148210) + * Wed Nov 23 2022 Zdenek Dohnal - 3.22.10-1 - 2139309 - hplip-3.22.10 is available From a3d30bea25d16c72d929bcc8f20877e9195c3c12 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 1 Dec 2022 11:19:14 +0100 Subject: [PATCH 17/84] 2148210 - hplip: pcardext Python extension broken stop shipping hp-unload, since it depends on pcardext --- hplip-scan-orblite-c99.patch | 43 +++---------- hplip-sclpml-strcasestr.patch | 32 +++++----- hplip.spec | 110 +++++++++++++++++++++++----------- 3 files changed, 96 insertions(+), 89 deletions(-) diff --git a/hplip-scan-orblite-c99.patch b/hplip-scan-orblite-c99.patch index e2899f0..c921f22 100644 --- a/hplip-scan-orblite-c99.patch +++ b/hplip-scan-orblite-c99.patch @@ -1,13 +1,5 @@ -scan/sane/orblite: Include for function prototypes - -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: - diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c -index ba86640c7528fc9c..ac59dda9c2dba593 100644 +index ba86640..2eb7aba 100644 --- a/scan/sane/orblite.c +++ b/scan/sane/orblite.c @@ -20,6 +20,7 @@ @@ -18,31 +10,12 @@ index ba86640c7528fc9c..ac59dda9c2dba593 100644 #include "utils.h" #include "io.h" -@@ -193,27 +194,6 @@ bugout: +@@ -195,7 +196,7 @@ 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) + static int bb_unload(SANE_THandle ps) { +- _DBG("Calling orblite bb_unload: \n"); ++ DBG("Calling orblite bb_unload: \n"); + if (ps->bb_handle) + { + dlclose(ps->bb_handle); diff --git a/hplip-sclpml-strcasestr.patch b/hplip-sclpml-strcasestr.patch index e2d0bb8..daf86c8 100644 --- a/hplip-sclpml-strcasestr.patch +++ b/hplip-sclpml-strcasestr.patch @@ -1,20 +1,16 @@ -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. +Switch the whole libsane-hpaio to get proper definition of strcasestr() used in +sclpml.c -Submitted upstream: - -diff --git a/scan/sane/sclpml.c b/scan/sane/sclpml.c -index dc8b32ce02ad1202..f2cacd53e86800ce 100644 ---- a/scan/sane/sclpml.c -+++ b/scan/sane/sclpml.c -@@ -47,6 +47,9 @@ - #define DEBUG_DECLARE_ONLY - #include "sanei_debug.h" +diff --git a/Makefile.am b/Makefile.am +index 15d953a..7105f74 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -73,7 +73,7 @@ endif + # The following is a interlibrary dependency that must be compiled first. + libsane_hpaio_la_LIBADD = libhpip.la libhpmud.la libhpipp.la $(DBUS_LIBS) -lcups -ldl + #libsane_hpaio_la_CFLAGS = -DWITH_NONAMESPACES -DSOAP_DEBUG +-libsane_hpaio_la_CFLAGS = $(DBUS_CFLAGS) -Iprotocol ++libsane_hpaio_la_CFLAGS = $(DBUS_CFLAGS) -Iprotocol -D_GNU_SOURCE -+/* 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) + if NETWORK_BUILD + libsane_hpaio_la_LIBADD += libhpdiscovery.la diff --git a/hplip.spec b/hplip.spec index 5c8a837..928c464 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.22.10 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -197,19 +197,33 @@ Patch59: hplip-no-libhpmud-libm-warnings.patch # reported as https://bugs.launchpad.net/hplip/+bug/1982185 Patch60: hplip-snprintf-format.patch Patch61: hplip-plugin-script.patch +# C99 compatibility fixes by fweimer - use explicit int +# Submitted upstream: +Patch62: hplip-pserror-c99.patch +# C99 compatibility patch by fweimer - several undefined functions in hpaio +# backend are declared in orblite.h +# Submitted upstream: +Patch63: hplip-scan-hpaio-include.patch +# C99 compatibility patch by fweimer - undefined _DBG() and dynamic linking funcs in orblite.c +# - _DBG() looks like typo and new header is added for funcs +# Submitted upstream: +Patch64: hplip-scan-orblite-c99.patch +# C99 compatibility patch by fweimer: +# PyString_AsStringAndSize is removed in Python3, remove its compilation for now +# in case there is a request for compiling it again, there is a possible solution +# for the function py3 alternative https://opendev.org/openstack/pyeclib/commit/19c8313986 +# - disabling removes hp-unload and /usr/share/hplip/pcard as well +# Submitted upstream: +Patch65: hplip-pcardext-disable.patch +# undefined strcasestr() in sclpml.c - build with _GNU_SOURCE +# Submitted upstream: +Patch66: hplip-sclpml-strcasestr.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI Patch1000: hplip-fedora-gui.patch %endif -# C99 compatibility fixes. -# Submitted uostream: -Patch1001: hplip-pserror-c99.patch -Patch1002: hplip-scan-hpaio-include.patch -Patch1003: hplip-scan-orblite-c99.patch -Patch1004: hplip-pcardext-disable.patch -Patch1005: hplip-sclpml-strcasestr.patch # uses automatic creation of configure BuildRequires: autoconf @@ -526,17 +540,29 @@ done # hplip 3.22.6 doesn't use proper arguments for snprintf %patch60 -p1 -b .snprintf-format %patch61 -p1 -b .plugin-patch +# C99 compatibility fixes by fweimer - use explicit int +# Submitted upstream: +%patch62 -p1 -b .pserror-int +# C99 compatibility patch by fweimer - several undefined functions in hpaio +# backend are declared in orblite.h +# Submitted upstream: +%patch63 -p1 -b .hpaio-orblite-defs +# C99 compatibility patch by fweimer - undefined _DBG() and dynamic linking funcs in orblite.c +# - _DBG() looks like typo and new header is added for funcs +# Submitted upstream: +%patch64 -p1 -b .orblite-undefs +# C99 compatibility patch by fweimer - python2 PyString_AsStringAndSize in python3 code +# gives undefined reference - removed for now with dependent hp-unload +%patch65 -p1 -b .pcardext-disable +# C99 compatibility patch by fweimer - undefined strcasestr() in sclpml.c - build with _GNU_SOURCE +%patch66 -p1 -b .sclpml-strcasestr +# Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui should be installed if you want GUI %patch1000 -p1 -b .fedora-gui %endif -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 sed -i.duplex-constraints \ -e 's,\(UIConstraints.* \*Duplex\),//\1,' \ @@ -604,8 +630,9 @@ rm -rf %{buildroot}%{_sysconfdir}/sane.d \ %{buildroot}%{_docdir} \ %{buildroot}%{_datadir}/hal/fdi \ %{buildroot}%{_datadir}/hplip/pkservice.py \ - %{buildroot}%{_bindir}/hp-pkservice \ - %{buildroot}%{_datadir}/hplip/locatedriver* \ + %{buildroot}%{_bindir}/hp-pkservice + +rm -rf %{buildroot}%{_datadir}/hplip/locatedriver* \ %{buildroot}%{_datadir}/hplip/dat2drv* rm -f %{buildroot}%{_bindir}/hp-logcapture \ @@ -628,7 +655,32 @@ rm -f %{buildroot}%{_bindir}/foomatic-rip \ %{buildroot}%{_datadir}/applications/hplip.desktop \ %{buildroot}%{_datadir}/ppd/HP/*.ppd -install -p -m755 hp-plugin %{buildroot}%{_bindir}/hp-plugin-download +rm -f %{buildroot}%{_datadir}/hplip/hpaio.desc + +rm -rf %{buildroot}%{_datadir}/hplip/install.* \ + %{buildroot}%{_datadir}/hplip/uninstall.* \ + %{buildroot}%{_bindir}/hp-uninstall \ + %{buildroot}%{_datadir}/hplip/upgrade.* \ + %{buildroot}%{_bindir}/hp-upgrade \ + %{buildroot}%{_datadir}/hplip/hplip-install + +rm -f %{buildroot}%{_datadir}/hplip/hpijs.drv.in.template + +rm -f %{buildroot}%{_datadir}/cups/mime/pstotiff.types \ + %{buildroot}%{_datadir}/hplip/fax/pstotiff* + +rm -f %{buildroot}%{_datadir}/hplip/hplip-install + +rm -f %{buildroot}%{_unitdir}/hplip-printer@.service + +rm -f %{buildroot}%{_datadir}/ipp-usb/quirks/HPLIP.conf + +rm -rf %{buildroot}%{_bindir}/hp-unload \ + %{buildroot}%{_datadir}/%{name}/pcard + +# The systray applet doesn't work properly (displays icon as a +# window), so don't ship the launcher yet. +rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %if 0%{?rhel} > 8 rm -rf %{buildroot}%{_bindir}/hp-check \ @@ -668,6 +720,8 @@ rm -rf %{buildroot}%{_bindir}/hp-check \ doc/hpscan.html %endif +install -p -m755 hp-plugin %{buildroot}%{_bindir}/hp-plugin-download + %if 0%{?rhel} <= 8 || 0%{?fedora} mkdir -p %{buildroot}%{_datadir}/metainfo cp %{SOURCE3} %{buildroot}%{_datadir}/metainfo/ @@ -721,24 +775,6 @@ find doc/images -type f -exec chmod 644 {} \; # SELinux file context (bug #564551). %{__mkdir_p} %{buildroot}%{_datadir}/hplip/prnt/plugins -# Remove files we don't want to package. -rm -f %{buildroot}%{_datadir}/hplip/hpaio.desc -rm -f %{buildroot}%{_datadir}/hplip/hplip-install -rm -rf %{buildroot}%{_datadir}/hplip/install.* -rm -f %{buildroot}%{_datadir}/hplip/uninstall.* -rm -f %{buildroot}%{_bindir}/hp-uninstall -rm -f %{buildroot}%{_datadir}/hplip/upgrade.* -rm -f %{buildroot}%{_bindir}/hp-upgrade -rm -f %{buildroot}%{_datadir}/hplip/hpijs.drv.in.template -rm -f %{buildroot}%{_datadir}/cups/mime/pstotiff.types -rm -f %{buildroot}%{_datadir}/hplip/fax/pstotiff* -rm -f %{buildroot}%{_unitdir}/hplip-printer@.service -rm -f %{buildroot}%{_datadir}/ipp-usb/quirks/HPLIP.conf - -# The systray applet doesn't work properly (displays icon as a -# window), so don't ship the launcher yet. -rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop - %post # timeout is to prevent possible freeze during update %{_bindir}/timeout 10m -k 15m %{_bindir}/hpcups-update-ppds &>/dev/null ||: @@ -773,7 +809,6 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %{_bindir}/hp-setup %{_bindir}/hp-testpage %{_bindir}/hp-timedate -%{_bindir}/hp-unload %{_cups_serverbin}/backend/hp %{_cups_serverbin}/backend/hpfax # ex-hpijs @@ -820,7 +855,6 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %{_datadir}/hplip/data/pcl %{_datadir}/hplip/data/ps %{_datadir}/hplip/installer -%{_datadir}/hplip/pcard %{_datadir}/hplip/prnt %if 0%{?rhel} <= 8 || 0%{?fedora} %{_datadir}/hplip/scan @@ -893,6 +927,10 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/autostart/hplip-systray.desktop %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Dec 01 2022 Zdenek Dohnal - 3.22.10-3 +- 2148210 - hplip: pcardext Python extension broken +- stop shipping hp-unload, since it depends on pcardext + * Thu Nov 24 2022 Florian Weimer - 3.22.10-2 - C99 compatibility fixes - Stop building the pcardext Python extension because it unusable (#2148210) From 2cf2a6900a7ead39b9978e3ea7504eeb75d82810 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 19 Jan 2023 12:12:56 +0000 Subject: [PATCH 18/84] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index 928c464..cf11e37 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.22.10 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -927,6 +927,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Jan 19 2023 Fedora Release Engineering - 3.22.10-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Thu Dec 01 2022 Zdenek Dohnal - 3.22.10-3 - 2148210 - hplip: pcardext Python extension broken - stop shipping hp-unload, since it depends on pcardext From ac182d7612c9f582a657f2b519e9caa41aa3efde Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 6 Jun 2023 16:15:52 +0200 Subject: [PATCH 19/84] 2184067 - hplip-3.23.5 is available --- .gitignore | 2 + ...-constructors-of-PyQT5-with-the-corr.patch | 344 ++++++++---------- hplip-add-ppd-crash.patch | 25 +- hplip-check-userperms.patch | 33 -- hplip-covscan.patch | 306 ++++++++-------- hplip-dialog-infinite-loop.patch | 9 - hplip-hpsetup-noscanjets.patch | 20 +- hplip-nocdmfilter.patch | 47 +++ hplip-noernie.patch | 22 +- hplip-repack.sh | 3 +- hplip-snprintf-format.patch | 25 +- hplip-wifisetup.patch | 14 +- hplip.spec | 175 ++++----- sources | 2 +- 14 files changed, 480 insertions(+), 547 deletions(-) delete mode 100644 hplip-check-userperms.patch create mode 100644 hplip-nocdmfilter.patch diff --git a/.gitignore b/.gitignore index 242bd0c..7899dea 100644 --- a/.gitignore +++ b/.gitignore @@ -108,3 +108,5 @@ hplip-3.10.6.tar.gz /hplip-3.22.4-repack.tar.gz /hplip-3.22.6-repack.tar.gz /hplip-3.22.10-repack.tar.gz +/hplip-3.23.3-repack.tar.gz +/hplip-3.23.5-repack.tar.gz diff --git a/0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch b/0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch index ef7d370..c0b26ec 100644 --- a/0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch +++ b/0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch @@ -1,45 +1,108 @@ -From 95a73bbc9bd65602a0f9411469ab511bc80a01d0 Mon Sep 17 00:00:00 2001 -From: Till Kamppeter -Date: Wed, 3 Oct 2018 15:13:00 +0200 -Subject: Call QMessageBox constructors of PyQT5 with the correct parameters - -The whole Python source code of HPLIP contains 40 incorrect calls of -the QMessageBox constructurs, mostly the list of buttons was given as -separate arguments instead of a bitwise OR of each button's -representation value. If the flow of the code hits one of these -calls (usually when some error or warnings message should be -displayed or an "Are you sure?" question asked) the GUI app crashes. -See https://pythonspot.com/pyqt5-messagebox/ for QMessageBox -documentation. -This patch corrects all these calls. - -Bug-Debian: https://bugs.debian.org/912768 -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1745383 ---- - ui/devmgr4.py | 16 ++++++++-------- - ui/faxaddrbookform.py | 6 +++--- - ui/faxsendjobform.py | 6 +++--- - ui/firmwaredialog.py | 2 +- - ui/makecopiesform.py | 4 ++-- - ui/nodevicesform.py | 2 +- - ui/pluginform2.py | 4 ++-- - ui/printerform.py | 2 +- - ui/settingsdialog.py | 4 ++-- - ui/setupform.py | 10 +++++----- - ui/unloadform.py | 2 +- - ui/upgradeform.py | 4 ++-- - ui5/devmgr5.py | 6 ++---- - ui5/fabwindow.py | 2 +- - ui5/nodevicesdialog.py | 3 +-- - ui5/plugindialog.py | 2 +- - ui5/queuesconf.py | 2 +- - ui5/setupdialog.py | 6 +++--- - 18 files changed, 40 insertions(+), 43 deletions(-) - -diff --git a/ui/devmgr4.py b/ui/devmgr4.py -index cc2552f91..a868ccac0 100644 ---- a/ui/devmgr4.py -+++ b/ui/devmgr4.py +diff -up hplip-3.23.3/ui5/devmgr5.py.qmsgbox-typos-fix hplip-3.23.3/ui5/devmgr5.py +--- hplip-3.23.3/ui5/devmgr5.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui5/devmgr5.py 2023-05-29 13:48:48.429731297 +0200 +@@ -144,8 +144,7 @@ class PluginInstall(QObject): + install_plugin = QMessageBox.warning(self.parent, + self.parent.windowTitle(), + self.__tr("The HPLIP plugin is already installed.

Do you want to continue and re-install it?"), +- QMessageBox.Yes, +- QMessageBox.No, ++ QMessageBox.Yes | QMessageBox.No, + QMessageBox.NoButton) == QMessageBox.Yes + + if install_plugin: +@@ -154,8 +153,7 @@ class PluginInstall(QObject): + QMessageBox.critical(self.parent, + self.parent.windowTitle(), + self.__tr("Unable to find an appropriate su/sudo utility to run hp-plugin.

Install kdesu, gnomesu, or gksu.

"), +- QMessageBox.Ok, +- QMessageBox.NoButton, ++ QMessageBox.Ok | QMessageBox.NoButton, + QMessageBox.NoButton) + + +diff -up hplip-3.23.3/ui5/fabwindow.py.qmsgbox-typos-fix hplip-3.23.3/ui5/fabwindow.py +--- hplip-3.23.3/ui5/fabwindow.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui5/fabwindow.py 2023-05-29 13:48:48.429731297 +0200 +@@ -344,7 +344,7 @@ class FABWindow(QMainWindow, Ui_MainWin + new_name = to_unicode(self.NameLineEdit.text()) + if new_name != self.name: + if QMessageBox.question(self, self.__tr("Rename?"), "Rename '%s' to '%s'?"%(self.name,new_name), \ +- QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes: ++ QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes: + + self.db.rename(self.name, new_name) + log.debug("Rename %s to %s" % (self.name, new_name)) +diff -up hplip-3.23.3/ui5/nodevicesdialog.py.qmsgbox-typos-fix hplip-3.23.3/ui5/nodevicesdialog.py +--- hplip-3.23.3/ui5/nodevicesdialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui5/nodevicesdialog.py 2023-05-29 13:48:48.429731297 +0200 +@@ -64,8 +64,7 @@ class NoDevicesDialog(QDialog, Ui_NoDevi + QMessageBox.critical(self, + self.windowTitle(), + self.__tr("An error occurred.

Please re-start the Device Manager and try again."), +- QMessageBox.Ok, +- QMessageBox.NoButton, ++ QMessageBox.Ok | QMessageBox.NoButton, + QMessageBox.NoButton) + + +diff -up hplip-3.23.3/ui5/plugindialog.py.qmsgbox-typos-fix hplip-3.23.3/ui5/plugindialog.py +--- hplip-3.23.3/ui5/plugindialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui5/plugindialog.py 2023-05-29 13:48:48.429731297 +0200 +@@ -252,7 +252,7 @@ class PluginDialog(QDialog, Ui_Dialog): + + if QMessageBox.question(self, " ", + self.__tr("%s

Without this, it is not possible to authenticate and validate the plug-in prior to installation.

Do you still want to install the plug-in?" %error_str), +- QMessageBox.Yes | QMessageBox.No) != QMessageBox.Yes: ++ QMessageBox.Yes | QMessageBox.No, QMessageBox.No) != QMessageBox.Yes: + + self.pluginObj.deleteInstallationFiles(download_plugin_file) + self.close() +diff -up hplip-3.23.3/ui5/queuesconf.py.qmsgbox-typos-fix hplip-3.23.3/ui5/queuesconf.py +--- hplip-3.23.3/ui5/queuesconf.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui5/queuesconf.py 2023-05-29 13:48:48.430731291 +0200 +@@ -245,7 +245,7 @@ class QueuesDiagnose(QDialog, Ui_Dialog) + + if QMessageBox.question(self, " ", + self.__tr("%s

Without this, it is not possible to authenticate and validate this tool prior to installation.

Do you still want to run Smart Install disabler?" %error_str), +- QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes: ++ QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes: + # Disabling without verification. + sts, out = utils.run("sh %s"%smart_install_run) + +diff -up hplip-3.23.3/ui5/setupdialog.py.qmsgbox-typos-fix hplip-3.23.3/ui5/setupdialog.py +--- hplip-3.23.3/ui5/setupdialog.py.qmsgbox-typos-fix 2023-05-29 13:48:48.430731291 +0200 ++++ hplip-3.23.3/ui5/setupdialog.py 2023-05-29 13:54:03.236851925 +0200 +@@ -886,7 +886,7 @@ class SetupDialog(QDialog, Ui_Dialog): + self.windowTitle(), + warn_text, + QMessageBox.Yes | +- QMessageBox.No | ++ QMessageBox.No, + QMessageBox.NoButton) == QMessageBox.Yes): + i = 2 + while True: +@@ -1171,7 +1171,7 @@ class SetupDialog(QDialog, Ui_Dialog): + if QMessageBox.critical(self, + self.windowTitle(), + error_text, +- QMessageBox.Retry | QMessageBox.Default, ++ QMessageBox.Retry | QMessageBox.Default |\ + QMessageBox.Cancel | QMessageBox.Escape, + QMessageBox.NoButton) == QMessageBox.Cancel: + break +@@ -1223,7 +1223,7 @@ class SetupDialog(QDialog, Ui_Dialog): + if QMessageBox.critical(self, + self.windowTitle(), + error_text, +- QMessageBox.Retry | QMessageBox.Default, ++ QMessageBox.Retry | QMessageBox.Default |\ + QMessageBox.Cancel | QMessageBox.Escape, + QMessageBox.NoButton) == QMessageBox.Cancel: + break +diff -up hplip-3.23.3/ui/devmgr4.py.qmsgbox-typos-fix hplip-3.23.3/ui/devmgr4.py +--- hplip-3.23.3/ui/devmgr4.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui/devmgr4.py 2023-05-29 13:48:48.424731328 +0200 @@ -1422,7 +1422,7 @@ class DevMgr4(DevMgr4_base): QMessageBox.critical(self, self.caption(), @@ -112,11 +175,10 @@ index cc2552f91..a868ccac0 100644 QMessageBox.NoButton, QMessageBox.NoButton) -diff --git a/ui/faxaddrbookform.py b/ui/faxaddrbookform.py -index 109462207..b23364410 100644 ---- a/ui/faxaddrbookform.py -+++ b/ui/faxaddrbookform.py -@@ -228,7 +228,7 @@ class FaxAddrBookGroupsForm(FaxAddrBookGroupsForm_base): +diff -up hplip-3.23.3/ui/faxaddrbookform.py.qmsgbox-typos-fix hplip-3.23.3/ui/faxaddrbookform.py +--- hplip-3.23.3/ui/faxaddrbookform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui/faxaddrbookform.py 2023-05-29 13:48:48.424731328 +0200 +@@ -228,7 +228,7 @@ class FaxAddrBookGroupsForm(FaxAddrBookG x = QMessageBox.critical(self, self.caption(), self.__tr("Annoying Confirmation: Are you sure you want to delete this group?"), @@ -125,7 +187,7 @@ index 109462207..b23364410 100644 QMessageBox.No | QMessageBox.Default, QMessageBox.NoButton) if x == QMessageBox.Yes: -@@ -421,7 +421,7 @@ class FaxAddrBookForm(FaxAddrBookForm_base): +@@ -421,7 +421,7 @@ class FaxAddrBookForm(FaxAddrBookForm_ba if QMessageBox.critical(self, self.caption(), self.__tr("Annoying Confirmation: Are you sure you want to delete this address book entry?"), @@ -134,7 +196,7 @@ index 109462207..b23364410 100644 QMessageBox.No | QMessageBox.Default, QMessageBox.NoButton) == QMessageBox.Yes: db.delete(self.current.entry['name']) -@@ -451,7 +451,7 @@ class FaxAddrBookForm(FaxAddrBookForm_base): +@@ -451,7 +451,7 @@ class FaxAddrBookForm(FaxAddrBookForm_ba QMessageBox.critical(self, self.caption(), QString(error_text), @@ -143,10 +205,9 @@ index 109462207..b23364410 100644 QMessageBox.NoButton, QMessageBox.NoButton) -diff --git a/ui/faxsendjobform.py b/ui/faxsendjobform.py -index 106215c5e..69f424c42 100644 ---- a/ui/faxsendjobform.py -+++ b/ui/faxsendjobform.py +diff -up hplip-3.23.3/ui/faxsendjobform.py.qmsgbox-typos-fix hplip-3.23.3/ui/faxsendjobform.py +--- hplip-3.23.3/ui/faxsendjobform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui/faxsendjobform.py 2023-05-29 13:48:48.424731328 +0200 @@ -210,7 +210,7 @@ class FaxSendJobForm(QMainWindow): QMessageBox.information(self, self.caption(), @@ -174,11 +235,10 @@ index 106215c5e..69f424c42 100644 QMessageBox.NoButton, QMessageBox.NoButton) -diff --git a/ui/firmwaredialog.py b/ui/firmwaredialog.py -index 16b313374..0bcee1164 100644 ---- a/ui/firmwaredialog.py -+++ b/ui/firmwaredialog.py -@@ -109,7 +109,7 @@ class FirmwareDialog(QDialog, FirmwareDialog_Base): +diff -up hplip-3.23.3/ui/firmwaredialog.py.qmsgbox-typos-fix hplip-3.23.3/ui/firmwaredialog.py +--- hplip-3.23.3/ui/firmwaredialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui/firmwaredialog.py 2023-05-29 13:48:48.424731328 +0200 +@@ -109,7 +109,7 @@ class FirmwareDialog(QDialog, FirmwareDi QMessageBox.critical(self, self.caption(), error_text, @@ -187,10 +247,9 @@ index 16b313374..0bcee1164 100644 QMessageBox.NoButton, QMessageBox.NoButton) -diff --git a/ui/makecopiesform.py b/ui/makecopiesform.py -index 27f144b36..0fbb573e3 100644 ---- a/ui/makecopiesform.py -+++ b/ui/makecopiesform.py +diff -up hplip-3.23.3/ui/makecopiesform.py.qmsgbox-typos-fix hplip-3.23.3/ui/makecopiesform.py +--- hplip-3.23.3/ui/makecopiesform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui/makecopiesform.py 2023-05-29 13:48:48.424731328 +0200 @@ -156,7 +156,7 @@ class MakeCopiesForm(QMainWindow): QMessageBox.critical(self, self.caption(), @@ -209,10 +268,9 @@ index 27f144b36..0fbb573e3 100644 QMessageBox.NoButton, QMessageBox.NoButton) -diff --git a/ui/nodevicesform.py b/ui/nodevicesform.py -index 01f6ae53b..57a696375 100644 ---- a/ui/nodevicesform.py -+++ b/ui/nodevicesform.py +diff -up hplip-3.23.3/ui/nodevicesform.py.qmsgbox-typos-fix hplip-3.23.3/ui/nodevicesform.py +--- hplip-3.23.3/ui/nodevicesform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui/nodevicesform.py 2023-05-29 13:48:48.424731328 +0200 @@ -67,7 +67,7 @@ class NoDevicesForm(NoDevicesForm_base): QMessageBox.critical(self, self.caption(), @@ -222,10 +280,9 @@ index 01f6ae53b..57a696375 100644 QMessageBox.NoButton, QMessageBox.NoButton) -diff --git a/ui/pluginform2.py b/ui/pluginform2.py -index 64e64aa77..76cb0238b 100644 ---- a/ui/pluginform2.py -+++ b/ui/pluginform2.py +diff -up hplip-3.23.3/ui/pluginform2.py.qmsgbox-typos-fix hplip-3.23.3/ui/pluginform2.py +--- hplip-3.23.3/ui/pluginform2.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui/pluginform2.py 2023-05-29 13:48:48.424731328 +0200 @@ -173,7 +173,7 @@ class PluginForm2(PluginForm2_base): QMessageBox.critical(self, self.caption(), @@ -244,10 +301,9 @@ index 64e64aa77..76cb0238b 100644 QMessageBox.NoButton, QMessageBox.NoButton) -diff --git a/ui/printerform.py b/ui/printerform.py -index 0c6c4f39e..7c10ab07b 100644 ---- a/ui/printerform.py -+++ b/ui/printerform.py +diff -up hplip-3.23.3/ui/printerform.py.qmsgbox-typos-fix hplip-3.23.3/ui/printerform.py +--- hplip-3.23.3/ui/printerform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui/printerform.py 2023-05-29 13:48:48.425731321 +0200 @@ -154,7 +154,7 @@ class PrinterForm(QMainWindow): QMessageBox.critical(self, self.caption(), @@ -257,11 +313,10 @@ index 0c6c4f39e..7c10ab07b 100644 QMessageBox.NoButton, QMessageBox.NoButton) -diff --git a/ui/settingsdialog.py b/ui/settingsdialog.py -index 92da22546..24f02fd84 100644 ---- a/ui/settingsdialog.py -+++ b/ui/settingsdialog.py -@@ -146,7 +146,7 @@ class SettingsDialog(SettingsDialog_base): +diff -up hplip-3.23.3/ui/settingsdialog.py.qmsgbox-typos-fix hplip-3.23.3/ui/settingsdialog.py +--- hplip-3.23.3/ui/settingsdialog.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui/settingsdialog.py 2023-05-29 13:48:48.425731321 +0200 +@@ -146,7 +146,7 @@ class SettingsDialog(SettingsDialog_base ## QMessageBox.warning(self, ## self.caption(), ## self.__tr("One or more email addresses are missing.

Please enter this information and try again."), @@ -270,7 +325,7 @@ index 92da22546..24f02fd84 100644 ## QMessageBox.NoButton, ## QMessageBox.NoButton) ## return -@@ -163,7 +163,7 @@ class SettingsDialog(SettingsDialog_base): +@@ -163,7 +163,7 @@ class SettingsDialog(SettingsDialog_base ## QMessageBox.information(self, ## self.caption(), ## self.__tr("

Please check your email for a test message.

If the message doesn't arrive, please check your settings and try again."), @@ -279,10 +334,9 @@ index 92da22546..24f02fd84 100644 ## QMessageBox.NoButton, ## QMessageBox.NoButton) -diff --git a/ui/setupform.py b/ui/setupform.py -index 307917b02..78863fdd8 100644 ---- a/ui/setupform.py -+++ b/ui/setupform.py +diff -up hplip-3.23.3/ui/setupform.py.qmsgbox-typos-fix hplip-3.23.3/ui/setupform.py +--- hplip-3.23.3/ui/setupform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui/setupform.py 2023-05-29 13:48:48.425731321 +0200 @@ -602,7 +602,7 @@ class SetupForm(SetupForm_base): if ( QMessageBox.warning(self, self.caption(), @@ -328,10 +382,9 @@ index 307917b02..78863fdd8 100644 QMessageBox.NoButton, QMessageBox.NoButton) -diff --git a/ui/unloadform.py b/ui/unloadform.py -index 8397a689c..ae363e01e 100644 ---- a/ui/unloadform.py -+++ b/ui/unloadform.py +diff -up hplip-3.23.3/ui/unloadform.py.qmsgbox-typos-fix hplip-3.23.3/ui/unloadform.py +--- hplip-3.23.3/ui/unloadform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui/unloadform.py 2023-05-29 13:48:48.425731321 +0200 @@ -135,7 +135,7 @@ class UnloadForm(QMainWindow): QMessageBox.critical(self, self.caption(), @@ -341,10 +394,9 @@ index 8397a689c..ae363e01e 100644 QMessageBox.NoButton, QMessageBox.NoButton) -diff --git a/ui/upgradeform.py b/ui/upgradeform.py -index 6b9acf5cc..d0b418419 100644 ---- a/ui/upgradeform.py -+++ b/ui/upgradeform.py +diff -up hplip-3.23.3/ui/upgradeform.py.qmsgbox-typos-fix hplip-3.23.3/ui/upgradeform.py +--- hplip-3.23.3/ui/upgradeform.py.qmsgbox-typos-fix 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/ui/upgradeform.py 2023-05-29 13:48:48.425731321 +0200 @@ -118,7 +118,7 @@ class UpgradeForm(UpgradeForm_base): QMessageBox.critical(self, self.caption(), @@ -363,111 +415,3 @@ index 6b9acf5cc..d0b418419 100644 QMessageBox.NoButton, QMessageBox.NoButton) -diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py -index 495883f72..0ca016820 100644 ---- a/ui5/devmgr5.py -+++ b/ui5/devmgr5.py -@@ -139,8 +139,7 @@ class PluginInstall(QObject): - install_plugin = QMessageBox.warning(self.parent, - self.parent.windowTitle(), - self.__tr("The HPLIP plugin is already installed.

Do you want to continue and re-install it?"), -- QMessageBox.Yes, -- QMessageBox.No, -+ QMessageBox.Yes | QMessageBox.No, - QMessageBox.NoButton) == QMessageBox.Yes - - if install_plugin: -@@ -149,8 +148,7 @@ class PluginInstall(QObject): - QMessageBox.critical(self.parent, - self.parent.windowTitle(), - self.__tr("Unable to find an appropriate su/sudo utility to run hp-plugin.

Install kdesu, gnomesu, or gksu.

"), -- QMessageBox.Ok, -- QMessageBox.NoButton, -+ QMessageBox.Ok | QMessageBox.NoButton, - QMessageBox.NoButton) - - -diff --git a/ui5/fabwindow.py b/ui5/fabwindow.py -index 488b6bbd5..0b95c94f1 100644 ---- a/ui5/fabwindow.py -+++ b/ui5/fabwindow.py -@@ -344,7 +344,7 @@ class FABWindow(QMainWindow, Ui_MainWindow): - new_name = to_unicode(self.NameLineEdit.text()) - if new_name != self.name: - if QMessageBox.question(self, self.__tr("Rename?"), "Rename '%s' to '%s'?"%(self.name,new_name), \ -- QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes: -+ QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes: - - self.db.rename(self.name, new_name) - log.debug("Rename %s to %s" % (self.name, new_name)) -diff --git a/ui5/nodevicesdialog.py b/ui5/nodevicesdialog.py -index 6083f6d4b..ca86bfcda 100644 ---- a/ui5/nodevicesdialog.py -+++ b/ui5/nodevicesdialog.py -@@ -64,8 +64,7 @@ class NoDevicesDialog(QDialog, Ui_NoDevicesDialog_base): - QMessageBox.critical(self, - self.windowTitle(), - self.__tr("An error occurred.

Please re-start the Device Manager and try again."), -- QMessageBox.Ok, -- QMessageBox.NoButton, -+ QMessageBox.Ok | QMessageBox.NoButton, - QMessageBox.NoButton) - - -diff --git a/ui5/plugindialog.py b/ui5/plugindialog.py -index e3007f911..1c6b33868 100644 ---- a/ui5/plugindialog.py -+++ b/ui5/plugindialog.py -@@ -252,7 +252,7 @@ class PluginDialog(QDialog, Ui_Dialog): - - if QMessageBox.question(self, " ", - self.__tr("%s

Without this, it is not possible to authenticate and validate the plug-in prior to installation.

Do you still want to install the plug-in?" %error_str), -- QMessageBox.Yes | QMessageBox.No) != QMessageBox.Yes: -+ QMessageBox.Yes | QMessageBox.No, QMessageBox.No) != QMessageBox.Yes: - - self.pluginObj.deleteInstallationFiles(download_plugin_file) - self.close() -diff --git a/ui5/queuesconf.py b/ui5/queuesconf.py -index cf2206490..e3c2a0278 100644 ---- a/ui5/queuesconf.py -+++ b/ui5/queuesconf.py -@@ -245,7 +245,7 @@ class QueuesDiagnose(QDialog, Ui_Dialog): - - if QMessageBox.question(self, " ", - self.__tr("%s

Without this, it is not possible to authenticate and validate this tool prior to installation.

Do you still want to run Smart Install disabler?" %error_str), -- QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes: -+ QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes: - # Disabling without verification. - sts, out = utils.run("sh %s"%smart_install_run) - -diff --git a/ui5/setupdialog.py b/ui5/setupdialog.py -index fbfe5ac9b..120ee1587 100644 ---- a/ui5/setupdialog.py -+++ b/ui5/setupdialog.py -@@ -873,7 +873,7 @@ class SetupDialog(QDialog, Ui_Dialog): - self.windowTitle(), - warn_text, - QMessageBox.Yes|\ -- QMessageBox.No|\ -+ QMessageBox.No, - QMessageBox.NoButton) == QMessageBox.Yes ): - i = 2 - while True: -@@ -1108,7 +1108,7 @@ class SetupDialog(QDialog, Ui_Dialog): - if QMessageBox.critical(self, - self.windowTitle(), - error_text, -- QMessageBox.Retry | QMessageBox.Default, -+ QMessageBox.Retry | QMessageBox.Default |\ - QMessageBox.Cancel | QMessageBox.Escape, - QMessageBox.NoButton) == QMessageBox.Cancel: - break -@@ -1138,7 +1138,7 @@ class SetupDialog(QDialog, Ui_Dialog): - if QMessageBox.critical(self, - self.windowTitle(), - error_text, -- QMessageBox.Retry | QMessageBox.Default, -+ QMessageBox.Retry | QMessageBox.Default |\ - QMessageBox.Cancel | QMessageBox.Escape, - QMessageBox.NoButton) == QMessageBox.Cancel: - break diff --git a/hplip-add-ppd-crash.patch b/hplip-add-ppd-crash.patch index 7117860..798630a 100644 --- a/hplip-add-ppd-crash.patch +++ b/hplip-add-ppd-crash.patch @@ -1,8 +1,7 @@ -diff --git a/setup.py b/setup.py -index 976a42c..3604dd7 100755 ---- a/setup.py -+++ b/setup.py -@@ -558,6 +558,9 @@ else: # INTERACTIVE_MODE +diff -up hplip-3.23.3/setup.py.add-ppd-crash hplip-3.23.3/setup.py +--- hplip-3.23.3/setup.py.add-ppd-crash 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/setup.py 2023-05-29 13:55:03.443497903 +0200 +@@ -553,6 +553,9 @@ else: # INTERACTIVE_MODE if file_path.endswith('.gz'): nickname = gzip.GzipFile(file_path, 'r').read(4096) @@ -12,17 +11,17 @@ index 976a42c..3604dd7 100755 else: nickname = open(file_path, 'r').read(4096) -diff --git a/ui5/setupdialog.py b/ui5/setupdialog.py -index ac45357..a6dacf0 100644 ---- a/ui5/setupdialog.py -+++ b/ui5/setupdialog.py -@@ -772,9 +772,9 @@ class SetupDialog(QDialog, Ui_Dialog): - +diff -up hplip-3.23.3/ui5/setupdialog.py.add-ppd-crash hplip-3.23.3/ui5/setupdialog.py +--- hplip-3.23.3/ui5/setupdialog.py.add-ppd-crash 2023-05-29 13:55:03.443497903 +0200 ++++ hplip-3.23.3/ui5/setupdialog.py 2023-05-29 13:57:19.014700721 +0200 +@@ -765,10 +765,9 @@ class SetupDialog(QDialog, Ui_Dialog): + pass def OtherPPDButton_clicked(self, b): - ppd_file = to_unicode(QFileDialog.getOpenFileName(self, self.__tr("Select PPD File"), -- sys_conf.get('dirs', 'ppd'), -- self.__tr("PPD Files (*.ppd *.ppd.gz);;All Files (*)"))) +- sys_conf.get( +- 'dirs', 'ppd'), +- self.__tr("PPD Files (*.ppd *.ppd.gz);;All Files (*)"))) + ppd_file = QFileDialog.getOpenFileName(self, self.__tr("Select PPD File"), + sys_conf.get('dirs', 'ppd'), + self.__tr("PPD Files (*.ppd *.ppd.gz);;All Files (*)"))[0] diff --git a/hplip-check-userperms.patch b/hplip-check-userperms.patch deleted file mode 100644 index 9204c0b..0000000 --- a/hplip-check-userperms.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/base/password.py b/base/password.py -index bd68f2a..bff9f80 100644 ---- a/base/password.py -+++ b/base/password.py -@@ -157,6 +157,28 @@ class Password(object): - log.warn("%s distro is not found in AUTH_TYPES" % distro_name) - self.__authType = 'su' - -+ # check if caller is in wheel group - use 'su' if he isnt - -+ # or if the caller is root (just for showing 'root' username) -+ # in the prompt -+ import os -+ from grp import getgrnam -+ -+ user = os.getenv('USER') -+ -+ try: -+ members = getgrnam('wheel').gr_mem -+ except KeyError: -+ try: -+ members = getgrnam('sudo').gr_mem -+ except: -+ return -+ -+ if user in members: -+ self.__authType = 'sudo' -+ else: -+ self.__authType = 'su' -+ -+ - def __getPasswordDisplayString(self): - if self.__authType == "su": - return "Please enter the root/superuser password: " diff --git a/hplip-covscan.patch b/hplip-covscan.patch index bb6314b..adc456d 100644 --- a/hplip-covscan.patch +++ b/hplip-covscan.patch @@ -1,38 +1,6 @@ -diff --git a/Makefile.am b/Makefile.am -index 62a25d3..2c4d6f8 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -3,7 +3,7 @@ - # - # (c) 2004-2015 Copyright HP Development Company, LP - # Author: David Suffield, Naga Samrat Chowdary Narla, Sarbeswar Meher --INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/ -+INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/ -Iprotocol - CFLAGS+= -DCONFDIR=\"$(hplip_confdir)\" - CXXFLAGS+= -DCONFDIR=\"$(hplip_confdir)\" - -@@ -304,7 +304,7 @@ dist_pcard_DATA = pcard/__init__.py pcard/photocard.py - pcardextdir = $(pyexecdir) - pcardext_LTLIBRARIES = pcardext.la - pcardext_la_LDFLAGS = -module -avoid-version --pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c -+pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h - pcardext_la_CFLAGS = -I$(PYTHONINCLUDEDIR) - - # prnt -@@ -316,7 +316,7 @@ lib_LTLIBRARIES += libhpipp.la - #hpipp_LTLIBRARIES = hpipp.la - #hpipp_la_LDFLAGS = -module -avoid-version - libhpipp_la_SOURCES = protocol/hp_ipp.c protocol/hp_ipp.h protocol/hp_ipp_i.h --libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\" -+libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\" -D_GNU_SOURCE - libhpipp_la_LDFLAGS = -version-info 0:1:0 - libhpipp_la_LIBADD = libhpmud.la - -diff --git a/common/utils.c b/common/utils.c -index d8ecee9..def4e47 100644 ---- a/common/utils.c -+++ b/common/utils.c +diff -up hplip-3.23.3/common/utils.c.covscan hplip-3.23.3/common/utils.c +--- hplip-3.23.3/common/utils.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/common/utils.c 2023-05-29 13:58:10.969395214 +0200 @@ -1,5 +1,9 @@ +#ifndef _GNU_SOURCE +#define _GNU_SOURCE @@ -44,11 +12,10 @@ index d8ecee9..def4e47 100644 #include #include #include -diff --git a/io/hpmud/hpmud.c b/io/hpmud/hpmud.c -index 0eb6fff..358f279 100644 ---- a/io/hpmud/hpmud.c -+++ b/io/hpmud/hpmud.c -@@ -759,6 +759,7 @@ enum HPMUD_RESULT hpmud_get_dstat(HPMUD_DEVICE dd, struct hpmud_dstat *ds) +diff -up hplip-3.23.3/io/hpmud/hpmud.c.covscan hplip-3.23.3/io/hpmud/hpmud.c +--- hplip-3.23.3/io/hpmud/hpmud.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/io/hpmud/hpmud.c 2023-05-29 13:58:10.970395208 +0200 +@@ -759,6 +759,7 @@ enum HPMUD_RESULT hpmud_get_dstat(HPMUD_ } strncpy(ds->uri, msp->device[dd].uri, sizeof(ds->uri)); @@ -56,10 +23,9 @@ index 0eb6fff..358f279 100644 ds->io_mode = msp->device[dd].io_mode; ds->channel_cnt = msp->device[dd].channel_cnt; ds->mlc_up = msp->device[dd].mlc_up; -diff --git a/io/hpmud/jd.c b/io/hpmud/jd.c -index 06f5072..20df27a 100644 ---- a/io/hpmud/jd.c -+++ b/io/hpmud/jd.c +diff -up hplip-3.23.3/io/hpmud/jd.c.covscan hplip-3.23.3/io/hpmud/jd.c +--- hplip-3.23.3/io/hpmud/jd.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/io/hpmud/jd.c 2023-05-29 13:58:10.970395208 +0200 @@ -31,6 +31,7 @@ #endif @@ -68,10 +34,9 @@ index 06f5072..20df27a 100644 #include "hpmud.h" #include "hpmudi.h" -diff --git a/io/hpmud/model.c b/io/hpmud/model.c -index 4ea8990..a917d69 100644 ---- a/io/hpmud/model.c -+++ b/io/hpmud/model.c +diff -up hplip-3.23.3/io/hpmud/model.c.covscan hplip-3.23.3/io/hpmud/model.c +--- hplip-3.23.3/io/hpmud/model.c.covscan 2023-05-29 13:58:10.958395279 +0200 ++++ hplip-3.23.3/io/hpmud/model.c 2023-05-29 13:58:10.970395208 +0200 @@ -117,6 +117,7 @@ static int ReadConfig() if (rcbuf[0] == '[') { @@ -88,11 +53,10 @@ index 4ea8990..a917d69 100644 break; /* done */ } } -diff --git a/io/hpmud/musb.c b/io/hpmud/musb.c -index 6e99c15..755493e 100644 ---- a/io/hpmud/musb.c -+++ b/io/hpmud/musb.c -@@ -775,7 +775,7 @@ static int device_id(int fd, unsigned char *buffer, int size) +diff -up hplip-3.23.3/io/hpmud/musb.c.covscan hplip-3.23.3/io/hpmud/musb.c +--- hplip-3.23.3/io/hpmud/musb.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/io/hpmud/musb.c 2023-05-29 13:58:10.970395208 +0200 +@@ -776,7 +776,7 @@ static int device_id(int fd, unsigned ch len = size-1; /* leave byte for zero termination */ if (len > 2) len -= 2; @@ -101,11 +65,10 @@ index 6e99c15..755493e 100644 buffer[len]=0; DBG("read actual device_id successfully fd=%d len=%d\n", fd, len); -diff --git a/io/hpmud/pp.c b/io/hpmud/pp.c -index 74c5fdc..021d627 100644 ---- a/io/hpmud/pp.c -+++ b/io/hpmud/pp.c -@@ -632,7 +632,7 @@ static int device_id(int fd, char *buffer, int size) +diff -up hplip-3.23.3/io/hpmud/pp.c.covscan hplip-3.23.3/io/hpmud/pp.c +--- hplip-3.23.3/io/hpmud/pp.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/io/hpmud/pp.c 2023-05-29 13:58:10.970395208 +0200 +@@ -632,7 +632,7 @@ static int device_id(int fd, char *buffe len = size-1; /* leave byte for zero termination */ if (len > 2) len -= 2; @@ -114,10 +77,39 @@ index 74c5fdc..021d627 100644 buffer[len]=0; DBG("read actual device_id successfully fd=%d len=%d\n", fd, len); -diff --git a/pcard/fat.c b/pcard/fat.c -index caa383f..e1425c0 100644 ---- a/pcard/fat.c -+++ b/pcard/fat.c +diff -up hplip-3.23.3/Makefile.am.covscan hplip-3.23.3/Makefile.am +--- hplip-3.23.3/Makefile.am.covscan 2023-05-29 13:58:10.944395361 +0200 ++++ hplip-3.23.3/Makefile.am 2023-05-29 13:58:10.969395214 +0200 +@@ -3,7 +3,7 @@ + # + # (c) 2004-2015 Copyright HP Development Company, LP + # Author: David Suffield, Naga Samrat Chowdary Narla, Sarbeswar Meher +-INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/ ++INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/ -Iprotocol + CFLAGS+= -DCONFDIR=\"$(hplip_confdir)\" + CXXFLAGS+= -DCONFDIR=\"$(hplip_confdir)\" + +@@ -310,7 +310,7 @@ dist_pcard_DATA = pcard/__init__.py pcar + pcardextdir = $(pyexecdir) + pcardext_LTLIBRARIES = pcardext.la + pcardext_la_LDFLAGS = -module -avoid-version +-pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c ++pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h + pcardext_la_CFLAGS = -I$(PYTHONINCLUDEDIR) + + # prnt +@@ -322,7 +322,7 @@ lib_LTLIBRARIES += libhpipp.la + #hpipp_LTLIBRARIES = hpipp.la + #hpipp_la_LDFLAGS = -module -avoid-version + libhpipp_la_SOURCES = protocol/hp_ipp.c protocol/hp_ipp.h protocol/hp_ipp_i.h +-libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\" ++libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\" -D_GNU_SOURCE + libhpipp_la_LDFLAGS = -version-info 0:1:0 + libhpipp_la_LIBADD = libhpmud.la + +diff -up hplip-3.23.3/pcard/fat.c.covscan hplip-3.23.3/pcard/fat.c +--- hplip-3.23.3/pcard/fat.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/pcard/fat.c 2023-05-29 13:58:10.971395203 +0200 @@ -519,14 +519,17 @@ int FatFreeSpace(void) int FatDiskAttributes( PHOTO_CARD_ATTRIBUTES * pa ) @@ -147,10 +139,9 @@ index caa383f..e1425c0 100644 cwd.StartSector = ConvertClusterToSector(fa.StartCluster); cwd.CurrSector = cwd.StartSector; cwd.StartCluster = fa.StartCluster; -diff --git a/prnt/hpcups/genPCLm.cpp b/prnt/hpcups/genPCLm.cpp -index c0cdc73..4db4bde 100644 ---- a/prnt/hpcups/genPCLm.cpp -+++ b/prnt/hpcups/genPCLm.cpp +diff -up hplip-3.23.3/prnt/hpcups/genPCLm.cpp.covscan hplip-3.23.3/prnt/hpcups/genPCLm.cpp +--- hplip-3.23.3/prnt/hpcups/genPCLm.cpp.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/prnt/hpcups/genPCLm.cpp 2023-05-29 13:58:10.971395203 +0200 @@ -1237,11 +1237,16 @@ void PCLmGenerator::writeJobTicket() char orientation[256]; char duplex[256]; @@ -173,7 +164,7 @@ index c0cdc73..4db4bde 100644 snprintf(pOutStr,OUT_STR_SIZE,"%% genPCLm (Ver: %f)\n",PCLM_Ver); writeStr2OutBuff(pOutStr); snprintf(pOutStr,OUT_STR_SIZE,"%%============= Job Ticket =============\n"); writeStr2OutBuff(pOutStr); -@@ -1635,7 +1640,10 @@ int PCLmGenerator::StartPage(PCLmPageSetup *PCLmPageContent, void **pOutBuffer, +@@ -1635,7 +1640,10 @@ int PCLmGenerator::StartPage(PCLmPageSe } if(strlen(PCLmPageContent->mediaSizeName)) @@ -185,10 +176,9 @@ index c0cdc73..4db4bde 100644 currStripHeight=PCLmPageContent->stripHeight; if(!currStripHeight) -diff --git a/prnt/hpijs/context2.cpp b/prnt/hpijs/context2.cpp -index c3df482..19490b1 100644 ---- a/prnt/hpijs/context2.cpp -+++ b/prnt/hpijs/context2.cpp +diff -up hplip-3.23.3/prnt/hpijs/context2.cpp.covscan hplip-3.23.3/prnt/hpijs/context2.cpp +--- hplip-3.23.3/prnt/hpijs/context2.cpp.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/prnt/hpijs/context2.cpp 2023-05-29 13:58:10.971395203 +0200 @@ -1302,6 +1302,7 @@ DRIVER_ERROR PrintContext::SelectDevice if(0 == strnlen((const char *)pSS->strDevID, DevIDBuffSize)) { @@ -197,11 +187,10 @@ index c3df482..19490b1 100644 } thePrinter = pPFI->CreatePrinter (pSS, familyHandle); if (thePrinter->constructor_error != NO_ERROR) -diff --git a/prnt/hpijs/systemservices.cpp b/prnt/hpijs/systemservices.cpp -index 95f5a64..f5b4bb5 100644 ---- a/prnt/hpijs/systemservices.cpp -+++ b/prnt/hpijs/systemservices.cpp -@@ -396,7 +396,10 @@ void SystemServices::AdjustIO(IO_MODE IM, const char* model) +diff -up hplip-3.23.3/prnt/hpijs/systemservices.cpp.covscan hplip-3.23.3/prnt/hpijs/systemservices.cpp +--- hplip-3.23.3/prnt/hpijs/systemservices.cpp.covscan 2023-03-28 09:26:27.000000000 +0200 ++++ hplip-3.23.3/prnt/hpijs/systemservices.cpp 2023-05-29 13:58:10.971395203 +0200 +@@ -396,7 +396,10 @@ void SystemServices::AdjustIO(IO_MODE IM IOMode.bDevID =IM.bDevID && IOMode.bDevID; if (model) @@ -212,11 +201,10 @@ index 95f5a64..f5b4bb5 100644 } APDK_END_NAMESPACE -diff --git a/prnt/hpps/hppsfilter.c b/prnt/hpps/hppsfilter.c -index 5879a70..d246041 100644 ---- a/prnt/hpps/hppsfilter.c -+++ b/prnt/hpps/hppsfilter.c -@@ -230,13 +230,13 @@ static void WriteHeader(char **argument) +diff -up hplip-3.23.3/prnt/hpps/hppsfilter.c.covscan hplip-3.23.3/prnt/hpps/hppsfilter.c +--- hplip-3.23.3/prnt/hpps/hppsfilter.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/prnt/hpps/hppsfilter.c 2023-05-29 13:58:10.972395197 +0200 +@@ -274,13 +274,13 @@ static void WriteHeader(char **argument) /* Writing Header Information argument[1] = JOB ID , argument[2]= USERNAME, argument[3] = TITLE */ hpwrite("\x1b%-12345X@PJL JOBNAME=", strlen("\x1b%-12345X@PJL JOBNAME=")); @@ -233,25 +221,24 @@ index 5879a70..d246041 100644 hpwrite(buffer, strlen(buffer)); fprintf(stderr, "HP PS filter func = WriteHeader : WRITING PJL HEADER INFO\n"); return; -diff --git a/protocol/hp_ipp.h b/protocol/hp_ipp.h -index 3853f84..de76202 100644 ---- a/protocol/hp_ipp.h -+++ b/protocol/hp_ipp.h -@@ -166,5 +166,10 @@ int getCupsPrinters(printer_t **printer_list); - HPIPP_RESULT parseResponseHeader(char* header, int *content_length, int *chunked, int* header_size); - HPIPP_RESULT prepend_http_header(raw_ipp *raw_request); +diff -up hplip-3.23.3/protocol/hp_ipp.h.covscan hplip-3.23.3/protocol/hp_ipp.h +--- hplip-3.23.3/protocol/hp_ipp.h.covscan 2023-05-29 13:58:10.972395197 +0200 ++++ hplip-3.23.3/protocol/hp_ipp.h 2023-05-29 13:59:03.645085468 +0200 +@@ -168,6 +168,11 @@ HPIPP_RESULT parseResponseHeader(char* h + HPIPP_RESULT prepend_http_header(raw_ipp *raw_request,const char *resource); enum HPMUD_RESULT sendUSBRequest(char *buf, int size, raw_ipp *responseptr, char * device_uri); + enum HPMUD_RESULT sendUSBFileRequest(char *buf, int size, int fileHandle,raw_ipp *responseptr, char *device_uri); +void _releaseCupsInstance(); +int addCupsPrinter(char *name, char *device_uri, char *location, char *ppd_file, char *model, char *info); +int delCupsPrinter(char *pr_name); +int setDefaultCupsPrinter(char *pr_name); +int controlCupsPrinter(char *pr_name, int op); - # endif //_IPP_H -diff --git a/scan/sane/bb_ledm.c b/scan/sane/bb_ledm.c -index b233d1e..7ba0edf 100644 ---- a/scan/sane/bb_ledm.c -+++ b/scan/sane/bb_ledm.c + ipp_t * createFaxDetailRequest(const char *printer_name); + ipp_t * getDeviceFaxModemAttributes(char* device_uri,char* printer_name, int *count); +diff -up hplip-3.23.3/scan/sane/bb_ledm.c.covscan hplip-3.23.3/scan/sane/bb_ledm.c +--- hplip-3.23.3/scan/sane/bb_ledm.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/scan/sane/bb_ledm.c 2023-05-29 13:58:10.972395197 +0200 @@ -26,6 +26,7 @@ # include "http.h" # include "xml.h" @@ -260,10 +247,9 @@ index b233d1e..7ba0edf 100644 # include -diff --git a/scan/sane/common.h b/scan/sane/common.h -index 0f67542..e496a74 100644 ---- a/scan/sane/common.h -+++ b/scan/sane/common.h +diff -up hplip-3.23.3/scan/sane/common.h.covscan hplip-3.23.3/scan/sane/common.h +--- hplip-3.23.3/scan/sane/common.h.covscan 2023-05-29 13:58:10.727396637 +0200 ++++ hplip-3.23.3/scan/sane/common.h 2023-05-29 13:58:10.972395197 +0200 @@ -36,7 +36,7 @@ #define _STRINGIZE(x) #x #define STRINGIZE(x) _STRINGIZE(x) @@ -273,11 +259,10 @@ index 0f67542..e496a74 100644 #define BUG_DUMP(data, size) bugdump((data), (size)) #define BUG_SZ(args...) {syslog(LOG_ERR, args); DBG(2, args);} -diff --git a/scan/sane/escl.c b/scan/sane/escl.c -index af45bff..4f59b21 100644 ---- a/scan/sane/escl.c -+++ b/scan/sane/escl.c -@@ -795,7 +795,7 @@ SANE_Status escl_control_option(SANE_Handle handle, SANE_Int option, SANE_Action +diff -up hplip-3.23.3/scan/sane/escl.c.covscan hplip-3.23.3/scan/sane/escl.c +--- hplip-3.23.3/scan/sane/escl.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/scan/sane/escl.c 2023-05-29 13:58:10.972395197 +0200 +@@ -849,7 +849,7 @@ SANE_Status escl_control_option(SANE_Han //DBG8("escl_control_option (option=%s) action=%d\n", ps->option[option].name, action); if (stat != SANE_STATUS_GOOD) { @@ -286,7 +271,7 @@ index af45bff..4f59b21 100644 } return stat; -@@ -1102,7 +1102,7 @@ void escl_close(SANE_Handle handle) +@@ -1159,7 +1159,7 @@ void escl_close(SANE_Handle handle) if (ps == NULL || ps != session) { @@ -295,10 +280,9 @@ index af45bff..4f59b21 100644 return; } -diff --git a/scan/sane/http.c b/scan/sane/http.c -index 800df91..45668cd 100644 ---- a/scan/sane/http.c -+++ b/scan/sane/http.c +diff -up hplip-3.23.3/scan/sane/http.c.covscan hplip-3.23.3/scan/sane/http.c +--- hplip-3.23.3/scan/sane/http.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/scan/sane/http.c 2023-05-29 13:58:10.973395191 +0200 @@ -36,6 +36,7 @@ #include #include @@ -307,11 +291,10 @@ index 800df91..45668cd 100644 #include "hpmud.h" #include "http.h" -diff --git a/scan/sane/io.c b/scan/sane/io.c -index 4508458..7bbddea 100755 ---- a/scan/sane/io.c -+++ b/scan/sane/io.c -@@ -50,7 +50,7 @@ int __attribute__ ((visibility ("hidden"))) InitDbus(void) +diff -up hplip-3.23.3/scan/sane/io.c.covscan hplip-3.23.3/scan/sane/io.c +--- hplip-3.23.3/scan/sane/io.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/scan/sane/io.c 2023-05-29 13:58:10.973395191 +0200 +@@ -50,7 +50,7 @@ int __attribute__ ((visibility ("hidden" if (dbus_error_is_set(&dbus_err)) { @@ -320,7 +303,7 @@ index 4508458..7bbddea 100755 dbus_error_free(&dbus_err); } -@@ -79,7 +79,7 @@ int __attribute__ ((visibility ("hidden"))) SendScanEvent(char *device_uri, int +@@ -79,7 +79,7 @@ int __attribute__ ((visibility ("hidden" if (NULL == msg) { @@ -329,7 +312,7 @@ index 4508458..7bbddea 100755 return 0; } -@@ -94,7 +94,7 @@ int __attribute__ ((visibility ("hidden"))) SendScanEvent(char *device_uri, int +@@ -94,7 +94,7 @@ int __attribute__ ((visibility ("hidden" if (!dbus_connection_send(dbus_conn, msg, NULL)) { @@ -338,11 +321,10 @@ index 4508458..7bbddea 100755 return 0; } -diff --git a/scan/sane/ledm.c b/scan/sane/ledm.c -index 9a1ff02..07ab5b0 100644 ---- a/scan/sane/ledm.c -+++ b/scan/sane/ledm.c -@@ -802,7 +802,7 @@ SANE_Status ledm_control_option(SANE_Handle handle, SANE_Int option, SANE_Action +diff -up hplip-3.23.3/scan/sane/ledm.c.covscan hplip-3.23.3/scan/sane/ledm.c +--- hplip-3.23.3/scan/sane/ledm.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/scan/sane/ledm.c 2023-05-29 13:58:10.973395191 +0200 +@@ -813,7 +813,7 @@ SANE_Status ledm_control_option(SANE_Han if (stat != SANE_STATUS_GOOD) { @@ -351,7 +333,7 @@ index 9a1ff02..07ab5b0 100644 } return stat; -@@ -1067,7 +1067,7 @@ void ledm_close(SANE_Handle handle) +@@ -1078,7 +1078,7 @@ void ledm_close(SANE_Handle handle) if (ps == NULL || ps != session) { @@ -360,11 +342,10 @@ index 9a1ff02..07ab5b0 100644 return; } -diff --git a/scan/sane/marvell.c b/scan/sane/marvell.c -index ad267a3..236f7c9 100644 ---- a/scan/sane/marvell.c -+++ b/scan/sane/marvell.c -@@ -134,7 +134,7 @@ static int get_ip_data(struct marvell_session *ps, SANE_Byte *data, SANE_Int max +diff -up hplip-3.23.3/scan/sane/marvell.c.covscan hplip-3.23.3/scan/sane/marvell.c +--- hplip-3.23.3/scan/sane/marvell.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/scan/sane/marvell.c 2023-05-29 13:58:10.976395173 +0200 +@@ -134,7 +134,7 @@ static int get_ip_data(struct marvell_se if (!ps->ip_handle) { @@ -373,7 +354,7 @@ index ad267a3..236f7c9 100644 goto bugout; } -@@ -335,7 +335,7 @@ static struct marvell_session *create_session() +@@ -335,7 +335,7 @@ static struct marvell_session *create_se if ((ps = malloc(sizeof(struct marvell_session))) == NULL) { @@ -382,7 +363,7 @@ index ad267a3..236f7c9 100644 return NULL; } memset(ps, 0, sizeof(struct marvell_session)); -@@ -402,7 +402,7 @@ SANE_Status marvell_open(SANE_String_Const device, SANE_Handle *handle) +@@ -402,7 +402,7 @@ SANE_Status marvell_open(SANE_String_Con if (session) { @@ -391,7 +372,7 @@ index ad267a3..236f7c9 100644 return SANE_STATUS_DEVICE_BUSY; } -@@ -431,7 +431,7 @@ SANE_Status marvell_open(SANE_String_Const device, SANE_Handle *handle) +@@ -431,7 +431,7 @@ SANE_Status marvell_open(SANE_String_Con if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK) { @@ -400,7 +381,7 @@ index ad267a3..236f7c9 100644 goto bugout; free(session); -@@ -441,7 +441,7 @@ SANE_Status marvell_open(SANE_String_Const device, SANE_Handle *handle) +@@ -441,7 +441,7 @@ SANE_Status marvell_open(SANE_String_Con if (hpmud_open_channel(session->dd, HPMUD_S_MARVELL_SCAN_CHANNEL, &session->cd) != HPMUD_R_OK) { @@ -418,7 +399,7 @@ index ad267a3..236f7c9 100644 return; } -@@ -849,7 +849,7 @@ SANE_Status marvell_control_option(SANE_Handle handle, SANE_Int option, SANE_Act +@@ -849,7 +849,7 @@ SANE_Status marvell_control_option(SANE_ stat = SANE_STATUS_GOOD; break; } @@ -427,7 +408,7 @@ index ad267a3..236f7c9 100644 } else { /* Set default. */ -@@ -866,7 +866,7 @@ SANE_Status marvell_control_option(SANE_Handle handle, SANE_Int option, SANE_Act +@@ -866,7 +866,7 @@ SANE_Status marvell_control_option(SANE_ if (stat != SANE_STATUS_GOOD) { @@ -436,7 +417,7 @@ index ad267a3..236f7c9 100644 action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto"); } -@@ -905,7 +905,7 @@ SANE_Status marvell_start(SANE_Handle handle) +@@ -905,7 +905,7 @@ SANE_Status marvell_start(SANE_Handle ha if (set_extents(ps)) { @@ -445,7 +426,7 @@ index ad267a3..236f7c9 100644 ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max); stat = SANE_STATUS_INVAL; goto bugout; -@@ -963,7 +963,7 @@ SANE_Status marvell_start(SANE_Handle handle) +@@ -963,7 +963,7 @@ SANE_Status marvell_start(SANE_Handle ha /* Open image processor. */ if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE) { @@ -454,7 +435,7 @@ index ad267a3..236f7c9 100644 stat = SANE_STATUS_INVAL; goto bugout; } -@@ -1023,7 +1023,7 @@ SANE_Status marvell_read(SANE_Handle handle, SANE_Byte *data, SANE_Int maxLength +@@ -1023,7 +1023,7 @@ SANE_Status marvell_read(SANE_Handle han if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR)) { @@ -463,10 +444,9 @@ index ad267a3..236f7c9 100644 goto bugout; } -diff --git a/scan/sane/sclpml.c b/scan/sane/sclpml.c -index 9a5975f..dc8b32c 100644 ---- a/scan/sane/sclpml.c -+++ b/scan/sane/sclpml.c +diff -up hplip-3.23.3/scan/sane/sclpml.c.covscan hplip-3.23.3/scan/sane/sclpml.c +--- hplip-3.23.3/scan/sane/sclpml.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/scan/sane/sclpml.c 2023-05-29 13:58:10.976395173 +0200 @@ -30,6 +30,7 @@ #include #include @@ -484,11 +464,10 @@ index 9a5975f..dc8b32c 100644 return; } -diff --git a/scan/sane/soap.c b/scan/sane/soap.c -index 07106fe..0d22e52 100644 ---- a/scan/sane/soap.c -+++ b/scan/sane/soap.c -@@ -142,7 +142,7 @@ static int get_ip_data(struct soap_session *ps, SANE_Byte *data, SANE_Int maxLen +diff -up hplip-3.23.3/scan/sane/soap.c.covscan hplip-3.23.3/scan/sane/soap.c +--- hplip-3.23.3/scan/sane/soap.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/scan/sane/soap.c 2023-05-29 13:58:10.977395167 +0200 +@@ -142,7 +142,7 @@ static int get_ip_data(struct soap_sessi if (!ps->ip_handle) { @@ -497,7 +476,7 @@ index 07106fe..0d22e52 100644 goto bugout; } -@@ -219,7 +219,7 @@ static struct soap_session *create_session() +@@ -219,7 +219,7 @@ static struct soap_session *create_sessi if ((ps = malloc(sizeof(struct soap_session))) == NULL) { @@ -506,7 +485,7 @@ index 07106fe..0d22e52 100644 return NULL; } memset(ps, 0, sizeof(struct soap_session)); -@@ -418,7 +418,7 @@ SANE_Status soap_open(SANE_String_Const device, SANE_Handle *handle) +@@ -418,7 +418,7 @@ SANE_Status soap_open(SANE_String_Const if (session) { @@ -515,7 +494,7 @@ index 07106fe..0d22e52 100644 return SANE_STATUS_DEVICE_BUSY; } -@@ -434,7 +434,7 @@ SANE_Status soap_open(SANE_String_Const device, SANE_Handle *handle) +@@ -434,7 +434,7 @@ SANE_Status soap_open(SANE_String_Const if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK) { @@ -533,7 +512,7 @@ index 07106fe..0d22e52 100644 return; } -@@ -824,7 +824,7 @@ SANE_Status soap_control_option(SANE_Handle handle, SANE_Int option, SANE_Action +@@ -824,7 +824,7 @@ SANE_Status soap_control_option(SANE_Han if (stat != SANE_STATUS_GOOD) { @@ -542,7 +521,7 @@ index 07106fe..0d22e52 100644 action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto"); } -@@ -862,7 +862,7 @@ SANE_Status soap_start(SANE_Handle handle) +@@ -862,7 +862,7 @@ SANE_Status soap_start(SANE_Handle handl ps->user_cancel = 0; if (set_extents(ps)) { @@ -551,7 +530,7 @@ index 07106fe..0d22e52 100644 ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max); stat = SANE_STATUS_INVAL; goto bugout; -@@ -913,7 +913,7 @@ SANE_Status soap_start(SANE_Handle handle) +@@ -913,7 +913,7 @@ SANE_Status soap_start(SANE_Handle handl /* Open image processor. */ if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE) { @@ -560,7 +539,7 @@ index 07106fe..0d22e52 100644 stat = SANE_STATUS_INVAL; goto bugout; } -@@ -955,7 +955,7 @@ SANE_Status soap_start(SANE_Handle handle) +@@ -955,7 +955,7 @@ SANE_Status soap_start(SANE_Handle handl if (ret & (IP_INPUT_ERROR | IP_FATAL_ERROR | IP_DONE)) { @@ -569,7 +548,7 @@ index 07106fe..0d22e52 100644 stat = SANE_STATUS_IO_ERROR; goto bugout; } -@@ -1007,7 +1007,7 @@ SANE_Status soap_read(SANE_Handle handle, SANE_Byte *data, SANE_Int maxLength, S +@@ -1007,7 +1007,7 @@ SANE_Status soap_read(SANE_Handle handle if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR)) { @@ -578,11 +557,10 @@ index 07106fe..0d22e52 100644 goto bugout; } -diff --git a/scan/sane/soapht.c b/scan/sane/soapht.c -index 269ab21..139100d 100644 ---- a/scan/sane/soapht.c -+++ b/scan/sane/soapht.c -@@ -136,7 +136,7 @@ static int get_ip_data(struct soap_session *ps, SANE_Byte *data, SANE_Int maxLen +diff -up hplip-3.23.3/scan/sane/soapht.c.covscan hplip-3.23.3/scan/sane/soapht.c +--- hplip-3.23.3/scan/sane/soapht.c.covscan 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/scan/sane/soapht.c 2023-05-29 13:58:10.977395167 +0200 +@@ -136,7 +136,7 @@ static int get_ip_data(struct soap_sessi if (!ps->ip_handle) { @@ -591,7 +569,7 @@ index 269ab21..139100d 100644 goto bugout; } -@@ -435,7 +435,7 @@ static struct soap_session *create_session() +@@ -435,7 +435,7 @@ static struct soap_session *create_sessi if ((ps = malloc(sizeof(struct soap_session))) == NULL) { @@ -600,7 +578,7 @@ index 269ab21..139100d 100644 return NULL; } memset(ps, 0, sizeof(struct soap_session)); -@@ -459,7 +459,7 @@ SANE_Status soapht_open(SANE_String_Const device, SANE_Handle *handle) +@@ -459,7 +459,7 @@ SANE_Status soapht_open(SANE_String_Cons if (session) { @@ -609,7 +587,7 @@ index 269ab21..139100d 100644 return SANE_STATUS_DEVICE_BUSY; } -@@ -475,7 +475,7 @@ SANE_Status soapht_open(SANE_String_Const device, SANE_Handle *handle) +@@ -475,7 +475,7 @@ SANE_Status soapht_open(SANE_String_Cons if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK) { @@ -627,7 +605,7 @@ index 269ab21..139100d 100644 return; } -@@ -904,7 +904,7 @@ SANE_Status soapht_control_option(SANE_Handle handle, SANE_Int option, SANE_Acti +@@ -904,7 +904,7 @@ SANE_Status soapht_control_option(SANE_H if (stat != SANE_STATUS_GOOD) { @@ -636,7 +614,7 @@ index 269ab21..139100d 100644 action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto"); } -@@ -946,7 +946,7 @@ SANE_Status soapht_start(SANE_Handle handle) +@@ -946,7 +946,7 @@ SANE_Status soapht_start(SANE_Handle han if (set_extents(ps)) { @@ -645,7 +623,7 @@ index 269ab21..139100d 100644 ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max); stat = SANE_STATUS_INVAL; goto bugout; -@@ -1032,7 +1032,7 @@ SANE_Status soapht_start(SANE_Handle handle) +@@ -1032,7 +1032,7 @@ SANE_Status soapht_start(SANE_Handle han /* Open image processor. */ if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE) { @@ -654,7 +632,7 @@ index 269ab21..139100d 100644 stat = SANE_STATUS_INVAL; goto bugout; } -@@ -1075,7 +1075,7 @@ SANE_Status soapht_start(SANE_Handle handle) +@@ -1075,7 +1075,7 @@ SANE_Status soapht_start(SANE_Handle han if (ret & (IP_INPUT_ERROR | IP_FATAL_ERROR | IP_DONE)) { @@ -663,7 +641,7 @@ index 269ab21..139100d 100644 stat = SANE_STATUS_IO_ERROR; goto bugout; } -@@ -1124,7 +1124,7 @@ SANE_Status soapht_read(SANE_Handle handle, SANE_Byte *data, SANE_Int maxLength, +@@ -1124,7 +1124,7 @@ SANE_Status soapht_read(SANE_Handle hand if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR)) { diff --git a/hplip-dialog-infinite-loop.patch b/hplip-dialog-infinite-loop.patch index dbb04e7..cfd635b 100644 --- a/hplip-dialog-infinite-loop.patch +++ b/hplip-dialog-infinite-loop.patch @@ -2,15 +2,6 @@ diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py index c23957a..48b248f 100644 --- a/ui5/devmgr5.py +++ b/ui5/devmgr5.py -@@ -2247,7 +2247,7 @@ class PasswordDialog(QDialog): - self.prompt = prompt - - Layout= QGridLayout(self) -- Layout.setMargin(11) -+ Layout.setContentsMargins(11, 11, 11, 11) - Layout.setSpacing(6) - - self.PromptTextLabel = QLabel(self) @@ -2300,14 +2300,15 @@ class PasswordDialog(QDialog): # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX diff --git a/hplip-hpsetup-noscanjets.patch b/hplip-hpsetup-noscanjets.patch index 5c956a0..52a4690 100644 --- a/hplip-hpsetup-noscanjets.patch +++ b/hplip-hpsetup-noscanjets.patch @@ -1,7 +1,6 @@ -diff --git a/setup.py b/setup.py -index 5d48aaa..88e663f 100755 ---- a/setup.py -+++ b/setup.py +diff -up hplip-3.23.3/setup.py.hpsetup-noscanjets hplip-3.23.3/setup.py +--- hplip-3.23.3/setup.py.hpsetup-noscanjets 2023-05-29 14:16:26.148133678 +0200 ++++ hplip-3.23.3/setup.py 2023-05-29 14:16:26.220133253 +0200 @@ -399,9 +399,19 @@ else: # INTERACTIVE_MODE #log.warning("Cannot setup fax - device does not have fax feature.") setup_fax = False @@ -23,13 +22,12 @@ index 5d48aaa..88e663f 100755 plugin = mq.get('plugin', PLUGIN_NONE) if ignore_plugin_check is False and plugin > PLUGIN_NONE: -diff --git a/ui5/setupdialog.py b/ui5/setupdialog.py -index c6f234b..a5041c1 100644 ---- a/ui5/setupdialog.py -+++ b/ui5/setupdialog.py -@@ -1326,6 +1326,18 @@ class SetupDialog(QDialog, Ui_Dialog): - self.mq = device.queryModelByURI(self.device_uri) - back_end, is_hp, bus, model, serial, dev_file, host, zc, port = device.parseDeviceURI(self.device_uri) +diff -up hplip-3.23.3/ui5/setupdialog.py.hpsetup-noscanjets hplip-3.23.3/ui5/setupdialog.py +--- hplip-3.23.3/ui5/setupdialog.py.hpsetup-noscanjets 2023-05-29 14:16:26.220133253 +0200 ++++ hplip-3.23.3/ui5/setupdialog.py 2023-05-29 14:18:12.475041454 +0200 +@@ -1391,6 +1391,18 @@ class SetupDialog(QDialog, Ui_Dialog): + back_end, is_hp, bus, model, serial, dev_file, host, zc, port = device.parseDeviceURI( + self.device_uri) self.model = models.normalizeModelName(model).lower() + if 'scanjet' in self.model: + FailureUI(self, diff --git a/hplip-nocdmfilter.patch b/hplip-nocdmfilter.patch new file mode 100644 index 0000000..ba1806a --- /dev/null +++ b/hplip-nocdmfilter.patch @@ -0,0 +1,47 @@ +diff --git a/Makefile.am b/Makefile.am +index 751c265..a3be3f1 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -216,7 +216,7 @@ endif #HPLIP_CLASS_DRIVER + if FAX_BUILD + if !HPLIP_CLASS_DRIVER + faxdir = $(hplipdir)/fax +-dist_fax_DATA = fax/fax.py fax/__init__.py fax/coverpages.py fax/pmlfax.py fax/ledmfax.py fax/cdmfax.py fax/soapfax.py fax/ledmsoapfax.py fax/marvellfax.py \ ++dist_fax_DATA = fax/fax.py fax/__init__.py fax/coverpages.py fax/pmlfax.py fax/ledmfax.py fax/soapfax.py fax/ledmsoapfax.py fax/marvellfax.py \ + fax/faxdevice.py fax/filters/pstotiff fax/filters/pstotiff.convs fax/filters/pstotiff.types + fax_filtersdir = $(mimedir) + dist_fax_filters_DATA = fax/filters/pstotiff.convs fax/filters/pstotiff.types +@@ -228,7 +228,7 @@ if HPIJS_INSTALL + dist_hpijsfaxppd_DATA = fax/ppd/HP-Fax-hpijs.ppd.gz fax/ppd/HP-Fax2-hpijs.ppd.gz fax/ppd/HP-Fax3-hpijs.ppd.gz fax/ppd/HP-Fax4-hpijs.ppd.gz + endif # HPIJS_INSTALL + if HPCUPS_INSTALL +-dist_hpcupsfaxppd_DATA = fax/ppd/HP-Fax-hpcups.ppd.gz fax/ppd/HP-Fax2-hpcups.ppd.gz fax/ppd/HP-Fax3-hpcups.ppd.gz fax/ppd/HP-Fax4-hpcups.ppd.gz fax/ppd/HP-Fax-CDM-hpcups.ppd.gz ++dist_hpcupsfaxppd_DATA = fax/ppd/HP-Fax-hpcups.ppd.gz fax/ppd/HP-Fax2-hpcups.ppd.gz fax/ppd/HP-Fax3-hpcups.ppd.gz fax/ppd/HP-Fax4-hpcups.ppd.gz + endif # HPCUPS_INSTALL + endif # HPLIP_CLASS_DRIVER + endif # FAX_BUILD +@@ -613,12 +613,6 @@ hpcupsfax_PROGRAMS = hpcupsfax + hpcupsfax_SOURCES = prnt/hpijs/hpcupsfax.cpp prnt/hpijs/hpcupsfax.h common/utils.h common/utils.c + hpcupsfax_LDADD = libhpip.la -lcups -lcupsimage -ldl + +-# hpcdmfax +-hpcdmfaxdir = $(cupsfilterdir) +-hpcdmfax_PROGRAMS = hpcdmfax +-hpcdmfax_SOURCES = fax/filters/cdmfax/hpcupscdmfax.cpp fax/filters/cdmfax/hpcupscdmfax.h fax/filters/cdmfax/jetlib.cpp fax/filters/cdmfax/jetlib.h +-hpcdmfax_LDADD = libhpip.la -lcups -lcupsimage -ldl -ljpeg +- + endif # HPLIP_CLASS_DRIVER + endif # FAX_BUILD + endif # HPCUPS ONLY +diff --git a/hplip.list.in b/hplip.list.in +index 909f41d..f2b5e47 100644 +--- a/hplip.list.in ++++ b/hplip.list.in +@@ -94,7 +94,6 @@ f 0755 root root $cupsfilter/pstotiff fax/filters/pstotiff + + %if !print_only_exclude + f 0755 root root $cupsfilter/hpcupsfax .libs/hpcupsfax +-f 0755 root root $cupsfilter/hpcdmfax .libs/hpcdmfax + %endif + + %if foomatic-drv-install diff --git a/hplip-noernie.patch b/hplip-noernie.patch index 4ac83b4..47bb9d0 100644 --- a/hplip-noernie.patch +++ b/hplip-noernie.patch @@ -1,7 +1,7 @@ -diff -up hplip-3.17.4/Makefile.am.no-ernie hplip-3.17.4/Makefile.am ---- hplip-3.17.4/Makefile.am.no-ernie 2017-04-26 16:28:35.398099978 +0200 -+++ hplip-3.17.4/Makefile.am 2017-04-26 16:29:02.235879035 +0200 -@@ -519,7 +519,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilte +diff -up hplip-3.23.3/Makefile.am.no-ernie hplip-3.23.3/Makefile.am +--- hplip-3.23.3/Makefile.am.no-ernie 2023-05-29 13:15:58.008610471 +0200 ++++ hplip-3.23.3/Makefile.am 2023-05-29 13:15:58.134609689 +0200 +@@ -562,7 +562,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilte prnt/hpcups/Mode2.cpp prnt/hpcups/Mode2.h prnt/hpcups/Mode3.cpp prnt/hpcups/Mode3.h \ prnt/hpcups/Mode9.cpp prnt/hpcups/Mode9.h prnt/hpcups/Mode10.cpp prnt/hpcups/Mode10.h \ prnt/hpcups/ModeDeltaPlus.cpp prnt/hpcups/ModeDeltaPlus.h prnt/hpcups/ModeJbig.cpp prnt/hpcups/ModeJbig.h \ @@ -10,9 +10,9 @@ diff -up hplip-3.17.4/Makefile.am.no-ernie hplip-3.17.4/Makefile.am prnt/hpcups/Encapsulator.cpp prnt/hpcups/Encapsulator.h prnt/hpcups/Pcl3.cpp prnt/hpcups/Pcl3.h \ prnt/hpcups/Pcl3Gui.cpp prnt/hpcups/Pcl3Gui.h prnt/hpcups/Pcl3Gui2.cpp prnt/hpcups/Pcl3Gui2.h \ prnt/hpcups/LJMono.cpp prnt/hpcups/LJMono.h prnt/hpcups/LJColor.cpp prnt/hpcups/LJColor.h \ -diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp ---- hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie 2017-04-26 16:28:39.525066003 +0200 -+++ hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp 2017-04-26 16:29:46.987510614 +0200 +diff -up hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp +--- hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp.no-ernie 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/prnt/hpcups/Pcl3Gui2.cpp 2023-05-29 13:17:02.468210361 +0200 @@ -30,7 +30,6 @@ #include "CommonDefinitions.h" @@ -26,7 +26,7 @@ diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.17.4/prnt/hpcups { speed_mech_enabled = true; - m_run_ernie_filter = true; - crd_type = eCrd_both; + crd_type = eCrd_color_only; // pcl3 printers support RGB only ref:hplip-1701 strcpy(m_szLanguage, "PCL3GUI"); } @@ -59,21 +57,6 @@ DRIVER_ERROR Pcl3Gui2::Configure(Pipelin @@ -51,9 +51,9 @@ diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.cpp.no-ernie hplip-3.17.4/prnt/hpcups if (crd_type != eCrd_black_only) { Mode10 *pMode10; -diff -up hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h.no-ernie hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h ---- hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h.no-ernie 2017-04-26 16:28:43.277035115 +0200 -+++ hplip-3.17.4/prnt/hpcups/Pcl3Gui2.h 2017-04-26 16:30:05.826355522 +0200 +diff -up hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h.no-ernie hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h +--- hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h.no-ernie 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/prnt/hpcups/Pcl3Gui2.h 2023-05-29 13:15:58.134609689 +0200 @@ -60,7 +60,6 @@ private: DRIVER_ERROR encapsulateRaster(BYTE *input_raster, unsigned int num_bytes, COLORTYPE c_type); bool speed_mech_enabled; diff --git a/hplip-repack.sh b/hplip-repack.sh index c25fbb0..034187c 100755 --- a/hplip-repack.sh +++ b/hplip-repack.sh @@ -14,12 +14,13 @@ tar -xaf hplip-$VERSION.tar.gz || exit 1 # remove unwanted files rm hplip-$VERSION/prnt/hpcups/ErnieFilter.{cpp,h} hplip-$VERSION/prnt/hpijs/ernieplatform.h || exit 1 +rm hplip-$VERSION/fax/filters/cdmfax/hpcupscdmfax.{cpp,h} hplip-$VERSION/fax/filters/cdmfax/jetlib.{cpp,h} hplip-$VERSION/fax/ppd/HP-Fax-CDM-hpcups.ppd.gz || exit 1 # compress into a new tarball tar -cjvf hplip-$VERSION-repack.tar.gz hplip-$VERSION || exit 1 # check whether plugin is available -wget -O hplip-plugin.run https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-$1-plugin.run || exit 1 +wget -O hplip-plugin.run https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-$1-plugin.run || wget -O hplip-plugin.run https://developers.hp.com/sites/default/files/hplip-$1-plugin.run || exit 1 # check whether the file is sane file --mime hplip-plugin.run | grep 'x-shellscript' || exit 1 diff --git a/hplip-snprintf-format.patch b/hplip-snprintf-format.patch index 221f1d1..21b1530 100644 --- a/hplip-snprintf-format.patch +++ b/hplip-snprintf-format.patch @@ -1,20 +1,21 @@ -diff --git a/protocol/hp_ipp.c b/protocol/hp_ipp.c -index 97d827d..af25b3e 100644 ---- a/protocol/hp_ipp.c -+++ b/protocol/hp_ipp.c -@@ -110,9 +110,9 @@ int addCupsPrinter(char *name, char *device_uri, char *location, char *ppd_file, - } +diff -up hplip-3.23.3/protocol/hp_ipp.c.snprintf-format hplip-3.23.3/protocol/hp_ipp.c +--- hplip-3.23.3/protocol/hp_ipp.c.snprintf-format 2023-03-28 09:26:11.000000000 +0200 ++++ hplip-3.23.3/protocol/hp_ipp.c 2023-05-29 14:21:30.872871575 +0200 +@@ -108,10 +108,10 @@ int addCupsPrinter(char *name, char *dev + goto abort; + } - if ( info == NULL ) +- if ( info == NULL ) - snprintf( info,sizeof(info), name ); ++ if ( info == NULL ) + info = name; -- sprintf( printer_uri, "ipp://localhost/printers/%s", name ); -+ snprintf( printer_uri, sizeof(printer_uri), "ipp://localhost/printers/%s", name); +- sprintf(printer_uri, "ipp://localhost/printers/%s", name); ++ snprintf( printer_uri, sizeof(printer_uri), "ipp://localhost/printers/%s", name); - cupsSetUser ("root"); - /* Connect to the HTTP server */ -@@ -511,27 +511,27 @@ int __parsePrinterAttributes(ipp_t *response, printer_t **printer_list) + cupsSetUser("root"); + /* Connect to the HTTP server */ +@@ -514,27 +514,27 @@ int __parsePrinterAttributes(ipp_t *resp if ( strcmp(attr_name, "printer-name") == 0 && val_tag == IPP_TAG_NAME ) { diff --git a/hplip-wifisetup.patch b/hplip-wifisetup.patch index 7247b01..a7dc21b 100644 --- a/hplip-wifisetup.patch +++ b/hplip-wifisetup.patch @@ -1,12 +1,12 @@ -diff -up hplip-3.19.6/ui5/wifisetupdialog.py.wifisetup-bad-call-fix hplip-3.19.6/ui5/wifisetupdialog.py ---- hplip-3.19.6/ui5/wifisetupdialog.py.wifisetup-bad-call-fix 2019-07-12 08:46:56.873167869 +0200 -+++ hplip-3.19.6/ui5/wifisetupdialog.py 2019-07-12 08:49:36.813769803 +0200 -@@ -570,7 +570,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog - try: +diff -up hplip-3.23.3/ui5/wifisetupdialog.py.wifisetup-bad-call-fix hplip-3.23.3/ui5/wifisetupdialog.py +--- hplip-3.23.3/ui5/wifisetupdialog.py.wifisetup-bad-call-fix 2023-05-29 13:45:35.830961640 +0200 ++++ hplip-3.23.3/ui5/wifisetupdialog.py 2023-05-29 13:48:05.939993288 +0200 +@@ -665,7 +665,7 @@ class WifiSetupDialog(QDialog, Ui_Dialog self.ip,_,addressmode, subnetmask, gateway, pridns, sec_dns= self.wifiObj.getIPConfiguration(self.dev, self.adapterName) if self.ip == "0.0.0.0": -- self.ip, subnetmask, gateway, pri_dns, sec_dns, addressmode = self.wifiObj.getwifiotherdetails(self.dev,self.adapterName) -+ self.ip, subnetmask, gateway, pridns, sec_dns, addressmode = self.wifiObj.getwifiotherdetails(self.dev,self.adapterName) + if not self.wifiObj == CdmWifi: +- self.ip, subnetmask, gateway, pri_dns, sec_dns, addressmode = self.wifiObj.getwifiotherdetails(self.dev,self.adapterName) ++ self.ip, subnetmask, gateway, pridns, sec_dns, addressmode = self.wifiObj.getwifiotherdetails(self.dev,self.adapterName) vsa_codes = self.wifiObj.getVSACodes(self.dev, self.adapterName) ss_max, ss_min, ss_val, ss_dbm = self.wifiObj.getSignalStrength(self.dev, self.adapterName,self.network, self.adaptor_id) self.hn = self.wifiObj.getHostname(self.dev) diff --git a/hplip.spec b/hplip.spec index cf11e37..d22bd3b 100644 --- a/hplip.spec +++ b/hplip.spec @@ -6,8 +6,8 @@ Summary: HP Linux Imaging and Printing Project Name: hplip -Version: 3.22.10 -Release: 4%{?dist} +Version: 3.23.5 +Release: 1%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -168,22 +168,19 @@ Patch52: hplip-clean-ldl.patch # - it will cause malfunction of printing and scanning for them # https://bugs.launchpad.net/hplip/+bug/1883898 Patch53: hplip-revert-plugins.patch -# non-sudoers cannot authenticate -# reported upstream https://bugs.launchpad.net/hplip/+bug/1904888 -Patch54: hplip-check-userperms.patch # if an user tries to install scanner via hp-setup (printer/fax utility) # it fails further down - break out earlier with a message # reported upstream as https://bugs.launchpad.net/hplip/+bug/1916114 -Patch55: hplip-hpsetup-noscanjets.patch +Patch54: hplip-hpsetup-noscanjets.patch # 1963114 - patch for hplip firmware load timeout fix # reported upstream https://bugs.launchpad.net/hplip/+bug/1922404 -Patch56: hplip-hpfirmware-timeout.patch +Patch55: hplip-hpfirmware-timeout.patch # 1985251 - Incorrect permission for gpg directory # reported upstream https://bugs.launchpad.net/hplip/+bug/1938442 -Patch57: hplip-gpgdir-perms.patch +Patch56: hplip-gpgdir-perms.patch # 1987141 - hp-plugin installs malformed udev files # reported upstream https://bugs.launchpad.net/hplip/+bug/1847477 -Patch58: hplip-plugin-udevissues.patch +Patch57: hplip-plugin-udevissues.patch # 2080235 - Misleading errors about missing shared libraries when scanning # downstream patch to prevent errors: # - when loading libhpmud.so - unversioned .so files belong into devel packages, @@ -192,32 +189,38 @@ Patch58: hplip-plugin-udevissues.patch # package (if libhpmud.so had been moved to -devel) the dlopen on unversioned .so file was # removed # - /lib64/libm.so is not symlink but ld script, which cannot be used in dlopen() -Patch59: hplip-no-libhpmud-libm-warnings.patch +Patch58: hplip-no-libhpmud-libm-warnings.patch # hplip 3.22.6 doesn't use the correct arguments for snprintf # reported as https://bugs.launchpad.net/hplip/+bug/1982185 -Patch60: hplip-snprintf-format.patch -Patch61: hplip-plugin-script.patch +Patch59: hplip-snprintf-format.patch +Patch60: hplip-plugin-script.patch # C99 compatibility fixes by fweimer - use explicit int # Submitted upstream: -Patch62: hplip-pserror-c99.patch +Patch61: hplip-pserror-c99.patch # C99 compatibility patch by fweimer - several undefined functions in hpaio # backend are declared in orblite.h # Submitted upstream: -Patch63: hplip-scan-hpaio-include.patch +Patch62: hplip-scan-hpaio-include.patch # C99 compatibility patch by fweimer - undefined _DBG() and dynamic linking funcs in orblite.c # - _DBG() looks like typo and new header is added for funcs # Submitted upstream: -Patch64: hplip-scan-orblite-c99.patch +Patch63: hplip-scan-orblite-c99.patch # C99 compatibility patch by fweimer: # PyString_AsStringAndSize is removed in Python3, remove its compilation for now # in case there is a request for compiling it again, there is a possible solution # for the function py3 alternative https://opendev.org/openstack/pyeclib/commit/19c8313986 # - disabling removes hp-unload and /usr/share/hplip/pcard as well # Submitted upstream: -Patch65: hplip-pcardext-disable.patch +Patch64: hplip-pcardext-disable.patch # undefined strcasestr() in sclpml.c - build with _GNU_SOURCE # Submitted upstream: -Patch66: hplip-sclpml-strcasestr.patch +Patch65: hplip-sclpml-strcasestr.patch +# hpcupscdmfilter for faxing requires jetlib header and source files, +# which have copyright note in the header comment, that the files can't +# be shared and copied for other than archival purposes without HP permission +# - this looks as incompatible conditional for Fedora, so the files are removed, +# hplip repacked and this patch removes its mentions in Makefile.am +Patch66: hplip-nocdmfilter.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -353,21 +356,21 @@ SANE driver for scanners in HP's multi-function devices (from HPOJ). %setup -q # The pstotiff filter is rubbish so replace it (launchpad #528394). -%patch1 -p1 -b .pstotiff-is-rubbish +%patch -P 1 -p1 -b .pstotiff-is-rubbish # Fix compilation. -%patch2 -p1 -b .strstr-const +%patch -P 2 -p1 -b .strstr-const # Make utils.checkPyQtImport() look for the gui sub-package (bug #243273). -%patch3 -p1 -b .ui-optional +%patch -P 3 -p1 -b .ui-optional # Make sure to avoid handwritten asm. -%patch4 -p1 -b .no-asm +%patch -P 4 -p1 -b .no-asm # Corrected several IEEE 1284 Device IDs using foomatic data. # Color LaserJet 2500 series (bug #659040) # LaserJet 4100 Series/2100 Series (bug #659039) -%patch5 -p1 -b .deviceIDs-drv +%patch -P 5 -p1 -b .deviceIDs-drv chmod +x %{SOURCE2} mv prnt/drv/hpijs.drv.in{,.deviceIDs-drv-hpijs} %{SOURCE2} prnt/drv/hpcups.drv.in \ @@ -375,28 +378,28 @@ mv prnt/drv/hpijs.drv.in{,.deviceIDs-drv-hpijs} > prnt/drv/hpijs.drv.in # Move udev rules from /etc/ to /usr/lib/ (bug #748208). -%patch6 -p1 -b .udev-rules +%patch -P 6 -p1 -b .udev-rules # Retry when connecting to device fails (bug #532112). -%patch7 -p1 -b .retry-open +%patch -P 7 -p1 -b .retry-open # Mark SNMP quirks in PPD for HP OfficeJet Pro 8500 (bug #581825). -%patch8 -p1 -b .snmp-quirks +%patch -P 8 -p1 -b .snmp-quirks # Fixed bogus low ink warnings from hpijs driver (bug #643643). -%patch9 -p1 -b .hpijs-marker-supply +%patch -P 9 -p1 -b .hpijs-marker-supply # Clear old printer-state-reasons we used to manage (bug #510926). -%patch10 -p1 -b .clear-old-state-reasons +%patch -P 10 -p1 -b .clear-old-state-reasons # Avoid busy loop in hpcups when backend has exited (bug #525944). -%patch11 -p1 -b .hpcups-sigpipe +%patch -P 11 -p1 -b .hpcups-sigpipe # CUPS filters should use TMPDIR when available (bug #865603). -%patch12 -p1 -b .logdir +%patch -P 12 -p1 -b .logdir # Fixed Device ID parsing code in hpijs's dj9xxvip.c (bug #510926). -%patch13 -p1 -b .bad-low-ink-warning +%patch -P 13 -p1 -b .bad-low-ink-warning # Add Device ID for # HP LaserJet Color M451dn (bug #1159380) @@ -404,7 +407,7 @@ for ppd_file in $(grep '^diff' %{PATCH14} | cut -d " " -f 4); do gunzip ${ppd_file#*/}.gz done -%patch14 -p1 -b .deviceIDs-ppd +%patch -P 14 -p1 -b .deviceIDs-ppd for ppd_file in $(grep '^diff' %{PATCH14} | cut -d " " -f 4); do gzip -n ${ppd_file#*/} @@ -415,152 +418,151 @@ for ppd_file in $(grep '^diff' %{PATCH15} | cut -d " " -f 4); do gunzip ${ppd_file#*/}.gz done -%patch15 -p1 -b .ImageableArea +%patch -P 15 -p1 -b .ImageableArea for ppd_file in $(grep '^diff' %{PATCH15} | cut -d " " -f 4); do gzip -n ${ppd_file#*/} done # Scan to /var/tmp instead of /tmp (bug #1076954). -%patch16 -p1 -b .scan-tmp +%patch -P 16 -p1 -b .scan-tmp # Treat logging before importing of logger module (bug #984699). -%patch17 -p1 -b .log-stderr +%patch -P 17 -p1 -b .log-stderr # Fix parsing of avahi-daemon output (bug #1096939). -%patch18 -p1 -b .parsing +%patch -P 18 -p1 -b .parsing # Fixed left/right margins for HP DeskJet 990C (LP #1405212). -%patch19 -p1 -b .dj990c-margin +%patch -P 19 -p1 -b .dj990c-margin # Fixed uses of strncpy throughout. -%patch20 -p1 -b .strncpy +%patch -P 20 -p1 -b .strncpy # Don't try to write bytecode cache for hpfax backend (bug #1192761) # or hp-config_usb_printer (bug #1266903) # or hpps filter (bug #1241548). -%patch21 -p1 -b .no-write-bytecode +%patch -P 21 -p1 -b .no-write-bytecode # Ignore IOError when logging output (bug #712537). -%patch22 -p1 -b .silence-ioerror +%patch -P 22 -p1 -b .silence-ioerror # [abrt] hplip: hp-scan:663::NameError: name 'source_option' is not defined (bug #1341304) -%patch23 -p1 -b .sourceoption +%patch -P 23 -p1 -b .sourceoption # hplip license problem (bug #1364711) -%patch24 -p1 -b .no-ernie +%patch -P 24 -p1 -b .no-ernie # hplip appdata -%patch25 -p1 -b .appdata +%patch -P 25 -p1 -b .appdata # hp-check shows 'CUPS incompatible or not running' even if CUPS is running (bug #1456467) -%patch26 -p1 -b .check-cups +%patch -P 26 -p1 -b .check-cups # hp-firmware:NameError: name 'INTERACTIVE_MODE4' is not defined (bug #1533869) -%patch27 -p1 -b .typo +%patch -P 27 -p1 -b .typo -%patch28 -p1 -b .use-binary-str +%patch -P 28 -p1 -b .use-binary-str # TypeError: 'Error' object does not support indexing (bug #1564770) # upstream bug: https://bugs.launchpad.net/ubuntu/+source/hplip/+bug/1718129 # in python2 it was possible to acces Exception message by index [0]. # in python3 this is no longer possible and it causes TypeError. -%patch29 -p1 -b .error-print-fix +%patch -P 29 -p1 -b .error-print-fix # TypeError: not all arguments converted during string formatting (bug #1566938) # upstream bug: https://bugs.launchpad.net/ubuntu/+source/hplip/+bug/616450 # bug caused by more arguments than argument specifiers in formatted string -%patch30 -p1 -b .hpfax-import-error-print +%patch -P 30 -p1 -b .hpfax-import-error-print # 'WifiSetupDialog' object has no attribute 'wifiobj' (bug #1626877) # upstream bug: https://bugs.launchpad.net/hplip/+bug/1752060 # bug caused by typo in wifisetupdialog wifiObj property call -%patch31 -p1 -b .wifisetup-bad-call-fix +%patch -P 31 -p1 -b .wifisetup-bad-call-fix # have pool of keyservers to choose -%patch32 -p1 -b .keyserver +%patch -P 32 -p1 -b .keyserver # TypeError: argument 5 has unexpected type 'StandardButtons' (bug #1594602) # upstream bug: https://bugs.launchpad.net/ubuntu/+source/hplip/+bug/1745383 # bug caused by typo in QMessageBox constructor call # this patch fixes more of those typos - some fixed by tkorbar, some taken from ubuntu fix -%patch33 -p1 -b .qmsgbox-typos-fix +%patch -P 33 -p1 -b .qmsgbox-typos-fix # removal of non open source code, taken from ubuntu -%patch34 -p1 -b .libimageprocessor-removal +%patch -P 34 -p1 -b .libimageprocessor-removal %{_bindir}/rm prnt/hpcups/libImageProcessor-x86* -%patch35 -p1 -b .toolbox-crash +%patch -P 35 -p1 -b .toolbox-crash # part of https://bugzilla.redhat.com/show_bug.cgi?id=1666076 -%patch36 -p1 -b .add-ppd-crash +%patch -P 36 -p1 -b .add-ppd-crash # 1671513 - after 'successful' plugin installation it is not installed -%patch37 -p1 -b .missing-links +%patch -P 37 -p1 -b .missing-links # 1684434 - Scanning broken for HP LaserJet 3052 -%patch38 -p1 -b .hp-laserjet-3052-broken-scanning +%patch -P 38 -p1 -b .hp-laserjet-3052-broken-scanning # 1694663 - Cannot scan with M281fdw LaserJet - failed: Error during device I/O (part 1) -%patch39 -p1 -b .hpmud-string-parse +%patch -P 39 -p1 -b .hpmud-string-parse # 1694663 - Cannot scan with M281fdw LaserJet - failed: Error during device I/O (part 2) -%patch40 -p1 -b .m278-m281-needs-plugin +%patch -P 40 -p1 -b .m278-m281-needs-plugin # 1695716 - hpcups crashes in Compressor destructor -%patch41 -p1 -b .hpcups-crash +%patch -P 41 -p1 -b .hpcups-crash # fixing issues found by coverity scan -%patch42 -p1 -b .covscan +%patch -P 42 -p1 -b .covscan # segfault during logging (1727162) -%patch43 -p1 -b .logging-segfault +%patch -P 43 -p1 -b .logging-segfault # 1738321 - [abrt] hp-systray:BlockingIOError: [Errno 11] Resource temporarily unavailable -%patch44 -p1 -b .systray-blockerror +%patch -P 44 -p1 -b .systray-blockerror # 1742949, 1740132, 1739855 - missing drivers -%patch45 -p1 -b .missing-drivers +%patch -P 45 -p1 -b .missing-drivers # 1772698 - Can't setup printer (HP LJ 2200): no attributes found in model.dat -%patch46 -p1 -b .model-mismatch +%patch -P 46 -p1 -b .model-mismatch # 1573430 - sixext.py:to_string_utf8:UnicodeDecodeError: 'utf-8' codec can't decode bytes -%patch47 -p1 -b .unicodeerror -%patch48 -p1 -b .Wreturn-fix -%patch49 -p1 -b .configure-python -%patch50 -p1 -b .dialog-infinite-loop +%patch -P 47 -p1 -b .unicodeerror +%patch -P 48 -p1 -b .Wreturn-fix +%patch -P 49 -p1 -b .configure-python +%patch -P 50 -p1 -b .dialog-infinite-loop # 1590014 - hplip PPD search doesn't expect '-' in device name -%patch51 -p1 -b .find-driver +%patch -P 51 -p1 -b .find-driver # 1833308 - hp-clean cannot clean HP PSC1410 - Device I/O error -%patch52 -p1 -b .clean-ldl -%patch53 -p1 -b .revert-plugins -# 1899410 - non-sudoers cannot authenticate because of bad username in prompt -%patch54 -p1 -b .check-userperms +%patch -P 52 -p1 -b .clean-ldl +%patch -P 53 -p1 -b .revert-plugins # if an user tries to install scanner via hp-setup (printer/fax utility) # it fails further down - break out earlier with a message -%patch55 -p1 -b .hpsetup-noscanjets +%patch -P 54 -p1 -b .hpsetup-noscanjets # 1963114 - patch for hplip firmware load timeout fix -%patch56 -p1 -b .hpfirmware-timeout +%patch -P 55 -p1 -b .hpfirmware-timeout # 1985251 - Incorrect permission for gpg directory -%patch57 -p1 -b .gpgdir-perms +%patch -P 56 -p1 -b .gpgdir-perms # 1987141 - hp-plugin installs malformed udev files -%patch58 -p1 -b .hpplugin-udevperms +%patch -P 57 -p1 -b .hpplugin-udevperms # 2080235 - Misleading errors about missing shared libraries when scanning -%patch59 -p1 -b .no-libm-libhpmud-warn +%patch -P 58 -p1 -b .no-libm-libhpmud-warn # hplip 3.22.6 doesn't use proper arguments for snprintf -%patch60 -p1 -b .snprintf-format -%patch61 -p1 -b .plugin-patch +%patch -P 59 -p1 -b .snprintf-format +%patch -P 60 -p1 -b .plugin-patch # C99 compatibility fixes by fweimer - use explicit int # Submitted upstream: -%patch62 -p1 -b .pserror-int +%patch -P 61 -p1 -b .pserror-int # C99 compatibility patch by fweimer - several undefined functions in hpaio # backend are declared in orblite.h # Submitted upstream: -%patch63 -p1 -b .hpaio-orblite-defs +%patch -P 62 -p1 -b .hpaio-orblite-defs # C99 compatibility patch by fweimer - undefined _DBG() and dynamic linking funcs in orblite.c # - _DBG() looks like typo and new header is added for funcs # Submitted upstream: -%patch64 -p1 -b .orblite-undefs +%patch -P 63 -p1 -b .orblite-undefs # C99 compatibility patch by fweimer - python2 PyString_AsStringAndSize in python3 code # gives undefined reference - removed for now with dependent hp-unload -%patch65 -p1 -b .pcardext-disable +%patch -P 64 -p1 -b .pcardext-disable # C99 compatibility patch by fweimer - undefined strcasestr() in sclpml.c - build with _GNU_SOURCE -%patch66 -p1 -b .sclpml-strcasestr +%patch -P 65 -p1 -b .sclpml-strcasestr +%patch -P 66 -p1 -b .nocdmfilter # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui should be installed if you want GUI -%patch1000 -p1 -b .fedora-gui +%patch -P 1000 -p1 -b .fedora-gui %endif @@ -927,6 +929,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Tue Jun 06 2023 Zdenek Dohnal - 3.23.5-1 +- 2184067 - hplip-3.23.5 is available + * Thu Jan 19 2023 Fedora Release Engineering - 3.22.10-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild diff --git a/sources b/sources index b462c5f..826d71c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hplip-3.22.10-repack.tar.gz) = cc7cc12ed04e08cbded581351280b71e13525b06a333d43078d67ae591baeecd29773a7f7fb5ebfc3dd842b1e4c9a84af9c5747987ef1941d1eef405ecb65fc1 +SHA512 (hplip-3.23.5-repack.tar.gz) = 7616a088b6f2f5efbd5ec426b3de80099b56f435adb38c0acd1f60e7cd00e788f94a2e35136011a7d73dd48a891a3b713263132653c9a2acf0ba98d57a790b4c From 850284dda48d0111309ae9e1315284b1b67225e9 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 13 Jun 2023 22:00:33 +0200 Subject: [PATCH 20/84] Rebuilt for Python 3.12 --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index d22bd3b..c6eaa68 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.5 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -929,6 +929,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Tue Jun 13 2023 Python Maint - 3.23.5-2 +- Rebuilt for Python 3.12 + * Tue Jun 06 2023 Zdenek Dohnal - 3.23.5-1 - 2184067 - hplip-3.23.5 is available From 363dc1639dd9014e50a1f8caf4a96b237e7c5768 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Wed, 28 Jun 2023 15:30:01 +0200 Subject: [PATCH 21/84] Remove unused files --- hplip-3.21.2.tar.gz.asc | 7 ------- hplip-lineart.patch | 14 -------------- upstream-key.gpg | 30 ------------------------------ 3 files changed, 51 deletions(-) delete mode 100644 hplip-3.21.2.tar.gz.asc delete mode 100644 hplip-lineart.patch delete mode 100644 upstream-key.gpg diff --git a/hplip-3.21.2.tar.gz.asc b/hplip-3.21.2.tar.gz.asc deleted file mode 100644 index c99a1cd..0000000 --- a/hplip-3.21.2.tar.gz.asc +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.11 (GNU/Linux) - -iEYEABECAAYFAmApuOMACgkQc9dwzaWQR7kddgCeNSUemyt9lpIk8a37ItEiX7XO -xXYAnjgAIdzPYdmSMFJ5Bqv1JLTv7RiC -=oTOD ------END PGP SIGNATURE----- diff --git a/hplip-lineart.patch b/hplip-lineart.patch deleted file mode 100644 index 1580086..0000000 --- a/hplip-lineart.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up hplip-3.14.6/scan.py.lineart hplip-3.14.6/scan.py ---- hplip-3.14.6/scan.py.lineart 2014-07-23 12:30:52.361517852 +0100 -+++ hplip-3.14.6/scan.py 2014-07-23 12:32:17.052940000 +0100 -@@ -977,8 +977,8 @@ try: - try: - pixels_per_line = bytes_per_line * 8 # Calculation of pixels_per_line for Lineart must be 8 time of bytes_per_line - # Otherwise, scanned image will be corrupted (slanted) -- im = Image.frombuffer('RGBA', (pixels_per_line, lines), buffer.read(), -- 'raw', 'RGBA', 0, 1).convert('L') -+ im = Image.frombuffer('1', (pixels_per_line, lines), buffer.read(), -+ 'raw', '1', 0, 1).convert('L') - except ValueError: - log.error("Did not read enough data from scanner (I/O Error?)") - sys.exit(1) diff --git a/upstream-key.gpg b/upstream-key.gpg deleted file mode 100644 index bccc555..0000000 --- a/upstream-key.gpg +++ /dev/null @@ -1,30 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.10 (GNU/Linux) - -mQGiBEsnpscRBACyclffkMVkXXdtY2qTT2+B6HN4hBoUxBwZBULyHFuSP9lsB7wK -16Hl5ZTu+oy+GegzzFRrHWxBLN9i67T0plNkqDJhWUrmXR7xvX+dFc+Qrl+uPR0i -CY1NMnWwnFh01YtYb9NAlb3bLn8RLBH8Zo60i7wfwdW9Wi1mgzmUT/UI9wCg7y6R -VmF4RjNWJ2WRdL/jVeAB8H0D/0xfePoYWrSGzOp7+Vl+xYo5TdSrzohUUnly6xla -UIKwlBCG/jpQqKH17803GpkFyh5FxG1Db7VWsciDv7flcBLPtn75gU2fPHXL+gnv -r1eJ+ugQwCl4/8d4iJ5TMXmHQOW2Pd0U47OmbZYNNgtA+lXhF8n8+6w3GRhqubLF -/9b/A/4wH37bv1shLhdLpP+9WYHc8z9+jmStVUFdAGoD/n6vOpBX+GQYaEY5Y8RS -Wf0DFhMF6CFYNZ2ngDyvPt53M2jU7hrxXIfs/b5bLMqG2et9M/avdEWGUKTsC7wu -0zeGtD07r9EA3WDIhxN9QEGZAq5Q3NSbedMHIVE4Ynq7VNCdsrQ0SFBMSVAgKEhQ -IExpbnV4IEltYWdpbmcgYW5kIFByaW50aW5nKSA8aHBsaXBAaHAuY29tPohgBBMR -AgAgBQJLJ6bHAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQc9dwzaWQR7n4 -dQCghZgIpxuTC+GhiQIO0dK9wTlbMmoAoOB252fEOvf73v8Ya8qmN1GlmYiXuQIN -BEsnpscQCACEO/wh+X9Apok41vn+qby5YLvSuXNcub1iVSlsByv+28KQbbvXDNPh -LP9wdO9DmzfIGwarj0uLtn0h9UWTnEpXSZ0bKJnCYc7GZpUvcNyjIuSs69hK2rLd -38MSb1hoBaICLjZERUhe+ZGwlx7zvAIghj+ss1udwpc6PcdPNaimp+ck9/+eSpir -BZsWRDEyYZ8r0Tzh0vCMZG3AJZvm439gsze5ImvAt+xFluYRCHMAkXaYimXAipHd -Hudqu5B1/KNp3kRc68pDw/kzFSJ4bEdSW/3Qu5gJxb4y9XDTMipyFt1YZrP4sYJN -EMAjIllnMHqQsK4efdNY/JSk92wEjmN/AAQLB/42X5RSrDQc9k/2RdgbRUQPXAXF -YRySDMt4XfaQNAYiU2nQ1thxJuLzFLnp8VumzMD4tmsmBNmacVFTAMJyWZrum6eP -dvyczSBG0e+4t6e2YCGdA8hfxJYNHCEE0i6NI7FCu2OPDqgXKsyViql7vchQAAg3 -N4ILBlcoO86JOCbugj+Yjp8mI2tzw2o3GEZLgHPD+t7ECFmeB6QypH02CXGTsTNQ -6qt99zr86urV8Ta39Q0A6pVV81fkXaGIg1eLX7LCE5g4lV9D/G6KXYWYju3EBz/t -eZRyrE3BrKM7MEqVUcgBwjIswBPDfJFW+H6B7Ma9RsT0efJgeruc712Z6cztiEkE -GBECAAkFAksnpscCGwwACgkQc9dwzaWQR7mkswCcD+QNKEcLN9XmWhlzJfwzjW3N -JgMAniNROBBXr37dCkmawTcagKSwhiUx -=2aUQ ------END PGP PUBLIC KEY BLOCK----- From 031349c9fd4e0d4e1d145151671128d7fc7e2f0c Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 17 Jul 2023 13:16:47 +0200 Subject: [PATCH 22/84] 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed --- hplip-fix-parsing-lpstat.patch | 13 +++++++++++++ hplip.spec | 11 ++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 hplip-fix-parsing-lpstat.patch diff --git a/hplip-fix-parsing-lpstat.patch b/hplip-fix-parsing-lpstat.patch new file mode 100644 index 0000000..d6028ab --- /dev/null +++ b/hplip-fix-parsing-lpstat.patch @@ -0,0 +1,13 @@ +diff --git a/base/queues.py b/base/queues.py +index 2f56c8a..0818574 100755 +--- a/base/queues.py ++++ b/base/queues.py +@@ -101,7 +101,7 @@ def parseQueues(mode): + try: + match = LPSTAT_PATTERN.search(p) + printer_name = match.group(1) +- device_uri = match.group(2) ++ device_uri = match.group(3) + cups_printers.append((printer_name, device_uri)) + except AttributeError: + pass diff --git a/hplip.spec b/hplip.spec index c6eaa68..8e888d4 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.5 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -221,6 +221,9 @@ Patch65: hplip-sclpml-strcasestr.patch # - this looks as incompatible conditional for Fedora, so the files are removed, # hplip repacked and this patch removes its mentions in Makefile.am Patch66: hplip-nocdmfilter.patch +# 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed +# https://bugs.launchpad.net/hplip/+bug/2027972 +Patch67: hplip-fix-parsing-lpstat.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -558,6 +561,9 @@ done # C99 compatibility patch by fweimer - undefined strcasestr() in sclpml.c - build with _GNU_SOURCE %patch -P 65 -p1 -b .sclpml-strcasestr %patch -P 66 -p1 -b .nocdmfilter +# 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed +# https://bugs.launchpad.net/hplip/+bug/2027972 +%patch -P 67 -p1 -b .lpstat-parse # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -929,6 +935,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Mon Jul 17 2023 Zdenek Dohnal - 3.23.5-3 +- 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed + * Tue Jun 13 2023 Python Maint - 3.23.5-2 - Rebuilt for Python 3.12 From f616afe82785865c8924c452d1ed1d2d9a70d025 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 17 Jul 2023 13:19:28 +0200 Subject: [PATCH 23/84] pstotiff: don't use SAFER with WRITESYSTEMDICT per upstream warning --- hplip-pstotiff-is-rubbish.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hplip-pstotiff-is-rubbish.patch b/hplip-pstotiff-is-rubbish.patch index 014e2cf..901e6a2 100644 --- a/hplip-pstotiff-is-rubbish.patch +++ b/hplip-pstotiff-is-rubbish.patch @@ -57,8 +57,8 @@ diff -up hplip-3.15.2/fax/filters/pstotiff.pstotiff-is-rubbish hplip-3.15.2/fax/ +TMPFILE=`mktemp /tmp/pstotiff.XXXXXX` || exit 1 +gs -I/usr/share/cups/fonts -sDEVICE=tiffg4 -dMaxStripSize=0 -r204x196 \ + -dNOPAUSE -dBATCH -dSAFER -dPARANOIDSAFER \ -+ -dSHORTERRORS -dWRITESYSTEMDICT -dGHOSTSCRIPT \ -+ -sstdout=%stderr -sOutputFile="$TMPFILE" "$IN" ++ -dSHORTERRORS -dGHOSTSCRIPT -sstdout=%stderr \ ++ -sOutputFile="$TMPFILE" "$IN" +RET=$? +cat "$TMPFILE" +rm -f "$TMPFILE" From 042601273672d5760266cfba844ae369d5590170 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 17 Jul 2023 18:28:12 +0200 Subject: [PATCH 24/84] switch to curl when downloading plugin --- hp-plugin.in | 2 +- hplip.spec | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/hp-plugin.in b/hp-plugin.in index c3e7bd3..b55f8ac 100644 --- a/hp-plugin.in +++ b/hp-plugin.in @@ -22,7 +22,7 @@ then @bindir@/mkdir ~/.hplip || @bindir@/echo "Cannot create the ~/.hplip dir, exiting" && exit 1 fi -@bindir@/wget -O ~/.hplip/${PLUGIN_FILE} ${PLUGIN_SOURCE} +@bindir@/curl --create-dir -O --output-dir ~/.hplip ${PLUGIN_SOURCE} if [ ! -f ~/.hplip/${PLUGIN_FILE} ] then diff --git a/hplip.spec b/hplip.spec index 8e888d4..320255c 100644 --- a/hplip.spec +++ b/hplip.spec @@ -224,6 +224,11 @@ Patch66: hplip-nocdmfilter.patch # 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed # https://bugs.launchpad.net/hplip/+bug/2027972 Patch67: hplip-fix-parsing-lpstat.patch +# switch to curl by downstream patch from wget to workaround openstack dropping IPv6 +# which causes great delays... +# Remove this once internal openstack handles IPv6 better - test by pinging IPv6 in OpenStack, +# it should not hang. +Patch68: hplip-plugin-curl.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -282,6 +287,9 @@ Recommends: avahi-tools Recommends: libsane-hpaio%{?_isa} = %{version}-%{release} Requires: cups +# switch to curl by downstream patch from wget to workaround openstack dropping IPv6 +# which causes great delays... +Requires: curl-minimal # for bash script acting as hp-plugin (Source7) Requires: gawk # set require directly to /usr/bin/gpg, because gnupg2 and gnupg ships it, @@ -298,7 +306,6 @@ Requires: systemd Requires: tar # require usbutils, hp-diagnose_queues needs lsusb Requires: usbutils -Requires: wget # require coreutils, because timeout binary is needed in post scriptlet, # because hpcups-update-ppds script can freeze in certain situation and @@ -564,6 +571,9 @@ done # 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed # https://bugs.launchpad.net/hplip/+bug/2027972 %patch -P 67 -p1 -b .lpstat-parse +# switch to curl by downstream patch from wget to workaround openstack dropping IPv6 +# which causes great delays... +%patch -P 68 -p1 -b .curl-switch # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -937,6 +947,7 @@ find doc/images -type f -exec chmod 644 {} \; %changelog * Mon Jul 17 2023 Zdenek Dohnal - 3.23.5-3 - 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed +- switch to curl when downloading plugin * Tue Jun 13 2023 Python Maint - 3.23.5-2 - Rebuilt for Python 3.12 From eb5e88152538a36e74ea8d7085a54baf48e06103 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 17 Jul 2023 18:43:31 +0200 Subject: [PATCH 25/84] 2221311 - [python3.12] hplip tools/binaries crash due depending on removed configparser.readfp() --- hplip-no-readfp.patch | 26 ++++++++++++++++++++++++++ hplip.spec | 7 +++++++ 2 files changed, 33 insertions(+) create mode 100644 hplip-no-readfp.patch diff --git a/hplip-no-readfp.patch b/hplip-no-readfp.patch new file mode 100644 index 0000000..35108e3 --- /dev/null +++ b/hplip-no-readfp.patch @@ -0,0 +1,26 @@ +diff --git a/base/g.py b/base/g.py +index 0aa0e2e..96b3131 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.readfp(fp) ++ self.conf.read_file(fp, self.filename) + except configparser.MissingSectionHeaderError: + print("") + log.error("Found No Section in %s. Please set the http proxy for root and try again." % self.filename) +diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py +index 3110a0f..3761f89 100644 +--- a/ui5/devmgr5.py ++++ b/ui5/devmgr5.py +@@ -1072,7 +1072,7 @@ class DevMgr5(Ui_MainWindow_Derived, Ui_MainWindow, QMainWindow): + + hplip_conf = configparser.ConfigParser() + fp = open("/etc/hp/hplip.conf", "r") +- hplip_conf.readfp(fp) ++ hplip_conf.read_file(fp, "/etc/hp/hplip.conf") + fp.close() + + try: diff --git a/hplip.spec b/hplip.spec index 320255c..38a5eb4 100644 --- a/hplip.spec +++ b/hplip.spec @@ -229,6 +229,9 @@ Patch67: hplip-fix-parsing-lpstat.patch # Remove this once internal openstack handles IPv6 better - test by pinging IPv6 in OpenStack, # it should not hang. Patch68: hplip-plugin-curl.patch +# 2221311 - [python3.12] hplip tools/binaries crash due depending on removed configparser.readfp() +# Upstream https://bugs.launchpad.net/hplip/+bug/2028001 +Patch69: hplip-no-readfp.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -574,6 +577,9 @@ done # switch to curl by downstream patch from wget to workaround openstack dropping IPv6 # which causes great delays... %patch -P 68 -p1 -b .curl-switch +# 2221311 - [python3.12] hplip tools/binaries crash due depending on removed configparser.readfp() +# Upstream https://bugs.launchpad.net/hplip/+bug/2028001 +%patch -P 69 -p1 -b .no-readfp # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -948,6 +954,7 @@ find doc/images -type f -exec chmod 644 {} \; * Mon Jul 17 2023 Zdenek Dohnal - 3.23.5-3 - 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed - switch to curl when downloading plugin +- 2221311 - [python3.12] hplip tools/binaries crash due depending on removed configparser.readfp() * Tue Jun 13 2023 Python Maint - 3.23.5-2 - Rebuilt for Python 3.12 From 83a6c95d49dff9dbe32db4a7c6e02c1a6a508f88 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 18 Jul 2023 10:26:16 +0200 Subject: [PATCH 26/84] hplip.spec: recommend python3-gobject in hplip --- hplip.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hplip.spec b/hplip.spec index 38a5eb4..1080e8c 100644 --- a/hplip.spec +++ b/hplip.spec @@ -288,6 +288,10 @@ BuildRequires: systemd Recommends: avahi-tools # 1733449 - Scanner on an HP AIO printer is not detected unless libsane-hpaio is installed Recommends: libsane-hpaio%{?_isa} = %{version}-%{release} +# downloaded plugin requires python3-gobject to work even via CLI... +# but make it weak dependency, so users which don't need the plugin and have servers +# can remove the python3-gobject which is used by desktop apps +Recommends: python3-gobject Requires: cups # switch to curl by downstream patch from wget to workaround openstack dropping IPv6 From 9a35bb2322b3632f6714472b6bac90fa5e0599c8 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 18 Jul 2023 16:54:50 +0200 Subject: [PATCH 27/84] Add missing curl patch --- hplip-plugin-curl.patch | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 hplip-plugin-curl.patch diff --git a/hplip-plugin-curl.patch b/hplip-plugin-curl.patch new file mode 100644 index 0000000..f9ef742 --- /dev/null +++ b/hplip-plugin-curl.patch @@ -0,0 +1,56 @@ +diff --git a/installer/pluginhandler.py b/installer/pluginhandler.py +index 56683fb..031ceec 100755 +--- a/installer/pluginhandler.py ++++ b/installer/pluginhandler.py +@@ -185,14 +185,14 @@ class PluginHandle(object): + if self.__plugin_conf_file.startswith('file://'): + status, filename = utils.download_from_network(self.__plugin_conf_file, local_conf, True) + else: +- wget = utils.which("wget", True) +- if wget: +- status, output = utils.run("%s --tries=3 --timeout=60 --output-document=%s %s --cache=off" %(wget, local_conf, self.__plugin_conf_file)) ++ curl = utils.which("curl", True) ++ if curl: ++ status, output = utils.run("%s --retry 3 --max-time=10 --output %s %s" %(curl, local_conf, self.__plugin_conf_file)) + if status: + log.error("Plugin download failed with error code = %d" %status) + return status, url, check_sum + else: +- log.error("Please install wget package to download the plugin.") ++ log.error("Please install curl package to download the plugin.") + return status, url, check_sum + except IOError as e: + log.error("I/O Error: %s" % e.strerror) +@@ -284,18 +284,18 @@ class PluginHandle(object): + if src.startswith('file://'): + status, filename = utils.download_from_network(src, plugin_file, True) + else: +- wget = utils.which("wget", True) +- if wget: +- cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,src) ++ curl = utils.which("curl", True) ++ if curl: ++ cmd = "%s --create-dirs -O --output-dir %s %s" % (curl,self.__plugin_path,src) + log.debug(cmd) + status, output = utils.run(cmd) +- log.debug("wget returned: %d" % status) ++ log.debug("curl returned: %d" % status) + + #Check whether plugin is accessible in Openprinting.org website otherwise dowload plugin from alternate location. + if status != 0 or os_utils.getFileSize(plugin_file) <= 0: + src = os.path.join(PLUGIN_FALLBACK_LOCATION, self.__plugin_name) + log.info("Plugin is not accessible. Trying to download it from fallback location: [%s]" % src) +- cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,src) ++ cmd = "%s --create-dirs -O --output-dir %s %s" % (curl,self.__plugin_path,src) + log.debug(cmd) + status, output = utils.run(cmd) + +@@ -323,7 +323,7 @@ class PluginHandle(object): + if digsig_url.startswith('file://'): + status, filename = utils.download_from_network(digsig_url, digsig_file, True) + else: +- cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,digsig_url) ++ cmd = "%s --create-dirs -O --output-dir %s %s" % (curl, self.__plugin_path,digsig_url) + log.debug(cmd) + status, output = utils.run(cmd) + except IOError as e: From 65ca3e41cfaca8d0776ce82ea0bc300d41777049 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Tue, 18 Jul 2023 11:42:36 -0700 Subject: [PATCH 28/84] Require curl, not curl-minimal Requiring curl-minimal is not safe. The full curl package does not provide curl-minimal, and the two conflict. So if you have full curl installed, you cannot update, because installing curl-minimal to satisfy hplip's requirement would require the removal of full curl. curl-minimal provides curl, so for a quick fix, just changing this to "Requires: curl", which is satisfied by either. As a refinement we might be able to add something like "Suggests: curl-minimal" to 'cue' the use of curl-minimal rather than curl if neither is currently installed, but I just wanted to make the minimum change necessary to stop breaking openQA tests for now. --- hplip.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hplip.spec b/hplip.spec index 1080e8c..ceb95df 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.5 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -296,7 +296,7 @@ Recommends: python3-gobject Requires: cups # switch to curl by downstream patch from wget to workaround openstack dropping IPv6 # which causes great delays... -Requires: curl-minimal +Requires: curl # for bash script acting as hp-plugin (Source7) Requires: gawk # set require directly to /usr/bin/gpg, because gnupg2 and gnupg ships it, @@ -955,6 +955,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Tue Jul 18 2023 Adam Williamson - 3.23.5-4 +- Require curl, not curl-minimal, due to conflicts + * Mon Jul 17 2023 Zdenek Dohnal - 3.23.5-3 - 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed - switch to curl when downloading plugin From a3f2418e3ad7c0303d1113f7d1ae0867b1e97de7 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 20 Jul 2023 06:25:09 +0000 Subject: [PATCH 29/84] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index ceb95df..837e894 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.5 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -955,6 +955,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Jul 20 2023 Fedora Release Engineering - 3.23.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Tue Jul 18 2023 Adam Williamson - 3.23.5-4 - Require curl, not curl-minimal, due to conflicts From ec4e2f53cc04d2be5cc10f2c04e80a01516f5161 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 21 Jul 2023 10:47:20 +0200 Subject: [PATCH 30/84] Enable Fedora CI and gating --- .fmf/version | 1 + ci.fmf | 1 + gating.yaml | 27 +++++++++++++++++++++++++++ plans/public.fmf | 6 ++++++ plans/tier1-internal.fmf | 12 ++++++++++++ 5 files changed, 47 insertions(+) create mode 100644 .fmf/version create mode 100644 ci.fmf create mode 100644 gating.yaml create mode 100644 plans/public.fmf create mode 100644 plans/tier1-internal.fmf diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/ci.fmf b/ci.fmf new file mode 100644 index 0000000..c5aa0e0 --- /dev/null +++ b/ci.fmf @@ -0,0 +1 @@ +resultsdb-testcase: separate diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..de5c323 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,27 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_testing +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/public.functional} + +#Rawhide +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/public.functional} + +#gating rhel +--- !Policy +product_versions: + - rhel-* +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tedude.validation} + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional} + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/public.functional} diff --git a/plans/public.fmf b/plans/public.fmf new file mode 100644 index 0000000..8dee615 --- /dev/null +++ b/plans/public.fmf @@ -0,0 +1,6 @@ +summary: Test plan that runs all tests from hplip tests repo. +discover: + how: fmf + url: https://src.fedoraproject.org/tests/hplip.git +execute: + how: tmt diff --git a/plans/tier1-internal.fmf b/plans/tier1-internal.fmf new file mode 100644 index 0000000..ed3dbc3 --- /dev/null +++ b/plans/tier1-internal.fmf @@ -0,0 +1,12 @@ +summary: CI plan, picks internal Tier1 tests, runs in beakerlib. +discover: + - name: rhel + how: fmf + filter: 'tier: 1' + url: git://pkgs.devel.redhat.com/tests/hplip +execute: + how: tmt +adjust: + enabled: false + when: distro == centos-stream, fedora + because: They don't have access to internal repos. From c775adaac1e34094fe7141231b6ad0602f45cbda Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 21 Jul 2023 11:17:20 +0200 Subject: [PATCH 31/84] Fix conditional --- plans/tier1-internal.fmf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plans/tier1-internal.fmf b/plans/tier1-internal.fmf index ed3dbc3..1a164be 100644 --- a/plans/tier1-internal.fmf +++ b/plans/tier1-internal.fmf @@ -8,5 +8,5 @@ execute: how: tmt adjust: enabled: false - when: distro == centos-stream, fedora + when: distro == centos-stream or distro == fedora because: They don't have access to internal repos. From aef1ccce5b2a6a37415cfc2101a31c6242d5adf9 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 21 Jul 2023 11:34:46 +0200 Subject: [PATCH 32/84] Fix tier1-internal --- plans/tier1-internal.fmf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plans/tier1-internal.fmf b/plans/tier1-internal.fmf index 1a164be..4f7e4b3 100644 --- a/plans/tier1-internal.fmf +++ b/plans/tier1-internal.fmf @@ -1,12 +1,12 @@ summary: CI plan, picks internal Tier1 tests, runs in beakerlib. discover: - name: rhel - how: fmf - filter: 'tier: 1' - url: git://pkgs.devel.redhat.com/tests/hplip + how: fmf + filter: 'tier: 1' + url: git://pkgs.devel.redhat.com/tests/hplip execute: - how: tmt + how: tmt adjust: - enabled: false - when: distro == centos-stream or distro == fedora - because: They don't have access to internal repos. + enabled: false + when: distro == centos-stream or distro == fedora + because: They don't have access to internal repos. From f22496015e70d6f663ee40f62504b888c81dcf94 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 20 Jul 2023 16:15:39 +0200 Subject: [PATCH 33/84] Use raw strings to eliminate syntax warnings --- hplip-use-raw-strings.patch | 290 ++++++++++++++++++++++++++++++++++++ 1 file changed, 290 insertions(+) create mode 100644 hplip-use-raw-strings.patch diff --git a/hplip-use-raw-strings.patch b/hplip-use-raw-strings.patch new file mode 100644 index 0000000..f3b5495 --- /dev/null +++ b/hplip-use-raw-strings.patch @@ -0,0 +1,290 @@ +diff --git a/base/device.py b/base/device.py +index fbe6c34..a551403 100644 +--- a/base/device.py ++++ b/base/device.py +@@ -47,7 +47,7 @@ from . import models, mdns, slp, avahi + from .strings import * + from .sixext import PY3, to_bytes_utf8, to_unicode, to_string_latin, to_string_utf8, xStringIO + +-http_result_pat = re.compile("""HTTP/\d.\d\s(\d+)""", re.I) ++http_result_pat = re.compile(r"""HTTP/\d.\d\s(\d+)""", re.I) + + HTTP_OK = 200 + HTTP_ERROR = 500 +diff --git a/base/g.py b/base/g.py +index 96b3131..023aeea 100644 +--- a/base/g.py ++++ b/base/g.py +@@ -302,7 +302,7 @@ prop.hpcups_build = to_bool(sys_conf.get('configure', 'hpcups-install', '0')) + prop.hpijs_build = to_bool(sys_conf.get('configure', 'hpijs-install', '0')) + + # Spinner, ala Gentoo Portage +-spinner = "\|/-\|/-" ++spinner = r"\|/-\|/-" + spinpos = 0 + enable_spinner = True + +@@ -352,7 +352,7 @@ def check_extension_module_env(ext_mod): + log.error('%s not present in the system. Please re-install HPLIP.' %ext_mod) + sys.exit(1) + +- m = re.search('python(\d(\.\d){0,2})', ext_path) #get the python version where the .so file is found ++ m = re.search(r'python(\d(\.\d){0,2})', ext_path) #get the python version where the .so file is found + ext_ver = xint(m.group(1)) + + if ext_ver[0] == 3: +diff --git a/base/logger.py b/base/logger.py +index dd92a9c..68e4f13 100644 +--- a/base/logger.py ++++ b/base/logger.py +@@ -437,10 +437,10 @@ class Logger(object): + start = start + " " + number_chars = number_chars + 1 + try: +- elem_start = re.findall("(\<\W{0,1}\w+) ?", line)[0] +- elem_finished = re.findall("([?|\]\]]*\>)", line)[0] ++ elem_start = re.findall(r"(\<\W{0,1}\w+) ?", line)[0] ++ elem_finished = re.findall(r"([?|\]\]]*\>)", line)[0] + #should not have * +- attrs = re.findall("(\S*?\=\".*?\")", line) ++ attrs = re.findall(r"(\S*?\=\".*?\")", line) + #output.write(start + elem_start) + self.log(start+elem_start, level, False) + number_chars = len(start + elem_start) +diff --git a/base/models.py b/base/models.py +index dc6cc39..48dd2ef 100644 +--- a/base/models.py ++++ b/base/models.py +@@ -35,7 +35,7 @@ except ImportError: + datetime = None + + +-pat_prod_num = re.compile("""(\d+)""", re.I) ++pat_prod_num = re.compile(r"""(\d+)""", re.I) + + TYPE_UNKNOWN = 0 + TYPE_STRING = 1 +@@ -427,25 +427,25 @@ class ModelData: + } + + self.RE_FIELD_TYPES = { +- re.compile('^r(\d+)-agent(\d+)-kind', re.IGNORECASE) : TYPE_INT, +- re.compile('^r(\d+)-agent(\d+)-type', re.IGNORECASE) : TYPE_INT, +- re.compile('^r(\d+)-agent(\d+)-sku', re.IGNORECASE) : TYPE_STR, +- re.compile('^agent(\d+)-desc', re.IGNORECASE) : TYPE_STR, +- re.compile('^agent(\d+)-virgin', re.IGNORECASE) : TYPE_BOOL, +- re.compile('^agent(\d+)-dvc', re.IGNORECASE) : TYPE_INT, +- re.compile('^agent(\d+)-kind', re.IGNORECASE) : TYPE_INT, +- re.compile('^agent(\d+)-type', re.IGNORECASE) : TYPE_INT, +- re.compile('^agent(\d+)-id', re.IGNORECASE) : TYPE_INT, +- re.compile('^agent(\d+)-hp-ink', re.IGNORECASE) : TYPE_BOOL, +- re.compile('^agent(\d+)-health-desc', re.IGNORECASE) : TYPE_STR, +- re.compile('^agent(\d+)-health$', re.IGNORECASE) : TYPE_INT, +- re.compile('^agent(\d+)-known', re.IGNORECASE) : TYPE_BOOL, +- re.compile('^agent(\d+)-level', re.IGNORECASE) : TYPE_INT, +- re.compile('^agent(\d+)-ack', re.IGNORECASE) : TYPE_BOOL, +- re.compile('^agent(\d+)-sku', re.IGNORECASE) : TYPE_STR, +- re.compile('^in-tray(\d+)', re.IGNORECASE) : TYPE_BOOL, +- re.compile('^out-tray(\d+)', re.IGNORECASE) : TYPE_BOOL, +- re.compile('^model(\d+)', re.IGNORECASE) : TYPE_STR, ++ re.compile(r'^r(\d+)-agent(\d+)-kind', re.IGNORECASE) : TYPE_INT, ++ re.compile(r'^r(\d+)-agent(\d+)-type', re.IGNORECASE) : TYPE_INT, ++ re.compile(r'^r(\d+)-agent(\d+)-sku', re.IGNORECASE) : TYPE_STR, ++ re.compile(r'^agent(\d+)-desc', re.IGNORECASE) : TYPE_STR, ++ re.compile(r'^agent(\d+)-virgin', re.IGNORECASE) : TYPE_BOOL, ++ re.compile(r'^agent(\d+)-dvc', re.IGNORECASE) : TYPE_INT, ++ re.compile(r'^agent(\d+)-kind', re.IGNORECASE) : TYPE_INT, ++ re.compile(r'^agent(\d+)-type', re.IGNORECASE) : TYPE_INT, ++ re.compile(r'^agent(\d+)-id', re.IGNORECASE) : TYPE_INT, ++ re.compile(r'^agent(\d+)-hp-ink', re.IGNORECASE) : TYPE_BOOL, ++ re.compile(r'^agent(\d+)-health-desc', re.IGNORECASE) : TYPE_STR, ++ re.compile(r'^agent(\d+)-health$', re.IGNORECASE) : TYPE_INT, ++ re.compile(r'^agent(\d+)-known', re.IGNORECASE) : TYPE_BOOL, ++ re.compile(r'^agent(\d+)-level', re.IGNORECASE) : TYPE_INT, ++ re.compile(r'^agent(\d+)-ack', re.IGNORECASE) : TYPE_BOOL, ++ re.compile(r'^agent(\d+)-sku', re.IGNORECASE) : TYPE_STR, ++ re.compile(r'^in-tray(\d+)', re.IGNORECASE) : TYPE_BOOL, ++ re.compile(r'^out-tray(\d+)', re.IGNORECASE) : TYPE_BOOL, ++ re.compile(r'^model(\d+)', re.IGNORECASE) : TYPE_STR, + } + + self.TYPE_CACHE = {} +diff --git a/base/password.py b/base/password.py +index 259bf82..a4ed107 100644 +--- a/base/password.py ++++ b/base/password.py +@@ -167,8 +167,8 @@ class Password(object): + + elif i == 1: # TIMEOUT + if('true' in cmd and self.__password_prompt_str == ""): # sudo true or su -c "true" +- cb = cb.replace("[", "\[") +- cb = cb.replace("]", "\]") ++ cb = cb.replace("[", r"\[") ++ cb = cb.replace("]", r"\]") + + self.__password_prompt_str = cb + try: +diff --git a/base/status.py b/base/status.py +index 37c774e..01f455d 100644 +--- a/base/status.py ++++ b/base/status.py +@@ -1341,7 +1341,7 @@ def MapPJLErrorCode(error_code, str_code=None): + return status_code + + +-pjl_code_pat = re.compile("""^CODE\s*=\s*(\d.*)$""", re.IGNORECASE) ++pjl_code_pat = re.compile(r"""^CODE\s*=\s*(\d.*)$""", re.IGNORECASE) + + + +diff --git a/base/tui.py b/base/tui.py +index 0f90f92..3b36c65 100644 +--- a/base/tui.py ++++ b/base/tui.py +@@ -217,7 +217,7 @@ class ProgressMeter(object): + self.progress = 0 + self.prompt = prompt + self.prev_length = 0 +- self.spinner = "\|/-\|/-*" ++ self.spinner = r"\|/-\|/-*" + self.spinner_pos = 0 + self.max_size = ttysize()[1] - len(prompt) - 25 + self.update(0) +diff --git a/base/utils.py b/base/utils.py +index 2b631ce..2fb57c4 100644 +--- a/base/utils.py ++++ b/base/utils.py +@@ -148,7 +148,7 @@ def get_cups_systemgroup_list(): + return lis + + try: +- lis = ((re.findall('SystemGroup [\w* ]*',fp.read()))[0].replace('SystemGroup ','')).split(' ') ++ lis = ((re.findall(r'SystemGroup [\w* ]*',fp.read()))[0].replace('SystemGroup ','')).split(' ') + except IndexError: + return lis + +@@ -1597,7 +1597,7 @@ def mixin(cls): + # ------------------------- Usage Help + USAGE_OPTIONS = ("[OPTIONS]", "", "heading", False) + USAGE_LOGGING1 = ("Set the logging level:", "-l or --logging=", 'option', False) +-USAGE_LOGGING2 = ("", ": none, info\*, error, warn, debug (\*default)", "option", False) ++USAGE_LOGGING2 = ("", r": none, info\*, error, warn, debug (\*default)", "option", False) + USAGE_LOGGING3 = ("Run in debug mode:", "-g (same as option: -ldebug)", "option", False) + USAGE_LOGGING_PLAIN = ("Output plain text only:", "-t", "option", False) + USAGE_ARGS = ("[PRINTER|DEVICE-URI]", "", "heading", False) +@@ -1605,13 +1605,13 @@ USAGE_ARGS2 = ("[PRINTER]", "", "heading", False) + USAGE_DEVICE = ("To specify a device-URI:", "-d or --device=", "option", False) + USAGE_PRINTER = ("To specify a CUPS printer:", "-p or --printer=", "option", False) + USAGE_BUS1 = ("Bus to probe (if device not specified):", "-b or --bus=", "option", False) +-USAGE_BUS2 = ("", ": cups\*, usb\*, net, bt, fw, par\* (\*defaults) (Note: bt and fw not supported in this release.)", 'option', False) ++USAGE_BUS2 = ("", r": cups\*, usb\*, net, bt, fw, par\* (\*defaults) (Note: bt and fw not supported in this release.)", 'option', False) + USAGE_HELP = ("This help information:", "-h or --help", "option", True) + USAGE_SPACE = ("", "", "space", False) + USAGE_EXAMPLES = ("Examples:", "", "heading", False) + USAGE_NOTES = ("Notes:", "", "heading", False) + USAGE_STD_NOTES1 = ("If device or printer is not specified, the local device bus is probed and the program enters interactive mode.", "", "note", False) +-USAGE_STD_NOTES2 = ("If -p\* is specified, the default CUPS printer will be used.", "", "note", False) ++USAGE_STD_NOTES2 = (r"If -p\* is specified, the default CUPS printer will be used.", "", "note", False) + USAGE_SEEALSO = ("See Also:", "", "heading", False) + USAGE_LANGUAGE = ("Set the language:", "--loc= or --lang=. Use --loc=? or --lang=? to see a list of available language codes.", "option", False) + USAGE_LANGUAGE2 = ("Set the language:", "--lang=. Use --lang=? to see a list of available language codes.", "option", False) +@@ -1839,7 +1839,7 @@ encoding: utf8 + + elif typ == 'man': + log.info('.TH "%s" 1 "%s" Linux "User Manuals"' % (crumb, version)) +- log.info(".SH NAME\n%s \- %s" % (crumb, title)) ++ log.info(r".SH NAME\n%s \- %s" % (crumb, title)) + + for line in text_list: + text1, text2, format, trailing_space = line +@@ -1938,7 +1938,7 @@ def unescape(text): + except KeyError: + pass + return text # leave as is +- return re.sub("&#?\w+;", fixup, text) ++ return re.sub(r"&#?\w+;", fixup, text) + + + # Adds HTML or XML character references and entities from a text string +@@ -1991,7 +1991,7 @@ def Is_HPLIP_older_version(installed_version, available_version): + log.debug("HPLIP Installed_version=%s Available_version=%s"%(installed_version,available_version)) + cnt = 0 + Is_older = False +- pat=re.compile('''(\d{1,})([a-z]{1,})''') ++ pat=re.compile(r'''(\d{1,})([a-z]{1,})''') + try: + while cnt or --bus=", "option", False), +- ("", ": cups, usb\*, net, bt, fw, par (\*default) (Note: bt and fw not supported in this release.)", "option", False), ++ ("", r": cups, usb\*, net, bt, fw, par (\*default) (Note: bt and fw not supported in this release.)", "option", False), + ("Set Time to Live (TTL):", "-t or --ttl= (Default is 4).", "option", False), + ("Set timeout:", "-o or --timeout=", "option", False), + ("Filter by functionality:", "-e or --filter=", "option", False), +- ("", ": comma separated list of one or more of: scan, pcard, fax, copy, or none\*. (\*none is the default)", "option", False), ++ ("", r": comma separated list of one or more of: scan, pcard, fax, copy, or none\*. (\*none is the default)", "option", False), + ("Search:", "-s or --search=", "option", False), + ("", " must be a valid regular expression (not case sensitive)", "option", False), + ("Network discovery method:", "-m or --method=: is 'slp'* or 'mdns'.", "option", False), +diff --git a/setup.py b/setup.py +index 98f57fd..539be50 100755 +--- a/setup.py ++++ b/setup.py +@@ -79,11 +79,11 @@ USAGE = [ (__doc__, "", "name", True), + utils.USAGE_SPACE, + utils.USAGE_OPTIONS, + ("Automatic mode:", "-a or --auto (-i mode only)", "option", False), +- ("To specify the port on a multi-port JetDirect:", "--port= (Valid values are 1\*, 2, and 3. \*default)", "option", False), ++ (r"To specify the port on a multi-port JetDirect:", "--port= (Valid values are 1\*, 2, and 3. \*default)", "option", False), + ("No testpage in automatic mode:", "-x (-i mode only)", "option", False), + ("To specify a CUPS printer queue name:", "-p or --printer= (-i mode only)", "option", False), + ("To specify a CUPS fax queue name:", "-f or --fax= (-i mode only)", "option", False), +- ("Type of queue(s) to install:", "-t or --type=. : print*, fax\* (\*default) (-i mode only)", "option", False), ++ (r"Type of queue(s) to install:", "-t or --type=. : print*, fax\* (\*default) (-i mode only)", "option", False), + ("To specify the device URI to install:", "-d or --device= (--qt4 mode only)", "option", False), + ("Remove printers or faxes instead of setting-up:", "-r or --rm or --remove", "option", False), + utils.USAGE_LANGUAGE, From a15ae7afb4df7a45b394ead34b5cd56430661204 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 21 Jul 2023 12:57:24 +0200 Subject: [PATCH 34/84] Fix syntax warnings --- hplip.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index 837e894..f869098 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.5 -Release: 5%{?dist} +Release: 6%{?dist} License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC Url: https://developers.hp.com/hp-linux-imaging-and-printing @@ -232,6 +232,8 @@ Patch68: hplip-plugin-curl.patch # 2221311 - [python3.12] hplip tools/binaries crash due depending on removed configparser.readfp() # Upstream https://bugs.launchpad.net/hplip/+bug/2028001 Patch69: hplip-no-readfp.patch +# fix SyntaxWarning from python3.12 +Patch70: hplip-use-raw-strings.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -584,6 +586,7 @@ done # 2221311 - [python3.12] hplip tools/binaries crash due depending on removed configparser.readfp() # Upstream https://bugs.launchpad.net/hplip/+bug/2028001 %patch -P 69 -p1 -b .no-readfp +%patch -P 70 -p1 -b .raw-strings # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -955,6 +958,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Fri Jul 21 2023 Zdenek Dohnal - 3.23.5-6 +- fix syntax warnings + * Thu Jul 20 2023 Fedora Release Engineering - 3.23.5-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From f9aafff426a057311ed92b72fde9af31ffc54168 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 27 Jul 2023 17:12:37 +0200 Subject: [PATCH 35/84] Fix more warnings --- hplip-use-raw-strings.patch | 136 +++++++++++++++++++++++++++++++++++- 1 file changed, 133 insertions(+), 3 deletions(-) diff --git a/hplip-use-raw-strings.patch b/hplip-use-raw-strings.patch index f3b5495..afef121 100644 --- a/hplip-use-raw-strings.patch +++ b/hplip-use-raw-strings.patch @@ -1,3 +1,16 @@ +diff --git a/base/LedmWifi.py b/base/LedmWifi.py +index f63a050..074d5a2 100644 +--- a/base/LedmWifi.py ++++ b/base/LedmWifi.py +@@ -31,7 +31,7 @@ from .g import * + from . import device, utils + from .sixext import to_bytes_utf8 + +-http_result_pat = re.compile("""HTTP/\d.\d\s(\d+)""", re.I) ++http_result_pat = re.compile(r"""HTTP/\d.\d\s(\d+)""", re.I) + HTTP_OK = 200 + HTTP_ACCEPTED = 202 + HTTP_NOCONTENT = 204 diff --git a/base/device.py b/base/device.py index fbe6c34..a551403 100644 --- a/base/device.py @@ -124,6 +137,28 @@ index 259bf82..a4ed107 100644 self.__password_prompt_str = cb try: +diff --git a/base/queues.py b/base/queues.py +index 0818574..8625f53 100755 +--- a/base/queues.py ++++ b/base/queues.py +@@ -46,7 +46,7 @@ HPPS = 3 + HPOTHER = 4 + + DEVICE_URI_PATTERN = re.compile(r"""(.*):/(.*?)/(\S*?)\?(?:serial=(\S*)|device=(\S*)|ip=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[^&]*)|zc=(\S+))(?:&port=(\d))?""", re.I) +-NICKNAME_PATTERN = re.compile(b'''\*NickName:\s*\"(.*)"''', re.MULTILINE) ++NICKNAME_PATTERN = re.compile(r'''\*NickName:\s*\"(.*)"''', re.MULTILINE) + NET_PATTERN = re.compile(r"""(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})""") + NET_ZC_PATTERN = re.compile(r'''zc=(.*)''',re.IGNORECASE) + NET_OTHER_PATTERN = re.compile(r'''(.*)://(.*)''',re.IGNORECASE) +@@ -149,7 +149,7 @@ def parseQueues(mode): + desc='' + else: + try: +- desc = to_string_utf8( NICKNAME_PATTERN.search(fileptr).group(1) ) ++ desc = to_string_utf8( NICKNAME_PATTERN.search(fileptr.decode('utf-8')).group(1) ) + except AttributeError: + desc = '' + diff --git a/base/status.py b/base/status.py index 37c774e..01f455d 100644 --- a/base/status.py @@ -215,6 +250,41 @@ index 2b631ce..2fb57c4 100644 try: while cnt or --port= (Valid values are 1\*, 2, and 3. \*default)", "option", False), ++ ("To specify the port on a multi-port JetDirect:", r"-p or --port= (Valid values are 1\*, 2, and 3. \*default)", "option", False), + ("Show the CUPS URI only (quiet mode):", "-c or --cups", "option", False), + ("Show the SANE URI only (quiet mode):", "-s or --sane", "option", False), + ("Show the HP Fax URI only (quiet mode):", "-f or --fax", "option", False), diff --git a/prnt/cups.py b/prnt/cups.py index 1ea3099..78b8adc 100644 --- a/prnt/cups.py @@ -270,8 +353,33 @@ index 2041fb6..2b43ece 100755 ("Search:", "-s or --search=", "option", False), ("", " must be a valid regular expression (not case sensitive)", "option", False), ("Network discovery method:", "-m or --method=: is 'slp'* or 'mdns'.", "option", False), +diff --git a/scan.py b/scan.py +index 0bfa6f5..27b8c2e 100755 +--- a/scan.py ++++ b/scan.py +@@ -249,9 +249,9 @@ try: + extra_options=[utils.USAGE_SPACE, + ("[OPTIONS] (General)", "", "header", False), + ("Scan destinations:", "-s or --dest=", "option", False), +- ("", "where is a comma separated list containing one or more of: 'file'\*, ", "option", False), ++ ("", r"where is a comma separated list containing one or more of: 'file'\*, ", "option", False), + ("", "'viewer', 'editor', 'pdf', or 'print'. Use only commas between values, no spaces.", "option", False), +- ("Scan mode:", "-m or --mode=. Where is 'gray'\*, 'color' or 'lineart'.", "option", False), ++ ("Scan mode:", r"-m or --mode=. Where is 'gray'\*, 'color' or 'lineart'.", "option", False), + ("Scanning resolution:", "-r or --res= or --resolution=", "option", False), + ("", "where 300 is default.", "option", False), + ("Image resize:", "--resize= (min=1%, max=400%, default=100%)", "option", False), +@@ -268,7 +268,7 @@ try: + utils.USAGE_SPACE, + ("[OPTIONS] (Scan area)", "", "header", False), + ("Specify the units for area/box measurements:", "-t or --units=", "option", False), +- ("", "where is 'mm'\*, 'cm', 'in', 'px', or 'pt' ('mm' is default).", "option", False), ++ ("", r"where is 'mm'\*, 'cm', 'in', 'px', or 'pt' ('mm' is default).", "option", False), + ("Scan area:", "-a,,, or --area=,,,", "option", False), + ("", "Coordinates are relative to the upper left corner of the scan area.", "option", False), + ("", "Units for tlx, tly, brx, and bry are specified by -t/--units (default is 'mm').", "option", False), diff --git a/setup.py b/setup.py -index 98f57fd..539be50 100755 +index 98f57fd..1a74d6d 100755 --- a/setup.py +++ b/setup.py @@ -79,11 +79,11 @@ USAGE = [ (__doc__, "", "name", True), @@ -279,12 +387,34 @@ index 98f57fd..539be50 100755 utils.USAGE_OPTIONS, ("Automatic mode:", "-a or --auto (-i mode only)", "option", False), - ("To specify the port on a multi-port JetDirect:", "--port= (Valid values are 1\*, 2, and 3. \*default)", "option", False), -+ (r"To specify the port on a multi-port JetDirect:", "--port= (Valid values are 1\*, 2, and 3. \*default)", "option", False), ++ ("To specify the port on a multi-port JetDirect:", r"--port= (Valid values are 1\*, 2, and 3. \*default)", "option", False), ("No testpage in automatic mode:", "-x (-i mode only)", "option", False), ("To specify a CUPS printer queue name:", "-p or --printer= (-i mode only)", "option", False), ("To specify a CUPS fax queue name:", "-f or --fax= (-i mode only)", "option", False), - ("Type of queue(s) to install:", "-t or --type=. : print*, fax\* (\*default) (-i mode only)", "option", False), -+ (r"Type of queue(s) to install:", "-t or --type=. : print*, fax\* (\*default) (-i mode only)", "option", False), ++ ("Type of queue(s) to install:", r"-t or --type=. : print*, fax\* (\*default) (-i mode only)", "option", False), ("To specify the device URI to install:", "-d or --device= (--qt4 mode only)", "option", False), ("Remove printers or faxes instead of setting-up:", "-r or --rm or --remove", "option", False), utils.USAGE_LANGUAGE, +diff --git a/ui5/devmgr_ext.py b/ui5/devmgr_ext.py +index 34b4977..6b7a61e 100644 +--- a/ui5/devmgr_ext.py ++++ b/ui5/devmgr_ext.py +@@ -12,7 +12,7 @@ class Ui_MainWindow_Derived(object): + + self.latest_available_version = latest_available_version + self.Is_autoInstaller_distro = Is_autoInstaller_distro +- if self.latest_available_version is not "": ++ if self.latest_available_version != "": + self.tab_3 = QWidget() + self.tab_3.setObjectName("tab_3") + self.label = QLabel(self.tab_3) +@@ -34,7 +34,7 @@ class Ui_MainWindow_Derived(object): + + def retranslateUi(self, MainWindow): + super(Ui_MainWindow_Derived, self).retranslateUi(MainWindow) +- if self.latest_available_version is not "": ++ if self.latest_available_version != "": + self.label.setText(QApplication.translate("MainWindow", "New version of HPLIP-%s is available"%self.latest_available_version, None)) + self.Tabs.setTabText(self.Tabs.indexOf(self.tab_3), QApplication.translate("MainWindow", "Upgrade", None)) + if self.Is_autoInstaller_distro: From 76d7fdfefcfc4cf80ebe3bc80f1d41c604e27dbe Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 27 Jul 2023 19:25:15 +0200 Subject: [PATCH 36/84] remove redundant files --- hplip-remove-hbpl.patch | 33 +++++++++++++++++++++++++++++++++ hplip-repack.sh | 2 ++ hplip.spec | 9 +++++++-- sources | 2 +- 4 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 hplip-remove-hbpl.patch diff --git a/hplip-remove-hbpl.patch b/hplip-remove-hbpl.patch new file mode 100644 index 0000000..fe233e8 --- /dev/null +++ b/hplip-remove-hbpl.patch @@ -0,0 +1,33 @@ +diff --git a/Makefile.am b/Makefile.am +index a3be3f1..0c74a12 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -583,10 +583,8 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp + prnt/hpcups/dj3600ColorMaps.cpp prnt/hpcups/dj3320PrintModes.h \ + prnt/hpcups/dj4100PrintModes.h \ + prnt/hpcups/Hbpl1.cpp prnt/hpcups/Hbpl1.h prnt/hpcups/Hbpl1_Wrapper.h prnt/hpcups/PCLmGenerator.h \ +- prnt/hpcups/flate_colorspace.h prnt/hpcups/RunLenEncoding.h prnt/hpcups/common_defines.h \ +- prnt/hpcups/genPCLm.h \ +- common/utils.c common/utils.h prnt/hpcups/Hbpl1_Wrapper.cpp prnt/hpcups/genPCLm.cpp \ +- prnt/hpcups/genJPEGStrips.cpp prnt/hpcups/RunLenEncoding.cpp \ ++ prnt/hpcups/flate_colorspace.h \ ++ common/utils.c common/utils.h \ + prnt/hpcups/ImageProcessor.h + + hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS) +diff --git a/prnt/hpcups/Hbpl1.cpp b/prnt/hpcups/Hbpl1.cpp +index 74a67f0..4cac4ab 100644 +--- a/prnt/hpcups/Hbpl1.cpp ++++ b/prnt/hpcups/Hbpl1.cpp +@@ -72,11 +72,6 @@ Hbpl1::Hbpl1 () : Encapsulator () + if ((m_pHbpl1Wrapper = fptr_create(this)) == NULL) + m_init = false; + }*/ +- m_pHbpl1Wrapper = new Hbpl1Wrapper(this); +- if(m_pHbpl1Wrapper == NULL) +- m_init = false; +- else +- m_init = true; + } + + Hbpl1::~Hbpl1() diff --git a/hplip-repack.sh b/hplip-repack.sh index 034187c..1e3ba10 100755 --- a/hplip-repack.sh +++ b/hplip-repack.sh @@ -15,6 +15,8 @@ tar -xaf hplip-$VERSION.tar.gz || exit 1 # remove unwanted files rm hplip-$VERSION/prnt/hpcups/ErnieFilter.{cpp,h} hplip-$VERSION/prnt/hpijs/ernieplatform.h || exit 1 rm hplip-$VERSION/fax/filters/cdmfax/hpcupscdmfax.{cpp,h} hplip-$VERSION/fax/filters/cdmfax/jetlib.{cpp,h} hplip-$VERSION/fax/ppd/HP-Fax-CDM-hpcups.ppd.gz || exit 1 +rm hplip-$VERSION/prnt/hpcups/Hbpl1_Wrapper.cpp hplip-$VERSION/prnt/hpcups/genPCLm.{cpp,h} hplip-$VERSION/prnt/hpcups/common_defines.h hplip-$VERSION/prnt/hpcups/genJPEGStrips.cpp hplip-$VERSION/prnt/hpcups/RunLenEncoding.{h,cpp} +rm hplip-$VERSION/locatedriver # compress into a new tarball tar -cjvf hplip-$VERSION-repack.tar.gz hplip-$VERSION || exit 1 diff --git a/hplip.spec b/hplip.spec index f869098..004fe81 100644 --- a/hplip.spec +++ b/hplip.spec @@ -234,6 +234,8 @@ Patch68: hplip-plugin-curl.patch Patch69: hplip-no-readfp.patch # fix SyntaxWarning from python3.12 Patch70: hplip-use-raw-strings.patch +# more unfriendly licenses... +Patch71: hplip-remove-hbpl.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -587,6 +589,7 @@ done # Upstream https://bugs.launchpad.net/hplip/+bug/2028001 %patch -P 69 -p1 -b .no-readfp %patch -P 70 -p1 -b .raw-strings +%patch -P 71 -p1 -b .hbpl # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -606,13 +609,12 @@ sed -i.env-python -e 's,^#!/usr/bin/env python,#!%{__python3},' \ prnt/filters/hpps \ fax/filters/pstotiff -rm locatedriver - cp -p %{SOURCE4} %{SOURCE5} ppd/hpcups # 2129849 - move hp-plugin script into srcdir cp -p %{SOURCE7} . + %build # Work-around Makefile.am imperfections. sed -i 's|^AM_INIT_AUTOMAKE|AM_INIT_AUTOMAKE([foreign])|g' configure.in @@ -958,6 +960,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Jul 27 2023 Zdenek Dohnal - 3.23.5-6 +- remove redundant files + * Fri Jul 21 2023 Zdenek Dohnal - 3.23.5-6 - fix syntax warnings diff --git a/sources b/sources index 826d71c..9375c30 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hplip-3.23.5-repack.tar.gz) = 7616a088b6f2f5efbd5ec426b3de80099b56f435adb38c0acd1f60e7cd00e788f94a2e35136011a7d73dd48a891a3b713263132653c9a2acf0ba98d57a790b4c +SHA512 (hplip-3.23.5-repack.tar.gz) = 7b16f86f18f77061396c4b70df47ebb2109a07a018fbadac550d873ee3d68edb9c1530fde3fec07ba5702f896243b81a6b9b23c4602953716ffbab7b025bbf86 From e174e9103e9fe55d9b71ae040f95ec8dbde58281 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 28 Jul 2023 09:30:06 +0200 Subject: [PATCH 37/84] Update hplip-covscan.patch, because genPCLm.cpp was removed --- hplip-covscan.patch | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/hplip-covscan.patch b/hplip-covscan.patch index adc456d..6c88581 100644 --- a/hplip-covscan.patch +++ b/hplip-covscan.patch @@ -139,43 +139,6 @@ diff -up hplip-3.23.3/pcard/fat.c.covscan hplip-3.23.3/pcard/fat.c cwd.StartSector = ConvertClusterToSector(fa.StartCluster); cwd.CurrSector = cwd.StartSector; cwd.StartCluster = fa.StartCluster; -diff -up hplip-3.23.3/prnt/hpcups/genPCLm.cpp.covscan hplip-3.23.3/prnt/hpcups/genPCLm.cpp ---- hplip-3.23.3/prnt/hpcups/genPCLm.cpp.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/prnt/hpcups/genPCLm.cpp 2023-05-29 13:58:10.971395203 +0200 -@@ -1237,11 +1237,16 @@ void PCLmGenerator::writeJobTicket() - char orientation[256]; - char duplex[256]; - char colorthemes[256]; -- strncpy(colorthemes,getColorThemesString(m_pPCLmSSettings->colorTheme),256); -- strncpy(inputBin,getInputBinString(m_pPCLmSSettings->userInputBin),256); -- strncpy(outputBin,getOutputBin(m_pPCLmSSettings->userOutputBin),256); -- strncpy(orientation,getOrientationString(m_pPCLmSSettings->userOrientation),256); -- strncpy(duplex,getDuplexString(currDuplexDisposition),256); -+ strncpy(colorthemes,getColorThemesString(m_pPCLmSSettings->colorTheme), sizeof(colorthemes)); -+ colorthemes[sizeof(colorthemes)-1] = '\0'; -+ strncpy(inputBin,getInputBinString(m_pPCLmSSettings->userInputBin), sizeof(inputBin)); -+ inputBin[sizeof(inputBin)-1] = '\0'; -+ strncpy(outputBin,getOutputBin(m_pPCLmSSettings->userOutputBin), sizeof(outputBin)); -+ outputBin[sizeof(outputBin)-1] = '\0'; -+ strncpy(orientation,getOrientationString(m_pPCLmSSettings->userOrientation), sizeof(orientation)); -+ orientation[sizeof(orientation)-1] = '\0'; -+ strncpy(duplex,getDuplexString(currDuplexDisposition), sizeof(duplex)); -+ duplex[sizeof(duplex)-1] = '\0'; - - snprintf(pOutStr,OUT_STR_SIZE,"%% genPCLm (Ver: %f)\n",PCLM_Ver); writeStr2OutBuff(pOutStr); - snprintf(pOutStr,OUT_STR_SIZE,"%%============= Job Ticket =============\n"); writeStr2OutBuff(pOutStr); -@@ -1635,7 +1640,10 @@ int PCLmGenerator::StartPage(PCLmPageSe - } - - if(strlen(PCLmPageContent->mediaSizeName)) -- strncpy(currMediaName,PCLmPageContent->mediaSizeName,256); -+ { -+ strncpy(currMediaName,PCLmPageContent->mediaSizeName, sizeof(currMediaName)); -+ currMediaName[sizeof(currMediaName)-1] = '\0'; -+ } - - currStripHeight=PCLmPageContent->stripHeight; - if(!currStripHeight) diff -up hplip-3.23.3/prnt/hpijs/context2.cpp.covscan hplip-3.23.3/prnt/hpijs/context2.cpp --- hplip-3.23.3/prnt/hpijs/context2.cpp.covscan 2023-03-28 09:26:11.000000000 +0200 +++ hplip-3.23.3/prnt/hpijs/context2.cpp 2023-05-29 13:58:10.971395203 +0200 From ac09a5bddcdfb1bcacd2f47566d860faa06e5ca6 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 28 Jul 2023 14:12:45 +0200 Subject: [PATCH 38/84] SPDX migration --- hplip.spec | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/hplip.spec b/hplip.spec index 004fe81..c9928d5 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,8 +7,17 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.5 -Release: 6%{?dist} -License: GPLv2+ and MIT and BSD and IJG and GPLv2+ with exceptions and ISC +Release: 7%{?dist} +# most files (base/*, *, ui*/...) - GPL2+ +# prnt/hpijs/ jpeg related files - IJG +# prnt/* - BSD-3-Clause - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 - proposed as BSD-3-Clause-HP +# base/exif.py - BSD-2-Clause-GeneCash/FreeBSD - reported as https://gitlab.com/fedora/legal/fedora-license-data/-/issues/268 +# base/ldif.py - unknown python license from python-ldap - reported https://gitlab.com/fedora/legal/fedora-license-data/-/issues/269 +# io/*, scan/* - MIT +# protocol/discovery/* - LGPL-2.1-or-later +# protocol/* - GPL2only +# scan/sane/sane.h - Public Domain +License: GPL-2.0-or-later AND MIT AND BSD-3-Clause-HP AND IJG AND GPL-2.0-only AND LGPL-2.1-or-later AND BSD-2-Clause-FreeBSD AND LicenseRef-Fedora-Public-Domain Url: https://developers.hp.com/hp-linux-imaging-and-printing # Original source tarball @@ -960,6 +969,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Fri Jul 28 2023 Zdenek Dohnal - 3.23.5-7 +- SPDX migration + * Thu Jul 27 2023 Zdenek Dohnal - 3.23.5-6 - remove redundant files From 4fa25e28888896651b9ed0f1da239176bd085506 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 28 Jul 2023 14:14:20 +0200 Subject: [PATCH 39/84] Add license upstream tracker --- hplip-repack.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hplip-repack.sh b/hplip-repack.sh index 1e3ba10..bd8b624 100755 --- a/hplip-repack.sh +++ b/hplip-repack.sh @@ -12,7 +12,7 @@ fi # extract the original tarball tar -xaf hplip-$VERSION.tar.gz || exit 1 -# remove unwanted files +# remove unwanted files - license-related ones reported here https://bugs.launchpad.net/hplip/+bug/2028938 rm hplip-$VERSION/prnt/hpcups/ErnieFilter.{cpp,h} hplip-$VERSION/prnt/hpijs/ernieplatform.h || exit 1 rm hplip-$VERSION/fax/filters/cdmfax/hpcupscdmfax.{cpp,h} hplip-$VERSION/fax/filters/cdmfax/jetlib.{cpp,h} hplip-$VERSION/fax/ppd/HP-Fax-CDM-hpcups.ppd.gz || exit 1 rm hplip-$VERSION/prnt/hpcups/Hbpl1_Wrapper.cpp hplip-$VERSION/prnt/hpcups/genPCLm.{cpp,h} hplip-$VERSION/prnt/hpcups/common_defines.h hplip-$VERSION/prnt/hpcups/genJPEGStrips.cpp hplip-$VERSION/prnt/hpcups/RunLenEncoding.{h,cpp} From 31a7a6c1eec6c62620ace69be2484f1ef68f1b36 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 3 Aug 2023 14:47:42 +0200 Subject: [PATCH 40/84] Fallback to proprietary plugin for Hbpl1 printers Since files for Hbpl1 printers were removed until the licensing is cleared up, try to fall back to proprietary plugin. --- hplip-remove-hbpl.patch | 28 +++++++++++++++++++++++++--- hplip.spec | 13 ++++++++++++- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/hplip-remove-hbpl.patch b/hplip-remove-hbpl.patch index fe233e8..a4a28bf 100644 --- a/hplip-remove-hbpl.patch +++ b/hplip-remove-hbpl.patch @@ -16,18 +16,40 @@ index a3be3f1..0c74a12 100644 hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS) diff --git a/prnt/hpcups/Hbpl1.cpp b/prnt/hpcups/Hbpl1.cpp -index 74a67f0..4cac4ab 100644 +index 74a67f0..48f5f94 100644 --- a/prnt/hpcups/Hbpl1.cpp +++ b/prnt/hpcups/Hbpl1.cpp -@@ -72,11 +72,6 @@ Hbpl1::Hbpl1 () : Encapsulator () +@@ -60,7 +60,7 @@ Hbpl1::Hbpl1 () : Encapsulator () + m_ColorMode = COLORTYPE_BOTH; //Grayscale + m_ColorTheme = NONE; + +- /*m_hHPLibHandle = load_plugin_library(UTILS_PRINT_PLUGIN_LIBRARY, PRNT_PLUGIN_HBPL1); ++ m_hHPLibHandle = load_plugin_library(UTILS_PRINT_PLUGIN_LIBRARY, PRNT_PLUGIN_HBPL1); + if (m_hHPLibHandle) + { + dlerror (); +@@ -71,12 +71,7 @@ Hbpl1::Hbpl1 () : Encapsulator () + if ((m_pHbpl1Wrapper = fptr_create(this)) == NULL) m_init = false; - }*/ +- }*/ - m_pHbpl1Wrapper = new Hbpl1Wrapper(this); - if(m_pHbpl1Wrapper == NULL) - m_init = false; - else - m_init = true; ++ } } Hbpl1::~Hbpl1() +@@ -93,8 +88,8 @@ Hbpl1::~Hbpl1() + if(fptr_destroy) + fptr_destroy( m_pHbpl1Wrapper ); + +- //unload_library(m_hHPLibHandle); +- //m_hHPLibHandle = NULL; ++ unload_library(m_hHPLibHandle); ++ m_hHPLibHandle = NULL; + } + } + diff --git a/hplip.spec b/hplip.spec index c9928d5..80ca40f 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.5 -Release: 7%{?dist} +Release: 8%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 - proposed as BSD-3-Clause-HP @@ -229,6 +229,7 @@ Patch65: hplip-sclpml-strcasestr.patch # be shared and copied for other than archival purposes without HP permission # - this looks as incompatible conditional for Fedora, so the files are removed, # hplip repacked and this patch removes its mentions in Makefile.am +# https://bugs.launchpad.net/hplip/+bug/2028938 Patch66: hplip-nocdmfilter.patch # 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed # https://bugs.launchpad.net/hplip/+bug/2027972 @@ -242,8 +243,10 @@ Patch68: hplip-plugin-curl.patch # Upstream https://bugs.launchpad.net/hplip/+bug/2028001 Patch69: hplip-no-readfp.patch # fix SyntaxWarning from python3.12 +# https://bugs.launchpad.net/hplip/+bug/2029480 Patch70: hplip-use-raw-strings.patch # more unfriendly licenses... +# https://bugs.launchpad.net/hplip/+bug/2028938 Patch71: hplip-remove-hbpl.patch %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -587,6 +590,8 @@ done %patch -P 64 -p1 -b .pcardext-disable # C99 compatibility patch by fweimer - undefined strcasestr() in sclpml.c - build with _GNU_SOURCE %patch -P 65 -p1 -b .sclpml-strcasestr +# jetlib.h/.c have suspicious license, root them out +# https://bugs.launchpad.net/hplip/+bug/2028938 %patch -P 66 -p1 -b .nocdmfilter # 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed # https://bugs.launchpad.net/hplip/+bug/2027972 @@ -597,7 +602,10 @@ done # 2221311 - [python3.12] hplip tools/binaries crash due depending on removed configparser.readfp() # Upstream https://bugs.launchpad.net/hplip/+bug/2028001 %patch -P 69 -p1 -b .no-readfp +# fix warnings +# upstream https://bugs.launchpad.net/hplip/+bug/2029480 %patch -P 70 -p1 -b .raw-strings +# upstream https://bugs.launchpad.net/hplip/+bug/2028938 %patch -P 71 -p1 -b .hbpl # Fedora specific patches now, don't put a generic patches under it @@ -969,6 +977,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Aug 03 2023 Zdenek Dohnal - 3.23.5-8 +- fallback to using external plugin for Hbpl1 printers + * Fri Jul 28 2023 Zdenek Dohnal - 3.23.5-7 - SPDX migration From 606f617bdecb01aab9b0c52e9d1da727244d33ec Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 3 Aug 2023 16:56:06 +0200 Subject: [PATCH 41/84] hp-plugin.in: Add brackets to prevent early exit --- hp-plugin.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hp-plugin.in b/hp-plugin.in index b55f8ac..c6de68a 100644 --- a/hp-plugin.in +++ b/hp-plugin.in @@ -19,7 +19,7 @@ PLUGIN_FILE="hplip-${VER}-plugin.run" # the directory can be used by other hplip tools, so we don't have to remove it if the failure happens if [ ! -d ~/.hplip ] then - @bindir@/mkdir ~/.hplip || @bindir@/echo "Cannot create the ~/.hplip dir, exiting" && exit 1 + @bindir@/mkdir ~/.hplip || (@bindir@/echo "Cannot create the ~/.hplip dir, exiting" && exit 1) fi @bindir@/curl --create-dir -O --output-dir ~/.hplip ${PLUGIN_SOURCE} From 66bf0186242d8c5f43db8596b2d1b404aa781fae Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 24 Aug 2023 16:34:43 +0200 Subject: [PATCH 42/84] hp-check: use pkgconf when checking for cups version --- hplip-check-cups.patch | 15 ++++++++------- hplip.spec | 7 ++++++- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/hplip-check-cups.patch b/hplip-check-cups.patch index 053eb50..e0f1570 100644 --- a/hplip-check-cups.patch +++ b/hplip-check-cups.patch @@ -1,16 +1,17 @@ -diff -up hplip-3.17.11/installer/core_install.py.check-cups hplip-3.17.11/installer/core_install.py ---- hplip-3.17.11/installer/core_install.py.check-cups 2017-12-07 15:34:24.855761874 +0100 -+++ hplip-3.17.11/installer/core_install.py 2017-12-07 15:38:44.749568860 +0100 -@@ -349,9 +349,9 @@ class CoreInstall(object): +diff --git a/installer/core_install.py b/installer/core_install.py +index a6654e2..0bd1e9c 100644 +--- a/installer/core_install.py ++++ b/installer/core_install.py +@@ -362,9 +362,9 @@ class CoreInstall(object): 'automake': (True, ['prnt'], AUTOMAKE_STR, self.check_automake, DEPENDENCY_RUN_AND_COMPILE_TIME, '-', None, GENERALDEP), 'libjpeg': (True, ['base', 'prnt'], JPEG_STR, self.check_libjpeg, DEPENDENCY_RUN_AND_COMPILE_TIME, '-', None, GENERALDEP), 'libtool': (True, ['base', 'prnt'], LIBTOOL_STR, self.check_libtool, DEPENDENCY_COMPILE_TIME, '-', 'libtool --version', COMPILEDEP), - 'cups': (True, ['base', 'prnt'], CUPS_STR, self.check_cups, DEPENDENCY_RUN_TIME, '1.1', 'cups-config --version', EXTERNALDEP), - 'cups-devel': (True, ['base', 'prnt'], CUPS_DEV_STR, self.check_cups_devel, DEPENDENCY_COMPILE_TIME, '-', 'cups-config --version', GENERALDEP), - 'cups-image': (True, ['base', 'prnt'], CUPS_IMG_STR, self.check_cups_image, DEPENDENCY_COMPILE_TIME, '-', 'cups-config --version', GENERALDEP), -+ 'cups': (True, ['base', 'prnt'], CUPS_STR, self.check_cups, DEPENDENCY_RUN_TIME, '1.1', 'lpstat -r', EXTERNALDEP), -+ 'cups-devel': (True, ['base', 'prnt'], CUPS_DEV_STR, self.check_cups_devel, DEPENDENCY_COMPILE_TIME, '-', 'lpstat -r', GENERALDEP), -+ 'cups-image': (True, ['base', 'prnt'], CUPS_IMG_STR, self.check_cups_image, DEPENDENCY_COMPILE_TIME, '-', 'lpstat -r', GENERALDEP), ++ 'cups': (True, ['base', 'prnt'], CUPS_STR, self.check_cups, DEPENDENCY_RUN_TIME, '-', None, EXTERNALDEP), ++ 'cups-devel': (True, ['base', 'prnt'], CUPS_DEV_STR, self.check_cups_devel, DEPENDENCY_COMPILE_TIME, '1.1', 'pkgconf --modversion cups', GENERALDEP), ++ 'cups-image': (True, ['base', 'prnt'], CUPS_IMG_STR, self.check_cups_image, DEPENDENCY_COMPILE_TIME, '1.1', 'pkgconf --modversion cups', GENERALDEP), 'gcc': (True, ['base', 'prnt'], GCC_STR, self.check_gcc, DEPENDENCY_COMPILE_TIME, '-', 'gcc --version', COMPILEDEP), 'make': (True, ['base', 'prnt'], MAKE_STR, self.check_make, DEPENDENCY_COMPILE_TIME, '3.0', 'make --version', COMPILEDEP), 'libpthread': (True, ['base', 'prnt'], THREAD_STR, self.check_libpthread, DEPENDENCY_RUN_AND_COMPILE_TIME, '-', 'FUNC#get_libpthread_version', GENERALDEP), diff --git a/hplip.spec b/hplip.spec index 80ca40f..73b161b 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.5 -Release: 8%{?dist} +Release: 9%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 - proposed as BSD-3-Clause-HP @@ -364,6 +364,8 @@ BuildRequires: libappstream-glib # for avahi-browse - looks for devices on local network Recommends: avahi-tools Recommends: libsane-hpaio%{?_isa} = %{version}-%{release} +# for hp-check +Recommends: pkgconf Requires: %{name}%{?_isa} = %{version}-%{release} # hpssd.py @@ -977,6 +979,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Aug 24 2023 Zdenek Dohnal - 3.23.5-9 +- hp-check: use pkgconf when checking for cups version + * Thu Aug 03 2023 Zdenek Dohnal - 3.23.5-8 - fallback to using external plugin for Hbpl1 printers From 249ea11cfbee98cbc1cfd0218f32e171f9b00f32 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 11 Sep 2023 13:15:54 +0200 Subject: [PATCH 43/84] SPDX finished review of one license - take it as BSD-2-Clause --- hplip.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hplip.spec b/hplip.spec index 73b161b..41f7b55 100644 --- a/hplip.spec +++ b/hplip.spec @@ -11,13 +11,12 @@ Release: 9%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 - proposed as BSD-3-Clause-HP -# base/exif.py - BSD-2-Clause-GeneCash/FreeBSD - reported as https://gitlab.com/fedora/legal/fedora-license-data/-/issues/268 # base/ldif.py - unknown python license from python-ldap - reported https://gitlab.com/fedora/legal/fedora-license-data/-/issues/269 # io/*, scan/* - MIT # protocol/discovery/* - LGPL-2.1-or-later # protocol/* - GPL2only # scan/sane/sane.h - Public Domain -License: GPL-2.0-or-later AND MIT AND BSD-3-Clause-HP AND IJG AND GPL-2.0-only AND LGPL-2.1-or-later AND BSD-2-Clause-FreeBSD AND LicenseRef-Fedora-Public-Domain +License: GPL-2.0-or-later AND MIT AND BSD-3-Clause-HP AND IJG AND GPL-2.0-only AND LGPL-2.1-or-later AND BSD-2-Clause AND LicenseRef-Fedora-Public-Domain Url: https://developers.hp.com/hp-linux-imaging-and-printing # Original source tarball From 6d550c7123397d1a6f48deebd5d4af837237ec46 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 3 Oct 2023 16:31:24 +0200 Subject: [PATCH 44/84] SPDX finished review of one license - take it as BSD-2-Clause --- hplip.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/hplip.spec b/hplip.spec index 41f7b55..a63e8e6 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,16 +7,17 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.5 -Release: 9%{?dist} +Release: 10%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG -# prnt/* - BSD-3-Clause - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 - proposed as BSD-3-Clause-HP -# base/ldif.py - unknown python license from python-ldap - reported https://gitlab.com/fedora/legal/fedora-license-data/-/issues/269 +# prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 +# base/exif.py - BSD-2-Clause - reported as https://gitlab.com/fedora/legal/fedora-license-data/-/issues/268 +# base/ldif.py - python-ldap - reported https://gitlab.com/fedora/legal/fedora-license-data/-/issues/269 # io/*, scan/* - MIT # protocol/discovery/* - LGPL-2.1-or-later # protocol/* - GPL2only # scan/sane/sane.h - Public Domain -License: GPL-2.0-or-later AND MIT AND BSD-3-Clause-HP AND IJG AND GPL-2.0-only AND LGPL-2.1-or-later AND BSD-2-Clause AND LicenseRef-Fedora-Public-Domain +License: GPL-2.0-or-later AND MIT AND BSD-3-Clause-HP AND IJG AND GPL-2.0-only AND LGPL-2.1-or-later AND BSD-2-Clause AND LicenseRef-Fedora-Public-Domain AND python-ldap Url: https://developers.hp.com/hp-linux-imaging-and-printing # Original source tarball @@ -978,6 +979,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Tue Oct 03 2023 Zdenek Dohnal - 3.23.5-10 +- BSD-3-Clause-HP and python-ldap are added into SPDX list + * Thu Aug 24 2023 Zdenek Dohnal - 3.23.5-9 - hp-check: use pkgconf when checking for cups version From b77080962d48dadf95f7499f37b559acb8042007 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Wed, 4 Oct 2023 16:43:50 +0200 Subject: [PATCH 45/84] Rebase to 3.23.8 --- .gitignore | 1 + hplip-nocdmfilter.patch | 47 ----------------------------------- hplip-remove-hbpl.patch | 55 ----------------------------------------- hplip-repack.sh | 3 --- hplip.spec | 23 +++++------------ sources | 2 +- 6 files changed, 8 insertions(+), 123 deletions(-) delete mode 100644 hplip-nocdmfilter.patch delete mode 100644 hplip-remove-hbpl.patch diff --git a/.gitignore b/.gitignore index 7899dea..57fc212 100644 --- a/.gitignore +++ b/.gitignore @@ -110,3 +110,4 @@ hplip-3.10.6.tar.gz /hplip-3.22.10-repack.tar.gz /hplip-3.23.3-repack.tar.gz /hplip-3.23.5-repack.tar.gz +/hplip-3.23.8-repack.tar.gz diff --git a/hplip-nocdmfilter.patch b/hplip-nocdmfilter.patch deleted file mode 100644 index ba1806a..0000000 --- a/hplip-nocdmfilter.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff --git a/Makefile.am b/Makefile.am -index 751c265..a3be3f1 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -216,7 +216,7 @@ endif #HPLIP_CLASS_DRIVER - if FAX_BUILD - if !HPLIP_CLASS_DRIVER - faxdir = $(hplipdir)/fax --dist_fax_DATA = fax/fax.py fax/__init__.py fax/coverpages.py fax/pmlfax.py fax/ledmfax.py fax/cdmfax.py fax/soapfax.py fax/ledmsoapfax.py fax/marvellfax.py \ -+dist_fax_DATA = fax/fax.py fax/__init__.py fax/coverpages.py fax/pmlfax.py fax/ledmfax.py fax/soapfax.py fax/ledmsoapfax.py fax/marvellfax.py \ - fax/faxdevice.py fax/filters/pstotiff fax/filters/pstotiff.convs fax/filters/pstotiff.types - fax_filtersdir = $(mimedir) - dist_fax_filters_DATA = fax/filters/pstotiff.convs fax/filters/pstotiff.types -@@ -228,7 +228,7 @@ if HPIJS_INSTALL - dist_hpijsfaxppd_DATA = fax/ppd/HP-Fax-hpijs.ppd.gz fax/ppd/HP-Fax2-hpijs.ppd.gz fax/ppd/HP-Fax3-hpijs.ppd.gz fax/ppd/HP-Fax4-hpijs.ppd.gz - endif # HPIJS_INSTALL - if HPCUPS_INSTALL --dist_hpcupsfaxppd_DATA = fax/ppd/HP-Fax-hpcups.ppd.gz fax/ppd/HP-Fax2-hpcups.ppd.gz fax/ppd/HP-Fax3-hpcups.ppd.gz fax/ppd/HP-Fax4-hpcups.ppd.gz fax/ppd/HP-Fax-CDM-hpcups.ppd.gz -+dist_hpcupsfaxppd_DATA = fax/ppd/HP-Fax-hpcups.ppd.gz fax/ppd/HP-Fax2-hpcups.ppd.gz fax/ppd/HP-Fax3-hpcups.ppd.gz fax/ppd/HP-Fax4-hpcups.ppd.gz - endif # HPCUPS_INSTALL - endif # HPLIP_CLASS_DRIVER - endif # FAX_BUILD -@@ -613,12 +613,6 @@ hpcupsfax_PROGRAMS = hpcupsfax - hpcupsfax_SOURCES = prnt/hpijs/hpcupsfax.cpp prnt/hpijs/hpcupsfax.h common/utils.h common/utils.c - hpcupsfax_LDADD = libhpip.la -lcups -lcupsimage -ldl - --# hpcdmfax --hpcdmfaxdir = $(cupsfilterdir) --hpcdmfax_PROGRAMS = hpcdmfax --hpcdmfax_SOURCES = fax/filters/cdmfax/hpcupscdmfax.cpp fax/filters/cdmfax/hpcupscdmfax.h fax/filters/cdmfax/jetlib.cpp fax/filters/cdmfax/jetlib.h --hpcdmfax_LDADD = libhpip.la -lcups -lcupsimage -ldl -ljpeg -- - endif # HPLIP_CLASS_DRIVER - endif # FAX_BUILD - endif # HPCUPS ONLY -diff --git a/hplip.list.in b/hplip.list.in -index 909f41d..f2b5e47 100644 ---- a/hplip.list.in -+++ b/hplip.list.in -@@ -94,7 +94,6 @@ f 0755 root root $cupsfilter/pstotiff fax/filters/pstotiff - - %if !print_only_exclude - f 0755 root root $cupsfilter/hpcupsfax .libs/hpcupsfax --f 0755 root root $cupsfilter/hpcdmfax .libs/hpcdmfax - %endif - - %if foomatic-drv-install diff --git a/hplip-remove-hbpl.patch b/hplip-remove-hbpl.patch deleted file mode 100644 index a4a28bf..0000000 --- a/hplip-remove-hbpl.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff --git a/Makefile.am b/Makefile.am -index a3be3f1..0c74a12 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -583,10 +583,8 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp - prnt/hpcups/dj3600ColorMaps.cpp prnt/hpcups/dj3320PrintModes.h \ - prnt/hpcups/dj4100PrintModes.h \ - prnt/hpcups/Hbpl1.cpp prnt/hpcups/Hbpl1.h prnt/hpcups/Hbpl1_Wrapper.h prnt/hpcups/PCLmGenerator.h \ -- prnt/hpcups/flate_colorspace.h prnt/hpcups/RunLenEncoding.h prnt/hpcups/common_defines.h \ -- prnt/hpcups/genPCLm.h \ -- common/utils.c common/utils.h prnt/hpcups/Hbpl1_Wrapper.cpp prnt/hpcups/genPCLm.cpp \ -- prnt/hpcups/genJPEGStrips.cpp prnt/hpcups/RunLenEncoding.cpp \ -+ prnt/hpcups/flate_colorspace.h \ -+ common/utils.c common/utils.h \ - prnt/hpcups/ImageProcessor.h - - hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS) -diff --git a/prnt/hpcups/Hbpl1.cpp b/prnt/hpcups/Hbpl1.cpp -index 74a67f0..48f5f94 100644 ---- a/prnt/hpcups/Hbpl1.cpp -+++ b/prnt/hpcups/Hbpl1.cpp -@@ -60,7 +60,7 @@ Hbpl1::Hbpl1 () : Encapsulator () - m_ColorMode = COLORTYPE_BOTH; //Grayscale - m_ColorTheme = NONE; - -- /*m_hHPLibHandle = load_plugin_library(UTILS_PRINT_PLUGIN_LIBRARY, PRNT_PLUGIN_HBPL1); -+ m_hHPLibHandle = load_plugin_library(UTILS_PRINT_PLUGIN_LIBRARY, PRNT_PLUGIN_HBPL1); - if (m_hHPLibHandle) - { - dlerror (); -@@ -71,12 +71,7 @@ Hbpl1::Hbpl1 () : Encapsulator () - - if ((m_pHbpl1Wrapper = fptr_create(this)) == NULL) - m_init = false; -- }*/ -- m_pHbpl1Wrapper = new Hbpl1Wrapper(this); -- if(m_pHbpl1Wrapper == NULL) -- m_init = false; -- else -- m_init = true; -+ } - } - - Hbpl1::~Hbpl1() -@@ -93,8 +88,8 @@ Hbpl1::~Hbpl1() - if(fptr_destroy) - fptr_destroy( m_pHbpl1Wrapper ); - -- //unload_library(m_hHPLibHandle); -- //m_hHPLibHandle = NULL; -+ unload_library(m_hHPLibHandle); -+ m_hHPLibHandle = NULL; - } - } - diff --git a/hplip-repack.sh b/hplip-repack.sh index bd8b624..a67e7ee 100755 --- a/hplip-repack.sh +++ b/hplip-repack.sh @@ -13,9 +13,6 @@ fi tar -xaf hplip-$VERSION.tar.gz || exit 1 # remove unwanted files - license-related ones reported here https://bugs.launchpad.net/hplip/+bug/2028938 -rm hplip-$VERSION/prnt/hpcups/ErnieFilter.{cpp,h} hplip-$VERSION/prnt/hpijs/ernieplatform.h || exit 1 -rm hplip-$VERSION/fax/filters/cdmfax/hpcupscdmfax.{cpp,h} hplip-$VERSION/fax/filters/cdmfax/jetlib.{cpp,h} hplip-$VERSION/fax/ppd/HP-Fax-CDM-hpcups.ppd.gz || exit 1 -rm hplip-$VERSION/prnt/hpcups/Hbpl1_Wrapper.cpp hplip-$VERSION/prnt/hpcups/genPCLm.{cpp,h} hplip-$VERSION/prnt/hpcups/common_defines.h hplip-$VERSION/prnt/hpcups/genJPEGStrips.cpp hplip-$VERSION/prnt/hpcups/RunLenEncoding.{h,cpp} rm hplip-$VERSION/locatedriver # compress into a new tarball diff --git a/hplip.spec b/hplip.spec index a63e8e6..1164fa0 100644 --- a/hplip.spec +++ b/hplip.spec @@ -6,8 +6,8 @@ Summary: HP Linux Imaging and Printing Project Name: hplip -Version: 3.23.5 -Release: 10%{?dist} +Version: 3.23.8 +Release: 1%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -224,13 +224,6 @@ Patch64: hplip-pcardext-disable.patch # undefined strcasestr() in sclpml.c - build with _GNU_SOURCE # Submitted upstream: Patch65: hplip-sclpml-strcasestr.patch -# hpcupscdmfilter for faxing requires jetlib header and source files, -# which have copyright note in the header comment, that the files can't -# be shared and copied for other than archival purposes without HP permission -# - this looks as incompatible conditional for Fedora, so the files are removed, -# hplip repacked and this patch removes its mentions in Makefile.am -# https://bugs.launchpad.net/hplip/+bug/2028938 -Patch66: hplip-nocdmfilter.patch # 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed # https://bugs.launchpad.net/hplip/+bug/2027972 Patch67: hplip-fix-parsing-lpstat.patch @@ -245,9 +238,6 @@ Patch69: hplip-no-readfp.patch # fix SyntaxWarning from python3.12 # https://bugs.launchpad.net/hplip/+bug/2029480 Patch70: hplip-use-raw-strings.patch -# more unfriendly licenses... -# https://bugs.launchpad.net/hplip/+bug/2028938 -Patch71: hplip-remove-hbpl.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -592,9 +582,6 @@ done %patch -P 64 -p1 -b .pcardext-disable # C99 compatibility patch by fweimer - undefined strcasestr() in sclpml.c - build with _GNU_SOURCE %patch -P 65 -p1 -b .sclpml-strcasestr -# jetlib.h/.c have suspicious license, root them out -# https://bugs.launchpad.net/hplip/+bug/2028938 -%patch -P 66 -p1 -b .nocdmfilter # 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed # https://bugs.launchpad.net/hplip/+bug/2027972 %patch -P 67 -p1 -b .lpstat-parse @@ -607,8 +594,6 @@ done # fix warnings # upstream https://bugs.launchpad.net/hplip/+bug/2029480 %patch -P 70 -p1 -b .raw-strings -# upstream https://bugs.launchpad.net/hplip/+bug/2028938 -%patch -P 71 -p1 -b .hbpl # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -864,6 +849,7 @@ find doc/images -type f -exec chmod 644 {} \; %{_cups_serverbin}/backend/hp %{_cups_serverbin}/backend/hpfax # ex-hpijs +%{_cups_serverbin}/filter/hpcdmfax %{_cups_serverbin}/filter/hpcups %{_cups_serverbin}/filter/hpcupsfax %{_cups_serverbin}/filter/hpps @@ -979,6 +965,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Tue Oct 03 2023 Zdenek Dohnal - 3.23.8-1 +- 2239465 - hplip-3.23.8 is available + * Tue Oct 03 2023 Zdenek Dohnal - 3.23.5-10 - BSD-3-Clause-HP and python-ldap are added into SPDX list diff --git a/sources b/sources index 9375c30..7038e4a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hplip-3.23.5-repack.tar.gz) = 7b16f86f18f77061396c4b70df47ebb2109a07a018fbadac550d873ee3d68edb9c1530fde3fec07ba5702f896243b81a6b9b23c4602953716ffbab7b025bbf86 +SHA512 (hplip-3.23.8-repack.tar.gz) = 07df27ee2389f351c917011c939c221e835bbfe30211bfaa69bbb9b0897bb6cc33ab697b25ac4d614a587be60d96d60b681a51c92e4d8ea60043187275004d2e From f488895f79cc733b151bc49a1d2da2ad9f1ec66d Mon Sep 17 00:00:00 2001 From: Mikhail Gavrilov Date: Mon, 9 Oct 2023 03:13:40 +0500 Subject: [PATCH 46/84] fix --max-time and add follow to redirections --- hplip-plugin-curl.patch | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hplip-plugin-curl.patch b/hplip-plugin-curl.patch index f9ef742..023e528 100644 --- a/hplip-plugin-curl.patch +++ b/hplip-plugin-curl.patch @@ -2,7 +2,7 @@ diff --git a/installer/pluginhandler.py b/installer/pluginhandler.py index 56683fb..031ceec 100755 --- a/installer/pluginhandler.py +++ b/installer/pluginhandler.py -@@ -185,14 +185,14 @@ class PluginHandle(object): +@@ -185,14 +185,16 @@ class PluginHandle(object): if self.__plugin_conf_file.startswith('file://'): status, filename = utils.download_from_network(self.__plugin_conf_file, local_conf, True) else: @@ -11,7 +11,9 @@ index 56683fb..031ceec 100755 - status, output = utils.run("%s --tries=3 --timeout=60 --output-document=%s %s --cache=off" %(wget, local_conf, self.__plugin_conf_file)) + curl = utils.which("curl", True) + if curl: -+ status, output = utils.run("%s --retry 3 --max-time=10 --output %s %s" %(curl, local_conf, self.__plugin_conf_file)) ++ cmd = "%s --retry 3 --max-time 10 --output %s --location %s" %(curl, local_conf, self.__plugin_conf_file) ++ log.debug(cmd) ++ status, output = utils.run(cmd) if status: log.error("Plugin download failed with error code = %d" %status) return status, url, check_sum From a6c2c2b70b1a7639032f7f695f6dfc9bf53a8577 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 9 Jan 2024 11:20:27 +0100 Subject: [PATCH 47/84] 2252302 - hplip-3.23.12 is available --- .gitignore | 1 + hplip-fix-Wreturn-type-warning.patch | 11 ------ hplip-snprintf-format.patch | 51 ---------------------------- hplip-use-raw-strings.patch | 22 ------------ hplip.spec | 12 +++---- sources | 2 +- 6 files changed, 8 insertions(+), 91 deletions(-) delete mode 100644 hplip-snprintf-format.patch diff --git a/.gitignore b/.gitignore index 57fc212..21ead10 100644 --- a/.gitignore +++ b/.gitignore @@ -111,3 +111,4 @@ hplip-3.10.6.tar.gz /hplip-3.23.3-repack.tar.gz /hplip-3.23.5-repack.tar.gz /hplip-3.23.8-repack.tar.gz +/hplip-3.23.12-repack.tar.gz diff --git a/hplip-fix-Wreturn-type-warning.patch b/hplip-fix-Wreturn-type-warning.patch index e128078..aa40e1a 100644 --- a/hplip-fix-Wreturn-type-warning.patch +++ b/hplip-fix-Wreturn-type-warning.patch @@ -1,14 +1,3 @@ ---- hplip-3.20.3/prnt/hpps/hppsfilter.c.orig 2020-03-25 01:09:51.585129957 +0000 -+++ hplip-3.20.3/prnt/hpps/hppsfilter.c 2020-03-25 01:10:15.610058293 +0000 -@@ -104,7 +104,7 @@ static void open_tempbookletfile(char *m - if(ptempbooklet_file == NULL) - { - fprintf(stderr, "ERROR: Unable to open temp file %s\n", temp_filename); -- return 1; -+ return; - } - chmod(temp_filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); - --- hplip-3.20.3/scan/sane/hpaio.c.orig 2020-03-25 01:24:15.558732638 +0000 +++ hplip-3.20.3/scan/sane/hpaio.c 2020-03-25 02:48:36.097054366 +0000 @@ -406,20 +406,34 @@ extern SANE_Status sane_hpaio_open(SANE_ diff --git a/hplip-snprintf-format.patch b/hplip-snprintf-format.patch deleted file mode 100644 index 21b1530..0000000 --- a/hplip-snprintf-format.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff -up hplip-3.23.3/protocol/hp_ipp.c.snprintf-format hplip-3.23.3/protocol/hp_ipp.c ---- hplip-3.23.3/protocol/hp_ipp.c.snprintf-format 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/protocol/hp_ipp.c 2023-05-29 14:21:30.872871575 +0200 -@@ -108,10 +108,10 @@ int addCupsPrinter(char *name, char *dev - goto abort; - } - -- if ( info == NULL ) -- snprintf( info,sizeof(info), name ); -+ if ( info == NULL ) -+ info = name; - -- sprintf(printer_uri, "ipp://localhost/printers/%s", name); -+ snprintf( printer_uri, sizeof(printer_uri), "ipp://localhost/printers/%s", name); - - cupsSetUser("root"); - /* Connect to the HTTP server */ -@@ -514,27 +514,27 @@ int __parsePrinterAttributes(ipp_t *resp - - if ( strcmp(attr_name, "printer-name") == 0 && - val_tag == IPP_TAG_NAME ) { -- snprintf(t_printer->name, sizeof(t_printer->name),ippGetString(attr, 0, NULL) ); -+ snprintf(t_printer->name, sizeof(t_printer->name), "%s", ippGetString(attr, 0, NULL)); - } - else if ( strcmp(attr_name, "device-uri") == 0 && - val_tag == IPP_TAG_URI ) { -- snprintf(t_printer->device_uri,sizeof(t_printer->device_uri), ippGetString(attr, 0, NULL) ); -+ snprintf(t_printer->device_uri, sizeof(t_printer->device_uri), "%s", ippGetString(attr, 0, NULL)); - } - else if ( strcmp(attr_name, "printer-uri-supported") == 0 && - val_tag == IPP_TAG_URI ) { -- snprintf(t_printer->printer_uri,sizeof(t_printer->printer_uri), ippGetString(attr, 0, NULL) ); -+ snprintf(t_printer->printer_uri, sizeof(t_printer->printer_uri), "%s", ippGetString(attr, 0, NULL)); - } - else if ( strcmp(attr_name, "printer-info") == 0 && - val_tag == IPP_TAG_TEXT ) { -- snprintf(t_printer->info,sizeof(t_printer->info), ippGetString(attr, 0, NULL) ); -+ snprintf(t_printer->info, sizeof(t_printer->info), "%s", ippGetString(attr, 0, NULL)); - } - else if ( strcmp(attr_name, "printer-location") == 0 && - val_tag == IPP_TAG_TEXT ) { -- snprintf(t_printer->location,sizeof(t_printer->location),ippGetString(attr, 0, NULL) ); -+ snprintf(t_printer->location, sizeof(t_printer->location), "%s", ippGetString(attr, 0, NULL)); - } - else if ( strcmp(attr_name, "printer-make-and-model") == 0 && - val_tag == IPP_TAG_TEXT ) { -- snprintf(t_printer->make_model,sizeof(t_printer->make_model),ippGetString(attr, 0, NULL) ); -+ snprintf(t_printer->make_model, sizeof(t_printer->make_model), "%s", ippGetString(attr, 0, NULL)); - } - else if ( strcmp(attr_name, "printer-state") == 0 && - val_tag == IPP_TAG_ENUM ) { diff --git a/hplip-use-raw-strings.patch b/hplip-use-raw-strings.patch index afef121..6777903 100644 --- a/hplip-use-raw-strings.patch +++ b/hplip-use-raw-strings.patch @@ -396,25 +396,3 @@ index 98f57fd..1a74d6d 100755 ("To specify the device URI to install:", "-d or --device= (--qt4 mode only)", "option", False), ("Remove printers or faxes instead of setting-up:", "-r or --rm or --remove", "option", False), utils.USAGE_LANGUAGE, -diff --git a/ui5/devmgr_ext.py b/ui5/devmgr_ext.py -index 34b4977..6b7a61e 100644 ---- a/ui5/devmgr_ext.py -+++ b/ui5/devmgr_ext.py -@@ -12,7 +12,7 @@ class Ui_MainWindow_Derived(object): - - self.latest_available_version = latest_available_version - self.Is_autoInstaller_distro = Is_autoInstaller_distro -- if self.latest_available_version is not "": -+ if self.latest_available_version != "": - self.tab_3 = QWidget() - self.tab_3.setObjectName("tab_3") - self.label = QLabel(self.tab_3) -@@ -34,7 +34,7 @@ class Ui_MainWindow_Derived(object): - - def retranslateUi(self, MainWindow): - super(Ui_MainWindow_Derived, self).retranslateUi(MainWindow) -- if self.latest_available_version is not "": -+ if self.latest_available_version != "": - self.label.setText(QApplication.translate("MainWindow", "New version of HPLIP-%s is available"%self.latest_available_version, None)) - self.Tabs.setTabText(self.Tabs.indexOf(self.tab_3), QApplication.translate("MainWindow", "Upgrade", None)) - if self.Is_autoInstaller_distro: diff --git a/hplip.spec b/hplip.spec index 1164fa0..c81a746 100644 --- a/hplip.spec +++ b/hplip.spec @@ -6,7 +6,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip -Version: 3.23.8 +Version: 3.23.12 Release: 1%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG @@ -199,9 +199,6 @@ Patch57: hplip-plugin-udevissues.patch # removed # - /lib64/libm.so is not symlink but ld script, which cannot be used in dlopen() Patch58: hplip-no-libhpmud-libm-warnings.patch -# hplip 3.22.6 doesn't use the correct arguments for snprintf -# reported as https://bugs.launchpad.net/hplip/+bug/1982185 -Patch59: hplip-snprintf-format.patch Patch60: hplip-plugin-script.patch # C99 compatibility fixes by fweimer - use explicit int # Submitted upstream: @@ -238,6 +235,7 @@ Patch69: hplip-no-readfp.patch # fix SyntaxWarning from python3.12 # https://bugs.launchpad.net/hplip/+bug/2029480 Patch70: hplip-use-raw-strings.patch +Patch71: hplip-hpaio-c99.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -563,8 +561,6 @@ done %patch -P 57 -p1 -b .hpplugin-udevperms # 2080235 - Misleading errors about missing shared libraries when scanning %patch -P 58 -p1 -b .no-libm-libhpmud-warn -# hplip 3.22.6 doesn't use proper arguments for snprintf -%patch -P 59 -p1 -b .snprintf-format %patch -P 60 -p1 -b .plugin-patch # C99 compatibility fixes by fweimer - use explicit int # Submitted upstream: @@ -594,6 +590,7 @@ done # fix warnings # upstream https://bugs.launchpad.net/hplip/+bug/2029480 %patch -P 70 -p1 -b .raw-strings +%patch -P 71 -p1 -b .hpaio-c99 # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -965,6 +962,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Mon Jan 08 2024 Zdenek Dohnal - 3.23.12-1 +- 2252302 - hplip-3.23.12 is available + * Tue Oct 03 2023 Zdenek Dohnal - 3.23.8-1 - 2239465 - hplip-3.23.8 is available diff --git a/sources b/sources index 7038e4a..c2976ff 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hplip-3.23.8-repack.tar.gz) = 07df27ee2389f351c917011c939c221e835bbfe30211bfaa69bbb9b0897bb6cc33ab697b25ac4d614a587be60d96d60b681a51c92e4d8ea60043187275004d2e +SHA512 (hplip-3.23.12-repack.tar.gz) = 7e4713e5769a59e686aeada778b91ec65a6f8a2e393bd13473fb77be4ef1e1c470ae355b22ffa13f4f2e2353533f6a855b9749a267543d2dfb1f630724fb7100 From d726b77698ed806fb84e482fb40202548095fbe1 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 9 Jan 2024 15:35:15 +0100 Subject: [PATCH 48/84] Fix build with GCC 14 --- hplip-hpaio-gcc14.patch | 114 ++++++++++++++++++++++++++++++++++++++++ hplip.spec | 8 ++- 2 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 hplip-hpaio-gcc14.patch diff --git a/hplip-hpaio-gcc14.patch b/hplip-hpaio-gcc14.patch new file mode 100644 index 0000000..f7d195e --- /dev/null +++ b/hplip-hpaio-gcc14.patch @@ -0,0 +1,114 @@ +diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c +index 57d1dde..3475929 100644 +--- a/scan/sane/hpaio.c ++++ b/scan/sane/hpaio.c +@@ -379,7 +379,7 @@ extern SANE_Status sane_hpaio_get_devices(const SANE_Device ***deviceList, SANE_ + ResetDeviceList(&DeviceList); + DevDiscovery(localOnly); + *deviceList = (const SANE_Device **)DeviceList; +- SANE_Device*** devList; ++ const SANE_Device*** devList; + orblite_get_devices(devList, localOnly); + + return SANE_STATUS_GOOD; +diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c +index 2eb7aba..4eaa468 100644 +--- a/scan/sane/orblite.c ++++ b/scan/sane/orblite.c +@@ -64,28 +64,28 @@ SANE_Option_Descriptor DefaultOrbOptions[] = { + SANE_NAME_SCAN_TL_X, SANE_TITLE_SCAN_TL_X, SANE_DESC_SCAN_TL_X, // name, title, desc + SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size + SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability) +- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeLeft // constraint_type, constraint ++ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeLeft // constraint_type, constraint + }, + + { + SANE_NAME_SCAN_TL_Y, SANE_TITLE_SCAN_TL_Y, SANE_DESC_SCAN_TL_Y, // name, title, desc + SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size + SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability) +- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeTop // constraint_type, constraint ++ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeTop // constraint_type, constraint + }, + + { + SANE_NAME_SCAN_BR_X, SANE_TITLE_SCAN_BR_X, SANE_DESC_SCAN_BR_X, // name, title, desc + SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size + SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability) +- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeRight // constraint_type, constraint ++ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeRight // constraint_type, constraint + }, + + { + SANE_NAME_SCAN_BR_Y, SANE_TITLE_SCAN_BR_Y, SANE_DESC_SCAN_BR_Y, // name, title, desc + SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size + SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability) +- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeBottom // constraint_type, constraint ++ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeBottom // constraint_type, constraint + }, + + // optResolution, // resolution group +@@ -93,7 +93,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = { + SANE_NAME_SCAN_RESOLUTION, SANE_TITLE_SCAN_RESOLUTION, SANE_DESC_SCAN_RESOLUTION, // name, title, desc + SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word), // type, unit, size, + SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability) +- SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint ++ SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint + }, + + // optMode, // color/depth group +@@ -101,7 +101,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = { + SANE_NAME_SCAN_MODE, SANE_TITLE_SCAN_MODE, SANE_DESC_SCAN_MODE, // name, title, desc + SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size, + SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability) +- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_modes // constraint type, constraint ++ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_modes // constraint type, constraint + }, + + // optSource, +@@ -109,7 +109,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = { + SANE_NAME_SCAN_SOURCE, SANE_TITLE_SCAN_SOURCE, SANE_DESC_SCAN_SOURCE, // name, title, desc + SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size, + SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability) +- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_sources // constraint type, constraint ++ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_sources // constraint type, constraint + }, + + // optPaperSize, +@@ -117,7 +117,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = { + SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc + SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size, + SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability) +- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_paper_sizes // constraint type, constraint ++ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_paper_sizes // constraint type, constraint + }, + + // optPaperSize, +@@ -125,7 +125,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = { + SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc + SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word), // type, unit, size, + SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability) +- SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint ++ SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint + }, + #ifdef NOTDEF + // default template +@@ -274,6 +274,7 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle) + SANE_Auth_Callback authorize; + const SANE_Device *** device_list; + SANE_Bool local_only; ++ void * temp_handle; + + + // Allocate handle, set all handle values to zero +@@ -305,7 +306,9 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle) + if (stat != SANE_STATUS_GOOD) + return stat; + +- stat = g_handle->bb_orblite_open(devicename, &g_handle); ++ temp_handle = g_handle; ++ stat = g_handle->bb_orblite_open(devicename, &temp_handle); ++ g_handle = temp_handle; + if (stat == SANE_STATUS_GOOD) + *handle = g_handle; + diff --git a/hplip.spec b/hplip.spec index c81a746..4dbb361 100644 --- a/hplip.spec +++ b/hplip.spec @@ -235,7 +235,9 @@ Patch69: hplip-no-readfp.patch # fix SyntaxWarning from python3.12 # https://bugs.launchpad.net/hplip/+bug/2029480 Patch70: hplip-use-raw-strings.patch -Patch71: hplip-hpaio-c99.patch +# FTBFS GCC 14 +# https://bugs.launchpad.net/hplip/+bug/2048780 +Patch71: hplip-hpaio-gcc14.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -590,7 +592,9 @@ done # fix warnings # upstream https://bugs.launchpad.net/hplip/+bug/2029480 %patch -P 70 -p1 -b .raw-strings -%patch -P 71 -p1 -b .hpaio-c99 +# FTBFS GCC 14 +# https://bugs.launchpad.net/hplip/+bug/2048780 +%patch -P 71 -p1 -b .hpaio-gcc14 # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 From 187b064062ee720212f6462ff182e2813f432ded Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 19 Jan 2024 09:23:18 +0100 Subject: [PATCH 49/84] add fallback url to hp-plugin-download --- hp-plugin.in | 28 ++++++++++++++++++++++------ hplip.spec | 5 ++++- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/hp-plugin.in b/hp-plugin.in index c6de68a..a125970 100644 --- a/hp-plugin.in +++ b/hp-plugin.in @@ -9,12 +9,20 @@ then exit 1 fi -# link to the plugin -PLUGIN_SOURCE="https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-${VER}-plugin.run" - # plugin name PLUGIN_FILE="hplip-${VER}-plugin.run" +download() +{ + SOURCE="$1" + + @bindir@/curl --create-dir -O --output-dir ~/.hplip ${SOURCE} +} + +# link to the plugin +PLUGIN_SOURCE="https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${PLUGIN_FILE}" +FALLBACK_SOURCE="https://developers.hp.com/sites/default/files/${PLUGIN_FILE}" + # create a hidden hplip dir to store a file indicating the plugin version after successful install # the directory can be used by other hplip tools, so we don't have to remove it if the failure happens if [ ! -d ~/.hplip ] @@ -22,11 +30,19 @@ then @bindir@/mkdir ~/.hplip || (@bindir@/echo "Cannot create the ~/.hplip dir, exiting" && exit 1) fi -@bindir@/curl --create-dir -O --output-dir ~/.hplip ${PLUGIN_SOURCE} +for link in ${PLUGIN_SOURCE} ${FALLBACK_SOURCE} +do + download ${link} -if [ ! -f ~/.hplip/${PLUGIN_FILE} ] + if test "x$(file --mime ~/.hplip/${PLUGIN_FILE} | grep 'text/x-shellscript')" = "xtext/x-shellscript" + then + break + fi +done + +if test "x$(file --mime ~/.hplip/${PLUGIN_FILE} | grep 'text/x-shellscript')" = "x" then - @bindir@/echo "The downloaded file does not exist - error during downloading, exiting..." + @bindir@/echo "The downloaded file does not exist or is not a shell script - error during downloading, exiting..." exit 1 fi diff --git a/hplip.spec b/hplip.spec index 4dbb361..4c8ed35 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.12 -Release: 1%{?dist} +Release: 2%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -966,6 +966,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Fri Jan 19 2024 Zdenek Dohnal - 3.23.12-2 +- add fallback url to hp-plugin-download + * Mon Jan 08 2024 Zdenek Dohnal - 3.23.12-1 - 2252302 - hplip-3.23.12 is available From 639b6e999f595ca5c5d58bb337b16b34cd3fdfeb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jan 2024 22:11:36 +0000 Subject: [PATCH 50/84] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index 4c8ed35..1d06126 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.12 -Release: 2%{?dist} +Release: 3%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -966,6 +966,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Sat Jan 20 2024 Fedora Release Engineering - 3.23.12-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Zdenek Dohnal - 3.23.12-2 - add fallback url to hp-plugin-download From dabcff0237f93f88e260a089ed7d069c2d43ffa9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jan 2024 21:45:51 +0000 Subject: [PATCH 51/84] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index 1d06126..0e06590 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.12 -Release: 3%{?dist} +Release: 4%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -966,6 +966,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Wed Jan 24 2024 Fedora Release Engineering - 3.23.12-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Sat Jan 20 2024 Fedora Release Engineering - 3.23.12-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From a13fbe55d3df2dee8a449391171ec2ceb6991aed Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 18 Mar 2024 16:07:00 +0100 Subject: [PATCH 52/84] 2270031 - hp-firmware: module 'locale' not longer provides method 'format', causing traceback --- hplip-locale-format.patch | 13 +++++++++++++ hplip.spec | 11 ++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 hplip-locale-format.patch diff --git a/hplip-locale-format.patch b/hplip-locale-format.patch new file mode 100644 index 0000000..32fba1e --- /dev/null +++ b/hplip-locale-format.patch @@ -0,0 +1,13 @@ +diff --git a/base/utils.py b/base/utils.py +index e2de550..55848b8 100644 +--- a/base/utils.py ++++ b/base/utils.py +@@ -474,7 +474,7 @@ def sort_dict_by_value(d): + + + def commafy(val): +- return locale.format("%s", val, grouping=True) ++ return locale.format_string("%s", val, grouping=True) + + + def format_bytes(s, show_bytes=False): diff --git a/hplip.spec b/hplip.spec index 0e06590..f477533 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.12 -Release: 4%{?dist} +Release: 5%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -238,6 +238,9 @@ Patch70: hplip-use-raw-strings.patch # FTBFS GCC 14 # https://bugs.launchpad.net/hplip/+bug/2048780 Patch71: hplip-hpaio-gcc14.patch +# format is no longer method in locale module +# https://bugs.launchpad.net/hplip/+bug/2045507 +Patch72: hplip-locale-format.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -595,6 +598,9 @@ done # FTBFS GCC 14 # https://bugs.launchpad.net/hplip/+bug/2048780 %patch -P 71 -p1 -b .hpaio-gcc14 +# format is no longer method in locale module +# https://bugs.launchpad.net/hplip/+bug/2045507 +%patch -P 72 -p1 -b .locale-format # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -966,6 +972,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Mon Mar 18 2024 Zdenek Dohnal - 3.23.12-5 +- 2270031 - hp-firmware: module 'locale' not longer provides method 'format', causing traceback + * Wed Jan 24 2024 Fedora Release Engineering - 3.23.12-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From d5743e6d63b9d09c92223bbe159ecec5b0338464 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 21 Mar 2024 14:13:55 +0100 Subject: [PATCH 53/84] hp-plugin-download - curl removed --create-dir parameter --- hp-plugin.in | 2 +- hplip.spec | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/hp-plugin.in b/hp-plugin.in index a125970..48ab3b9 100644 --- a/hp-plugin.in +++ b/hp-plugin.in @@ -16,7 +16,7 @@ download() { SOURCE="$1" - @bindir@/curl --create-dir -O --output-dir ~/.hplip ${SOURCE} + @bindir@/curl --create-dirs -O --output-dir ~/.hplip ${SOURCE} } # link to the plugin diff --git a/hplip.spec b/hplip.spec index f477533..5fb0c82 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.12 -Release: 5%{?dist} +Release: 6%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -972,6 +972,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Mar 21 2024 Zdenek Dohnal - 3.23.12-6 +- hp-plugin-download - curl removed --create-dir parameter + * Mon Mar 18 2024 Zdenek Dohnal - 3.23.12-5 - 2270031 - hp-firmware: module 'locale' not longer provides method 'format', causing traceback From 0b780c93e6e2bc053010fd9f2ee730c998235815 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 15 Apr 2024 15:09:27 +0200 Subject: [PATCH 54/84] Update gating.yaml --- gating.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/gating.yaml b/gating.yaml index de5c323..3c35f7d 100644 --- a/gating.yaml +++ b/gating.yaml @@ -21,7 +21,5 @@ product_versions: - rhel-* decision_context: osci_compose_gate rules: - - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} - - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tedude.validation} - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional} - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/public.functional} From 3f33fc6240ae9e4b8aac4b74f0df84f18365248c Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 7 May 2024 17:20:13 +0200 Subject: [PATCH 55/84] Remove additional License tags, merged into one --- hplip.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/hplip.spec b/hplip.spec index 5fb0c82..15ceb64 100644 --- a/hplip.spec +++ b/hplip.spec @@ -334,14 +334,12 @@ drivers for HP printers and multi-function peripherals. %package common Summary: Files needed by the HPLIP printer and scanner drivers -License: GPLv2+ %description common Files needed by the HPLIP printer and scanner drivers. %package libs Summary: HPLIP libraries -License: GPLv2+ and MIT Requires: %{name}-common%{?_isa} = %{version}-%{release} Requires: python3 @@ -351,7 +349,6 @@ Libraries needed by HPLIP. %if 0%{?rhel} <= 8 || 0%{?fedora} %package gui Summary: HPLIP graphical tools -License: BSD BuildRequires: libappstream-glib # for avahi-browse - looks for devices on local network @@ -372,7 +369,6 @@ HPLIP graphical tools. %package -n libsane-hpaio Summary: SANE driver for scanners in HP's multi-function devices -License: GPLv2+ Requires: sane-backends Requires: %{name}-libs%{?_isa} = %{version}-%{release} From 19b7cb06147db4016bb9ed4dbc9756eb2749abd2 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 23 May 2024 13:40:39 +0200 Subject: [PATCH 56/84] plans: fix url --- plans/tier1-internal.fmf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plans/tier1-internal.fmf b/plans/tier1-internal.fmf index 4f7e4b3..0e4d1c9 100644 --- a/plans/tier1-internal.fmf +++ b/plans/tier1-internal.fmf @@ -3,7 +3,7 @@ discover: - name: rhel how: fmf filter: 'tier: 1' - url: git://pkgs.devel.redhat.com/tests/hplip + url: https://pkgs.devel.redhat.com/git/tests/hplip execute: how: tmt adjust: From 48d1741f8d75da563d3d10a855e9ec98c9b3ec5b Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 7 Jun 2024 10:31:56 +0200 Subject: [PATCH 57/84] Rebuilt for Python 3.13 --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index 15ceb64..879db66 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.12 -Release: 6%{?dist} +Release: 7%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -968,6 +968,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Fri Jun 07 2024 Python Maint - 3.23.12-7 +- Rebuilt for Python 3.13 + * Thu Mar 21 2024 Zdenek Dohnal - 3.23.12-6 - hp-plugin-download - curl removed --create-dir parameter From dbdc2cce2a673564afd55429ea95e655b639205b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 18 Jul 2024 09:21:06 +0000 Subject: [PATCH 58/84] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index 879db66..9e48015 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.23.12 -Release: 7%{?dist} +Release: 8%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -968,6 +968,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Jul 18 2024 Fedora Release Engineering - 3.23.12-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Fri Jun 07 2024 Python Maint - 3.23.12-7 - Rebuilt for Python 3.13 From c78ccf59f8cda28f09402350909dbfe0cc2e7011 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 18 Jun 2024 16:31:50 +0200 Subject: [PATCH 59/84] 2292623 - hplip-3.24.4 is available --- .gitignore | 1 + hplip-no-readfp.patch | 26 -------------------------- hplip.spec | 25 +++++++++++-------------- sources | 2 +- 4 files changed, 13 insertions(+), 41 deletions(-) delete mode 100644 hplip-no-readfp.patch diff --git a/.gitignore b/.gitignore index 21ead10..e99ac7f 100644 --- a/.gitignore +++ b/.gitignore @@ -112,3 +112,4 @@ hplip-3.10.6.tar.gz /hplip-3.23.5-repack.tar.gz /hplip-3.23.8-repack.tar.gz /hplip-3.23.12-repack.tar.gz +/hplip-3.24.4-repack.tar.gz diff --git a/hplip-no-readfp.patch b/hplip-no-readfp.patch deleted file mode 100644 index 35108e3..0000000 --- a/hplip-no-readfp.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/base/g.py b/base/g.py -index 0aa0e2e..96b3131 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.readfp(fp) -+ self.conf.read_file(fp, self.filename) - except configparser.MissingSectionHeaderError: - print("") - log.error("Found No Section in %s. Please set the http proxy for root and try again." % self.filename) -diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py -index 3110a0f..3761f89 100644 ---- a/ui5/devmgr5.py -+++ b/ui5/devmgr5.py -@@ -1072,7 +1072,7 @@ class DevMgr5(Ui_MainWindow_Derived, Ui_MainWindow, QMainWindow): - - hplip_conf = configparser.ConfigParser() - fp = open("/etc/hp/hplip.conf", "r") -- hplip_conf.readfp(fp) -+ hplip_conf.read_file(fp, "/etc/hp/hplip.conf") - fp.close() - - try: diff --git a/hplip.spec b/hplip.spec index 9e48015..bb82ef9 100644 --- a/hplip.spec +++ b/hplip.spec @@ -6,8 +6,8 @@ Summary: HP Linux Imaging and Printing Project Name: hplip -Version: 3.23.12 -Release: 8%{?dist} +Version: 3.24.4 +Release: 1%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -229,18 +229,15 @@ Patch67: hplip-fix-parsing-lpstat.patch # Remove this once internal openstack handles IPv6 better - test by pinging IPv6 in OpenStack, # it should not hang. Patch68: hplip-plugin-curl.patch -# 2221311 - [python3.12] hplip tools/binaries crash due depending on removed configparser.readfp() -# Upstream https://bugs.launchpad.net/hplip/+bug/2028001 -Patch69: hplip-no-readfp.patch # fix SyntaxWarning from python3.12 # https://bugs.launchpad.net/hplip/+bug/2029480 -Patch70: hplip-use-raw-strings.patch +Patch69: hplip-use-raw-strings.patch # FTBFS GCC 14 # https://bugs.launchpad.net/hplip/+bug/2048780 -Patch71: hplip-hpaio-gcc14.patch +Patch70: hplip-hpaio-gcc14.patch # format is no longer method in locale module # https://bugs.launchpad.net/hplip/+bug/2045507 -Patch72: hplip-locale-format.patch +Patch71: hplip-locale-format.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -585,18 +582,15 @@ done # switch to curl by downstream patch from wget to workaround openstack dropping IPv6 # which causes great delays... %patch -P 68 -p1 -b .curl-switch -# 2221311 - [python3.12] hplip tools/binaries crash due depending on removed configparser.readfp() -# Upstream https://bugs.launchpad.net/hplip/+bug/2028001 -%patch -P 69 -p1 -b .no-readfp # fix warnings # upstream https://bugs.launchpad.net/hplip/+bug/2029480 -%patch -P 70 -p1 -b .raw-strings +%patch -P 69 -p1 -b .raw-strings # FTBFS GCC 14 # https://bugs.launchpad.net/hplip/+bug/2048780 -%patch -P 71 -p1 -b .hpaio-gcc14 +%patch -P 70 -p1 -b .hpaio-gcc14 # format is no longer method in locale module # https://bugs.launchpad.net/hplip/+bug/2045507 -%patch -P 72 -p1 -b .locale-format +%patch -P 71 -p1 -b .locale-format # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -968,6 +962,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Tue Jul 23 2024 Zdenek Dohnal - 3.24.4-1 +- 2292623 - hplip-3.24.4 is available + * Thu Jul 18 2024 Fedora Release Engineering - 3.23.12-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/sources b/sources index c2976ff..d883a96 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hplip-3.23.12-repack.tar.gz) = 7e4713e5769a59e686aeada778b91ec65a6f8a2e393bd13473fb77be4ef1e1c470ae355b22ffa13f4f2e2353533f6a855b9749a267543d2dfb1f630724fb7100 +SHA512 (hplip-3.24.4-repack.tar.gz) = 7a1c0024ec3703a9e36ef50c873c7c959eb0be646e53f517d9234b5a961ef7a7a0a646bc28dee533d3b12583b12f527d5ac2bd457272053ddc4b22e745b57b63 From 46b95935766e634c1809101d431ffda8e192f931 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 26 Jul 2024 06:50:48 +0200 Subject: [PATCH 60/84] Add rpminspect.yaml to waive badfuncs of rpminspect --- rpminspect.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 rpminspect.yaml diff --git a/rpminspect.yaml b/rpminspect.yaml new file mode 100644 index 0000000..30264bb --- /dev/null +++ b/rpminspect.yaml @@ -0,0 +1,10 @@ +--- +badfuncs: + allowed: + # printers usually do not live on networks which would require + # IPv6 due having too many hosts on one network, so it is not + # a priority to have IPv6 support. + # It is reported upstream at https://bugzilla.redhat.com/show_bug.cgi?id=2275938 + /usr/lib64/libhpmud.so.*: + - gethostbyname + - inet_addr From 489909d19a621a93c2f96e9a79279d2eefe01bb8 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 26 Jul 2024 08:46:15 +0200 Subject: [PATCH 61/84] rpminspect.yaml: include /usr/lib/ too --- rpminspect.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpminspect.yaml b/rpminspect.yaml index 30264bb..3092346 100644 --- a/rpminspect.yaml +++ b/rpminspect.yaml @@ -5,6 +5,6 @@ badfuncs: # IPv6 due having too many hosts on one network, so it is not # a priority to have IPv6 support. # It is reported upstream at https://bugzilla.redhat.com/show_bug.cgi?id=2275938 - /usr/lib64/libhpmud.so.*: + /usr/lib*/libhpmud.so.*: - gethostbyname - inet_addr From ee555b54afda4badbb5044fa36235460ed3ec111 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 26 Jul 2024 08:50:57 +0200 Subject: [PATCH 62/84] Update plans --- gating.yaml | 6 +++--- plans.fmf | 37 +++++++++++++++++++++++++++++++++++++ plans/public.fmf | 6 ------ plans/tier1-internal.fmf | 12 ------------ 4 files changed, 40 insertions(+), 21 deletions(-) create mode 100644 plans.fmf delete mode 100644 plans/public.fmf delete mode 100644 plans/tier1-internal.fmf diff --git a/gating.yaml b/gating.yaml index 3c35f7d..71d105b 100644 --- a/gating.yaml +++ b/gating.yaml @@ -4,7 +4,7 @@ product_versions: decision_context: bodhi_update_push_testing subject_type: koji_build rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/public.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional} #Rawhide --- !Policy @@ -13,7 +13,7 @@ product_versions: decision_context: bodhi_update_push_stable subject_type: koji_build rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/public.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional} #gating rhel --- !Policy @@ -21,5 +21,5 @@ product_versions: - rhel-* decision_context: osci_compose_gate rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-public.functional} - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional} - - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/public.functional} diff --git a/plans.fmf b/plans.fmf new file mode 100644 index 0000000..deb443d --- /dev/null +++ b/plans.fmf @@ -0,0 +1,37 @@ +/tier1-internal: + plan: + import: + url: https://src.fedoraproject.org/tests/hplip.git + name: /plans/tier1/internal + +/tier1-public: + plan: + import: + url: https://src.fedoraproject.org/tests/hplip.git + name: /plans/tier1/public + +/tier2-tier3-internal: + plan: + import: + url: https://src.fedoraproject.org/tests/hplip.git + name: /plans/tier2-tier3/internal + +/tier2-tier3-public: + plan: + import: + url: https://src.fedoraproject.org/tests/hplip.git + name: /plans/tier2-tier3/public + + +/others-internal: + plan: + import: + url: https://src.fedoraproject.org/tests/hplip.git + name: /plans/others/internal + +/others-public: + plan: + import: + url: https://src.fedoraproject.org/tests/hplip.git + name: /plans/others/public + diff --git a/plans/public.fmf b/plans/public.fmf deleted file mode 100644 index 8dee615..0000000 --- a/plans/public.fmf +++ /dev/null @@ -1,6 +0,0 @@ -summary: Test plan that runs all tests from hplip tests repo. -discover: - how: fmf - url: https://src.fedoraproject.org/tests/hplip.git -execute: - how: tmt diff --git a/plans/tier1-internal.fmf b/plans/tier1-internal.fmf deleted file mode 100644 index 0e4d1c9..0000000 --- a/plans/tier1-internal.fmf +++ /dev/null @@ -1,12 +0,0 @@ -summary: CI plan, picks internal Tier1 tests, runs in beakerlib. -discover: - - name: rhel - how: fmf - filter: 'tier: 1' - url: https://pkgs.devel.redhat.com/git/tests/hplip -execute: - how: tmt -adjust: - enabled: false - when: distro == centos-stream or distro == fedora - because: They don't have access to internal repos. From 25bd7772e9e14c4dd71fd472b89b4c162fd58c23 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jan 2025 06:01:15 +0000 Subject: [PATCH 63/84] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index bb82ef9..a0db0ff 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.24.4 -Release: 1%{?dist} +Release: 2%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -962,6 +962,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Fri Jan 17 2025 Fedora Release Engineering - 3.24.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Tue Jul 23 2024 Zdenek Dohnal - 3.24.4-1 - 2292623 - hplip-3.24.4 is available From b6d5d449574dd35347a4870f70f96b4ec53d4de0 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 24 Jan 2025 10:34:06 +0100 Subject: [PATCH 64/84] fix FTBFS (fedora#2340616) --- hplip-gcc15-stdc23.patch | 13 +++++++++++++ hplip.spec | 8 ++++++++ 2 files changed, 21 insertions(+) create mode 100644 hplip-gcc15-stdc23.patch diff --git a/hplip-gcc15-stdc23.patch b/hplip-gcc15-stdc23.patch new file mode 100644 index 0000000..a18f245 --- /dev/null +++ b/hplip-gcc15-stdc23.patch @@ -0,0 +1,13 @@ +diff --git a/scan/sane/ledmi.h b/scan/sane/ledmi.h +index a987c5d..f72847b 100644 +--- a/scan/sane/ledmi.h ++++ b/scan/sane/ledmi.h +@@ -162,7 +162,7 @@ struct ledm_session + int bb_open(struct ledm_session*); + int bb_close(struct ledm_session*); + int bb_get_parameters(struct ledm_session*, SANE_Parameters*, int); +-int bb_is_paper_in_adf(); /* 0 = no paper in adf, 1 = paper in adf, -1 = error */ ++int bb_is_paper_in_adf(struct ledm_session*); /* 0 = no paper in adf, 1 = paper in adf, -1 = error */ + SANE_Status bb_start_scan(struct ledm_session*); + int bb_get_image_data(struct ledm_session*, int); + int bb_end_page(struct ledm_session*, int); diff --git a/hplip.spec b/hplip.spec index a0db0ff..6ef3b80 100644 --- a/hplip.spec +++ b/hplip.spec @@ -238,6 +238,9 @@ Patch70: hplip-hpaio-gcc14.patch # format is no longer method in locale module # https://bugs.launchpad.net/hplip/+bug/2045507 Patch71: hplip-locale-format.patch +# function prototype did not specify argument's data types +# https://bugs.launchpad.net/hplip/+bug/2096650 +Patch72: hplip-gcc15-stdc23.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -591,6 +594,8 @@ done # format is no longer method in locale module # https://bugs.launchpad.net/hplip/+bug/2045507 %patch -P 71 -p1 -b .locale-format +# https://bugs.launchpad.net/hplip/+bug/2096650 +%patch -P 72 -p1 -b .gcc-strc23 # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -962,6 +967,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Fri Jan 24 2025 Zdenek Dohnal - 3.24.4-2 +- fix FTBFS (fedora#2340616) + * Fri Jan 17 2025 Fedora Release Engineering - 3.24.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 690f2e34e856c42477e3fcf589c9513d50446d1f Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 11 Feb 2025 11:35:11 +0100 Subject: [PATCH 65/84] Require setup for lp group --- hplip.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index 6ef3b80..8f09058 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.24.4 -Release: 2%{?dist} +Release: 3%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -316,6 +316,8 @@ Requires: python3-dbus %if 0%{?rhel} <= 8 || 0%{?fedora} Requires: python3-pillow %endif +# user+group lp +Requires: setup # /usr/lib/udev/rules.d Requires: systemd # 1788643 - Fedora minimal does not ship tar by default @@ -967,6 +969,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Tue Feb 11 2025 Zdenek Dohnal - 3.24.4-3 +- require setup because of lp group + * Fri Jan 24 2025 Zdenek Dohnal - 3.24.4-2 - fix FTBFS (fedora#2340616) From 4a5cbec2d343c943d625d1440a67f3bb5a6e4ff9 Mon Sep 17 00:00:00 2001 From: "Brian J. Murrell" Date: Sat, 1 Mar 2025 17:20:18 +0000 Subject: [PATCH 66/84] curl needs --location to follow redirects In the patch, only one of the curl commands is using the --location argument to direct curl to follow 301 redirects. All curl invocations need to use that argument. Signed-off-by: Brian J. Murrell --- hplip-plugin-curl.patch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hplip-plugin-curl.patch b/hplip-plugin-curl.patch index 023e528..380ce9b 100644 --- a/hplip-plugin-curl.patch +++ b/hplip-plugin-curl.patch @@ -32,7 +32,7 @@ index 56683fb..031ceec 100755 - cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,src) + curl = utils.which("curl", True) + if curl: -+ cmd = "%s --create-dirs -O --output-dir %s %s" % (curl,self.__plugin_path,src) ++ cmd = "%s --create-dirs -O --output-dir %s --location %s" % (curl,self.__plugin_path,src) log.debug(cmd) status, output = utils.run(cmd) - log.debug("wget returned: %d" % status) @@ -43,7 +43,7 @@ index 56683fb..031ceec 100755 src = os.path.join(PLUGIN_FALLBACK_LOCATION, self.__plugin_name) log.info("Plugin is not accessible. Trying to download it from fallback location: [%s]" % src) - cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,src) -+ cmd = "%s --create-dirs -O --output-dir %s %s" % (curl,self.__plugin_path,src) ++ cmd = "%s --create-dirs -O --output-dir %s --location %s" % (curl,self.__plugin_path,src) log.debug(cmd) status, output = utils.run(cmd) @@ -52,7 +52,7 @@ index 56683fb..031ceec 100755 status, filename = utils.download_from_network(digsig_url, digsig_file, True) else: - cmd = "%s --cache=off -P %s %s" % (wget,self.__plugin_path,digsig_url) -+ cmd = "%s --create-dirs -O --output-dir %s %s" % (curl, self.__plugin_path,digsig_url) ++ cmd = "%s --create-dirs -O --output-dir %s --location %s" % (curl, self.__plugin_path,digsig_url) log.debug(cmd) status, output = utils.run(cmd) except IOError as e: From b549b17216ae294de8b2740e780800af5e390761 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 3 Mar 2025 14:32:38 +0100 Subject: [PATCH 67/84] enable following links with curl in all use cases (fedora#2349177) --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index 8f09058..f3011a5 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.24.4 -Release: 3%{?dist} +Release: 4%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -969,6 +969,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Mon Mar 03 2025 Zdenek Dohnal - 3.24.4-4 +- enable following links with curl in all use cases (fedora#2349177) + * Tue Feb 11 2025 Zdenek Dohnal - 3.24.4-3 - require setup because of lp group From c5b4c3d5cb00abc83f1d0aba435cf167dff539be Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Wed, 2 Apr 2025 09:35:29 +0200 Subject: [PATCH 68/84] hp-plugin-download did not follow redirections and was missing '-o' in grep --- hp-plugin.in | 6 +++--- hplip.spec | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/hp-plugin.in b/hp-plugin.in index 48ab3b9..1c0a827 100644 --- a/hp-plugin.in +++ b/hp-plugin.in @@ -16,7 +16,7 @@ download() { SOURCE="$1" - @bindir@/curl --create-dirs -O --output-dir ~/.hplip ${SOURCE} + @bindir@/curl --create-dirs -O --output-dir ~/.hplip --location ${SOURCE} } # link to the plugin @@ -34,13 +34,13 @@ for link in ${PLUGIN_SOURCE} ${FALLBACK_SOURCE} do download ${link} - if test "x$(file --mime ~/.hplip/${PLUGIN_FILE} | grep 'text/x-shellscript')" = "xtext/x-shellscript" + if test "x$(file --mime ~/.hplip/${PLUGIN_FILE} | grep -o 'text/x-shellscript')" = "xtext/x-shellscript" then break fi done -if test "x$(file --mime ~/.hplip/${PLUGIN_FILE} | grep 'text/x-shellscript')" = "x" +if test "x$(file --mime ~/.hplip/${PLUGIN_FILE} | grep -o 'text/x-shellscript')" = "x" then @bindir@/echo "The downloaded file does not exist or is not a shell script - error during downloading, exiting..." exit 1 diff --git a/hplip.spec b/hplip.spec index f3011a5..bf91d8a 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.24.4 -Release: 4%{?dist} +Release: 5%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -969,6 +969,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Wed Apr 02 2025 Zdenek Dohnal - 3.24.4-5 +- hp-plugin-download did not follow redirections and was missing '-o' in grep + * Mon Mar 03 2025 Zdenek Dohnal - 3.24.4-4 - enable following links with curl in all use cases (fedora#2349177) From ea1621b02f742057f7efbe4cab4b38888e83505a Mon Sep 17 00:00:00 2001 From: "FeRD (Frank Dana)" Date: Wed, 2 Apr 2025 17:26:07 +0200 Subject: [PATCH 69/84] Format QDateTime strings in Status History table, elsewhere --- hplip-format-qdatetime.patch | 53 ++++++++++++++++++++++++++++++++++++ hplip.spec | 8 ++++++ 2 files changed, 61 insertions(+) create mode 100644 hplip-format-qdatetime.patch diff --git a/hplip-format-qdatetime.patch b/hplip-format-qdatetime.patch new file mode 100644 index 0000000..9517e65 --- /dev/null +++ b/hplip-format-qdatetime.patch @@ -0,0 +1,53 @@ +From 839a216f17ce17a5667eecd54de2a70b1383df2c Mon Sep 17 00:00:00 2001 +From: "FeRD (Frank Dana)" +Date: Wed, 5 Jan 2022 21:57:06 -0500 +Subject: [PATCH 1/2] Info dlg: Use QDateTime.toString() + +--- + ui5/infodialog.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ui5/infodialog.py b/ui5/infodialog.py +index 0de62fb..eaa846d 100644 +--- a/ui5/infodialog.py ++++ b/ui5/infodialog.py +@@ -186,7 +186,7 @@ class InfoDialog(QDialog, Ui_Dialog): + for row, h in enumerate(history): + dt = QDateTime() + dt.setTime_t(int(h.timedate)) +- dt = value_str(dt) ++ dt = value_str(dt.toString()) + + ess = device.queryString(h.event_code, 0) + +-- +2.33.1 + +From f6e7ab1542afe7fbcd2d29b6cb15b97484e3779c Mon Sep 17 00:00:00 2001 +From: "FeRD (Frank Dana)" +Date: Wed, 5 Jan 2022 21:56:39 -0500 +Subject: [PATCH 2/2] value_str: Handle QDateTime correctly + +--- + ui5/ui_utils.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/ui5/ui_utils.py b/ui5/ui_utils.py +index caba339..225ca1c 100644 +--- a/ui5/ui_utils.py ++++ b/ui5/ui_utils.py +@@ -105,7 +105,10 @@ def value_str(data): + if data is None: + return "" + try: +- if not PY3: ++ if PY3: ++ if isinstance(data, QDateTime): ++ data = data.toString() ++ else: + try: + data = data.toString() + except AttributeError as e: +-- +2.33.1 + diff --git a/hplip.spec b/hplip.spec index bf91d8a..bbe9a4e 100644 --- a/hplip.spec +++ b/hplip.spec @@ -241,6 +241,9 @@ Patch71: hplip-locale-format.patch # function prototype did not specify argument's data types # https://bugs.launchpad.net/hplip/+bug/2096650 Patch72: hplip-gcc15-stdc23.patch +# status history table shows unformatted QDateTime values +# https://bugs.launchpad.net/hplip/+bug/1956547 +Patch73: hplip-format-qdatetime.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -598,6 +601,8 @@ done %patch -P 71 -p1 -b .locale-format # https://bugs.launchpad.net/hplip/+bug/2096650 %patch -P 72 -p1 -b .gcc-strc23 +# https://bugs.launchpad.net/hplip/+bug/1956547 +%patch -P 73 -p1 -b .format-qdatetime # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -969,6 +974,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Wed Apr 02 2025 FeRD (Frank Dana) - 3.24.4-5 +- Format QDateTime strings in Status History table, elsewhere + * Wed Apr 02 2025 Zdenek Dohnal - 3.24.4-5 - hp-plugin-download did not follow redirections and was missing '-o' in grep From 8104c07571940e12c97025aeb6a61f5d0d79cf91 Mon Sep 17 00:00:00 2001 From: "FeRD (Frank Dana)" Date: Thu, 3 Apr 2025 14:47:14 +0200 Subject: [PATCH 70/84] Use weak rich dependency for hplip-gui --- hplip.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hplip.spec b/hplip.spec index bbe9a4e..125041d 100644 --- a/hplip.spec +++ b/hplip.spec @@ -296,6 +296,10 @@ BuildRequires: sane-backends-devel # macros: %%{_tmpfilesdir}, %%{_udevrulesdir} BuildRequires: systemd +%if 0%{?fedora} || 0%{?rhel} <= 8 +Recommends: (%{name}-gui%{?_isa} = %{version}-%{release} if qt5-qtbase-gui%{?_isa}) +Suggests: hplip-gui +%endif # uses avahi-browse for discovering IPP-over-USB printers Recommends: avahi-tools # 1733449 - Scanner on an HP AIO printer is not detected unless libsane-hpaio is installed @@ -974,6 +978,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Apr 03 2025 FeRD (Frank Dana) - 3.24.4-5 +- Use weak rich dependency for hplip-gui + * Wed Apr 02 2025 FeRD (Frank Dana) - 3.24.4-5 - Format QDateTime strings in Status History table, elsewhere From f08eed6ffd4dd009c7d80833727e18345fbf2678 Mon Sep 17 00:00:00 2001 From: "FeRD (Frank Dana)" Date: Thu, 3 Apr 2025 14:22:17 -0400 Subject: [PATCH 71/84] hp-plugin: Use rpm queryformat to get version Eliminates dependency on gawk. --- hp-plugin.in | 4 ++-- hplip.spec | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/hp-plugin.in b/hp-plugin.in index 1c0a827..5bdbab0 100644 --- a/hp-plugin.in +++ b/hp-plugin.in @@ -1,7 +1,7 @@ #!/usr/bin/bash -# get version from base hplip rpm - it is always in the second column -VER=$(@bindir@/rpm -q hplip | @bindir@/awk -F '-' '{print $2}') +# get version from base hplip rpm +VER=$(@bindir@/rpm -q hplip --queryformat='%{version}') if test "x$VER" = "x" then diff --git a/hplip.spec b/hplip.spec index 125041d..4baee16 100644 --- a/hplip.spec +++ b/hplip.spec @@ -313,8 +313,6 @@ Requires: cups # switch to curl by downstream patch from wget to workaround openstack dropping IPv6 # which causes great delays... Requires: curl -# for bash script acting as hp-plugin (Source7) -Requires: gawk # set require directly to /usr/bin/gpg, because gnupg2 and gnupg ships it, # but gnupg will be deprecated in the future Requires: %{_bindir}/gpg @@ -978,6 +976,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Apr 03 2025 FeRD (Frank Dana) - 3.24.5-5 +- hp-plugin: Use rpm queryformat to get version (no gawk dependency) + * Thu Apr 03 2025 FeRD (Frank Dana) - 3.24.4-5 - Use weak rich dependency for hplip-gui From 4cfd5e5ec3520d9d9af8c01e25258391effbac5b Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 11 Apr 2025 12:04:43 +0200 Subject: [PATCH 72/84] hplip-3.25.2 is available (fedora#2353147) --- .gitignore | 1 + hplip-covscan.patch | 138 +++++++------- hplip-pcardext-disable.patch | 25 +-- hplip-strncpy.patch | 31 ++-- hplip-use-raw-strings.patch | 339 ++++------------------------------- hplip.spec | 7 +- sources | 2 +- 7 files changed, 131 insertions(+), 412 deletions(-) diff --git a/.gitignore b/.gitignore index e99ac7f..c4e3a17 100644 --- a/.gitignore +++ b/.gitignore @@ -113,3 +113,4 @@ hplip-3.10.6.tar.gz /hplip-3.23.8-repack.tar.gz /hplip-3.23.12-repack.tar.gz /hplip-3.24.4-repack.tar.gz +/hplip-3.25.2-repack.tar.gz diff --git a/hplip-covscan.patch b/hplip-covscan.patch index 6c88581..29384dc 100644 --- a/hplip-covscan.patch +++ b/hplip-covscan.patch @@ -1,6 +1,6 @@ -diff -up hplip-3.23.3/common/utils.c.covscan hplip-3.23.3/common/utils.c ---- hplip-3.23.3/common/utils.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/common/utils.c 2023-05-29 13:58:10.969395214 +0200 +diff -up hplip-3.25.2/common/utils.c.covscan hplip-3.25.2/common/utils.c +--- hplip-3.25.2/common/utils.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/common/utils.c 2025-04-11 10:21:58.034950818 +0200 @@ -1,5 +1,9 @@ +#ifndef _GNU_SOURCE +#define _GNU_SOURCE @@ -12,10 +12,10 @@ diff -up hplip-3.23.3/common/utils.c.covscan hplip-3.23.3/common/utils.c #include #include #include -diff -up hplip-3.23.3/io/hpmud/hpmud.c.covscan hplip-3.23.3/io/hpmud/hpmud.c ---- hplip-3.23.3/io/hpmud/hpmud.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/io/hpmud/hpmud.c 2023-05-29 13:58:10.970395208 +0200 -@@ -759,6 +759,7 @@ enum HPMUD_RESULT hpmud_get_dstat(HPMUD_ +diff -up hplip-3.25.2/io/hpmud/hpmud.c.covscan hplip-3.25.2/io/hpmud/hpmud.c +--- hplip-3.25.2/io/hpmud/hpmud.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/io/hpmud/hpmud.c 2025-04-11 10:21:58.035151792 +0200 +@@ -769,6 +769,7 @@ enum HPMUD_RESULT hpmud_get_dstat(HPMUD_ } strncpy(ds->uri, msp->device[dd].uri, sizeof(ds->uri)); @@ -23,9 +23,9 @@ diff -up hplip-3.23.3/io/hpmud/hpmud.c.covscan hplip-3.23.3/io/hpmud/hpmud.c ds->io_mode = msp->device[dd].io_mode; ds->channel_cnt = msp->device[dd].channel_cnt; ds->mlc_up = msp->device[dd].mlc_up; -diff -up hplip-3.23.3/io/hpmud/jd.c.covscan hplip-3.23.3/io/hpmud/jd.c ---- hplip-3.23.3/io/hpmud/jd.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/io/hpmud/jd.c 2023-05-29 13:58:10.970395208 +0200 +diff -up hplip-3.25.2/io/hpmud/jd.c.covscan hplip-3.25.2/io/hpmud/jd.c +--- hplip-3.25.2/io/hpmud/jd.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/io/hpmud/jd.c 2025-04-11 10:21:58.035328288 +0200 @@ -31,6 +31,7 @@ #endif @@ -34,9 +34,9 @@ diff -up hplip-3.23.3/io/hpmud/jd.c.covscan hplip-3.23.3/io/hpmud/jd.c #include "hpmud.h" #include "hpmudi.h" -diff -up hplip-3.23.3/io/hpmud/model.c.covscan hplip-3.23.3/io/hpmud/model.c ---- hplip-3.23.3/io/hpmud/model.c.covscan 2023-05-29 13:58:10.958395279 +0200 -+++ hplip-3.23.3/io/hpmud/model.c 2023-05-29 13:58:10.970395208 +0200 +diff -up hplip-3.25.2/io/hpmud/model.c.covscan hplip-3.25.2/io/hpmud/model.c +--- hplip-3.25.2/io/hpmud/model.c.covscan 2025-04-11 10:21:58.023885145 +0200 ++++ hplip-3.25.2/io/hpmud/model.c 2025-04-11 10:21:58.035487541 +0200 @@ -117,6 +117,7 @@ static int ReadConfig() if (rcbuf[0] == '[') { @@ -53,9 +53,9 @@ diff -up hplip-3.23.3/io/hpmud/model.c.covscan hplip-3.23.3/io/hpmud/model.c break; /* done */ } } -diff -up hplip-3.23.3/io/hpmud/musb.c.covscan hplip-3.23.3/io/hpmud/musb.c ---- hplip-3.23.3/io/hpmud/musb.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/io/hpmud/musb.c 2023-05-29 13:58:10.970395208 +0200 +diff -up hplip-3.25.2/io/hpmud/musb.c.covscan hplip-3.25.2/io/hpmud/musb.c +--- hplip-3.25.2/io/hpmud/musb.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/io/hpmud/musb.c 2025-04-11 10:21:58.035717762 +0200 @@ -776,7 +776,7 @@ static int device_id(int fd, unsigned ch len = size-1; /* leave byte for zero termination */ if (len > 2) @@ -65,9 +65,9 @@ diff -up hplip-3.23.3/io/hpmud/musb.c.covscan hplip-3.23.3/io/hpmud/musb.c buffer[len]=0; DBG("read actual device_id successfully fd=%d len=%d\n", fd, len); -diff -up hplip-3.23.3/io/hpmud/pp.c.covscan hplip-3.23.3/io/hpmud/pp.c ---- hplip-3.23.3/io/hpmud/pp.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/io/hpmud/pp.c 2023-05-29 13:58:10.970395208 +0200 +diff -up hplip-3.25.2/io/hpmud/pp.c.covscan hplip-3.25.2/io/hpmud/pp.c +--- hplip-3.25.2/io/hpmud/pp.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/io/hpmud/pp.c 2025-04-11 10:21:58.035977040 +0200 @@ -632,7 +632,7 @@ static int device_id(int fd, char *buffe len = size-1; /* leave byte for zero termination */ if (len > 2) @@ -77,9 +77,9 @@ diff -up hplip-3.23.3/io/hpmud/pp.c.covscan hplip-3.23.3/io/hpmud/pp.c buffer[len]=0; DBG("read actual device_id successfully fd=%d len=%d\n", fd, len); -diff -up hplip-3.23.3/Makefile.am.covscan hplip-3.23.3/Makefile.am ---- hplip-3.23.3/Makefile.am.covscan 2023-05-29 13:58:10.944395361 +0200 -+++ hplip-3.23.3/Makefile.am 2023-05-29 13:58:10.969395214 +0200 +diff -up hplip-3.25.2/Makefile.am.covscan hplip-3.25.2/Makefile.am +--- hplip-3.25.2/Makefile.am.covscan 2025-04-11 10:21:58.010155532 +0200 ++++ hplip-3.25.2/Makefile.am 2025-04-11 10:22:52.826357214 +0200 @@ -3,7 +3,7 @@ # # (c) 2004-2015 Copyright HP Development Company, LP @@ -90,7 +90,7 @@ diff -up hplip-3.23.3/Makefile.am.covscan hplip-3.23.3/Makefile.am CXXFLAGS+= -DCONFDIR=\"$(hplip_confdir)\" @@ -310,7 +310,7 @@ dist_pcard_DATA = pcard/__init__.py pcar - pcardextdir = $(pyexecdir) + pcardextdir = $(PYTHONEXECDIR) pcardext_LTLIBRARIES = pcardext.la pcardext_la_LDFLAGS = -module -avoid-version -pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c @@ -107,9 +107,9 @@ diff -up hplip-3.23.3/Makefile.am.covscan hplip-3.23.3/Makefile.am libhpipp_la_LDFLAGS = -version-info 0:1:0 libhpipp_la_LIBADD = libhpmud.la -diff -up hplip-3.23.3/pcard/fat.c.covscan hplip-3.23.3/pcard/fat.c ---- hplip-3.23.3/pcard/fat.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/pcard/fat.c 2023-05-29 13:58:10.971395203 +0200 +diff -up hplip-3.25.2/pcard/fat.c.covscan hplip-3.25.2/pcard/fat.c +--- hplip-3.25.2/pcard/fat.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/pcard/fat.c 2025-04-11 10:21:58.036450105 +0200 @@ -519,14 +519,17 @@ int FatFreeSpace(void) int FatDiskAttributes( PHOTO_CARD_ATTRIBUTES * pa ) @@ -139,9 +139,9 @@ diff -up hplip-3.23.3/pcard/fat.c.covscan hplip-3.23.3/pcard/fat.c cwd.StartSector = ConvertClusterToSector(fa.StartCluster); cwd.CurrSector = cwd.StartSector; cwd.StartCluster = fa.StartCluster; -diff -up hplip-3.23.3/prnt/hpijs/context2.cpp.covscan hplip-3.23.3/prnt/hpijs/context2.cpp ---- hplip-3.23.3/prnt/hpijs/context2.cpp.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/prnt/hpijs/context2.cpp 2023-05-29 13:58:10.971395203 +0200 +diff -up hplip-3.25.2/prnt/hpijs/context2.cpp.covscan hplip-3.25.2/prnt/hpijs/context2.cpp +--- hplip-3.25.2/prnt/hpijs/context2.cpp.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/prnt/hpijs/context2.cpp 2025-04-11 10:21:58.036656862 +0200 @@ -1302,6 +1302,7 @@ DRIVER_ERROR PrintContext::SelectDevice if(0 == strnlen((const char *)pSS->strDevID, DevIDBuffSize)) { @@ -150,9 +150,9 @@ diff -up hplip-3.23.3/prnt/hpijs/context2.cpp.covscan hplip-3.23.3/prnt/hpijs/co } thePrinter = pPFI->CreatePrinter (pSS, familyHandle); if (thePrinter->constructor_error != NO_ERROR) -diff -up hplip-3.23.3/prnt/hpijs/systemservices.cpp.covscan hplip-3.23.3/prnt/hpijs/systemservices.cpp ---- hplip-3.23.3/prnt/hpijs/systemservices.cpp.covscan 2023-03-28 09:26:27.000000000 +0200 -+++ hplip-3.23.3/prnt/hpijs/systemservices.cpp 2023-05-29 13:58:10.971395203 +0200 +diff -up hplip-3.25.2/prnt/hpijs/systemservices.cpp.covscan hplip-3.25.2/prnt/hpijs/systemservices.cpp +--- hplip-3.25.2/prnt/hpijs/systemservices.cpp.covscan 2025-02-27 13:12:44.000000000 +0100 ++++ hplip-3.25.2/prnt/hpijs/systemservices.cpp 2025-04-11 10:21:58.036891582 +0200 @@ -396,7 +396,10 @@ void SystemServices::AdjustIO(IO_MODE IM IOMode.bDevID =IM.bDevID && IOMode.bDevID; @@ -164,10 +164,10 @@ diff -up hplip-3.23.3/prnt/hpijs/systemservices.cpp.covscan hplip-3.23.3/prnt/hp } APDK_END_NAMESPACE -diff -up hplip-3.23.3/prnt/hpps/hppsfilter.c.covscan hplip-3.23.3/prnt/hpps/hppsfilter.c ---- hplip-3.23.3/prnt/hpps/hppsfilter.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/prnt/hpps/hppsfilter.c 2023-05-29 13:58:10.972395197 +0200 -@@ -274,13 +274,13 @@ static void WriteHeader(char **argument) +diff -up hplip-3.25.2/prnt/hpps/hppsfilter.c.covscan hplip-3.25.2/prnt/hpps/hppsfilter.c +--- hplip-3.25.2/prnt/hpps/hppsfilter.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/prnt/hpps/hppsfilter.c 2025-04-11 10:21:58.037072084 +0200 +@@ -329,13 +329,13 @@ static void WriteHeader(char **argument) /* Writing Header Information argument[1] = JOB ID , argument[2]= USERNAME, argument[3] = TITLE */ hpwrite("\x1b%-12345X@PJL JOBNAME=", strlen("\x1b%-12345X@PJL JOBNAME=")); @@ -184,9 +184,9 @@ diff -up hplip-3.23.3/prnt/hpps/hppsfilter.c.covscan hplip-3.23.3/prnt/hpps/hpps hpwrite(buffer, strlen(buffer)); fprintf(stderr, "HP PS filter func = WriteHeader : WRITING PJL HEADER INFO\n"); return; -diff -up hplip-3.23.3/protocol/hp_ipp.h.covscan hplip-3.23.3/protocol/hp_ipp.h ---- hplip-3.23.3/protocol/hp_ipp.h.covscan 2023-05-29 13:58:10.972395197 +0200 -+++ hplip-3.23.3/protocol/hp_ipp.h 2023-05-29 13:59:03.645085468 +0200 +diff -up hplip-3.25.2/protocol/hp_ipp.h.covscan hplip-3.25.2/protocol/hp_ipp.h +--- hplip-3.25.2/protocol/hp_ipp.h.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/protocol/hp_ipp.h 2025-04-11 10:21:58.037239020 +0200 @@ -168,6 +168,11 @@ HPIPP_RESULT parseResponseHeader(char* h HPIPP_RESULT prepend_http_header(raw_ipp *raw_request,const char *resource); enum HPMUD_RESULT sendUSBRequest(char *buf, int size, raw_ipp *responseptr, char * device_uri); @@ -199,9 +199,9 @@ diff -up hplip-3.23.3/protocol/hp_ipp.h.covscan hplip-3.23.3/protocol/hp_ipp.h ipp_t * createFaxDetailRequest(const char *printer_name); ipp_t * getDeviceFaxModemAttributes(char* device_uri,char* printer_name, int *count); -diff -up hplip-3.23.3/scan/sane/bb_ledm.c.covscan hplip-3.23.3/scan/sane/bb_ledm.c ---- hplip-3.23.3/scan/sane/bb_ledm.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/scan/sane/bb_ledm.c 2023-05-29 13:58:10.972395197 +0200 +diff -up hplip-3.25.2/scan/sane/bb_ledm.c.covscan hplip-3.25.2/scan/sane/bb_ledm.c +--- hplip-3.25.2/scan/sane/bb_ledm.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/scan/sane/bb_ledm.c 2025-04-11 10:21:58.037378913 +0200 @@ -26,6 +26,7 @@ # include "http.h" # include "xml.h" @@ -210,9 +210,9 @@ diff -up hplip-3.23.3/scan/sane/bb_ledm.c.covscan hplip-3.23.3/scan/sane/bb_ledm # include -diff -up hplip-3.23.3/scan/sane/common.h.covscan hplip-3.23.3/scan/sane/common.h ---- hplip-3.23.3/scan/sane/common.h.covscan 2023-05-29 13:58:10.727396637 +0200 -+++ hplip-3.23.3/scan/sane/common.h 2023-05-29 13:58:10.972395197 +0200 +diff -up hplip-3.25.2/scan/sane/common.h.covscan hplip-3.25.2/scan/sane/common.h +--- hplip-3.25.2/scan/sane/common.h.covscan 2025-04-11 10:21:57.806326475 +0200 ++++ hplip-3.25.2/scan/sane/common.h 2025-04-11 10:21:58.037532413 +0200 @@ -36,7 +36,7 @@ #define _STRINGIZE(x) #x #define STRINGIZE(x) _STRINGIZE(x) @@ -222,9 +222,9 @@ diff -up hplip-3.23.3/scan/sane/common.h.covscan hplip-3.23.3/scan/sane/common.h #define BUG_DUMP(data, size) bugdump((data), (size)) #define BUG_SZ(args...) {syslog(LOG_ERR, args); DBG(2, args);} -diff -up hplip-3.23.3/scan/sane/escl.c.covscan hplip-3.23.3/scan/sane/escl.c ---- hplip-3.23.3/scan/sane/escl.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/scan/sane/escl.c 2023-05-29 13:58:10.972395197 +0200 +diff -up hplip-3.25.2/scan/sane/escl.c.covscan hplip-3.25.2/scan/sane/escl.c +--- hplip-3.25.2/scan/sane/escl.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/scan/sane/escl.c 2025-04-11 10:21:58.037677793 +0200 @@ -849,7 +849,7 @@ SANE_Status escl_control_option(SANE_Han //DBG8("escl_control_option (option=%s) action=%d\n", ps->option[option].name, action); if (stat != SANE_STATUS_GOOD) @@ -243,9 +243,9 @@ diff -up hplip-3.23.3/scan/sane/escl.c.covscan hplip-3.23.3/scan/sane/escl.c return; } -diff -up hplip-3.23.3/scan/sane/http.c.covscan hplip-3.23.3/scan/sane/http.c ---- hplip-3.23.3/scan/sane/http.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/scan/sane/http.c 2023-05-29 13:58:10.973395191 +0200 +diff -up hplip-3.25.2/scan/sane/http.c.covscan hplip-3.25.2/scan/sane/http.c +--- hplip-3.25.2/scan/sane/http.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/scan/sane/http.c 2025-04-11 10:21:58.037859247 +0200 @@ -36,6 +36,7 @@ #include #include @@ -254,9 +254,9 @@ diff -up hplip-3.23.3/scan/sane/http.c.covscan hplip-3.23.3/scan/sane/http.c #include "hpmud.h" #include "http.h" -diff -up hplip-3.23.3/scan/sane/io.c.covscan hplip-3.23.3/scan/sane/io.c ---- hplip-3.23.3/scan/sane/io.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/scan/sane/io.c 2023-05-29 13:58:10.973395191 +0200 +diff -up hplip-3.25.2/scan/sane/io.c.covscan hplip-3.25.2/scan/sane/io.c +--- hplip-3.25.2/scan/sane/io.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/scan/sane/io.c 2025-04-11 10:21:58.037998005 +0200 @@ -50,7 +50,7 @@ int __attribute__ ((visibility ("hidden" if (dbus_error_is_set(&dbus_err)) @@ -284,9 +284,9 @@ diff -up hplip-3.23.3/scan/sane/io.c.covscan hplip-3.23.3/scan/sane/io.c return 0; } -diff -up hplip-3.23.3/scan/sane/ledm.c.covscan hplip-3.23.3/scan/sane/ledm.c ---- hplip-3.23.3/scan/sane/ledm.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/scan/sane/ledm.c 2023-05-29 13:58:10.973395191 +0200 +diff -up hplip-3.25.2/scan/sane/ledm.c.covscan hplip-3.25.2/scan/sane/ledm.c +--- hplip-3.25.2/scan/sane/ledm.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/scan/sane/ledm.c 2025-04-11 10:21:58.038131991 +0200 @@ -813,7 +813,7 @@ SANE_Status ledm_control_option(SANE_Han if (stat != SANE_STATUS_GOOD) @@ -305,9 +305,9 @@ diff -up hplip-3.23.3/scan/sane/ledm.c.covscan hplip-3.23.3/scan/sane/ledm.c return; } -diff -up hplip-3.23.3/scan/sane/marvell.c.covscan hplip-3.23.3/scan/sane/marvell.c ---- hplip-3.23.3/scan/sane/marvell.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/scan/sane/marvell.c 2023-05-29 13:58:10.976395173 +0200 +diff -up hplip-3.25.2/scan/sane/marvell.c.covscan hplip-3.25.2/scan/sane/marvell.c +--- hplip-3.25.2/scan/sane/marvell.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/scan/sane/marvell.c 2025-04-11 10:21:58.038309394 +0200 @@ -134,7 +134,7 @@ static int get_ip_data(struct marvell_se if (!ps->ip_handle) @@ -407,9 +407,9 @@ diff -up hplip-3.23.3/scan/sane/marvell.c.covscan hplip-3.23.3/scan/sane/marvell goto bugout; } -diff -up hplip-3.23.3/scan/sane/sclpml.c.covscan hplip-3.23.3/scan/sane/sclpml.c ---- hplip-3.23.3/scan/sane/sclpml.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/scan/sane/sclpml.c 2023-05-29 13:58:10.976395173 +0200 +diff -up hplip-3.25.2/scan/sane/sclpml.c.covscan hplip-3.25.2/scan/sane/sclpml.c +--- hplip-3.25.2/scan/sane/sclpml.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/scan/sane/sclpml.c 2025-04-11 10:21:58.038605168 +0200 @@ -30,6 +30,7 @@ #include #include @@ -427,9 +427,9 @@ diff -up hplip-3.23.3/scan/sane/sclpml.c.covscan hplip-3.23.3/scan/sane/sclpml.c return; } -diff -up hplip-3.23.3/scan/sane/soap.c.covscan hplip-3.23.3/scan/sane/soap.c ---- hplip-3.23.3/scan/sane/soap.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/scan/sane/soap.c 2023-05-29 13:58:10.977395167 +0200 +diff -up hplip-3.25.2/scan/sane/soap.c.covscan hplip-3.25.2/scan/sane/soap.c +--- hplip-3.25.2/scan/sane/soap.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/scan/sane/soap.c 2025-04-11 10:21:58.038894758 +0200 @@ -142,7 +142,7 @@ static int get_ip_data(struct soap_sessi if (!ps->ip_handle) @@ -520,9 +520,9 @@ diff -up hplip-3.23.3/scan/sane/soap.c.covscan hplip-3.23.3/scan/sane/soap.c goto bugout; } -diff -up hplip-3.23.3/scan/sane/soapht.c.covscan hplip-3.23.3/scan/sane/soapht.c ---- hplip-3.23.3/scan/sane/soapht.c.covscan 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/scan/sane/soapht.c 2023-05-29 13:58:10.977395167 +0200 +diff -up hplip-3.25.2/scan/sane/soapht.c.covscan hplip-3.25.2/scan/sane/soapht.c +--- hplip-3.25.2/scan/sane/soapht.c.covscan 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/scan/sane/soapht.c 2025-04-11 10:21:58.039106018 +0200 @@ -136,7 +136,7 @@ static int get_ip_data(struct soap_sessi if (!ps->ip_handle) diff --git a/hplip-pcardext-disable.patch b/hplip-pcardext-disable.patch index adcac1d..342c4d3 100644 --- a/hplip-pcardext-disable.patch +++ b/hplip-pcardext-disable.patch @@ -1,29 +1,12 @@ -The pcardext Python extension cannot be loaded because it has not been -ported to Python 3: - ->>> import pcardext -Traceback (most recent call last): - File "", line 1, in -ImportError: /usr/lib64/python3.11/site-packages/pcardext.so: undefined symbol: PyString_AsStringAndSize ->>> - -Stop building this extension because it breaks the build if the -compiler lacks support for implicit function declarations. - -Bug: - -Submitted upstream: - -diff --git a/Makefile.am b/Makefile.am -index ddac16a9dd514008..15d953af9150c09e 100644 ---- a/Makefile.am -+++ b/Makefile.am +diff -up hplip-3.25.2/Makefile.am.pcardext-disable hplip-3.25.2/Makefile.am +--- hplip-3.25.2/Makefile.am.pcardext-disable 2025-04-11 10:23:29.576593786 +0200 ++++ hplip-3.25.2/Makefile.am 2025-04-11 10:24:08.259842784 +0200 @@ -306,13 +306,6 @@ if !HPLIP_CLASS_DRIVER pcarddir = $(hplipdir)/pcard dist_pcard_DATA = pcard/__init__.py pcard/photocard.py -# pcardext --pcardextdir = $(pyexecdir) +-pcardextdir = $(PYTHONEXECDIR) -pcardext_LTLIBRARIES = pcardext.la -pcardext_la_LDFLAGS = -module -avoid-version -pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h diff --git a/hplip-strncpy.patch b/hplip-strncpy.patch index eac29b8..cbd262d 100644 --- a/hplip-strncpy.patch +++ b/hplip-strncpy.patch @@ -1,7 +1,7 @@ -diff -up hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp ---- hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp.strncpy 2015-01-21 16:52:44.066497631 +0000 -+++ hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp 2015-01-21 16:59:46.216434376 +0000 -@@ -203,6 +203,7 @@ HPCupsFilter::HPCupsFilter() : m_pPrinte +diff -up hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp +--- hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp.strncpy 2025-04-11 10:16:00.438702562 +0200 ++++ hplip-3.25.2/prnt/hpcups/HPCupsFilter.cpp 2025-04-11 10:21:25.088096376 +0200 +@@ -211,6 +211,7 @@ HPCupsFilter::HPCupsFilter() : m_pPrinte adj_k_width = 0; black_raster = NULL; color_raster = NULL; @@ -9,7 +9,7 @@ diff -up hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.14.10/prnt/h } HPCupsFilter::~HPCupsFilter() -@@ -384,9 +385,9 @@ DRIVER_ERROR HPCupsFilter::startPage (cu +@@ -428,15 +429,15 @@ DRIVER_ERROR HPCupsFilter::startPage (cu m_JA.media_attributes.physical_height = cups_header->PageSize[1]; m_JA.media_attributes.printable_width = ((cups_header->ImagingBoundingBox[2]-cups_header->ImagingBoundingBox[0]) * horz_res) / 72; m_JA.media_attributes.printable_height = ((cups_header->ImagingBoundingBox[3]-cups_header->ImagingBoundingBox[1]) * vert_res) / 72; @@ -20,11 +20,18 @@ diff -up hplip-3.14.10/prnt/hpcups/HPCupsFilter.cpp.strncpy hplip-3.14.10/prnt/h + strncpy(m_JA.media_attributes.MediaTypeName, cups_header->MediaType, sizeof(m_JA.media_attributes.MediaTypeName)-1); + strncpy(m_JA.quality_attributes.hbpl1_print_quality, cups_header->OutputType, sizeof(m_JA.quality_attributes.hbpl1_print_quality)-1); m_JA.color_mode = cups_header->cupsRowStep; + + if (m_JA.media_attributes.PageSizeName[0] == '\0') { + // Copy the value of cups_header->cupsPageSizeName if it isnot null + if (cups_header->cupsPageSizeName != nullptr) { +- strncpy(m_JA.media_attributes.PageSizeName, cups_header->cupsPageSizeName, sizeof(m_JA.media_attributes.PageSizeName)); ++ strncpy(m_JA.media_attributes.PageSizeName, cups_header->cupsPageSizeName, sizeof(m_JA.media_attributes.PageSizeName) - 1); + } + } } - else { -diff -up hplip-3.14.10/prnt/hpijs/hpijs.cpp.strncpy hplip-3.14.10/prnt/hpijs/hpijs.cpp ---- hplip-3.14.10/prnt/hpijs/hpijs.cpp.strncpy 2015-01-21 17:00:03.225512410 +0000 -+++ hplip-3.14.10/prnt/hpijs/hpijs.cpp 2015-01-21 17:04:59.308870785 +0000 +diff -up hplip-3.25.2/prnt/hpijs/hpijs.cpp.strncpy hplip-3.25.2/prnt/hpijs/hpijs.cpp +--- hplip-3.25.2/prnt/hpijs/hpijs.cpp.strncpy 2025-04-11 10:16:00.434453252 +0200 ++++ hplip-3.25.2/prnt/hpijs/hpijs.cpp 2025-04-11 10:16:00.501228045 +0200 @@ -605,7 +605,7 @@ int main (int argc, char *argv[], char * } @@ -34,9 +41,9 @@ diff -up hplip-3.14.10/prnt/hpijs/hpijs.cpp.strncpy hplip-3.14.10/prnt/hpijs/hpi #ifdef HAVE_LIBHPIP char *pDev; -diff -up hplip-3.14.10/prnt/hpijs/hpijsfax.cpp.strncpy hplip-3.14.10/prnt/hpijs/hpijsfax.cpp ---- hplip-3.14.10/prnt/hpijs/hpijsfax.cpp.strncpy 2015-01-21 17:05:06.585904171 +0000 -+++ hplip-3.14.10/prnt/hpijs/hpijsfax.cpp 2015-01-21 17:05:15.787946389 +0000 +diff -up hplip-3.25.2/prnt/hpijs/hpijsfax.cpp.strncpy hplip-3.25.2/prnt/hpijs/hpijsfax.cpp +--- hplip-3.25.2/prnt/hpijs/hpijsfax.cpp.strncpy 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/prnt/hpijs/hpijsfax.cpp 2025-04-11 10:16:00.501403513 +0200 @@ -282,7 +282,7 @@ int hpijsFaxServer (int argc, char **arg char user_name[32]={0,}; diff --git a/hplip-use-raw-strings.patch b/hplip-use-raw-strings.patch index 6777903..77d1b87 100644 --- a/hplip-use-raw-strings.patch +++ b/hplip-use-raw-strings.patch @@ -1,7 +1,8 @@ -diff --git a/base/LedmWifi.py b/base/LedmWifi.py -index f63a050..074d5a2 100644 ---- a/base/LedmWifi.py -+++ b/base/LedmWifi.py +diff -up hplip-3.25.2/base/device.py.raw-strings hplip-3.25.2/base/device.py +diff -up hplip-3.25.2/base/g.py.raw-strings hplip-3.25.2/base/g.py +diff -up hplip-3.25.2/base/LedmWifi.py.raw-strings hplip-3.25.2/base/LedmWifi.py +--- hplip-3.25.2/base/LedmWifi.py.raw-strings 2025-02-27 13:12:29.000000000 +0100 ++++ hplip-3.25.2/base/LedmWifi.py 2025-04-11 10:26:18.519166530 +0200 @@ -31,7 +31,7 @@ from .g import * from . import device, utils from .sixext import to_bytes_utf8 @@ -11,136 +12,12 @@ index f63a050..074d5a2 100644 HTTP_OK = 200 HTTP_ACCEPTED = 202 HTTP_NOCONTENT = 204 -diff --git a/base/device.py b/base/device.py -index fbe6c34..a551403 100644 ---- a/base/device.py -+++ b/base/device.py -@@ -47,7 +47,7 @@ from . import models, mdns, slp, avahi - from .strings import * - from .sixext import PY3, to_bytes_utf8, to_unicode, to_string_latin, to_string_utf8, xStringIO - --http_result_pat = re.compile("""HTTP/\d.\d\s(\d+)""", re.I) -+http_result_pat = re.compile(r"""HTTP/\d.\d\s(\d+)""", re.I) - - HTTP_OK = 200 - HTTP_ERROR = 500 -diff --git a/base/g.py b/base/g.py -index 96b3131..023aeea 100644 ---- a/base/g.py -+++ b/base/g.py -@@ -302,7 +302,7 @@ prop.hpcups_build = to_bool(sys_conf.get('configure', 'hpcups-install', '0')) - prop.hpijs_build = to_bool(sys_conf.get('configure', 'hpijs-install', '0')) - - # Spinner, ala Gentoo Portage --spinner = "\|/-\|/-" -+spinner = r"\|/-\|/-" - spinpos = 0 - enable_spinner = True - -@@ -352,7 +352,7 @@ def check_extension_module_env(ext_mod): - log.error('%s not present in the system. Please re-install HPLIP.' %ext_mod) - sys.exit(1) - -- m = re.search('python(\d(\.\d){0,2})', ext_path) #get the python version where the .so file is found -+ m = re.search(r'python(\d(\.\d){0,2})', ext_path) #get the python version where the .so file is found - ext_ver = xint(m.group(1)) - - if ext_ver[0] == 3: -diff --git a/base/logger.py b/base/logger.py -index dd92a9c..68e4f13 100644 ---- a/base/logger.py -+++ b/base/logger.py -@@ -437,10 +437,10 @@ class Logger(object): - start = start + " " - number_chars = number_chars + 1 - try: -- elem_start = re.findall("(\<\W{0,1}\w+) ?", line)[0] -- elem_finished = re.findall("([?|\]\]]*\>)", line)[0] -+ elem_start = re.findall(r"(\<\W{0,1}\w+) ?", line)[0] -+ elem_finished = re.findall(r"([?|\]\]]*\>)", line)[0] - #should not have * -- attrs = re.findall("(\S*?\=\".*?\")", line) -+ attrs = re.findall(r"(\S*?\=\".*?\")", line) - #output.write(start + elem_start) - self.log(start+elem_start, level, False) - number_chars = len(start + elem_start) -diff --git a/base/models.py b/base/models.py -index dc6cc39..48dd2ef 100644 ---- a/base/models.py -+++ b/base/models.py -@@ -35,7 +35,7 @@ except ImportError: - datetime = None - - --pat_prod_num = re.compile("""(\d+)""", re.I) -+pat_prod_num = re.compile(r"""(\d+)""", re.I) - - TYPE_UNKNOWN = 0 - TYPE_STRING = 1 -@@ -427,25 +427,25 @@ class ModelData: - } - - self.RE_FIELD_TYPES = { -- re.compile('^r(\d+)-agent(\d+)-kind', re.IGNORECASE) : TYPE_INT, -- re.compile('^r(\d+)-agent(\d+)-type', re.IGNORECASE) : TYPE_INT, -- re.compile('^r(\d+)-agent(\d+)-sku', re.IGNORECASE) : TYPE_STR, -- re.compile('^agent(\d+)-desc', re.IGNORECASE) : TYPE_STR, -- re.compile('^agent(\d+)-virgin', re.IGNORECASE) : TYPE_BOOL, -- re.compile('^agent(\d+)-dvc', re.IGNORECASE) : TYPE_INT, -- re.compile('^agent(\d+)-kind', re.IGNORECASE) : TYPE_INT, -- re.compile('^agent(\d+)-type', re.IGNORECASE) : TYPE_INT, -- re.compile('^agent(\d+)-id', re.IGNORECASE) : TYPE_INT, -- re.compile('^agent(\d+)-hp-ink', re.IGNORECASE) : TYPE_BOOL, -- re.compile('^agent(\d+)-health-desc', re.IGNORECASE) : TYPE_STR, -- re.compile('^agent(\d+)-health$', re.IGNORECASE) : TYPE_INT, -- re.compile('^agent(\d+)-known', re.IGNORECASE) : TYPE_BOOL, -- re.compile('^agent(\d+)-level', re.IGNORECASE) : TYPE_INT, -- re.compile('^agent(\d+)-ack', re.IGNORECASE) : TYPE_BOOL, -- re.compile('^agent(\d+)-sku', re.IGNORECASE) : TYPE_STR, -- re.compile('^in-tray(\d+)', re.IGNORECASE) : TYPE_BOOL, -- re.compile('^out-tray(\d+)', re.IGNORECASE) : TYPE_BOOL, -- re.compile('^model(\d+)', re.IGNORECASE) : TYPE_STR, -+ re.compile(r'^r(\d+)-agent(\d+)-kind', re.IGNORECASE) : TYPE_INT, -+ re.compile(r'^r(\d+)-agent(\d+)-type', re.IGNORECASE) : TYPE_INT, -+ re.compile(r'^r(\d+)-agent(\d+)-sku', re.IGNORECASE) : TYPE_STR, -+ re.compile(r'^agent(\d+)-desc', re.IGNORECASE) : TYPE_STR, -+ re.compile(r'^agent(\d+)-virgin', re.IGNORECASE) : TYPE_BOOL, -+ re.compile(r'^agent(\d+)-dvc', re.IGNORECASE) : TYPE_INT, -+ re.compile(r'^agent(\d+)-kind', re.IGNORECASE) : TYPE_INT, -+ re.compile(r'^agent(\d+)-type', re.IGNORECASE) : TYPE_INT, -+ re.compile(r'^agent(\d+)-id', re.IGNORECASE) : TYPE_INT, -+ re.compile(r'^agent(\d+)-hp-ink', re.IGNORECASE) : TYPE_BOOL, -+ re.compile(r'^agent(\d+)-health-desc', re.IGNORECASE) : TYPE_STR, -+ re.compile(r'^agent(\d+)-health$', re.IGNORECASE) : TYPE_INT, -+ re.compile(r'^agent(\d+)-known', re.IGNORECASE) : TYPE_BOOL, -+ re.compile(r'^agent(\d+)-level', re.IGNORECASE) : TYPE_INT, -+ re.compile(r'^agent(\d+)-ack', re.IGNORECASE) : TYPE_BOOL, -+ re.compile(r'^agent(\d+)-sku', re.IGNORECASE) : TYPE_STR, -+ re.compile(r'^in-tray(\d+)', re.IGNORECASE) : TYPE_BOOL, -+ re.compile(r'^out-tray(\d+)', re.IGNORECASE) : TYPE_BOOL, -+ re.compile(r'^model(\d+)', re.IGNORECASE) : TYPE_STR, - } - - self.TYPE_CACHE = {} -diff --git a/base/password.py b/base/password.py -index 259bf82..a4ed107 100644 ---- a/base/password.py -+++ b/base/password.py -@@ -167,8 +167,8 @@ class Password(object): - - elif i == 1: # TIMEOUT - if('true' in cmd and self.__password_prompt_str == ""): # sudo true or su -c "true" -- cb = cb.replace("[", "\[") -- cb = cb.replace("]", "\]") -+ cb = cb.replace("[", r"\[") -+ cb = cb.replace("]", r"\]") - - self.__password_prompt_str = cb - try: -diff --git a/base/queues.py b/base/queues.py -index 0818574..8625f53 100755 ---- a/base/queues.py -+++ b/base/queues.py +diff -up hplip-3.25.2/base/logger.py.raw-strings hplip-3.25.2/base/logger.py +diff -up hplip-3.25.2/base/models.py.raw-strings hplip-3.25.2/base/models.py +diff -up hplip-3.25.2/base/password.py.raw-strings hplip-3.25.2/base/password.py +diff -up hplip-3.25.2/base/queues.py.raw-strings hplip-3.25.2/base/queues.py +--- hplip-3.25.2/base/queues.py.raw-strings 2025-04-11 10:26:18.512773352 +0200 ++++ hplip-3.25.2/base/queues.py 2025-04-11 10:26:18.520514306 +0200 @@ -46,7 +46,7 @@ HPPS = 3 HPOTHER = 4 @@ -159,101 +36,12 @@ index 0818574..8625f53 100755 except AttributeError: desc = '' -diff --git a/base/status.py b/base/status.py -index 37c774e..01f455d 100644 ---- a/base/status.py -+++ b/base/status.py -@@ -1341,7 +1341,7 @@ def MapPJLErrorCode(error_code, str_code=None): - return status_code - - --pjl_code_pat = re.compile("""^CODE\s*=\s*(\d.*)$""", re.IGNORECASE) -+pjl_code_pat = re.compile(r"""^CODE\s*=\s*(\d.*)$""", re.IGNORECASE) - - - -diff --git a/base/tui.py b/base/tui.py -index 0f90f92..3b36c65 100644 ---- a/base/tui.py -+++ b/base/tui.py -@@ -217,7 +217,7 @@ class ProgressMeter(object): - self.progress = 0 - self.prompt = prompt - self.prev_length = 0 -- self.spinner = "\|/-\|/-*" -+ self.spinner = r"\|/-\|/-*" - self.spinner_pos = 0 - self.max_size = ttysize()[1] - len(prompt) - 25 - self.update(0) -diff --git a/base/utils.py b/base/utils.py -index 2b631ce..2fb57c4 100644 ---- a/base/utils.py -+++ b/base/utils.py -@@ -148,7 +148,7 @@ def get_cups_systemgroup_list(): - return lis - - try: -- lis = ((re.findall('SystemGroup [\w* ]*',fp.read()))[0].replace('SystemGroup ','')).split(' ') -+ lis = ((re.findall(r'SystemGroup [\w* ]*',fp.read()))[0].replace('SystemGroup ','')).split(' ') - except IndexError: - return lis - -@@ -1597,7 +1597,7 @@ def mixin(cls): - # ------------------------- Usage Help - USAGE_OPTIONS = ("[OPTIONS]", "", "heading", False) - USAGE_LOGGING1 = ("Set the logging level:", "-l or --logging=", 'option', False) --USAGE_LOGGING2 = ("", ": none, info\*, error, warn, debug (\*default)", "option", False) -+USAGE_LOGGING2 = ("", r": none, info\*, error, warn, debug (\*default)", "option", False) - USAGE_LOGGING3 = ("Run in debug mode:", "-g (same as option: -ldebug)", "option", False) - USAGE_LOGGING_PLAIN = ("Output plain text only:", "-t", "option", False) - USAGE_ARGS = ("[PRINTER|DEVICE-URI]", "", "heading", False) -@@ -1605,13 +1605,13 @@ USAGE_ARGS2 = ("[PRINTER]", "", "heading", False) - USAGE_DEVICE = ("To specify a device-URI:", "-d or --device=", "option", False) - USAGE_PRINTER = ("To specify a CUPS printer:", "-p or --printer=", "option", False) - USAGE_BUS1 = ("Bus to probe (if device not specified):", "-b or --bus=", "option", False) --USAGE_BUS2 = ("", ": cups\*, usb\*, net, bt, fw, par\* (\*defaults) (Note: bt and fw not supported in this release.)", 'option', False) -+USAGE_BUS2 = ("", r": cups\*, usb\*, net, bt, fw, par\* (\*defaults) (Note: bt and fw not supported in this release.)", 'option', False) - USAGE_HELP = ("This help information:", "-h or --help", "option", True) - USAGE_SPACE = ("", "", "space", False) - USAGE_EXAMPLES = ("Examples:", "", "heading", False) - USAGE_NOTES = ("Notes:", "", "heading", False) - USAGE_STD_NOTES1 = ("If device or printer is not specified, the local device bus is probed and the program enters interactive mode.", "", "note", False) --USAGE_STD_NOTES2 = ("If -p\* is specified, the default CUPS printer will be used.", "", "note", False) -+USAGE_STD_NOTES2 = (r"If -p\* is specified, the default CUPS printer will be used.", "", "note", False) - USAGE_SEEALSO = ("See Also:", "", "heading", False) - USAGE_LANGUAGE = ("Set the language:", "--loc= or --lang=. Use --loc=? or --lang=? to see a list of available language codes.", "option", False) - USAGE_LANGUAGE2 = ("Set the language:", "--lang=. Use --lang=? to see a list of available language codes.", "option", False) -@@ -1839,7 +1839,7 @@ encoding: utf8 - - elif typ == 'man': - log.info('.TH "%s" 1 "%s" Linux "User Manuals"' % (crumb, version)) -- log.info(".SH NAME\n%s \- %s" % (crumb, title)) -+ log.info(r".SH NAME\n%s \- %s" % (crumb, title)) - - for line in text_list: - text1, text2, format, trailing_space = line -@@ -1938,7 +1938,7 @@ def unescape(text): - except KeyError: - pass - return text # leave as is -- return re.sub("&#?\w+;", fixup, text) -+ return re.sub(r"&#?\w+;", fixup, text) - - - # Adds HTML or XML character references and entities from a text string -@@ -1991,7 +1991,7 @@ def Is_HPLIP_older_version(installed_version, available_version): - log.debug("HPLIP Installed_version=%s Available_version=%s"%(installed_version,available_version)) - cnt = 0 - Is_older = False -- pat=re.compile('''(\d{1,})([a-z]{1,})''') -+ pat=re.compile(r'''(\d{1,})([a-z]{1,})''') - try: - while cnt or --search=", "option", False), ("", " must be a valid regular expression (not case sensitive)", "option", False), ("Network discovery method:", "-m or --method=: is 'slp'* or 'mdns'.", "option", False), -diff --git a/scan.py b/scan.py -index 0bfa6f5..27b8c2e 100755 ---- a/scan.py -+++ b/scan.py -@@ -249,9 +249,9 @@ try: - extra_options=[utils.USAGE_SPACE, - ("[OPTIONS] (General)", "", "header", False), - ("Scan destinations:", "-s or --dest=", "option", False), -- ("", "where is a comma separated list containing one or more of: 'file'\*, ", "option", False), -+ ("", r"where is a comma separated list containing one or more of: 'file'\*, ", "option", False), - ("", "'viewer', 'editor', 'pdf', or 'print'. Use only commas between values, no spaces.", "option", False), -- ("Scan mode:", "-m or --mode=. Where is 'gray'\*, 'color' or 'lineart'.", "option", False), -+ ("Scan mode:", r"-m or --mode=. Where is 'gray'\*, 'color' or 'lineart'.", "option", False), - ("Scanning resolution:", "-r or --res= or --resolution=", "option", False), - ("", "where 300 is default.", "option", False), - ("Image resize:", "--resize= (min=1%, max=400%, default=100%)", "option", False), -@@ -268,7 +268,7 @@ try: - utils.USAGE_SPACE, - ("[OPTIONS] (Scan area)", "", "header", False), - ("Specify the units for area/box measurements:", "-t or --units=", "option", False), -- ("", "where is 'mm'\*, 'cm', 'in', 'px', or 'pt' ('mm' is default).", "option", False), -+ ("", r"where is 'mm'\*, 'cm', 'in', 'px', or 'pt' ('mm' is default).", "option", False), - ("Scan area:", "-a,,, or --area=,,,", "option", False), - ("", "Coordinates are relative to the upper left corner of the scan area.", "option", False), - ("", "Units for tlx, tly, brx, and bry are specified by -t/--units (default is 'mm').", "option", False), -diff --git a/setup.py b/setup.py -index 98f57fd..1a74d6d 100755 ---- a/setup.py -+++ b/setup.py +diff -up hplip-3.25.2/scan.py.raw-strings hplip-3.25.2/scan.py +diff -up hplip-3.25.2/setup.py.raw-strings hplip-3.25.2/setup.py +--- hplip-3.25.2/setup.py.raw-strings 2025-04-11 10:26:18.496992045 +0200 ++++ hplip-3.25.2/setup.py 2025-04-11 10:26:18.522775511 +0200 @@ -79,11 +79,11 @@ USAGE = [ (__doc__, "", "name", True), utils.USAGE_SPACE, utils.USAGE_OPTIONS, diff --git a/hplip.spec b/hplip.spec index 4baee16..0d88003 100644 --- a/hplip.spec +++ b/hplip.spec @@ -6,8 +6,8 @@ Summary: HP Linux Imaging and Printing Project Name: hplip -Version: 3.24.4 -Release: 5%{?dist} +Version: 3.25.2 +Release: 1%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -976,6 +976,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Fri Apr 11 2025 Zdenek Dohnal - 3.25.2-1 +- hplip-3.25.2 is available (fedora#2353147) + * Thu Apr 03 2025 FeRD (Frank Dana) - 3.24.5-5 - hp-plugin: Use rpm queryformat to get version (no gawk dependency) diff --git a/sources b/sources index d883a96..9ed256f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hplip-3.24.4-repack.tar.gz) = 7a1c0024ec3703a9e36ef50c873c7c959eb0be646e53f517d9234b5a961ef7a7a0a646bc28dee533d3b12583b12f527d5ac2bd457272053ddc4b22e745b57b63 +SHA512 (hplip-3.25.2-repack.tar.gz) = 38941d8f624b8edc4a45695151649d18a430177f9b3e257cd969e234ff0f45285a68fa83240727dce411fea961de34b4dc5b46741a48087b77f1e34b48d7d6b1 From ae1776306626781f8a2d0d7e942749a15d84784e Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Wed, 16 Apr 2025 17:14:15 +0200 Subject: [PATCH 73/84] remove Recommends on hplip-gui due complaint at (fedora#2360020) --- hplip.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hplip.spec b/hplip.spec index 0d88003..f57e86c 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.25.2 -Release: 1%{?dist} +Release: 2%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -297,7 +297,6 @@ BuildRequires: sane-backends-devel BuildRequires: systemd %if 0%{?fedora} || 0%{?rhel} <= 8 -Recommends: (%{name}-gui%{?_isa} = %{version}-%{release} if qt5-qtbase-gui%{?_isa}) Suggests: hplip-gui %endif # uses avahi-browse for discovering IPP-over-USB printers @@ -976,6 +975,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Wed Apr 16 2025 Zdenek Dohnal - 3.25.2-2 +- remove Recommends on hplip-gui due complaint at (fedora#2360020) + * Fri Apr 11 2025 Zdenek Dohnal - 3.25.2-1 - hplip-3.25.2 is available (fedora#2353147) From f66385472fcf440142e106a2a3203411fcf0785b Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Wed, 7 May 2025 10:44:05 +0200 Subject: [PATCH 74/84] hp-plugin failed checksum due usage of different hashes (fedora#2361230) output is not seen after installing plugin (fedora#2361230) --- hplip-plugin-reverthash.patch | 83 +++++++++++++++++++++++++++++++++++ hplip-plugin-stdout.patch | 13 ++++++ hplip.spec | 16 ++++++- 3 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 hplip-plugin-reverthash.patch create mode 100644 hplip-plugin-stdout.patch diff --git a/hplip-plugin-reverthash.patch b/hplip-plugin-reverthash.patch new file mode 100644 index 0000000..006f01e --- /dev/null +++ b/hplip-plugin-reverthash.patch @@ -0,0 +1,83 @@ +diff --git a/base/utils.py b/base/utils.py +index 09a3cb7..137ec72 100644 +--- a/base/utils.py ++++ b/base/utils.py +@@ -67,11 +67,17 @@ try: + except ImportError: + dbus_avail=False + +-import hashlib ++try: ++ import hashlib # new in 2.5 ++ ++ def get_checksum(s): ++ return hashlib.sha1(s).hexdigest() + +-def get_checksum(s): +- return hashlib.sha256(s).hexdigest() ++except ImportError: ++ import sha # deprecated in 2.6/3.0 + ++ def get_checksum(s): ++ return sha.new(s).hexdigest() + + + +diff --git a/installer/core_install.py b/installer/core_install.py +index 9a929a4..299b2f4 100644 +--- a/installer/core_install.py ++++ b/installer/core_install.py +@@ -31,10 +31,18 @@ import pwd + import tarfile + import stat + import glob +-import hashlib + +-def get_checksum(s): +- return hashlib.sha256(s).hexdigest() ++try: ++ import hashlib # new in 2.5 ++ ++ def get_checksum(s): ++ return hashlib.sha1(s).hexdigest() ++ ++except ImportError: ++ import sha # deprecated in 2.6/3.0 ++ ++ def get_checksum(s): ++ return sha.new(s).hexdigest() + + + # Local +diff --git a/installer/pluginhandler.py b/installer/pluginhandler.py +index c2e2a94..4ae24e5 100755 +--- a/installer/pluginhandler.py ++++ b/installer/pluginhandler.py +@@ -21,7 +21,6 @@ + + import os + import shutil +-import hashlib + + from base import utils, tui, os_utils, validation, password + from base.g import * +@@ -31,8 +30,17 @@ from base.sixext.moves import configparser + from installer import core_install + + +-def get_checksum(s): +- return hashlib.sha256(s).hexdigest() ++try: ++ import hashlib # new in 2.5 ++ ++ def get_checksum(s): ++ return hashlib.sha1(s).hexdigest() ++ ++except ImportError: ++ import sha # deprecated in 2.6/3.0 ++ ++ def get_checksum(s): ++ return sha.new(s).hexdigest() + + + PLUGIN_STATE_FILE = '/var/lib/hp/hplip.state' diff --git a/hplip-plugin-stdout.patch b/hplip-plugin-stdout.patch new file mode 100644 index 0000000..c8d28a9 --- /dev/null +++ b/hplip-plugin-stdout.patch @@ -0,0 +1,13 @@ +diff --git a/base/os_utils.py b/base/os_utils.py +index 9fa137c..71edcc7 100644 +--- a/base/os_utils.py ++++ b/base/os_utils.py +@@ -37,7 +38,7 @@ def execute(cmd): + try: + # Use shlex.split to safely split the command into arguments + args = shlex.split(cmd) +- result = subprocess.run(args, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) ++ result = subprocess.run(args, check=True) + return result.returncode + except subprocess.CalledProcessError as e: + error_message = "Command failed with return code %d: %s\n%s" % (e.returncode, cmd, e.stderr.decode()) diff --git a/hplip.spec b/hplip.spec index f57e86c..dab37b1 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.25.2 -Release: 2%{?dist} +Release: 3%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -244,6 +244,12 @@ Patch72: hplip-gcc15-stdc23.patch # status history table shows unformatted QDateTime values # https://bugs.launchpad.net/hplip/+bug/1956547 Patch73: hplip-format-qdatetime.patch +# revert to old hash for now until plugin.conf has newer hashes, +# and make sure we see prompts when installing plugin... +# https://bugs.launchpad.net/hplip/+bug/2110100 +# https://bugs.launchpad.net/hplip/+bug/2110101 +Patch74: hplip-plugin-reverthash.patch +Patch75: hplip-plugin-stdout.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -604,6 +610,10 @@ done %patch -P 72 -p1 -b .gcc-strc23 # https://bugs.launchpad.net/hplip/+bug/1956547 %patch -P 73 -p1 -b .format-qdatetime +# https://bugs.launchpad.net/hplip/+bug/2110100 +# https://bugs.launchpad.net/hplip/+bug/2110101 +%patch -P 74 -p1 -b .hashrevert +%patch -P 75 -p1 -b .stdout # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -975,6 +985,10 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Wed May 07 2025 Zdenek Dohnal - 3.25.2-3 +- hp-plugin failed checksum due usage of different hashes (fedora#2361230) +- output is not seen after installing plugin (fedora#2361230) + * Wed Apr 16 2025 Zdenek Dohnal - 3.25.2-2 - remove Recommends on hplip-gui due complaint at (fedora#2360020) From 61a4f33d3a811f559bfde7f27eade48f16740df5 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 12 May 2025 10:03:00 +0200 Subject: [PATCH 75/84] plugin.conf now looks to use sha256 as well per email comms with HP, drop the revert --- hplip-plugin-reverthash.patch | 83 ----------------------------------- hplip.spec | 12 +++-- 2 files changed, 5 insertions(+), 90 deletions(-) delete mode 100644 hplip-plugin-reverthash.patch diff --git a/hplip-plugin-reverthash.patch b/hplip-plugin-reverthash.patch deleted file mode 100644 index 006f01e..0000000 --- a/hplip-plugin-reverthash.patch +++ /dev/null @@ -1,83 +0,0 @@ -diff --git a/base/utils.py b/base/utils.py -index 09a3cb7..137ec72 100644 ---- a/base/utils.py -+++ b/base/utils.py -@@ -67,11 +67,17 @@ try: - except ImportError: - dbus_avail=False - --import hashlib -+try: -+ import hashlib # new in 2.5 -+ -+ def get_checksum(s): -+ return hashlib.sha1(s).hexdigest() - --def get_checksum(s): -- return hashlib.sha256(s).hexdigest() -+except ImportError: -+ import sha # deprecated in 2.6/3.0 - -+ def get_checksum(s): -+ return sha.new(s).hexdigest() - - - -diff --git a/installer/core_install.py b/installer/core_install.py -index 9a929a4..299b2f4 100644 ---- a/installer/core_install.py -+++ b/installer/core_install.py -@@ -31,10 +31,18 @@ import pwd - import tarfile - import stat - import glob --import hashlib - --def get_checksum(s): -- return hashlib.sha256(s).hexdigest() -+try: -+ import hashlib # new in 2.5 -+ -+ def get_checksum(s): -+ return hashlib.sha1(s).hexdigest() -+ -+except ImportError: -+ import sha # deprecated in 2.6/3.0 -+ -+ def get_checksum(s): -+ return sha.new(s).hexdigest() - - - # Local -diff --git a/installer/pluginhandler.py b/installer/pluginhandler.py -index c2e2a94..4ae24e5 100755 ---- a/installer/pluginhandler.py -+++ b/installer/pluginhandler.py -@@ -21,7 +21,6 @@ - - import os - import shutil --import hashlib - - from base import utils, tui, os_utils, validation, password - from base.g import * -@@ -31,8 +30,17 @@ from base.sixext.moves import configparser - from installer import core_install - - --def get_checksum(s): -- return hashlib.sha256(s).hexdigest() -+try: -+ import hashlib # new in 2.5 -+ -+ def get_checksum(s): -+ return hashlib.sha1(s).hexdigest() -+ -+except ImportError: -+ import sha # deprecated in 2.6/3.0 -+ -+ def get_checksum(s): -+ return sha.new(s).hexdigest() - - - PLUGIN_STATE_FILE = '/var/lib/hp/hplip.state' diff --git a/hplip.spec b/hplip.spec index dab37b1..2f7eb19 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.25.2 -Release: 3%{?dist} +Release: 4%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -244,11 +244,8 @@ Patch72: hplip-gcc15-stdc23.patch # status history table shows unformatted QDateTime values # https://bugs.launchpad.net/hplip/+bug/1956547 Patch73: hplip-format-qdatetime.patch -# revert to old hash for now until plugin.conf has newer hashes, -# and make sure we see prompts when installing plugin... -# https://bugs.launchpad.net/hplip/+bug/2110100 +# make sure we see prompts when installing plugin... # https://bugs.launchpad.net/hplip/+bug/2110101 -Patch74: hplip-plugin-reverthash.patch Patch75: hplip-plugin-stdout.patch %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -610,9 +607,7 @@ done %patch -P 72 -p1 -b .gcc-strc23 # https://bugs.launchpad.net/hplip/+bug/1956547 %patch -P 73 -p1 -b .format-qdatetime -# https://bugs.launchpad.net/hplip/+bug/2110100 # https://bugs.launchpad.net/hplip/+bug/2110101 -%patch -P 74 -p1 -b .hashrevert %patch -P 75 -p1 -b .stdout # Fedora specific patches now, don't put a generic patches under it @@ -985,6 +980,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Mon May 12 2025 Zdenek Dohnal - 3.25.2-4 +- plugin.conf now looks to use sha256 as well per email comms with HP, drop the revert + * Wed May 07 2025 Zdenek Dohnal - 3.25.2-3 - hp-plugin failed checksum due usage of different hashes (fedora#2361230) - output is not seen after installing plugin (fedora#2361230) From 8541ecd6f87ae8863c9fd24f259d4a9daa38596a Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 26 May 2025 15:24:43 +0200 Subject: [PATCH 76/84] hp-toolbox shows traceback when closing and there is no HP device (fedora#2360501) --- hplip-gui-close-trace.patch | 24 ++++++++++++++++++++++++ hplip.spec | 10 +++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 hplip-gui-close-trace.patch diff --git a/hplip-gui-close-trace.patch b/hplip-gui-close-trace.patch new file mode 100644 index 0000000..39d8f01 --- /dev/null +++ b/hplip-gui-close-trace.patch @@ -0,0 +1,24 @@ +diff --git a/ui5/devmgr5.py b/ui5/devmgr5.py +index 79f8fa8..28a77b3 100644 +--- a/ui5/devmgr5.py ++++ b/ui5/devmgr5.py +@@ -816,6 +816,9 @@ class DevMgr5(Ui_MainWindow_Derived, Ui_MainWindow, QMainWindow): + + + def updateWindowTitle(self): ++ if self.cur_device is None or self.cur_device_uri is None: ++ return ++ + if self.cur_device.device_type == DEVICE_TYPE_FAX: + self.setWindowTitle(self.__tr("HP Device Manager - %s (Fax)"%self.cur_device.model_ui)) + else: +@@ -1876,6 +1879,9 @@ class DevMgr5(Ui_MainWindow_Derived, Ui_MainWindow, QMainWindow): + + + def updatePrintControlTab(self): ++ if self.cur_device is None or self.cur_printer is None: ++ return ++ + if self.cur_device.device_type == DEVICE_TYPE_PRINTER: + self.PrintControlPrinterNameLabel.setText(self.__tr("Printer Name:")) + self.groupBox.setTitle(QApplication.translate("MainWindow", "Printer Queue Control", None)) diff --git a/hplip.spec b/hplip.spec index 2f7eb19..9956010 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.25.2 -Release: 4%{?dist} +Release: 5%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -247,6 +247,9 @@ Patch73: hplip-format-qdatetime.patch # make sure we see prompts when installing plugin... # https://bugs.launchpad.net/hplip/+bug/2110101 Patch75: hplip-plugin-stdout.patch +# toolbox shows traceback when button 'close' is clicked on at first dialog +# https://bugs.launchpad.net/hplip/+bug/2111722 +Patch76: hplip-gui-close-trace.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -609,6 +612,8 @@ done %patch -P 73 -p1 -b .format-qdatetime # https://bugs.launchpad.net/hplip/+bug/2110101 %patch -P 75 -p1 -b .stdout +# https://bugs.launchpad.net/hplip/+bug/2111722 +%patch -P 76 -p1 -b .gui-close-trace # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -980,6 +985,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Mon May 26 2025 Zdenek Dohnal - 3.25.2-5 +- hp-toolbox shows traceback when closing and there is no HP device (fedora#2360501) + * Mon May 12 2025 Zdenek Dohnal - 3.25.2-4 - plugin.conf now looks to use sha256 as well per email comms with HP, drop the revert From b1ef7ae35e07387acaa3c9b76e10b8a3ea5c2152 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 2 Jun 2025 22:22:15 +0200 Subject: [PATCH 77/84] Rebuilt for Python 3.14 --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index 9956010..07f2ece 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.25.2 -Release: 5%{?dist} +Release: 6%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -985,6 +985,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Mon Jun 02 2025 Python Maint - 3.25.2-6 +- Rebuilt for Python 3.14 + * Mon May 26 2025 Zdenek Dohnal - 3.25.2-5 - hp-toolbox shows traceback when closing and there is no HP device (fedora#2360501) From a995e312cb21fcc2c0b58e5c33feba6b60c38978 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 3 Jun 2025 08:11:29 +0200 Subject: [PATCH 78/84] Switch tests to Centos Stream --- plans.fmf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plans.fmf b/plans.fmf index deb443d..f4c2755 100644 --- a/plans.fmf +++ b/plans.fmf @@ -1,37 +1,37 @@ /tier1-internal: plan: import: - url: https://src.fedoraproject.org/tests/hplip.git + url: https://gitlab.com/redhat/centos-stream/tests/hplip.git name: /plans/tier1/internal /tier1-public: plan: import: - url: https://src.fedoraproject.org/tests/hplip.git + url: https://gitlab.com/redhat/centos-stream/tests/hplip.git name: /plans/tier1/public /tier2-tier3-internal: plan: import: - url: https://src.fedoraproject.org/tests/hplip.git + url: https://gitlab.com/redhat/centos-stream/tests/hplip.git name: /plans/tier2-tier3/internal /tier2-tier3-public: plan: import: - url: https://src.fedoraproject.org/tests/hplip.git + url: https://gitlab.com/redhat/centos-stream/tests/hplip.git name: /plans/tier2-tier3/public /others-internal: plan: import: - url: https://src.fedoraproject.org/tests/hplip.git + url: https://gitlab.com/redhat/centos-stream/tests/hplip.git name: /plans/others/internal /others-public: plan: import: - url: https://src.fedoraproject.org/tests/hplip.git + url: https://gitlab.com/redhat/centos-stream/tests/hplip.git name: /plans/others/public From 73678936ce93c0579ee46011aed32d96aa2844d2 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 20 Jun 2025 11:24:48 +0200 Subject: [PATCH 79/84] Remove URLopener Python 3.14 removed URLopener, which is used in hplip as parent class for LocalOpener* classes, and various hplip scripts (hp-setup, hp-plugin) started to traceback after removal. Remove URLopener for now, since at least sanity testing passes without it. --- hplip-no-urlopener.patch | 79 ++++++++++++++++++++++++++++++++++++++++ hplip.spec | 10 ++++- 2 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 hplip-no-urlopener.patch diff --git a/hplip-no-urlopener.patch b/hplip-no-urlopener.patch new file mode 100644 index 0000000..903fbbc --- /dev/null +++ b/hplip-no-urlopener.patch @@ -0,0 +1,79 @@ +diff --git a/base/device.py b/base/device.py +index 2fdb29c..ca0d97e 100644 +--- a/base/device.py ++++ b/base/device.py +@@ -2526,9 +2526,9 @@ Content-length: %d\r + data = None + + log.debug("Opening: %s" % url2) +- opener = LocalOpener({}) ++ opener = LocalOpener() + try: +- f = opener.open(url2, data) ++ f = opener.open_hp(url2, data) + + except Error: + log.error("Status read failed: %s" % url2) +@@ -2548,7 +2548,7 @@ Content-length: %d\r + try: + url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url) + data = self +- opener = LocalOpenerEWS_LEDM({}) ++ opener = LocalOpenerEWS_LEDM() + try: + if footer: + return opener.open_hp(url2, data, footer) +@@ -2563,7 +2563,7 @@ Content-length: %d\r + try: + url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url) + data = self +- opener = LocalOpener_LEDM({}) ++ opener = LocalOpener_LEDM() + try: + if footer: + return opener.open_hp(url2, data, footer) +@@ -2580,7 +2580,7 @@ Content-length: %d\r + url="/cdm/supply/v1/suppliesPublic" + url2 = "%s&loc=%s" % (self.device_uri.replace('hpfax:', 'hp:'), url) + data = self +- opener = LocalOpener_CDM({}) ++ opener = LocalOpener_CDM() + try: + if footer: + return opener.open_hp(url2, data, footer) +@@ -2688,7 +2688,7 @@ Content-length: %d\r + + + # URLs: hp:/usb/HP_LaserJet_3050?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml +-class LocalOpener(urllib_request.URLopener): ++class LocalOpener(): + def open_hp(self, url, dev): + log.debug("open_hp(%s)" % url) + +@@ -2718,7 +2718,7 @@ class LocalOpener(urllib_request.URLopener): + return response#.fp + + # URLs: hp:/usb/HP_OfficeJet_7500?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml +-class LocalOpenerEWS_LEDM(urllib_request.URLopener): ++class LocalOpenerEWS_LEDM(): + def open_hp(self, url, dev, foot=""): + log.debug("open_hp(%s)" % url) + +@@ -2744,7 +2744,7 @@ class LocalOpenerEWS_LEDM(urllib_request.URLopener): + + + # URLs: hp:/usb/HP_OfficeJet_7500?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml +-class LocalOpener_LEDM(urllib_request.URLopener): ++class LocalOpener_LEDM(): + def open_hp(self, url, dev, foot=""): + log.debug("open_hp(%s)" % url) + +@@ -2771,7 +2771,7 @@ class LocalOpener_LEDM(urllib_request.URLopener): + + + # URLs: hp:/usb/HP_OfficeJet_7500?serial=00XXXXXXXXXX&loc=/hp/device/info_device_status.xml +-class LocalOpener_CDM(urllib_request.URLopener): ++class LocalOpener_CDM(): + def open_hp(self, url, dev, foot=""): + log.debug("open_hp(%s)" % url) + match_obj = http_pat_url.search(url) diff --git a/hplip.spec b/hplip.spec index 07f2ece..80334d0 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.25.2 -Release: 6%{?dist} +Release: 7%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -250,6 +250,9 @@ Patch75: hplip-plugin-stdout.patch # toolbox shows traceback when button 'close' is clicked on at first dialog # https://bugs.launchpad.net/hplip/+bug/2111722 Patch76: hplip-gui-close-trace.patch +# Python 3.14 removed urlopener +# https://bugs.launchpad.net/hplip/+bug/2115046 +Patch77: hplip-no-urlopener.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -614,6 +617,8 @@ done %patch -P 75 -p1 -b .stdout # https://bugs.launchpad.net/hplip/+bug/2111722 %patch -P 76 -p1 -b .gui-close-trace +# https://bugs.launchpad.net/hplip/+bug/2115046 +%patch -P 77 -p1 -b .no-urlopener # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -985,6 +990,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Jun 19 2025 Zdenek Dohnal - 3.25.2-7 +- Python 3.14 removed URLopener + * Mon Jun 02 2025 Python Maint - 3.25.2-6 - Rebuilt for Python 3.14 From 5ad054fcdb04a8adabd112aa4ab0ec6b14d2364c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 24 Jul 2025 17:04:43 +0000 Subject: [PATCH 80/84] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- hplip.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hplip.spec b/hplip.spec index 80334d0..9fbf105 100644 --- a/hplip.spec +++ b/hplip.spec @@ -7,7 +7,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip Version: 3.25.2 -Release: 7%{?dist} +Release: 8%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -990,6 +990,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 3.25.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Thu Jun 19 2025 Zdenek Dohnal - 3.25.2-7 - Python 3.14 removed URLopener From 01d1e50f44f87ee2ac1d0f3a7629c562631b69ae Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Tue, 12 Aug 2025 13:31:19 +0200 Subject: [PATCH 81/84] hplip-3.25.6 is available (fedora#2386814) --- .gitignore | 1 + hplip-pcardext-disable.patch | 9 +++-- hplip-plugin-stdout.patch | 13 ------- hplip.spec | 73 ++++++++++++++++-------------------- sources | 2 +- 5 files changed, 40 insertions(+), 58 deletions(-) delete mode 100644 hplip-plugin-stdout.patch diff --git a/.gitignore b/.gitignore index c4e3a17..89da7d2 100644 --- a/.gitignore +++ b/.gitignore @@ -114,3 +114,4 @@ hplip-3.10.6.tar.gz /hplip-3.23.12-repack.tar.gz /hplip-3.24.4-repack.tar.gz /hplip-3.25.2-repack.tar.gz +/hplip-3.25.6-repack.tar.gz diff --git a/hplip-pcardext-disable.patch b/hplip-pcardext-disable.patch index 342c4d3..158379d 100644 --- a/hplip-pcardext-disable.patch +++ b/hplip-pcardext-disable.patch @@ -1,12 +1,13 @@ -diff -up hplip-3.25.2/Makefile.am.pcardext-disable hplip-3.25.2/Makefile.am ---- hplip-3.25.2/Makefile.am.pcardext-disable 2025-04-11 10:23:29.576593786 +0200 -+++ hplip-3.25.2/Makefile.am 2025-04-11 10:24:08.259842784 +0200 -@@ -306,13 +306,6 @@ if !HPLIP_CLASS_DRIVER +diff -up hplip-3.25.6/Makefile.am.pcardext-disable hplip-3.25.6/Makefile.am +--- hplip-3.25.6/Makefile.am.pcardext-disable 2025-08-11 12:52:35.359621088 +0200 ++++ hplip-3.25.6/Makefile.am 2025-08-11 12:54:58.654515582 +0200 +@@ -306,14 +306,6 @@ if !HPLIP_CLASS_DRIVER pcarddir = $(hplipdir)/pcard dist_pcard_DATA = pcard/__init__.py pcard/photocard.py -# pcardext -pcardextdir = $(PYTHONEXECDIR) +-pcardextdir = $(PYTHONEXECDIR) -pcardext_LTLIBRARIES = pcardext.la -pcardext_la_LDFLAGS = -module -avoid-version -pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h diff --git a/hplip-plugin-stdout.patch b/hplip-plugin-stdout.patch deleted file mode 100644 index c8d28a9..0000000 --- a/hplip-plugin-stdout.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/base/os_utils.py b/base/os_utils.py -index 9fa137c..71edcc7 100644 ---- a/base/os_utils.py -+++ b/base/os_utils.py -@@ -37,7 +38,7 @@ def execute(cmd): - try: - # Use shlex.split to safely split the command into arguments - args = shlex.split(cmd) -- result = subprocess.run(args, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) -+ result = subprocess.run(args, check=True) - return result.returncode - except subprocess.CalledProcessError as e: - error_message = "Command failed with return code %d: %s\n%s" % (e.returncode, cmd, e.stderr.decode()) diff --git a/hplip.spec b/hplip.spec index 9fbf105..24f7071 100644 --- a/hplip.spec +++ b/hplip.spec @@ -6,8 +6,8 @@ Summary: HP Linux Imaging and Printing Project Name: hplip -Version: 3.25.2 -Release: 8%{?dist} +Version: 3.25.6 +Release: 1%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG # prnt/* - BSD-3-Clause-HP - it is modified a little, asked here https://gitlab.com/fedora/legal/fedora-license-data/-/issues/267 @@ -199,60 +199,54 @@ Patch57: hplip-plugin-udevissues.patch # removed # - /lib64/libm.so is not symlink but ld script, which cannot be used in dlopen() Patch58: hplip-no-libhpmud-libm-warnings.patch -Patch60: hplip-plugin-script.patch +Patch59: hplip-plugin-script.patch # C99 compatibility fixes by fweimer - use explicit int # Submitted upstream: -Patch61: hplip-pserror-c99.patch +Patch60: hplip-pserror-c99.patch # C99 compatibility patch by fweimer - several undefined functions in hpaio # backend are declared in orblite.h # Submitted upstream: -Patch62: hplip-scan-hpaio-include.patch +Patch61: hplip-scan-hpaio-include.patch # C99 compatibility patch by fweimer - undefined _DBG() and dynamic linking funcs in orblite.c # - _DBG() looks like typo and new header is added for funcs # Submitted upstream: -Patch63: hplip-scan-orblite-c99.patch +Patch62: hplip-scan-orblite-c99.patch # C99 compatibility patch by fweimer: # PyString_AsStringAndSize is removed in Python3, remove its compilation for now # in case there is a request for compiling it again, there is a possible solution # for the function py3 alternative https://opendev.org/openstack/pyeclib/commit/19c8313986 # - disabling removes hp-unload and /usr/share/hplip/pcard as well # Submitted upstream: -Patch64: hplip-pcardext-disable.patch +Patch63: hplip-pcardext-disable.patch # undefined strcasestr() in sclpml.c - build with _GNU_SOURCE # Submitted upstream: -Patch65: hplip-sclpml-strcasestr.patch +Patch64: hplip-sclpml-strcasestr.patch # 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed # https://bugs.launchpad.net/hplip/+bug/2027972 -Patch67: hplip-fix-parsing-lpstat.patch +Patch65: hplip-fix-parsing-lpstat.patch # switch to curl by downstream patch from wget to workaround openstack dropping IPv6 # which causes great delays... # Remove this once internal openstack handles IPv6 better - test by pinging IPv6 in OpenStack, # it should not hang. -Patch68: hplip-plugin-curl.patch +Patch66: hplip-plugin-curl.patch # fix SyntaxWarning from python3.12 # https://bugs.launchpad.net/hplip/+bug/2029480 -Patch69: hplip-use-raw-strings.patch +Patch67: hplip-use-raw-strings.patch # FTBFS GCC 14 # https://bugs.launchpad.net/hplip/+bug/2048780 -Patch70: hplip-hpaio-gcc14.patch +Patch68: hplip-hpaio-gcc14.patch # format is no longer method in locale module # https://bugs.launchpad.net/hplip/+bug/2045507 -Patch71: hplip-locale-format.patch +Patch69: hplip-locale-format.patch # function prototype did not specify argument's data types # https://bugs.launchpad.net/hplip/+bug/2096650 -Patch72: hplip-gcc15-stdc23.patch +Patch70: hplip-gcc15-stdc23.patch # status history table shows unformatted QDateTime values # https://bugs.launchpad.net/hplip/+bug/1956547 -Patch73: hplip-format-qdatetime.patch -# make sure we see prompts when installing plugin... -# https://bugs.launchpad.net/hplip/+bug/2110101 -Patch75: hplip-plugin-stdout.patch -# toolbox shows traceback when button 'close' is clicked on at first dialog -# https://bugs.launchpad.net/hplip/+bug/2111722 -Patch76: hplip-gui-close-trace.patch +Patch71: hplip-format-qdatetime.patch # Python 3.14 removed urlopener # https://bugs.launchpad.net/hplip/+bug/2115046 -Patch77: hplip-no-urlopener.patch +Patch72: hplip-no-urlopener.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -577,48 +571,44 @@ done %patch -P 57 -p1 -b .hpplugin-udevperms # 2080235 - Misleading errors about missing shared libraries when scanning %patch -P 58 -p1 -b .no-libm-libhpmud-warn -%patch -P 60 -p1 -b .plugin-patch +%patch -P 59 -p1 -b .plugin-patch # C99 compatibility fixes by fweimer - use explicit int # Submitted upstream: -%patch -P 61 -p1 -b .pserror-int +%patch -P 60 -p1 -b .pserror-int # C99 compatibility patch by fweimer - several undefined functions in hpaio # backend are declared in orblite.h # Submitted upstream: -%patch -P 62 -p1 -b .hpaio-orblite-defs +%patch -P 61 -p1 -b .hpaio-orblite-defs # C99 compatibility patch by fweimer - undefined _DBG() and dynamic linking funcs in orblite.c # - _DBG() looks like typo and new header is added for funcs # Submitted upstream: -%patch -P 63 -p1 -b .orblite-undefs +%patch -P 62 -p1 -b .orblite-undefs # C99 compatibility patch by fweimer - python2 PyString_AsStringAndSize in python3 code # gives undefined reference - removed for now with dependent hp-unload -%patch -P 64 -p1 -b .pcardext-disable +%patch -P 63 -p1 -b .pcardext-disable # C99 compatibility patch by fweimer - undefined strcasestr() in sclpml.c - build with _GNU_SOURCE -%patch -P 65 -p1 -b .sclpml-strcasestr +%patch -P 64 -p1 -b .sclpml-strcasestr # 2192131 - parseQueues() doesn't get device uri from 'lpstat -v', because parsing pattern changed # https://bugs.launchpad.net/hplip/+bug/2027972 -%patch -P 67 -p1 -b .lpstat-parse +%patch -P 65 -p1 -b .lpstat-parse # switch to curl by downstream patch from wget to workaround openstack dropping IPv6 # which causes great delays... -%patch -P 68 -p1 -b .curl-switch +%patch -P 66 -p1 -b .curl-switch # fix warnings # upstream https://bugs.launchpad.net/hplip/+bug/2029480 -%patch -P 69 -p1 -b .raw-strings +%patch -P 67 -p1 -b .raw-strings # FTBFS GCC 14 # https://bugs.launchpad.net/hplip/+bug/2048780 -%patch -P 70 -p1 -b .hpaio-gcc14 +%patch -P 68 -p1 -b .hpaio-gcc14 # format is no longer method in locale module # https://bugs.launchpad.net/hplip/+bug/2045507 -%patch -P 71 -p1 -b .locale-format +%patch -P 69 -p1 -b .locale-format # https://bugs.launchpad.net/hplip/+bug/2096650 -%patch -P 72 -p1 -b .gcc-strc23 +%patch -P 70 -p1 -b .gcc-strc23 # https://bugs.launchpad.net/hplip/+bug/1956547 -%patch -P 73 -p1 -b .format-qdatetime -# https://bugs.launchpad.net/hplip/+bug/2110101 -%patch -P 75 -p1 -b .stdout -# https://bugs.launchpad.net/hplip/+bug/2111722 -%patch -P 76 -p1 -b .gui-close-trace +%patch -P 71 -p1 -b .format-qdatetime # https://bugs.launchpad.net/hplip/+bug/2115046 -%patch -P 77 -p1 -b .no-urlopener +%patch -P 72 -p1 -b .no-urlopener # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -990,6 +980,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Tue Aug 12 2025 Zdenek Dohnal - 3.25.6-1 +- hplip-3.25.6 is available (fedora#2386814) + * Thu Jul 24 2025 Fedora Release Engineering - 3.25.2-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/sources b/sources index 9ed256f..3eebca3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hplip-3.25.2-repack.tar.gz) = 38941d8f624b8edc4a45695151649d18a430177f9b3e257cd969e234ff0f45285a68fa83240727dce411fea961de34b4dc5b46741a48087b77f1e34b48d7d6b1 +SHA512 (hplip-3.25.6-repack.tar.gz) = 1b431142e2516e383d5fcbaa1487c5a680b60a409bec02de4526ac82d2a88a4b2b28f3813740ae8f7f32f02d058ae6e986efc8e57a30d1c560132dc4014b87b4 From 334237ac687d516e55b7d3819a58ff2314f09798 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Wed, 17 Sep 2025 14:01:58 +0200 Subject: [PATCH 82/84] hp-scan command failed to run and gives an error (fedora#2395809) --- hplip-scan-size.patch | 37 +++++++++++++++++++++++++++++++++++++ hplip.spec | 8 ++++++++ 2 files changed, 45 insertions(+) create mode 100644 hplip-scan-size.patch diff --git a/hplip-scan-size.patch b/hplip-scan-size.patch new file mode 100644 index 0000000..1ff8cb3 --- /dev/null +++ b/hplip-scan-size.patch @@ -0,0 +1,37 @@ +diff --git a/scan.py b/scan.py +index b262ef2..cb0ffc1 100755 +--- a/scan.py ++++ b/scan.py +@@ -83,7 +83,7 @@ edge_erase_value = 0 + contrast = 0 + set_contrast = False + +-page_size = '' ++page_size = 'a4' + size_desc = '' + page_units = 'mm' + default_res = 300 +@@ -1615,7 +1615,7 @@ try: + else: + im = im.convert("RGB") + +- #im = imageprocessing.resize_to_scan_area(im,PAGE_SIZES[size],res) ++ #im = imageprocessing.resize_to_scan_area(im,PAGE_SIZES[page_size],res) + if barcode_count>0: + if barcode_first_occurence == True: + if barcode_first_page == False: +@@ -1718,12 +1718,12 @@ try: + #so that the output image size matches with the input scan area + #for Flatbad + if im: +- im = imageprocessing.resize_to_scan_area(im,PAGE_SIZES[size],res) ++ im = imageprocessing.resize_to_scan_area(im,PAGE_SIZES[page_size],res) + """ + #for ADF + for Image_file in adf_page_files: + image = Image.open(Image_file) +- resized_image = imageprocessing.resize_to_scan_area(image,PAGE_SIZES[size],res) ++ resized_image = imageprocessing.resize_to_scan_area(image,PAGE_SIZES[page_size],res) + resized_image.save(Image_file) + """ + if adf and (save_file =='jpg' or save_file == 'png' or save_file == 'tiff' or save_file == 'pdf' or save_file == 'bmp'): diff --git a/hplip.spec b/hplip.spec index 24f7071..f7d6bdd 100644 --- a/hplip.spec +++ b/hplip.spec @@ -247,6 +247,9 @@ Patch71: hplip-format-qdatetime.patch # Python 3.14 removed urlopener # https://bugs.launchpad.net/hplip/+bug/2115046 Patch72: hplip-no-urlopener.patch +# hp-scan command failed to run and gives an error (fedora#2395809) +# https://bugs.launchpad.net/hplip/+bug/2124268 +Patch73: hplip-scan-size.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -609,6 +612,8 @@ done %patch -P 71 -p1 -b .format-qdatetime # https://bugs.launchpad.net/hplip/+bug/2115046 %patch -P 72 -p1 -b .no-urlopener +# https://bugs.launchpad.net/hplip/+bug/2124268 +%patch -P 73 -p1 -b .scan-size # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -980,6 +985,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Wed Sep 17 2025 Zdenek Dohnal - 3.25.6-1 +- hp-scan command failed to run and gives an error (fedora#2395809) + * Tue Aug 12 2025 Zdenek Dohnal - 3.25.6-1 - hplip-3.25.6 is available (fedora#2386814) From be70bd6792c1b3d232805da4c8678273e2ddf7c6 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Wed, 17 Sep 2025 14:08:07 +0200 Subject: [PATCH 83/84] Use new HP GPG key for plugin validation HP now uses new key pair for signing plugin tarball as fix for CVE-2025-43023, but hplip code was still downloading the old one, thus validation always failed. --- hplip-new-gpg-key.patch | 13 +++++++++++++ hplip.spec | 6 ++++++ 2 files changed, 19 insertions(+) create mode 100644 hplip-new-gpg-key.patch diff --git a/hplip-new-gpg-key.patch b/hplip-new-gpg-key.patch new file mode 100644 index 0000000..4aa433b --- /dev/null +++ b/hplip-new-gpg-key.patch @@ -0,0 +1,13 @@ +diff --git a/base/validation.py b/base/validation.py +index 23645c6..a8e3253 100644 +--- a/base/validation.py ++++ b/base/validation.py +@@ -45,7 +45,7 @@ class GPG_Verification(DigiSign_Verification): + def __init__(self, keyservers = ['keyserver.ubuntu.com', + 'pgp.surf.nl', + 'pgp.mit.edu'], +- key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9): ++ key = 0x82FFA7C6AA7411D934BDE173AC69536A2CF3A243): + self.__keyservers = keyservers + self.__key = key + self.__gpg = utils.which('gpg',True) diff --git a/hplip.spec b/hplip.spec index f7d6bdd..6fb946e 100644 --- a/hplip.spec +++ b/hplip.spec @@ -250,6 +250,9 @@ Patch72: hplip-no-urlopener.patch # hp-scan command failed to run and gives an error (fedora#2395809) # https://bugs.launchpad.net/hplip/+bug/2124268 Patch73: hplip-scan-size.patch +# HP uses new GPG key, but hplip code does not use it +# https://developers.hp.com/hp-linux-imaging-and-printing/hplipDigitalCertificate.html +Patch74: hplip-new-gpg-key.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -614,6 +617,8 @@ done %patch -P 72 -p1 -b .no-urlopener # https://bugs.launchpad.net/hplip/+bug/2124268 %patch -P 73 -p1 -b .scan-size +# Use new GPG key from Ubuntu keyserver +%patch -P 74 -p1 -b .new-gpg-key # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -987,6 +992,7 @@ find doc/images -type f -exec chmod 644 {} \; %changelog * Wed Sep 17 2025 Zdenek Dohnal - 3.25.6-1 - hp-scan command failed to run and gives an error (fedora#2395809) +- use new GPG key from HP - new key was used as fix for CVE-2025-43023 * Tue Aug 12 2025 Zdenek Dohnal - 3.25.6-1 - hplip-3.25.6 is available (fedora#2386814) From 075cac0afbd6516bdd9adef4eece7870c62d1e72 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Fri, 9 Jan 2026 13:04:20 +0100 Subject: [PATCH 84/84] hplip-3.25.8 is available (fedora#2415311) --- .gitignore | 1 + hplip-add-ppd-crash.patch | 13 ------------ hplip-keyserver.patch | 44 --------------------------------------- hplip-new-gpg-key.patch | 13 ------------ hplip-plugin-stdout.patch | 41 ++++++++++++++++++++++++++++++++++++ hplip.spec | 19 +++++++++++------ sources | 2 +- 7 files changed, 56 insertions(+), 77 deletions(-) delete mode 100644 hplip-new-gpg-key.patch create mode 100644 hplip-plugin-stdout.patch diff --git a/.gitignore b/.gitignore index 89da7d2..00397c1 100644 --- a/.gitignore +++ b/.gitignore @@ -115,3 +115,4 @@ hplip-3.10.6.tar.gz /hplip-3.24.4-repack.tar.gz /hplip-3.25.2-repack.tar.gz /hplip-3.25.6-repack.tar.gz +/hplip-3.25.8-repack.tar.gz diff --git a/hplip-add-ppd-crash.patch b/hplip-add-ppd-crash.patch index 798630a..beb070d 100644 --- a/hplip-add-ppd-crash.patch +++ b/hplip-add-ppd-crash.patch @@ -1,16 +1,3 @@ -diff -up hplip-3.23.3/setup.py.add-ppd-crash hplip-3.23.3/setup.py ---- hplip-3.23.3/setup.py.add-ppd-crash 2023-03-28 09:26:11.000000000 +0200 -+++ hplip-3.23.3/setup.py 2023-05-29 13:55:03.443497903 +0200 -@@ -553,6 +553,9 @@ else: # INTERACTIVE_MODE - - if file_path.endswith('.gz'): - nickname = gzip.GzipFile(file_path, 'r').read(4096) -+ if sys.version_info[0] > 2: -+ nickname = nickname.decode('utf-8') -+ - else: - nickname = open(file_path, 'r').read(4096) - diff -up hplip-3.23.3/ui5/setupdialog.py.add-ppd-crash hplip-3.23.3/ui5/setupdialog.py --- hplip-3.23.3/ui5/setupdialog.py.add-ppd-crash 2023-05-29 13:55:03.443497903 +0200 +++ hplip-3.23.3/ui5/setupdialog.py 2023-05-29 13:57:19.014700721 +0200 diff --git a/hplip-keyserver.patch b/hplip-keyserver.patch index 9b457f1..c525503 100644 --- a/hplip-keyserver.patch +++ b/hplip-keyserver.patch @@ -10,47 +10,3 @@ index 99bda7b..0f90f92 100644 self.prev_length = len(y) self.spinner_pos = (self.spinner_pos + 1) % 8 -diff --git a/base/validation.py b/base/validation.py -index ee6b05a..5e955dc 100644 ---- a/base/validation.py -+++ b/base/validation.py -@@ -42,8 +42,11 @@ class DigiSign_Verification(object): - - - class GPG_Verification(DigiSign_Verification): -- def __init__(self, pgp_site = 'pgp.mit.edu', key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9): -- self.__pgp_site = pgp_site -+ def __init__(self, keyservers = ['keyserver.ubuntu.com', -+ 'pgp.surf.nl', -+ 'pgp.mit.edu'], -+ key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9): -+ self.__keyservers = keyservers - self.__key = key - self.__gpg = utils.which('gpg',True) - -@@ -82,13 +85,18 @@ class GPG_Verification(DigiSign_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) -- -- log.info("Receiving digital keys: %s" % cmd) -- status, output = utils.run(cmd) -- log.debug(output) -+ for kserver in self.__keyservers: -+ cmd = '%s --homedir %s --no-permission-warning --keyserver %s --recv-keys 0x%X' \ -+ % (self.__gpg, self.__gpg_dir, kserver, self.__key) -+ -+ log.info("Receiving digital keys: %s" % cmd) -+ status, output = utils.run(cmd) -+ log.debug(output) -+ -+ if not status: -+ break -+ log.info("Receiving keys from {} failed, trying the next keyserver." -+ .format(kserver)) - - self.__change_owner(True) - diff --git a/hplip-new-gpg-key.patch b/hplip-new-gpg-key.patch deleted file mode 100644 index 4aa433b..0000000 --- a/hplip-new-gpg-key.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/base/validation.py b/base/validation.py -index 23645c6..a8e3253 100644 ---- a/base/validation.py -+++ b/base/validation.py -@@ -45,7 +45,7 @@ class GPG_Verification(DigiSign_Verification): - def __init__(self, keyservers = ['keyserver.ubuntu.com', - 'pgp.surf.nl', - 'pgp.mit.edu'], -- key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9): -+ key = 0x82FFA7C6AA7411D934BDE173AC69536A2CF3A243): - self.__keyservers = keyservers - self.__key = key - self.__gpg = utils.which('gpg',True) diff --git a/hplip-plugin-stdout.patch b/hplip-plugin-stdout.patch new file mode 100644 index 0000000..92f8016 --- /dev/null +++ b/hplip-plugin-stdout.patch @@ -0,0 +1,41 @@ +diff --git a/base/os_utils.py b/base/os_utils.py +index 82a8b42..d918822 100644 +--- a/base/os_utils.py ++++ b/base/os_utils.py +@@ -26,6 +26,7 @@ import locale + import stat + import subprocess + import shlex ++import sys + + #Local + from . import logger +@@ -37,17 +38,22 @@ def execute(cmd): + try: + # Use shlex.split to safely split the command into arguments + args = shlex.split(cmd) +- process = subprocess.Popen(args,stdout=subprocess.PIPE, stderr=subprocess.PIPE) ++ process = subprocess.Popen(args,stdout=sys.stdout, stderr=sys.stderr, stdin=sys.stdin) + process.wait() + stdout, stderr = process.communicate() +- log.debug(f"Command executed: {cmd}\n{stdout.decode()}") ++ ++ log.debug(f"Command executed: {cmd}{f'\n{stdout.decode()}' if stdout else ''}") ++ + if process.returncode != 0: +- error_message = f"Command failed with return code {process.returncode}: {cmd}\n{stderr.decode()}" +- log.error(error_message) ++ log.error(f"Command failed with return code" \ ++ f"{process.returncode}: {cmd}" \ ++ f"{f'\n{stderr.decode()}' if stderr else ''}") ++ + return process.returncode + except subprocess.CalledProcessError as e: +- error_message = f"Command failed with return code {e.returncode}: {cmd}\n{e.stderr.decode()}" +- log.error(error_message) ++ log.error(f"Command failed with return code" \ ++ f"{e.returncode}: {cmd}" \ ++ f"{f'\n{e.stderr.decode()}' if e.stderr else ''}") + return e.returncode + except Exception as e: + log.error(f"Error executing command: {cmd}\n{str(e)}") diff --git a/hplip.spec b/hplip.spec index 6fb946e..d6b78cd 100644 --- a/hplip.spec +++ b/hplip.spec @@ -6,7 +6,7 @@ Summary: HP Linux Imaging and Printing Project Name: hplip -Version: 3.25.6 +Version: 3.25.8 Release: 1%{?dist} # most files (base/*, *, ui*/...) - GPL2+ # prnt/hpijs/ jpeg related files - IJG @@ -76,6 +76,8 @@ Patch30: hplip-hpfax-importerror-print.patch Patch31: hplip-wifisetup.patch # pgp.mit.edu keyserver got bad connection, so we need to have pool of keyservers # to choose (Bz#1641100, launchpad#1799212) +# F42+ update: HP has new key, and currently only on Ubuntu keyserver - so this patch now +# only adjust terminal output, we will see if connection problems reappear Patch32: hplip-keyserver.patch # QMessagebox call was copy-pasted from Qt4 version, but Qt5 has different arguments, # This patch solves most of them @@ -250,9 +252,11 @@ Patch72: hplip-no-urlopener.patch # hp-scan command failed to run and gives an error (fedora#2395809) # https://bugs.launchpad.net/hplip/+bug/2124268 Patch73: hplip-scan-size.patch -# HP uses new GPG key, but hplip code does not use it -# https://developers.hp.com/hp-linux-imaging-and-printing/hplipDigitalCertificate.html -Patch74: hplip-new-gpg-key.patch +# 3.25.8 brings new implementation for calling commands in subprocess, +# but again directs I/O into pipes, which does not work for TUI plugin +# installation. Additionally it tracebacks if stdout/stderr is None +# https://bugs.launchpad.net/hplip/+bug/2110101 +Patch74: hplip-plugin-stdout.patch %if 0%{?fedora} || 0%{?rhel} <= 8 # mention hplip-gui if you want to have GUI @@ -617,8 +621,8 @@ done %patch -P 72 -p1 -b .no-urlopener # https://bugs.launchpad.net/hplip/+bug/2124268 %patch -P 73 -p1 -b .scan-size -# Use new GPG key from Ubuntu keyserver -%patch -P 74 -p1 -b .new-gpg-key +# https://bugs.launchpad.net/hplip/+bug/2110101 +%patch -P 74 -p1 -b .plugin-stdout # Fedora specific patches now, don't put a generic patches under it %if 0%{?fedora} || 0%{?rhel} <= 8 @@ -990,6 +994,9 @@ find doc/images -type f -exec chmod 644 {} \; %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio %changelog +* Fri Jan 09 2026 Zdenek Dohnal - 3.25.8-1 +- hplip-3.25.8 is available (fedora#2415311) + * Wed Sep 17 2025 Zdenek Dohnal - 3.25.6-1 - hp-scan command failed to run and gives an error (fedora#2395809) - use new GPG key from HP - new key was used as fix for CVE-2025-43023 diff --git a/sources b/sources index 3eebca3..601b241 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hplip-3.25.6-repack.tar.gz) = 1b431142e2516e383d5fcbaa1487c5a680b60a409bec02de4526ac82d2a88a4b2b28f3813740ae8f7f32f02d058ae6e986efc8e57a30d1c560132dc4014b87b4 +SHA512 (hplip-3.25.8-repack.tar.gz) = e4f82215e2753bee864e5ba643be2ce3566f1691638c35c74016279f92c872713d06e38a066d283f03f3e571d10c8ac2f1539bd32f6bafd1958641d96fe11059