[cups/f18] backport fixes for STR #4191, STR #4194

Jiří Popelka jpopelka at fedoraproject.org
Mon Oct 1 10:37:07 UTC 2012


commit 7238440cc4fbc12a35a70219d91bfc4010832a0a
Author: Jiri Popelka <jpopelka at redhat.com>
Date:   Mon Oct 1 12:28:11 2012 +0200

    backport fixes for STR #4191, STR #4194

 cups-str4194.patch      |   24 ++++++++++++++++++++++++
 cups-usblp-quirks.patch |   40 +++++++++++++++++++++++++++++++---------
 cups.spec               |   11 +++++++++--
 3 files changed, 64 insertions(+), 11 deletions(-)
---
diff --git a/cups-str4194.patch b/cups-str4194.patch
new file mode 100644
index 0000000..56905a6
--- /dev/null
+++ b/cups-str4194.patch
@@ -0,0 +1,24 @@
+From a94dbce56edeebbd3631ab6e734cf88248a41065 Mon Sep 17 00:00:00 2001
+From: mike <mike at 7a7537e8-13f0-0310-91df-b6672ffda945>
+Date: Mon, 1 Oct 2012 02:10:26 +0000
+Subject: [PATCH] The IPP backend could get stuck in an endless loop on
+ certain network errors (STR #4194)
+
+git-svn-id: http://svn.easysw.com/public/cups/trunk@10623 7a7537e8-13f0-0310-91df-b6672ffda945
+---
+diff --git a/backend/ipp.c b/backend/ipp.c
+index a53929e..b509996 100644
+--- a/backend/ipp.c
++++ b/backend/ipp.c
+@@ -952,6 +952,8 @@ main(int  argc,				/* I - Number of command-line args */
+ 	_cupsLangPrintFilter(stderr, "ERROR",
+ 	                     _("Unable to get printer status."));
+         sleep(10);
++
++	httpReconnect(http);
+       }
+ 
+       ippDelete(supported);
+-- 
+1.7.11.4
+
diff --git a/cups-usblp-quirks.patch b/cups-usblp-quirks.patch
index 135f939..59ec64b 100644
--- a/cups-usblp-quirks.patch
+++ b/cups-usblp-quirks.patch
@@ -1,6 +1,6 @@
 diff -up cups-1.5.4/backend/usb-libusb.c.usblp-quirks cups-1.5.4/backend/usb-libusb.c
 --- cups-1.5.4/backend/usb-libusb.c.usblp-quirks	2012-07-16 19:16:46.000000000 +0200
-+++ cups-1.5.4/backend/usb-libusb.c	2012-08-23 13:37:28.309013482 +0200
++++ cups-1.5.4/backend/usb-libusb.c	2012-10-01 12:25:00.971216077 +0200
 @@ -70,7 +70,7 @@ typedef struct usb_printer_s		/**** USB
  			read_endp,	/* Read endpoint */
  			protocol,	/* Protocol: 1 = Uni-di, 2 = Bi-di. */
@@ -19,7 +19,7 @@ diff -up cups-1.5.4/backend/usb-libusb.c.usblp-quirks cups-1.5.4/backend/usb-lib
  #define USBLP_QUIRK_NO_REATTACH	0x8000	/* After printing we cannot re-attach
  					   the usblp kernel module */
  
-@@ -141,15 +143,21 @@ static const struct quirk_printer_struct
+@@ -141,15 +143,41 @@ static const struct quirk_printer_struct
  	{ 0x0409, 0xf1be, USBLP_QUIRK_BIDIR }, /* NEC Picty800 (HP OEM) */
  	{ 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820,
  						  by zut <kernel at zut.de> */
@@ -27,9 +27,27 @@ diff -up cups-1.5.4/backend/usb-libusb.c.usblp-quirks cups-1.5.4/backend/usb-lib
 +			    Printer, http://www.cups.org/str.php?L4155 */
 +	{ 0x04a9, 0x10b6, USBLP_QUIRK_BIDIR }, /* Canon, Inc. PIXMA iP4300
 +			    Printer, https://bugs.launchpad.net/bugs/1032385 */
++	{ 0x04a9, 0x170c, USBLP_QUIRK_BIDIR }, /* Canon, Inc. MP500
++			    Printer, https://bugs.launchpad.net/bugs/1032456 */
++	{ 0x04a9, 0x1717, USBLP_QUIRK_BIDIR }, /* Canon, Inc. MP510
++			    Printer, https://bugs.launchpad.net/bugs/1050009 */
++	{ 0x04a9, 0x173d, USBLP_QUIRK_BIDIR }, /* Canon, Inc. MP550
++			    Printer, http://www.cups.org/str.php?L4155 */
++	{ 0x04a9, 0x173e, USBLP_QUIRK_BIDIR }, /* Canon, Inc. MP560
++			    Printer, http://www.cups.org/str.php?L4155 */
++	{ 0x04f9, 0x001a, USBLP_QUIRK_NO_REATTACH }, /* Brother Industries, Ltd
++						  HL-1430 Laser Printer,
++				     https://bugs.launchpad.net/bugs/1038695 */
  	{ 0x04f9, 0x000d, USBLP_QUIRK_BIDIR |
  			  USBLP_QUIRK_NO_REATTACH }, /* Brother Industries, Ltd
- 						  HL-1440 Laser Printer */
+-						  HL-1440 Laser Printer */
++						  HL-1440 Laser Printer,
++				     https://bugs.launchpad.net/bugs/1000253 */
++	{ 0x06bc, 0x000b, USBLP_QUIRK_NO_REATTACH }, /* Oki Data Corp.
++						  Okipage 14ex Printer,
++				     https://bugs.launchpad.net/bugs/872483 */
++	{ 0x06bc, 0x01c7, USBLP_QUIRK_NO_REATTACH }, /* Oki Data Corp. B410d,
++				     https://bugs.launchpad.net/bugs/872483 */
  	{ 0x04b8, 0x0202, USBLP_QUIRK_BAD_CLASS }, /* Seiko Epson Receipt
  						      Printer M129C */
  	{ 0x067b, 0x2305, USBLP_QUIRK_BIDIR |
@@ -37,12 +55,16 @@ diff -up cups-1.5.4/backend/usb-libusb.c.usblp-quirks cups-1.5.4/backend/usb-lib
 +			  USBLP_QUIRK_NO_REATTACH |
 +	                  USBLP_QUIRK_RESET },
  	/* Prolific Technology, Inc. PL2305 Parallel Port
- 	   (USB -> Parallel adapter) */
-+	{ 0x04e8, 0x0000, USBLP_QUIRK_RESET }, /* All Samsung devices */
+-	   (USB -> Parallel adapter) */
++	   (USB -> Parallel adapter), https://bugs.launchpad.net/bugs/987485 */
++	{ 0x04e8, 0x0000, USBLP_QUIRK_RESET }, /* All Samsung devices,
++				     https://bugs.launchpad.net/bugs/1032456 */
++	{ 0x0a5f, 0x0000, USBLP_QUIRK_BIDIR }, /* All Zebra devices,
++				     https://bugs.launchpad.net/bugs/1001028 */
  	{ 0, 0 }
  };
  
-@@ -256,7 +264,12 @@ print_device(const char *uri,		/* I - De
+@@ -256,7 +284,12 @@ print_device(const char *uri,		/* I - De
    }
  
    g.print_fd = print_fd;
@@ -56,7 +78,7 @@ diff -up cups-1.5.4/backend/usb-libusb.c.usblp-quirks cups-1.5.4/backend/usb-lib
  
   /*
    * If we are printing data from a print driver on stdin, ignore SIGTERM
-@@ -772,7 +786,7 @@ close_device(usb_printer_t *printer)	/*
+@@ -772,7 +805,7 @@ close_device(usb_printer_t *printer)	/*
      * Reset the device to clean up after the job
      */
  
@@ -65,7 +87,7 @@ diff -up cups-1.5.4/backend/usb-libusb.c.usblp-quirks cups-1.5.4/backend/usb-lib
      {
        if ((errcode = libusb_reset_device(printer->handle)) < 0)
  	fprintf(stderr,
-@@ -1288,7 +1302,7 @@ open_device(usb_printer_t *printer,	/* I
+@@ -1288,7 +1321,7 @@ open_device(usb_printer_t *printer,	/* I
    }
  
    printer->usblp_attached = 0;
@@ -74,7 +96,7 @@ diff -up cups-1.5.4/backend/usb-libusb.c.usblp-quirks cups-1.5.4/backend/usb-lib
  
    if (verbose)
      fputs("STATE: +connecting-to-device\n", stderr);
-@@ -1586,7 +1600,8 @@ static unsigned int quirks(int vendor, i
+@@ -1586,7 +1619,8 @@ static unsigned int quirks(int vendor, i
    for (i = 0; quirk_printers[i].vendorId; i++)
    {
      if (vendor == quirk_printers[i].vendorId &&
diff --git a/cups.spec b/cups.spec
index 7d68cf3..06893ac 100644
--- a/cups.spec
+++ b/cups.spec
@@ -12,7 +12,7 @@
 Summary: Common Unix Printing System
 Name: cups
 Version: 1.5.4
-Release: 7%{?dist}
+Release: 8%{?dist}
 License: GPLv2
 Group: System Environment/Daemons
 Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2
@@ -75,6 +75,7 @@ Patch37: cups-ipp-no-create-job.patch
 Patch40: cups-r10572.patch
 Patch41: cups-str4072.patch
 Patch42: cups-str4124.patch
+Patch43: cups-str4194.patch
 
 Patch100: cups-lspp.patch
 
@@ -269,7 +270,7 @@ Sends IPP requests to the specified URI and tests and/or displays the results.
 %patch23 -p1 -b .str3382
 # Problem is a port reset which is done by the new USB backend of CUPS 1.5.4 and 1.6.x to clean up after the job.
 # This patch adds a quirk handler for this reset so that it will not be done for all printers.
-#(bug #847923, STR #4155)
+# (bug #847923, STR #4155, STR #4191)
 %patch24 -p1 -b .usblp-quirks
 # Use mode 0755 for binaries and libraries where appropriate.
 %patch25 -p1 -b .0755
@@ -310,6 +311,9 @@ Sends IPP requests to the specified URI and tests and/or displays the results.
 # cupsBackendReport() now filters out all control characters
 # from the reported 1284 device IDs (STR #4124)
 %patch42 -p1 -b .str4124
+# The IPP backend could get stuck in an endless loop on certain network errors
+# (STR #4194)
+%patch43 -p1 -b .str4194
 
 %if %lspp
 # LSPP support.
@@ -671,6 +675,9 @@ rm -f %{cups_serverbin}/backend/smb
 %{_mandir}/man1/ipptool.1.gz
 
 %changelog
+* Mon Oct 01 2012 Jiri Popelka <jpopelka at redhat.com> 1:1.5.4-8
+- backport fixes for STR #4191, STR #4194
+
 * Fri Sep 21 2012 Jiri Popelka <jpopelka at redhat.com> 1:1.5.4-7
 - backport fixes for STR #4072, STR #4124
 


More information about the scm-commits mailing list