diff --git a/SOURCES/0001-Use-cupsGetNamedDest-for-legacy-printing-APIs-Issue-.patch b/SOURCES/0001-Use-cupsGetNamedDest-for-legacy-printing-APIs-Issue-.patch new file mode 100644 index 0000000..5e96f57 --- /dev/null +++ b/SOURCES/0001-Use-cupsGetNamedDest-for-legacy-printing-APIs-Issue-.patch @@ -0,0 +1,109 @@ +From 7271db11d27fe436f0c743bed3be8a5c6f93f2c2 Mon Sep 17 00:00:00 2001 +From: Michael R Sweet +Date: Mon, 9 Apr 2018 09:50:19 -0400 +Subject: [PATCH] Use cupsGetNamedDest for legacy printing APIs (Issue #5288) + +--- + cups/util.c | 59 +++++----------------------- + xcode/CUPS.xcodeproj/project.pbxproj | 6 ++- + 2 files changed, 15 insertions(+), 50 deletions(-) + +diff --git a/cups/util.c b/cups/util.c +index ebc54d3cf..b15963e9e 100644 +--- a/cups/util.c ++++ b/cups/util.c +@@ -21,19 +22,6 @@ + #endif /* WIN32 || __EMX__ */ + + +-/* +- * Enumeration data and callback... +- */ +- +-typedef struct _cups_createdata_s +-{ +- const char *name; /* Destination name */ +- cups_dest_t *dest; /* Matching destination */ +-} _cups_createdata_t; +- +-static int cups_create_cb(_cups_createdata_t *data, unsigned flags, cups_dest_t *dest); +- +- + /* + * 'cupsCancelJob()' - Cancel a print job on the default server. + * +@@ -168,7 +156,7 @@ cupsCreateJob( + { + int job_id = 0; /* job-id value */ + ipp_status_t status; /* Create-Job status */ +- _cups_createdata_t data; /* Enumeration data */ ++ cups_dest_t *dest; /* Destination */ + cups_dinfo_t *info; /* Destination information */ + + +@@ -188,12 +176,7 @@ cupsCreateJob( + * Lookup the destination... + */ + +- data.name = name; +- data.dest = NULL; +- +- cupsEnumDests(0, 1000, NULL, 0, 0, (cups_dest_cb_t)cups_create_cb, &data); +- +- if (!data.dest) ++ if ((dest = cupsGetNamedDest(http, name, NULL)) == NULL) + { + DEBUG_puts("1cupsCreateJob: Destination not found."); + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(ENOENT), 0); +@@ -205,18 +188,18 @@ cupsCreateJob( + */ + + DEBUG_puts("1cupsCreateJob: Querying destination info."); +- if ((info = cupsCopyDestInfo(http, data.dest)) == NULL) ++ if ((info = cupsCopyDestInfo(http, dest)) == NULL) + { + DEBUG_puts("1cupsCreateJob: Query failed."); +- cupsFreeDests(1, data.dest); ++ cupsFreeDests(1, dest); + return (0); + } + +- status = cupsCreateDestJob(http, data.dest, info, &job_id, title, num_options, options); ++ status = cupsCreateDestJob(http, dest, info, &job_id, title, num_options, options); + DEBUG_printf(("1cupsCreateJob: cupsCreateDestJob returned %04x (%s)", status, ippErrorString(status))); + + cupsFreeDestInfo(info); +- cupsFreeDests(1, data.dest); ++ cupsFreeDests(1, dest); + + /* + * Return the job... +@@ -968,25 +951,3 @@ cupsStartDocument( + return (status); + } + +- +-/* +- * 'cups_create_cb()' - Find the destination for printing. +- */ +- +-static int /* O - 0 on match */ +-cups_create_cb( +- _cups_createdata_t *data, /* I - Data from cupsCreateJob call */ +- unsigned flags, /* I - Enumeration flags */ +- cups_dest_t *dest) /* I - Destination */ +-{ +- DEBUG_printf(("2cups_create_cb(data=%p(%s), flags=%08x, dest=%p(%s))", (void *)data, data->name, flags, (void *)dest, dest->name)); +- +- (void)flags; +- +- if (dest->instance || strcasecmp(data->name, dest->name)) +- return (1); +- +- cupsCopyDest(dest, 0, &data->dest); +- +- return (0); +-} +-- +2.35.1 + diff --git a/SOURCES/cups-cupsd-too-chatty.patch b/SOURCES/cups-cupsd-too-chatty.patch new file mode 100644 index 0000000..777f78d --- /dev/null +++ b/SOURCES/cups-cupsd-too-chatty.patch @@ -0,0 +1,12 @@ +diff -Napur cups-2.2.6-old/scheduler/job.c cups-2.2.6-new/scheduler/job.c +--- cups-2.2.6-old/scheduler/job.c 2022-04-12 17:32:00.635282080 -0700 ++++ cups-2.2.6-new/scheduler/job.c 2022-04-12 17:33:34.349452614 -0700 +@@ -474,7 +474,7 @@ cupsdCleanJobs(void) + cupsdLogJob(job, CUPSD_LOG_DEBUG, "Removing from history."); + cupsdDeleteJob(job, CUPSD_JOB_PURGE); + } +- else if (job->file_time && job->file_time <= curtime) ++ else if (job->file_time && job->file_time <= curtime && job->num_files > 0) + { + cupsdLogJob(job, CUPSD_LOG_DEBUG, "Removing document files."); + remove_job_files(job); diff --git a/SPECS/cups.spec b/SPECS/cups.spec index 719818b..d38d764 100644 --- a/SPECS/cups.spec +++ b/SPECS/cups.spec @@ -15,7 +15,7 @@ Summary: CUPS printing system Name: cups Epoch: 1 Version: 2.2.6 -Release: 45%{?dist}.1 +Release: 46%{?dist} License: GPLv2+ and LGPLv2 with exceptions and AML Url: http://www.cups.org/ Source0: https://github.com/apple/cups/releases/download/v%{VERSION}/cups-%{VERSION}-source.tar.gz @@ -129,8 +129,12 @@ Patch70: 0001-Add-with-idle-exit-timeout-configure-option.patch Patch71: 0001-Add-with-systemd-timeoutstartsec-configure-option.patch # 2032965 - [RFE] RHEL8 - CUPS Web UI supports adding IPP Everywhere Patch72: cups-ippeve-web-support.patch -# 2073531 - 30-second delays printing to Windows 2016 server via HTTPS +# 2071417 - 30-second delays printing to Windows 2016 server via HTTPS Patch73: 0001-cups-tls-gnutls.c-Use-always-GNUTLS_SHUT_WR.patch +# 2074684 - lp to a remote server takes a long time +Patch74: 0001-Use-cupsGetNamedDest-for-legacy-printing-APIs-Issue-.patch +# 2074736 - CUPS is too chatty about "Removing document files." in debug mode +Patch75: cups-cupsd-too-chatty.patch Patch1000: cups-lspp.patch @@ -403,8 +407,12 @@ Sends IPP requests to the specified URI and tests and/or displays the results. %patch71 -p1 -b .timeoutstartsec # 2032965 - [RFE] RHEL8 - CUPS Web UI supports adding IPP Everywhere %patch72 -p1 -b .ippeve-web-support -# 2073531 - 30-second delays printing to Windows 2016 server via HTTPS +# 2071417 - 30-second delays printing to Windows 2016 server via HTTPS %patch73 -p1 -b .gnutlsbye +# 2074684 - lp to a remote server takes a long time +%patch74 -p1 -b .lp-long-time +# 2074736 - CUPS is too chatty about "Removing document files." in debug mode +%patch75 -p1 -b .cupsd-too-chatty sed -i -e '1iMaxLogSize 0' conf/cupsd.conf.in @@ -824,8 +832,12 @@ rm -f %{cups_serverbin}/backend/smb %{_mandir}/man5/ipptoolfile.5.gz %changelog -* Sat Apr 09 2022 Zdenek Dohnal - 1:2.2.6-45.1 -- 2073531 - 30-second delays printing to Windows 2016 server via HTTPS +* Fri May 13 2022 Zdenek Dohnal - 1:2.2.6-46 +- 2074684 - lp to a remote server takes a long time +- 2074736 - CUPS is too chatty about "Removing document files." in debug mode + +* Fri Apr 08 2022 Zdenek Dohnal - 1:2.2.6-45 +- 2071417 - 30-second delays printing to Windows 2016 server via HTTPS * Wed Jan 19 2022 Zdenek Dohnal - 1:2.2.6-44 - 2015182 - RFE: Implement IdleExitTimeout configuration during build