- Fixed patch for STR #3425 again by adding in back-ported change from svn

revision 8929 (bug #549899). No longer need delete-active-printer
    patch.
This commit is contained in:
Tim Waugh 2009-12-23 11:19:51 +00:00
parent bf133f194a
commit 3cea312d99
3 changed files with 23 additions and 121 deletions

View File

@ -1,110 +0,0 @@
diff -up cups-1.4.2/CHANGES.txt.delete-active-printer cups-1.4.2/CHANGES.txt
diff -up cups-1.4.2/scheduler/job.c.delete-active-printer cups-1.4.2/scheduler/job.c
--- cups-1.4.2/scheduler/job.c.delete-active-printer 2009-12-09 11:24:50.946891977 +0000
+++ cups-1.4.2/scheduler/job.c 2009-12-09 11:25:32.145892252 +0000
@@ -168,7 +168,7 @@ static mime_filter_t gziptoany_filter =
static int compare_active_jobs(void *first, void *second, void *data);
static int compare_jobs(void *first, void *second, void *data);
static void dump_job_history(cupsd_job_t *job);
-static void finalize_job(cupsd_job_t *job);
+static void finalize_job(cupsd_job_t *job, int set_job_state);
static void free_job_history(cupsd_job_t *job);
static char *get_options(cupsd_job_t *job, int banner_page, char *copies,
size_t copies_size, char *title,
@@ -1297,7 +1297,7 @@ cupsdDeleteJob(cupsd_job_t *job, /
cupsd_jobaction_t action)/* I - Action */
{
if (job->printer)
- finalize_job(job);
+ finalize_job(job, 1);
if (action == CUPSD_JOB_PURGE)
{
@@ -2298,7 +2298,7 @@ cupsdSetJobState(
*/
if (oldstate == IPP_JOB_PROCESSING)
- stop_job(job, action != CUPSD_JOB_DEFAULT);
+ stop_job(job, action);
/*
* Set the new job state...
@@ -2505,8 +2505,8 @@ cupsdSetJobState(
* Finalize the job immediately if we forced things...
*/
- if (action == CUPSD_JOB_FORCE)
- finalize_job(job);
+ if (action >= CUPSD_JOB_FORCE)
+ finalize_job(job, 0);
/*
* Update the server "busy" state...
@@ -2741,7 +2741,8 @@ free_job_history(cupsd_job_t *job) /* I
*/
static void
-finalize_job(cupsd_job_t *job) /* I - Job */
+finalize_job(cupsd_job_t *job, /* I - Job */
+ int set_job_state) /* I - 1 = set the job state */
{
ipp_pstate_t printer_state; /* New printer state value */
ipp_jstate_t job_state; /* New job state value */
@@ -3027,7 +3028,9 @@ finalize_job(cupsd_job_t *job) /* I - J
* Update the printer and job state.
*/
- cupsdSetJobState(job, job_state, CUPSD_JOB_DEFAULT, "%s", message);
+ if (job_state != job->state_value)
+ cupsdSetJobState(job, job_state, CUPSD_JOB_DEFAULT, "%s", message);
+
cupsdSetPrinterState(job->printer, printer_state,
printer_state == IPP_PRINTER_STOPPED);
update_job_attrs(job, 0);
@@ -3995,15 +3998,34 @@ stop_job(cupsd_job_t *job, /* I -
if (action == CUPSD_JOB_DEFAULT && !job->kill_time)
job->kill_time = time(NULL) + JobKillDelay;
- else if (action == CUPSD_JOB_FORCE)
+ else if (action >= CUPSD_JOB_FORCE)
job->kill_time = 0;
for (i = 0; job->filters[i]; i ++)
if (job->filters[i] > 0)
- cupsdEndProcess(job->filters[i], action == CUPSD_JOB_FORCE);
+ {
+ cupsdEndProcess(job->filters[i], action >= CUPSD_JOB_FORCE);
+
+ if (action >= CUPSD_JOB_FORCE)
+ job->filters[i] = -job->filters[i];
+ }
if (job->backend > 0)
- cupsdEndProcess(job->backend, action == CUPSD_JOB_FORCE);
+ {
+ cupsdEndProcess(job->backend, action >= CUPSD_JOB_FORCE);
+
+ if (action >= CUPSD_JOB_FORCE)
+ job->backend = -job->backend;
+ }
+
+ if (action >= CUPSD_JOB_FORCE)
+ {
+ /*
+ * Clear job status...
+ */
+
+ job->status = 0;
+ }
}
@@ -4393,7 +4415,7 @@ update_job(cupsd_job_t *job) /* I - Job
* Handle the end of job stuff...
*/
- finalize_job(job);
+ finalize_job(job, 1);
/*
* Check for new jobs...

View File

@ -1,6 +1,6 @@
diff -up cups-1.4.2/scheduler/job.c.str3425 cups-1.4.2/scheduler/job.c
--- cups-1.4.2/scheduler/job.c.str3425 2009-12-19 12:12:18.346037032 +0000
+++ cups-1.4.2/scheduler/job.c 2009-12-19 12:12:35.806163016 +0000
--- cups-1.4.2/scheduler/job.c.str3425 2009-12-23 11:00:06.070056898 +0000
+++ cups-1.4.2/scheduler/job.c 2009-12-23 11:02:22.889056232 +0000
@@ -253,7 +253,7 @@ cupsdCancelJobs(const char *dest, /* I -
if (purge)
cupsdSetJobState(job, IPP_JOB_CANCELED, CUPSD_JOB_PURGE,
@ -33,9 +33,18 @@ diff -up cups-1.4.2/scheduler/job.c.str3425 cups-1.4.2/scheduler/job.c
break;
}
@@ -2507,7 +2505,7 @@ cupsdSetJobState(
* Finalize the job immediately if we forced things...
*/
- if (action == CUPSD_JOB_FORCE)
+ if (action >= CUPSD_JOB_FORCE && job->printer)
finalize_job(job);
/*
diff -up cups-1.4.2/scheduler/main.c.str3425 cups-1.4.2/scheduler/main.c
--- cups-1.4.2/scheduler/main.c.str3425 2009-12-19 12:12:18.221037105 +0000
+++ cups-1.4.2/scheduler/main.c 2009-12-19 12:12:18.434038283 +0000
--- cups-1.4.2/scheduler/main.c.str3425 2009-12-23 11:00:05.687056970 +0000
+++ cups-1.4.2/scheduler/main.c 2009-12-23 11:00:06.156057773 +0000
@@ -389,7 +389,7 @@ main(int argc, /* I - Number of comm
* parent's file descriptors to be blocking. This is a workaround for a
* limitation of userland libpthread on OpenBSD.

View File

@ -9,7 +9,7 @@
Summary: Common Unix Printing System
Name: cups
Version: 1.4.2
Release: 20%{?dist}
Release: 21%{?dist}
License: GPLv2
Group: System Environment/Daemons
Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2
@ -71,9 +71,8 @@ Patch45: cups-str3436.patch
Patch46: cups-str3425.patch
Patch47: cups-str3428.patch
Patch48: cups-str3431.patch
Patch49: cups-delete-active-printer.patch
Patch50: cups-gnutls-gcrypt-threads.patch
Patch51: cups-str3458.patch
Patch49: cups-gnutls-gcrypt-threads.patch
Patch50: cups-str3458.patch
Patch100: cups-lspp.patch
@ -252,9 +251,8 @@ module.
%patch46 -p1 -b .str3425
%patch47 -p1 -b .str3428
%patch48 -p1 -b .str3431
%patch49 -p1 -b .delete-active-printer
%patch50 -p1 -b .gnutls-gcrypt-threads
%patch51 -p1 -b .str3458
%patch49 -p1 -b .gnutls-gcrypt-threads
%patch50 -p1 -b .str3458
%if %lspp
%patch100 -p1 -b .lspp
@ -545,6 +543,11 @@ rm -rf $RPM_BUILD_ROOT
%{php_extdir}/phpcups.so
%changelog
* Wed Dec 23 2009 Tim Waugh <twaugh@redhat.com> - 1:1.4.2-21
- Fixed patch for STR #3425 again by adding in back-ported change from
svn revision 8929 (bug #549899). No longer need
delete-active-printer patch.
* Tue Dec 22 2009 Tim Waugh <twaugh@redhat.com> - 1:1.4.2-20
- Fixed ipp authentication for servers requiring authentication for
IPP-Get-Printer-Attributes (bug #548873, STR #3458).