rpms/hplip/devel hplip-hpcups-sigpipe.patch, NONE, 1.1 hplip-retry-open.patch, NONE, 1.1 hplip.spec, 1.241, 1.242
Tim Waugh
twaugh at fedoraproject.org
Thu Oct 29 13:08:06 UTC 2009
Author: twaugh
Update of /cvs/pkgs/rpms/hplip/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv24237
Modified Files:
hplip.spec
Added Files:
hplip-hpcups-sigpipe.patch hplip-retry-open.patch
Log Message:
* Thu Oct 29 2009 Tim Waugh <twaugh at redhat.com> 3.9.8-19
- Retry when connecting to device fails (bug #528483).
- Avoid busy loop in hpcups when backend has exited (bug #525944).
hplip-hpcups-sigpipe.patch:
services.cpp | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
--- NEW FILE hplip-hpcups-sigpipe.patch ---
diff -up hplip-3.9.8/prnt/hpijs/services.cpp.hpcups-sigpipe hplip-3.9.8/prnt/hpijs/services.cpp
--- hplip-3.9.8/prnt/hpijs/services.cpp.hpcups-sigpipe 2009-08-04 22:35:41.000000000 +0100
+++ hplip-3.9.8/prnt/hpijs/services.cpp 2009-10-29 11:56:23.015022337 +0000
@@ -29,6 +29,7 @@
POSSIBILITY OF SUCH DAMAGE.
\*****************************************************************************/
+#include <errno.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
@@ -382,8 +383,16 @@ DRIVER_ERROR UXServices::ToDevice(const
if (write(OutputPath, pBuffer, *Count) != (ssize_t)*Count)
{
static int cnt=0;
- if (cnt++ < 5)
+ if (cnt < 5)
+ {
+ cnt++;
BUG("unable to write to output, fd=%d, count=%d: %m\n", OutputPath, *Count);
+ }
+
+ if (errno == EPIPE)
+ /* The backend has exited. There's no recovering from that. */
+ exit (1);
+
return IO_ERROR;
}
hplip-retry-open.patch:
hp.c | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
--- NEW FILE hplip-retry-open.patch ---
diff -up hplip-3.9.8/prnt/backend/hp.c.retry-open hplip-3.9.8/prnt/backend/hp.c
--- hplip-3.9.8/prnt/backend/hp.c.retry-open 2009-10-27 11:46:00.181457688 +0000
+++ hplip-3.9.8/prnt/backend/hp.c 2009-10-27 11:57:51.527583553 +0000
@@ -724,11 +724,21 @@ int main(int argc, char *argv[])
/* Open hp device. */
while ((stat = hpmud_open_device(argv[0], ma.prt_mode, &hd)) != HPMUD_R_OK)
{
- if (stat != HPMUD_R_DEVICE_BUSY)
- {
- BUG("ERROR: cannot open device stat=%d: %s\n", stat, argv[0]);
- goto bugout;
- }
+ if (getenv ("CLASS") != NULL)
+ {
+ /* If the CLASS environment variable is set we
+ * need to give other class members a chance in
+ * case their devices are ready to go.
+ */
+
+ BUG("INFO: cannot open device stat=%d: %s\n", stat, argv[0]);
+ BUG("INFO: queuing on next printer in class...\n");
+
+ /* Prevent job requeuing too quickly. */
+ sleep (5);
+
+ goto bugout;
+ }
/* Display user error. */
device_event(argv[0], printer, 5000+stat, argv[2], argv[1], argv[3]);
Index: hplip.spec
===================================================================
RCS file: /cvs/pkgs/rpms/hplip/devel/hplip.spec,v
retrieving revision 1.241
retrieving revision 1.242
diff -u -p -r1.241 -r1.242
--- hplip.spec 29 Oct 2009 10:53:43 -0000 1.241
+++ hplip.spec 29 Oct 2009 13:08:05 -0000 1.242
@@ -1,7 +1,7 @@
Summary: HP Linux Imaging and Printing Project
Name: hplip
Version: 3.9.8
-Release: 18%{?dist}
+Release: 19%{?dist}
License: GPLv2+ and MIT
Group: System Environment/Daemons
Conflicts: system-config-printer < 0.6.132
@@ -24,7 +24,9 @@ Patch8: hplip-non-scripts.patch
Patch9: hplip-requirespageregion.patch
Patch10: hplip-discovery-method.patch
Patch11: hplip-device-reconnected.patch
-Patch12: hplip-plugin-error.patch
+Patch12: hplip-retry-open.patch
+Patch13: hplip-plugin-error.patch
+Patch14: hplip-hpcups-sigpipe.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires(pre): /sbin/service
@@ -147,9 +149,15 @@ rm -rf $RPM_BUILD_DIR/%{name}-%{version}
# Give up trying to print a job to a reconnected device (bug #515481).
%patch11 -p1 -b .device-reconnected
+# Retry when connecting to device fails (bug #528483).
+%patch12 -p1 -b .retry-open
+
# Set a printer-state-reason when there's a missing required plugin
# (bug #531330).
-%patch12 -p1 -b .plugin-error
+%patch13 -p1 -b .plugin-error
+
+# Avoid busy loop in hpcups when backend has exited (bug #525944).
+%patch14 -p1 -b .hpcups-sigpipe
%build
aclocal
@@ -354,6 +362,10 @@ fi
/usr/bin/update-desktop-database &>/dev/null ||:
%changelog
+* Thu Oct 29 2009 Tim Waugh <twaugh at redhat.com> 3.9.8-19
+- Retry when connecting to device fails (bug #528483).
+- Avoid busy loop in hpcups when backend has exited (bug #525944).
+
* Wed Oct 28 2009 Tim Waugh <twaugh at redhat.com> 3.9.8-18
- Set a printer-state-reason when there's a missing required plugin
(bug #531330).
More information about the fedora-extras-commits
mailing list