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 +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 */ @@ -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 1:1.5.4-8 +- backport fixes for STR #4191, STR #4194 + * Fri Sep 21 2012 Jiri Popelka 1:1.5.4-7 - backport fixes for STR #4072, STR #4124