Bug 439193 - sane-backends: fingerprint reader gets udev/HAL settings for scanners
Summary: sane-backends: fingerprint reader gets udev/HAL settings for scanners
Status: RESOLVED FIXED
Alias: None
Product: openSUSE 11.1
Classification: openSUSE
Component: Other (show other bugs)
Version: Final
Hardware: All openSUSE 11.1
: P3 - Medium : Normal (vote)
Target Milestone: ---
Assignee: Johannes Meixner
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-10-27 14:53 UTC by Timo Hoenig
Modified: 2009-01-16 11:57 UTC (History)
2 users (show)

See Also:
Found By: Development
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
List of falsely found as "unsupported" models (7.48 KB, text/plain)
2009-01-16 09:41 UTC, Johannes Meixner
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Timo Hoenig 2008-10-27 14:53:13 UTC
sane-beckends: fingerprint reader gets recognized as scanner

Whenever I plug my Authentec Fingerprint reader into the USB port, yast2 scanner wants to be executed.

$ lsusb |grep 08ff
Bus 005 Device 018: ID 08ff:2580 AuthenTec, Inc. AES2501 Fingerprint Sensor
/etc/udev/rules.d $ grep 08ff *                      
55-libsane.rules:#SYSFS{idVendor}=="08ff", SYSFS{idProduct}=="2580", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"
$ rpm -qf /etc/udev/rules.d/55-libsane.rules 
sane-backends-1.0.19-94.9
$  maintainer sane-backends            
jsmeix@novell.com

Question 1: Why is this device listed in 55-libsane.rules?
Question 2: Are there more false positives we don't know about?
Comment 1 Johannes Meixner 2008-10-28 07:22:56 UTC
Many thanks for the report.

Of course If I knew false positives I would have remoced them.
"Unfortunately" all my scanner devices are supported ;-)

The content of the libsane.rules file comes from SANE upstream.
It lists all known devices by SANE upstream.
For the particular device, see
http://www.sane-project.org/cgi-bin/driver.pl?manu=&model=&bus=any&v=08ff&p=2580

For me it seems to be wrong to have "known but unsupported" devices
listed in the libsane.rules file because it seems not to make sense
to set owner, group, and permissions for devices which are not
supported by SANE which would even cause conflicts if such a
device is supported by whatever other software.

I will remove those devices from libsane.rules where the USB IDs are
listed in /usr/share/sane/descriptions/unsupported.desc
which lists the "known but unsupported" devices.
Comment 2 Timo Hoenig 2008-10-28 07:41:52 UTC
This sounds good to me -- thanks!
Comment 3 Johannes Meixner 2008-10-28 10:09:42 UTC
Be even more strict now:
Avoid false positives (e.g. unsupported) and problematic 
models in /etc/udev/rules.d/55-libsane.rules by having 
all model entries disabled where the support status is 
not "complete" or "good", i.e. when it is not listed
in /etc/udev/rules.d/56-sane-backends-autoconfig.rules

Fixed package submitted to FACTORY/STABLE.
I cannot set "Fixed in Milestone" appropriately
because there is nothing after "Beta4".
Comment 4 Johannes Meixner 2008-10-29 10:38:18 UTC
Having only models in /etc/udev/rules.d/55-libsane.rules which 
are in /etc/udev/rules.d/56-sane-backends-autoconfig.rules
is too restrictive because because libsane.rules disables
USB autosuspend in the kernel which is needed as safe default 
for any scanner regardless of its support status.
Comment 5 Johannes Meixner 2008-10-29 11:13:07 UTC
The only valid exception are really unsupported models.
Therefore the scanner database is now created directly
in the spec file with the file name "scanner.database"
so that the scanner database can also be used to determine
the "unsupported" models to be disabled in libsane.rules
Right now I submitted a new fixed package to FACTORY/STABLE.
Comment 6 Johannes Meixner 2009-01-13 07:08:52 UTC
There are lines commented out both in 55-libsane.rules
and in 70-scanner.fdi for models which are actually supported
because of an unexpeced side-effect of how the solution
of this bug is implemented, see
https://bugzilla.novell.com/show_bug.cgi?id=438867#c62
and
https://bugzilla.novell.com/show_bug.cgi?id=438867#c65

It happens when there is a status "unsupported" entry
for a backend for a model which is actually supported
by another backend, for examples see in the YaST
scanner database entries like
-------------------------------------------------------------
  $[ "package":"sane-backends",
     "backend":"snapscan",
     "manufacturer":"Epson",
     "model":"Perfection 1670",
     "firmware":"required",
     "interface":"USB",
     "usbid":"0x04b8:0x011f",
     "status":"good",
     "comment":""
  ],
...
  $[ "package":"iscan-free",
     "backend":"epkowa",
     "manufacturer":"Epson",
     "model":"Perfection 1670",
     "firmware":"",
     "interface":"USB",
     "usbid":"0x04b8:0x011f",
     "status":"unsupported",
     "comment":"supported by the snapscan backend"
  ],
-------------------------------------------------------------
Comment 7 Juergen Helmers 2009-01-13 09:52:49 UTC
Hi!

Would't it make more sense then to add the newly discovered usb devices, like the usb fingerprint reader metioned above, instead of removing device froma list that has worked rather nicely in the 11.0 release? I suppose there is a proper way to collect the needed data. Does OpenSuse have a webinterface to proide such data by users?

Cheers Juergen
Comment 8 Johannes Meixner 2009-01-16 09:41:38 UTC
Created attachment 265567 [details]
List of falsely found as "unsupported" models

To reproduce the list, run

/usr/lib/YaST2/bin/create_scanner_database >scanner.database

and then (on one single long line)

for USBID in $( grep '||[^|]*|0x[0-9A-Fa-f][0-9A-Fa-f]*:0x[0-9A-Fa-f][0-9A-Fa-f]*|unsupported' scanner.database | cut -s -d '|' -f 7 | sort -f -u ) ; do grep -o "|$USBID|.*|" scanner.database | egrep -q 'complete|good|basic|minimal|untested' && { grep "$USBID" scanner.database ; echo ; } ; done
Comment 9 Johannes Meixner 2009-01-16 11:17:03 UTC
Fixed for next openSUSE version and submitted to FACTORY/STABLE
(but there is no Target Milestone "FACTORY" or "openSUSE 11.2").