From f62a89ac9072a8b89fb96cf5e6e42f15dbe9df14 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Mon, 8 Jun 2020 13:09:28 +0200 Subject: [PATCH] 1.27.5 --- .gitignore | 1 + cups-filters-remove-queues-on-restart.patch | 162 ++++++++++++++++++++ cups-filters.spec | 9 +- sources | 2 +- 4 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 cups-filters-remove-queues-on-restart.patch diff --git a/.gitignore b/.gitignore index 3203396..ea2a123 100644 --- a/.gitignore +++ b/.gitignore @@ -97,3 +97,4 @@ /cups-filters-1.27.2.tar.xz /cups-filters-1.27.3.tar.xz /cups-filters-1.27.4.tar.xz +/cups-filters-1.27.5.tar.xz diff --git a/cups-filters-remove-queues-on-restart.patch b/cups-filters-remove-queues-on-restart.patch new file mode 100644 index 0000000..33f20f1 --- /dev/null +++ b/cups-filters-remove-queues-on-restart.patch @@ -0,0 +1,162 @@ +diff --git a/NEWS b/NEWS +index c2fce749..24d888ce 100644 +--- a/NEWS ++++ b/NEWS +@@ -3,12 +3,6 @@ NEWS - OpenPrinting CUPS Filters v1.27.5 - 2020-06-05 + + CHANGES IN V1.27.5 + +- - cups-browsed: Do not remove the created local queues on +- shutdown, to avoid their re-creation on restart, so that +- desktops get no cluttered with notifications of new queues +- being created. One can return to the old behavior via +- "KeepGeneratedQueuesOnShutdown No" in cups-browsed.conf +- (Ubuntu bug #1869981, #1878241). + - cups-browsed: Do not accept DNS-SD broadcasts of IPPS type + of "remote" CUPS queues of another CUPS instance on the + local machine. This way we get a local queue pointing to +diff --git a/utils/cups-browsed.c b/utils/cups-browsed.c +index 7ca6724c..dca3972f 100644 +--- a/utils/cups-browsed.c ++++ b/utils/cups-browsed.c +@@ -456,7 +456,6 @@ static create_ipp_printer_queues_t CreateIPPPrinterQueues = IPP_PRINTERS_DRIVERL + static create_ipp_printer_queues_t CreateIPPPrinterQueues = IPP_PRINTERS_ALL; + #endif + #endif +-static unsigned int KeepGeneratedQueuesOnShutdown = 1; + static ipp_queue_type_t IPPPrinterQueueType = PPD_YES; + static int NewIPPPrinterQueuesShared = 0; + static int AutoClustering = 1; +@@ -10200,17 +10199,9 @@ void avahi_browser_shutdown() { + for (p = (remote_printer_t *)cupsArrayFirst(remote_printers); + p; p = (remote_printer_t *)cupsArrayNext(remote_printers)) { + if (p->type && p->type[0]) { +- if (KeepGeneratedQueuesOnShutdown) { +- if (p->status != STATUS_TO_BE_RELEASED && +- p->status != STATUS_DISAPPEARED) { +- p->status = STATUS_UNCONFIRMED; +- p->timeout = time(NULL) + TIMEOUT_CONFIRM; +- } +- } else { +- if (p->status != STATUS_TO_BE_RELEASED) +- p->status = STATUS_DISAPPEARED; +- p->timeout = time(NULL) + TIMEOUT_IMMEDIATELY; +- } ++ if (p->status != STATUS_TO_BE_RELEASED) ++ p->status = STATUS_DISAPPEARED; ++ p->timeout = time(NULL) + TIMEOUT_IMMEDIATELY; + } + } + if (in_shutdown == 0) +@@ -11645,13 +11636,6 @@ read_configuration (const char *filename) + else if (!strcasecmp(value, "no") || !strcasecmp(value, "false") || + !strcasecmp(value, "off") || !strcasecmp(value, "0")) + NewBrowsePollQueuesShared = 0; +- } else if (!strcasecmp(line, "KeepGeneratedQueuesOnShutdown") && value) { +- if (!strcasecmp(value, "yes") || !strcasecmp(value, "true") || +- !strcasecmp(value, "on") || !strcasecmp(value, "1")) +- KeepGeneratedQueuesOnShutdown = 1; +- else if (!strcasecmp(value, "no") || !strcasecmp(value, "false") || +- !strcasecmp(value, "off") || !strcasecmp(value, "0")) +- KeepGeneratedQueuesOnShutdown = 0; + } else if (!strcasecmp(line, "AutoClustering") && value) { + if (!strcasecmp(value, "yes") || !strcasecmp(value, "true") || + !strcasecmp(value, "on") || !strcasecmp(value, "1")) +@@ -12444,13 +12428,12 @@ fail: + g_object_unref (proxy); + + /* Remove all queues which we have set up */ +- if (KeepGeneratedQueuesOnShutdown == 0) +- for (p = (remote_printer_t *)cupsArrayFirst(remote_printers); +- p; p = (remote_printer_t *)cupsArrayNext(remote_printers)) { +- if (p->status != STATUS_TO_BE_RELEASED) +- p->status = STATUS_DISAPPEARED; +- p->timeout = time(NULL) + TIMEOUT_IMMEDIATELY; +- } ++ for (p = (remote_printer_t *)cupsArrayFirst(remote_printers); ++ p; p = (remote_printer_t *)cupsArrayNext(remote_printers)) { ++ if (p->status != STATUS_TO_BE_RELEASED) ++ p->status = STATUS_DISAPPEARED; ++ p->timeout = time(NULL) + TIMEOUT_IMMEDIATELY; ++ } + update_cups_queues(NULL); + + cancel_subscription (subscription_id); +diff --git a/utils/cups-browsed.conf.5 b/utils/cups-browsed.conf.5 +index 8ef649fd..99ed3796 100644 +--- a/utils/cups-browsed.conf.5 ++++ b/utils/cups-browsed.conf.5 +@@ -732,27 +732,6 @@ not to share newly discovered IPP printers. + .fam C + NewIPPPrinterQueuesShared Yes + +-.fam T +-.fi +-How to handle the print queues cups-browsed creates when cups-browsed +-is shut down: +-.PP +-"KeepGeneratedQueuesOnShutdown No" makes the queues being +-removed. This makes sense as these queues only work while cups-browsed +-is running. cups-browsed has to determine to which member printer of a +-cluster to pass on the job. +-.PP +-"KeepGeneratedQueuesOnShutdown Yes" (the default) makes the queues not +-being removed. This is the recommended setting for a system where +-cups-browsed is permanently running and only stopped for short times +-(like log rotation) or on shutdown. This avoids the re-creation of the +-queues when cups-browsed is restarted, which often causes a clutter of +-CUPS notifications on the desktop. +-.PP +-.nf +-.fam C +- KeepGeneratedQueuesOnShutdown No +- + .fam T + .fi + If there is more than one remote CUPS printer whose local queue +@@ -869,7 +848,7 @@ local queue named "LJ4050": + .fi + As DNS-SD service names are unique in a network you can create a + cluster from exactly specified printers (spaces replaced by +-underscores): ++underscors): + .PP + .nf + .fam C +diff --git a/utils/cups-browsed.conf.in b/utils/cups-browsed.conf.in +index 7e248c51..ca4371fe 100644 +--- a/utils/cups-browsed.conf.in ++++ b/utils/cups-browsed.conf.in +@@ -552,23 +552,6 @@ BrowseRemoteProtocols @BROWSEREMOTEPROTOCOLS@ + # NewIPPPrinterQueuesShared Yes + + +-# How to handle the print queues cups-browsed creates when +-# cups-browsed is shut down: +- +-# "KeepGeneratedQueuesOnShutdown No" makes the queues being +-# removed. This makes sense as these queues only work while +-# cups-browsed is running. cups-browsed has to determine to which +-# member printer of a cluster to pass on the job. +- +-# "KeepGeneratedQueuesOnShutdown Yes" (the default) makes the queues +-# not being removed. This is the recommended setting for a system +-# where cups-browsed is permanently running and only stopped for short +-# times (like log rotation) or on shutdown. This avoids the +-# re-creation of the queues when cups-browsed is restarted, which +-# often causes a clutter of CUPS notifications on the desktop. +- +-# KeepGeneratedQueuesOnShutdown No +- + # If there is more than one remote CUPS printer whose local queue + # would get the same name and AutoClustering is set to "Yes" (the + # default) only one local queue is created which makes up a +@@ -664,7 +647,7 @@ BrowseRemoteProtocols @BROWSEREMOTEPROTOCOLS@ + + # As DNS-SD service names are unique in a network you can create a + # cluster from exactly specified printers (spaces replaced by +-# underscores): ++# underscors): + + # Cluster hrdep: oldlaser_@_hr-server1 newlaser_@_hr-server2 + diff --git a/cups-filters.spec b/cups-filters.spec index a150469..0ad3943 100644 --- a/cups-filters.spec +++ b/cups-filters.spec @@ -3,7 +3,7 @@ Summary: OpenPrinting CUPS filters and backends Name: cups-filters -Version: 1.27.4 +Version: 1.27.5 Release: 1%{?dist} # For a breakdown of the licensing, see COPYING file @@ -27,6 +27,9 @@ Patch01: cups-filters-createall.patch # instead of 'cups-browsed' as Ubuntu does. I can repack the project later, # so cups-browsed would have separate sub package, so the link would be correct Patch02: cups-browsed.8.patch +# upstream decided on keep queues after restart - IMO it causes more issues than it +# solves https://github.com/OpenPrinting/cups-filters/issues/241 +Patch03: cups-filters-remove-queues-on-restart.patch Requires: cups-filters-libs%{?_isa} = %{version}-%{release} @@ -143,6 +146,7 @@ This is the development package for OpenPrinting CUPS filters and backends. %patch01 -p1 -b .createall # links in manpage %patch02 -p1 -b .manpage +%patch03 -p1 -b .remove-queues-on-restart %build # work-around Rpath @@ -308,6 +312,9 @@ done %{_libdir}/libfontembed.so %changelog +* Mon Jun 08 2020 Zdenek Dohnal - 1.27.5-1 +- 1.27.5 + * Tue Apr 14 2020 Zdenek Dohnal - 1.27.4-1 - 1.27.4 diff --git a/sources b/sources index 15f72c4..ca231de 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (cups-filters-1.27.4.tar.xz) = 8005e94bb6b06d0a15fa4dfd8455d0bc67418478bf517e205af1c8c0018681a97ae9ea486db07570050ebeeb7f63f75319a8fe012c112c6d16c0941299eaa50e +SHA512 (cups-filters-1.27.5.tar.xz) = 8bc917b2a168add1062d091d02d99c39d72861c0d0cb1242c34b2bf117c9943e7fdc1fe002de7cde4cb1919fbce41073adc34916c328fc99e66e389b0a4fe103