From 733cf8a79230e32a457c2019a0e62f1fa757076d3ed75417443ba906b853fc56 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Thu, 28 Feb 2008 17:24:23 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/sane-backends?expand=0&rev=12 --- create_hal_global_fdi_from_libsane.rules | 61 -- fix-ambiguous-post-pre-increment.patch | 12 - fix-buffer-overflow.patch | 39 - fix-uninitialized-variables.patch | 23 +- fujitsu-disable-hw_ink_remain.patch | 19 - libsane.rules.CVS-2007-07-29.using-lp | 1255 ---------------------- module-build.diff | 11 - replace-HZ-by-sysconf_SC_CLK_TCK.patch | 32 - sane-backends-1.0.16-nb.patch | 11 - sane-backends-1.0.18.tar.bz2 | 3 - sane-backends-1.0.19.tar.bz2 | 3 + sane-backends.changes | 96 +- sane-backends.spec | 305 ++++-- sane-dev | 152 --- 14 files changed, 311 insertions(+), 1711 deletions(-) delete mode 100644 create_hal_global_fdi_from_libsane.rules delete mode 100644 fix-ambiguous-post-pre-increment.patch delete mode 100644 fujitsu-disable-hw_ink_remain.patch delete mode 100644 libsane.rules.CVS-2007-07-29.using-lp delete mode 100644 module-build.diff delete mode 100644 replace-HZ-by-sysconf_SC_CLK_TCK.patch delete mode 100644 sane-backends-1.0.16-nb.patch delete mode 100644 sane-backends-1.0.18.tar.bz2 create mode 100644 sane-backends-1.0.19.tar.bz2 delete mode 100644 sane-dev diff --git a/create_hal_global_fdi_from_libsane.rules b/create_hal_global_fdi_from_libsane.rules deleted file mode 100644 index f5e51fc..0000000 --- a/create_hal_global_fdi_from_libsane.rules +++ /dev/null @@ -1,61 +0,0 @@ -#! /bin/bash -# -# Johannes Meixner , 2004, 2005, 2006 - -#set -x - -export PATH="/sbin:/usr/sbin:/usr/bin:/bin" -export LC_ALL="POSIX" -export LANG="POSIX" -umask 022 - -MY_NAME=${0##*/} - -# Input: - -# Create temporary files: -TMP_DATA=$(mktemp -u /tmp/$MY_NAME.XXXXXX) - -# Extract USB entries from the libsane.rules file: -test -n "$1" && RULES_FILE="$1" || RULES_FILE="libsane.rules" -ls $RULES_FILE &>/dev/null || { echo "$MY_NAME error: Required libsane.rules file $RULRS_FILE not found." 1>&2 ; exit 3 ; } -sed -n -e 's/^SYSFS{idVendor}=="\([^"]*\)", SYSFS{idProduct}=="\([^"]*\)",.*/\1 \2/p' $RULES_FILE | tr '[:upper:]' '[:lower:]' | sort -u >$TMP_DATA - -# Output: - -# Output header: -echo '' -echo '' -echo ' ' -echo - -# Output generic SCSI scanner entry for those SCSI scanners which show up with scsi.type = scanner: -echo ' ' -echo ' ' -echo ' scanner' -echo ' ' -echo ' ' -echo - -# Output model specific USB scanner entries: -exec <$TMP_DATA -while read VENDOR PRODUCT -do echo ' ' - echo " " - echo " " - echo ' scanner' - echo ' ' - echo ' ' - echo ' ' - echo -done - -# Output footer: -echo ' ' -echo '' - -# Remove the temporary file -rm $TMP_DATA - -exit 0 - diff --git a/fix-ambiguous-post-pre-increment.patch b/fix-ambiguous-post-pre-increment.patch deleted file mode 100644 index 4b7674a..0000000 --- a/fix-ambiguous-post-pre-increment.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- backend/canon-sane.c.orig 2006-12-08 12:05:25.000000000 +0100 -+++ backend/canon-sane.c 2006-12-08 13:13:33.000000000 +0100 -@@ -1797,7 +1797,8 @@ read_fs2710 (SANE_Handle handle, SANE_By - for (p = buf; p < buf + nread; p++) - { - b = *p; -- *p++ = *(p + 1); -+ *p = *(p + 1); -+ p++; - *p = b; - } - #endif diff --git a/fix-buffer-overflow.patch b/fix-buffer-overflow.patch index d60c9f9..ccb5a54 100644 --- a/fix-buffer-overflow.patch +++ b/fix-buffer-overflow.patch @@ -1,42 +1,3 @@ ---- backend/epson.c.orig 2006-07-04 14:45:33.000000000 +0200 -+++ backend/epson.c 2006-07-04 14:46:27.000000000 +0200 -@@ -1331,7 +1331,7 @@ set_gamma_table (Epson_Scanner * s) - { - for (i = 0; i < 256; i += 16) - { -- char gammaValues[16 * 3 + 1], newValue[3]; -+ char gammaValues[16 * 3 + 1], newValue[4]; - - gammaValues[0] = '\0'; - ---- backend/as6e.c.orig 2004-10-03 16:21:45.000000000 +0200 -+++ backend/as6e.c 2006-10-27 12:52:54.000000000 +0200 -@@ -811,9 +811,11 @@ check_for_driver (const char *devname) - dir[count - offset] = path[count]; - count++; - } -- strncpy (fullname, dir, NAMESIZE); -- strncat (fullname, "/", NAMESIZE); -- strncat (fullname, devname, NAMESIZE); -+ /* use sizeof(fullname)-1 to make sure there is at least one padded null byte */ -+ strncpy (fullname, dir, sizeof(fullname)-1); -+ /* take into account that fullname already contains non-null bytes */ -+ strncat (fullname, "/", sizeof(fullname)-strlen(fullname)-1); -+ strncat (fullname, devname, sizeof(fullname)-strlen(fullname)-1); - if (!stat (fullname, &statbuf)) - { - modes = statbuf.st_mode; ---- sanei/sanei_ab306.c.orig 2007-01-31 14:13:16.000000000 +0100 -+++ sanei/sanei_ab306.c 2007-01-31 14:38:26.000000000 +0100 -@@ -273,7 +273,7 @@ sanei_ab306_open (const char *dev, int * - if (port[i].base == base) - break; - -- if (port[i].base != base) -+ if (i >= NELEMS(port)) - { - DBG(1, "sanei_ab306_open: %lx is not a valid base address\n", base); - return SANE_STATUS_INVAL; --- backend/niash.c.orig 2006-02-04 12:34:28.000000000 +0100 +++ backend/niash.c 2007-02-21 15:38:12.000000000 +0100 @@ -89,7 +89,9 @@ typedef enum diff --git a/fix-uninitialized-variables.patch b/fix-uninitialized-variables.patch index 48e3b17..acb4b2d 100644 --- a/fix-uninitialized-variables.patch +++ b/fix-uninitialized-variables.patch @@ -1,11 +1,14 @@ ---- backend/teco2.c.orig 2005-09-20 10:11:59.000000000 +0200 -+++ backend/teco2.c 2006-09-18 14:35:06.000000000 +0200 -@@ -1524,7 +1524,7 @@ teco_request_sense (Teco_Scanner * dev) +--- backend/avision.c.orig 2008-02-09 11:42:46.000000000 +0100 ++++ backend/avision.c 2008-02-27 13:35:18.000000000 +0100 +@@ -4375,8 +4375,9 @@ set_calib_data (Avision_Scanner* s, stru + static uint8_t* + sort_and_average (struct calibration_format* format, uint8_t* data) { - CDB cdb; - SANE_Status status; -- size_t size; -+ size_t size = 0; - - - MKSCSI_REQUEST_SENSE (cdb, size); +- int stride, i, line; +- int elements_per_line; ++ int stride = 1; ++ int i, line; ++ int elements_per_line = format->pixel_per_line * format->channels; + + uint8_t *sort_data, *avg_data; + diff --git a/fujitsu-disable-hw_ink_remain.patch b/fujitsu-disable-hw_ink_remain.patch deleted file mode 100644 index 0c6bd6d..0000000 --- a/fujitsu-disable-hw_ink_remain.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- backend/fujitsu.c.orig 2006-06-26 19:08:38.000000000 +0200 -+++ backend/fujitsu.c 2006-09-04 11:19:25.000000000 +0200 -@@ -2682,7 +2682,15 @@ get_hardware_status (struct fujitsu *s) - - s->hw_skew_angle = get_HW_skew_angle(buffer); - -- s->hw_ink_remain = get_HW_ink_remain(buffer); -+ /* This would read the 11-th byte from buffer because -+ * get_HW_ink_remain(buffer) expands to buffer[10]. -+ * Asking the scanner for 11 bytes will cause some older -+ * models to choke, as they only provide 10 bytes. -+ * Therefore hw_ink_remain is disabled, as the ink level -+ * is of no use currently, since the endorser is disabled. -+ * (See Suse Bugzilla bug 202243). -+ s->hw_ink_remain = get_HW_ink_remain(buffer); -+ */ - - } - } diff --git a/libsane.rules.CVS-2007-07-29.using-lp b/libsane.rules.CVS-2007-07-29.using-lp deleted file mode 100644 index 7d9d0e0..0000000 --- a/libsane.rules.CVS-2007-07-29.using-lp +++ /dev/null @@ -1,1255 +0,0 @@ -# This file was automatically created based on description files (*.desc) -# by sane-desc 3.3 from sane-backends 1.0.18-cvs on Thu Aug 2 09:15:29 2007 -# -# The automatically created file was manually modified -# for openSUSE 10.3 on Fri Aug 03 2007 by jsmeix@suse.de as follows: -# All GROUP="scanner" are replaced by GROUP="lp" and -# SUBSYSTEM=="usb" is added before the SUBSYSTEM=="usb_device" test -# but the latter is kept for backward compatibility. -# The reasons are: -# There is no group "scanner" in /etc/group for openSUSE 10.3. -# For all-in-one devices (i.e. printer + scanner, e.g. "EPSON Stylus" devices) -# the group must be "lp" so that the CUPS usb backend which runs -# as user "lp" (who is member of the group "lp") can send printing data -# to the printer unit (i.e. the printer interface of the USB device). -# It is sufficiently secure and reasonable easy to use by default -# the same group "lp" for printers and scanners because both kind of devices -# usually require physical user access (to get the printed paper or -# to place a paper on the scanner) so that both kind of devices -# should usually require the same kind of security. -# Regarding SUBSYSTEM=="usb" see the Novell/Suse Bugzilla bugs -# https://bugzilla.novell.com/show_bug.cgi?id=294161 -# -# udev rules file for supported USB devices -# -# To add a USB device, add a rule to the list below between the -# LABEL="libsane_rules_begin" and LABEL="libsane_rules_end" lines. -# -# To run a script when your device is plugged in, add RUN+="/path/to/script" -# to the appropriate rule. -# -# The following list already contains a lot of scanners. If your scanner -# isn't mentioned there, add it as explained above and mail the entry to -# the sane-devel mailing list (sane-devel@lists.alioth.debian.org). -# - -ACTION!="add", GOTO="libsane_rules_end" -ENV{DEVTYPE}=="usb_device", GOTO="libsane_create_usb_dev" -SUBSYSTEM=="usb", GOTO="libsane_rules_begin" -SUBSYSTEM=="usb_device", GOTO="libsane_rules_begin" -SUBSYSTEM!="usb_device", GOTO="libsane_rules_end" - -# Kernel >= 2.6.22 jumps here -LABEL="libsane_create_usb_dev" - -# For Linux >= 2.6.22 without CONFIG_USB_DEVICE_CLASS=y -# If the following rule does not exist on your system yet, uncomment it -# ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0664", OWNER="root", GROUP="root" - -# Kernel < 2.6.22 jumps here -LABEL="libsane_rules_begin" - -# Hewlett-Packard ScanJet 4100C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0101", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard Photosmart S20 (C5101A) | Hewlett-Packard Photosmart S20xi (C7150A) -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0102", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 4200C | Hewlett-Packard ScanJet 4200Cxi | Hewlett-Packard ScanJet 4200Cse -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0105", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 6200C | Hewlett-Packard ScanJet 6250C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0201", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 3300c -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0205", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 4300c -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0305", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 5200C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0401", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 3400c -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0405", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 2100C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0505", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 6300C | Hewlett-Packard ScanJet 6350C | Hewlett-Packard ScanJet 6390C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0601", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 2200C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0605", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 5300C | Hewlett-Packard ScanJet 5370C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0701", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard HP4400C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0705", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 7400c | Hewlett-Packard ScanJet 7450c | Hewlett-Packard ScanJet 7490c -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0801", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard HP4470C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0805", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 2300C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0901", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 2400c -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0a01", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 8200 | Hewlett-Packard ScanJet 8250 | Hewlett-Packard ScanJet 8290 -# Hewlett Packard ScanJet 8200 -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0b01", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard Photo Scanner 1000 -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 5400c -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1005", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 5470c -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1105", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 5550C | Hewlett-Packard ScanJet 4500C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1205", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 4570C | Hewlett-Packard ScanJet 5500C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1305", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 3670c | Hewlett-Packard ScanJet 3690c -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1405", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 5530C Photosmart -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1605", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 5590 -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1705", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 7650 -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1805", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 4850C | Hewlett-Packard ScanJet 4890C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="1b05", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 3530C | Hewlett-Packard ScanJet 3570C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="2005", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 3500C -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="2205", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 3970c -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="2305", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 4070 Photosmart -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="2405", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett Packard ScanJet 3770 | Hewlett-Packard ScanJet 3770 -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="2505", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 3800 -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="2605", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 4600 | Hewlett-Packard ScanJet 4670 -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="3005", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 8390 -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="3805", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 4370 -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="4105", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet G3010 -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="4205", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet G4000 -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="4505", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard Photosmart C5100 series -SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="5811", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 1200 -SYSFS{idVendor}=="0400", SYSFS{idProduct}=="1000", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 1200 | Mustek BearPaw 2400 -SYSFS{idVendor}=="0400", SYSFS{idProduct}=="1001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Kodak i30 | Kodak i30 -SYSFS{idVendor}=="040a", SYSFS{idProduct}=="6001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Kodak i40 -SYSFS{idVendor}=="040a", SYSFS{idProduct}=="6002", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Kodak i50 -SYSFS{idVendor}=="040a", SYSFS{idProduct}=="6003", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Kodak i60 -SYSFS{idVendor}=="040a", SYSFS{idProduct}=="6004", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Kodak i80 -SYSFS{idVendor}=="040a", SYSFS{idProduct}=="6005", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Creative WebCam Go Mini -SYSFS{idVendor}=="041e", SYSFS{idProduct}=="4007", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox WorkCentre XK35c -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="0020", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Lexmark X70 | Lexmark X73 -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="002d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Lexmark X83 -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="003d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Lexmark X74 | Lexmark X75 | Lexmark X75 PrinTrio -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="0060", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Lexmark X5130 | Lexmark X5150 -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="0065", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Lexmark X6170 -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="0072", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Lexmark X1110 | Lexmark X1130 | Lexmark X1140 -# Lexmark X1150 | Lexmark X1170 | Lexmark X1180 -# Lexmark X1185 | Lexmark X1195 -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="007c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Lexmark Photo 3150 | Lexmark X1240 | Lexmark X1270 -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="007d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Lexmark X5250 -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="0093", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Lexmark P6250 -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="0097", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Lexmark X7350 -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="00b8", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Lexmark X2330 -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="00bb", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox WorkCentre Pro 412 -SYSFS{idVendor}=="043d", SYSFS{idProduct}=="4303", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Vivid Pro USB -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius ColorPage HR6 V1 -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2004", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage HR6 V2 -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2007", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage HR6 V2 -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2008", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage HR6A -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2009", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage Vivid3x | Genius Colorpage Vivid3 V2 -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2011", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage HR7 -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2013", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage Vivid4 -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2014", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage HR7LE -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2015", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage HR6X -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2016", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage Vivid3xe -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2017", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius ColorPage HR7X -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2018", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius ColorPage HR6X Slim -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2019", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage Vivid4xe -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="201a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage Vivid4x -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="201b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius ColorPage HR8 -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="201c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage Vivid 1200 X -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="201d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius ColorPage Slim 1200 -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="201e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage Vivid 1200 XE -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="201f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius ColorPage-Slim 1200 USB2 -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2020", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius Colorpage SF600 -SYSFS{idVendor}=="0458", SYSFS{idProduct}=="2021", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax G2-300 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0300", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax G2E-300 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0301", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax G2-300 #2 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0302", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax G2E-300 #2 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0303", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax Colorado USB 9600 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0340", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax Colorado 600U -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0341", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer 6200 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0345", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax Colorado 2400U | Memorex 6136u | TCE MK600U -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0346", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Memorex 6142u | Microtek ScanMaker 3630 | Primax Primascan Colorado 2600u -# Tiny FU661E | Visioneer Onetouch 4400 | Visioneer Primascan Colorado 2600u -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0347", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax Colorado USB 19200 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0360", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax Colorado 1200u -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0361", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax Colorado 2200 USB | LG Electronics Scanworks 600U -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0364", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX Astra 2500 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0374", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Medion/Lifetec/Tevion/Cytron MD5345 | Medion/Lifetec/Tevion/Cytron MD6228 | Medion/Lifetec/Tevion/Cytron MD6471 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0377", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Medion/Lifetec/Tevion/Cytron MD 6190 | Medion/Lifetec/Tevion/Cytron MD 41260 | Medion/Lifetec/Tevion/Cytron MD 41985 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="037b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax G2-600 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0380", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax ReadyScan 636i -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0381", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax G2-600 #2 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0382", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Primax G2E-600 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0383", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX Astra 3000 | UMAX Astra 3600 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="038a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox 2400 Onetouch -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="038b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX Astra 4100 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="038c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Medion/Lifetec/Tevion/Cytron MD 6190 -SYSFS{idVendor}=="0461", SYSFS{idProduct}=="0392", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Logitech PageScan USB -SYSFS{idVendor}=="046d", SYSFS{idProduct}=="040f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# NEC Petiscan -SYSFS{idVendor}=="0475", SYSFS{idProduct}=="0100", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Relisys Eclipse 1200U | Relisys Episode -SYSFS{idVendor}=="0475", SYSFS{idProduct}=="0103", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Relisys Scorpio Ultra 3 -SYSFS{idVendor}=="0475", SYSFS{idProduct}=="0210", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Trust Office Scan USB 19200 -SYSFS{idVendor}=="047b", SYSFS{idProduct}=="1000", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Hewlett-Packard ScanJet 4300c/Silitek -SYSFS{idVendor}=="047b", SYSFS{idProduct}=="1002", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Compaq S4-100 -SYSFS{idVendor}=="049f", SYSFS{idProduct}=="001a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Compaq S200 -SYSFS{idVendor}=="049f", SYSFS{idProduct}=="0021", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 310U -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="1a20", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 620U -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="1a2a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 320U | Benq (Acer) 340U | Mitsubishi Diamondview 648UT -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="2022", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 620UT -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="2040", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 640U | Guillemot / Hercules Maxi Scan A4 USB 640U | Guillemot / Hercules Maxi A4 36 bit -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="2060", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 640bu -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="207e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 3300 | Benq (Acer) 4300 | Mitsubishi Diamondview 650U -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="20b0", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 640BT -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="20be", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 1240 -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="20c0", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 3300 | Benq (Acer) 4300 | Guillemot / Hercules Scan@home Touch 1248 (USB) -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="20de", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 5000 -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="20f8", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 5000E | Benq (Acer) 5000U -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="20fc", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 5300 -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="20fe", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 5150 | Benq (Acer) 5250 -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="2137", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Benq (Acer) 7400UT -SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="2202", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer Strobe Pro USB -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0102", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer OneTouch 7600 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0211", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer OneTouch 5300 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0221", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanPort 3000 | Vantas 3000 | Visioneer OneTouch 4800 USB -# Xerox One Touch 4800 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0224", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer OneTouch 5300 USB | Visioneer OneTouch 5800 USB -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0226", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer Onetouch 7100 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0229", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer OneTouch 6600 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="022a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer Onetouch 9000 | Visioneer Onetouch 9020 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="022c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer OneTouch 6100 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0231", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer 6200 EPP/USB -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0311", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer OneTouch 8100 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0321", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer OneTouch 8600 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0331", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer Onetouch 9320 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0362", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer Onetouch 8700 | Visioneer Onetouch 8920 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0371", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer Onetouch 7700 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0380", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox 4800 One Touch -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="03a0", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer Onetouch Pro 8800 | Visioneer Onetouch Pro 8820 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0410", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer 9450 USB -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0421", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer Strobe XP 100 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0427", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Visioneer OneTouch 7300 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0444", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox DocuMate 510 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0446", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox DocuMate252 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0449", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox DocuMate262 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="044c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox DocuMate272 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="0475", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox DocuMate 510 -SYSFS{idVendor}=="04a7", SYSFS{idProduct}=="047c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon IS 32 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="105d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon DR-2080C -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1601", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon DR-6080 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1607", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan DR2580C -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1608", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP110 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1700", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP130 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1701", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP750 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1706", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP780 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1707", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP760 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1708", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP150 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1709", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP170 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="170a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP450 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="170b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP500 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="170c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP800 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="170d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP800R -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="170e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP530 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1712", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP830 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1713", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP160 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1714", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP180 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1715", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP460 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1716", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP510 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1717", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP600 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1718", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP600R -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1719", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP810 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="171a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon PIXMA MP960 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="171b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan FB320U -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2201", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan FB620U -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2202", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan fb630u | Canon CanoScan fb636u -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2204", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan FB1210U -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2205", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan N650U/N656U -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2206", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan N1220U -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2207", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan D660U -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2208", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon D1230U -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2209", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan D2400UF -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="220a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan D646U | Canon CanoScan D646U ex -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="220b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan D1250U2 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="220c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan N670U/N676U/LiDE20 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="220d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan N1240U/LiDE30 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="220e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan 8000F -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="220f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan 9900F -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2210", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan 5000F -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2212", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan LiDE 35 | Canon CanoScan LiDE 40 | Canon CanoScan LiDE 50 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2213", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan LiDE 80 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2214", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan 3000 | Canon CanoScan 3000ex | Canon CanoScan 3000F -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2215", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan 3200F -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2216", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan 5200F -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2217", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan 9950F -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2219", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan 4200F -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="221b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan LiDE 60 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="221c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan 8400F -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="221e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan LiDE 500F -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="221f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan LiDE25 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2220", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan LiDE 600 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2224", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan LiDE 70 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2225", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan 4400F -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2228", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon CanoScan 8600F -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2229", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon MultiPASS MP730 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="262f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon MultiPASS MP700 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2630", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon SmartBase MP360 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="263c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon SmartBase MP370 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="263d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon SmartBase MP390 | Canon Multipass 390 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="263e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon ImageRunner iR1018 | Canon ImageRunner iR1022 | Canon ImageRunner iR1023 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="269d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Canon FS4000 -SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="3042", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Nikon LS 40 ED -SYSFS{idVendor}=="04b0", SYSFS{idProduct}=="4000", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Nikon LS 50 ED | Nikon Coolscan V ED -SYSFS{idVendor}=="04b0", SYSFS{idProduct}=="4001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Nikon Super Coolscan LS-5000 ED -SYSFS{idVendor}=="04b0", SYSFS{idProduct}=="4002", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-7000U | EPSON Perfection 636U | Epson Perfection 636U -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0101", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-2200 | Epson GT-2200 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0102", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-6600U | EPSON Perfection 610 | Epson Perfection 610 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0103", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-7600U | EPSON GT-7600UF | EPSON Perfection 1200U -# EPSON Perfection 1200U PHOTO | Epson Perfection 1200U | Epson Perfection 1200Photo -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0104", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus Scan 2000 | Epson StylusScan 2000 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0105", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus Scan 2500 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0106", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON ES-2000 | EPSON Expression 1600 | Epson Expression 1600 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0107", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON ES-8500 | EPSON Expression 1640XL -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0109", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-8700 | EPSON GT-8700F | EPSON Perfection 1640SU -# EPSON Perfection 1640SU PHOTO | Epson Perfection 1640 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="010a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-7700U | EPSON Perfection 1240U | Epson Perfection 1240 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="010b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-6700U | EPSON Perfection 640U | Epson Perfection 640 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="010c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON ES-2200 | EPSON Expression 1680 | Epson Expression 1680 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="010e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-7200U | EPSON Perfection 1250 | EPSON Perfection 1250 PHOTO -# Epson Perfection 1250 | Epson Perfection 1250Photo -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="010f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-8200U | EPSON GT-8200UF | EPSON Perfection 1650 -# EPSON Perfection 1650 PHOTO | Epson Perfection 1650 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0110", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-9700F | EPSON Perfection 2450 PHOTO | Epson Perfection 2450 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0112", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Perfection 660 | Epson Perfection 660 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0114", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-9400UF | EPSON Perfection 3170 PHOTO -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0116", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-F600 | EPSON Perfection 4180 PHOTO -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0118", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-X750 | EPSON Perfection 4490 PHOTO -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0119", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-9300UF | EPSON Perfection 2400 PHOTO | Epson Perfection 2400 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="011b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-9800F | EPSON Perfection 3200 PHOTO | Epson Perfection 3200 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="011c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-7300U | EPSON Perfection 1260 | EPSON Perfection 1260 PHOTO -# Epson Perfection 1260 | Epson Perfection 1260Photo -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="011d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-8300UF | EPSON Perfection 1660 PHOTO | Epson Perfection 1660 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="011e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Perfection 1670 | EPSON Perfection 1670 PHOTO | Epson Perfection 1670 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="011f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Perfection 1270 | Epson Perfection 1270 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0120", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-F500 | EPSON GT-F550 | EPSON Perfection 2480 PHOTO -# EPSON Perfection 2580 PHOTO | Epson Perfection 2480 | Epson Perfection 2580 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0121", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-F520 | EPSON GT-F570 | EPSON Perfection 3490 PHOTO -# EPSON Perfection 3590 PHOTO | Epson Perfection 3490 | Epson Perfection 3590 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0122", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON ES-7000H | EPSON GT-15000 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0126", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-X700 | EPSON Perfection 4870 PHOTO | Epson Perfection 4870 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0128", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON ES-10000G | EPSON Expression 10000XL -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0129", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-X800 | EPSON Perfection 4990 PHOTO | Epson Perfection 4990 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="012a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON ES-H300 | EPSON GT-2500 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="012b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-X900 | EPSON Perfection V700 | EPSON Perfection V750 -# Epson V700 | Epson V750 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="012c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-F650 | EPSON GT-S600 | EPSON Perfection V10 -# EPSON Perfection V100 PHOTO -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="012d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON GT-F700 | EPSON Perfection V350 PHOTO -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="012f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON CC-600PX | EPSON Stylus CX5100 | EPSON Stylus CX5200 -# EPSON Stylus CX5300 | EPSON Stylus CX5400 | Epson CX-5200 -# Epson CX-5400 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0801", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON CC-570L | EPSON Stylus CX3100 | EPSON Stylus CX3200 -# Epson CX-3200 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0802", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus CX6300 | EPSON Stylus CX6400 | EPSON Stylus CX6500 -# EPSON Stylus CX6600 | Epson CX-6400 | Epson CX-6600 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0805", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PM-A850 | EPSON Stylus Photo RX600 | EPSON Stylus Photo RX610 -# Epson RX-600 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0806", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus Photo RX500 | EPSON Stylus Photo RX510 | Epson RX-500 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0807", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Epson CX-5400 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0808", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus CX1500 | Epson Stylus CX-1500 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="080c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus CX4500 | EPSON Stylus CX4600 | Epson CX-4600 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="080d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PX-A550 | EPSON Stylus CX3500 | EPSON Stylus CX3600 -# EPSON Stylus CX3650 | Epson CX-3600 | Epson CX-3650 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="080e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus Photo RX420 | EPSON Stylus Photo RX425 | EPSON Stylus Photo RX430 -# Epson RX-425 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="080f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PM-A900 | EPSON Stylus Photo RX700 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0810", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PM-A870 | EPSON Stylus Photo RX620 | EPSON Stylus Photo RX630 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0811", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus CX6600 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0813", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PM-A700 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0814", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON AcuLaser CX11 | EPSON AcuLaser CX11NF | EPSON LP-A500 -# Epson AcuLaser CX11 | Epson AcuLaser CX11NF -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0815", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON LP-M5500 | EPSON LP-M5500F -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0817", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus CX3700 | EPSON Stylus CX3800 | EPSON Stylus DX3800 -# Epson DX-3850 | Epson CX-3700 | Epson CX-3800 -# Epson DX-3800 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0818", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PX-A650 | EPSON Stylus CX4700 | EPSON Stylus CX4800 -# EPSON Stylus DX4800 | EPSON Stylus DX4850 | Epson CX-4800 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0819", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PM-A750 | EPSON Stylus Photo RX520 | EPSON Stylus Photo RX530 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="081a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PM-A890 | EPSON Stylus Photo RX640 | EPSON Stylus Photo RX650 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="081c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PM-A950 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="081d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus CX7700 | EPSON Stylus CX7800 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="081f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus CX4100 | EPSON Stylus CX4200 | EPSON Stylus DX4200 -# Epson CX-4200 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0820", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus CX5700F | EPSON Stylus CX5800F -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0821", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PM-A820 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0827", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PM-A970 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0828", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PM-A920 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="082a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus CX4900 | EPSON Stylus CX5000 | EPSON Stylus DX5000 -# Epson DX-5000 | Epson DX-5050 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="082b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON PX-A720 | EPSON Stylus CX5900 | EPSON Stylus CX6000 -# EPSON Stylus DX6000 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="082e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON Stylus CX3900 | EPSON Stylus DX4000 | Epson DX-4050 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="082f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EPSON ME200 | EPSON Stylus CX2800 | EPSON Stylus CX2900 -SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0830", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-4010CU | Fujitsu fi-4010CU | Fujitsu fi-4010C -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="1029", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-4110CU | Fujitsu fi-4110CU -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="1033", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-4120C -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="1041", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-4220C -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="1042", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-5750C -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="1095", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-5110EOX -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="1096", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-5110C -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="1097", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-5650C -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="10ad", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-4120C2 -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="10ae", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-4220C2 -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="10af", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-60F -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="10c7", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-5120C -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="10e0", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-5220C -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="10e1", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-5530C -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="10e2", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-5900C -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="10e7", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu fi-5110EOXM -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="10f2", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Fujitsu S500 -SYSFS{idVendor}=="04c5", SYSFS{idProduct}=="10fe", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Konica e-mini -SYSFS{idVendor}=="04c8", SYSFS{idProduct}=="0722", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Samsung SCX-4216F -SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="3409", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Samsung SCX-4100 -SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="3413", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Samsung SCX-SCX-4521F -SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="3419", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Samsung SCX-4200 -SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="341b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox WorkCentre XK50cx -SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="3903", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC 9600 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0101", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC 7300c -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0106", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-3100C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="010e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-5100C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="010f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-4800 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0110", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-6800 | Brother MFC 4600 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0111", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-1000 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0112", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-8500 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0113", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-9700 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0114", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-9800 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0115", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-1400 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0116", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother FAX-2900 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0117", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother FAX-3800 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0118", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-9660 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0119", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-9860 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="011a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-9880 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="011b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-9760 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="011c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-9070 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="011d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-9180 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="011e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-9160 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="011f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-580 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0120", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-590 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0121", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-5100J -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0122", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother FAX-2850 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0123", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-4800J -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0124", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-6800J -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0125", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother FAX1800C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0126", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-9800J -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0127", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-8500J -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0128", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-9030 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="012b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother FAX-4100 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="012e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother FAX-4750e -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="012f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother FAX-5750e -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0130", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-5200C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0132", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-100 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0135", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-150CL -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0136", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-3200C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="013a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-890 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="013c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-5200J -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="013d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-4420C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="013e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-4820C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="013f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-8020 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0140", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-8025D -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0141", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-8420 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0142", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-8820D -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0143", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-4020C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0144", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-3220C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0146", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother FAX1820C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0147", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-3320CN -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0148", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother FAX1920CN -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0149", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-3420C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="014a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-3820CN -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="014b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-3020C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="014c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother FAX1815C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="014d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-8820J -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="014e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-8025J -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="014f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-8220 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0150", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-8210 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0151", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-1000J -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0153", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-3420J -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0157", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-3820J -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0158", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-8040 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="015d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-8045D -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="015e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-8440 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="015f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-8840D -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0160", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-210C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0161", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-420CN -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0162", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-410CN -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0163", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-620CN -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0165", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-610CLN -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0166", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-610CLN -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0168", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-110C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0169", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-310CN -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="016b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-5440CN -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="016d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-5840CN -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="016e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-3240C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0173", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-3340CN -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0174", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-7420 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0180", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-7820N -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0181", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-7010 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0182", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-7020 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0183", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-7025 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0184", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-7220 -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0185", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-7225N -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0186", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother DCP-115C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="018c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Brother MFC-215C -SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0193", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Aiptek Aiptek Pencam -SYSFS{idVendor}=="0553", SYSFS{idProduct}=="0202", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek ScanExpress 1200 CU -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek ScanExpress 600 CU -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0002", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek ScanExpress 1200 USB -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0003", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek ScanExpress 1200 UB | Trust Compact Scan USB 19200 -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0006", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek ScanExpress 1200 USB Plus -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0007", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek ScanExpress 1200 CU Plus -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0008", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 1200 F -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0010", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek ScanExpress A3 USB -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0210", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 2400 CS | Mustek BearPaw 2400 TA | Trust 240TH Easy Webscan Gold -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0218", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 2400 CS Plus | Mustek BearPaw 2400 TA Plus | Mustek Plug-n-Scan 2400 MT -# Mustek Plug-n-Scan 2400 M | Packard Bell Diamond 2450 -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0219", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 2448 CS Plus | Mustek BearPaw 2448 TA Plus -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="021a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 1200 CU Plus | Packard Bell Diamond 1200 Plus -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="021b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 1200 CU Plus | Mustek BearPaw 1248 CU | Packard Bell Diamond 1200 Plus -# Trust Direct WebScan 19200 -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="021c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 2400 CU Plus -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="021d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 1200 CS | Mustek BearPaw 1200 TA -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="021e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek ScanExpress 1248 UB -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="021f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 2400 TA Pro -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0400", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek P 3600 A3 Pro -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0401", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 2448 CU Pro -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0408", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 2448TA Pro -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0409", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 4800 TA Pro II -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="040a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 6400 TA Pro -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="040b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek ScanExpress 600 USB -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="0873", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Mustek BearPaw 4800 TA Pro -SYSFS{idVendor}=="055f", SYSFS{idProduct}=="1000", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avigramm Minidoc | Boeder Sm@rtScan Office | Compeye Simplex 1236C -# IOMagic MobileScan USB | Memorex MaxxScan 6122 | Trust CombiScan 19200 -SYSFS{idVendor}=="05cb", SYSFS{idProduct}=="1483", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Artec/Ultima 1236 USB | Artec/Ultima Ultima 2000 (0x4001) -SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Artec/Ultima Ultima 2000 | Artec/Ultima Ultima 2000 e+ | Boeder Sm@rtScan Slim Edition -# Fujitsu 1200CUS | Googlegear 2000 | Medion/Lifetec/Tevion/Cytron MD 4394 -# Medion/Lifetec/Tevion/Cytron MD/LT 9375 | Medion/Lifetec/Tevion/Cytron MD/LT 9385 | Medion/Lifetec/Tevion/Cytron LT 9452 -# Medion/Lifetec/Tevion/Cytron MD 9458 | Mustek BearPaw 1200 CU | Mustek BearPaw 2400 CU -# Mustek ScanExpress 1200 UB Plus | Mustek ScanExpress 2400 USB | Mustek ScanMagic 1200 UB Plus -# Packard Bell Diamond 1200 | Trust Compact Scan USB 19200 | Trust Flat Scan USB 19200 -SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4002", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Artec/Ultima E+ 48U | Medion/Lifetec/Tevion/Cytron MD9693 | Medion/Lifetec/Tevion/Cytron MD9705 -# Medion/Lifetec/Tevion/Cytron MD4394 | Microstar MR 9791 -SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4003", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Artec/Ultima E+ Pro -SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4004", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Memorex MEM 48U -SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4005", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Trust Easy Webscan 19200 -SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4006", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Trust 240H Easy Webscan Gold -SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4007", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX AstraSlim SE -SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4009", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX AstraSlim 1200 SE -SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4010", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Yakumo Scan50 -SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4011", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker X6USB -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="0099", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek SlimScan C6 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="009a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker V6USL -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="00a3", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker V6UPL -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="00b6", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker s400 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="201c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 5600 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="20a7", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 8700 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="20b1", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 4700 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="20b4", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 5700 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="20bd", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 6700 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="20c9", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 9600XL | Microtek ScanMaker 9800XL -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="20de", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Medion/Lifetec/Tevion/Cytron MD 40420 | Medion/Lifetec/Tevion/Cytron MD 42666 | Microtek ScanMaker 4850 II -# Microtek ScanMaker 5800 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="3008", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 3880 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="3021", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Medion/Lifetec/Tevion/Cytron MD 90070 | Medion/Lifetec/Tevion/Cytron MD 90090 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="3022", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 4900 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="30b9", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 3800 | Microtek ScanMaker 3830 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="30ce", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 4800 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="30cf", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 3840 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="30d4", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 5800 | Microtek ScanMaker 5900 | Microtek ScanMaker 5950 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="30d8", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 4850 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="30d9", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Medion/Lifetec/Tevion/Cytron MD 90009 | Microtek ScanMaker 6000 | Microtek ScanMaker 6100 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="30e5", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker i320 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="30e6", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 3600 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="40b3", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 3700 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="40b8", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 4600 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="40c7", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 3600 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="40ca", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 3700 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="40cb", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 3750 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="40dd", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker 3600 -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="40ff", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek ScanMaker V6USL -SYSFS{idVendor}=="05da", SYSFS{idProduct}=="80a3", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Microtek FilmScan 35 | PIE Primefilm 1800u | Reflecta iScan 1800 -SYSFS{idVendor}=="05e3", SYSFS{idProduct}=="0120", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# PIE Powerslide 3600 | Reflecta DigitDia 3600 -SYSFS{idVendor}=="05e3", SYSFS{idProduct}=="0142", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Reflecta ProScan 4000 -SYSFS{idVendor}=="05e3", SYSFS{idProduct}=="0143", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# iVina 1200U -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0268", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Minolta Dimage Scan Dual II -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="026a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision iVina 1600 | UMAX Astra 4500 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a10", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV600U -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a13", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Minolta-QMS SC-110 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a15", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision DS610CU Scancopier | Minolta-QMS SC-215 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a16", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV600U Plus -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a18", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV610 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a19", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision iVina FB1800 | UMAX Astra 4700 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a20", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV220 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a23", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV210 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a24", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV210 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a25", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV120 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a27", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV220C2 | Avision AV220C2 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a2a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV122 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a33", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV210C2 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a3a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV121 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a3c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV8300 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a40", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AM3000 Series -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a41", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision @V5100 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a45", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision IT8300 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a61", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV3850SU -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a66", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Avision AV8350 -SYSFS{idVendor}=="0638", SYSFS{idProduct}=="0a68", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Optoelectronics Barcode scanner -SYSFS{idVendor}=="065a", SYSFS{idProduct}=="0001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Siemens ID Mouse Professional -SYSFS{idVendor}=="0681", SYSFS{idProduct}=="0005", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Siemens Cherry FingerTIP ID Board - Sensor -SYSFS{idVendor}=="0681", SYSFS{idProduct}=="0010", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Minolta Elite II -SYSFS{idVendor}=="0686", SYSFS{idProduct}=="4004", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Minolta Dimage Scan Dual III | Konica Minolta Dual Scan III -SYSFS{idVendor}=="0686", SYSFS{idProduct}=="400d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Minolta Dimage Scan Elite 5400 | Konica Minolta DiMAGE Scan Elite 5400 -SYSFS{idVendor}=="0686", SYSFS{idProduct}=="400e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# AGFA SnapScan 1212U -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="0001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# AGFA SnapScan 1236u -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="0002", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Agfa Snapscan Touch -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="0100", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Agfa DuoScan f40 -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="02bf", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# AGFA SnapScan 1212U_2 -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="2061", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# AGFA SnapScan e40 -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="208d", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# AGFA SnapScan e50 -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="208f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# AGFA SnapScan e20 -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="2091", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# AGFA SnapScan e10 -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="2093", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# AGFA SnapScan e25 -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="2095", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# AGFA SnapScan e26 -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="2097", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# AGFA SnapScan e52 -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="20fd", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# AGFA SnapScan e42 -SYSFS{idVendor}=="06bd", SYSFS{idProduct}=="20ff", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Genius ColorPage HR7XE -SYSFS{idVendor}=="06dc", SYSFS{idProduct}=="0012", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Prolink Winscan Pro 2448U -SYSFS{idVendor}=="06dc", SYSFS{idProduct}=="0014", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX Astra 4900 -SYSFS{idVendor}=="06dc", SYSFS{idProduct}=="0020", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Grandtek Scopecam 8x30 Binocular & Digital Camera -SYSFS{idVendor}=="0797", SYSFS{idProduct}=="801c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro U12 | Plustek OpticPro UT12 | Plustek OpticPro 1212U -# RevScan RevScan Orange R48Ti | Genius ColorPage Vivid III USB -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek Unknown Plustek Device -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0005", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek Unknown Plustek Device -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0007", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek Unknown Plustek Device -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="000f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro U12 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0010", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro U24 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0011", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek Unknown Plustek Device | Plustek Unknown Plustek Device | Plustek Unknown Plustek Device -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0012", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek Unknown Plustek Device (UT12?) -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0013", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek Unknown Plustek Device -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0014", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro U24 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0015", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek Unknown Plustek Device -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0016", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro UT12 | Plustek OpticPro UT16 | Plustek OpticPro UT24 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0017", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro 1248U | RevScan 19200i -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0400", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro 1248U -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0401", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro U16B -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0402", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro U16B+ | Plustek OpticPro UT16B -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0403", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro S12 | Plustek OpticPro ST12 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="040b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro S24 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="040e", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticSlim M12 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0412", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticSlim 1200 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0413", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticSlim 2400 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0422", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro S12 | Plustek OpticPro ST12 | Plustek OpticPro ST16 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0600", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro S24 | Plustek OpticPro ST24 | UMAX Astra 2850 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0601", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro ST48 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0800", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro S28 | Plustek OpticPro ST28 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0801", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticSlim 2420 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0806", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticFilm 7200 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0807", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek ScanCopy 115 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="081c", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticBook 3600 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0900", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticSlim 2420+ -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0914", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro ST64 -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0c00", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticPro ST64+ -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0c03", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Plustek OpticFilm 7200i -SYSFS{idVendor}=="07b3", SYSFS{idProduct}=="0c04", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Guillemot SCAN@HOME 48 USB | Hercules SCAN@HOME 48 USB | Teco VM6509F -SYSFS{idVendor}=="080d", SYSFS{idProduct}=="0102", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX AstraSlim | UMAX AstraSlim 6000 -SYSFS{idVendor}=="080d", SYSFS{idProduct}=="0104", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX AstraSlim 1200 -SYSFS{idVendor}=="080d", SYSFS{idProduct}=="0110", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Corex Cardscan 500 -SYSFS{idVendor}=="08f0", SYSFS{idProduct}=="0001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Corex Cardscan 700 C -SYSFS{idVendor}=="08f0", SYSFS{idProduct}=="0004", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Corex 800c -SYSFS{idVendor}=="08f0", SYSFS{idProduct}=="2110", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Medion/Lifetec/Tevion/Cytron MD 85264 -SYSFS{idVendor}=="08ff", SYSFS{idProduct}=="2580", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Biolux 654 (micrOcular) -SYSFS{idVendor}=="0923", SYSFS{idProduct}=="010f", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox WorkCentre PE16 -SYSFS{idVendor}=="0924", SYSFS{idProduct}=="4220", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox WorkCentre PE120i -SYSFS{idVendor}=="0924", SYSFS{idProduct}=="4237", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Xerox WorkCentre M15i -SYSFS{idVendor}=="0924", SYSFS{idProduct}=="ffef", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Iris IRISCard Pro (IBCR II) -SYSFS{idVendor}=="0a38", SYSFS{idProduct}=="0301", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Portable Peripheral Co., Ltd. Q-Scan USB001 (A4 portable scanner) | Iris IriScan -SYSFS{idVendor}=="0a53", SYSFS{idProduct}=="1000", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# EDT (Electronic Document Technology) BizCardReader 900C -SYSFS{idVendor}=="0a53", SYSFS{idProduct}=="5001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Syscan TravelScan FS-531 -SYSFS{idVendor}=="0a82", SYSFS{idProduct}=="0530", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Pentax DSmobile USB | Syscan TravelScan Pro -SYSFS{idVendor}=="0a82", SYSFS{idProduct}=="2000", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Ambir Visigo A4 | Syscan TravelScan 460/464 -SYSFS{idVendor}=="0a82", SYSFS{idProduct}=="4600", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Scanshell 800N -SYSFS{idVendor}=="0a82", SYSFS{idProduct}=="6605", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Syscan TravelScan 662 -SYSFS{idVendor}=="0a82", SYSFS{idProduct}=="6620", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Olivetti Job-Jet M400 -SYSFS{idVendor}=="0b3c", SYSFS{idProduct}=="a880", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Iris IRISPen Translator Executive -SYSFS{idVendor}=="0f43", SYSFS{idProduct}=="015a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# PLANon DocuPen R700 -SYSFS{idVendor}=="10c4", SYSFS{idProduct}=="ea60", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Digital Dream l' espion XS -SYSFS{idVendor}=="1183", SYSFS{idProduct}=="0001", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Konica Minolta Dual Scan IV -SYSFS{idVendor}=="132b", SYSFS{idProduct}=="000a", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Konica Minolta DiMAGE Scan Elite 5400 2 -SYSFS{idVendor}=="132b", SYSFS{idProduct}=="0012", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX Astra 1220U -SYSFS{idVendor}=="1606", SYSFS{idProduct}=="0010", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX Astra 1600U | UMAX Astra 2000U -SYSFS{idVendor}=="1606", SYSFS{idProduct}=="0030", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Umax UMAX 3400 | UMAX Astra 3400 -SYSFS{idVendor}=="1606", SYSFS{idProduct}=="0050", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Umax UMAX 3400 | Umax UMAX Astranet ia101 | Umax UMAX 3450 -SYSFS{idVendor}=="1606", SYSFS{idProduct}=="0060", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX Astra 4400 | UMAX Astra 4450 -SYSFS{idVendor}=="1606", SYSFS{idProduct}=="0070", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX Astra 2100U -SYSFS{idVendor}=="1606", SYSFS{idProduct}=="0130", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Umax UMAX 5400 -SYSFS{idVendor}=="1606", SYSFS{idProduct}=="0160", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX Astra 2200 (SU) -SYSFS{idVendor}=="1606", SYSFS{idProduct}=="0230", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# UMAX Astra 4000 -SYSFS{idVendor}=="1606", SYSFS{idProduct}=="1030", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Dell A920 -SYSFS{idVendor}=="413c", SYSFS{idProduct}=="5105", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Dell A960 -SYSFS{idVendor}=="413c", SYSFS{idProduct}=="5107", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Dell 922 -SYSFS{idVendor}=="413c", SYSFS{idProduct}=="5109", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" -# Dell 1600n -SYSFS{idVendor}=="413c", SYSFS{idProduct}=="5250", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes" - -# The following rule will disable USB autosuspend for the device -ENV{libsane_matched}=="yes", RUN+="/bin/sh -c 'test -e /sys/$env{DEVPATH}/power/level && echo on > /sys/$env{DEVPATH}/power/level'" - -LABEL="libsane_rules_end" diff --git a/module-build.diff b/module-build.diff deleted file mode 100644 index cd46b51..0000000 --- a/module-build.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- backend/Makefile.in -+++ backend/Makefile.in -@@ -180,7 +180,7 @@ DISTFILES = abaton.c abaton.conf.in abaton.h agfafocus.c agfafocus.conf.in \ - libsane-%.la: %.lo %-s.lo $(EXTRA) $(LIBOBJS) - @$(LIBTOOL) $(MLINK) $(CC) -export-dynamic -o $@ $($*_LIBS) \ - $(LDFLAGS) $(BACKENDLIBS) $^ @LIBTOOL_LINK_EXTRA@ -rpath $(libsanedir) \ -- -version-info $(V_MAJOR):$(V_REV):$(V_MINOR) $(DYNAMIC_FLAG) -+ -module -avoid-version -no-undefined - - %-s.lo: %-s.c - @$(LIBTOOL) $(MCOMP) $(COMPILE) -DSTUBS -DBACKEND_NAME=$* $< diff --git a/replace-HZ-by-sysconf_SC_CLK_TCK.patch b/replace-HZ-by-sysconf_SC_CLK_TCK.patch deleted file mode 100644 index 7976c50..0000000 --- a/replace-HZ-by-sysconf_SC_CLK_TCK.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- sanei/sanei_scsi.c 22 Nov 2005 21:17:20 -0000 1.58 -+++ sanei/sanei_scsi.c 19 Jan 2007 07:10:30 -0000 -@@ -281,6 +281,20 @@ static char lastrcmd[16]; /* hold comman - # define MAX_DATA (32*1024) - #endif - -+#ifdef SG_SET_TIMEOUT -+# ifdef _SC_CLK_TCK -+# define GNU_HZ sysconf(_SC_CLK_TCK) -+# else -+# ifdef HZ -+# define GNU_HZ HZ -+# else -+# ifdef CLOCKS_PER_SEC -+# define GNU_HZ CLOCKS_PER_SEC -+# endif -+# endif -+# endif -+#endif -+ - /* default timeout value: 120 seconds */ - static int sane_scsicmd_timeout = 120; - int sanei_scsi_max_request_size = MAX_DATA; -@@ -1273,7 +1287,7 @@ sanei_scsi_open (const char *dev, int *f - disconnect... ;-( */ - { - int timeout; -- timeout = sane_scsicmd_timeout * HZ; -+ timeout = sane_scsicmd_timeout * GNU_HZ; - ioctl (fd, SG_SET_TIMEOUT, &timeout); - } - #endif diff --git a/sane-backends-1.0.16-nb.patch b/sane-backends-1.0.16-nb.patch deleted file mode 100644 index 6c56ab0..0000000 --- a/sane-backends-1.0.16-nb.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- po/Makefile.in.orig 2005-07-15 22:50:41.000000000 +0200 -+++ po/Makefile.in 2005-08-08 15:25:50.000000000 +0200 -@@ -2,7 +2,7 @@ - # - # See po/README for documentation. - --ALL_LINGUAS = bg cs da de es fi fr it nl no pl pt ru sv -+ALL_LINGUAS = bg cs da de es fi fr it nl nb pl pt ru sv - - SRC_FILES = ../include/sane/saneopts.h ../backend/artec_eplus48u.c \ - ../backend/avision.h \ diff --git a/sane-backends-1.0.18.tar.bz2 b/sane-backends-1.0.18.tar.bz2 deleted file mode 100644 index 0c9cc46..0000000 --- a/sane-backends-1.0.18.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:30efa94c16320676f8146db1b5bf740306f14114585888eb38a757d4a6836c7d -size 2828432 diff --git a/sane-backends-1.0.19.tar.bz2 b/sane-backends-1.0.19.tar.bz2 new file mode 100644 index 0000000..29d5c35 --- /dev/null +++ b/sane-backends-1.0.19.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ff8db743b8aab67e0b28e30f86af53c15df81b3bf9d61c26ae7d6338034105a +size 3345711 diff --git a/sane-backends.changes b/sane-backends.changes index c287a46..eec35f9 100644 --- a/sane-backends.changes +++ b/sane-backends.changes @@ -1,8 +1,64 @@ +------------------------------------------------------------------- +Thu Feb 28 13:56:15 CET 2008 - jsmeix@suse.de + +- Updated to sane-backends version 1.0.19: + New backends: + cardscan (Corex Cardscan 800c), epjitsu (Epson-based Fujitsu), + epson2 (various Epson scanners), hp3900 (HP ScanJet 3970 and + more), hp5590 (HP ScanJet 5590 and more), hpljm1005 (HP LaserJet + M1005 and more), hs2p (Ricoh IS400 series) + Updated backends: + abaton, agfafocus, apple, artec, artec_eplus48u, as6e, avision, + canon, coolscan, coolscan2, dc25, dell1600n_net, dll, epson, + fujitsu, genesys, gt68xx, hp3500, ibm, lexmark, microtek, + microtek2, mustek, nec, net, pie, pint, pixma, plustek, + plustek_pp, ricoh, s9036, sm3600, sm3840, snapscan, sp15c, + st400, tamarack, teco2, test, u12, umax, umax1220u, umax_pp + Plus: + Scanimage detects more chipsets. + Internal scsi, usb, tcp and udp code updates. + Basic HAL .fdi creation support + Build system updates. + Updated translations. + Documentation updates. + Bugfixes. + Note: + This will be (hopefully) the last release of the SANE 1.0 series. + The next release will be extended (in a backwards compatible + fashion) to support more features of modern scanners. +- sane-backends-1.0.16-nb.patch (did locale rename: no -> nb) + is obsolete since version 1.0.19 because it uses already 'nb'. +- in fix-buffer-overflow.patch the overflows in backend/epson.c + backend/as6e.c and sanei/sanei_ab306.c are obsolete because + they are fixed in the source (only backend/niash.c is left). +- replace-HZ-by-sysconf_SC_CLK_TCK.patch is obsolete because + it is fixed in the source. +- fujitsu-disable-hw_ink_remain.patch is obsolete because + it is fixed in the source. +- in fix-uninitialized-variables.patch the fix regarding + teco2.c is obsolete because it is fixed in the source + but a new fix regarding avision.c was added. +- fix-ambiguous-post-pre-increment.patch is obsolete because + it is fixed in the source. +- module-build.diff is dropped because there is no reason to build + driver modules as libtool modules and furthermore it makes our + package incompatible with the rest of the SANE world. +- Since version 1.0.19 there is udev and HAL support. + Therefore the old/outdated hotplug stuff (libsane.usermap + and libusbscanner) is dropped (it was never used by openSUSE). + Also the evil-hack init-script "sane-dev" is no longer provided. + libsane.rules.CVS-2007-07-29.using-lp is obsolete because + the udev rules file 55-libsane.rules is directly derived + from tools/udev/libsane.rules. + create_hal_global_fdi_from_libsane.rules is obsolete because + the HAL fdi file 70-scanner.fdi is directly derived + from tools/hal/libsane.fdi. + ------------------------------------------------------------------- Thu Jan 31 10:45:45 CET 2008 - adrian@suse.de -- call create_hal_global_fdi_for_scanners via bash. We can not rely - on source file permissions +- Call create_hal_global_fdi_from_libsane.rules via bash. + We can not rely on source file permissions ------------------------------------------------------------------- Tue Aug 14 16:07:08 CEST 2007 - jsmeix@suse.de @@ -10,7 +66,7 @@ Tue Aug 14 16:07:08 CEST 2007 - jsmeix@suse.de - Replaced create_hal_global_fdi_for_scanners by create_hal_global_fdi_from_libsane.rules which creates the global HAL 70-scanner.fdi file during build-time from the - libsane.rules file (see Novell/Suse Bugzilla bug 298878). + libsane.rules file (see Novell/Suse Bugzilla bnc#298878). ------------------------------------------------------------------- Fri Aug 10 14:48:13 CEST 2007 - jsmeix@suse.de @@ -32,12 +88,12 @@ Fri Aug 3 13:29:39 CEST 2007 - jsmeix@suse.de Wed Jun 13 11:50:30 CEST 2007 - jsmeix@suse.de - Adapted create_hal_global_fdi_for_scanners according to the - currently newest changes in HAL (see Suse Bugzilla bug 250659). + currently newest changes in HAL (see Suse Bugzilla bnc#250659). ------------------------------------------------------------------- Wed Jun 6 15:25:26 CEST 2007 - dmueller@suse.de -- Build modules as libtool modules. +- module-build.diff builds driver modules as libtool modules. ------------------------------------------------------------------- Sat Apr 21 15:15:08 CEST 2007 - aj@suse.de @@ -49,14 +105,14 @@ Wed Feb 21 15:40:03 CET 2007 - jsmeix@suse.de - Added a fix for an "array subscript is above array bounds" error in niash.c to fix-buffer-overflow.patch - (see Suse Bugzilla bug 246654). + (see Suse Bugzilla bnc#246654). ------------------------------------------------------------------- Wed Jan 31 14:41:10 CET 2007 - jsmeix@suse.de - Added a fix for an "array subscript is above array bounds" error in sanei_ab306.c to fix-buffer-overflow.patch - (see Suse Bugzilla bug 239953). + (see Suse Bugzilla bnc#239953). ------------------------------------------------------------------- Mon Jan 29 14:29:35 CET 2007 - jsmeix@suse.de @@ -84,7 +140,7 @@ Fri Oct 27 11:50:40 CEST 2006 - jsmeix@suse.de to fix-buffer-overflow.patch. - Replaced the complicated postinstall script by calling create_hal_global_fdi_for_scanners which should obsolete - sane-dev (see Suse Bugzilla bug 160899). + sane-dev (see Suse Bugzilla bnc#160899). - Moved sane-dev from {_initrddir} to {_datadir}/sane/ to have it still available in case of backward compatibility problems. @@ -97,10 +153,10 @@ Sun Oct 22 12:25:08 CEST 2006 - meissner@suse.de Mon Sep 18 14:47:07 CEST 2006 - jsmeix@suse.de - fix-uninitialized-variables.patch fixes an uninitialized - variable in teco2.c (see Suse Bugzilla bug 205451). + variable in teco2.c (see Suse Bugzilla bnc#205451). - create_hal_global_fdi_for_scanners can be called by HAL or YaST to create a global HAL fdi file for scanners which are known - by the current SANE version (see Suse Bugzilla bug 160899). + by the current SANE version (see Suse Bugzilla bnc#160899). ------------------------------------------------------------------- Mon Sep 11 10:53:35 CEST 2006 - jsmeix@suse.de @@ -114,19 +170,19 @@ Mon Sep 4 11:23:09 CEST 2006 - jsmeix@suse.de - Replaced the fix from Thu Aug 31 in fujitsu.c by a new fix fujitsu-disable-hw_ink_remain.patch which disables hw_ink_remain - which causes a buffer overflow (see Suse Bugzilla bug 202243). + which causes a buffer overflow (see Suse Bugzilla bnc#202243). ------------------------------------------------------------------- Thu Aug 31 15:09:06 CEST 2006 - jsmeix@suse.de - Added a fix of a too small char array in fujitsu.c to - fix-buffer-overflow.patch (see Suse Bugzilla bug 202243). + fix-buffer-overflow.patch (see Suse Bugzilla bnc#202243). ------------------------------------------------------------------- Fri Jul 21 10:20:00 CEST 2006 - jsmeix@suse.de - canon-backend-autoprobing.patch lets the "canon" backend - do scanner auto-recognition (see Suse Bugzilla bug 177492). + do scanner auto-recognition (see Suse Bugzilla bnc#177492). ------------------------------------------------------------------- Tue Jul 4 14:47:26 CEST 2006 - jsmeix@suse.de @@ -162,7 +218,7 @@ Mon Mar 13 11:52:47 CET 2006 - jsmeix@suse.de - Added automagic but safe pos-install script which tries to update resmgr permissions for scanners for an update - from Suse Linux 10.0 to 10.1 (see Suse Bugzilla bug 157055). + from Suse Linux 10.0 to 10.1 (see Suse Bugzilla bnc#157055). ------------------------------------------------------------------- Fri Jan 27 13:22:30 CET 2006 - jsmeix@suse.de @@ -308,7 +364,7 @@ Wed Nov 10 16:19:48 CET 2004 - jsmeix@suse.de - Changed "sane" runlevel script which sets permissions in /dev/ and renamed it to "sane-dev" to avoid confusion with the SANE network daemon "saned" and its service name "sane-port" - respectively "sane" (see SUSE bugzilla bug 41233). + respectively "sane" (see SUSE bugzilla bnc#41233). ------------------------------------------------------------------- Mon Nov 8 15:57:37 CET 2004 - jsmeix@suse.de @@ -326,17 +382,17 @@ Mon Sep 20 17:47:53 CEST 2004 - jsmeix@suse.de - Added a test in /etc/init.d/sane whether slpd is really running before "/etc/init.d/slpd reload" is done. - (SUSE bugzilla bug 42032). + (SUSE bugzilla bnc#42032). ------------------------------------------------------------------- Wed Sep 15 13:50:05 CEST 2004 - jsmeix@suse.de - Added sane-backends-1.0.14-epson_d8.patch which fixes the problem with EPSON D8 function level scanners that have - a transparency unit (SUSE bugzilla bug 45075). + a transparency unit (SUSE bugzilla bnc#45075). - Changed the file name of /etc/xinetd.d/sane.xinetd to /etc/xinetd.d/sane-port because xinetd ignores files - with names containing a dot (SUSE bugzilla bug 45313). + with names containing a dot (SUSE bugzilla bnc#45313). ------------------------------------------------------------------- Fri Aug 13 14:46:04 CEST 2004 - jsmeix@suse.de @@ -380,7 +436,7 @@ Mon Mar 29 14:27:04 CEST 2004 - jsmeix@suse.de - Removed sane-descriptions-external-epkowa.desc.dif and disabled all entries in all descriptions-external/*.desc files because none of the external backends is included in the sane - package (see bugzilla bug #37169) and for details see + package (see bugzilla bnc#37169) and for details see .../doc/packages/sane/sane-backends/sane-backends-external.html ------------------------------------------------------------------- @@ -390,7 +446,7 @@ Thu Mar 25 15:44:37 CET 2004 - jsmeix@suse.de disables those entries in descriptions-external/epkowa.desc which are also in descriptions/epson.desc because we want to prefer the open source backend "epson" - (see bugzilla bug #36584). + (see bugzilla bnc#36584). ------------------------------------------------------------------- Tue Mar 23 08:00:24 CET 2004 - meissner@suse.de diff --git a/sane-backends.spec b/sane-backends.spec index 80b1f3b..99481bd 100644 --- a/sane-backends.spec +++ b/sane-backends.spec @@ -1,5 +1,5 @@ # -# spec file for package sane-backends (Version 1.0.18) +# spec file for package sane-backends (Version 1.0.19) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -10,20 +10,24 @@ # norootforbuild + Name: sane-backends -BuildRequires: libgphoto2-devel libieee1284 libjpeg-devel libpng net-snmp-devel pkg-config texlive-latex +BuildRequires: libgphoto2-devel libieee1284 libjpeg-devel net-snmp-devel pkg-config texlive-latex License: GPL v2 or later; LGPL v2.1 or later; Public Domain, Freeware Group: Hardware/Scanner AutoReqProv: on Summary: SANE (Scanner Access Now Easy) Scanner Drivers -Version: 1.0.18 -Release: 125 +Version: 1.0.19 +Release: 1 Url: http://www.sane-project.org/ -# URL for Source0: http://alioth.debian.org/download.php/1669/sane-backends-1.0.18.tar.gz +# URL for Source0: http://alioth.debian.org/frs/download.php/2318/sane-backends-1.0.19.tar.gz Source0: sane-backends-%{version}.tar.bz2 # Source100... is SUSE specific stuff: -Source100: sane-dev +# Source100 is the evil-hack init-script "sane-dev" to grant scanner access permissions. +# Source100 is no longer provided because sane-backends-1.0.19 has udev and HAL support. +# Source101 is the xinetd file for the saned: Source101: sane-port +# Source102 is the OpenSLP registration file for the saned: Source102: sane.reg # Since openSUSE 10.3 "Source103: hpoj.desc" is dropped because the package hp-officeJet is dropped. # The descriptions-external file for the hpaio backend is provided by the package hplip: @@ -51,35 +55,42 @@ Source104: hpaio.desc Source105: epkowa.desc # Since openSUSE 10.3 "Source106: create_hal_global_fdi_for_scanners" is dropped because # it is replaced by "Source108: create_hal_global_fdi_from_libsane.rules". -# Readymade udev rules for openSUSE 10.3 derived from sane-backends 1.0.18-cvs: -Source107: libsane.rules.CVS-2007-07-29.using-lp -# Script which outputs a global HAL fdi file for scanners which are known to SANE: -Source108: create_hal_global_fdi_from_libsane.rules +# Source107 are readymade udev rules for openSUSE 10.3 derived from sane-backends 1.0.18-cvs. +# Source107 is obsolete since sane-backends-1.0.19 because it has udev and HAL support. +# Source108 is a script which outputs a HAL fdi file. +# Source108 is obsolete since sane-backends-1.0.19 because it has udev and HAL support. # Patch1 does locale rename: no -> nb: -Patch1: sane-backends-1.0.16-nb.patch -# Patch2 fixes a too small char array which causes a buffer overflow if SANE_DEBUG_EPSON is set: +# Patch1 is obsolete since sane-backends-1.0.19 because it uses 'nb'. +# Patch2 fixes too small arrays in backend/niash.c: Patch2: fix-buffer-overflow.patch # Patch3 replaces fixed HZ compile-time value by sysconf(_SC_CLK_TCK) runtime value: -Patch3: replace-HZ-by-sysconf_SC_CLK_TCK.patch +# Patch3 is obsolete since sane-backends-1.0.19 because it is fixed in the source. # Patch4 disables hw_ink_remain which causes a buffer overflow in fujitsu.c: -Patch4: fujitsu-disable-hw_ink_remain.patch -# Patch5 fixes an uninitialized variable in teco2.c: +# Patch4 is obsolete since sane-backends-1.0.19 because it is fixed in the source. +# Patch5 fixes uninitialized variables in avision.c: Patch5: fix-uninitialized-variables.patch # Patch6 fixes an ambiguous post/pre increment in canon-sane.c: -Patch6: fix-ambiguous-post-pre-increment.patch +# Patch6 is obsolete since sane-backends-1.0.19 because it is fixed in the source. # Patch100... is SUSE specific stuff: # Patch100 lets the "canon" backend do scanner auto-recognition: Patch100: canon-backend-autoprobing.patch # Patch101 disables the special resmgr support in SANE (resmgr works now via ACLs): Patch101: disable-resmgr-support.patch # Patch102 builds libsane-* modules as libtool modules: -Patch102: module-build.diff +# SANE backends (i.e. driver modules) are regular shared libraries. +# Nothing is linked directly with a /usr/lib/sane/libsane-.so module. +# In particular scanning frontends (like scanimage, xscanimage, xsane, kooka) +# are linked with libsane.so.1 which is the dll meta-backend which dlopen()s the +# driver modules according to which drivers are activated in /etc/sane.d/dll.conf. +# One could "cp /usr/lib/sane/libsane-.so /usr/lib/libsane.so" +# and scanning would also work (but now one can use only this single driver). +# The libtool script used in sane-backends is slightly modified to support that. +# Patch102 was dropped because there is no reason to build them as libtool modules +# and it would make our package incompatible with the rest of the SANE world. # Install into this non-root directory (required when norootforbuild is used): BuildRoot: %{_tmppath}/%{name}-%{version}-build # The postinstall script requires this: PreReq: coreutils, /bin/sed, /bin/grep -# Built with libieee1284 which is needed to access parallel port scanners: -Requires: libieee1284 # Suse Linux and openSUSE have the package name 'sane' for 'sane-backends'. # Therefore this RPM provides 'sane' and it also obsoletes it: Provides: sane @@ -126,26 +137,30 @@ Authors: David Stevenson Didier Carlier Earle F. Philhower III - Eddy De Greef + Eddy De Greef Eugene S. Weiss Feico W. Dillema Franck Schneider - Frank Zago + Frank Zago Frederik Ramm - Gerard Klaver + Fred Odendaal + Gerard Klaver Gerhard Jaeger Giuseppe Sacco Glenn Ramsey - Gordon Matzigkeit + Gordon Matzigkeit Guido Muesch Helmut Koeberle - Henning Meier-Geinitz + Henning Geinitz Henrik Johansson + Ilia Sotnikov Ingo Schneider Ingo Wilken James Perry Jeff Freedman Jochen Eisinger + Jonathan Bravo Lopez + Jon Chambers Juergen G. Schimmer Julien Blache Karl Anders Oygard @@ -154,8 +169,7 @@ Authors: Kazuhiro Sasayama Kazuya Fukuda Kevin Charter - M. Allan Noah - M.F. + M. Allan Noah Manuel Panea Marcio Teixeira Marian Eichholz @@ -166,7 +180,8 @@ Authors: Mattias Ellert Max Vorobiev Meino Christian Cramer - Michael Herder + M.F. + Michael Herder Michael K. Johnson Michel Roelofs Milon Firikis @@ -175,47 +190,41 @@ Authors: Oliver Rauch Oliver Schirrmeister Oliver Schwartz + Patrick Lessard Patrick Reynolds Peter Fales Peter Kirchgessner Petter Reinholdtsen + Pierre Willenbrock Randolph Bentson - Rene Rebe + Rene Rebe Roger Wolff + Roy Zhou Sebastien Sable Sergey Vlasov Simon Krix Simon Munton - Stephane Voltz + Stephane Voltz Thomas Soumarmon Tom Martone Tom Wang Tristan Tarrant + Troy Rollo Ullrich Sigwanz Ulrich Deiters + Wittawat Yamwong %prep %setup -q -# locale rename: no -> nb: -%patch1 -b .nb -mv po/sane-backends.no.po po/sane-backends.nb.po -# Patch2 fixes a too small char array which causes a buffer overflow if SANE_DEBUG_EPSON is set: +# Patch2 fixes too small arrays in backend/niash.c: %patch2 -# Patch3 replaces fixed HZ compile-time value by sysconf(_SC_CLK_TCK) runtime value: -%patch3 -# Patch4 disables hw_ink_remain which causes a buffer overflow in fujitsu.c: -%patch4 -# Patch5 fixes an uninitialized variable in teco2.c: +# Patch5 fixes uninitialized variables in avision.c: %patch5 -# Patch6 fixes an ambiguous post/pre increment in canon-sane.c: -%patch6 # Patch100... is SUSE specific stuff: # Patch100 lets the "canon" backend do scanner auto-recognition: %patch100 # Patch101 disables the special resmgr support in SANE (resmgr works now via ACLs): %patch101 -# Patch102 builds libsane-* modules as libtool modules: -%patch102 # Source100... is SUSE specific stuff: # Remove hpoj.desc completely to avoid confusion with its successor hpaio.desc # because since openSUSE 10.3 the package hp-officeJet (for hpoj.desc) is dropped. @@ -227,7 +236,14 @@ cp %{SOURCE105} doc/descriptions-external/epkowa.desc %build %{?suse_update_config:%{suse_update_config -f}} -autoreconf -fi +# 'autoreconf -fi' fails for sane-backends-1.0.19 with the message: +# aclocal: acinclude.m4:606: file m4/libtool.m4 does not exist +# The m4 dir from CVS was not included in the 1.0.18 tar, so it was +# not included in 1.0.19 either, but it has new files since 1.0.18. +# It is a bit strange because autoconf never complained before. +# Because it is not clear whether or not 'autoreconf -fi' is best +# and because it builds without it, it is simply disabled for now: +#autoreconf -fi export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -DGIMP_ENABLE_COMPAT_CRUFT=1 -fno-strict-aliasing" export LDFLAGS="-L/%_lib $LDFLAGS" # Disable locking because /var/lock/sane/ would be a world-writable directory: @@ -244,6 +260,7 @@ export LDFLAGS="-L/%_lib $LDFLAGS" # Enable locking for backends where "99" is the group of the lockfile path (LOCKPATH_GROUP) # because "99" is the group of the user who runs the build when norootforbuild is used # and set localstatedir to have the lock files in /var/lock/sane (see backend/Makefile.in). +# Disabled because locking requires a world-writable /var/lock/sane/ directory: # --enable-locking \ # --with-group=99 \ # --localstatedir=/var @@ -251,15 +268,25 @@ make %install make install DESTDIR=%{buildroot} -# Add libsane-dll links to _libdir so that it will be found by all SANE frontends. -# Change directory to get relative paths in the links (i.e. without $RPM_BUILD_ROOT) -# but use a subshell to avoid a permanent directory change: -rm -rf %{buildroot}%{_libdir}/libsane-dll.so* -( cd %{buildroot}%{_libdir} && ln -s sane/libsane-dll.so* . ) +# The actual driver modules are installed as libsane-.so.%{version} +# and two libsane-.so.1 and libsane-.so links point to them. +# Additionally a libsane-.la libtool archive file is installed +# which could be used to find the correct module file name to dlopen the module. +# Only the dll meta-backend (/usr/lib/libsane.so.1.0.19) links with driver modules. +# The dll meta-backend looks only for libsane-.so.1 and uses dlopen(3) directly. +# The dll meta-backend needs neither libsane-.so nor libsane-.la. +# RPMLINT complains about libsane-.so with "devel-file-in-non-devel-package". +# Therefore the libsane-.so and libsane-.la files are simply removed. +# Note that those files for the dll meta-backend /usr/lib/libsane.so and /usr/lib/libsane.la +# are not removed because it is unknown how whatever third-party scanning frontend +# may like to link with SANE (i.e. with the dll meta-backend). +rm %{buildroot}%{_libdir}/sane/libsane-*.so +rm %{buildroot}%{_libdir}/sane/libsane-*.la # Disable all backends in /etc/sane.d/dll.conf to avoid problems when backends are active by default: perl -pi -e 's/^([^#].*)$/#$1/' %{buildroot}%{_sysconfdir}/sane.d/dll.conf # Allow all users to write into /var/lock/sane/ so that the backends work for normal users -# and set the sticky bit (i.e. others are not allowed to remove lock files): +# and set the sticky bit (i.e. others are not allowed to remove lock files). +# Disabled because package-specific world-writable directories are not allowed: #chmod 1777 %{buildroot}/var/lock/sane/ # Install the descriptions and descriptions-external files. # These files are the sources to make %{_defaultdocdir}/sane/sane-backends/*.html @@ -272,11 +299,35 @@ done # Add ':firmware "required"' entries for the respective scanners to the descriptions files # so that YaST can show firmware upload related information to the user of such a scanner. # This must be done after build because those entries are a SUSE specific extension. -# As far as we know all scanners which use the backend gt68xx -# and the related backend artec_eplus48u require a firmware upload, +# To determine scanners which require firmware upload, search the man pages +# for backends which provide support for firmware upload. +# Use a command like +# for m in /usr/share/man/man5/sane-* +# do man -E ascii -P cat -l $m 2>/dev/null | grep -q -i firmware && echo $m +# done +# to find backend man pages which mention "firmware". +# In version 1.0.19 the following man pages mention "firmware": +# sane-agfafocus: mentiones only "firmware revision" (no firmware upload) +# sane-apple: mentiones only "firmware revision" (no firmware upload) +# sane-artec: mentiones only "problems with firmware v1.92" (no firmware upload) +# sane-artec_eplus48u: "you need a firmware file for your scanner" (unconditioned firmware upload) +# sane-bh: mentiones only "requires RSC firmware level 1.5" (no firmware upload) +# sane-epjitsu: "these scanners require a firmware file" (unconditioned firmware upload) +# sane-gt68xx: "you need a firmware file for your scanner" (unconditioned firmware upload) +# sane-hp: mentiones only "no firmware support for contrast" (no firmware upload) +# sane-matsushita: mentiones only "scanner with proper firmware" (no firmware upload) +# sane-microtek2: mentiones only "firmware of the scanner provides" (no firmware upload) +# sane-sharp: mentiones only "bug in the firmware" (no firmware upload) +# sane-snapscan: "USB scanners ... scanners that need a firmware upload" (conditioned firmware upload) +# sane-st400: mentiones only "firmware revision" (no firmware upload) +# sane-teco2: mentiones only "firmware 1.09" (no firmware upload) +# As far as we know all scanners which use +# the backend gt68xx and the related backend artec_eplus48u +# or the backend sane-epjitsu require a firmware upload, # see "man sane-gt68xx" and http://www.meier-geinitz.de/sane/gt68xx-backend/ -# and see "man sane-artec_eplus48u": -for b in gt68xx artec_eplus48u +# and see "man sane-artec_eplus48u" and "man sane-epjitsu" +# +for b in gt68xx artec_eplus48u epjitsu do sed -i -e 's/^:model.*$/&\n:firmware "required"/' %{buildroot}%{_datadir}/sane/descriptions/$b.desc done # As far as we know (almost) all USB scanners (but not the SCSI scanners) @@ -285,21 +336,50 @@ done sed -i -e 's/^:interface "USB".*$/&\n:firmware "required"/' %{buildroot}%{_datadir}/sane/descriptions/snapscan.desc # Only the "SnapScan 1236u" needs no firmware upload (see Suse/Novell bug #73960): sed -i -e '/:model "SnapScan 1236u"/,/:firmware "required"/s/required//' %{buildroot}%{_datadir}/sane/descriptions/snapscan.desc -# Install the USB usermap file (list of USB manufacturer and model IDs) -# and the matching hotplug script under /usr/share/sane because we do not actually use it -# because we use our udev/HAL/hal-resmgr machinery to grant USB access for normal users: -install -m644 tools/hotplug/libsane.usermap %{buildroot}%{_datadir}/sane/ -install -m755 tools/hotplug/libusbscanner %{buildroot}%{_datadir}/sane/ -# Have sane-dev still available in case of backward compatibility problems: -install -m755 %{SOURCE100} %{buildroot}%{_datadir}/sane/ -# Install the readymade udev rules for openSUSE 10.3: +# Since version 1.0.19 there is udev and HAL support. +# Therefore the old/outdated hotplug stuff is dropped (was never used by openSUSE). +# Neither tools/hotplug/libsane.usermap nor tools/hotplug/libusbscanner is installed. +# Also the evil-hack init-script "sane-dev" is no longer provided. +# Regarding udev: +# Modify the generated tools/udev/libsane.rules file as follows: +# All GROUP="scanner" are replaced by GROUP="lp" and +# SUBSYSTEM=="usb" is added before the SUBSYSTEM=="usb_device" test +# but the latter is kept for backward compatibility. +# The reasons are: +# There is no group "scanner" in /etc/group for openSUSE. +# For all-in-one devices (i.e. printer + scanner, e.g. "EPSON Stylus" devices) +# the group must be "lp" so that the CUPS usb backend which runs +# as user "lp" (who is member of the group "lp") can send printing data +# to the printer unit (i.e. the printer interface of the USB device). +# It is sufficiently secure and reasonable easy to use by default +# the same group "lp" for printers and scanners because both kind of devices +# usually require physical user access (to get the printed paper or +# to place a paper on the scanner) so that both kind of devices +# should usually require the same kind of security. +# Regarding SUBSYSTEM=="usb" see the Novell/Suse Bugzilla bug +# https://bugzilla.novell.com/show_bug.cgi?id=294161#c11 +sed -i -e 's/GROUP="scanner"/GROUP="lp"/' tools/udev/libsane.rules +sed -i -e '/^SUBSYSTEM=="usb_device", GOTO="libsane_rules_begin"$/iSUBSYSTEM=="usb", GOTO="libsane_rules_begin"' tools/udev/libsane.rules +# Install the udev rules file: install -d %{buildroot}%{_sysconfdir}/udev/rules.d -install -m644 %{SOURCE107} %{buildroot}%{_sysconfdir}/udev/rules.d/55-libsane.rules -# Run the script which outputs a global HAL fdi file for scanners which are known to SANE -# and install its output as /etc/hal/fdi/policy/10osvendor/70-scanner.fdi: -bash %{SOURCE108} %{SOURCE107} >70-scanner.fdi +install -m644 tools/udev/libsane.rules %{buildroot}%{_sysconfdir}/udev/rules.d/55-libsane.rules +# Regarding HAL: +# Modify the generated tools/hal/libsane.fdi file as follows: +# Add a generic entry for SCSI scanners. +# Replace 'key="info.bus" string="usb"' by 'key="info.bus" string="usb_device"', +# and replace 'key="usb.vendor_id"' by 'key="usb_device.vendor_id"', +# and replace 'key="usb.product_id"' by 'key="usb_device.product_id"', +# see the Novell/Suse Bugzilla bug +# https://bugzilla.novell.com/show_bug.cgi?id=250659 +# Remove 'key="scanner.access_method"' lines. +sed -i -e '//a\n \n scanner<\/append>\n <\/match>\n<\/match>' tools/hal/libsane.fdi +sed -i -e '/key="info.bus"/s/string="usb"/string="usb_device"/' tools/hal/libsane.fdi +sed -i -e 's/key="usb.vendor_id"/key="usb_device.vendor_id"/' tools/hal/libsane.fdi +sed -i -e 's/key="usb.product_id"/key="usb_device.product_id"/' tools/hal/libsane.fdi +sed -i -e '/key="scanner.access_method"/d' tools/hal/libsane.fdi +# Install the HAL fdi file: install -d %{buildroot}%{_sysconfdir}/hal/fdi/policy/10osvendor -install -m644 70-scanner.fdi %{buildroot}%{_sysconfdir}/hal/fdi/policy/10osvendor/70-scanner.fdi +install -m644 tools/hal/libsane.fdi %{buildroot}%{_sysconfdir}/hal/fdi/policy/10osvendor/70-scanner.fdi # xinetd stuff: install -d -m755 %{buildroot}%{_sysconfdir}/xinetd.d/ install -m644 %{SOURCE101} %{buildroot}%{_sysconfdir}/xinetd.d/ @@ -350,14 +430,67 @@ exit 0 %doc %{_mandir}/man8/saned.8.gz %changelog +* Thu Feb 28 2008 jsmeix@suse.de +- Updated to sane-backends version 1.0.19: + New backends: + cardscan (Corex Cardscan 800c), epjitsu (Epson-based Fujitsu), + epson2 (various Epson scanners), hp3900 (HP ScanJet 3970 and + more), hp5590 (HP ScanJet 5590 and more), hpljm1005 (HP LaserJet + M1005 and more), hs2p (Ricoh IS400 series) + Updated backends: + abaton, agfafocus, apple, artec, artec_eplus48u, as6e, avision, + canon, coolscan, coolscan2, dc25, dell1600n_net, dll, epson, + fujitsu, genesys, gt68xx, hp3500, ibm, lexmark, microtek, + microtek2, mustek, nec, net, pie, pint, pixma, plustek, + plustek_pp, ricoh, s9036, sm3600, sm3840, snapscan, sp15c, + st400, tamarack, teco2, test, u12, umax, umax1220u, umax_pp + Plus: + Scanimage detects more chipsets. + Internal scsi, usb, tcp and udp code updates. + Basic HAL .fdi creation support + Build system updates. + Updated translations. + Documentation updates. + Bugfixes. + Note: + This will be (hopefully) the last release of the SANE 1.0 series. + The next release will be extended (in a backwards compatible + fashion) to support more features of modern scanners. +- sane-backends-1.0.16-nb.patch (did locale rename: no -> nb) + is obsolete since version 1.0.19 because it uses already 'nb'. +- in fix-buffer-overflow.patch the overflows in backend/epson.c + backend/as6e.c and sanei/sanei_ab306.c are obsolete because + they are fixed in the source (only backend/niash.c is left). +- replace-HZ-by-sysconf_SC_CLK_TCK.patch is obsolete because + it is fixed in the source. +- fujitsu-disable-hw_ink_remain.patch is obsolete because + it is fixed in the source. +- in fix-uninitialized-variables.patch the fix regarding + teco2.c is obsolete because it is fixed in the source + but a new fix regarding avision.c was added. +- fix-ambiguous-post-pre-increment.patch is obsolete because + it is fixed in the source. +- module-build.diff is dropped because there is no reason to build + driver modules as libtool modules and furthermore it makes our + package incompatible with the rest of the SANE world. +- Since version 1.0.19 there is udev and HAL support. + Therefore the old/outdated hotplug stuff (libsane.usermap + and libusbscanner) is dropped (it was never used by openSUSE). + Also the evil-hack init-script "sane-dev" is no longer provided. + libsane.rules.CVS-2007-07-29.using-lp is obsolete because + the udev rules file 55-libsane.rules is directly derived + from tools/udev/libsane.rules. + create_hal_global_fdi_from_libsane.rules is obsolete because + the HAL fdi file 70-scanner.fdi is directly derived + from tools/hal/libsane.fdi. * Thu Jan 31 2008 adrian@suse.de -- call create_hal_global_fdi_for_scanners via bash. We can not rely - on source file permissions +- Call create_hal_global_fdi_from_libsane.rules via bash. + We can not rely on source file permissions * Tue Aug 14 2007 jsmeix@suse.de - Replaced create_hal_global_fdi_for_scanners by create_hal_global_fdi_from_libsane.rules which creates the global HAL 70-scanner.fdi file during build-time from the - libsane.rules file (see Novell/Suse Bugzilla bug 298878). + libsane.rules file (see Novell/Suse Bugzilla bnc#298878). * Fri Aug 10 2007 jsmeix@suse.de - Removed hpoj.desc completely to avoid confusion with its successor hpaio.desc because since openSUSE 10.3 the package @@ -370,19 +503,19 @@ exit 0 derived from what sane-desc in sane-backends 1.0.18-cvs creates. * Wed Jun 13 2007 jsmeix@suse.de - Adapted create_hal_global_fdi_for_scanners according to the - currently newest changes in HAL (see Suse Bugzilla bug 250659). + currently newest changes in HAL (see Suse Bugzilla bnc#250659). * Wed Jun 06 2007 dmueller@suse.de -- Build modules as libtool modules. +- module-build.diff builds driver modules as libtool modules. * Sat Apr 21 2007 aj@suse.de - Use texlive. * Wed Feb 21 2007 jsmeix@suse.de - Added a fix for an "array subscript is above array bounds" error in niash.c to fix-buffer-overflow.patch - (see Suse Bugzilla bug 246654). + (see Suse Bugzilla bnc#246654). * Wed Jan 31 2007 jsmeix@suse.de - Added a fix for an "array subscript is above array bounds" error in sanei_ab306.c to fix-buffer-overflow.patch - (see Suse Bugzilla bug 239953). + (see Suse Bugzilla bnc#239953). * Mon Jan 29 2007 jsmeix@suse.de - Renamed the package from 'sane' (which is only used by Suse) to 'sane-backends' which is used by the rest of the world @@ -401,17 +534,17 @@ exit 0 to fix-buffer-overflow.patch. - Replaced the complicated postinstall script by calling create_hal_global_fdi_for_scanners which should obsolete - sane-dev (see Suse Bugzilla bug 160899). + sane-dev (see Suse Bugzilla bnc#160899). - Moved sane-dev from {_initrddir} to {_datadir}/sane/ to have it still available in case of backward compatibility problems. * Sun Oct 22 2006 meissner@suse.de - buildrequires libgphoto2-devel. * Mon Sep 18 2006 jsmeix@suse.de - fix-uninitialized-variables.patch fixes an uninitialized - variable in teco2.c (see Suse Bugzilla bug 205451). + variable in teco2.c (see Suse Bugzilla bnc#205451). - create_hal_global_fdi_for_scanners can be called by HAL or YaST to create a global HAL fdi file for scanners which are known - by the current SANE version (see Suse Bugzilla bug 160899). + by the current SANE version (see Suse Bugzilla bnc#160899). * Mon Sep 11 2006 jsmeix@suse.de - disable-resmgr-support.patch disables the resmgr support in SANE which is no longer needed in SANE because resmgr works now @@ -419,13 +552,13 @@ exit 0 * Mon Sep 04 2006 jsmeix@suse.de - Replaced the fix from Thu Aug 31 in fujitsu.c by a new fix fujitsu-disable-hw_ink_remain.patch which disables hw_ink_remain - which causes a buffer overflow (see Suse Bugzilla bug 202243). + which causes a buffer overflow (see Suse Bugzilla bnc#202243). * Thu Aug 31 2006 jsmeix@suse.de - Added a fix of a too small char array in fujitsu.c to - fix-buffer-overflow.patch (see Suse Bugzilla bug 202243). + fix-buffer-overflow.patch (see Suse Bugzilla bnc#202243). * Fri Jul 21 2006 jsmeix@suse.de - canon-backend-autoprobing.patch lets the "canon" backend - do scanner auto-recognition (see Suse Bugzilla bug 177492). + do scanner auto-recognition (see Suse Bugzilla bnc#177492). * Tue Jul 04 2006 jsmeix@suse.de - Updated to sane-backends version 1.0.18: New backends: dell1600n_net, hp3500, pixma, stv680. @@ -449,7 +582,7 @@ exit 0 * Mon Mar 13 2006 jsmeix@suse.de - Added automagic but safe pos-install script which tries to update resmgr permissions for scanners for an update - from Suse Linux 10.0 to 10.1 (see Suse Bugzilla bug 157055). + from Suse Linux 10.0 to 10.1 (see Suse Bugzilla bnc#157055). * Fri Jan 27 2006 jsmeix@suse.de - Current epkowa.desc from the current iscan package. - Current hpaio.desc made from the current hplip package. @@ -538,7 +671,7 @@ exit 0 - Changed "sane" runlevel script which sets permissions in /dev/ and renamed it to "sane-dev" to avoid confusion with the SANE network daemon "saned" and its service name "sane-port" - respectively "sane" (see SUSE bugzilla bug 41233). + respectively "sane" (see SUSE bugzilla bnc#41233). * Mon Nov 08 2004 jsmeix@suse.de - new sane-backends version 1.0.15 - sane-frontends stuff is moved to the new package sane-frontends @@ -547,14 +680,14 @@ exit 0 * Mon Sep 20 2004 jsmeix@suse.de - Added a test in /etc/init.d/sane whether slpd is really running before "/etc/init.d/slpd reload" is done. - (SUSE bugzilla bug 42032). + (SUSE bugzilla bnc#42032). * Wed Sep 15 2004 jsmeix@suse.de - Added sane-backends-1.0.14-epson_d8.patch which fixes the problem with EPSON D8 function level scanners that have - a transparency unit (SUSE bugzilla bug 45075). + a transparency unit (SUSE bugzilla bnc#45075). - Changed the file name of /etc/xinetd.d/sane.xinetd to /etc/xinetd.d/sane-port because xinetd ignores files - with names containing a dot (SUSE bugzilla bug 45313). + with names containing a dot (SUSE bugzilla bnc#45313). * Fri Aug 13 2004 jsmeix@suse.de - Changed "sane" to "sane-port" in sane.xinetd see bug 41233 * Thu Jul 15 2004 jsmeix@suse.de @@ -580,14 +713,14 @@ exit 0 - Removed sane-descriptions-external-epkowa.desc.dif and disabled all entries in all descriptions-external/*.desc files because none of the external backends is included in the sane - package (see bugzilla bug #37169) and for details see + package (see bugzilla bnc#37169) and for details see .../doc/packages/sane/sane-backends/sane-backends-external.html * Thu Mar 25 2004 jsmeix@suse.de - Patch sane-descriptions-external-epkowa.desc.dif disables those entries in descriptions-external/epkowa.desc which are also in descriptions/epson.desc because we want to prefer the open source backend "epson" - (see bugzilla bug #36584). + (see bugzilla bnc#36584). * Tue Mar 23 2004 meissner@suse.de - gimp plugins are now in ../2.0/... * Mon Mar 22 2004 meissner@suse.de diff --git a/sane-dev b/sane-dev deleted file mode 100644 index 1485108..0000000 --- a/sane-dev +++ /dev/null @@ -1,152 +0,0 @@ -#! /bin/bash -# Copyright (c) 2004 SUSE LINUX Products GmbH, Nuernberg, Germany -# -# Author: Johannes Meixner -# -# System startup script for setting scanner permissions in /dev/ -# -### BEGIN INIT INFO -# Provides: sane-dev -# Required-Start: $remote_fs $syslog -# Should-Start: hal haldaemon -# Required-Stop: $remote_fs $syslog -# Default-Start: 3 5 -# Default-Stop: 0 1 2 6 -# Description: Setting scanner permissions in /dev/. -### END INIT INFO - -# Shell functions sourced from /etc/rc.status: -# rc_check check and set local and overall rc status -# rc_status check and set local and overall rc status -# rc_status -v ditto but be verbose in local rc status -# rc_status -v -r ditto and clear the local rc status -# rc_failed set local and overall rc status to failed -# rc_failed set local and overall rc status to -# rc_reset clear local rc status (overall remains) -# rc_exit exit appropriate to overall rc status -. /etc/rc.status - -# First reset status of this service -rc_reset - -# Return values acc. to LSB for all commands but status: -# 0 - success -# 1 - generic or unspecified error -# 2 - invalid or excess argument(s) -# 3 - unimplemented feature (e.g. "reload") -# 4 - insufficient privilege -# 5 - program is not installed -# 6 - program is not configured -# 7 - program is not running -# -# Note that starting an already running service, stopping -# or restarting a not-running service as well as the restart -# with force-reload (in case signalling is not supported) are -# considered a success. - -store_dir=/var/lib/sane -store_file=$store_dir/devices -maximum_wait=30 - -if [ "$1" != "status" -a "$( id -u )" != "0" ] -then echo "You must be root (except for \"$0 status\")." - rc_failed 4 - rc_status - rc_exit -fi - -case "$1" in - start) - if [ -x /usr/bin/scanimage ] - then echo -n "Searching for configured scanners in SANE." - [ -d $store_dir ] || mkdir -m 755 $store_dir - [ -f $store_file ] && mv $store_file ${store_file}.old - /usr/bin/scanimage -f '%d,' 1>${store_file}.raw 2>/dev/null & - scanimagePID=$! - for i in $( seq $maximum_wait ) - do grep scanimage /proc/$scanimagePID/cmdline &>/dev/null || break - sleep 1 - echo -n "." - done - if grep scanimage /proc/$scanimagePID/cmdline &>/dev/null - then echo -n " Aborted." - kill -9 $scanimagePID &>/dev/null - rc_failed 1 - rc_status -v - rc_exit - fi - cat ${store_file}.raw | tr ',' '\n' | grep -v 'net:' | tr ':' '\n' | grep '^/dev/' | sort -u >$store_file - if [ -s $store_file ] - then echo -e "\nSetting scanner access mode to rw-rw-rw- for" - # to be safe only character device files are changed (e.g. harddisks are not changed) - for d in $( cat $store_file ) - do [ -c $d ] && chmod 666 $d && echo -n "$d " - done - else echo -en "\nNo scanner device files found." - fi - else echo -n "Cannot execute /usr/bin/scanimage" - rc_failed 5 - rc_status -v - rc_exit - fi - # Remember status and be verbose - rc_status -v - ;; - stop) - if [ -s $store_file ] - then echo "Resetting scanner access mode to rw-r----- for" - # to be safe only character device files are changed (e.g. harddisks are not changed) - for d in $( cat $store_file ) - do [ -c $d ] && chmod 640 $d && echo -n "$d " - done - else echo -n "There are no scanner device files in $store_file" - fi - # Remember status and be verbose - rc_status -v - ;; - try-restart) - ## Stop the service and if this succeeds (i.e. the - ## service was running before), start it again. - ## Note: try-restart is not (yet) part of LSB (as of 0.7.5) - $0 status >/dev/null && $0 restart - # Remember status and be quiet - rc_status - ;; - restart) - ## Stop the service and regardless of whether it was - ## running or not, start it again. - $0 stop - $0 start - # Remember status and be quiet - rc_status - ;; - force-reload) - ## Signal the daemon to reload its config. Most daemons - ## do this on signal 1 (SIGHUP). - ## If it does not support it, restart. - rc_failed 3 - rc_status -v - ;; - reload) - ## Like force-reload, but if daemon does not support - ## signalling, do nothing (!) - # If it supports signalling: - rc_failed 3 - ;; - status) - if [ -s $store_file ] - then echo "Scanner access mode is" - # only character device files are of interest - for d in $( cat $store_file ) - do [ -c $d ] && ls -l $d | cut -b 2-10 | tr -d '\n' && echo " for $d" - done - else echo "There are no scanner device files in $store_file" - fi - rc_status - ;; - *) - echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}" - exit 1 - ;; -esac -rc_exit