From f27c87695c7723de9bc41fb04bbf0ae22a7e981e Mon Sep 17 00:00:00 2001 From: Tim Waugh Date: Dec 08 2009 11:25:50 +0000 Subject: - Use upstream patch to stop the network backends incorrectly clearing the media-empty-warning state (rev 8896). --- diff --git a/cups-media-empty-warning.patch b/cups-media-empty-warning.patch new file mode 100644 index 0000000..adf0ac2 --- /dev/null +++ b/cups-media-empty-warning.patch @@ -0,0 +1,132 @@ +diff -up cups-1.4.2/backend/backend-private.h.media-empty-warning cups-1.4.2/backend/backend-private.h +--- cups-1.4.2/backend/backend-private.h.media-empty-warning 2009-08-31 19:45:43.000000000 +0100 ++++ cups-1.4.2/backend/backend-private.h 2009-12-08 11:22:27.859488572 +0000 +@@ -280,7 +280,8 @@ extern int backendNetworkSideCB(int pri + int snmp_fd, http_addr_t *addr, + int use_bc); + extern ssize_t backendRunLoop(int print_fd, int device_fd, int snmp_fd, +- http_addr_t *addr, int use_bc, ++ http_addr_t *addr, int use_bc, ++ int update_state, + int (*side_cb)(int print_fd, + int device_fd, + int snmp_fd, +diff -up cups-1.4.2/backend/ipp.c.media-empty-warning cups-1.4.2/backend/ipp.c +--- cups-1.4.2/backend/ipp.c.media-empty-warning 2009-12-08 11:22:12.388488617 +0000 ++++ cups-1.4.2/backend/ipp.c 2009-12-08 11:22:27.860488582 +0000 +@@ -498,7 +498,7 @@ main(int argc, /* I - Number of comm + + _cupsLangPuts(stderr, _("INFO: Copying print data...\n")); + +- tbytes = backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0, ++ tbytes = backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0, 0, + backendNetworkSideCB); + + if (snmp_fd >= 0) +diff -up cups-1.4.2/backend/lpd.c.media-empty-warning cups-1.4.2/backend/lpd.c +--- cups-1.4.2/backend/lpd.c.media-empty-warning 2009-06-26 19:26:36.000000000 +0100 ++++ cups-1.4.2/backend/lpd.c 2009-12-08 11:22:27.861488697 +0000 +@@ -447,7 +447,8 @@ main(int argc, /* I - Number of comm + + _cupsLangPuts(stderr, _("INFO: Copying print data...\n")); + +- backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0, backendNetworkSideCB); ++ backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0, 0, ++ backendNetworkSideCB); + + if (snmp_fd >= 0) + _cupsSNMPClose(snmp_fd); +diff -up cups-1.4.2/backend/parallel.c.media-empty-warning cups-1.4.2/backend/parallel.c +--- cups-1.4.2/backend/parallel.c.media-empty-warning 2009-08-31 19:45:43.000000000 +0100 ++++ cups-1.4.2/backend/parallel.c 2009-12-08 11:22:27.862488185 +0000 +@@ -284,7 +284,7 @@ main(int argc, /* I - Number of comm + lseek(print_fd, 0, SEEK_SET); + } + +- tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, side_cb); ++ tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, side_cb); + + if (print_fd != 0 && tbytes >= 0) + _cupsLangPrintf(stderr, +diff -up cups-1.4.2/backend/runloop.c.media-empty-warning cups-1.4.2/backend/runloop.c +--- cups-1.4.2/backend/runloop.c.media-empty-warning 2009-08-31 19:45:43.000000000 +0100 ++++ cups-1.4.2/backend/runloop.c 2009-12-08 11:22:27.862488185 +0000 +@@ -147,6 +147,7 @@ backendRunLoop( + int snmp_fd, /* I - SNMP socket or -1 if none */ + http_addr_t *addr, /* I - Address of device */ + int use_bc, /* I - Use back-channel? */ ++ int update_state, /* I - Update printer-state-reasons? */ + int (*side_cb)(int, int, int, http_addr_t *, int)) + /* I - Side-channel callback */ + { +@@ -245,7 +246,7 @@ backendRunLoop( + * Pause printing to clear any pending errors... + */ + +- if (errno == ENXIO && offline != 1) ++ if (errno == ENXIO && offline != 1 && update_state) + { + fputs("STATE: +offline-report\n", stderr); + _cupsLangPuts(stderr, _("INFO: Printer is currently offline.\n")); +@@ -351,7 +352,7 @@ backendRunLoop( + + if (errno == ENOSPC) + { +- if (paperout != 1) ++ if (paperout != 1 && update_state) + { + fputs("STATE: +media-empty-warning\n", stderr); + _cupsLangPuts(stderr, _("ERROR: Out of paper!\n")); +@@ -360,7 +361,7 @@ backendRunLoop( + } + else if (errno == ENXIO) + { +- if (offline != 1) ++ if (offline != 1 && update_state) + { + fputs("STATE: +offline-report\n", stderr); + _cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n")); +@@ -376,13 +377,13 @@ backendRunLoop( + } + else + { +- if (paperout) ++ if (paperout && update_state) + { + fputs("STATE: -media-empty-warning\n", stderr); + paperout = 0; + } + +- if (offline) ++ if (offline && update_state) + { + fputs("STATE: -offline-report\n", stderr); + _cupsLangPuts(stderr, _("INFO: Printer is now online.\n")); +diff -up cups-1.4.2/backend/socket.c.media-empty-warning cups-1.4.2/backend/socket.c +--- cups-1.4.2/backend/socket.c.media-empty-warning 2009-06-12 05:02:45.000000000 +0100 ++++ cups-1.4.2/backend/socket.c 2009-12-08 11:22:27.863488075 +0000 +@@ -393,7 +393,7 @@ main(int argc, /* I - Number of comm + lseek(print_fd, 0, SEEK_SET); + } + +- tbytes = backendRunLoop(print_fd, device_fd, snmp_fd, &(addr->addr), 1, ++ tbytes = backendRunLoop(print_fd, device_fd, snmp_fd, &(addr->addr), 1, 0, + backendNetworkSideCB); + + if (print_fd != 0 && tbytes >= 0) +diff -up cups-1.4.2/backend/usb-unix.c.media-empty-warning cups-1.4.2/backend/usb-unix.c +--- cups-1.4.2/backend/usb-unix.c.media-empty-warning 2009-12-08 11:22:12.445487428 +0000 ++++ cups-1.4.2/backend/usb-unix.c 2009-12-08 11:22:27.864488180 +0000 +@@ -218,10 +218,10 @@ print_device(const char *uri, /* I - De + * select() or poll(), so we can't support the sidechannel either... + */ + +- tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, NULL); ++ tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, NULL); + + #else +- tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, side_cb); ++ tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, side_cb); + #endif /* __sun */ + + if (print_fd != 0 && tbytes >= 0) diff --git a/cups.spec b/cups.spec index 414586d..99a11d6 100644 --- a/cups.spec +++ b/cups.spec @@ -64,6 +64,7 @@ Patch39: cups-str3440.patch Patch40: cups-str3442.patch Patch41: cups-negative-snmp-string-length.patch Patch42: cups-sidechannel-intrs.patch +Patch43: cups-media-empty-warning.patch Patch100: cups-lspp.patch @@ -235,6 +236,7 @@ module. %patch40 -p1 -b .str3442 %patch41 -p1 -b .negative-snmp-string-length %patch42 -p1 -b .sidechannel-intrs +%patch43 -p1 -b .media-empty-warning %if %lspp %patch100 -p1 -b .lspp @@ -526,6 +528,8 @@ rm -rf $RPM_BUILD_ROOT %changelog * Tue Dec 8 2009 Tim Waugh - 1:1.4.2-14 +- Use upstream patch to stop the network backends incorrectly clearing + the media-empty-warning state (rev 8896). - Use upstream patch to fix interrupt handling in the side-channel APIs (rev 8896). - Use upstream patch to handle negative SNMP string lengths (rev 8896).