[sane-backends] fix detection/handling of USB devices in xerox_mfp (#702983)

Nils Philippsen nphilipp at fedoraproject.org
Tue May 10 08:26:35 UTC 2011


commit 07f26017616813beb59d1a8810fb5324bb7c6c05
Author: Nils Philippsen <nils at redhat.com>
Date:   Tue May 10 10:25:49 2011 +0200

    fix detection/handling of USB devices in xerox_mfp (#702983)

 ...backends-1.0.22-xerox_mfp-fix-usb-devices.patch |   81 ++++++++++++++++++++
 sane-backends.spec                                 |    8 ++-
 2 files changed, 88 insertions(+), 1 deletions(-)
---
diff --git a/sane-backends-1.0.22-xerox_mfp-fix-usb-devices.patch b/sane-backends-1.0.22-xerox_mfp-fix-usb-devices.patch
new file mode 100644
index 0000000..98f6abc
--- /dev/null
+++ b/sane-backends-1.0.22-xerox_mfp-fix-usb-devices.patch
@@ -0,0 +1,81 @@
+From 9792fb4ac11443553771d4f311a985333b503594 Mon Sep 17 00:00:00 2001
+From: Nils Philippsen <nils at redhat.com>
+Date: Tue, 10 May 2011 10:22:02 +0200
+Subject: [PATCH] patch: xerox_mfp-fix-usb-devices
+
+Squashed commit of the following:
+
+commit 962a5a657b750f99b274d58763667bd199f5cb5d
+Author: Alex Belkin <abc at telekom.ru>
+Date:   Tue Mar 8 17:57:19 2011 +0300
+
+    keep usb device by default (correct for bug introduced by tcp sub-backend
+    (cherry picked from commit 5ea227caeacd504b64eef301e83fa63e0a25b3f7)
+---
+ backend/xerox_mfp.c |   27 +++++++++++----------------
+ 1 files changed, 11 insertions(+), 16 deletions(-)
+
+diff --git a/backend/xerox_mfp.c b/backend/xerox_mfp.c
+index e08b50f..d4672a7 100644
+--- a/backend/xerox_mfp.c
++++ b/backend/xerox_mfp.c
+@@ -37,10 +37,10 @@
+ static const SANE_Device **devlist = NULL;	/* sane_get_devices array */
+ static struct device *devices_head = NULL;	/* sane_get_devices list */
+ 
+-transport available_transports[] = {
++enum { TRANSPORT_USB, TRANSPORT_TCP, TRANSPORTS_MAX };
++transport available_transports[TRANSPORTS_MAX] = {
+     { "usb", usb_dev_request, usb_dev_open, usb_dev_close, usb_configure_device },
+     { "tcp", tcp_dev_request, tcp_dev_open, tcp_dev_close, tcp_configure_device },
+-    { 0 }
+ };
+ 
+ static int resolv_state(int state)
+@@ -824,7 +824,13 @@ free_devices (void)
+   devices_head = NULL;
+ }
+ 
+-/* SANE API ignores return code of this callback */
++static transport *tr_from_devname(SANE_String_Const devname)
++{
++  if (strncmp("tcp", devname, 3) == 0)
++    return &available_transports[TRANSPORT_TCP];
++  return &available_transports[TRANSPORT_USB];
++}
++
+ static SANE_Status
+ list_one_device (SANE_String_Const devname)
+ {
+@@ -839,12 +845,7 @@ list_one_device (SANE_String_Const devname)
+       return SANE_STATUS_GOOD;
+   }
+ 
+-  for (tr = available_transports; tr->ttype; tr++) {
+-    if (!strncmp (devname, tr->ttype, strlen(tr->ttype)))
+-      break;
+-  }
+-  if (!tr->ttype)
+-    return SANE_STATUS_INVAL;
++  tr = tr_from_devname(devname);
+ 
+   dev = calloc (1, sizeof (struct device));
+   if (dev == NULL)
+@@ -878,13 +879,7 @@ list_one_device (SANE_String_Const devname)
+ static SANE_Status
+ list_conf_devices (UNUSED (SANEI_Config * config), const char *devname)
+ {
+-    transport *tr;
+-
+-    for (tr = available_transports; tr->ttype; tr++) {
+-	if (!strncmp (devname, tr->ttype, strlen(tr->ttype)))
+-	    return tr->configure_device(devname, list_one_device);
+-    }
+-    return	SANE_STATUS_INVAL;
++  return tr_from_devname(devname)->configure_device(devname, list_one_device);
+ }
+ 
+ SANE_Status
+-- 
+1.7.5.1
+
diff --git a/sane-backends.spec b/sane-backends.spec
index 5e3f37f..d81002f 100644
--- a/sane-backends.spec
+++ b/sane-backends.spec
@@ -1,7 +1,7 @@
 Summary: Scanner access software
 Name: sane-backends
 Version: 1.0.22
-Release: 2%{?dist}
+Release: 3%{?dist}
 # lib/ is LGPLv2+, backends are GPLv2+ with exceptions
 # Tools are GPLv2+, docs are public domain
 # see LICENSE for details
@@ -23,6 +23,8 @@ Patch4: sane-backends-1.0.22-docs-utf8.patch
 Patch5: sane-backends-1.0.21-SCX4500W.patch
 # backported from upstream c5ca46c2d1be78c651afb843cc834cf2b5b24953
 Patch6: sane-backends-1.0.22-v4l.patch
+# backported from upstream 5ea227caeacd504b64eef301e83fa63e0a25b3f7
+Patch7: sane-backends-1.0.22-xerox_mfp-fix-usb-devices.patch
 URL: http://www.sane-project.org
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%__id_u -n)
 BuildRequires: tetex-latex
@@ -90,6 +92,7 @@ want to access digital cameras.
 %patch4 -p1 -b .docs-utf8
 %patch5 -p1 -b .SCX4500W
 %patch6 -p1 -b .v4l
+%patch7 -p1 -b .xerox_mfp-fix-usb-devices
 
 %build
 # use PIC/PIE because SANE-enabled software is likely to deal with data coming
@@ -168,6 +171,9 @@ rm -rf %{buildroot}
 %{_libdir}/pkgconfig/sane-backends.pc
 
 %changelog
+* Tue May 10 2011 Nils Philippsen <nils at redhat.com> - 1.0.22-3
+- fix detection/handling of USB devices in xerox_mfp (#702983)
+
 * Tue Apr 19 2011 Nils Philippsen <nils at redhat.com> - 1.0.22-2
 - remove obsolete lockdir, automake patches
 


More information about the scm-commits mailing list