diff --git a/cups-delete-active-printer.patch b/cups-delete-active-printer.patch deleted file mode 100644 index 5ea9f51..0000000 --- a/cups-delete-active-printer.patch +++ /dev/null @@ -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... diff --git a/cups-str3425.patch b/cups-str3425.patch index 9a331ab..ac56d59 100644 --- a/cups-str3425.patch +++ b/cups-str3425.patch @@ -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. diff --git a/cups.spec b/cups.spec index efdb513..5676853 100644 --- a/cups.spec +++ b/cups.spec @@ -9,7 +9,7 @@ Summary: Common Unix Printing System Name: cups Version: 1.4.2 -Release: 19%{?dist} +Release: 20%{?dist} License: GPLv2 Group: System Environment/Daemons Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2 @@ -73,9 +73,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 @@ -254,9 +253,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 @@ -555,6 +553,11 @@ rm -rf $RPM_BUILD_ROOT %{php_extdir}/phpcups.so %changelog +* Wed Dec 23 2009 Tim Waugh - 1:1.4.2-20 +- 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 - 1:1.4.2-19 - Fixed ipp authentication for servers requiring authentication for IPP-Get-Printer-Attributes (bug #548873, STR #3458).