Subject: [PATCH] gnu: hplip: Fix USB timeouts.
From: Bruno Victal <[email-masked]>
To: [email-masked]
Cc: Bruno Victal <[email-masked]>
Date: Tue, 17 Oct 2023 17:25:48 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/patches/hplip-usb-timeout.patch: New file.
* gnu/local.mk: Register it.
* gnu/packages/cups.scm (hplip): Use it.
---
 gnu/local.mk                                 |  1 +
 gnu/packages/cups.scm                        |  1 +
 gnu/packages/patches/hplip-usb-timeout.patch | 24 ++++++++++++++++++++
 3 files changed, 26 insertions(+)
 create mode 100644 gnu/packages/patches/hplip-usb-timeout.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index daacd786a7..97634d5210 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1401,6 +1401,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/heimdal-CVE-2022-45142.patch		\
   %D%/packages/patches/helm-fix-gcc-9-build.patch		\
   %D%/packages/patches/highlight-gui-data-dir.patch		\
+  %D%/packages/patches/hplip-usb-timeout.patch			\
   %D%/packages/patches/http-parser-CVE-2020-8287.patch		\
   %D%/packages/patches/htslib-for-stringtie.patch		\
   %D%/packages/patches/hubbub-sort-entities.patch		\
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 647b89dc03..fc3ff52cbe 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -522,6 +522,7 @@ (define-public hplip
               (sha256
                (base32
                 "0ihv9ddjrjx5bdf8pwc2fvljkpfzq4qi9r2awm8dgky053v0bk7p"))
+              (patches (search-patches "hplip-usb-timeout.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/patches/hplip-usb-timeout.patch b/gnu/packages/patches/hplip-usb-timeout.patch
new file mode 100644
index 0000000000..b98ed1cc78
--- /dev/null
+++ b/gnu/packages/patches/hplip-usb-timeout.patch
@@ -0,0 +1,24 @@
+# Source: <https://bugs.launchpad.net/hplip/+bug/1922404>
+
+--- a/config_usb_printer.py
++++ b/config_usb_printer.py
+@@ -28,6 +28,7 @@
+ # Std Lib
+ import sys
+ import os
++import time
+ 
+ # Local
+ from base.g import *
+@@ -181,9 +182,10 @@
+        # ******************************* RUNNING FIRMWARE DOWNLOAD TO DEVICE FOR SUPPORTED PRINTER'S
+        fw_download_req = mq.get('fw-download', False)
+        if fw_download_req:
+-           fw_cmd = "hp-firmware -y3 -s %s"%param
++           fw_cmd = "hp-firmware -n -y3 -s %s"%param
+            log.info(fw_cmd)
+            fw_sts, fw_out = utils.run(fw_cmd)
++           time.sleep(5)
+            if fw_sts == 0:
+                log.debug("Firmware downloaded to %s "%device_uri)
+            else:

base-commit: 7823c6504082a0cfbd98beb301e041fb8bc4e44e
-- 
2.41.0