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

Bug#729056: cups: Remote printing doesn't work - prnt/hpcups/HPCupsFilter.cpp 542



Package: cups
Version: 1.6.4-1
Severity: important
Tags: patch

Hi there,

I ran into trouble printing over network with a HP printer.
Therefor I searched the web and found this bugreport
https://bugzilla.redhat.com/show_bug.cgi?id=1010580.
It addresses the exact problem.
After applying the include two patches to the master branch
git://anonscm.debian.org/pkg-cups/cups.git the error is gone.
Please consider to include those patches and push a new upstream release.

Cheers

Marc



-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
armehf

Kernel: Linux 3.11-6.slh.1-aptosid-amd64 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages cups depends on:
ii  cups-client            1.6.4-1
ii  cups-common            1.6.4-1
ii  cups-daemon            1.6.4-1
ii  cups-filters           1.0.34-3+b1
ii  cups-ppdc              1.6.4-1
ii  cups-server-common     1.6.4-1
ii  debconf [debconf-2.0]  1.5.51
ii  ghostscript            9.05~dfsg-8
ii  libavahi-client3       0.6.31-2
ii  libavahi-common3       0.6.31-2
ii  libc-bin               2.17-93
ii  libc6                  2.17-93
ii  libcups2               1.6.4-1
ii  libcupscgi1            1.6.4-1
ii  libcupsimage2          1.6.4-1
ii  libcupsmime1           1.6.4-1
ii  libcupsppdc1           1.6.4-1
ii  libgcc1                1:4.8.2-1
ii  libstdc++6             4.8.2-1
ii  libusb-1.0-0           2:1.0.17-1+b1
ii  lsb-base               4.1+Debian12
ii  poppler-utils          0.18.4-8
ii  procps                 1:3.3.8-2

Versions of packages cups recommends:
ii  avahi-daemon               0.6.31-2
pn  colord                     <none>
ii  cups-filters               1.0.34-3+b1
ii  foomatic-filters           4.0.17-1
ii  ghostscript-cups           9.05~dfsg-8
ii  printer-driver-gutenprint  5.2.9-1

Versions of packages cups suggests:
ii  cups-bsd               1.6.4-1
ii  cups-pdf               2.6.1-9
ii  foomatic-db            20130912-1
ii  hplip                  3.13.9-2
ii  printer-driver-hpcups  3.13.9-2
ii  smbclient              2:4.0.10+dfsg-3
ii  udev                   204-5

-- debconf information:
  cupsys/raw-print: true
  cupsys/backend: lpd, socket, usb, snmp, dnssd
diff -up cups-1.6b1/scheduler/job.c.filter-debug cups-1.6b1/scheduler/job.c
--- cups-1.6b1/scheduler/job.c.filter-debug	2012-05-25 16:06:01.000000000 +0200
+++ cups-1.6b1/scheduler/job.c	2012-05-25 16:07:46.309259511 +0200
@@ -625,10 +625,28 @@ cupsdContinueJob(cupsd_job_t *job)	/* I
 
     if (!filters)
     {
+      mime_filter_t *current;
+
       cupsdLogJob(job, CUPSD_LOG_ERROR,
 		  "Unable to convert file %d to printable format.",
 		  job->current_file);
 
+      cupsdLogJob(job, CUPSD_LOG_ERROR,
+		  "Required: %s/%s -> %s/%s",
+		  job->filetypes[job->current_file]->super,
+		  job->filetypes[job->current_file]->type,
+		  job->printer->filetype->super,
+		  job->printer->filetype->type);
+
+      for (current = (mime_filter_t *)cupsArrayFirst(MimeDatabase->srcs);
+	   current;
+	   current = (mime_filter_t *)cupsArrayNext(MimeDatabase->srcs))
+	  cupsdLogJob(job, CUPSD_LOG_ERROR,
+		      "Available: %s/%s -> %s/%s (%s)",
+		      current->src->super, current->src->type,
+		      current->dst->super, current->dst->type,
+		      current->filter);
+
       abort_message = "Aborting job because it cannot be printed.";
       abort_state   = IPP_JOB_ABORTED;
 
diff -up cups-1.6.4/scheduler/job.c.final-content-type cups-1.6.4/scheduler/job.c
--- cups-1.6.4/scheduler/job.c.final-content-type	2013-09-27 16:58:13.934775402 +0100
+++ cups-1.6.4/scheduler/job.c	2013-09-27 17:00:57.716549576 +0100
@@ -692,12 +692,7 @@ cupsdContinueJob(cupsd_job_t *job)	/* I
 
     if (!job->printer->remote)
     {
-      for (filter = (mime_filter_t *)cupsArrayLast(filters);
-           filter && filter->dst;
-           filter = (mime_filter_t *)cupsArrayPrev(filters))
-        if (strcmp(filter->dst->super, "printer") ||
-            strcmp(filter->dst->type, job->printer->name))
-          break;
+      filter = (mime_filter_t *)cupsArrayLast(filters);
 
       if (filter && filter->dst)
       {

Reply to: