diff --git a/0001-Retry-Validate-Job-once-if-needed-Issue-132.patch b/0001-Retry-Validate-Job-once-if-needed-Issue-132.patch new file mode 100644 index 0000000..a677090 --- /dev/null +++ b/0001-Retry-Validate-Job-once-if-needed-Issue-132.patch @@ -0,0 +1,43 @@ +From 6e6999b1f74457b7fd6057a31f1d3606de19a05b Mon Sep 17 00:00:00 2001 +From: Michael R Sweet +Date: Fri, 9 Apr 2021 10:20:04 -0400 +Subject: [PATCH] Retry Validate-Job once, if needed (Issue #132) + +--- + CHANGES.md | 1 + + backend/ipp.c | 14 +++++++++++++- + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/backend/ipp.c b/backend/ipp.c +index 63353a66d..020ab7fd4 100644 +--- a/backend/ipp.c ++++ b/backend/ipp.c +@@ -256,6 +257,7 @@ main(int argc, /* I - Number of command-line args */ + get_job_attrs = 0, /* Does printer support Get-Job-Attributes? */ + send_document = 0, /* Does printer support Send-Document? */ + validate_job = 0, /* Does printer support Validate-Job? */ ++ validate_retried = 0, /* Was Validate-Job request retried? */ + copies, /* Number of copies for job */ + copies_remaining; /* Number of copies remaining */ + const char *content_type, /* CONTENT_TYPE environment variable */ +@@ -1559,7 +1561,17 @@ main(int argc, /* I - Number of command-line args */ + ipp_status == IPP_STATUS_ERROR_BAD_REQUEST) + break; + else if (job_auth == NULL && ipp_status > IPP_STATUS_ERROR_BAD_REQUEST) ++ { ++ if (!validate_retried) ++ { ++ // Retry Validate-Job operation once, to work around known printer bug... ++ validate_retried = 1; ++ sleep(10); ++ continue; ++ } ++ + goto cleanup; ++ } + } + + /* +-- +2.26.3 + diff --git a/cups.spec b/cups.spec index aa75960..ef74468 100644 --- a/cups.spec +++ b/cups.spec @@ -78,6 +78,9 @@ Patch15: 0001-backend-usb-libusb.c-Use-60s-timeout-for-reading-at-.patch # 1949054 - Use nss-user-lookup.target instead of sssd.service and ypbind.service # https://github.com/OpenPrinting/cups/pull/141 Patch16: cups-nssuserlookup-target.patch +# 1949068 - Print queue is paused after ipp backend ends with CUPS_BACKEND_STOP +# https://github.com/OpenPrinting/cups/pull/132 +Patch17: 0001-Retry-Validate-Job-once-if-needed-Issue-132.patch ##### Patches removed because IMHO they aren't no longer needed ##### but still I'll leave them in git in case their removal @@ -285,6 +288,8 @@ to CUPS daemon. This solution will substitute printer drivers and raw queues in %patch15 -p1 -b .usb-read-timeout # 1949054 - Use nss-user-lookup.target instead of sssd.service and ypbind.service %patch16 -p1 -b .nssuserlookup-target +# 1949068 - Print queue is paused after ipp backend ends with CUPS_BACKEND_STOP +%patch17 -p1 -b .validate-retry %if %{lspp} @@ -685,6 +690,7 @@ rm -f %{cups_serverbin}/backend/smb * Wed Apr 14 2021 Zdenek Dohnal - 1:2.3.3op2-4 - 1935318 - old samsung USB devices malfunction with the current (250ms) timeout for usb bulk transaction - 1949054 - Use nss-user-lookup.target instead of sssd.service and ypbind.service +- 1949068 - Print queue is paused after ipp backend ends with CUPS_BACKEND_STOP * Mon Mar 22 2021 Zdenek Dohnal - 1:2.3.3op2-3 - add [Job N] in logs for better debugging