Your message dated Tue, 23 Apr 2019 17:29:14 +0000
with message-id <[email protected]>
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 [email protected]
immediately.)


-- 
927784: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927784
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
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 <[email protected]>  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 <[email protected]>
+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 <[email protected]>
 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 <[email protected]>
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 via email to