[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#927784: marked as done (unblock: cups/2.2.10-6)



Your message dated Tue, 23 Apr 2019 17:29:14 +0000
with message-id <E1hIzEI-0003oE-S8@respighi.debian.org>
and subject line unblock cups
has caused the Debian Bug report #927784,
regarding unblock: cups/2.2.10-6
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
927784: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927784
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

I hereby request an upload authorization towards an unblock for package cups
2.2.10-6; which was not uploaded yet.

  cups (2.2.10-6) unstable; urgency=medium

    * Backport patch from upstream's 2.2 "stable" branch:
      - Fix an issue with `PreserveJobHistory` and time values (Issue #5538)
        (Closes: #921741)

The `PreserveJobHistory` configuration doesn't work correctly in 2.2.10, and
this was fixed by upstream in 2.2.11; this upload has only a cherry-pick of
upstream's ba9d68cc7467a7a47ef219071902b9e9eb6dbc44 and would fix src:cups bug
#921741.

Both the concrete upstream diff and the full debdiff are attached.

Thanks for your consideration, cheers,
        OdyX

unblock cups/2.2.10-6
diff -Nru cups-2.2.10/debian/changelog cups-2.2.10/debian/changelog
--- cups-2.2.10/debian/changelog	2019-03-27 17:13:07.000000000 +0100
+++ cups-2.2.10/debian/changelog	2019-04-23 08:33:01.000000000 +0200
@@ -1,3 +1,11 @@
+cups (2.2.10-6) unstable; urgency=medium
+
+  * Backport patch from upstream's 2.2 "stable" branch:
+    - Fix an issue with `PreserveJobHistory` and time values (Issue #5538)
+      (Closes: #921741)
+
+ -- Didier Raboud <odyx@debian.org>  Tue, 23 Apr 2019 08:33:01 +0200
+
 cups (2.2.10-5) unstable; urgency=medium
 
   [ Helge Kreutzmann ]
diff -Nru cups-2.2.10/debian/.git-dpm cups-2.2.10/debian/.git-dpm
--- cups-2.2.10/debian/.git-dpm	2019-03-27 17:13:07.000000000 +0100
+++ cups-2.2.10/debian/.git-dpm	2019-04-23 08:33:01.000000000 +0200
@@ -1,6 +1,6 @@
 # see git-dpm(1) from git-dpm package
-2fb6d0075ed13f2fd03a8600a6ecb0892818116b
-2fb6d0075ed13f2fd03a8600a6ecb0892818116b
+9615ef5f2b8374bfe2816f8ff4314234362ce841
+9615ef5f2b8374bfe2816f8ff4314234362ce841
 25b2338346ef3abbb93ea88476887cba7b2b86f8
 25b2338346ef3abbb93ea88476887cba7b2b86f8
 cups_2.2.10.orig.tar.gz
diff -Nru cups-2.2.10/debian/patches/0045-Fix-an-issue-with-PreserveJobHistory-and-time-values.patch cups-2.2.10/debian/patches/0045-Fix-an-issue-with-PreserveJobHistory-and-time-values.patch
--- cups-2.2.10/debian/patches/0045-Fix-an-issue-with-PreserveJobHistory-and-time-values.patch	1970-01-01 01:00:00.000000000 +0100
+++ cups-2.2.10/debian/patches/0045-Fix-an-issue-with-PreserveJobHistory-and-time-values.patch	2019-04-23 08:33:01.000000000 +0200
@@ -0,0 +1,114 @@
+From 917e6f4ff70eed933c80d21eed4c6bfeb2cb68b7 Mon Sep 17 00:00:00 2001
+From: Michael R Sweet <michael.r.sweet@gmail.com>
+Date: Mon, 11 Mar 2019 13:54:46 -0400
+Subject: Fix an issue with `PreserveJobHistory` and time values (Issue #5538)
+
+Closes: #921741
+---
+ scheduler/job.c | 36 ++++++++++++++++++------------------
+ 1 file changed, 18 insertions(+), 18 deletions(-)
+
+diff --git a/scheduler/job.c b/scheduler/job.c
+index cc9283fb8..d4793cbb1 100644
+--- a/scheduler/job.c
++++ b/scheduler/job.c
+@@ -437,10 +437,20 @@ cupsdCleanJobs(void)
+   curtime          = time(NULL);
+   JobHistoryUpdate = 0;
+ 
++  cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdCleanJobs: curtime=%d", (int)curtime);
++
+   for (job = (cupsd_job_t *)cupsArrayFirst(Jobs);
+        job;
+        job = (cupsd_job_t *)cupsArrayNext(Jobs))
+   {
++    cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdCleanJobs: Job %d, state=%d, printer=%p, history_time=%d, file_time=%d", job->id, (int)job->state_value, (void *)job->printer, (int)job->history_time, (int)job->file_time);
++
++    if ((job->history_time && job->history_time) < JobHistoryUpdate || !JobHistoryUpdate)
++      JobHistoryUpdate = job->history_time;
++
++    if ((job->file_time && job->file_time < JobHistoryUpdate) || !JobHistoryUpdate)
++      JobHistoryUpdate = job->file_time;
++
+     if (job->state_value >= IPP_JOB_CANCELED && !job->printer)
+     {
+      /*
+@@ -456,21 +466,9 @@ cupsdCleanJobs(void)
+       else if (job->file_time && job->file_time <= curtime)
+       {
+         cupsdLogJob(job, CUPSD_LOG_DEBUG, "Removing document files.");
+-        cupsdLogJob(job, CUPSD_LOG_DEBUG2, "curtime=%ld, job->file_time=%ld", (long)curtime, (long)job->file_time);
+         remove_job_files(job);
+ 
+         cupsdMarkDirty(CUPSD_DIRTY_JOBS);
+-
+-        if (job->history_time < JobHistoryUpdate || !JobHistoryUpdate)
+-	  JobHistoryUpdate = job->history_time;
+-      }
+-      else
+-      {
+-        if (job->history_time < JobHistoryUpdate || !JobHistoryUpdate)
+-	  JobHistoryUpdate = job->history_time;
+-
+-	if (job->file_time < JobHistoryUpdate || !JobHistoryUpdate)
+-	  JobHistoryUpdate = job->file_time;
+       }
+     }
+   }
+@@ -1729,7 +1727,7 @@ cupsdLoadJob(cupsd_job_t *job)		/* I - Job */
+     job->completed_time = attr->values[0].integer;
+ 
+     if (JobHistory < INT_MAX)
+-      job->history_time = attr->values[0].integer + JobHistory;
++      job->history_time = job->completed_time + JobHistory;
+     else
+       job->history_time = INT_MAX;
+ 
+@@ -1740,7 +1738,7 @@ cupsdLoadJob(cupsd_job_t *job)		/* I - Job */
+       JobHistoryUpdate = job->history_time;
+ 
+     if (JobFiles < INT_MAX)
+-      job->file_time = attr->values[0].integer + JobFiles;
++      job->file_time = job->completed_time + JobFiles;
+     else
+       job->file_time = INT_MAX;
+ 
+@@ -2862,8 +2860,10 @@ cupsdUpdateJobs(void)
+       * Update history/file expiration times...
+       */
+ 
++      job->completed_time = attr->values[0].integer;
++
+       if (JobHistory < INT_MAX)
+-	job->history_time = attr->values[0].integer + JobHistory;
++	job->history_time = job->completed_time + JobHistory;
+       else
+ 	job->history_time = INT_MAX;
+ 
+@@ -2877,7 +2877,7 @@ cupsdUpdateJobs(void)
+ 	JobHistoryUpdate = job->history_time;
+ 
+       if (JobFiles < INT_MAX)
+-	job->file_time = attr->values[0].integer + JobFiles;
++	job->file_time = job->completed_time + JobFiles;
+       else
+ 	job->file_time = INT_MAX;
+ 
+@@ -4693,7 +4693,7 @@ set_time(cupsd_job_t *job,		/* I - Job to update */
+     job->completed_time = curtime;
+ 
+     if (JobHistory < INT_MAX && attr)
+-      job->history_time = attr->values[0].integer + JobHistory;
++      job->history_time = job->completed_time + JobHistory;
+     else
+       job->history_time = INT_MAX;
+ 
+@@ -4701,7 +4701,7 @@ set_time(cupsd_job_t *job,		/* I - Job to update */
+       JobHistoryUpdate = job->history_time;
+ 
+     if (JobFiles < INT_MAX && attr)
+-      job->file_time = curtime + JobFiles;
++      job->file_time = job->completed_time + JobFiles;
+     else
+       job->file_time = INT_MAX;
+ 
diff -Nru cups-2.2.10/debian/patches/manpage-translations.patch cups-2.2.10/debian/patches/manpage-translations.patch
--- cups-2.2.10/debian/patches/manpage-translations.patch	2019-03-27 17:13:07.000000000 +0100
+++ cups-2.2.10/debian/patches/manpage-translations.patch	2019-04-23 08:33:01.000000000 +0200
@@ -1,4 +1,4 @@
-From 2fb6d0075ed13f2fd03a8600a6ecb0892818116b Mon Sep 17 00:00:00 2001
+From 9615ef5f2b8374bfe2816f8ff4314234362ce841 Mon Sep 17 00:00:00 2001
 From: Didier Raboud <odyx@debian.org>
 Date: Tue, 9 Aug 2016 18:11:50 +0200
 Subject: po4a infrastructure and translations for manpages.
diff -Nru cups-2.2.10/debian/patches/series cups-2.2.10/debian/patches/series
--- cups-2.2.10/debian/patches/series	2019-03-27 17:13:07.000000000 +0100
+++ cups-2.2.10/debian/patches/series	2019-04-23 08:33:01.000000000 +0200
@@ -42,4 +42,5 @@
 0042-Fix-compile-error-on-Linux-Issue-5483.patch
 0043-Stop-parsing-the-Emulators-keywords-in-PPD-files-Iss.patch
 0044-Fix-potential-unaligned-accesses-in-the-string-pool-.patch
+0045-Fix-an-issue-with-PreserveJobHistory-and-time-values.patch
 manpage-translations.patch
>From 917e6f4ff70eed933c80d21eed4c6bfeb2cb68b7 Mon Sep 17 00:00:00 2001
From: Michael R Sweet <michael.r.sweet@gmail.com>
Date: Mon, 11 Mar 2019 13:54:46 -0400
Subject: Fix an issue with `PreserveJobHistory` and time values (Issue #5538)

Closes: #921741
---
 scheduler/job.c | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/scheduler/job.c b/scheduler/job.c
index cc9283fb8..d4793cbb1 100644
--- a/scheduler/job.c
+++ b/scheduler/job.c
@@ -437,10 +437,20 @@ cupsdCleanJobs(void)
   curtime          = time(NULL);
   JobHistoryUpdate = 0;
 
+  cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdCleanJobs: curtime=%d", (int)curtime);
+
   for (job = (cupsd_job_t *)cupsArrayFirst(Jobs);
        job;
        job = (cupsd_job_t *)cupsArrayNext(Jobs))
   {
+    cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdCleanJobs: Job %d, state=%d, printer=%p, history_time=%d, file_time=%d", job->id, (int)job->state_value, (void *)job->printer, (int)job->history_time, (int)job->file_time);
+
+    if ((job->history_time && job->history_time) < JobHistoryUpdate || !JobHistoryUpdate)
+      JobHistoryUpdate = job->history_time;
+
+    if ((job->file_time && job->file_time < JobHistoryUpdate) || !JobHistoryUpdate)
+      JobHistoryUpdate = job->file_time;
+
     if (job->state_value >= IPP_JOB_CANCELED && !job->printer)
     {
      /*
@@ -456,21 +466,9 @@ cupsdCleanJobs(void)
       else if (job->file_time && job->file_time <= curtime)
       {
         cupsdLogJob(job, CUPSD_LOG_DEBUG, "Removing document files.");
-        cupsdLogJob(job, CUPSD_LOG_DEBUG2, "curtime=%ld, job->file_time=%ld", (long)curtime, (long)job->file_time);
         remove_job_files(job);
 
         cupsdMarkDirty(CUPSD_DIRTY_JOBS);
-
-        if (job->history_time < JobHistoryUpdate || !JobHistoryUpdate)
-	  JobHistoryUpdate = job->history_time;
-      }
-      else
-      {
-        if (job->history_time < JobHistoryUpdate || !JobHistoryUpdate)
-	  JobHistoryUpdate = job->history_time;
-
-	if (job->file_time < JobHistoryUpdate || !JobHistoryUpdate)
-	  JobHistoryUpdate = job->file_time;
       }
     }
   }
@@ -1729,7 +1727,7 @@ cupsdLoadJob(cupsd_job_t *job)		/* I - Job */
     job->completed_time = attr->values[0].integer;
 
     if (JobHistory < INT_MAX)
-      job->history_time = attr->values[0].integer + JobHistory;
+      job->history_time = job->completed_time + JobHistory;
     else
       job->history_time = INT_MAX;
 
@@ -1740,7 +1738,7 @@ cupsdLoadJob(cupsd_job_t *job)		/* I - Job */
       JobHistoryUpdate = job->history_time;
 
     if (JobFiles < INT_MAX)
-      job->file_time = attr->values[0].integer + JobFiles;
+      job->file_time = job->completed_time + JobFiles;
     else
       job->file_time = INT_MAX;
 
@@ -2862,8 +2860,10 @@ cupsdUpdateJobs(void)
       * Update history/file expiration times...
       */
 
+      job->completed_time = attr->values[0].integer;
+
       if (JobHistory < INT_MAX)
-	job->history_time = attr->values[0].integer + JobHistory;
+	job->history_time = job->completed_time + JobHistory;
       else
 	job->history_time = INT_MAX;
 
@@ -2877,7 +2877,7 @@ cupsdUpdateJobs(void)
 	JobHistoryUpdate = job->history_time;
 
       if (JobFiles < INT_MAX)
-	job->file_time = attr->values[0].integer + JobFiles;
+	job->file_time = job->completed_time + JobFiles;
       else
 	job->file_time = INT_MAX;
 
@@ -4693,7 +4693,7 @@ set_time(cupsd_job_t *job,		/* I - Job to update */
     job->completed_time = curtime;
 
     if (JobHistory < INT_MAX && attr)
-      job->history_time = attr->values[0].integer + JobHistory;
+      job->history_time = job->completed_time + JobHistory;
     else
       job->history_time = INT_MAX;
 
@@ -4701,7 +4701,7 @@ set_time(cupsd_job_t *job,		/* I - Job to update */
       JobHistoryUpdate = job->history_time;
 
     if (JobFiles < INT_MAX && attr)
-      job->file_time = curtime + JobFiles;
+      job->file_time = job->completed_time + JobFiles;
     else
       job->file_time = INT_MAX;
 

--- End Message ---
--- Begin Message ---
Unblocked cups.

--- End Message ---

Reply to: