--- sane-backends-1.0.19.orig/debian/sane-utils.saned.init +++ sane-backends-1.0.19/debian/sane-utils.saned.init @@ -0,0 +1,76 @@ +#! /bin/sh +# +### BEGIN INIT INFO +# Provides: saned +# Required-Start: $syslog $local_fs +# Required-Stop: $syslog $local_fs +# Should-Start: dbus avahi +# Should-Stop: dbus avahi +# Default-Start: 2 3 4 5 +# Default-Stop: 1 +# Short-Description: SANE network scanner server +# Description: saned makes local scanners available over the +# network. +### END INIT INFO + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/saned +NAME=saned +DESC="SANE network scanner server" + +test -x $DAEMON || exit 0 + +RUN=no +RUN_AS_USER=saned + +# Include saned defaults if available +if [ -f /etc/default/saned ] ; then + . /etc/default/saned +fi + +if [ "x$RUN" != "xyes" ] ; then + echo "$NAME disabled; edit /etc/default/saned" + exit 0 +fi + +DAEMON_OPTS="-a $RUN_AS_USER" + +set -e + +case "$1" in + start) + echo -n "Starting $DESC: " + start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ + --exec $DAEMON -- $DAEMON_OPTS + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon --stop --oknodo --quiet --pidfile /var/run/$NAME.pid \ + --exec $DAEMON + echo "$NAME." + ;; + force-reload) + # check whether $DAEMON is running. If so, restart + start-stop-daemon --stop --test --quiet --pidfile \ + /var/run/$NAME.pid --exec $DAEMON \ + && $0 restart \ + || exit 0 + ;; + restart) + echo -n "Restarting $DESC: " + start-stop-daemon --stop --quiet --pidfile \ + /var/run/$NAME.pid --exec $DAEMON + sleep 1 + start-stop-daemon --start --quiet --pidfile \ + /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS + echo "$NAME." + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 --- sane-backends-1.0.19.orig/debian/libsane.README.Debian +++ sane-backends-1.0.19/debian/libsane.README.Debian @@ -0,0 +1,162 @@ +libsane (sane-backends) for Debian : +------------------------------------ + +GENERAL +------- + +The configuration files for Debian releases of SANE are in /etc/sane.d. + +A Debian-specific patch is applied to the dll backend, so that the backend +checks for pieces of dll.conf in the /etc/sane.d/dll.d directory; this +facility is used by packages providing external backends (like libsane-extras, +hpoj or hplip) to "register" the backends they provide without much hassle. + +Each backend has a configuration file which specifies which devices, +access methods, options etc. should be used by this backend. The format +and content of each configuration file is documented in the manpage for +the backend, e.g. sane-plustek (5). + +For USB and some SCSI scanners, the parameters can be auto-detected, and +manual configuration is not required. If the auto-detection fails, read +the next paragraph. Again, see the manpage for your backend for more +information. + +For SCSI devices (mostly scanners), the configuration files use the +/dev/scanner device; /dev/scanner is a symbolic link to the appropriate +SCSI device node. It's up to you to create this symbolic link, once you +will have determined which device node it needs to point to. Use the +sane-find-scanner command in the sane-utils package to determine which +SCSI device your scanner is attached to. The sane-find-scanner utility +also discovers USB scanners. + +It can be a good idea to try running sane-find-scanner as root to ensure +there will be no permissions problems while attempting to detect your +devices. + + +DOCUMENTATION +------------- + +For information on configuring and trouble-shooting the various SANE +components, please refer to the manual pages listed below: + + Regarding: Read: + ----------------- ------------------------------------------ + General sane(7) -- your starting point + + scanimage scanimage(1) + xscanimage xscanimage(1) + saned saned(8) + xcam xcam(1) + + Dynamic loading sane-dll(5) + Backends See sane-(5). Each backend + comes with a manual page in section 5 of + the manual system. + + +SETUP +----- + +Note: this is only a proposed solution, you are free implement whatever access +control mechanism you see fit (eg. by using saned on localhost). + +This package added a scanner group to your system. We recommend you to add to +this group the users that should be able to access to your scanner(s), and to +make sure the appropriate device files (eg. /dev/sg0, ...) are owned by root +and the scanner group, with permissions set to 0660. + +You can change the ownership and permissions of the device files as follows : + chown root:scanner /dev/.... + chmod 0660 /dev/.... + + +If you intend to use a USB scanner, it is highly recommended that you install +the udev package, which will help you with setting up the permissions on +the device node referring to your scanner (under /dev/bus/usb/ -- libusb is +used to communicate with the scanner). + +The /etc/udev/rules.d/z60_libsane.rules file contains a list of USB scanners +supported by SANE, so everything should just work once udev will be running on +your system. If your scanner is missing from the list, see the top of the file +for instructions on how to add it to the list; feel free to file a bug report +(severity wishlist) against the libsane package to get your scanner added. + +udev will automatically set up the permissions and ownership on the device +node corresponding to your scanner according to the rules defined in the +libsane.rules file (default is root:scanner, 0664). If you want to execute +a script when your scanner is plugged in, add RUN+="/path/to/script" to the +rule matching your scanner. + +Changes made to the libsane.rules file will be preserved on upgrade. + +If you want to disable the udev support for libsane, remove the file +/etc/udev/rules.d/z60_libsane.rules. + + + +TROUBLESHOOTING +--------------- + +If your scanner does not work, edit the file /etc/sane.d/dll.conf. +Verify that your scanner is not commented out. You may need to +comment out all other scanners in dll.conf. It shouldn't matter, but +sometimes it does. + +The most common cause for a non-working scanner is inappropriate +permissions on the device. So your first reflex should be to check the +permissions of the device used to access your scanner, e.g. /dev/sg0 +or the device pointed to by /dev/scanner. + + +If you encounter any problems with getting your device(s) recognized, +try setting the various environment variables that are there to assist +in debugging such problems. The environment variables are documented +in the relevant manual pages. For example, to get the maximum amount +of debug information when testing a Mustek scanner, set environment +variables SANE_DEBUG_DLL, SANE_DEBUG_MUSTEK, and SANE_DEBUG_SANEI_SCSI +to 128 and then invoke scanimage or whatever program you're trying to +debug. For a Mustek SCSI scanner at /dev/scanner, you might want to +invoke scanimage as follows: + + scanimage -d mustek:/dev/scanner -h + +If this works, you could try to acquire an image with: + + scanimage -d mustek:/dev/scanner > t.pnm + +If you are not sure what generic SCSI device your scanner is connected +to, try the command sane-find-scanner (sane-utils package). It is +normally sufficient to invoke the program without any arguments. Invoking +this command should produce output similar to this: + + $ sane-find-scanner + sane-find-scanner: found "MUSTEK MFC-06000CZ 1.01" at device /dev/sge + +sane-find-scanner will help you discover your USB scanner, too. + + +REPORTING BUGS +-------------- + +When reporting a bug, be it to the SANE developers or to the Debian bug +tracking system, pleases always provide: + - the full version of libsane + - the backend you're using + - the configuration of the backend + - the debug output, obtained by setting the environment variable + SANE_DEBUG_ to a value of 255 (see above, TROUBLESHOOTING) + +Without that, your bug report will take longer to be processed, because we'll +need to ask you for each of these items. Please help us help you. + + +UNSUPPORTED DEVICES AND SPECIFIC NOTES +-------------------------------------- + +If your scanner (or camera, or whatever) is not supported by the regular +SANE distribution, have a look at the libsane-extras package which contains +some backends not yet included in the regular SANE distribution. + + +-- Julien BLACHE , Tue, 17 Apr 2007 21:28:32 +0200 --- sane-backends-1.0.19.orig/debian/libsane.preinst +++ sane-backends-1.0.19/debian/libsane.preinst @@ -0,0 +1,24 @@ +#!/bin/sh +set -e + +## Transition from the old-style udev setup to the old-style dh_installudev setup +## Then dh_installudev will take care of the transition to the new dh_installudev setup +if [ "$1" = install ] || [ "$1" = upgrade ]; then + if [ -e "/etc/udev/rules.d/025_libsane.rules" ]; then + mv /etc/udev/rules.d/025_libsane.rules /etc/udev/rules.d/z60_libsane.rules + fi + + if [ -e "/etc/modprobe.d/libsane" ]; then + if [ "`md5sum \"/etc/modprobe.d/libsane\" | sed -e \"s/ .*//\"`" = \ + "`dpkg-query -W -f='${Conffiles}' libsane | sed -n -e \"\\\\' /etc/modprobe.d/libsane's/.* //p\"`" ] + then + rm -f "/etc/modprobe.d/libsane" + fi + fi + + if [ -e "/etc/modprobe.d/blacklist-scanner" ]; then + rm -f "/etc/modprobe.d/blacklist-scanner" + fi +fi + +#DEBHELPER# --- sane-backends-1.0.19.orig/debian/libsane.postinst +++ sane-backends-1.0.19/debian/libsane.postinst @@ -0,0 +1,70 @@ +#!/bin/sh -e + +purge_devfs() { + if [ -f "/etc/devfs/conf.d/scanner" ] ; then + rm -f /etc/devfs/conf.d/scanner + rmdir --parents --ignore-fail-on-non-empty /etc/devfs/ + fi +} + +purge_hotplug() { + if [ -f "/etc/hotplug/usb/libsane.usermap" ] ; then + rm -f /etc/hotplug/usb/libsane.usermap + fi + if [ -f "/etc/hotplug/usb/libusbscanner" ] ; then + rm -f /etc/hotplug/usb/libusbscanner + fi +} + +purge_hotplugng() { + if [ -f "/etc/hotplug.d/usb/libsane.hotplug" ]; then + rm -f /etc/hotplug.d/usb/libsane.hotplug + rmdir -p --ignore-fail-on-non-empty /etc/hotplug.d/usb + fi + + if [ -f "/etc/hotplug/blacklist.d/libsane" ]; then + rm -f /etc/hotplug/blacklist.d/libsane + rmdir -p --ignore-fail-on-non-empty /etc/hotplug/blacklist.d + fi + + if [ -f "/etc/sane.d/hotplug/libsane.db" ]; then + rm -f /etc/sane.d/hotplug/libsane.db + rmdir -p --ignore-fail-on-non-empty /etc/sane.d/hotplug + fi +} + +case "$1" in + configure) + + if [ "$(uname -s)" = "Linux" ]; then + # remove devfs config as scanning through usbscanner is not supported anymore + purge_devfs + # remove old hotplug scripts + purge_hotplug + # remove old hotplug-ng scripts + purge_hotplugng + + if [ -e /dev/MAKEDEV ]; then + # create /dev/parport* + if [ ! -c /dev/parport0 ]; then + (cd /dev && ./MAKEDEV parport) || true + fi + # create /dev/sg* + if [ ! -c /dev/sg0 ]; then + (cd /dev && ./MAKEDEV sg) || true + fi + fi + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "$0 called with unknown argument '$1'" >&2 + exit 1 + ;; +esac + + +#DEBHELPER# --- sane-backends-1.0.19.orig/debian/libsane.install.in +++ sane-backends-1.0.19/debian/libsane.install.in @@ -0,0 +1,9 @@ +usr/share/man/man7 +usr/share/locale/ +usr/lib/sane/*.so.* +usr/lib/sane/*.la +usr/lib/*.so.* +usr/lib/*.la +etc/ +usr/share/man/man5/sane-scsi.5 +usr/share/man/man5/sane-usb.5 --- sane-backends-1.0.19.orig/debian/libsane-dev.doc-base +++ sane-backends-1.0.19/debian/libsane-dev.doc-base @@ -0,0 +1,16 @@ +Document: libsane-dev +Title: SANE Standard +Author: Andreas Beck and David Mosberger +Abstract: SANE stands for "Scanner Access Now Easy" and is an application + programming interface (API) that provides standardized access to any + raster image scanner hardware (flatbed scanner, hand-held scanner, + video- and still-cameras, frame-grabbers, etc.). The SANE standard is + free and its discussion and development are open to everybody. The + current source code is written to support several operating systems, + including GNU/Linux, OS/2, Win32 and various Unices and is available + under the GNU General Public License (commercial applications and + backends are welcome, too, however). +Section: Graphics + +Format: postscript +Files: /usr/share/doc/libsane-dev/sane.ps.gz --- sane-backends-1.0.19.orig/debian/copyright +++ sane-backends-1.0.19/debian/copyright @@ -0,0 +1,50 @@ +This package was first debianized by Kevin Dalley . + +It is now maintained by Julien BLACHE , initially with +the help of Aurélien JARNO . + +It was downloaded from : ftp://ftp.sane-project.org/pub/sane/ + +Upstream Authors : see /usr/share/doc/libsane/AUTHORS.gz + + +Verbatim copy of the LICENSE : + +******************************************************************************** +Mon Nov 30 22:41:58 1998 + +This files attempts to clarify the licensing situation for the SANE +distribution. In case of doubt, the copyright information contained +in each file overrides what is said here. + +SANE consists of three parts each of which has its own licensing +terms: + + * The frontend programs. + + These programs are generally protected by the GNU General Public + License. (See file COPYING.) + + * The backend libraries. + + Backend libraries are protected by the GNU General Public License (see + file COPYING), but as an exception, it is permissible to link against + such a library without affecting the licensing status of the program + that uses the libraries. For details, see the copyright notice at the + head of the backend files (e.g., backend/dll.c). + + Note that some of the backends have additional licensing constraints. + E.g., the DC210 backend uses JPG code that is licensed as described + in backend/djpeg.README.gz. + + * The SANE API and network protocol as put forth in the standard document. + + The standard is considered to be in the public domain. Anyone is free + to implement SANE interface conforming applications or libraries in + any way he or she sees fit. + +******************************************************************************** + +On Debian systems, the complete text of the GNU General Public License (the +"COPYING" file referred to above) can be found in the +/usr/share/common-licenses/GPL file. --- sane-backends-1.0.19.orig/debian/sane-utils.templates +++ sane-backends-1.0.19/debian/sane-utils.templates @@ -0,0 +1,19 @@ +Template: sane-utils/saned_run +Type: boolean +Default: false +_Description: Enable saned as a standalone server? + The saned server, when enabled, makes scanners available over the network. + . + There are two ways of running saned: + - as an inetd service, started by the inetd superserver. In this mode, + saned is started as needed by inetd whenever a client tries to connect + to the server; + - as a standalone daemon, started at system boot. In this mode, saned + runs in the background all by itself and listens for client connections. + . + When run in standalone mode, saned advertises itself on the network and + can be detected automatically by the SANE clients with no configuration + on the client side. You still need to configure the server to accept + connections from your clients. + . + Accept this option if you want to make use of this feature. --- sane-backends-1.0.19.orig/debian/rules +++ sane-backends-1.0.19/debian/rules @@ -0,0 +1,177 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# Include dpatch rules +include /usr/share/dpatch/dpatch.make + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) +ifeq ($(DEB_HOST_ARCH_OS),) + DEB_HOST_ARCH_OS := $(subst -gnu,,$(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM)) + ifeq ($(DEB_HOST_ARCH_OS),gnu) + DEB_HOST_ARCH_OS := hurd + endif +endif + + +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CFLAGS += -g +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL_PROGRAM += -s +endif + +autotools: autotools-stamp +autotools-stamp: + -rm -f config.sub config.guess + ln -s /usr/share/misc/config.sub config.sub + ln -s /usr/share/misc/config.guess config.guess + touch autotools-stamp + +config.status: autotools-stamp configure + dh_testdir + + # Add here commands to configure the package. + LDFLAGS="-Wl,-Bsymbolic-functions" \ + ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --datadir=\$${prefix}/share \ + --mandir=\$${prefix}/share/man \ + --with-docdir=\$${prefix}/share/doc/libsane \ + --disable-locking \ + --enable-static \ + --with-gphoto2 \ + --enable-translations \ + --enable-avahi + + # generate POT file for translators + (cd po && make sane-backends.pot) + +build: build-stamp +build-stamp: patch-stamp config.status + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + + touch build-stamp + +clean: real-clean unpatch +real-clean: + dh_testdir + dh_testroot + rm -f autotools-stamp build-stamp + + # Autoconf-generated files + rm -f include/byteorder.h include/_stdint.h + + # Add here commands to clean up after the build process. + [ ! -f Makefile ] || $(MAKE) distclean + + rm -f debian/libsane.install debian/libsane.docs + rm -f config.sub config.guess + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/tmp + $(MAKE) install prefix=$(CURDIR)/debian/tmp/usr \ + sysconfdir=$(CURDIR)/debian/tmp/etc \ + docdir=$(CURDIR)/debian/tmp/usr/share/doc/libsane + + # remove /usr/lib/sane/libsane.so.1 (libtool side-effect ?) + rm -f debian/tmp/usr/lib/sane/libsane.so.1 + + # remove libsane-dll, same as regular libsane + rm -f debian/tmp/usr/lib/sane/libsane-dll.* + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + + # install only the manpages for the backends which have been built + cp debian/libsane.install.in debian/libsane.install + ls debian/tmp/usr/lib/sane/*.so | sed -e "s#.*/lib\([^.]\+\)[.]so#usr/share/man/man5/\1.5#" | { while read mp; do \ + test -e debian/tmp/$$mp && echo $$mp >> debian/libsane.install; done } + + dh_install --sourcedir=debian/tmp + + # install the umax_pp tool into sane-utils + cp tools/umax_pp debian/sane-utils/usr/bin + +ifeq (kfreebsd,$(DEB_HOST_ARCH_OS)) + echo README.freebsd > debian/libsane.docs +endif +ifeq (linux,$(DEB_HOST_ARCH_OS)) + echo README.linux > debian/libsane.docs +endif + + dh_installdocs + + rm -f debian/libsane/etc/sane.d/saned.conf + + # move the html files into html/ + install -d debian/libsane-dev/usr/share/doc/libsane-dev/html + mv debian/libsane-dev/usr/share/doc/libsane-dev/*.html debian/libsane-dev/usr/share/doc/libsane-dev/html/ + + # create the PATH_SANE_DATA_DIR/gt68xx directory in libsane + install -d debian/libsane/usr/share/sane/gt68xx + + # create the /etc/sane.d/dll.d directory in libsane + install -d debian/libsane/etc/sane.d/dll.d + + # Install HAL fdi file + mkdir -p $(CURDIR)/debian/libsane/usr/share/hal/fdi/preprobe/10osvendor + $(CURDIR)/tools/sane-desc -s $(CURDIR)/doc/descriptions -m hal-new > $(CURDIR)/debian/libsane/usr/share/hal/fdi/preprobe/10osvendor/20-libsane.fdi + + # remove rpath from the binaries (wonderful tool !) + chrpath -d debian/sane-utils/usr/sbin/saned + chrpath -d debian/sane-utils/usr/bin/scanimage + + # install the xerox script as an example + dh_installexamples -plibsane tools/README tools/xerox + + dh_installdebconf + dh_installinit -psane-utils --name=saned --error-handler=saned_eh -- start 50 2 3 4 5 . stop 20 1 . + dh_installchangelogs ChangeLog + dh_link + dh_strip --dbg-package=libsane-dbg + dh_compress + dh_fixperms + dh_makeshlibs + dh_installdeb + dh_shlibdeps +ifeq (linux,$(DEB_HOST_ARCH_OS)) + dh_gencontrol -- -Vudev="udev (>= 0.88-1) | makedev (>= 2.3.1-58)" +else + ifeq (kfreebsd,$(DEB_HOST_ARCH_OS)) + dh_gencontrol -- -Vlibcam-dev="libcam-dev" + else + dh_gencontrol + endif +endif + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install patch unpatch real-clean autotools --- sane-backends-1.0.19.orig/debian/libsane-dev.install +++ sane-backends-1.0.19/debian/libsane-dev.install @@ -0,0 +1,8 @@ +usr/include/ +usr/lib/sane/*.a +usr/lib/sane/*.so +usr/lib/*.a +usr/lib/*.so +usr/bin/sane-config +usr/share/man/man1/sane-config.1 +usr/share/doc/*/* usr/share/doc/libsane-dev/ --- sane-backends-1.0.19.orig/debian/sane-utils.saned.default +++ sane-backends-1.0.19/debian/sane-utils.saned.default @@ -0,0 +1,7 @@ +# Defaults for the saned initscript, from sane-utils + +# Set to yes to start saned +RUN=no + +# Set to the user saned should run as +RUN_AS_USER=saned --- sane-backends-1.0.19.orig/debian/sane-utils.config +++ sane-backends-1.0.19/debian/sane-utils.config @@ -0,0 +1,17 @@ +#!/bin/sh +set -e + +. /usr/share/debconf/confmodule + +if [ -e /etc/default/saned ]; then + . /etc/default/saned + + if [ "$RUN" != "yes" ]; then + db_set sane-utils/saned_run false + else + db_set sane-utils/saned_run true + fi +fi + +db_input medium sane-utils/saned_run || true +db_go || true --- sane-backends-1.0.19.orig/debian/compat +++ sane-backends-1.0.19/debian/compat @@ -0,0 +1 @@ +5 --- sane-backends-1.0.19.orig/debian/libsane.postrm +++ sane-backends-1.0.19/debian/libsane.postrm @@ -0,0 +1,11 @@ +#!/bin/sh -e + +#DEBHELPER# + +# remove directory /etc/sane.d/ +if [ "$1" = "purge" ]; then + echo "Removing directory /etc/sane.d/ ..." + rmdir --ignore-fail-on-non-empty /etc/sane.d/ +fi + + --- sane-backends-1.0.19.orig/debian/changelog +++ sane-backends-1.0.19/debian/changelog @@ -0,0 +1,1787 @@ +sane-backends (1.0.19-23ubuntu7) jaunty; urgency=low + + * debian/libsane.preinst: Remove the old blacklist-scanner modprobe + file. LP: #340873. + + -- Scott James Remnant Wed, 25 Mar 2009 13:40:43 +0000 + +sane-backends (1.0.19-23ubuntu6) jaunty; urgency=low + + * debian/libsane.dirs.linux: remove + * deian/rules: cleanup + + -- Scott James Remnant Thu, 05 Mar 2009 13:04:28 +0000 + +sane-backends (1.0.19-23ubuntu5) jaunty; urgency=low + + * debian/rules: /etc/modprobe.d/libsane blacklists two modules that don't + exist anymore, dropped creation of this file + * debian/libsane.preinst: remove the old file if unmodified + + -- Scott James Remnant Thu, 05 Mar 2009 12:34:02 +0000 + +sane-backends (1.0.19-23ubuntu4) jaunty; urgency=low + + * saned init script does not need to be started before gdm, and does not + need to be called on shutdown. + + -- Scott James Remnant Fri, 27 Feb 2009 00:58:05 +0000 + +sane-backends (1.0.19-23ubuntu3) jaunty; urgency=low + + * Add 42_add_epson_cx_6000.dpatch: Add Epson CX6000. (LP: #314485) + + -- Martin Pitt Fri, 13 Feb 2009 12:12:55 +0100 + +sane-backends (1.0.19-23ubuntu2) jaunty; urgency=low + + * Re-added Scott's change to drop support for saned in the scanner group, + which had been added at the same time as the merge so was missed. + + -- Bryce Harrington Wed, 14 Jan 2009 09:29:22 -0800 + +sane-backends (1.0.19-23ubuntu1) jaunty; urgency=low + + * Merge from debian unstable, remaining changes: LP: #315364 + - debian/rules: Link using -Bsymbolic-functions (startup time + optimization). + - debian/{libsane.install.in,libsane-dev.install,rules}: Install + documentation into libsane-dev instead of libsane to save CD space. + - debian/rules: Do not install the udev rules, since hal now provides + dynamic ACLs on device nodes. (See hardy-hardware-detection spec.) + - debian/libsane.postinst: Do not create the scanner group. + - debian/control: Demote libsane-extras from Depends: to Suggests:, as + long as this package is in universe. + - debian/control: Demote sane-utils and avahi-daemon from Recommends to + Suggests. We do not want to have an init script for saned laying around, + which is disabled by default anyway. + - debian/libsane.dirs.linux: Don't create /etc/udev/rules.d since we + don't ship any rules. + + -- Bhavani Shankar Fri, 09 Jan 2009 13:17:12 +0530 + +sane-backends (1.0.19-23) unstable; urgency=low + + * debian/patches/09_avision_fixes.dpatch: + + Updated; fix reader task handling to not signal the whole process group + erroneously. + + * debconf translations: + + it.po: courtesy of Luca Monducci (closes: #507563). + + -- Julien BLACHE Tue, 09 Dec 2008 16:14:06 +0100 + +sane-backends (1.0.19-22) unstable; urgency=low + + * debian/patches/41_epjitsu_fixes.dpatch: + + Added; from CVS, fix double-free issues in epjitsu (closes: #506750). + + -- Julien BLACHE Mon, 24 Nov 2008 15:02:04 +0100 + +sane-backends (1.0.19-21ubuntu3) jaunty; urgency=low + + * Drop the support for saned in the scanner group, since we don't have + a scanner group anymore! + + -- Scott James Remnant Tue, 13 Jan 2009 04:28:51 +0000 + +sane-backends (1.0.19-21ubuntu2) jaunty; urgency=low + + * debian/libsane.dirs.linux: Don't create /etc/udev/rules.d since we + don't ship any rules. + + -- Scott James Remnant Wed, 07 Jan 2009 15:31:28 +0000 + +sane-backends (1.0.19-21ubuntu1) jaunty; urgency=low + + * Merge with Debian unstable. Remaining Ubuntu changes: + - debian/rules: Link using -Bsymbolic-functions (startup time + optimization). + - debian/{libsane.install.in,libsane-dev.install,rules}: Install + documentation into libsane-dev instead of libsane to save CD space. + - debian/rules: Do not install the udev rules, since hal now provides + dynamic ACLs on device nodes. (See hardy-hardware-detection spec.) + - debian/libsane.postinst: Do not create the scanner group. + - debian/control: Demote libsane-extras from Depends: to Suggests:, as + long as this package is in universe. + * debian/control: Demote sane-utils and avahi-daemon from Recommends to + Suggests. We do not want to have an init script for saned laying around, + which is disabled by default anyway. + + -- Martin Pitt Mon, 10 Nov 2008 15:51:48 +0100 + +sane-backends (1.0.19-21) unstable; urgency=low + + * debian/rules: + + Use an error handler for saned's init. + * debian/sane-utils.postinst: + + Added error handler for saned init (closes: #493745). + + * debconf translations: + + es.po: courtesy of Ignacio Mondino (closes: #499202). + + -- Julien BLACHE Fri, 19 Sep 2008 10:50:04 +0200 + +sane-backends (1.0.19-20) unstable; urgency=low + + * debian/control: + + Make sane-utils depend on update-inetd (>= 4.31) which won't break + with debconf. + * debian/sane-utils.postinst: + + update-inetd needs debconf sometimes, so keep debconf enabled until + after the update-inetd call. + + -- Julien BLACHE Fri, 05 Sep 2008 11:04:59 +0200 + +sane-backends (1.0.19-19) unstable; urgency=low + + * debian/rules: + + Install umax_pp into sane-utils (closes: #496833). + + * debian/patches/40_fujitsu_fixes.dpatch: + + Added; upstream backport of fujitsu backend fixes, fixes a string + initialization issue in config file parsing, adds color mode for the + fi-6130, 6230, 6140, 6240 and fixes fi-6230 hangs at wakeup from + powersave mode. + Thanks to M. Allan Noah for providing a backport (closes: #494156). + + -- Julien BLACHE Thu, 28 Aug 2008 10:31:35 +0200 + +sane-backends (1.0.19-18) unstable; urgency=low + + * debian/patches/10_sm3840_unbreak_sane_open.dpatch: + + Added; from CVS, fix the way sane_open() checks for sanei_usb_open() + errors (closes: #496249). + + * debconf translations: + + ja.po: courtesy of Hideki Yamane (closes: #493568). + + -- Julien BLACHE Wed, 27 Aug 2008 19:58:15 +0200 + +sane-backends (1.0.19-17) unstable; urgency=low + + * debian/patches/33_scanimage_options_fix.dpatch: + + Added; get the option descriptor for option 0 before getting the value + for option 0. This is a standard-compliance fix needed for proper + operation with the net backend. + * debian/patches/30_new_saned.dpatch: + + Updated; fix initialization of runas_{g,u}id and ngroups, preventing + failures later on in some cases (saned -a without username). + + -- Julien BLACHE Tue, 05 Aug 2008 12:10:44 +0200 + +sane-backends (1.0.19-16) unstable; urgency=low + + * debian/patches/30_new_saned.dpatch: + + Updated; Fix seteuid()/setegid() call order and set supplemental group + list (closes: #493084). + + -- Julien BLACHE Thu, 31 Jul 2008 11:46:53 +0200 + +sane-backends (1.0.19-15) unstable; urgency=low + + * debian/patches/09_avision_fixes.dpatch: + + Enable this patch for real. + * debian/patches/31_sanei_pthread_64bit_fix.dpatch: + + Updated. + + -- Julien BLACHE Tue, 22 Jul 2008 23:05:50 +0200 + +sane-backends (1.0.19-14) unstable; urgency=low + + * debian/patches/32_net_backend_standard_fix.dpatch: + + Updated; fix sane_control_option() in the net backend so as to bring + the net backend behaviour back in line with standard backends. This + should fix some issues reported with the net backend lately. + * debian/patches/01_manpages_fixes.dpatch: + + Updated; fix some more hyphen vs. minus sign issues. + + * debian/rules: + + Include debug symbols for sane-utils into libsane-dbg. + * debian/copyright: + + Update. + + -- Julien BLACHE Sun, 20 Jul 2008 12:51:25 +0200 + +sane-backends (1.0.19-13) unstable; urgency=low + + * debian/libsane.README.Debian: + + Fix udev rules filename (closes: #490656). + * debian/patches/01_manpages_fixes.dpatch: + + Updated; fix hyphen vs. minus sign issues reported by lintian. + * debian/patches/30_new_saned.dpatch: + + Updated; manpage fixes. + + -- Julien BLACHE Mon, 14 Jul 2008 13:17:44 +0200 + +sane-backends (1.0.19-12) unstable; urgency=low + + * debian/control: + + Bump Standards-Version to 3.8.0 (no changes). + + * debian/patches/30_new_saned.dpatch: + + Updated; properly terminate child processes when exiting from the + debug mode. + * debian/patches/32_net_backend_standard_fix.dpatch: + + Added; do not reload the option descriptors cache behind the frontend's + back in sane_control_option(). Fetch options descriptors in sane_open() + so GET_VALUE on option 0 can still work without explicitely getting + option descriptor 0 first. + + * debconf translations: + + sv.po: courtesy of Martin Bagge (closes: #487369). + + -- Julien BLACHE Tue, 24 Jun 2008 22:10:35 +0200 + +sane-backends (1.0.19-11) unstable; urgency=low + + * debian/patches/30_new_saned.dpatch: + + Updated; lock the Avahi thread before stopping it and tearing down the + Avahi objects (closes: #484464). + * debian/patches/09_avision_fixes.dpatch: + + Added; from CVS, misc avision backend fixes (closes: #474706, #475198). + + * debconf translations: + + ru.po: courtesy of Yuri Kozlov (closes: #481656). + + -- Julien BLACHE Fri, 06 Jun 2008 17:37:28 +0200 + +sane-backends (1.0.19-10) unstable; urgency=low + + * debian/sane-utils.postinst: + + Make proper use of debconf !@#%$ (closes: #481442). + + * debconf translations: + + fr.po: update by Christian Perrier (closes: #481439). + + -- Julien BLACHE Fri, 16 May 2008 19:26:48 +0200 + +sane-backends (1.0.19-9) unstable; urgency=low + + * debian/sane-utils.postinst: + + Do not attempt to remove saned from the scanner group if it isn't part + of the group in the first place (closes: #481288). + * debian/patches/31_sanei_pthread_64bit_fix.dpatch: + + Added; from CVS, fix sanei_pthread on 64bit platforms. + + -- Julien BLACHE Thu, 15 May 2008 18:54:37 +0200 + +sane-backends (1.0.19-8) unstable; urgency=low + + * Reupload 1.0.19-7 to unstable. + + * debconf translations: + + pt.po: courtesy of Américo Monteiro (closes: #480219). + + cs.po: courtesy of Miroslav Kure (closes: #480313). + + de.po: courtesy of Helge Kreutzmann (closes: #480366). + + vi.po: courtesy of Clytie Siddall (closes: #480483). + + fi.po: courtesy of Esko Arajärvi (closes: #480550). + + fr.po: update by Christian Perrier. + + -- Julien BLACHE Wed, 14 May 2008 19:13:29 +0200 + +sane-backends (1.0.19-7) experimental; urgency=low + + * Introducing new saned & net backend features. + + saned can now run as a standalone daemon and offers mDNS/DNS-SD. The net + backend can discover saned servers on the (local) network. + + * debian/patches/01_manpages_fixes.dpatch: + + Fix man warnings in sane-config.1 and sane-mustek_pp.5. + * debian/patches/30_new_saned.dpatch: + + Added; from CVS HEAD, backport new saned and net backend. + * debian/sane-utils.README.Debian: + + Enhancements, typo fixes. + * debian/sane-utils.templates, debian/sane-utils.config, + debian/sane-utils.postinst: + + Add a debconf question to automatically add the saned user to the + scanner group. + + Add a debconf question to enable saned as a standalone daemon. + * debian/rules: + + Enable Avahi support at configure time. + + Call dh_installdebconf. + + Call dh_installinit. + * debian/control: + + Build-Depend on po-debconf, libavahi-client-dev (>= 0.6.4). + + sane-utils: add ${misc:Depends} to get the appropriate debconf + dependencies. + + sane-utils: recommend avahi-daemon. + + libsane: recommend avahi-daemon. + + libsane-dev: depend on libavahi-client-dev. + * debian/sane-utils.saned.init, debian/sane-utils.saned.default: + + Add an initscript & default file for saned. + + * debconf translations: + + eu.po: courtesy of Piarres Beobide (closes: #479380, #479808). + + fr.po: courtesy of Christian Perrier. + + pt_BR.po: courtesy of Eder L. Marques (closes: #479785). + + gl.po: courtesy of Jacobo Tarrio (closes: #479838). + + -- Julien BLACHE Wed, 07 May 2008 18:37:07 +0200 + +sane-backends (1.0.19-6) unstable; urgency=low + + * debian/patches/08_epson2_be_nice_to_saned.dpatch: + + Added; from CVS, be nice to saned and do not pollute fd 0 + (closes: #479052). + + -- Julien BLACHE Sat, 03 May 2008 16:46:12 +0200 + +sane-backends (1.0.19-5) unstable; urgency=low + + * debian/patches/07_epson2_be_nice.dpatch: + + Added; from CVS, be nice to other backends and close the scanner device + when the device is not recognized (or another error happens) + (closes: #476468). + + -- Julien BLACHE Sat, 19 Apr 2008 17:16:13 +0200 + +sane-backends (1.0.19-4) unstable; urgency=low + + * debian/patches/03_snapscan_usb_ftok_fix.dpatch: + + Updated; improve the patch by falling back to ftok() for non-libusb + devices. + * debian/patches/04_sane-desc_hal_new.dpatch: + + Added; add support for newer HAL versions. + * debian/patches/05_hp_timing_fix.dpatch: + + Added; fix timing issue with HP scanners (closes: #472819). + * debian/patches/06_sanei_scsi_attach_fix.dpatch: + + Added; from CVS, continue to iterate over the list of devices even + if an attempt to attach one of the devices fails. + * debian/rules: + + Generate HAL FDI file for newer HAL versions (closes: #472664). + * debian/libsane-dev.doc-base: + + Fix doc-base section. + + -- Julien BLACHE Fri, 28 Mar 2008 22:39:17 +0100 + +sane-backends (1.0.19-3) unstable; urgency=low + + * debian/patches/01_disable_epson2.dpatch: + + Removed; reenable the epson2 backend. + * debian/patches/03_snapscan_usb_ftok_fix.dpatch: + + Added; work around the usage of ftok() in the snapscan backend. See + the patch description for details (closes: #466855). + + -- Julien BLACHE Sat, 15 Mar 2008 16:16:38 +0100 + +sane-backends (1.0.19-2) unstable; urgency=low + + * debian/patches/02_pixma_update.dpatch: + + Added; update pixma backend from CVS, adding support for + - Pixma MP210, MP470, MP520, MP610, MultiPASS MP710 + - MP140, MP220, MultiPASS MP740 (untested) + - MP970 (experimental, untested) + (closes: #468270). + * debian/rules: + + Generate and install HAL fdi file (closes: #466540). + * debian/control: + + Add update-inetd dependency for sane-utils. + * debian/sane-utils.postinst, debian/sane-utils.postrm: + + Add support for update-inetd (closes: #426514). + * debian/sane-utils.README.Debian: + + Document update-inetd usage. + + -- Julien BLACHE Sat, 01 Mar 2008 14:11:29 +0100 + +sane-backends (1.0.19-1) unstable; urgency=low + + * New upstream release. + + 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) + + Fix for the pixma backend (closes: #459663). + + Regression fix for the avision backend (closes: #458478, #458932). + * debian/patches/02_hurd_no_plustek_pp.dpatch: + + Removed; merged upstream. + * debian/patches/11_minimum_linkage.dpatch: + + Updated. + * debian/patches/12_new_configure.dpatch: + + Updated. + * debian/control: + + Adjust libsane-extras dependencies for 1.0.19. + + -- Julien BLACHE Tue, 12 Feb 2008 21:44:19 +0100 + +sane-backends (1.0.19~cvs20071213-5) unstable; urgency=low + + * debian/control: + + Build-Depends: xutils-dev instead of xutils. + + Depend on libsane-extras{,-dev,-dbg} to help fix up the buggy udev rules + in libsane-extras. + + Promote libgphoto2-2-dev to Depends: for libsane-dev. + * debian/patches/02_hurd_no_plustek_pp.dpatch: + + Added; do not build plustek_pp on Hurd (closes: #457378). + * debian/patches/12_new_configure.dpatch: + + Updated. + + -- Julien BLACHE Mon, 07 Jan 2008 12:07:27 +0100 + +sane-backends (1.0.19~cvs20071213-4) unstable; urgency=low + + * debian/patches/11_minimum_linkage.dpatch: + + Updated; add libcam for coolscan & umax, remove it for cardscan. + + -- Julien BLACHE Mon, 31 Dec 2007 14:11:34 +0100 + +sane-backends (1.0.19~cvs20071213-3) unstable; urgency=low + + * debian/control: + + Tighten relationship with libsane-extras due to the udev rules renaming. + + -- Julien BLACHE Fri, 28 Dec 2007 11:45:30 +0100 + +sane-backends (1.0.19~cvs20071213-2) unstable; urgency=low + + * debian/rules: + + Generate udev rules as debian/libsane.udev, clean as needed. + + Use dh_installudev. + + Remove libsane-dll.* from /usr/lib/sane; libsane.so and libsane-dll.so + are the same backend. + * debian/libsane.postinst: + + Remove udev installation code. + * debian/libsane.preinst: + + Added; handle upgrade from previous udev code to dh_installudev. + * debian/patches/11_minimum_linkage.dpatch: + + Added; only link backends to the libraries they need. + * debian/patches/12_new_configure.dpatch: + + Added; new configure script. + * debian/patches/12_gphoto2_link_backend_only.dpatch: + + Removed; obsoleted by 11_minimum_linkage.dpatch. + * debian/patches/13_new_configure.dpatch: + + Removed; now 12_new_configure.dpatch. + + -- Julien BLACHE Tue, 25 Dec 2007 22:58:26 +0100 + +sane-backends (1.0.19~cvs20071213-1) unstable; urgency=low + + * New CVS snapshot. + + New backend: hp3900. + * debian/control: + + Bump Standards-Version to 3.7.3 (no changes). + + Bump libsane-extras{,-dev} dependencies/conflicts/replaces to 1.0.18.13. + + Remove module-init-tools recommendation, enforced by udev which is a + dependency. + * debian/rules: + + Remove ${module-init-tools} substvar. + + -- Julien BLACHE Thu, 13 Dec 2007 21:59:02 +0100 + +sane-backends (1.0.19~cvs20071028-1) unstable; urgency=low + + * New CVS snapshot. + + All backends now declare OPT_NUM_OPTS of type SANE_TYPE_INT (closes: #448162). + + Fixed USB IDs for the Epson CX-6600 (closes: #419349). + + Added USB IDs for the Epson DX-6000 (closes: #442051). + * debian/control: + + libsane-dev Recommends: libgphoto2-2-dev. + + -- Julien BLACHE Sun, 28 Oct 2007 11:17:36 +0100 + +sane-backends (1.0.19~cvs20070730-1) unstable; urgency=low + + * New CVS snapshot. + + Workaround for CONFIG_USB_SUSPEND (closes: #434276). + * debian/control, debian/rules: + + Make libsane depend on makedev | udev on Linux (closes: #428220). + * debian/libsane.postinst: + + Change MAKEDEV invocation to invoke /dev/MAKEDEV instead of /sbin/MAKEDEV. + * debian/control: + + Do not {build-,}depend on libusb-dev nor libieee1284-dev on hurd-i386 + (closes: #434575). + + Use ${binary:Version} instead of ${Source-Version}. + * debian/rules: + + Do not ignore make distclean errors. + * debian/patches/30_sanei_scsi_sg_ioctl.dpatch: + + Removed; merged upstream. + + -- Julien BLACHE Mon, 30 Jul 2007 14:03:13 +0200 + +sane-backends (1.0.19~cvs20070505-3) unstable; urgency=low + + * debian/patches/30_sanei_scsi_sg_ioctl.dpatch: + + Added; use the SG_IO ioctl interface instead of the asynchronous + read/write SG3 interface. This allows the use of SCSI scanners in + mixed 32/64bit environments, thanks to the ioctl 32bit compatibility + layer taking care of the 32/64bit sg_hdr conversion (closes: #420193). + + If you own a SCSI scanner, please report back on this change; especially + if, compared to the previous version (1.0.19~cvs20070505-2): + - the scanner backtracks more than it used to with the previous version + - you see weird errors OR you see no error and you should be seeing some + - performance sucks + - resulting image is broken in one way or another + - ... + + -- Julien BLACHE Sun, 20 May 2007 10:46:00 +0200 + +sane-backends (1.0.19~cvs20070505-2) unstable; urgency=low + + * debian/patches/01_disable_epson2.dpatch: + + Added; disable epson2 backend by default (closes: #422697). + + -- Julien BLACHE Sat, 12 May 2007 10:37:11 +0200 + +sane-backends (1.0.19~cvs20070505-1) unstable; urgency=low + + * New CVS snapshot. + + New backend: hp5590. + * debian/patches/31_epson_remove_check.dpatch: + + Removed; merged upstream. + + -- Julien BLACHE Sat, 05 May 2007 20:37:07 +0200 + +sane-backends (1.0.19~cvs20070421-1) unstable; urgency=low + + * debian/control: + + Update Build-Depends for the TeXLive migration. + + Removed old Conflicts. + + Upgrade libsane-extras minimum version to 1.0.18.6. + * debian/rules: + + Drop hotplug support. + + Drop code for Sarge backports. + * debian/libsane.postinst: + + Remove old hotplug-ng files, code taken from Ubuntu. + * debian/libsane.README.Debian, debian/sane-utils.README.Debian: + + Removed hotplug notes. + * debian/patches/03_usb_perms_664.dpatch: + + Removed; merged upstream. + * debian/patches/11_hotplug_wait_for_device.dpatch: + + Removed; not needed anymore. + * debian/patches/30_udev_long_comment_lines.dpatch: + + Removed; merged upstream. + * debian/patches/32_microtek2_add_check.dpatch: + + Removed; merged upstream. + * debian/patches/33_manpages_fixes.dpatch: + + Removed; merged upstream. + + -- Julien BLACHE Sat, 21 Apr 2007 13:33:26 +0200 + +sane-backends (1.0.18-6) unstable; urgency=low + + * Enable libieee1284 support on kFreeBSD-amd64 (closes: #413178). + * debian/control: + + Build-depend on libieee1284-3-dev (>= 0.2.10-5) for all architectures. + + libsane-dev depends on libieee1284-3-dev (>= 0.2.10-5) for all architectures. + * debian/rules: + + Remove the libieee1284-3-dev substitution variable. + + -- Julien BLACHE Sat, 3 Mar 2007 11:39:33 +0100 + +sane-backends (1.0.18-5) unstable; urgency=medium + + * debian/patches/32_microtek2_add_check.dpatch: + + Added; Add missing return status check, preventing a segfault later + on (closes: #398153). + * debian/patches/33_manpages_fixes.dpatch: + + Added; fix man warnings in some manpages. + + -- Julien BLACHE Mon, 8 Jan 2007 19:52:22 +0100 + +sane-backends (1.0.18-4) unstable; urgency=medium + + * debian/patches/31_epson_remove_check.dpatch: + + Added; Remove bogus check in epson backend get_identity2_information() + affecting Stylus CX5xxx models (closes: #399119, #402444). + * debian/sane-utils.README.Debian: + + Fix typo, the manpage for saned is in section 8 not 1. + * debian/control: + + libsane-dbg is Priority: extra. + + Remove Uploaders. + + Thank you Aurélien JARNO for your help during these years. + + -- Julien BLACHE Sat, 6 Jan 2007 18:46:43 +0100 + +sane-backends (1.0.18-3) unstable; urgency=low + + * debian/patches/30_udev_long_comment_lines.dpatch: + + Added; split very long comment lines in the udev rules file + (closes: #376859). + * debian/libsane.README.Debian: + + Updated; udev no longer sets permissions on /proc/bus/usb/xxx/yyy, + /dev/bus/usb/xxx/yyy is used instead now. + + -- Julien BLACHE Sun, 30 Jul 2006 20:40:09 +0200 + +sane-backends (1.0.18-2) unstable; urgency=low + + * debian/control: + + Build-Depends: libltdl3-dev, needed to link with libgphoto2-2. + + sane-utils Suggests: unpaper. + + -- Julien BLACHE Tue, 4 Jul 2006 09:09:04 +0200 + +sane-backends (1.0.18-1) unstable; urgency=low + + * New upstream release. + + New backends: dell1600n_net, hp3500, pixma, stv680 (closes: #360303). + + Canon LiDE 60 USBids added to the genesys description file (closes: #366871). + * debian/patches/01_usbids.dpatch: + + Removed; merged upstream. + * debian/patches/26_manpages_spelling_fixes.dpatch: + + Removed; merged upstream. + * debian/patches/25_glibc_sys_io_h.dpatch: + + Removed; merged upstream. + * debian/patches/03_usb_perms_664.dpatch: + + Updated; the convert-usermap.sh scripts are gone. + * debian/patches/04_udev_rules_fix.dpatch: + + Removed; merged upstream. + * debian/rules: + + Use sane-desc to generate the udev rules file and the hotplug data file. + + Improve manpage list generation for the libsane package. + * debian/control: + + Build-Depends: libtiff4-dev, for the dell1600n_net backend. + + -- Julien BLACHE Mon, 3 Jul 2006 20:30:17 +0200 + +sane-backends (1.0.17-4) unstable; urgency=low + + * debian/compat: + + Bumped DH_COMPAT to 5. + * debian/control: + + Bumped Standards-Version to 3.7.2 (no changes). + + Build-Depend on debhelper (>= 5.0.0) for DH_COMPAT=5. + + New libsane-dbg binary for debugging symbols (closes: #366767). + * debian/rules: + + Tell dh_strip to put debugging symbols into libsane-dbg. + + -- Julien BLACHE Fri, 26 May 2006 13:40:01 +0200 + +sane-backends (1.0.17-3) unstable; urgency=low + + * debian/control: + + Add ${libieee1284-3-dev} to libsane-dev Depends: (closes: #364294). + + -- Julien BLACHE Sat, 22 Apr 2006 19:58:12 +0200 + +sane-backends (1.0.17-2) unstable; urgency=low + + [ Aurélien JARNO ] + * debian/control: + + Build-depends: libcam-dev on kfreebsd-i386 and kfreebsd-amd64. + + Build-depends: !libieee1284-dev on kfreebsd-amd64. + + libsane-dev depends: libcam-dev on GNU/kFreeBSD. + * debian/patches/25_glibc_sys_io_h.dpatch: + + New; check for GNU libc instead of Linux kernel. + + [ Julien BLACHE ] + * debian/patches/02_udev_rules.dpatch: + + Removed; coldplugging now works OK, the hotplug script aren't needed + anymore (closes: #359800). + * debian/patches/03_usb_perms_664.dpatch: + + Updated. + * debian/patches/04_udev_rules_fix.dpatch: + + Added; fix udev rules file so that the rules only run for ACTION=add + on the usb subsystem (closes: #359797). + * debian/patches/01_usbids.dpatch: + + Added; add Epson Stylus CX7800 USB IDs (closes: #350436). + * debian/patches/26_manpages_spelling_fixes.dpatch: + + Added; various spelling fixes to the manpages (closes: #357568). + * debian/control: + + Removed Conflicts: on very old SANE versions. + + Recommends: module-init-tools (>= 3.2.2-1) (closes: #344541). + + Recommends: udev (>= 0.88-1) for a version of udev with working + coldplugging support. Let me know if the version can be lowered, + thanks. + * debian/rules: + + Add variable substitution for module-init-tools on Linux. + + Add version to the udev variable substitution. + + -- Julien BLACHE Thu, 13 Apr 2006 21:40:58 +0200 + +sane-backends (1.0.17-1) unstable; urgency=low + + Julien BLACHE: + * New upstream release. + + New backends: hp4200, lexmark, mustek_usb2. + + Now ignores EBUSY on set_configuration for real (closes: #332281). + + Fixed USB IDs for BearPaw 2448 TA Plus to use only lowercase letters (closes: #341046). + * debian/patches/01_hotplug_usbids.dpatch: + + Removed; merged upstream. + * debian/patches/02_tools_udev.dpatch: + + Removed; merged upstream. + * debian/patches/02_udev_rules.dpatch: + + Added; add a RUN rule to run the hotplug.d script (for coldplugging). + * debian/control: + + Build-Depends: xutils as makedepend is now used by the build system. + + Adjust conflicts/suggests for libsane-extras. + + Aurélien JARNO: + * debian/patches/03_usb_perms_664.dpatch: + + Added; lsusb needs read access to USB devices to work properly. + + -- Julien BLACHE Sun, 18 Dec 2005 17:09:47 +0100 + +sane-backends (1.0.16-5) unstable; urgency=low + + * debian/patches/02_tools_udev.dpatch: + + Run the hotplug.d script to ensure a working coldplug (closes: #334068). + * debian/patches/30_misc_fixes.dpatch: + + Fix a typo in sane-find-scanner(1) (closes: #310333). + * debian/patches/34_sanei_usb_ignore_set_config_ebusy.dpatch: + + Ignore EBUSY on set_configuration to better accomodate MFC devices (closes: #332281). + * debian/libsane.postrm: + + Remove /etc/udev/rules.d/025_libsane.rules on purge (closes: #333569). + + -- Julien BLACHE Thu, 27 Oct 2005 20:25:16 +0200 + +sane-backends (1.0.16-4) unstable; urgency=low + + * debian/patches/02_tools_udev.dpatch: + + Fix broken tools/udev/convert-usermap.sh script. + + -- Julien BLACHE Wed, 28 Sep 2005 22:59:41 +0200 + +sane-backends (1.0.16-3) unstable; urgency=low + + * The udev release. Thanks to Marco d'Itri for his help. + * debian/patches/02_tools_udev.dpatch: + + Added; adds tools/udev from CVS. + * debian/rules: + + Generate the udev rules file for libsane and install it. + + Generate a modprobe blacklist (same as the hotplug blacklist). + * debian/libsane.postinst: + + Symlink the udev rules file under /etc/udev/rules.d; do that only once. + * debian/control: + + Recommends: hotplug | udev + + -- Julien BLACHE Wed, 28 Sep 2005 22:42:38 +0200 + +sane-backends (1.0.16-2) unstable; urgency=low + + * debian/patches/11_hotplug_wait_for_device.dpatch: + + Bump timeout to 25 seconds. + * debian/patches/01_hotplug_usbids.dpatch: + + Added; pulled from CVS (closes: #323607). + * debian/patches/32_plustek_update.dpatch: + + Supersedes 32_add_lide25.dpatch; plustek backend update, adds LiDE 25 + support and fixes LiDE 20 support. + * debian/patches/33_sm3600_update.dpatch: + + Added; pulled from CVS, sm3600 adapted to sanei_usb. + + -- Julien BLACHE Sun, 28 Aug 2005 18:33:18 +0200 + +sane-backends (1.0.16-1) unstable; urgency=low + + Julien BLACHE: + * New upstream release. + + New backends: sm3840, genesys. + + Fixed typos in manpages (closes: #310332, #310333). + * Patches removed (integrated upstream): + + 01_hotplug_usbids.dpatch + + 02_tools_hotplug-ng.dpatch + + 03_manpages_fixes.dpatch + + Most of 30_misc_fixes.dpatch + + 31_gt68xx_fixes.dpatch + + 32_snapscan_update.dpatch + + 33_avision_update.dpatch + + 34_plustek_update.dpatch + + 35_libusbscanner_2.6_fixes.dpatch + + 36_sane-find-scanner_message.dpatch + + 37_epson_usbids.dpatch + * debian/libsane.postinst: + + Removed the udev check, it's broken and MAKEDEV now does the Right + Thing (tm) on its own (closes: #310216). + + Remove anything debconf-related. + * debian/control: + + Bumped Standards-Version to 3.6.2 (no changes). + + Update the conflict on libsane-extras. + + Downgrade Depends: sane-utils to Recommends: sane-utils now that Sarge + has been released. + + Drop dependency on debconf. + * debian/rules: + + Generate sane-backends.pot, patch from Martin Pitt (closes: #313527). + + Comment call to dh_installdebconf, we don't use debconf anymore. + + Aurélien JARNO: + * DEB_HOST_GNU_SYSTEM replaced by DEB_HOST_ARCH_OS. + * Get rid of debian/control.in by using the -V option of dpkg-gencontrol. + + -- Julien BLACHE Sun, 7 Aug 2005 15:00:05 +0200 + +sane-backends (1.0.15-10) unstable; urgency=low + + * debian/patches/01_hotplug_usbids.dpatch: + + Updated; added Genius ColorPage Vivid3XE (closes: #305993). + + Added Microtek ScanMaker 3700 (closes: #307952). + + Added Epson Stylus RX620 (closes: #308867). + * debian/patches/11_hotplug_wait_for_device.dpatch: + + Added; try to wait for the device to appear in the FS (closes: #302891). + * debian/patches/30_misc_fixes.dpatch: + + Updated; fixed "device model referenced not duplicated" in the v4l + backend (closes: #306458). + * debian/control.in: + + Build-Depend on a fixed libusb. + + -- Julien BLACHE Sun, 22 May 2005 11:09:19 +0200 + +sane-backends (1.0.15-9) unstable; urgency=low + + * debian/patches/22_dll_backend_conf.dpatch: + + Process /etc/sane.d/dll.d first, so that those backends will be loaded + last. This will prevent buggy extras backends to perturb other backends. + * debian/patches/03_manpages_fixes.dpatch: + + Fix a typo in sane(7), reported by A Costa (closes: #302675). + + Fix 3 typos in scanimage(1), also reported by A Costa (closes: #302334). + + -- Julien BLACHE Wed, 20 Apr 2005 16:17:20 +0200 + +sane-backends (1.0.15-8) unstable; urgency=low + + Aurélien Jarno: + * Drop support for the scanner kernel module. Switch to libusb NOW. + + Drop the devfs config file, remove /etc/devfs/conf.d/devfs + in libsane.postinst. + * Transition to the new hotplug hook scheme (pulled from CVS), which is + compatible with both hotplug and hotplug-ng. + + Remove /etc/hotplug/usb/libsane.usermap and /etc/hotplug/usb/libusbscanner + in libsane.postinst. + + Conflicts with libsane-extras (<< 1.0.15.7) to avoid partial upgrades, as + 1.0.15.7 is the version compatible with the new hotplug script. + + Julien Blache: + * Added support for GNU/kFreeBSD (closes: #297979). + + debian/rules: generate control at clean time. + + debian/rules: install README.{linux,freebsd} depending on the system. + + debian/patches/23_unneeded_doc.dpatch: do not install OS-specific READMEs. + + debian/control.in: do not depend on makedev on !linux (via debian/rules). + + debian/libsane.postinst: do not create device nodes on !linux. + * debian/rules: + + Install only the manpages for the backends which have been built. + + Cut the head of libsane.usermap to remove the comments pertaining to the + old usermap format. + * debian/libsane.README.Debian: + + Updated to relfect the hotplug changes. + * debian/libsane.postinst: + + Do not create device nodes when udev is in use. + + -- Julien BLACHE Sun, 6 Mar 2005 00:36:43 +0100 + +sane-backends (1.0.15-7) unstable; urgency=low + + Julien BLACHE: + * debian/patches/22_dll.conf_debian.dpatch + + Removed; renamed to 22_dll_backend_conf.dpatch. + * debian/patches/22_dll_backend_conf.dpatch + + Added; adds a Debian-specific comment to the dll.conf file, and patches + the dll backend to look for pieces of dll.conf in the /etc/sane.d/dll.d + directory; this is a facility for packages providing external backends, + like libsane-extras, hpoj and hplip. + + Aurélien Jarno: + * debian/patches/01_hotplug_usbids.dpatch + + Added Epson Corp. Stylus CX6600 to libsane.usermap (closes: #293082). + + -- Julien BLACHE Mon, 21 Feb 2005 16:43:41 +0100 + +sane-backends (1.0.15-6) unstable; urgency=low + + * debian/control + + Recommends: hotplug (was Suggests: hotplug). + + Suggests: hpoj, hplip. + * debian/rules + + Blacklist the scanner module wrt hotplug. + * debian/libsane.README.Debian + + Explain that the scanner module is going away, and that we're now + blacklisting it wrt hotplug upon installation of the package. + + * debian/patches/01_hotplug_usbids.dpatch + + Updated; added Epson Stylus RX-425. + * debian/patches/37_epson_usbids.dpatch + + Added; adds Epson Stylus RX-425. + * debian/patches/30_misc_fixes.dpatch + + Updated; added initialization of dev->scanning in coolscan.c. + * debian/patches/02_manpages_fixes.dpatch + + Added; manpages fixes from esr. + * debian/patches/32_snapscan_deinterlacer.dpatch + + Removed; renamed to 32_snapscan_update.dpatch. + * debian/patches/32_snapscan_update.dpatch + + Added; contains all of the previous 32_snapscan_deinterlacer.dpatch, + plus it adds support for the Epson Perfection 1270, BenQ 5250C and + quality calibration for the Epson Perfection 2480. + * debian/patches/22_dll.conf_debian.dpatch + + Updated; added the sm3840 backend provided by libsane-extras and the + hpaio backend provided by hplip (closes: #291435). + * debian/patches/38_artec_e+48_conf.dpatch + + Added; adds proper configuration for the Umax AstraSlim SE. + + -- Julien BLACHE Sat, 22 Jan 2005 13:54:58 +0100 + +sane-backends (1.0.15-5) unstable; urgency=medium + + * debian/patches/34_plustek_update.dpatch: + + Added; pulled from CVS, contains fixes for Epson Perfection 1260 + scanners (closes: #290029). + * debian/patches/35_libusbscanner_2.6_fixes.dpatch: + + Added; applied patch from Martin Pitt to use sysfs to determine the + device number, instead of guessing it in a semi-broken way + (closes: #289666). + * debian/patches/36_sane-find-scanner_message.dpatch + + Added; adds a "make sure your scanner is powered up and plugged in" + message to sane-find-scanner (closes: #287592). + + -- Julien BLACHE Wed, 12 Jan 2005 17:48:30 +0100 + +sane-backends (1.0.15-4) unstable; urgency=medium + + * debian/control: + + Added build-dependency on pkg-config (closes: #286140). + * debian/patches/13_new_configure.dpatch: + + Fixed; remove unwanted autom4te.cache directory from the patch + (closes: #286143). + + -- Julien BLACHE Sun, 19 Dec 2004 18:08:23 +0100 + +sane-backends (1.0.15-3) unstable; urgency=low + + * debian/patches/31_gt68xx_fixes.dpatch: + + Updated; added a fix for Mustek BearPaw 2448 TA/CS Plus scanners + (closes: #284674). + * debian/patches/33_avision_update.dpatch: + + Added; improved avision backend from CVS. + + -- Julien BLACHE Thu, 9 Dec 2004 16:01:50 +0100 + +sane-backends (1.0.15-2) unstable; urgency=low + + * debian/patches/01_hotplug_usbids.dpatch: + + Added; taken from CVS, adds missing USB IDs to the hotplug scripts + (closes: #280821, #281003). + * debian/patches/31_gt68xx_fixes.dpatch: + + Added; taken from CVS, fixes incorrect mode check for some scanners + (closes: #281061). + * debian/patches/30_misc_fixes.dpatch: + + Added; miscellaneous fixes from CVS/sane-devel. + * debian/patches/32_snapscan_deinterlacer.dpatch: + + Added; taken from CVS, adds a deinterlacer filter to the snapscan + backend, which is needed to scan at 2400 DPI with some scanners. + + -- Julien BLACHE Sun, 14 Nov 2004 15:39:36 +0100 + +sane-backends (1.0.15-1) unstable; urgency=low + + * New upstream release. + + Patch for Microtek Phantom C6 on PowerPC merged upstream + (closes: #274523). + + New backend: niash. + * debian/control: + + Update conflicts/replaces on libsane-extras 1.0.15.1. + * debian/patches/01_libusbscanner.dpatch: + + Removed; taken from CVS, included in this version. + * debian/patches/02_epson_usbids.dpatch: + + Removed; taken from CVS, included in this version. + * debian/patches/03_hotplug_usbids.dpatch: + + Removed; merged upstream. + * debian/patches/11_libtool_unneeded_checks.dpatch: + + Removed. + * debian/patches/12_gphoto2_link_backend_only.dpatch: + + Updated; revert unwanted backend/Makefile.in patch causing an incorrect + rpath in /usr/lib/libsane.la (closes: #279082). + * debian/patches/13_new_configure.dpatch: + + Updated. + * debian/patches/22_dll.conf_debian.dpatch: + + Updated; the niash backend is now part of SANE. + * debian/patches/25_saned_man_section.dpatch: + + Removed; merged upstream. + * debian/patches/26_scanimage_batch.dpatch: + + Removed; merged upstream. + * debian/patches/27_snapscan-usb_count_urb.dpatch: + + Removed; taken from CVS, included in this version. + * debian/sane-utils.README.Debian: + + Fix reference to /usr/share/doc/libsane/README.Debian.gz + (closes: #278670). + + -- Julien BLACHE Tue, 9 Nov 2004 23:28:23 +0100 + +sane-backends (1.0.14-7) unstable; urgency=medium + + * Co-maintainer upload. + * debian/patches/27_snapscan-usb_count_urb.dpatch: + + Added, backported from CVS: Don't enforce even number of URB packages + on snapscan 1212u_2 (closes: #250885). + * debian/patches/03_hotplug_usbids.dpatch: + + Added Epson Corp. Stylus CX6400 to libsane.usermap (closes: #293946). + + -- Aurelien Jarno Mon, 9 Aug 2004 11:17:13 +0200 + +sane-backends (1.0.14-6) unstable; urgency=medium + + * Urgency=medium as this revision will fix the upgrade path from Woody. + * debian/control: + + Removed obsolete gcc-3.3 build-depends (closes: #262245). + + Upgraded the sane-utils recommendation to a dependency as an upgrade + path from Woody (closes: #263408). + * debian/rules: + + Create /etc/hotplug/blacklist.d/libsane to prevent hotplug + from loading the no-longer-needed hpusbscsi module (closes: #260734). + * debian/patches/03_hotplug_usbids.dpatch: + + Added; adds HP ScanJet 5300C to libsane.usermap (closes: #260736). + * debian/patches/26_scanimage_batch.dpatch: + + Added; adds possibility to interrupt a batch scan in scanimage by + pressing ^D (closes: #260230). + + -- Julien BLACHE Wed, 4 Aug 2004 22:12:40 +0200 + +sane-backends (1.0.14-5) unstable; urgency=low + + * debian/patches/02_epson_usbids.dpatch + + Put back the USB IDs for the Perfection 1650, remove the USB IDs for the + Perfection 1250, which now really fixes the bug. + + -- Julien BLACHE Sun, 13 Jun 2004 13:48:27 +0200 + +sane-backends (1.0.14-4) unstable; urgency=low + + * debian/libsane.postinst + + modutils is Required, not Essential; replace kernelversion (provided by + modutils) by uname -r | cut (closes: #254140). + + -- Julien BLACHE Sun, 13 Jun 2004 12:12:02 +0200 + +sane-backends (1.0.14-3) unstable; urgency=low + + * debian/libsane.postinst + + Do not create /dev/usb/scanner* if running a 2.6 kernel. + * debian/patches/02_espon_usbids.dpatch + + Remove USB IDs for Perfection 1250 and 1260; these scanners are handled + by the plustek backend (pulled from CVS) (closes: #248859). + * debian/patches/25_saned_man_section.dpatch + + Added; saned goes to /usr/sbin, its manpage should go to section 8. + + -- Julien BLACHE Fri, 11 Jun 2004 21:37:18 +0200 + +sane-backends (1.0.14-2) unstable; urgency=low + + * debian/patches/22_dll.conf_debian.dpatch + + Enable the hpoj backend by default (closes: #246985, #248379). + * debian/patches/01_libusbscanner.dpatch + + Pulled from CVS, fixes hotplug's lack of backward compatibility + (closes: #248770). + + -- Julien BLACHE Thu, 20 May 2004 20:25:18 +0200 + +sane-backends (1.0.14-1) unstable; urgency=low + + * New upstream release. + + USB IDs for EPSON Stylus CX5400 added (closes: #243295). + + USB IDs for Nikon CoolScan 5000 added (closes: #243792). + * debian/hotplug/* + + removed, integrated upstream (tools/hotplug). + * debian/patches/01_mustek_pp_unified.dpatch + + removed, integrated in this release. + * debian/patches/02_hp_backend_usb_fix.dpatch + + removed, integrated in this release. + * debian/rules + + install the provided hotplug script and config file. + + -- Julien BLACHE Sat, 1 May 2004 16:26:47 +0200 + +sane-backends (1.0.13-4) unstable; urgency=low + + * debian/patches/02_hp_backend_usb_fix.dpatch + + added, pulled from CVS, fixes USB problems on kernel 2.6 (closes: #242188). + * Updated libsane.usermap from CVS (closes: #242090). + * Updated README.Debian, fixed a couple of typos. + + -- Julien BLACHE Sun, 11 Apr 2004 10:31:41 +0200 + +sane-backends (1.0.13-3) unstable; urgency=low + + * debian/libsane.config, debian/libsane.templates, debian/po: + + Removed, we don't use debconf anymore. + * debian/postinst: + + Fixed the /dev/usb/parport0 typo that should have read /dev/parport0. + Thanks to Tore Anderson for catching this one. + + Removed anything debconf-related, only purge whatever is left in the + debconf DB (closes: #224597). + + -- Julien BLACHE Sat, 20 Dec 2003 18:44:37 +0100 + +sane-backends (1.0.13-2) unstable; urgency=low + + * debian/patches: order of the patches changed (slightly). + + 01_mustek_pp_unified.dpatch: scan area fixes. + + -- Julien BLACHE Mon, 1 Dec 2003 19:19:19 +0100 + +sane-backends (1.0.13-1) unstable; urgency=low + + * New upstream release. + * debian/patches: + + 20_net.c_fixes.dpatch : removed, merged upstream. + + 21_gt68xx_uhci_fixes.dpatch : ditto. + + 04_hp5400_sanei_config2.dpatch : ditto. + + 03_new_configure : updated. + + 04_mustek_pp_unified: added; with this patch the mustek_pp backend + supports both CIS and CCD scanners (closes: #190998). + * debconf: + + Direct users to README.Debian.gz instead of README.Debian + (closes: #217347). + + Added Japanese translation (closes: #214040). + + Added Dutch translation (closes: #218905). + + Added German translation, thanks to Dirk Ritter and debian-l10n-german. + * debian/sane-utils.README.Debian: + + More details about the saned user and group, and the reason why the saned + user is not part of the scanner group by default (closes: #220024). + * debian/devfs/scanner: + + Added an example for SCSI devices, thanks to Dirk Ritter. + * debian/control: + + Standards-Version bumped to 3.6.1 (no changes). + * debian/rules, debian/compat: + + Switch to DH_COMPAT 4, and moved from dh_movefiles to dh_install. + * debian/control, debian/rules: + + Build-depend on chrpath and use it to remove rpath from the binaries. + + -- Julien BLACHE Mon, 24 Nov 2003 18:35:21 +0100 + +sane-backends (1.0.12-7) unstable; urgency=low + + * The "Maintainer's birthday" release. + * Simplified the needlessly complex debconf questions. Now use a multiselect + question instead of 3 independent questions. + + debian/libsane.templates: rewritten to use a multiselect type + + debian/libsane.config: ditto, try to convert from the older questions, + then purge them once done. + + debian/libsane.postinst: rewritten to parse the answer from the new + debconf thingy. + + debian/control: now Depends: debconf (>= 0.5.0) due to the use of db_fset + in debian/libsane.config. + * debian/libsane.postinst: use ':' as a separator for chown instead of '.'. + * debian/libsane.README.Debian: ditto. + * debian/control: only Suggests: hotplug (closes: #205291). + + -- Julien BLACHE Wed, 20 Aug 2003 14:03:14 +0200 + +sane-backends (1.0.12-6) unstable; urgency=low + + * Julien BLACHE + * debian/control + + Bumped Standards-Version to 3.6.0 (no changes). + + libsane depends on adduser (>= 3.47). + + libsane recommends hotplug. + * debian/libsane.templates: templates slightly rewritten to accomodate the + various debconf frontends (closes: #202744). + * debconf-related items: + + Switched debconf templates to debconf-po, thus build-depends on + debhelper (>= 4.1.16) (closes: #203669). + + Added french debconf translation based on translation from Michel + Grentzinger for sane-backends 1.0.12-5 + (closes: #203670). + * debian/libsane.postinst: + + Add a scanner system group, and chown root.scanner /dev/usb/scanner* if + we create them (closes: #201851). + * debian/libsane.README.Debian: + + Added a Setup paragraph, detailing permissions issues and solutions + implemented by this package. + * debian/sane-utils.README.Debian: + + Added, deals with permissions issues wrt the saned daemon. + * hotplug support: + + debian/hotplug/libusbscanner: added, hotplug script for scanners used + with libusb, courtesy of Max Kutny . Installed as + /etc/hotplug/usb/libusbscanner. + + debian/hotplug/libsane.usermap: example map file for use with hotplug. + Installed as /etc/hotplug/usb/libsane.usermap. + * Aurélien JARNO + * debian/devfs/scanner: + + Added, installed as /etc/devfs/conf.d/scanner. + + -- Julien BLACHE Wed, 6 Aug 2003 13:08:11 +0200 + +sane-backends (1.0.12-5) unstable; urgency=low + + * 21_gt68xx_uhci_fixes.dpatch : fix timeout with UHCI host controllers. + * debian/control: + + Added temporary Build-Dependency on gcc-3.3 (>= 3.3.1-0pre0), which should + fix the ICE on m68k. + * debian/rules: + + Should build with -O2 on m68k again. + + -- Julien BLACHE Wed, 2 Jul 2003 12:04:59 +0200 + +sane-backends (1.0.12-4) unstable; urgency=low + + * Julien BLACHE + * The "I fucking hate libtool" release. Prevent libtool from checking things + we do not need at all, such as a C++ or an F77 compiler. Sigh. + * Converted to dpatch. Build-depends on dpatch. + * Re-enable the gphoto2 backend, -but- do so that frontends do not get linked + against libgphoto2. Only the backend is linked against it. (closes: #195613) + * Thus, adds back the libgphoto2-2-dev build-dependency. + * Effectively move the html doc to the html subdir, instead of copying them + with dh_install. + * Aurélien JARNO + * Add autotools-stamp, so that configure won't be run twice. + * Do not link sanei_config2 in hp5400 : not needed (fixes an undefined + symbol, too). + + -- Julien BLACHE Tue, 3 Jun 2003 22:34:48 +0200 + +sane-backends (1.0.12-3) unstable; urgency=low + + * Fix the net backend so that it _does_ try all alternatives before giving + up connecting to the server (closes: #195396). + + -- Julien BLACHE Fri, 30 May 2003 19:22:54 +0200 + +sane-backends (1.0.12-2) unstable; urgency=low + + * Build with -O1 on m68k; -O2 triggers an ICE. + + -- Julien BLACHE Thu, 29 May 2003 11:36:41 +0200 + +sane-backends (1.0.12-1) unstable; urgency=low + + * New upstream release. + * Should now work on m68k. Yeah. (closes: #77356). + * sane(7) has been improved (closes: #188647). + * scanimage(1) has been fixed, wrt --batch. + * The hp5400 backend has been included, replaces libsane-extras (<< 1.0.12.1). + * IPv6 support. + * Standards-Version bumped to 3.5.10 (no changes). + * libsane-dev belongs to libdevel. + * Do not generate manpages and documentation we do not need. + + -- Julien BLACHE Sun, 25 May 2003 21:14:37 +0200 + +sane-backends (1.0.11-4) unstable; urgency=medium + + * Move saned.conf to the sane-utils package. Woops. (closes: #192742) + + -- Julien BLACHE Sat, 10 May 2003 08:41:23 +0200 + +sane-backends (1.0.11-3) unstable; urgency=medium + + * The "We want to enter testing" release. + * Do not build the gphoto2 backend. Gphoto2 is blocked by a bunch of other + packages (KDE, ...) and we're free of RC bugs. Enough. + * Moved libphoto2-2-dev to Build-Conflicts. + * Bumped shlibs. + + -- Julien BLACHE Sat, 3 May 2003 21:09:58 +0200 + +sane-backends (1.0.11-2) unstable; urgency=low + + * Ok, ok, do not tell how to configure libusb (closes: #180570). + * Do not print "Adding saned..." in sane-utils postinst when the user already + exists. + * Pulled fixed gphoto2 backend from CVS (closes: #180514). + + -- Julien BLACHE Thu, 13 Feb 2003 13:22:21 +0100 + +sane-backends (1.0.11-1) unstable; urgency=low + + * New upstream release. + * Security fixes to saned (closes: #180203). + * Added some debconf dialogs : + * /dev/parport* + * /dev/sg* + * note about /proc/bus/usb + + -- Julien BLACHE Sun, 9 Feb 2003 21:17:16 +0100 + +sane-backends (1.0.10-2) unstable; urgency=low + + * Fix postrm breakage (closes: #179586). + + -- Julien BLACHE Mon, 3 Feb 2003 12:39:14 +0100 + +sane-backends (1.0.10-1) unstable; urgency=low + + * New upstream release. + * Fixed sane-scsi manpage (closes: #174136). + * mustek_pp now has CIS support (closes: #152321). + * Added http://www.mostang.com/sane/sane-mfgs.html + as /usr/share/doc/libsane/supported.html (closes: #174131). + * New backends, previously included in libsane-extras : + * gt68xx + * artec_eplus48u (known as tevion9693usb) + * datadir is ${prefix}/share, not ${prefix}/share/sane. + * Remove /usr/lib/sane/libsane.so.1, as it's not libsane.so.1 (looks like + a libtool side-effect). + * Remove a couple more unwanted READMEs. + * Bumped Standards-Version to 3.5.8. + * Added a debconf dialog to create /dev/usb/* (closes: #177979). + * Added missing dependency on adduser to sane-utils. + + -- Julien BLACHE Sun, 2 Feb 2003 11:22:24 +0100 + +sane-backends (1.0.9-4) unstable; urgency=low + + * Pulled dll.c from CVS, fixes in-line comments (closes: #171521). + * Applied patch for Plustek backend rounding bug (closes: #172012). + + -- Julien BLACHE Mon, 9 Dec 2002 11:51:26 +0100 + +sane-backends (1.0.9-3) unstable; urgency=low + + * Rebuilt against new libgphoto2 package. + * Changed Uploaders: filed so that Aurélien's uploads won't be tagged as + NMU again. + * Do not generate debian/libsane.conffiles at build time, this is handled + by dh_installdeb automatically ; otherwise we end up with each conffile + being listed twice... + + -- Julien BLACHE Sun, 1 Dec 2002 11:29:43 +0100 + +sane-backends (1.0.9-2) unstable; urgency=low + + * Co-maintainer upload. + * Remove /etc/sane.d directory on purge (closes: bug#167603). + + -- Aurelien Jarno Mon, 4 Nov 2002 14:10:54 +0100 + +sane-backends (1.0.9-1) unstable; urgency=low + + * New upstream release. + * Video for Linux (v4l) backend cleanup (closes: #159634). + * Updated Avision backend (closes: #146054). + * Updated Epson backend (closes: #114017). + * Fixed char signedness in backend/plustek-usbshading.c (closes: #164464). + * Fixed debian/copyright (closes: #146057). + * Enabled translations. + * Do not install the upstream changelog twice. + * sane-utils does not create /home/saned. + * Fixed packages descriptions (wrt #165138). + + -- Julien BLACHE Thu, 24 Oct 2002 18:52:29 +0200 + +sane-backends (1.0.8-4) unstable; urgency=low + + * libsane-extras has its own source package now. + + -- Julien BLACHE Sun, 13 Oct 2002 10:49:54 +0200 + +sane-backends (1.0.8-3) unstable; urgency=low + + * New maintainers. + * New upstream release (closes: #162532, #149317). + * saned manpage mentions /usr/sbin/saned (closes: #141464). + * Symlinks for manpages are properly created (closes: #99551). + * Fixed hostnames handling in saned.conf (closes: #51171). + * HP backend update (closes: #116962). + * Backend loader respects LD_LIBRARY_PATH (closes: #143771). + * Path for Epson USB scanner corrected in conf file (closes: #154296, #154305). + * A test backend is included, safer than the pnm backend (closes: #139256). + * Umax backend fixed (closes: #158676). + * HP backend fixed, no longer segfaults (closes: 154827). + * Repackaged from scratch, using debhelper. + * Standards-Version bumped to 3.5.6. + * Do not include rpath informations in sane-config (closes: #143603). + * Fixed build problem wrt umask (closes: #95440). + * Updated libsane-dev Depends (closes: #142679). + * Fixed typos in umax_pp.conf (closes: #158742). + * Fixed hp.conf for some scanners (closes: #154828). + * Fixed README.Debian (closes: #146039). + * Fixed sane-plustek(5) manpage (closes: #159435). + * New package sane-utils, contains sane-find-scanner, scanimage and saned. + * sane-utils creates user and group saned (closes: #141465). + * New package libsane-extras, containing some extra backends + * hp4200 (v0.2p1) + * gt68xx (v1.0-23) + * niash (v20020217) (closes: #160327) + * tevion9693 (v0.0.9) + * Disabled translations until 1.0.9. + + -- Julien BLACHE Sat, 12 Oct 2002 10:28:09 +0200 + +sane-backends (1.0.8-2) unstable; urgency=low + + * Added build-depends on gettext(closes: #163681). + + -- Kevin Dalley Mon, 7 Oct 2002 09:32:21 -0700 + +sane-backends (1.0.8-1) unstable; urgency=low + + * New upstream release. Many n ew backends. Many more updated backends. + + -- Kevin Dalley Sun, 6 Oct 2002 18:09:28 -0700 + +sane-backends (1.0.7-3.2) unstable; urgency=high + + * Non-Maintainer Upload. + * Fix build on SPARC. + * Fix build on HPPA, although it's not RC (closes: Bug#138108). + + -- Julien BLACHE Sun, 7 Apr 2002 11:39:41 +0200 + +sane-backends (1.0.7-3.1) unstable; urgency=medium + + * Non-Maintainer Upload. + * Fixes compilation on Alpha, using the frontend/scanimage.c file from + the current CVS (close: Bug#138108). + * Applied patch submitted to #139509, regarding config.{sub,guess} issues + on MIPS (close: Bug#139509). + * Fixed lintian complaint wrt misplaced Conflicts: field in control file. + * Fixed lintian complaint about .comment section in /usr/lib/sane/*.so.*. + + -- Julien BLACHE Sun, 31 Mar 2002 20:24:48 +0200 + +sane-backends (1.0.7-3) unstable; urgency=low + + * link with libusb-0.1-4 (closes: #119393). + + -- Kevin Dalley Fri, 15 Mar 2002 18:31:08 +0000 + +sane-backends (1.0.7-2) unstable; urgency=low + + * stop link with libusb due to inconsistencies with versions of libusb + libraries. When libusb installation is cleaned up, then usb support + will be added again. Unfortunately, this re-opens bug #119393, though + with a lower severity. (closes: #138349). + + -- Kevin Dalley Thu, 14 Mar 2002 22:25:53 +0000 + +sane-backends (1.0.7-1) unstable; urgency=low + + * new upstream release of sane. + + * adds libusb, which includes ScanMaker 3600 drivers (closes: #119393). + * installs plustek-share.h so that plustek driver can be built (closes: + #72341) + + -- Kevin Dalley Thu, 14 Mar 2002 01:02:21 +0000 + +sane-backends (1.0.6-1) unstable; urgency=low + + * new upstream release of sane. + * new backends: gphoto2. + + -- Kevin Dalley Sun, 27 Jan 2002 23:30:19 -0800 + +sane-backends (1.0.5-3) unstable; urgency=low + + * rebuilt with new version of libgimp-1.2.2-2. + + -- Kevin Dalley Tue, 2 Oct 2001 22:31:15 -0700 + +sane-backends (1.0.5-2) unstable; urgency=low + + * removed incorrect build dependency on libc6-dev (closes: #108639). + + -- Kevin Dalley Thu, 16 Aug 2001 08:12:40 -0700 + +sane-backends (1.0.5-1) unstable; urgency=low + + * New backends: bh (Bell+Howell Copiscan II series), dc240 (Kodak DC240 + Digital Camera), sm3600 (Microtek ScanMaker 3600), umax_pp (Umax paralell + port scanners). + + * Fixed security bug in saned.c that allowed access to scanner without + password. + + -- Kevin Dalley Sat, 28 Jul 2001 12:38:46 -0700 + +sane-backends (1.0.4-2) unstable; urgency=low + + * increased timeout in sanei_scsi.c, which removes problem with 2.4 + kernel (closes: #84407). + + -- Kevin Dalley Thu, 31 May 2001 04:36:29 -0700 + +sane-backends (1.0.4-1) unstable; urgency=low + + * new upstream release of sane. + * as63driver added (closes: #69625). + + -- Kevin Dalley Sun, 28 Jan 2001 09:17:24 -0800 + +sane-gimp1.1 (1.0.3-4) unstable; urgency=low + + * link sane-gimp1.1 with libgimp1.1-1.1.29. + * change control files so that packages sane and sane-gimp1.1 are + explicitly described as working with gimp and gimp1.1 respectively. + The package sane now mentions the packages sane-gimp1.1 and vice + versa. + + -- Kevin Dalley Sun, 5 Nov 2000 13:56:49 -0800 + +sane (1.0.3-3) unstable; urgency=low + + * link sane-gimp1.1 with libgimp1.1-1.1.28, which is new library (closes: + #75029). + + * define GIMP_ENABLE_COMPAT_CRUFT to allow use of newer libgimp. + + -- Kevin Dalley Sun, 22 Oct 2000 21:52:29 -0700 + +sane (1.0.3-2) unstable; urgency=low + + * fix dependency in libsane-dev (closes: #71578). + * remove extraneous file which contains space in its name, which causes + patch and dpkg-source to fail. (closes: #71566, #71564, #71540). + + -- Kevin Dalley Fri, 22 Sep 2000 23:04:17 -0700 + +sane (1.0.3-1) unstable; urgency=low + + * new upstream release of sane + * new backends: mustek_pp, plustek, st400, v41 + * Many updated backends + * 16 bit support for scanimage. + + -- Kevin Dalley Sat, 2 Sep 2000 11:32:08 -0700 + +sane (1.0.2-1) unstable; urgency=low + + * new upstream release of sane + * Aliased and hidden backend support. + * Added Ricoh IS50 support. + * updated many backends. + * New Linux SCSI Generic driver. + * sane-gimp1.1 linked with libsane-1,1.22 (closes: #66544). + + -- Kevin Dalley Mon, 3 Jul 2000 23:38:42 -0700 + +sane (1.0.1-1999-10-21-12) frozen unstable; urgency=low + + * add libjpeg62-dev, tetex-bin, tetex-extra to Build-Depends (closes: + #61834, 61835). + + -- Kevin Dalley Wed, 5 Apr 2000 10:37:38 -0700 + +sane-gimp1.1 (1.0.1-1999-10-21-11) frozen unstable; urgency=low + + * Add Build-Depends to control files for sane and sane-gimp1.1 (closes: + #60923). + + -- Kevin Dalley Mon, 27 Mar 2000 03:16:55 -0800 + +sane (1.0.1-1999-10-21-10) frozen unstable; urgency=low + + * Improve description in control file (closes: #57032). + * link sane-gimp1.1 with libgimp1.1.17, which is the most recent + libgimp1.1 in frozen. + + -- Kevin Dalley Mon, 28 Feb 2000 02:37:20 +0000 + +sane (1.0.1-1999-10-21-9) frozen unstable; urgency=low + + * link sane-gimp1.1 with libgimp1.1.15, which is the most recent + libgimp1.1 in frozen. + + -- Kevin Dalley Sat, 22 Jan 2000 01:57:55 -0800 + +sane (1.0.1-1999-10-21-8) unstable; urgency=low + + * sane now conflicts with gimp1.1, which increases the chances of + getting the correct versions of gimp with each version of sane + (closes: #55070). Unfortunately, sane-gimp1.1 cannot conflict with + gimp, since gimp1.1 provides gimp. + + -- Kevin Dalley Sun, 16 Jan 2000 11:41:52 -0800 + +sane (1.0.1-1999-10-21-7) unstable; urgency=low + + * link with libgimp1.1.14 (closes: #53982) + * remove conflict of libsane-gimp1.1 with itself (closes: #49709). + * Each version of sane and sane-gimp1.1 now depend upon the same release + of libsane (closes: #50927). + * shlibs dependencies is updated to ">= 1.0.1-1999-10-21-7" to reduce + chances of problem #50927. + + -- Kevin Dalley Sun, 9 Jan 2000 13:22:57 -0800 + +sane (1.0.1-1999-10-21-6) unstable; urgency=low + + * add conflict between libsane and older version of sane, sane-gimp1.1 + due to moving documentation from sane to libsane (closes: #50735). + + -- Kevin Dalley Sat, 20 Nov 1999 15:15:30 -0400 + +sane (1.0.1-1999-10-21-5) unstable; urgency=low + + * added link for /usr/lib/libsane-dll.so, again. + + -- Kevin Dalley Fri, 19 Nov 1999 00:03:40 -0400 + +sane (1.0.1-1999-10-21-4) unstable; urgency=low + + * corrected problematic stripping of "libsane.la" (closes: #50099). + * move much of documentation from sane package to libsane and + libsane-dev package. + * move find-scanner to libsane + + -- Kevin Dalley Wed, 17 Nov 1999 23:08:44 -0400 + +sane (1.0.1-1999-10-21-3) unstable; urgency=low + + * added link for /usr/lib/libsane-dll.so + + -- Kevin Dalley Mon, 25 Oct 1999 01:24:30 -0700 + +sane (1.0.1-1999-10-21-2) unstable; urgency=low + + * corrected link of libsane.so.1 + + -- Kevin Dalley Sun, 24 Oct 1999 14:43:14 -0700 + +sane (1.0.1-1999-10-21-1) unstable; urgency=low + + * cvs server version from 1999-10-21 + * many bugs fixed in various backends + + -- Kevin Dalley Fri, 22 Oct 1999 22:06:52 -0700 + +sane (1.0.1-6) unstable; urgency=low + + * relink sane-gimp1.1 with libgimp1.1.10 + + -- Kevin Dalley Thu, 14 Oct 1999 23:33:18 -0700 + +sane (1.0.1-5) unstable; urgency=low + + * relink sane-gimp1.1 with libgimp1.1.9 + * separate sane-gimp1.1 from sane + + -- Kevin Dalley Sun, 10 Oct 1999 03:42:37 -0700 + +sane (1.0.1-4) unstable; urgency=low + + * added sane-gimp1.1 (used with gimp1.1) at the same time as sane for + gimp-1.0.x. + + -- Kevin Dalley Wed, 30 Jun 1999 00:54:57 -0700 + +sane (1.0.1-3) unstable; urgency=low + + * try to fix problems with shared libraries. Install libsane-dll.so in + /usr/lib so that programs linked with libsane will run. (Needed to + fix xsane bug #37756). + + -- Kevin Dalley Mon, 31 May 1999 22:15:16 -0700 + +sane (1.0.1-2) unstable; urgency=low + + * remove dependencies for libsane + + -- Kevin Dalley Fri, 30 Apr 1999 23:08:50 -0700 + +sane (1.0.1-1) unstable; urgency=low + + * version 1.0.1 + * new backend for Sharp scanner + * update backends for Kodak DC25, HP, Microtek, Micro, Mustek, Nikon + Coolscan, snapscan, UMAX. + * fixes problem with HP scanner (closes #32516) + * includes backend for dc210 (closes #31377) + + -- Kevin Dalley Tue, 27 Apr 1999 01:24:33 -0700 + +sane (1.00-2) unstable; urgency=low + + * removed examples directory. Moved examples/tools to tools directory. + + -- Kevin Dalley Mon, 5 Apr 1999 02:04:53 -0700 + +sane (1.00-1) unstable; urgency=low + + * 1.00 is released + * artec is back in dll.conf + * many more scanner supported and more changes + + -- Kevin Dalley Sat, 5 Dec 1998 01:00:30 -0800 + +sane (0.74-2) unstable; urgency=low + + * temporarily comment out artec in dll.conf, due to bad interaction with + Umax scanner. If artec is used as a scanner, uncomment artec from + dll.conf + * automatically generates conffiles, thanks for + Roman.Hodek@informatik.uni-erlangen.de (fixes bug #26545) + * fixes problem with creation of /usr/share/sane during build process + (bug #26314) + + -- Kevin Dalley Sun, 20 Sep 1998 18:00:28 -0700 + +sane (0.74-1) unstable; urgency=low + + * first release of 0.74 + + -- Kevin Dalley Sat, 22 Aug 1998 23:06:26 -0700 + +sane (0.72-1) frozen unstable; urgency=low + + * first official release which supports libgtk1-0.99.9 + + -- Kevin Dalley Fri, 10 Apr 1998 02:29:52 -0700 + +sane (0.71-2) frozen unstable; urgency=low + + * fixed spelling in control files (fixes bug# 19003) + * modified to match latest change in libgtk-0.99.5 + * change datadir to /usr/share/sane + * compatible with libgtk1-0.99.8 (fixes bug #19595) + + -- Kevin Dalley Sun, 22 Mar 1998 19:44:10 -0800 + +sane (0.71-1) unstable; urgency=low + + * new release, which adds support for the following scanners: + Polaroid Digital Microscope Camera (DMC) backend + Apple scanner backend + Nikon CoolScan backend + * removed execute permission in doc directory (fixes: bug #17949) + * modified manual page referring to symbolic link of xscanimage (fixes: + bug #18071) + + -- Kevin Dalley Fri, 27 Feb 1998 23:03:08 -0800 + +sane (0.70-1) unstable; urgency=low + + * update to version 0.70 of sane, adds AGFA SnapScan backend, updates + UMAX backend + + * add patches 2-5 to SnapScan backend which allows other scanners + to work + + -- Kevin Dalley Sat, 31 Jan 1998 17:32:53 -0800 + +sane (0.69-2) unstable; urgency=low + + * correct umax-scanner.h so that Astra 1200S is legal + + -- Kevin Dalley Sun, 25 Jan 1998 09:44:45 -0800 + +sane (0.69-1) unstable; urgency=low + + * update to version 0.69 of sane + + -- Kevin Dalley Fri, 23 Jan 1998 20:24:01 -0800 + +sane (0.68-4) unstable; urgency=low + + * modified gtkglue.c to correspond with changes to libgtk1 + + -- Kevin Dalley Tue, 6 Jan 1998 22:24:14 -0800 + +sane (0.68-3) unstable; urgency=low + + * change plug-in directory to 0.99 to match gimp changes, add explicit + gimp dependency. + * added README.debian + * install find-scanner + * install many documentation files + + -- Kevin Dalley Fri, 2 Jan 1998 21:51:52 -0800 + +sane (0.68-2) unstable; urgency=low + + * corrected control file + + -- Kevin Dalley Sun, 21 Dec 1997 18:26:23 -0800 + +sane (0.68-1) unstable; urgency=low + + * update to version 0.68 of sane + + -- Kevin Dalley Fri, 5 Dec 1997 00:42:27 -0800 + +sane (0.67-1) unstable; urgency=low + + * first Debian release of sane + + -- Kevin Dalley Tue, 18 Nov 1997 21:38:41 -0800 + + --- sane-backends-1.0.19.orig/debian/sane-utils.postrm +++ sane-backends-1.0.19/debian/sane-utils.postrm @@ -0,0 +1,10 @@ +#!/bin/sh + +if [ "$1" = purge ]; then + if [ -x /usr/sbin/update-inetd ]; then + update-inetd --remove sane-port + update-inetd --remove "## sane-port" + fi +fi + +#DEBHELPER# --- sane-backends-1.0.19.orig/debian/sane-utils.postinst +++ sane-backends-1.0.19/debian/sane-utils.postinst @@ -0,0 +1,51 @@ +#!/bin/sh +set -e +. /usr/share/debconf/confmodule + +SANED_DEFAULT=/etc/default/saned + +saned_eh () { + echo "saned couldn't start; check your inetd configuration and README.Debian" +} + +if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ]; then + db_get sane-utils/saned_run + RUN_SANED="$RET" + + # Add saned service, disabled by default + if [ -x /usr/sbin/update-inetd ]; then + update-inetd --add "## sane-port\tstream\ttcp\tnowait\tsaned:saned\t/usr/sbin/saned saned" + fi + + # Stop debconf; output to stdout after this point. update-inetd needs debconf. + db_stop + + # Create saned user/group if they do not exist + if ! getent passwd | grep -q "^saned:"; then + echo "Adding saned group and user..." + adduser --quiet --system --no-create-home --group saned || true + fi + + if id saned | grep -q "groups=.*\(scanner\)"; then + deluser --quiet saned scanner + fi + + if [ -e $SANED_DEFAULT ]; then + if [ "$RUN_SANED" = "true" ]; then + RUN_SANED=yes + else + RUN_SANED=no + fi + + sed -e "s/^ *RUN=.*/RUN=$RUN_SANED/" < $SANED_DEFAULT > $SANED_DEFAULT.tmp + mv -f $SANED_DEFAULT.tmp $SANED_DEFAULT + fi + + if dpkg --compare-versions "$2" lt "1.0.19-23ubuntu4"; then + update-rc.d -f saned remove + fi +fi + + +#DEBHELPER# + --- sane-backends-1.0.19.orig/debian/sane-utils.README.Debian +++ sane-backends-1.0.19/debian/sane-utils.README.Debian @@ -0,0 +1,72 @@ +sane-utils (sane-backends) for Debian +------------------------------------- + +This package contains various utilities shipped with sane-backends, among +which saned, the network scanner daemon used to share scanners over the +network. + + +saned setup +----------- + +Please read this file carefully to setup your saned server properly. + + -> Setting up permissions for saned + -> Running saned from inetd + -> Running saned as a standalone daemon + + + Setting up permissions for saned + -------------------------------- + +A saned user and a saned group have been added to your system; it is highly +recommended to run saned as user and group saned and NEVER EVER as root. + +To operate properly, saned must be able to access your scanners; different +setups are possible, depending on who should be able to use the scanners: + + * saned users only: + => device owned by saned:saned, saned:root or root:saned + + * saned users and local users: + => device owned by saned:scanner, local users added to the scanner group + + * local users only: + => device owned by root:scanner, local users added to the scanner group + +By default the saned user is NOT part of the scanner group. If you add the +saned user to the scanner group, ALL scanners will be made available over the +network without restrictions. Do that if you do not want/need to restrict one +or more scanners to local users only. + +If you intend to use saned with a USB scanner, note that the permissions for +USB scanners are handled by udev. + +See /usr/share/doc/libsane/README.Debian.gz for more information on setting up +appropriate permissions. + + Running saned from inetd + ------------------------ + +To enable saned in the default configuration (running as user and group saned), +use update-inetd to enable the service: + # update-inetd --enable sane-port +To disable saned, use update-inetd to disable the service: + # update-inetd --disable sane-port + +If you want to run saned under another user and/or group, edit /etc/inetd.conf +and change saned:saned for the appropriate user:group combination. + + Running saned as a standalone daemon + ------------------------------------ + +When run as a standalone daemon, saned can advertise its services over the +network, and the SANE clients will automatically discover the saned servers +(provided the clients support this). + +To run saned as a standalone server: + - if you were previously running saned from inetd, disable it (see above) + - run dpkg-reconfigure sane-utils + + +-- Julien BLACHE , Mon, 05 May 2008 19:29:28 +0200 --- sane-backends-1.0.19.orig/debian/sane-utils.install +++ sane-backends-1.0.19/debian/sane-utils.install @@ -0,0 +1,9 @@ +etc/sane.d/saned.conf +usr/sbin/saned +usr/bin/sane-find-scanner +usr/bin/scanimage +usr/bin/gamma4scanimage +usr/share/man/man8/saned.8 +usr/share/man/man1/scanimage.1 +usr/share/man/man1/sane-find-scanner.1 +usr/share/man/man1/gamma4scanimage.1 --- sane-backends-1.0.19.orig/debian/libsane.links +++ sane-backends-1.0.19/debian/libsane.links @@ -0,0 +1 @@ +usr/share/doc/libsane/html/sane-mfgs.html usr/share/doc/libsane/supported.html --- sane-backends-1.0.19.orig/debian/libsane.shlibs +++ sane-backends-1.0.19/debian/libsane.shlibs @@ -0,0 +1 @@ +libsane 1 libsane (>= 1.0.11-3) --- sane-backends-1.0.19.orig/debian/control +++ sane-backends-1.0.19/debian/control @@ -0,0 +1,94 @@ +Source: sane-backends +Section: graphics +Priority: optional +Maintainer: Ubuntu Core Developers +XSBC-Original-Maintainer: Julien BLACHE +Standards-Version: 3.8.0 +Build-Depends: debhelper (>= 5.0.0), dpatch, po-debconf, libgphoto2-2-dev, libltdl3-dev, libjpeg62-dev, libtiff4-dev, libusb-dev (>= 2:0.1.10a-9) [!hurd-i386], libieee1284-3-dev (>= 0.2.10-5) [!hurd-i386], libcam-dev [kfreebsd-i386 kfreebsd-amd64], libavahi-client-dev (>= 0.6.4), gettext, texlive, texlive-latex-extra, autotools-dev, pkg-config, chrpath, xutils-dev +Homepage: http://www.sane-project.org + +Package: sane-utils +Section: graphics +Architecture: any +Depends: adduser (>= 3.47), update-inetd (>= 4.31), ${shlibs:Depends}, ${misc:Depends} +Recommends: avahi-daemon +Suggests: unpaper +Replaces: libsane (<< 1.0.11-4) +Description: API library for scanners -- utilities + SANE stands for "Scanner Access Now Easy" and is an application + programming interface (API) that provides standardized access to any + raster image scanner hardware (flatbed scanner, hand-held scanner, + video- and still-cameras, frame-grabbers, etc.). The SANE standard is + free and its discussion and development are open to everybody. The + current source code is written to support several operating systems, + including GNU/Linux, OS/2, Win32 and various Unices and is available + under the GNU General Public License (commercial applications and + backends are welcome, too, however). + . + This package includes the command line frontend scanimage, the saned + server and the sane-find-scanner utility, along with their documentation. + +Package: libsane +Section: libs +Architecture: any +Depends: adduser (>= 3.47), ${udev}, ${shlibs:Depends} +Suggests: hpoj, hplip, libsane-extras (>= 1.0.19.1), sane-utils (>= ${binary:Version}), avahi-daemon +Replaces: libsane-extras (<< 1.0.18.14) +Description: API library for scanners + SANE stands for "Scanner Access Now Easy" and is an application + programming interface (API) that provides standardized access to any + raster image scanner hardware (flatbed scanner, hand-held scanner, + video- and still-cameras, frame-grabbers, etc.). The SANE standard is + free and its discussion and development are open to everybody. The + current source code is written to support several operating systems, + including GNU/Linux, OS/2, Win32 and various Unices and is available + under the GNU General Public License (commercial applications and + backends are welcome, too, however). + . + This package includes the backends for many scanners. A libsane-extras + package containing some not-yet-included backends is available separately. + . + Graphical frontends for sane are available in the packages sane and + xsane. Command line frontend scanimage, saned and sane-find-scanner are + available in the sane-utils package. + +Package: libsane-dev +Section: libdevel +Architecture: any +Depends: libsane (= ${binary:Version}), libjpeg62-dev, libtiff4-dev, libusb-dev (>= 1:0.1.6a-1) [!hurd-i386], libieee1284-3-dev (>= 0.2.10-5) [!hurd-i386], ${libcam-dev}, libgphoto2-2-dev, libavahi-client-dev +Replaces: libsane-extras-dev (<< 1.0.18.14) +Suggests: libsane-extras-dev (>= 1.0.19.1) +Description: API development library for scanners [development files] + SANE stands for "Scanner Access Now Easy" and is an application + programming interface (API) that provides standardized access to any + raster image scanner hardware (flatbed scanner, hand-held scanner, + video- and still-cameras, frame-grabbers, etc.). The SANE standard is + free and its discussion and development are open to everybody. The + current source code is written to support several operating systems, + including GNU/Linux, OS/2, Win32 and various Unices and is available + under the GNU General Public License (commercial applications and + backends are welcome, too, however). + . + This package contains the files needed to build your applications + using SANE. + +Package: libsane-dbg +Section: libdevel +Priority: extra +Architecture: any +Depends: libsane (= ${binary:Version}) +Suggests: libsane-extras-dbg (>= 1.0.19.1) +Replaces: libsane-extras-dbg (<< 1.0.18.14) +Description: API development library for scanners [debug symbols] + SANE stands for "Scanner Access Now Easy" and is an application + programming interface (API) that provides standardized access to any + raster image scanner hardware (flatbed scanner, hand-held scanner, + video- and still-cameras, frame-grabbers, etc.). The SANE standard is + free and its discussion and development are open to everybody. The + current source code is written to support several operating systems, + including GNU/Linux, OS/2, Win32 and various Unices and is available + under the GNU General Public License (commercial applications and + backends are welcome, too, however). + . + This package contains the debugging symbols for the SANE backends. + --- sane-backends-1.0.19.orig/debian/patches/01_manpages_fixes.dpatch +++ sane-backends-1.0.19/debian/patches/01_manpages_fixes.dpatch @@ -0,0 +1,8792 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 01_manpages_fixes.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix man warnings and hyphen vs. minus sign issues reported by lintian. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/doc/gamma4scanimage.man sane-backends-1.0.19/doc/gamma4scanimage.man +--- sane-backends-1.0.19~/doc/gamma4scanimage.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/gamma4scanimage.man 2008-07-20 12:34:23.001692392 +0200 +@@ -1,4 +1,4 @@ +-.TH gamma4scanimage 1 "11 Sep 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.TH gamma4scanimage 1 "10 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" + .IX gamma4scanimage + .SH NAME + gamma4scanimage \- create a gamma table for scanimage +@@ -48,11 +48,11 @@ + the gamma table. + .PP + .BR maxout +-defines the maximum output value. Take a look at the output of scanimage -h to ++defines the maximum output value. Take a look at the output of scanimage \-h to + find out what maxout has to be. The default value is 255. + .PP + .SH EXAMPLE +-.B scanimage --custom-gamma=yes --gamma-table ++.B scanimage \-\-custom\-gamma=yes \-\-gamma\-table + .I `gamma4scanimage 1.8 0 11500 16383 255` + >image.pnm + +diff -urNad sane-backends-1.0.19~/doc/sane-abaton.man sane-backends-1.0.19/doc/sane-abaton.man +--- sane-backends-1.0.19~/doc/sane-abaton.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-abaton.man 2008-07-20 12:34:23.001692392 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-abaton 5 "19 Nov 1998" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-abaton ++.TH sane\-abaton 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-abaton + .SH NAME +-sane-abaton \- SANE backend for Abaton flatbed scanners ++sane\-abaton \- SANE backend for Abaton flatbed scanners + .SH DESCRIPTION + The +-.B sane-abaton ++.B sane\-abaton + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Abaton flatbed scanners. At present, only the Scan + 300/GS (8bit, 256 levels of gray) is fully supported, due to the +@@ -14,10 +14,10 @@ + If you own a Abaton scanner other than the ones listed above that + works with this backend, or if you own an Abaton scanner that does not + work with this backend, please contact +-.IR sane-devel@lists.alioth.debian.org ++.IR sane\-devel@lists.alioth.debian.org + with the model number, so that arrangements can be made to include +-support for it. Have a look at http://www.sane-project.org/mailing-lists.html +-concerning subscription to sane-devel. ++support for it. Have a look at http://www.sane\-project.org/mailing\-lists.html ++concerning subscription to sane\-devel. + .PP + Abaton is out of business, and these scanners are not supported by + Everex (the parent company of Abaton), nor is there any programming +@@ -48,13 +48,13 @@ + .I /dev/sga + or + .IR /dev/sg0 , +-for example. See sane-scsi(5) for details. ++for example. See sane\-scsi(5) for details. + .SH CONFIGURATION + The contents of the + .I abaton.conf + file is a list of device names that correspond to Abaton scanners. + Empty lines and lines starting with a hash mark (#) are ignored. See +-sane-scsi(5) on details of what constitutes a valid device name. ++sane\-scsi(5) on details of what constitutes a valid device name. + + .SH FILES + .TP +@@ -63,10 +63,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-abaton.a ++.I @LIBDIR@/libsane\-abaton.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-abaton.so ++.I @LIBDIR@/libsane\-abaton.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -107,7 +107,7 @@ + If you have found something that you think is a bug, please attempt to + recreate it with the SANE_DEBUG_ABATON environment variable set to + 255, and send a report detailing the conditions surrounding the bug to +-.IR sane-devel@lists.alioth.debian.org . ++.IR sane\-devel@lists.alioth.debian.org . + + .SH TODO + .TP +@@ -119,8 +119,8 @@ + information returned by the INQUIRY command. + + .SH "SEE ALSO" +-sane(7), sane-scsi(5), scanimage(1) ++sane(7), sane\-scsi(5), scanimage(1) + + .SH AUTHOR +-The sane-abaton backend was partially written by David Huggins-Daines, +-based on the sane-apple backend by Milon Firikis. ++The sane\-abaton backend was partially written by David Huggins-Daines, ++based on the sane\-apple backend by Milon Firikis. +diff -urNad sane-backends-1.0.19~/doc/sane-agfafocus.man sane-backends-1.0.19/doc/sane-agfafocus.man +--- sane-backends-1.0.19~/doc/sane-agfafocus.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-agfafocus.man 2008-07-20 12:34:23.002539615 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-agfafocus 5 "17 Oct 1998" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-agfafocus ++.TH sane\-agfafocus 5 "10 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-agfafocus + .SH NAME +-sane-agfafocus \- SANE backend for AGFA Focus flatbed scanners ++sane\-agfafocus \- SANE backend for AGFA Focus flatbed scanners + .SH DESCRIPTION + The +-.B sane-agfafocus ++.B sane\-agfafocus + library implements a SANE (Scanner Access Now Easy) backend that + provides access to AGFA Focus flatbed scanners. At present, the following + scanners are supported from this backend: +@@ -31,9 +31,9 @@ + If you own a scanner other than the ones listed above that works with + this backend, please let us know by sending the scanner's model name, + SCSI id, and firmware revision to +-.IR sane-devel@lists.alioth.debian.org . +-Have a look at http://www.sane-project.org/mailing-lists.html +-concerning subscription to sane-devel. ++.IR sane\-devel@lists.alioth.debian.org . ++Have a look at http://www.sane\-project.org/mailing\-lists.html ++concerning subscription to sane\-devel. + .PP + All of these scanners are pre-SCSI-2, and do not even report properly + to SCSI Inquiry. This is typically evident in SCSI bus scans, where +@@ -55,7 +55,7 @@ + .I /dev/sga + or + .IR /dev/sge , +-for example. See sane-scsi(5) for details. ++for example. See sane\-scsi(5) for details. + .SH CONFIGURATION + The contents of the + .I agfafocus.conf +@@ -79,10 +79,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I /usr/lib/libsane-agfafocus.a ++.I /usr/lib/libsane\-agfafocus.a + The static library implementing this backend. + .TP +-.I /usr/lib/libsane-agfafocus.so ++.I /usr/lib/libsane\-agfafocus.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -121,8 +121,8 @@ + 6 print less important informations + 7 print called procedures + 8 print reader_process messages +- 10 print called sane-init-routines +- 11 print called sane-procedures ++ 10 print called sane\-init-routines ++ 11 print called sane\-procedures + 12 print sane infos + 13 print sane option-control messages + .fi +@@ -138,7 +138,7 @@ + The scanners that do not support disconnect have problems with SCSI + timeouts if the SCSI bus gets loaded, eg. if you do a kernel build at + the same time as scanning. To see if your scanner supports +-disconnect, run "SANE_DEBUG_AGFAFOCUS=128 scanimage -L" in sh and look ++disconnect, run "SANE_DEBUG_AGFAFOCUS=128 scanimage \-L" in sh and look + for the "disconnect:" line) + + .SH DEBUG +@@ -167,7 +167,7 @@ + The AGFA HORIZON scanners are SCSI-2 scanners, and it would probably + be easier to support these scanners in a SCSI-2 compliant backend. + .SH SEE ALSO +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + + .SH AUTHOR + +diff -urNad sane-backends-1.0.19~/doc/sane-apple.man sane-backends-1.0.19/doc/sane-apple.man +--- sane-backends-1.0.19~/doc/sane-apple.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-apple.man 2008-07-20 12:34:23.002539615 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-apple 5 "13 May 1998" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-apple ++.TH sane\-apple 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-apple + .SH NAME +-sane-apple \- SANE backend for Apple flatbed scanners ++sane\-apple \- SANE backend for Apple flatbed scanners + .SH DESCRIPTION + The +-.B sane-apple ++.B sane\-apple + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Apple flatbed scanners. At present, the following + scanners are supported from this backend: +@@ -23,9 +23,9 @@ + If you own a Apple scanner other than the ones listed above that + works with this backend, please let us know by sending the scanner's + model name, SCSI id, and firmware revision to +-.IR sane-devel@lists.alioth.debian.org . +-See http://www.sane-project.org/mailing-lists.html for details on how to subscribe to +-sane-devel. ++.IR sane\-devel@lists.alioth.debian.org . ++See http://www.sane\-project.org/mailing\-lists.html for details on how to subscribe to ++sane\-devel. + + .SH "DEVICE NAMES" + This backend expects device names of the form: +@@ -43,13 +43,13 @@ + .I /dev/sga + or + .IR /dev/sge , +-for example. See sane-scsi(5) for details. ++for example. See sane\-scsi(5) for details. + .SH CONFIGURATION + The + .I apple.conf + file is a list of options and device names that correspond to Apple + scanners. Empty lines and lines starting with a hash mark (#) are +-ignored. See sane-scsi(5) on details of what constitutes a valid ++ignored. See sane\-scsi(5) on details of what constitutes a valid + device name. + .PP + Options come in two flavors: global and positional ones. Global +@@ -70,10 +70,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-apple.a ++.I @LIBDIR@/libsane\-apple.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-apple.so ++.I @LIBDIR@/libsane\-apple.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -130,7 +130,7 @@ + + .SH UNSUPPORTED FEATURES + The following "features" will never be supported, at least while I maintain +-the sane-apple backend. ++the sane\-apple backend. + .TP + .B NoHome (AppleScanner) + The scanner lamp stays on and the carriage assembly remains where it stops +@@ -233,7 +233,7 @@ + .SH TODO + .TP + .B Non Blocking Support +-Make sane-apple a non blocking backend. Properly support ++Make sane\-apple a non blocking backend. Properly support + .B sane_set_io_mode + and + .B sane_get_select_fd +@@ -244,9 +244,9 @@ + .B Missing Functionality + + .SH "SEE ALSO" +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + + .SH AUTHOR +-The sane-apple backend was written not entirely from scratch by ++The sane\-apple backend was written not entirely from scratch by + Milon Firikis. It is mostly based on the mustek backend from + David Mosberger and Andreas Czechanowski +diff -urNad sane-backends-1.0.19~/doc/sane-artec.man sane-backends-1.0.19/doc/sane-artec.man +--- sane-backends-1.0.19~/doc/sane-artec.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-artec.man 2008-07-20 12:34:23.002539615 +0200 +@@ -1,12 +1,12 @@ +-.TH sane-artec 5 "24 Jan 2000" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-artec ++.TH sane\-artec 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-artec + + .SH NAME +-sane-artec \- SANE backend for Artec flatbed scanners ++sane\-artec \- SANE backend for Artec flatbed scanners + + .SH DESCRIPTION + The +-.B sane-artec ++.B sane\-artec + library implements a SANE (Scanner Access Now Easy) backend + that provides access to Artec/Ultima SCSI flatbed scanners. At present, + the following scanners are known to work at least partially with this backend: +@@ -48,7 +48,7 @@ + file are a list of device names that + correspond to Artec scanners. Empty lines and lines starting with a + hash mark (#) are ignored. See +-.I sane-scsi(5) ++.I sane\-scsi(5) + on details of what constitutes a valid device name. + + Sample file: +@@ -101,10 +101,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-artec.a ++.I @LIBDIR@/libsane\-artec.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-artec.so ++.I @LIBDIR@/libsane\-artec.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -143,8 +143,8 @@ + 7 print major called procedures + 8 print all called procedures + 9 print procedure info/data messages +- 10 print called sane-init-routines +- 11 print called sane-procedures ++ 10 print called sane\-init-routines ++ 11 print called sane\-procedures + 12 print sane infos + 13 print sane option-control messages + \ +@@ -171,7 +171,7 @@ + + .SH "SEE ALSO" + +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + + .SH AUTHOR + +diff -urNad sane-backends-1.0.19~/doc/sane-artec_eplus48u.man sane-backends-1.0.19/doc/sane-artec_eplus48u.man +--- sane-backends-1.0.19~/doc/sane-artec_eplus48u.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-artec_eplus48u.man 2008-07-20 12:34:23.002539615 +0200 +@@ -1,15 +1,15 @@ +-.TH sane-artec_eplus48u 5 "15 Jan 2006" "@PACKAGEVERSION@" "SANE" ++.TH sane\-artec_eplus48u 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE" + .SH NAME +-sane-artec_eplus48u \- SANE backend for the scanner Artec E+ 48U and re-badged models ++sane\-artec_eplus48u \- SANE backend for the scanner Artec E+ 48U and re-badged models + .SH DESCRIPTION + The +-.B sane-artec_eplus48u ++.B sane\-artec_eplus48u + library implements a SANE (Scanner Access Now Easy) backend that provides + access to several USB flatbed scanners using the GT6816 chipset like the Artec E+ 48U. + These scanners have a contact image sensor (CIS) and an USB interface. + .PP + A complete list of supported devices can be found on +-.IR http://www.sane-project.org/sane-supported-devices.html . ++.IR http://www.sane\-project.org/sane\-supported\-devices.html . + .PP + This is ALPHA software. Especially if you test new or untested scanners, keep + your hand at the scanner's plug and unplug it, if the head bumps at the end of +@@ -18,13 +18,13 @@ + If you own a scanner other than the ones mentioned on the list that works with this + backend, please let us know this by sending the scanner's exact model name and + the USB vendor and product ids (e.g. from /proc/bus/usb/devices, +-sane-find-scanner or syslog) to me. Even if the scanner's name is only ++sane\-find\-scanner or syslog) to me. Even if the scanner's name is only + slightly different from the models mentioned above, please let me know. + .PP + .SH KERNEL ISSUES + If libusb-0.1.6 or later is installed, this section can be skipped. The +-scanner should be found by sane-find-scanner without further actions. For +-setting permissions and general USB information look at sane-usb(5). ++scanner should be found by sane\-find\-scanner without further actions. For ++setting permissions and general USB information look at sane\-usb(5). + .PP + When you are using the scanner module, a Linux kernel 2.4.12 or newer is + required. +@@ -91,10 +91,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I /usr/local/lib/sane/libsane-artec_eplus48u.a ++.I /usr/local/lib/sane/libsane\-artec_eplus48u.a + The static library implementing this backend. + .TP +-.I /usr/local/lib/sane/libsane-artec_eplus48u.so ++.I /usr/local/lib/sane/libsane\-artec_eplus48u.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -122,7 +122,7 @@ + export SANE_DEBUG_ARTEC_EPLUS48U=3 + + .SH "SEE ALSO" +-sane(7), sane-usb(5) ++sane(7), sane\-usb(5) + + .SH AUTHOR + Michael Herder +@@ -130,7 +130,7 @@ + This backend is based on the gt68xx test-program written by Sergey Vlasov, Andreas Nowack, and + David Stevenson. Thanks to everyone who tested the backend or reported bugs. + .br +-This man page is based on man sane-gt68xx, written by Henning Meier-Geinitz. ++This man page is based on man sane\-gt68xx, written by Henning Meier-Geinitz. + .SH BUGS + This backend has been tested on Linux only. If you are using it on a different platform, please + contact us. +@@ -140,5 +140,5 @@ + Support for buttons is missing due to missing support in SANE. + .PP + Please contact us if you find a bug: +-.IR http://www.sane-project.org/bugs.html . ++.IR http://www.sane\-project.org/bugs.html . + +diff -urNad sane-backends-1.0.19~/doc/sane-as6e.man sane-backends-1.0.19/doc/sane-as6e.man +--- sane-backends-1.0.19~/doc/sane-as6e.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-as6e.man 2008-07-20 12:34:23.003539658 +0200 +@@ -1,11 +1,11 @@ +-.TH sane-as6e 5 "Dec 14th, 2003" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.TH sane\-as6e 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" + + .SH NAME +-sane-as6e \- SANE backend for using the Artec AS6E parallel port interface scanner. ++sane\-as6e \- SANE backend for using the Artec AS6E parallel port interface scanner. + + .SH DESCRIPTION + The +-.B sane-as6e ++.B sane\-as6e + library implements a SANE (Scanner Access Now Easy) backend + that provides access to Artec AS6E flatbed scanner. + .B It requires the as6edriver program in order to operate. +diff -urNad sane-backends-1.0.19~/doc/sane-avision.man sane-backends-1.0.19/doc/sane-avision.man +--- sane-backends-1.0.19~/doc/sane-avision.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-avision.man 2008-07-20 12:34:23.003539658 +0200 +@@ -1,8 +1,8 @@ +-.TH sane-avision 5 "04 Mar 2003" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-avision ++.TH sane\-avision 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-avision + + .SH NAME +-sane-avision \- SANE backend for original Avision and Avision OEM scanners ++sane\-avision \- SANE backend for original Avision and Avision OEM scanners + (HP, Minolta, Mitsubishi, UMAX and possibly more) flatbed and film scanners. + + .SH ABOUT THIS FILE +@@ -11,7 +11,7 @@ + + .SH DESCRIPTION + The +-.B sane-avision ++.B sane\-avision + library implements a SANE (Scanner Access Now Easy) backend that + provides access to various Avision scanners and the Avision OEM + scanners labelled by HP, Minolta, Mitsubishi or Fujitsu. +@@ -34,10 +34,10 @@ + .nf + # this is a comment + \ +- option force-a4 +- option force-a3 +- option disable-gamma-table +- option disable-calibration ++ option force\-a4 ++ option force\-a3 ++ option disable\-gamma\-table ++ option disable\-calibration + \ + #scsi Vendor Model Type Bus Channel ID LUN + scsi AVISION +@@ -47,26 +47,26 @@ + .fi + + .TP +-force-a4: ++force\-a4: + Forces the backend to overwrite the scanable area + returned by the scanner to ISO A4. Scanner that are + known to return bogus data are marked in the backend + so if you need this option please report this to the + backend maintainer. USE WITH CARE! + .TP +-force-a3: ++force\-a3: + Forces the backend to overwrite the scanable area + returned by the scanner to ISO A3. Scanner that are + known to return bogus data are marked in the backend + so if you need this option please report this to the + backend maintainer. USE WITH CARE! + .TP +-disable-gamma-table: ++disable\-gamma\-table: + Disables the usage of the scanner's gamma-table. You + might try this if your scans hang or only produces + random garbage. + .TP +-disable-calibration: ++disable\-calibration: + Disables the scanner's color calibration. You + might try this if your scans hang or only produces + random garbage. +@@ -94,7 +94,7 @@ + corresponds to a SCSI scanner. The special device name must be a generic + SCSI device or a symlink to such a device, for example on Linux "/dev/sga" + or "/dev/sg0". The device ID is the ID returned by the scanner, for example +-"HP" or "AVISION". See sane-scsi(5) for details. ++"HP" or "AVISION". See sane\-scsi(5) for details. + .TP + Note: + Since the backend now includes native USB access, +@@ -106,10 +106,10 @@ + .I usb-spec + is the USB device name, the vendor/product ID pair or the name used by + libusb corresponding to the USB scanner. For example "0x03f0 0x0701" or +-"libusb:002:003". See sane-usb(5) for details. ++"libusb:002:003". See sane\-usb(5) for details. + + The program +-.IR sane-find-scanner ++.IR sane\-find\-scanner + helps to find out the correct scsi or usb device name. + + A list with supported devices is built into the avision backend so +@@ -122,10 +122,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-avision.a ++.I @LIBDIR@/libsane\-avision.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-avision.so ++.I @LIBDIR@/libsane\-avision.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -155,7 +155,7 @@ + export SANE_DEBUG_AVISION=7 + + .SH "SEE ALSO" +-sane(7), sane-scsi(5), sane-usb(5) ++sane(7), sane\-scsi(5), sane\-usb(5) + .br + http://www.exactcode.de/oss/avision/ + +diff -urNad sane-backends-1.0.19~/doc/sane-bh.man sane-backends-1.0.19/doc/sane-bh.man +--- sane-backends-1.0.19~/doc/sane-bh.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-bh.man 2008-07-20 12:34:23.004540066 +0200 +@@ -1,11 +1,11 @@ +-.TH sane-bh 5 "15 Sep 1999" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-bh ++.TH sane\-bh 5 "10 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-bh + .SH NAME +-sane-bh \- SANE backend for Bell+Howell Copiscan II series document ++sane\-bh \- SANE backend for Bell+Howell Copiscan II series document + scanners + .SH DESCRIPTION + The +-.B sane-bh ++.B sane\-bh + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Bell+Howell Copiscan II series document + scanners. The Copiscan II 6338 has been the primary scanner model +@@ -30,10 +30,10 @@ + .PP + If you have a Bell+Howell scanner and are able to test it with this + backend, please contact +-.IR sane-devel@lists.alioth.debian.org ++.IR sane\-devel@lists.alioth.debian.org + with the model number and testing results. Have a look at +-http://www.sane-project.org/mailing-lists.html concerning subscription to +-sane-devel. Additionally, the author is curious as to the likelihood of using ++http://www.sane\-project.org/mailing\-lists.html concerning subscription to ++sane\-devel. Additionally, the author is curious as to the likelihood of using + this backend with the newer 4000 and 8000 series scanners. If you have such a + beast, please let me know. + .PP +@@ -56,7 +56,7 @@ + are available from the backend homepage: + .br + .RS +-.B http://www.martoneconsulting.com/sane-bh.html ++.B http://www.martoneconsulting.com/sane\-bh.html + .RE + .SH "DEVICE NAMES" + This backend expects device names of the form: +@@ -74,12 +74,12 @@ + .I /dev/sga + or + .IR /dev/sg0 , +-for example. See sane-scsi(5) for details. ++for example. See sane\-scsi(5) for details. + .SH CONFIGURATION + The contents of the + .I bh.conf + file is a list of device names that correspond to Bell+Howell +-scanners. See sane-scsi(5) on details of what constitutes a valid device name. ++scanners. See sane\-scsi(5) on details of what constitutes a valid device name. + Additionally, options can be specified; these lines begin with the word "option". + Each option is described in detail below. Empty lines and lines starting + with a hash mark (#) are ignored. +@@ -89,7 +89,7 @@ + .I bh.conf + file. + .TP +-.B disable-optional-frames ++.B disable\-optional\-frames + This option prevents the backend from sending any optional frames. This + option may be useful when dealing with frontends which do not support these + optional frames. When this option is in effect, the data is sent in a +@@ -98,7 +98,7 @@ + These frames are generated based on the compression and barcode options. + These frames are never sent in preview mode. + .TP +-.B fake-inquiry ++.B fake\-inquiry + This option is used for debugging purposes and its use is not encouraged. + Essentially, it allows the backend to initialize in the absence of + a scanner. This is useful for development and not much else. +@@ -112,10 +112,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-bh.a ++.I @LIBDIR@/libsane\-bh.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-bh.so ++.I @LIBDIR@/libsane\-bh.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -160,7 +160,7 @@ + is, they scan both sides of the document during a single pass through the + scanner (the scanner has two cameras). This backend supports duplex + scanning (with the +-.B --duplex ++.B \-\-duplex + option). The front and back page images are delivered consecutively + as if they were separately scanned pages. + +@@ -171,14 +171,14 @@ + increased performance as less data is passed from the scanner to the + host over the SCSI bus. The backend supports these compression formats + via the +-.B --g31d, --g32d, --g42d ++.B \-\-g31d, \-\-g32d, \-\-g42d + options, respectively. Many SANE frontends are not equipped to deal with + these formats, however. The SANE frontend + .B scanadf + supports these optional frame formats. The compressed image data + is written directly to a file and can then be processed by a scan-script + using the +-.B --scan-script ++.B \-\-scan\-script + option. Examples of this are given on the scanadf homepage. + + .TP +@@ -186,7 +186,7 @@ + The scanner can automatically detect the paper size and adjust the + scanning window geometry appropriately. The backend supports this + useful feature with the +-.B --autoborder ++.B \-\-autoborder + option. It is enabled by default. + + .TP +@@ -227,7 +227,7 @@ + .B Decoding a single barcode type per scan + The RSC unit can search for up to six different barcode types at a time. + While the code generally supports this as well, the +-.B --barcode-search-bar ++.B \-\-barcode\-search\-bar + option only allows the user to specify a single barcode type. + Perhaps another option which allows a comma separated list of barcode + type codes could be added to address this. +@@ -239,10 +239,10 @@ + knowing ahead of time which page will be the last, can cancel batch mode + prior to initiating the last scan command. Currently, there is no mechanism + available for the frontend to pass this knowledge to the backend. +-If batch mode is enabled and the --end-count terminates a scanadf session, ++If batch mode is enabled and the \-\-end\-count terminates a scanadf session, + an extra page will be pulled through the scanner, but is neither read + nor delivered to the frontend. The issue can be avoided by specifying +---batch=no when scanning a fixed number of pages. ++\-\-batch=no when scanning a fixed number of pages. + .TP + .B Revision 1.2 Patch detector + There is an enhanced patchcode detection algorithm available in the RSC +@@ -253,19 +253,19 @@ + .TP + .B Scan Mode Options: + .TP +-.B --preview[=(yes|no)] [no] ++.B \-\-preview[=(yes|no)] [no] + Request a preview-quality scan. When preview is set to yes image + compression is disabled and the image is delivered in a + SANE_FRAME_GRAY frame. + .TP +-.B --mode lineart|halftone [lineart] ++.B \-\-mode lineart|halftone [lineart] + Selects the scan mode (e.g., lineart,monochrome, or color). + .TP +-.B --resolution 200|240|300dpi [200] ++.B \-\-resolution 200|240|300dpi [200] + Sets the resolution of the scanned image. Each scanner model supports + a list of standard resolutions; only these resolutions can be used. + .TP +-.B --compression none|g31d|g32d|g42d [none] ++.B \-\-compression none|g31d|g32d|g42d [none] + Sets the compression mode of the scanner. Determines the type of data + returned from the scanner. Values are: + .RS +@@ -290,53 +290,53 @@ + .TP + .B Geometry Options: + .TP +-.B --autoborder[=(yes|no)] [yes] ++.B \-\-autoborder[=(yes|no)] [yes] + Enable/Disable automatic image border detection. When enabled, the RSC unit + automatically detects the image area and sets the window geometry to match. + .TP +-.B --paper-size Custom|Letter|Legal|A3|A4|A5|A6|B4|B5 [Custom] ++.B \-\-paper\-size Custom|Letter|Legal|A3|A4|A5|A6|B4|B5 [Custom] + Specify the scan window geometry by specifying the paper size of the + documents to be scanned. + .TP +-.B --tl-x 0..297.18mm [0] ++.B \-\-tl\-x 0..297.18mm [0] + Top-left x position of scan area. + .TP +-.B --tl-y 0..431.8mm [0] ++.B \-\-tl\-y 0..431.8mm [0] + Top-left y position of scan area. + .TP +-.B --br-x 0..297.18mm [297.18] ++.B \-\-br\-x 0..297.18mm [297.18] + Bottom-right x position of scan area. + .TP +-.B --br-y 0..431.8mm [431.8] ++.B \-\-br\-y 0..431.8mm [431.8] + Bottom-right y position of scan area. + .TP + .B Feeder Options: + .TP +-.B --source Automatic Document Feeder|Manual Feed Tray [Automatic Document Feeder] ++.B \-\-source Automatic Document Feeder|Manual Feed Tray [Automatic Document Feeder] + Selects the scan source (such as a document feeder). This option is provided + to allow multiple image scans with xsane; it has no other purpose. + .TP +-.B --batch[=(yes|no)] [no] ++.B \-\-batch[=(yes|no)] [no] + Enable/disable batch mode scanning. Batch mode allows scanning at maximum throughput + by buffering within the RSC unit. This option is recommended when performing multiple + pages scans until the feeder is emptied. + .TP +-.B --duplex[=(yes|no)] [no] ++.B \-\-duplex[=(yes|no)] [no] + Enable duplex (dual-sided) scanning. The scanner takes an image of each side + of the document during a single pass through the scanner. The front page is + delivered followed by the back page. Most options, such as compression, + affect both the front and back pages. + .TP +-.B --timeout-adf 0..255 [0] ++.B \-\-timeout\-adf 0..255 [0] + Sets the timeout in seconds for the automatic document feeder (ADF). + The value 0 specifies the hardware default value which varies based + on the scanner model. + .TP +-.B --timeout-manual 0..255 [0] ++.B \-\-timeout\-manual 0..255 [0] + Sets the timeout in seconds for semi-automatic feeder. The value 0 specifies + the hardware default value which varies based on the scanner model. + .TP +-.B --check-adf[=(yes|no)] [no] ++.B \-\-check\-adf[=(yes|no)] [no] + Check ADF Status prior to starting scan using the OBJECT POSITION command. + Note that this feature requires RSC firmware level 1.5 or higher and dip + switch 4 must be in the on position. NOTE: This option has not been tested +@@ -344,44 +344,44 @@ + .TP + .B Enhancement: + .TP +-.B --control-panel[=(yes|no)] [yes] ++.B \-\-control\-panel[=(yes|no)] [yes] + Enables the scanner's control panel for selecting image enhancement + parameters. When the option is set to no the following options are + used to control image enhancement. See the Bell+Howell scanner users' + guide for complete information on ACE functionality. + .TP +-.B --ace-function -4..4 [3] ++.B \-\-ace\-function \-4..4 [3] + Specify the Automatic Contrast Enhancement (ACE) Function. + .TP +-.B --ace-sensitivity 0..9 [5] ++.B \-\-ace\-sensitivity 0..9 [5] + Specify the Automatic Contrast Enhancement (ACE) Sensitivity. + .TP +-.B --brightness 0..255 [0] ++.B \-\-brightness 0..255 [0] + Controls the brightness of the acquired image. Ignored for ACE + capable scanners. + .TP +-.B --threshold 0..255 [0] ++.B \-\-threshold 0..255 [0] + Select minimum-brightness to get a white point. Ignored for ACE + capable scanners. + .TP +-.B --contrast 0..255 [inactive] ++.B \-\-contrast 0..255 [inactive] + Controls the contrast of the acquired image. This option is not + currently used by the scanner (and perhaps never will be). + .TP +-.B --negative[=(yes|no)] [no] ++.B \-\-negative[=(yes|no)] [no] + Swap black and white, yielding a reverse-video image. + .TP + .B Icon: + .TP +-.B --icon-width 0..3600pel (in steps of 8) [0] ++.B \-\-icon\-width 0..3600pel (in steps of 8) [0] + Width of icon (thumbnail) image in pixels. + .TP +-.B --icon-length 0..3600pel (in steps of 8) [0] ++.B \-\-icon\-length 0..3600pel (in steps of 8) [0] + Length of icon (thumbnail) image in pixels. + .TP + .B Barcode Options: + .TP +-.B --barcode-search-bar [none] ++.B \-\-barcode\-search\-bar [none] + Specifies the barcode type to search for. If this option is + not specified, or specified with a value of none, then the barcode decoding + feature is completely disabled. The valid barcode type are: +@@ -389,66 +389,66 @@ + .br + .B none + .br +-.B ean-8 ++.B ean\-8 + .br +-.B ean-13 ++.B ean\-13 + .br +-.B reserved-ean-add ++.B reserved\-ean\-add + .br + .B code39 + .br +-.B code2-5-interleaved ++.B code2\-5\-interleaved + .br +-.B code2-5-3lines-matrix ++.B code2\-5\-3lines\-matrix + .br +-.B code2-5-3lines-datalogic ++.B code2\-5\-3lines\-datalogic + .br +-.B code2-5-5lines-industrial ++.B code2\-5\-5lines\-industrial + .br + .B patchcode + .br + .B codabar + .br +-.B codabar-with-start-stop ++.B codabar\-with\-start\-stop + .br + .B code39ascii + .br + .B code128 + .br +-.B code2-5-5lines-iata ++.B code2\-5\-5lines\-iata + .br + .RE + .TP +-.B --barcode-search-count 1..7 [3] ++.B \-\-barcode\-search\-count 1..7 [3] + Number of times that the RSC performs the decoding algorithm. Specify + the smallest number possible to increase performance. If you are having + trouble recognizing barcodes, it is suggested that you increase this option + to its maximum value (7). + .TP +-.B --barcode-search-mode [horiz-vert] ++.B \-\-barcode\-search\-mode [horiz\-vert] + Chooses the orientation of barcodes to be searched. The valid orientations + are: + .RS + .br +-.B horiz-vert ++.B horiz\-vert + .br + .B horizontal + .br + .B vertical + .br +-.B vert-horiz ++.B vert\-horiz + .RE + .TP +-.B --barcode-hmin 0..1660mm [5] ++.B \-\-barcode\-hmin 0..1660mm [5] + Sets the barcode minimum height in millimeters (larger values increase + recognition speed). Of course the actual barcodes in the document must be + of sufficient size. + .TP +-.B --barcode-search-timeout 20..65535us [10000] ++.B \-\-barcode\-search\-timeout 20..65535us [10000] + Sets the timeout for barcode searching in milliseconds. When the timeout + expires, the decoder will stop trying to decode barcodes. + .TP +-.B --section [] ++.B \-\-section [] + Specifies a series of image sections. A section can be used to gather + a subset image or to provide a small area for barcode decoding. + Each section is specified in the following format (units are in millimeters): +@@ -514,20 +514,20 @@ + last one is used. + + .TP +-.B --barcode-relmax 0..255 [0] ++.B \-\-barcode\-relmax 0..255 [0] + Specifies the maximum relation from the widest to the smallest bar. + .TP +-.B --barcode-barmin 0..255 [0] ++.B \-\-barcode\-barmin 0..255 [0] + Specifies the minimum number of bars in Bar/Patch code. + .TP +-.B --barcode-barmax 0..255 [0] ++.B \-\-barcode\-barmax 0..255 [0] + Specifies the maximum number of bars in a Bar/Patch code. + .TP +-.B --barcode-contrast 0..6 [3] ++.B \-\-barcode\-contrast 0..6 [3] + Specifies the image contrast used in decoding. Use higher values when + there are more white pixels in the code. + .TP +-.B --barcode-patchmode 0..1 [0] ++.B \-\-barcode\-patchmode 0..1 [0] + Controls Patch Code detection. + + .SH BUGS +@@ -536,12 +536,12 @@ + If you have found something that you think is a bug, please attempt to + recreate it with the SANE_DEBUG_BH environment variable set to + 255, and send a report detailing the conditions surrounding the bug to +-.IR sane-devel@lists.alioth.debian.org . ++.IR sane\-devel@lists.alioth.debian.org . + + .SH "SEE ALSO" +-sane(7), sane-scsi(5), scanimage(1), scanadf(1) ++sane(7), sane\-scsi(5), scanimage(1), scanadf(1) + + .SH AUTHOR +-The sane-bh backend was written by Tom Martone, based on the sane-ricoh ++The sane\-bh backend was written by Tom Martone, based on the sane\-ricoh + backend by Feico W. Dillema and the bnhscan program by Sean Reifschneider + of tummy.com ltd. Some 8000 enhancements added by Mark Temple. +diff -urNad sane-backends-1.0.19~/doc/sane-canon.man sane-backends-1.0.19/doc/sane-canon.man +--- sane-backends-1.0.19~/doc/sane-canon.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-canon.man 2008-07-20 12:34:23.004540066 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-canon 5 "03 May 2001" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-canon ++.TH sane\-canon 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-canon + .SH NAME +-sane-canon \- SANE backend for Canon SCSI scanners ++sane\-canon \- SANE backend for Canon SCSI scanners + .SH DESCRIPTION + The +-.B sane-canon ++.B sane\-canon + library implements a SANE (Scanner Access Now Easy) backend that + provides access to the following Canon flatbed and film scanners: + .PP +@@ -24,7 +24,7 @@ + .RE + .PP + Parallel port and USB scanners are not supported by this backend; see +-the manual pages for sane-canon_pp and sane-canon630u for further ++the manual pages for sane\-canon_pp and sane\-canon630u for further + information. + .PP + IMPORTANT: This is beta code. We tested the code on the scanners listed +@@ -37,8 +37,8 @@ + .PP + That said, TESTERS ARE WELCOME. Send your bug reports and comments to + Manuel Panea ; for questions concerning the FB620 and +-FB1200S contact Mitsuru Okaniwa , for the +-FS2710S Ulrich Deiters . ++FB1200S contact Mitsuru Okaniwa , for the ++FS2710S Ulrich Deiters . + .PP + + .SH TIPS (FS2700F) +@@ -71,10 +71,10 @@ + .PP + .SH FILES + .TP +-.I @LIBDIR@/libsane-canon.a ++.I @LIBDIR@/libsane\-canon.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-canon.so ++.I @LIBDIR@/libsane\-canon.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -88,7 +88,7 @@ + export SANE_DEBUG_CANON=4 + + .SH "SEE ALSO" +-sane-scsi(5) ++sane\-scsi(5) + .br + http://www.rzg.mpg.de/~mpd/sane/ + .br +diff -urNad sane-backends-1.0.19~/doc/sane-canon630u.man sane-backends-1.0.19/doc/sane-canon630u.man +--- sane-backends-1.0.19~/doc/sane-canon630u.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-canon630u.man 2008-07-20 12:34:23.004540066 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-canon630u 5 "06 Apr 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-canon630u ++.TH sane\-canon630u 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-canon630u + .SH NAME +-sane-canon630u \- SANE backend for the Canon 630u USB flatbed scanner ++sane\-canon630u \- SANE backend for the Canon 630u USB flatbed scanner + .SH DESCRIPTION + The +-.B sane-canon630u ++.B sane\-canon630u + library implements a SANE (Scanner Access Now Easy) backend that + provides access to the following Canon flatbed scanners: + .PP +@@ -29,11 +29,11 @@ + ignored. Only one device name can be listed in + .IR canon630u.conf . + The program +-.IR sane-find-scanner ++.IR sane\-find\-scanner + helps to find out the correct device. Under Linux, such a device name + could be + .I /dev/usb/scanner0 +-for example. See sane-usb(5) for details. ++for example. See sane\-usb(5) for details. + .PP + This product-specific scanner driver uses the lower-level kernel USB driver + "scanner". Check for "Driver=usbscanner" under /proc/bus/usb/devices. If +@@ -61,10 +61,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-canon630u.a ++.I @LIBDIR@/libsane\-canon630u.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-canon630u.so ++.I @LIBDIR@/libsane\-canon630u.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .TP +@@ -97,7 +97,7 @@ + .br + SANE_DEBUG_CANON630U=12 scanimage > /dev/null + .SH "SEE ALSO" +-sane(7), sane-usb(5), sane-find-scanner(1) ++sane(7), sane\-usb(5), sane\-find\-scanner(1) + .br + http://canon-fb630u.sourceforge.net/ + .br +diff -urNad sane-backends-1.0.19~/doc/sane-canon_pp.man sane-backends-1.0.19/doc/sane-canon_pp.man +--- sane-backends-1.0.19~/doc/sane-canon_pp.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-canon_pp.man 2008-07-20 12:34:23.004540066 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-canon_pp 5 "1 October 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-canon_pp ++.TH sane\-canon_pp 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-canon_pp + .SH NAME +-sane-canon_pp \- SANE backend for Canon CanoScan Parallel Port flatbed scanners ++sane\-canon_pp \- SANE backend for Canon CanoScan Parallel Port flatbed scanners + .SH DESCRIPTION + The +-.B sane-canon_pp ++.B sane\-canon_pp + library implements a SANE (Scanner Access Now Easy) backend that provides + access to the following Canon flatbed scanners: + .PP +@@ -123,10 +123,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-canon_pp.a ++.I @LIBDIR@/libsane\-canon_pp.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-canon_pp.so ++.I @LIBDIR@/libsane\-canon_pp.so + The shared library implementing this backend (present on systems that support + dynamic loading). + .SH ENVIRONMENT +@@ -219,9 +219,9 @@ + + + .SH "SEE ALSO" +-sane(7), sane-dll(5) ++sane(7), sane\-dll(5) + .BR +-http://canon-fb330p.sourceforge.net/ ++http://canon\-fb330p.sourceforge.net/ + + .SH AUTHOR + This backend is primarily the work of Simon Krix (Reverse Engineering), and +diff -urNad sane-backends-1.0.19~/doc/sane-cardscan.man sane-backends-1.0.19/doc/sane-cardscan.man +--- sane-backends-1.0.19~/doc/sane-cardscan.man 2008-07-20 12:30:18.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-cardscan.man 2008-07-20 12:34:23.005539614 +0200 +@@ -1,12 +1,12 @@ +-.TH sane-cardscan 5 "2007-07-14" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-cardscan ++.TH sane\-cardscan 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-cardscan + + .SH NAME +-sane-cardscan \- SANE backend for Corex CardScan 800c usb scanner ++sane\-cardscan \- SANE backend for Corex CardScan 800c usb scanner + + .SH DESCRIPTION + The +-.B sane-cardscan ++.B sane\-cardscan + library implements a SANE (Scanner Access Now Easy) backend which + provides access to the Corex CardScan 800c small-format scanner. + +@@ -91,7 +91,7 @@ + + .SH "SEE ALSO" + sane(7), +-sane-usb(5) ++sane\-usb(5) + + .SH AUTHOR + m. allan noah: +diff -urNad sane-backends-1.0.19~/doc/sane-config.man sane-backends-1.0.19/doc/sane-config.man +--- sane-backends-1.0.19~/doc/sane-config.man 2008-07-20 12:30:19.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-config.man 2008-07-20 12:34:23.005539614 +0200 +@@ -1,11 +1,11 @@ +-.TH sane-config 1 "8 Jan 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.TH sane\-config 1 "10 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" + .SH NAME +-sane-config \- get information about the installed version of libsane ++sane\-config \- get information about the installed version of libsane + .SH SYNOPSIS +-.B sane-config [--prefix] [--exec-prefix] [--libs] [--cflags] [--ldflags] [--version] [--help \fI[OPTION]\fP] ++.B sane\-config [\-\-prefix] [\-\-exec\-prefix] [\-\-libs] [\-\-cflags] [\-\-ldflags] [\-\-version] [\-\-help \fI[OPTION]\fP] + .SH DESCRIPTION + .PP +-.B sane-config ++.B sane\-config + is a tool that is used to determine the compiler and linker + flags that should be used to compile and link + .B SANE +@@ -14,37 +14,36 @@ + backend library (libsane). + . + .SH OPTIONS +-.l +-.B sane-config ++.B sane\-config + accepts the following options (you can't use more than one option at the same time): + .TP 8 +-.B --version ++.B \-\-version + Print the currently installed version of libsane on the standard output. + .TP 8 +-.B --help OPTION ++.B \-\-help OPTION + Print a short usage message. If OPTION is specified, help for that option +-(e.g. --libs) is printed (if available). ++(e.g. \-\-libs) is printed (if available). + .TP 8 +-.B --libs ++.B \-\-libs + Print the additional libraries that are necessary to link a + .B SANE + frontend to libsane. + .TP 8 +-.B --ldflags ++.B \-\-ldflags + Print the linker flags that are necessary to link a + .B SANE + frontend to libsane. + .TP 8 +-.B --cflags ++.B \-\-cflags + Print the compiler flags that are necessary to compile a + .B SANE + frontend. + .TP 8 +-.B --prefix ++.B \-\-prefix + Print the prefix used during compilation of libsane. + .TP 8 +-.B --exec-prefix +-Print the exec-prefix used during compilation of libsane. ++.B \-\-exec\-prefix ++Print the exec\-prefix used during compilation of libsane. + .SH "SEE ALSO" + .BR sane (7) + .SH AUTHOR +diff -urNad sane-backends-1.0.19~/doc/sane-coolscan.man sane-backends-1.0.19/doc/sane-coolscan.man +--- sane-backends-1.0.19~/doc/sane-coolscan.man 2008-07-20 12:30:19.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-coolscan.man 2008-07-20 12:34:23.005539614 +0200 +@@ -1,8 +1,8 @@ +-.TH sane-coolscan 5 "4 July 2000" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-coolscan ++.TH sane\-coolscan 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-coolscan + + .SH NAME +-sane-coolscan \- SANE backend for Nikon film-scanners ++sane\-coolscan \- SANE backend for Nikon film-scanners + + .SH ABOUT THIS FILE + +@@ -11,7 +11,7 @@ + .SH DESCRIPTION + + The +-.B sane-coolscan ++.B sane\-coolscan + library implements a SANE backend that provides the interface to the following Nikon Coolscan Film scanners: Nikon LS20, LS30, LS1000, LS2000. + + .B Even though the backend has worked for a number of people, there are still some problems, especially in combination with some SCSI card/drivers (AHA-1505/aha152x.o) and the autofocus command. You should consider this backend 'alpha' and be careful when using it the first time. +@@ -33,7 +33,7 @@ + + The special device name must be a generic SCSI device or a symlink to such a device. + To find out to which device your scanner is assigned and how you have to set the +-permissions of that device, have a look at sane-scsi. ++permissions of that device, have a look at sane\-scsi. + + .SH SCSI ADAPTER TIPS + +@@ -51,10 +51,10 @@ + .I @CONFIGDIR@/coolscan.conf + .TP + The static library implementing this backend: +-.I @LIBDIR@/libsane-coolscan.a ++.I @LIBDIR@/libsane\-coolscan.a + .TP + The shared library implementing this backend: +-.I @LIBDIR@/libsane-coolscan.so ++.I @LIBDIR@/libsane\-coolscan.so + (present on systems that support dynamic loading) + + .SH ENVIRONMENT +@@ -93,7 +93,7 @@ + .I http://www.sema.be/coolscan/ + The original version of the coolscan backend by Didier + .PP +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + + .SH THANKS TO + +diff -urNad sane-backends-1.0.19~/doc/sane-coolscan2.man sane-backends-1.0.19/doc/sane-coolscan2.man +--- sane-backends-1.0.19~/doc/sane-coolscan2.man 2008-07-20 12:30:19.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-coolscan2.man 2008-07-20 12:34:23.005539614 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-coolscan2 5 "22/08/2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-coolscan2 ++.TH sane\-coolscan2 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-coolscan2 + .SH NAME +-sane-coolscan2 \- SANE backend for Nikon Coolscan film scanners ++sane\-coolscan2 \- SANE backend for Nikon Coolscan film scanners + .SH DESCRIPTION + The +-.B sane-coolscan2 ++.B sane\-coolscan2 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Nikon Coolscan film scanners. Some functions of this + backend should be considered +@@ -40,14 +40,14 @@ + + Valid command line options and their syntax can be listed by using + .RS +-scanimage --help -d coolscan2:: ++scanimage \-\-help \-d coolscan2:: + .RE + where and specify the device in question, as in the +-configuration file (see next section). The "-d" parameter and its argument ++configuration file (see next section). The \-d parameter and its argument + can be omitted to obtain information on the first scanner identified. Use + the command + .RS +-scanimage -L ++scanimage \-L + .RE + to list all devices recognized by your SANE installation. + +@@ -55,25 +55,25 @@ + frontend. Here is a description of some of the most important options, in the + syntax with which they must be supplied to scanimage: + .TP +-.I --frame ++.I \-\-frame + This option specifies which frame to operate on, if a motorized film strip + feeder or APS adapter are used. The frame number + .I + ranges from 1 to the number of frames available, which is sensed each time + the backend is initialized (usually each time you start the frontend). + .TP +-.I --subframe ++.I \-\-subframe + This option shifts the scan window by the specified amount (default + unit is mm). + .TP +-.I --infrared=yes/no ++.I \-\-infrared=yes/no + If set to "yes", the scanner will read the infrared channel, thus allowing + defect removal in software. The infrared image is read during a second scan, + with no options altered. The backend must not be restarted between the scans. +-If you use scanimage, perform a batch scan with batch-count=2 to obtain the ++If you use scanimage, perform a batch scan with batch\-count=2 to obtain the + IR information. + .TP +-.I --depth ++.I \-\-depth + Here can either be 8 or the maximum number of bits supported by the + scanner (10, 12, or 14). It specifies whether or not the scanner reduces + the scanned data to 8 bits before sending it to the backend. If 8 bits are +@@ -81,36 +81,36 @@ + is smaller compared to higher depths. Also, many imaging programs and image + formats cannot handle depths greater than 8 bits. + .TP +-.I --autofocus ++.I \-\-autofocus + Perform autofocus operation. Unless otherwise specified by the other options ( +-.I --focus-on-centre ++.I \-\-focus\-on\-centre + and friends), focusing is performed on the centre of the selected scan area. + .TP +-.I --ae-wb ++.I \-\-ae\-wb + .TP +-.I --ae ++.I \-\-ae + Perform a pre-scan to calculate exposure values automatically. +-.I --ae-wb ++.I \-\-ae\-wb + will maintain the white balance, while +-.I --ae ++.I \-\-ae + will adjust each channel separately. + .TP +-.I --exposure ++.I \-\-exposure + Multiply all exposure times with this value. This allows exposure + correction without modifying white balance. + .TP +-.I --load ++.I \-\-load + Load the next slide when using the slide loader. + .TP +-.I --eject ++.I \-\-eject + Eject the film strip or mounted slide when using the slide loader. + .TP +-.I --reset ++.I \-\-reset + Reset scanner. The scanner will perform the same action as when power is + turned on: it will eject the film strip and calibrate itself. Use this + whenever the scanner refuses to load a film strip properly, as a result of + which +-.I --eject ++.I \-\-eject + does not work. + + .SH CONFIGURATION FILE +@@ -137,10 +137,10 @@ + + .SH FILES + .TP +-.I @LIBDIR@/libsane-coolscan2.a ++.I @LIBDIR@/libsane\-coolscan2.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-coolscan2.so ++.I @LIBDIR@/libsane\-coolscan2.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .TP +@@ -157,12 +157,12 @@ + levels reduce verbosity. + + .SH "SEE ALSO" +-sane-scsi(5), sane-usb(5), scanimage(1), xscanimage(1), xsane(1) ++sane\-scsi(5), sane\-usb(5), scanimage(1), xscanimage(1), xsane(1) + + .SH BUGS + Currently, the SANE protocol does not allow automatically updating options + whenever the hardware changes. Thus the number of choices for the +-.B --frame ++.B \-\-frame + option will be fixed when the backend is initialized (usually when the user + runs the frontend). In particular, if there is no film strip in the + automatic film strip feeder when the backend is initialized, the frame option +diff -urNad sane-backends-1.0.19~/doc/sane-dc210.man sane-backends-1.0.19/doc/sane-dc210.man +--- sane-backends-1.0.19~/doc/sane-dc210.man 2008-07-20 12:30:19.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-dc210.man 2008-07-20 12:34:23.005539614 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-dc210 5 "15 July 2000" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-dc210 ++.TH sane\-dc210 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-dc210 + .SH NAME +-sane-dc210 \- SANE backend for Kodak DC210 Digital Camera ++sane\-dc210 \- SANE backend for Kodak DC210 Digital Camera + .SH DESCRIPTION + The +-.B sane-dc210 ++.B sane\-dc210 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to the Kodak DC210 camera. THIS IS EXTREMELY ALPHA + CODE! USE AT YOUR OWN RISK!! +@@ -19,7 +19,7 @@ + camera is always initialized using 9600 baud, then switches to the + higher rate). On my 90MHz Pentium, I usually have no problems downloading + at 115200 baud as long as the system is not excessively busy and +-the "interrupt-unmask flag" is set in the IDE driver (hdparm -u1). ++the "interrupt-unmask flag" is set in the IDE driver (hdparm \-u1). + Supported baud rates are: 9600, 19200, 38400, 57600, and 115200. + .PP + The dumpinquiry line causes some information about the camera to +@@ -56,10 +56,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-dc210.a ++.I @LIBDIR@/libsane\-dc210.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-dc210.so ++.I @LIBDIR@/libsane\-dc210.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -102,6 +102,6 @@ + .PP + More general comments, suggestions, and inquiries about frontends + or SANE should go to the SANE Developers mailing list +-(see http://www.sane-project.org/mailing-lists.html for details). ++(see http://www.sane\-project.org/mailing\-lists.html for details). + You must be subscribed to the list, otherwise your mail won't be + sent to the subscribers. +diff -urNad sane-backends-1.0.19~/doc/sane-dc240.man sane-backends-1.0.19/doc/sane-dc240.man +--- sane-backends-1.0.19~/doc/sane-dc240.man 2008-07-20 12:30:19.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-dc240.man 2008-07-20 12:34:23.006539790 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-dc240 5 "23 March 2001" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-dc240 ++.TH sane\-dc240 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-dc240 + .SH NAME +-sane-dc240 \- SANE backend for Kodak DC240 Digital Camera ++sane\-dc240 \- SANE backend for Kodak DC240 Digital Camera + .SH DESCRIPTION + The +-.B sane-dc240 ++.B sane\-dc240 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to the Kodak DC240 camera. THIS IS EXTREMELY ALPHA + CODE! USE AT YOUR OWN RISK!! +@@ -20,7 +20,7 @@ + higher rate). On a 450MHz Pentium, I usually have no problems downloading + at 115200 baud, though the camera sometimes has to resend packets due + to lost characters. Results are better when +-the "interrupt-unmask flag" is set in the IDE driver (hdparm -u1). ++the "interrupt-unmask flag" is set in the IDE driver (hdparm \-u1). + Supported baud rates are: 9600, 19200, 38400, 57600, and 115200. + .PP + The dumpinquiry line causes some information about the camera to +@@ -57,10 +57,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-dc240.a ++.I @LIBDIR@/libsane\-dc240.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-dc240.so ++.I @LIBDIR@/libsane\-dc240.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -107,7 +107,7 @@ + .PP + More general comments, suggestions, and inquiries about frontends + or SANE should go to the SANE Developers mailing list +-(see http://www.sane-project.org/mailing-lists.html for details). ++(see http://www.sane\-project.org/mailing\-lists.html for details). + You must be subscribed to the list, otherwise your mail won't be + sent to the subscribers. + +diff -urNad sane-backends-1.0.19~/doc/sane-dc25.man sane-backends-1.0.19/doc/sane-dc25.man +--- sane-backends-1.0.19~/doc/sane-dc25.man 2008-07-20 12:30:19.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-dc25.man 2008-07-20 12:34:23.006539790 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-dc25 5 "12 April 1999" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-dc25 ++.TH sane\-dc25 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-dc25 + .SH NAME +-sane-dc25 \- SANE backend for Kodak DC20/DC25 Digital Cameras ++sane\-dc25 \- SANE backend for Kodak DC20/DC25 Digital Cameras + .SH DESCRIPTION + The +-.B sane-dc25 ++.B sane\-dc25 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Kodak DC20 and DC25 cameras. At present, only + the DC25 has been tested, but since the code is based on a DC20 +@@ -20,7 +20,7 @@ + camera is always initialized using 9600 baud, then switches to the + higher rate). On my 90MHz Pentium, I usually have no problems downloading + at 115200 baud as long as the system is not excessively busy and +-the "interrupt-unmask flag" is set in the IDE driver (hdparm -u1). ++the "interrupt-unmask flag" is set in the IDE driver (hdparm \-u1). + Supported baud rates are: 9600, 19200, 38400, 57600, and 115200. + .PP + The dumpinquiry line causes some information about the camera to +@@ -49,10 +49,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-dc25.a ++.I @LIBDIR@/libsane\-dc25.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-dc25.so ++.I @LIBDIR@/libsane\-dc25.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -82,7 +82,7 @@ + sane(7) + + .SH AUTHOR +-Peter Fales, dc25-devel@fales-lorenz.net ++Peter Fales, dc25\-devel@fales\-lorenz.net + + .SH BUGS + Known bugs/limitations are: +@@ -94,6 +94,6 @@ + .PP + More general comments, suggestions, and inquiries about frontends + or SANE should go to the SANE Developers mailing list +-(see http://www.sane-project.org/mailing-lists.html for details). ++(see http://www.sane\-project.org/mailing\-lists.html for details). + You must be subscribed to the list, otherwise your mail won't be + sent to the subscribers. +diff -urNad sane-backends-1.0.19~/doc/sane-dll.man sane-backends-1.0.19/doc/sane-dll.man +--- sane-backends-1.0.19~/doc/sane-dll.man 2008-07-20 12:30:19.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-dll.man 2008-07-20 12:34:23.006539790 +0200 +@@ -1,14 +1,14 @@ +-.TH sane-dll 5 "4 Dec 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-dll ++.TH sane\-dll 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-dll + .SH NAME +-sane-dll \- SANE dynamic backend loader ++sane\-dll \- SANE dynamic backend loader + .SH DESCRIPTION + The +-.B sane-dll ++.B sane\-dll + library implements a SANE (Scanner Access Now Easy) backend that + provides access to an arbitrary number of other SANE backends. These + backends may either be pre-loaded at the time the +-.B sane-dll ++.B sane\-dll + library is built or, on systems that support dynamic loading of shared + libraries, the backends may be loaded at runtime. In the latter case, + adding support for a new backend simply involves installing the +@@ -114,10 +114,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-dll.a ++.I @LIBDIR@/libsane\-dll.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-dll.so ++.I @LIBDIR@/libsane\-dll.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -160,7 +160,7 @@ + .SH "SEE ALSO" + .BR sane (7), + .BR scanimage (1), +-.BR sane-"backendname" (5) ++.BR sane\-"backendname" (5) + + .SH AUTHOR + David Mosberger +diff -urNad sane-backends-1.0.19~/doc/sane-dmc.man sane-backends-1.0.19/doc/sane-dmc.man +--- sane-backends-1.0.19~/doc/sane-dmc.man 2008-07-20 12:30:19.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-dmc.man 2008-07-20 12:34:23.006539790 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-dmc 5 "13 May 1998" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-dmc ++.TH sane\-dmc 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-dmc + .SH NAME +-sane-dmc \- SANE backend for the Polaroid Digital Microscope Camera ++sane\-dmc \- SANE backend for the Polaroid Digital Microscope Camera + .SH DESCRIPTION + The +-.B sane-dmc ++.B sane\-dmc + library implements a SANE (Scanner Access Now Easy) backend that + provides access to the Polaroid Digital Microscope Camera. + .SH "DEVICE NAMES" +@@ -87,10 +87,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-dmc.a ++.I @LIBDIR@/libsane\-dmc.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-dmc.so ++.I @LIBDIR@/libsane\-dmc.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -131,10 +131,10 @@ + buffering and you can read the image in as small an increment as you + like. + .SH "SEE ALSO" +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + .SH AUTHOR + David F. Skoll + .PP + The backend is derived from +-.BR sane-hp ++.BR sane\-hp + by David Mosberger +diff -urNad sane-backends-1.0.19~/doc/sane-epjitsu.man sane-backends-1.0.19/doc/sane-epjitsu.man +--- sane-backends-1.0.19~/doc/sane-epjitsu.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-epjitsu.man 2008-07-20 12:34:23.007539718 +0200 +@@ -1,12 +1,12 @@ +-.TH sane-epjitsu 5 "2007-12-17" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-epjitsu ++.TH sane\-epjitsu 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-epjitsu + + .SH NAME +-sane-epjitsu \- SANE backend for Epson-based Fujitsu USB scanners. ++sane\-epjitsu \- SANE backend for Epson-based Fujitsu USB scanners. + + .SH DESCRIPTION + The +-.B sane-epjitsu ++.B sane\-epjitsu + library implements a SANE (Scanner Access Now Easy) backend which provides basic access the Fujitsu fi-60F and ScanSnap S300 scanners. + + .SH HARDWARE SUPPORT +@@ -30,10 +30,10 @@ + .PP + resolution, y-resolution + .RS +-Controls scan resolution. Setting --resolution also sets --y-resolution, though this behavior is overridden by some frontends. ++Controls scan resolution. Setting \-\-resolution also sets \-\-y\-resolution, though this behavior is overridden by some frontends. + .RE + .PP +-Other options will be available based on the capabilities of the scanner. Use 'scanimage --help' to get a list. Be aware that some options may appear only when another option has been set, and that advanced options may be hidden by the frontend. ++Other options will be available based on the capabilities of the scanner. Use 'scanimage \-\-help' to get a list. Be aware that some options may appear only when another option has been set, and that advanced options may be hidden by the frontend. + .PP + .SH CONFIGURATION FILE + The configuration file "@CONFIGDIR@/epjitsu.conf" is used to tell the backend how to look for scanners, and provide options controlling the operation of the backend. This file is read each time the frontend asks the backend for a list of scanners, generally only when the frontend starts. If the configuration file is missing, the backend will not work. +@@ -103,7 +103,7 @@ + + .SH "SEE ALSO" + sane(7), +-sane-usb(5) ++sane\-usb(5) + + .SH AUTHOR + m. allan noah: +diff -urNad sane-backends-1.0.19~/doc/sane-epson.man sane-backends-1.0.19/doc/sane-epson.man +--- sane-backends-1.0.19~/doc/sane-epson.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-epson.man 2008-07-20 12:34:23.007539718 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-epson 5 "27-Dec-2000" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-epson ++.TH sane\-epson 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-epson + .SH NAME +-sane-epson \- SANE backend for EPSON scanners ++sane\-epson \- SANE backend for EPSON scanners + .SH DESCRIPTION + The +-.B sane-epson ++.B sane\-epson + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Epson flatbed scanners. Some functions of this + backend should be considered +@@ -58,13 +58,13 @@ + + Valid command line options and their syntax can be listed by using + .RS +-scanimage --help -d epson ++scanimage \-\-help \-d epson + .RE + Not all devices support all options. + .TP + .I Scan Mode + The +-.I --mode ++.I \-\-mode + switch selects the basic mode of operation of the scanner. Valid choices + are Binary, Gray and Color. The Binary mode is black and white only, + Gray will produce 256 levels of gray or more depending on the scanner +@@ -73,7 +73,7 @@ + however may only support 24 bits. + + The +-.I --depth ++.I \-\-depth + option selects the bit depth the scanner is using. This option is only + available for scanners that support more than one bit depth. Older + scanners will always transfer the image in 8bit mode. Newer scanners +@@ -82,7 +82,7 @@ + all three channels. The valid choices depend on the scanner model. + + The +-.I --halftoning ++.I \-\-halftoning + switch selects the mode that is used in Binary mode. Valid options + are "None", "Halftone A (Hard Tone)", "Halftone B (Soft Tone)", "Halftone C + (Net Screen)", "Dither A (4x4 Bayer)", "Dither B (4x4 Spiral)", "Dither C +@@ -90,129 +90,129 @@ + "Download pattern A", and "Download pattern B". + + The +-.I --dropout ++.I \-\-dropout + switch selects the so called dropout color. Vald options are None, + Red, Green and Blue. The default is None. The dropout color is used for + monochrome scanning and selects the color that is not scanned. This can + be used to e.g. scan an original with a colored background. + + The +-.I --brightness ++.I \-\-brightness + switch controls the brightness of the scan. Valid options are integer +-values from -3 to 3. The default is 0. The larger the brightness value, ++values from \-3 to 3. The default is 0. The larger the brightness value, + the brighter the image gets. If a user defined table for the gamma + correction is selected, the brightness parameter is not available. + + The +-.I --sharpness ++.I \-\-sharpness + switch sets the sharpness of the image data. Valid options are integer +-values from -2 to 2, with -2 meaning "Defocus", -1 "Defocus slightly", ++values from \-2 to 2, with \-2 meaning "Defocus", \-1 "Defocus slightly", + 0 "Normal", 1 "Sharpen slightly" and 2 "Sharpen". + + The +-.I --gamma-correction ++.I \-\-gamma\-correction + switch controls the scanner's internal gamma correction. Valid options are + "Default", "User defined", "High density printing" "Low density printing" + and "High contrast printing". + + The +-.I --color-correction ++.I \-\-color\-correction + switch controls the scanner's internal color correction function. Valid +-options are "No Correction", "Impact-dot printers", "Thermal printers", +-"Ink-jet printers" and "CRT monitors". The default is "CRT monitors". ++options are "No Correction", "Impact\-dot printers", "Thermal printers", ++"Ink\-jet printers" and "CRT monitors". The default is "CRT monitors". + + The +-.I --resolution ++.I \-\-resolution + switch selects the resolution for a scan. Some EPSON scanners will scan in + any resolution between the lowest and highest possible value. The list +-reported by the scanner can be displayed using the "--help -d epson" ++reported by the scanner can be displayed using the "\-\-help \-d epson" + parameters to scanimage. + + The +-.I --mirror ++.I \-\-mirror + option controls the way the image is scanned. By reading the image data + from right to left the image is mirrored. Valid options are "yes" and + "no". The default is "no". + + The +-.I --speed ++.I \-\-speed + option can improve the scan speed in monochrome mode. Valid options are + "yes" or "no", the "yes" option will speed up the scan if this option + is supported. + + The +-.I --auto-area-segmentation ++.I \-\-auto\-area\-segmentation + switch activates the automatic area segmentation for monochrome scans. The + scanner will try to determine which areas are text and which contain + images. The image areas will be halftoned, and the text will be + improved. Valid options are "yes" and "no". The default is "yes". + + The +-.I --gamma-table ++.I \-\-gamma\-table + parameter can be used to download a user defined gamma table. The option + takes 256 values from the range 0-255. In color mode this option equally + affects the red, green, and blue channel. + + The +-.I --red-gamma-table ++.I \-\-red\-gamma\-table + parameter can be used to download a user defined gamma table for the +-red channel. The valid options are the same as for --gamma-table. ++red channel. The valid options are the same as for \-\-gamma\-table. + + The +-.I --green-gamma-table ++.I \-\-green\-gamma\-table + parameter can be used to download a user defined gamma table for the +-green channel. The valid options are the same as for --gamma-table. ++green channel. The valid options are the same as for \-\-gamma\-table. + + The +-.I --blue-gamma-table ++.I \-\-blue\-gamma\-table + parameter can be used to download a user defined gamma table for the +-blue channel. The valid options are the same as for --gamma-table. ++blue channel. The valid options are the same as for \-\-gamma\-table. + + The color correction coefficients +-.I --cct-1 --cct-2 --cct-3 ... --cct-9 ++.I \-\-cct\-1 \-\-cct\-2 \-\-cct\-3 ... \-\-cct\-9 + will install color correction coefficients for the user defined color +-correction. Values are specified as integers in the range -127..127. ++correction. Values are specified as integers in the range \-127..127. + + The +-.I --preview ++.I \-\-preview + option requests a preview scan. The frontend software automatically selects a low + resolution. Valid options are "yes" and "no". The default is "no". + + The +-.I --preview-speed ++.I \-\-preview\-speed + options will increase the scan speed if this is supported by the + scanner. Valid options are "yes" and "no", the default is "no". + + + The geometry options +-.I -l -t -x -y +-control the scan area: -l sets the top left x coordinate, -t the top +-left y coordinate, -x selects the width and -y the height of the scan ++.I \-l \-t \-x \-y ++control the scan area: \-l sets the top left x coordinate, \-t the top ++left y coordinate, \-x selects the width and \-y the height of the scan + area. All parameters are specified in millimeters. + + The +-.I --quick-format ++.I \-\-quick\-format + option lets the user select a scan area with predefined sizes. Valid + parameters are "CD", "A5 portrait", "A5 landscape", "Letter", "A4" and + "max". The default is "max", which selects the largest possible area. + + The +-.I --source ++.I \-\-source + option selects the scan source. Valid options depend on the installed + options. The default is "Flatbed". + + The +-.I --auto-eject ++.I \-\-auto\-eject + option will eject a page after scanning from the document feeder. + + The +-.I --film-type ++.I \-\-film\-type + option will select the film type for scans with the transparency + unit. This option is only activated if the TPU is selected as scan + source. Valid options are "Negative Film" and "Positive Film". + + The +-.I --focus-position ++.I \-\-focus\-position + option selects the focus position for all scans. Valid options are "Focus + 2.5mm above glass" and "Focus on glass". The focus on the 2.5mm point + above the glass is necessary for scans with the transparency unit, so +@@ -228,7 +228,7 @@ + .I SCSI + This is the default, and if nothing else is specified the backend software will + open a given path as SCSI device. More information about valid syntax for SCSI +-devices can be found in sane-scsi(5). ++devices can be found in sane\-scsi(5). + .br + Usually SCSI scanners are configured with a line "scsi EPSON" in this file. In + some cases it may be necessary to only use the string "scsi" (e.g. for the GT-6500). +@@ -249,10 +249,10 @@ + device files. + .SH FILES + .TP +-.I @LIBDIR@/libsane-epson.a ++.I @LIBDIR@/libsane\-epson.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-epson.so ++.I @LIBDIR@/libsane\-epson.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -275,7 +275,7 @@ + + .SH "SEE ALSO" + +-sane-scsi(5), scanimage(1), xscanimage(1), xsane(1) ++sane\-scsi(5), scanimage(1), xscanimage(1), xsane(1) + + .SH BUGS + +diff -urNad sane-backends-1.0.19~/doc/sane-find-scanner.man sane-backends-1.0.19/doc/sane-find-scanner.man +--- sane-backends-1.0.19~/doc/sane-find-scanner.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-find-scanner.man 2008-07-20 12:34:23.073539311 +0200 +@@ -1,20 +1,20 @@ +-.TH sane-find-scanner 1 "4 Oct 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-find-scanner ++.TH sane\-find\-scanner 1 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-find\-scanner + .SH NAME +-sane-find-scanner \- find SCSI and USB scanners and their device files ++sane\-find\-scanner \- find SCSI and USB scanners and their device files + .SH SYNOPSIS +-.B sane-find-scanner +-.RB [ -h | -? ] +-.RB [ -v ] +-.RB [ -q ] +-.RB [ -p ] +-.RB [ -f ] +-.RB [ -F ++.B sane\-find\-scanner ++.RB [ \-h | \-? ] ++.RB [ \-v ] ++.RB [ \-q ] ++.RB [ \-p ] ++.RB [ \-f ] ++.RB [ \-F + .IR filename ] + .RI [ devname ] + + .SH DESCRIPTION +-.B sane-find-scanner ++.B sane\-find\-scanner + is a command-line tool to find SCSI and USB scanners and determine their Unix + device files. Its primary aim is to make sure that scanners can be detected by + SANE backends. +@@ -28,7 +28,7 @@ + The test is done by sending a SCSI inquiry command and looking for a device + type of "scanner" or "processor" (some old HP scanners seem to send + "processor"). So +-.B sane-find-scanner ++.B sane\-find\-scanner + will find any SCSI scanner connected to those default device files even if it + isn't supported by any SANE backend. + .PP +@@ -43,52 +43,52 @@ + if the operating system supports this feature. Currently USB scanners are only + found this way if they are supported by the Linux scanner module or the + FreeBSD or OpenBSD uscanner driver. After that test, +-.B sane-find-scanner ++.B sane\-find\-scanner + tries to scan for USB devices found by the USB library libusb (if + available). There is no special USB class for scanners, so the heuristics used + to distinguish scanners from other USB devices is not + perfect. +-.B sane-find-scanner ++.B sane\-find\-scanner + also tries to find out the type of USB chip used in the scanner. If detected, + it will be printed after the vendor and product ids. +-.B sane-find-scanner ++.B sane\-find\-scanner + will even find USB scanners, that are not supported by any SANE backend. + .PP +-.B sane-find-scanner ++.B sane\-find\-scanner + won't find most + parallel port scanners, or scanners connected to proprietary ports. Some + .B parallel port + scanners may be detected by +-.B sane-find-scanner -p. ++.B sane\-find\-scanner -p. + At the time of writing this will only detect Mustek parallel port scanners. + + .SH OPTIONS + .TP 8 +-.B -h, -? ++.B \-h, \-? + Prints a short usage message. + .TP 8 +-.B -v ++.B \-v + Verbose output. If used once, +-.B sane-find-scanner ++.B sane\-find\-scanner + shows every device name and the test result. If used twice, SCSI inquiry + information and the USB device descriptors are also printed. + .TP 8 +-.B -q ++.B \-q + Be quiet. Print only the devices, no comments. + .TP 8 +-.B -p ++.B \-p + Probe parallel port scanners. + .TP 8 +-.B -f ++.B \-f + Force opening all explicitly given devices as SCSI and USB devices. That's + useful if +-.B sane-find-scanner ++.B sane\-find\-scanner + is wrong in determining the device type. + .TP 8 +-.B -F filename ++.B \-F filename + filename is a file that contains USB descriptors in the format of + /proc/bus/usb/devices as used by Linux. +-.B sane-find-scanner ++.B sane\-find\-scanner + tries to identify the chipset(s) of all USB scanners found in such a file. This + option is useful for developers when the output of "cat /proc/bus/usb/devices" + is available but the scanner itself isn't. +@@ -96,26 +96,26 @@ + .B devname + Test device file "devname". No other devices are checked if devname is given. + .SH EXAMPLE +-.B sane-find-scanner -v ++.B sane\-find\-scanner \-v + .br + Check all SCSI and USB devices for available scanners and print a line for + every device file. + .PP +-.B sane-find-scanner /dev/scanner ++.B sane\-find\-scanner /dev/scanner + .br + Look for a (SCSI) scanner only at /dev/scanner and print the result. + .PP +-.B sane-find-scanner -p ++.B sane\-find\-scanner \-p + .br + Probe for parallel port scanners. + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-scsi (5), +-.BR sane-usb (5), ++.BR sane\-scsi (5), ++.BR sane\-usb (5), + .BR scanimage (1), + .BR xscanimage (1), + .BR xsane (1), +-.BR sane-"backendname" (5) ++.BR sane\-"backendname" (5) + + .SH AUTHOR + Oliver Rauch, Henning Meier-Geinitz and others +diff -urNad sane-backends-1.0.19~/doc/sane-fujitsu.man sane-backends-1.0.19/doc/sane-fujitsu.man +--- sane-backends-1.0.19~/doc/sane-fujitsu.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-fujitsu.man 2008-07-20 12:34:23.073539311 +0200 +@@ -1,12 +1,12 @@ +-.TH sane-fujitsu 5 "2007-07-14" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-fujitsu ++.TH sane\-fujitsu 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-fujitsu + + .SH NAME +-sane-fujitsu \- SANE backend for Fujitsu flatbed and ADF scanners ++sane\-fujitsu \- SANE backend for Fujitsu flatbed and ADF scanners + + .SH DESCRIPTION + The +-.B sane-fujitsu ++.B sane\-fujitsu + library implements a SANE (Scanner Access Now Easy) backend which + provides access to most Fujitsu flatbed and ADF scanners. + +@@ -123,11 +123,11 @@ + .PP + resolution, y-resolution + .RS +-Controls scan resolution. Setting --resolution also sets --y-resolution, ++Controls scan resolution. Setting \-\-resolution also sets \-\-y\-resolution, + though this behavior is overridden by some frontends. + .RE + .PP +-tl-x, tl-y, br-x, br-y ++tl\-x, tl\-y, br\-x, br\-y + .RS + Sets scan area upper left and lower right coordinates. These are renamed + t, l, x, y by some frontends. +@@ -140,7 +140,7 @@ + .RE + .PP + Other options will be available based on the capabilities of the scanner. +-Use 'scanimage --help' to get a list. Be aware that some options may ++Use 'scanimage \-\-help' to get a list. Be aware that some options may + appear only when another option has been set, and that advanced options + may be hidden by the frontend. + .PP +@@ -179,7 +179,7 @@ + Some systems use a kernel driver to access usb scanners. This method is untested. + .RE + .PP +-The only configuration option supported is "buffer-size=xxx", allowing you ++The only configuration option supported is "buffer\-size=xxx", allowing you + to set the number of bytes in the data buffer to something other than the + compiled-in default, 65536 (64K). Some users report that their scanner will + "hang" mid-page, or fail to transmit the image if the buffer is not large +@@ -263,10 +263,10 @@ + + .SH "SEE ALSO" + sane(7), +-sane-scsi(5), +-sane-usb(5), +-sane-sp15c(5), +-sane-avision(5) ++sane\-scsi(5), ++sane\-usb(5), ++sane\-sp15c(5), ++sane\-avision(5) + + .SH AUTHOR + m. allan noah: +diff -urNad sane-backends-1.0.19~/doc/sane-genesys.man sane-backends-1.0.19/doc/sane-genesys.man +--- sane-backends-1.0.19~/doc/sane-genesys.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-genesys.man 2008-07-20 12:34:23.073539311 +0200 +@@ -1,10 +1,10 @@ +-.\" .IX sane-genesys +-.TH "sane-genesys" "5" "20 Nov 2005" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.\" .IX sane\-genesys ++.TH "sane\-genesys" "5" "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" + .SH "NAME" +-sane-genesys \- SANE backend for GL646 and GL841 based USB flatbed scanners ++sane\-genesys \- SANE backend for GL646 and GL841 based USB flatbed scanners + .SH "DESCRIPTION" + The +-.B sane-genesys ++.B sane\-genesys + library implements a SANE (Scanner Access Now Easy) backend that provides + access to USB flatbed scanners based on the Genesys GL646 and GL841 chips. + At present, the following scanners are known to work with this backend: +@@ -28,8 +28,8 @@ + backend, please let me know this by sending the scanner's exact model name and + the USB vendor and device ids (e.g. from + .I /proc/bus/usb/devices , +-.I sane-find-scanner +-or syslog) to the sane-devel mailing list. Even if the scanner's name is only ++.I sane\-find\-scanner ++or syslog) to the sane\-devel mailing list. Even if the scanner's name is only + slightly different from the models mentioned above, please let me know. + .PP + If you own a scanner that isn't detected by the genesys backend but has a GL646 +@@ -40,7 +40,7 @@ + configuration than a linux kernel 2.6.9 or higher. However, it should work any + system with libusb where the SANE package can be compiled. For + setting permissions and general USB information look at +-.BR sane-usb (5). ++.BR sane\-usb (5). + + + .SH "CONFIGURATION" +@@ -64,10 +64,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-genesys.a ++.I @LIBDIR@/libsane\-genesys.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-genesys.so ++.I @LIBDIR@/libsane\-genesys.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH "ENVIRONMENT" +@@ -110,14 +110,14 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5) ++.BR sane\-usb (5) + .br + + + .SH "AUTHOR" + Oliver Rauch + .br +-Henning Meier-Geinitz ++Henning Meier-Geinitz + .br + Gerhard Jaeger + .br +diff -urNad sane-backends-1.0.19~/doc/sane-gphoto2.man sane-backends-1.0.19/doc/sane-gphoto2.man +--- sane-backends-1.0.19~/doc/sane-gphoto2.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-gphoto2.man 2008-07-20 12:34:23.074539622 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-gphoto2 5 "04 September 2001" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-gphoto2 ++.TH sane\-gphoto2 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-gphoto2 + .SH NAME +-sane-gphoto2 \- SANE backend for gphoto2 supported cameras ++sane\-gphoto2 \- SANE backend for gphoto2 supported cameras + .SH DESCRIPTION + The +-.B sane-gphoto2 ++.B sane\-gphoto2 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to the digital cameras supported by gphoto2. + This backend has only been tested with a handful of cameras so far. Patches +@@ -13,7 +13,7 @@ + Because of the limited testing of this backend, it is commented out + in @CONFIGDIR@/dll.conf by default. Either the comment + character must be removed or the backend must be called explicitly. +-E.g. `scanimage -d gphoto2' or `xscanimage gphoto2'. ++E.g. `scanimage \-d gphoto2' or `xscanimage gphoto2'. + .SH "DEVICE NAMES" + The current version of the backend only allows one camera to be + connected. The device name is always "0". +@@ -24,7 +24,7 @@ + (high resolution, low resolution, and thumbnail size) are + required since they are needed by the sane frontends, but can't be obtained + through the gphoto2 interface. Valid ports and cameras can be obtained +-by "gphoto2 --list-cameras" and "gphoto2 --list-ports". ++by "gphoto2 \-\-list\-cameras" and "gphoto2 \-\-list\-ports". + .PP + The dumpinquiry line causes some information about the camera to + be printed. +@@ -65,10 +65,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-gphoto2.a ++.I @LIBDIR@/libsane\-gphoto2.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-gphoto2.so ++.I @LIBDIR@/libsane\-gphoto2.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -112,7 +112,7 @@ + .PP + More general comments, suggestions, and inquiries about frontends + or SANE should go to the SANE Developers mailing list +-(see http://www.sane-project.org/mailing-lists.html for details). ++(see http://www.sane\-project.org/mailing\-lists.html for details). + You must be subscribed to the list, otherwise your mail won't be + sent to the subscribers. + +diff -urNad sane-backends-1.0.19~/doc/sane-gt68xx.man sane-backends-1.0.19/doc/sane-gt68xx.man +--- sane-backends-1.0.19~/doc/sane-gt68xx.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-gt68xx.man 2008-07-20 12:34:23.074539622 +0200 +@@ -1,15 +1,15 @@ +-.TH sane-gt68xx 5 "29 September 2005" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-gt68xx ++.TH sane\-gt68xx 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-gt68xx + .SH NAME +-sane-gt68xx \- SANE backend for GT-68XX based USB flatbed scanners ++sane\-gt68xx \- SANE backend for GT-68XX based USB flatbed scanners + .SH DESCRIPTION + The +-.B sane-gt68xx ++.B sane\-gt68xx + library implements a SANE (Scanner Access Now Easy) backend that provides + access to USB flatbed scanners based on the Grandtech GT-6801 and GT-6816 + chips. A list of supported scanners can be found on the gt68xx backend + homepage: +-.IR http://www.meier-geinitz.de/sane/gt68xx-backend/ . ++.IR http://www.meier\-geinitz.de/sane/gt68xx\-backend/ . + .PP + This is BETA software. Especially if you test new or untested scanners, keep + your hand at the scanner's plug and unplug it, if the head bumps at the end of +@@ -18,21 +18,21 @@ + If you own a scanner other than the ones listed on the gt68xx homepage that works with this + backend, please let me know this by sending the scanner's exact model name and + the USB vendor and device ids (e.g. from +-.I sane-find-scanner ++.I sane\-find\-scanner + or syslog) to me. Even if the scanner's name is only slightly different from + the models already listed as supported, please let me know. + .PP + If you own a scanner that isn't detected by the gt68xx backend but has a GT-6801 + or GT-6816 chipset, you can try to add it to the backend. Have a look at the + following web page: +-.I http://www.meier-geinitz.de/sane/gt68xx-backend/adding.html ++.I http://www.meier\-geinitz.de/sane/gt68xx\-backend/adding.html + .PP + .SH LIBUSB ISSUES + Please use libusb-0.1.8 or later. Without libusb or with older libusb versions + all kinds of trouble can be expected. The scanner should be found by +-sane-find-scanner without further actions. For setting permissions and general ++sane\-find\-scanner without further actions. For setting permissions and general + USB information looks at +-.BR sane-usb (5). ++.BR sane\-usb (5). + .PP + + .SH FIRMWARE FILE +@@ -83,14 +83,14 @@ + scanners that use the same vendor/product ids but are different. For these + scanners there are already commented out override lines in the configuration + file. +-.B override "mustek-scanexpress-1200-ub-plus" ++.B override "mustek\-scanexpress\-1200\-ub\-plus" + is necessary for the Mustek Scanexpress 1200 UB Plus, the + Medion/Lifetec/Tevion LT 9452, and the Trust Compact Scan USB 19200. +-.B override "artec-ultima-2000" ++.B override "artec\-ultima\-2000" + is used for the Artec Ultima 2000, the Boeder SmartScan Slim Edition, the + Medion/ Lifetec/ Tevion/ Cytron MD/LT 9385, the Medion/ Lifetec/ Tevion MD + 9458, and the Trust Flat Scan USB 19200. +-.B override "mustek-bearpaw-2400-cu" ++.B override "mustek\-bearpaw\-2400\-cu" + is necessary for the Mustek BearPaw 2400 CU and the Fujitsu 1200CUS. The + .B override + option must be the first one after the +@@ -131,7 +131,7 @@ + .RS + usb 0x05d8 0x4002 + .br +-override "mustek-scanexpress-1200-ub-plus" ++override "mustek\-scanexpress\-1200\-ub\-plus" + .br + firmware "/opt/gt68xx/SBfw.usb" + .br +@@ -149,10 +149,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-gt68xx.a ++.I @LIBDIR@/libsane\-gt68xx.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-gt68xx.so ++.I @LIBDIR@/libsane\-gt68xx.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -183,20 +183,20 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5), +-.BR sane-artec_eplus48u (5) +-.BR sane-plustek (5), +-.BR sane-ma1509 (5), +-.BR sane-mustek_usb (5), +-.BR sane-mustek (5), +-.BR sane-mustek_pp (5) ++.BR sane\-usb (5), ++.BR sane\-artec_eplus48u (5) ++.BR sane\-plustek (5), ++.BR sane\-ma1509 (5), ++.BR sane\-mustek_usb (5), ++.BR sane\-mustek (5), ++.BR sane\-mustek_pp (5) + .br + .I @DOCDIR@/gt68xx/gt68xx.CHANGES + .br +-.I http://www.meier-geinitz.de/sane/gt68xx ++.I http://www.meier\-geinitz.de/sane/gt68xx + + .SH AUTHOR +-Henning Meier-Geinitz ++Henning Meier-Geinitz + .br + The original gt68xx driver was written by Sergey Vlasov, Andreas Nowack, and + David Stevenson. Thanks for sending patches and answering questions to them +@@ -212,7 +212,7 @@ + Support for buttons is missing. + .PP + More detailed bug information is available at the gt68xx backend homepage +-.IR http://www.meier-geinitz.de/sane/gt68xx-backend/ . ++.IR http://www.meier\-geinitz.de/sane/gt68xx\-backend/ . + Please contact us if you find a bug or missing feature: +-. Please send a debug log if your scanner isn't ++. Please send a debug log if your scanner isn't + detected correctly (see SANE_DEBUG_GT68XX above). +diff -urNad sane-backends-1.0.19~/doc/sane-hp.man sane-backends-1.0.19/doc/sane-hp.man +--- sane-backends-1.0.19~/doc/sane-hp.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-hp.man 2008-07-20 12:34:23.074539622 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-hp 5 "27 Mar 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-hp ++.TH sane\-hp 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-hp + .SH NAME +-sane-hp \- SANE backend for HP ScanJet scanners ++sane\-hp \- SANE backend for HP ScanJet scanners + .SH DESCRIPTION + The +-.B sane-hp ++.B sane\-hp + library implements a SANE (Scanner Access Now Easy) backend that + provides access to HP ScanJet scanners which support SCL (Scanner + Control Language by HP). The following +@@ -47,7 +47,7 @@ + .PP + Support for models 5200C/62X0C/63X0C connected to the USB require + the kernel scanner driver or libusb. See +-.BR sane-usb (5) ++.BR sane\-usb (5) + for more details. + .PP + The "hp" backend no longer supports OfficeJet multi-function peripherals. +@@ -62,9 +62,9 @@ + complete. + Other HP scanners are not supported by the "hp" backend, but might be supported + by another one. See +-.IR http://www.sane-project.org/ . +-You can also watch the sane-devel mailing list at +-.IR http://www.sane-project.org/mailing-lists.html . ++.IR http://www.sane\-project.org/ . ++You can also watch the sane\-devel mailing list at ++.IR http://www.sane\-project.org/mailing\-lists.html . + .PP + More details about the hp backend can be found on its homepage + .IR http://www.kirchgessner.net/sane.html . +@@ -91,7 +91,7 @@ + scanner. That is + .IR /dev/hpscan . + A special driver is required for this card. +-See ftp://rvs.ctrl-c.liu.se/pub/wingel/hpscan for details. If the link ++See ftp://rvs.ctrl\-c.liu.se/pub/wingel/hpscan for details. If the link + does not work, try ftp://sunsite.unc.edu/pub/Linux/kernel/patches/scanners. + .SH CONFIGURATION + The contents of the +@@ -99,9 +99,9 @@ + file is a list of options and device names that correspond to HP ScanJet + scanners. Empty lines and lines starting with a hash mark + (#) are ignored. See +-.BR sane-scsi (5) ++.BR sane\-scsi (5) + and +-.BR sane-usb (5) ++.BR sane\-usb (5) + on details of what constitutes a valid device name. + .PP + Options specified in front of the first line that contains a device name +@@ -109,37 +109,37 @@ + contains a device name apply just to the most recently mentioned device. + .PP + Supported options are +-.BR connect-scsi , +-.BR connect-device , +-.BR enable-image-buffering , ++.BR connect\-scsi , ++.BR connect\-device , ++.BR enable\-image\-buffering , + and +-.BR dumb-read . ++.BR dumb\-read . + + Option +-.B connect-scsi ++.B connect\-scsi + specifies that the scanner is connected to the system by SCSI. + Input/output is performed using SCSI-commands. This is the default. + But if your SCSI device name contains "usb", "uscanner" or "ugen", +-option connect-scsi must be specified. Otherwise it is assumed that ++option connect\-scsi must be specified. Otherwise it is assumed that + the scanner is connected by USB. + + Option +-.B connect-device ++.B connect\-device + specifies that the scanner is connected to the system by a special + device. Input/output is performed by read()/write()-operations + on the device. This option must be used for HP ScanJet Plus + or scanners connected to USB which are accessed through a named device + (e.g. /dev/usb/scanner0). + For device names that contain "usb", "uscanner" or "ugen", it is not +-necessary to specify option connect-device. ++necessary to specify option connect\-device. + + Option +-.B enable-image-buffering ++.B enable\-image\-buffering + stores the scanned image in memory before passing it to the frontend. Could be + used in case of forward/backward moving scanner lamp. + + Option +-.B dumb-read ++.B dumb\-read + can be used to work around problems with "Error during device I/O". These + problems may occur with certain SCSI-to-USB converters or Buslogic SCSI cards. + The option should not be used for SCSI devices which are working correctly. +@@ -153,7 +153,7 @@ + /dev/scanner + # this is a comment + /dev/hpscan +- option connect-device ++ option connect\-device + .fi + .ft R + .RE +@@ -167,10 +167,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-hp.a ++.I @LIBDIR@/libsane\-hp.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-hp.so ++.I @LIBDIR@/libsane\-hp.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .TP +@@ -211,7 +211,7 @@ + .B SANE_HP_KEEPOPEN_USB + .TP + .B SANE_HP_KEEPOPEN_DEVICE +-For each type of connection (connect-scsi, connect-usb, connect-device) ++For each type of connection (connect\-scsi, connect\-usb, connect\-device) + it can be specified if the connection to the device should be kept open ("1") + or not ("0"). + Usually the connections are closed after an operation is performed. +@@ -267,7 +267,7 @@ + is supported by the ppSCSI-driver (see above). + + .SH "SEE ALSO" +-sane(7), sane-scsi(5), sane-usb(5) ++sane(7), sane\-scsi(5), sane\-usb(5) + .SH AUTHOR +-The sane-hp backend was written by Geoffrey T. Dairiki. HP PhotoSmart ++The sane\-hp backend was written by Geoffrey T. Dairiki. HP PhotoSmart + PhotoScanner support by Peter Kirchgessner. +diff -urNad sane-backends-1.0.19~/doc/sane-hp3500.man sane-backends-1.0.19/doc/sane-hp3500.man +--- sane-backends-1.0.19~/doc/sane-hp3500.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-hp3500.man 2008-07-20 12:34:23.074539622 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-hp3500 5 "27 Nov 2005" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-hp3500 ++.TH sane\-hp3500 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-hp3500 + .SH NAME +-sane-hp3500 \- SANE backend for Hewlett-Packard ScanJet 3500 series scanners ++sane\-hp3500 \- SANE backend for Hewlett-Packard ScanJet 3500 series scanners + .SH DESCRIPTION + The +-.B sane-hp3500 ++.B sane\-hp3500 + library implements a SANE (Scanner Access Now Easy) backend that provides + access to the following Hewlett-Packard USB flatbed scanners: + .PP +@@ -20,17 +20,17 @@ + backend, please let us know this by sending the scanner's exact model name and + the USB vendor and device ids (e.g. from + .IR /proc/bus/usb/devices , +-.I sane-find-scanner ++.I sane\-find\-scanner + or syslog) to us. Even if the scanner's name is only slightly different from + the models mentioned above, please let us know. + .SH CONFIGURATION + None required. + .SH FILES + .TP +-.I @LIBDIR@/libsane-hp3500.a ++.I @LIBDIR@/libsane\-hp3500.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-hp3500.so ++.I @LIBDIR@/libsane\-hp3500.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -44,7 +44,7 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5), ++.BR sane\-usb (5), + .br + .I http://projects.troy.rollo.name/rt-scanners/ + +diff -urNad sane-backends-1.0.19~/doc/sane-hp3900.man sane-backends-1.0.19/doc/sane-hp3900.man +--- sane-backends-1.0.19~/doc/sane-hp3900.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-hp3900.man 2008-07-20 12:34:23.075539715 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-hp3900 5 "01 January 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-hp3900 ++.TH sane\-hp3900 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-hp3900 + .SH NAME +-sane-hp3900 \- SANE backend for RTS8822 chipset based scanners ++sane\-hp3900 \- SANE backend for RTS8822 chipset based scanners + .SH DESCRIPTION + The +-.B sane-hp3900 ++.B sane\-hp3900 + library implements a SANE (Scanner Access Now Easy) backend that provides + access at least to the following USB flatbed scanners: + .PP +@@ -25,7 +25,7 @@ + .RE + .PP + More details can be found on the hp3900 backend homepage +-.IR http://sourceforge.net/projects/hp3900-series/ . ++.IR http://sourceforge.net/projects/hp3900\-series/ . + .PP + This is ALPHA software. Keep your hand at the scanner's plug and unplug it, if + scanner does not start to scan. See also the BUGS section. +@@ -34,7 +34,7 @@ + backend, please let us know this by sending the scanner's exact model name and + the USB vendor and device ids (e.g. from + .IR /proc/bus/usb/devices , +-.I sane-find-scanner ++.I sane\-find\-scanner + or syslog) to us. Even if the scanner's name is only slightly different from + the models mentioned above, please let us know. + .PP +@@ -61,10 +61,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-hp3900.a ++.I @LIBDIR@/libsane\-hp3900.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-hp3900.so ++.I @LIBDIR@/libsane\-hp3900.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -93,9 +93,9 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5), ++.BR sane\-usb (5), + .br +-.I http://sourceforge.net/projects/hp3900-series/ ++.I http://sourceforge.net/projects/hp3900\-series/ + .I http://jkdsoftware.dyndns.org/drupal/?q=es/books/151 + + .SH AUTHOR +diff -urNad sane-backends-1.0.19~/doc/sane-hp4200.man sane-backends-1.0.19/doc/sane-hp4200.man +--- sane-backends-1.0.19~/doc/sane-hp4200.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-hp4200.man 2008-07-20 12:34:23.075539715 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-hp4200 5 "14 August 2005" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-hp4200 ++.TH sane\-hp4200 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-hp4200 + .SH NAME +-sane-hp4200 \- SANE backend for Hewlett-Packard 4200 scanners ++sane\-hp4200 \- SANE backend for Hewlett-Packard 4200 scanners + .SH DESCRIPTION + The +-.B sane-hp4200 ++.B sane\-hp4200 + library implements a SANE (Scanner Access Now Easy) backend that provides + access to the following Hewlett-Packard USB flatbed scanners: + .PP +@@ -17,7 +17,7 @@ + .RE + .PP + More details can be found on the hp4200 backend homepage +-.IR http://hp4200-backend.sourceforge.net/ . ++.IR http://hp4200\-backend.sourceforge.net/ . + .PP + This is BETA software. Keep your hand at the scanner's plug and unplug it, if + the head bumps at the end of the scan area. +@@ -26,7 +26,7 @@ + backend, please let us know this by sending the scanner's exact model name and + the USB vendor and device ids (e.g. from + .IR /proc/bus/usb/devices , +-.I sane-find-scanner ++.I sane\-find\-scanner + or syslog) to us. Even if the scanner's name is only slightly different from + the models mentioned above, please let us know. + .PP +@@ -54,10 +54,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-hp4200.a ++.I @LIBDIR@/libsane\-hp4200.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-hp4200.so ++.I @LIBDIR@/libsane\-hp4200.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -86,13 +86,13 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5), ++.BR sane\-usb (5), + .br +-.I http://hp4200-backend.sourceforge.net/ ++.I http://hp4200\-backend.sourceforge.net/ + + .SH AUTHOR + Adrian Perez Jorge, Andrew John Lewis, Arnar Mar Hrafnkelsson, Frank Zago, +-Henning Meier-Geinitz. Current maintainer: Henning Meier-Geinitz . ++Henning Meier-Geinitz. Current maintainer: Henning Meier-Geinitz . + + .SH BUGS + Tested only with Linux. +@@ -101,5 +101,5 @@ + .PP + Scanning is slow due to backtracking. + .PP +-Send bug reports to the sane-devel mailing list: +-sane-devel@lists.alioth.debian.org. ++Send bug reports to the sane\-devel mailing list: ++sane\-devel@lists.alioth.debian.org. +diff -urNad sane-backends-1.0.19~/doc/sane-hp5400.man sane-backends-1.0.19/doc/sane-hp5400.man +--- sane-backends-1.0.19~/doc/sane-hp5400.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-hp5400.man 2008-07-20 12:34:23.075539715 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-hp5400 5 "17 Apr 2003" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-hp5400 ++.TH sane\-hp5400 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-hp5400 + .SH NAME +-sane-hp5400 \- SANE backend for Hewlett-Packard 54XX scanners ++sane\-hp5400 \- SANE backend for Hewlett-Packard 54XX scanners + .SH DESCRIPTION + The +-.B sane-hp5400 ++.B sane\-hp5400 + library implements a SANE (Scanner Access Now Easy) backend that provides + access to the following Hewlett-Packard USB flatbed scanners: + .PP +@@ -26,7 +26,7 @@ + backend, please let us know this by sending the scanner's exact model name and + the USB vendor and device ids (e.g. from + .IR /proc/bus/usb/devices , +-.I sane-find-scanner ++.I sane\-find\-scanner + or syslog) to us. Even if the scanner's name is only slightly different from + the models mentioned above, please let us know. + .PP +@@ -54,10 +54,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-hp5400.a ++.I @LIBDIR@/libsane\-hp5400.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-hp5400.so ++.I @LIBDIR@/libsane\-hp5400.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -86,14 +86,14 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5), ++.BR sane\-usb (5), + .br + .I http://hp5400backend.sourceforge.net/ + + .SH AUTHOR + Martijn van Oosterhout , Thomas Soumarmon + . Manpage by Henning Meier-Geinitz +-. ++. + + .SH BUGS + Scanning is only tested with Linux/ix86/gcc. Be careful when testing on other +diff -urNad sane-backends-1.0.19~/doc/sane-hp5590.man sane-backends-1.0.19/doc/sane-hp5590.man +--- sane-backends-1.0.19~/doc/sane-hp5590.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-hp5590.man 2008-07-20 12:34:23.075539715 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-hp5590 5 "9 Apr 2007" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-hp5590 ++.TH sane\-hp5590 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-hp5590 + .SH NAME +-sane-hp5590 \- SANE backend for Hewlett-Packard 5550/5590/7650 Workgroup/Document scanners ++sane\-hp5590 \- SANE backend for Hewlett-Packard 5550/5590/7650 Workgroup/Document scanners + .SH DESCRIPTION + The +-.B sane-hp5590 ++.B sane\-hp5590 + library implements a SANE (Scanner Access Now Easy) backend that provides + access to the following Hewlett-Packard Workgroup/Document scanners: + .PP +@@ -20,17 +20,17 @@ + backend, please let us know this by sending the scanner's exact model name and + the USB vendor and device ids (e.g. from + .IR /proc/bus/usb/devices , +-.I sane-find-scanner ++.I sane\-find\-scanner + or syslog) to us. Even if the scanner's name is only slightly different from + the models mentioned above, please let us know. + .SH CONFIGURATION + None required. + .SH FILES + .TP +-.I @LIBDIR@/libsane-hp5590.a ++.I @LIBDIR@/libsane\-hp5590.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-hp5590.so ++.I @LIBDIR@/libsane\-hp5590.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -56,7 +56,7 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5), ++.BR sane\-usb (5), + + .SH AUTHOR + Ilia Sotnikov +diff -urNad sane-backends-1.0.19~/doc/sane-hpljm1005.man sane-backends-1.0.19/doc/sane-hpljm1005.man +--- sane-backends-1.0.19~/doc/sane-hpljm1005.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-hpljm1005.man 2008-07-20 12:34:23.076539767 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-hpljm1005 5 "15 Jan 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-hpljm1005 ++.TH sane\-hpljm1005 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-hpljm1005 + .SH NAME +-sane-hpljm1005 \- SANE backend for Hewlett-Packard LaserJet M1005 MFP Scanner ++sane\-hpljm1005 \- SANE backend for Hewlett-Packard LaserJet M1005 MFP Scanner + .SH DESCRIPTION + The +-.B sane-hpljm1005 ++.B sane\-hpljm1005 + library implements a SANE (Scanner Access Now Easy) backend that provides + access to the following Hewlett-Packard scanner: + .PP +@@ -16,22 +16,22 @@ + backend, please let us know this by sending the scanner's exact model name and + the USB vendor and device ids (e.g. from + .IR /proc/bus/usb/devices , +-.I sane-find-scanner ++.I sane\-find\-scanner + or syslog) to us. Even if the scanner's name is only slightly different from + the models mentioned above, please let us know. + .SH CONFIGURATION + None required. + .SH FILES + .TP +-.I @LIBDIR@/libsane-hpljm1005.a ++.I @LIBDIR@/libsane\-hpljm1005.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-hpljm1005.so ++.I @LIBDIR@/libsane\-hpljm1005.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5), ++.BR sane\-usb (5), + + .SH AUTHOR + Philippe Rtornaz +diff -urNad sane-backends-1.0.19~/doc/sane-hpsj5s.man sane-backends-1.0.19/doc/sane-hpsj5s.man +--- sane-backends-1.0.19~/doc/sane-hpsj5s.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-hpsj5s.man 2008-07-20 12:34:23.076539767 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-hpsj5s 5 "24 Feb 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-hpsj5s ++.TH sane\-hpsj5s 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-hpsj5s + .SH NAME +-sane-hpsj5s \- SANE backend for HP ScanJet 5S sheet-fed scanner ++sane\-hpsj5s \- SANE backend for HP ScanJet 5S sheet-fed scanner + .SH DESCRIPTION + The +-.B sane-hpsj5s ++.B sane\-hpsj5s + library implements a SANE (Scanner Access Now Easy) backend that + provides access to a parallel port Hewlett-Packard ScanJet 5S scanner. + .PP +@@ -67,10 +67,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-hpsj5s.a ++.I @LIBDIR@/libsane\-hpsj5s.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-hpsj5s.so ++.I @LIBDIR@/libsane\-hpsj5s.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +diff -urNad sane-backends-1.0.19~/doc/sane-hs2p.man sane-backends-1.0.19/doc/sane-hs2p.man +--- sane-backends-1.0.19~/doc/sane-hs2p.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-hs2p.man 2008-07-20 12:34:23.076539767 +0200 +@@ -1,14 +1,14 @@ +-.TH sane-hs2p 5 "01 Nov 2007" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-hs2p ++.TH sane\-hs2p 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-hs2p + .SH NAME +-sane-hs2p \- SANE backend for Ricoh SCSI flatbed/ADF scanners ++sane\-hs2p \- SANE backend for Ricoh SCSI flatbed/ADF scanners + .SH DESCRIPTION + The +-.B sane-hs2p ++.B sane\-hs2p + library implements a SANE (Scanner Access Now Easy) backend that provides + access to the Ricoh IS450 family of scanners. Should also work with the IS420, + IS410, and IS430 scanners, but these are untested. +-Please contact the maintainer or the sane-devel mailing list if you own such a scanner. ++Please contact the maintainer or the sane\-devel mailing list if you own such a scanner. + .PP + This backend is alpha-quality. It may have bugs and some scanners haven't been + tested at all. Be careful and pull the plug if the scanner causes unusual +@@ -25,13 +25,13 @@ + .I special + is either the path-name for the special device that corresponds to a SCSI + scanner. The program +-.I sane-find-scanner ++.I sane\-find\-scanner + helps to find out the correct device. Under Linux, such a device name could be + .I /dev/sg0 + or + .IR /dev/sga , + for example. See +-.BR sane-scsi (5) ++.BR sane\-scsi (5) + for details. + + .SH CONFIGURATION +@@ -40,7 +40,7 @@ + file is a list of device names that correspond to SCSI + scanners. Empty lines and lines starting with a hash mark (#) are + ignored. See +-.BR sane-scsi (5) ++.BR sane\-scsi (5) + on details of what constitutes a valid device name. + + .SH FILES +@@ -50,10 +50,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-hs2p.a ++.I @LIBDIR@/libsane\-hs2p.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-hs2p.so ++.I @LIBDIR@/libsane\-hs2p.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -111,8 +111,8 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-find-scanner (1), +-.BR sane-scsi (5), ++.BR sane\-find\-scanner (1), ++.BR sane\-scsi (5), + + .SH AUTHOR + jeremy +diff -urNad sane-backends-1.0.19~/doc/sane-ibm.man sane-backends-1.0.19/doc/sane-ibm.man +--- sane-backends-1.0.19~/doc/sane-ibm.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-ibm.man 2008-07-20 12:34:23.076539767 +0200 +@@ -1,14 +1,14 @@ +-.TH sane-ibm 5 "15 Apr 2003" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-ibm ++.TH sane\-ibm 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-ibm + .SH NAME +-sane-ibm \- SANE backend for IBM and Ricoh SCSI flatbed scanners ++sane\-ibm \- SANE backend for IBM and Ricoh SCSI flatbed scanners + .SH DESCRIPTION + The +-.B sane-ibm ++.B sane\-ibm + library implements a SANE (Scanner Access Now Easy) backend that provides + access to the IBM 2456 and the Ricoh IS-410, IS-420, and IS-430 flatbed + scanners. Support for the IS-410 and IS-430 is untested. Please contact the +-maintainer or the sane-devel mailing list if you own such a scanner. ++maintainer or the sane\-devel mailing list if you own such a scanner. + .PP + This backend is alpha-quality. It may have bugs and some scanners haven't been + tested at all. Be careful and pull the plug if the scanner causes unusual +@@ -25,13 +25,13 @@ + .I special + is either the path-name for the special device that corresponds to a SCSI + scanner. The program +-.I sane-find-scanner ++.I sane\-find\-scanner + helps to find out the correct device. Under Linux, such a device name could be + .I /dev/sg0 + or + .IR /dev/sga , + for example. See +-.BR sane-scsi (5) ++.BR sane\-scsi (5) + for details. + + .SH CONFIGURATION +@@ -40,7 +40,7 @@ + file is a list of device names that correspond to SCSI + scanners. Empty lines and lines starting with a hash mark (#) are + ignored. See +-.BR sane-scsi (5) ++.BR sane\-scsi (5) + on details of what constitutes a valid device name. + + .SH FILES +@@ -50,10 +50,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-ibm.a ++.I @LIBDIR@/libsane\-ibm.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-ibm.so ++.I @LIBDIR@/libsane\-ibm.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -79,10 +79,10 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-find-scanner (1), +-.BR sane-scsi (5), ++.BR sane\-find\-scanner (1), ++.BR sane\-scsi (5), + + .SH AUTHOR + mf + .br +-Maintained by Henning Meier-Geinitz ++Maintained by Henning Meier-Geinitz +diff -urNad sane-backends-1.0.19~/doc/sane-leo.man sane-backends-1.0.19/doc/sane-leo.man +--- sane-backends-1.0.19~/doc/sane-leo.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-leo.man 2008-07-20 12:34:23.077539774 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-leo 5 "16 April 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-leo ++.TH sane\-leo 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-leo + .SH NAME +-sane-leo \- SANE backend for LEO Technologies scanners ++sane\-leo \- SANE backend for LEO Technologies scanners + .SH DESCRIPTION + The +-.B sane-leo ++.B sane\-leo + library implements a SANE (Scanner Access Now Easy) backend that + provides access to some LEO SCSI flatbed scanners. This backend + should be considered +@@ -34,14 +34,14 @@ + + Valid command line options and their syntax can be listed by using + .RS +-scanimage --help -d leo ++scanimage \-\-help \-d leo + .RE + + .TP + .B Scan Mode + + .TP +-.B --mode ++.B \-\-mode + selects the basic mode of operation of the scanner valid choices are + .I Black & White + , +@@ -53,7 +53,7 @@ + color image. + + .TP +-.B --resolution ++.B \-\-resolution + selects the resolution for a scan. The scanner can do all resolutions + between 1 and 300, in increments of 1. + +@@ -62,9 +62,9 @@ + .B Geometry options + + .TP +-.B -l -t -x -y +-control the scan area: -l sets the top left x coordinate, -t the top +-left y coordinate, -x selects the width and -y the height of the scan ++.B \-l \-t \-x \-y ++control the scan area: \-l sets the top left x coordinate, \-t the top ++left y coordinate, \-x selects the width and \-y the height of the scan + area. All parameters are specified in millimeters by default. + + +@@ -72,27 +72,27 @@ + .B Enhancement options + + .TP +-.B --custom-gamma ++.B \-\-custom\-gamma + (grayscale and color mode only) allows the user to specify a gamma table (see the + next 3 parameters). + + .TP +-.B --red-gamma-table ++.B \-\-red\-gamma\-table + (color mode only) can be used to download a user defined + gamma table for the red channel. The table must be 256 bytes long. + + .TP +-.B --green-gamma-table ++.B \-\-green\-gamma\-table + (color mode only) can be used to download a user defined + gamma table for the green channel. The table must be 256 bytes long. + + .TP +-.B --blue-gamma-table ++.B \-\-blue\-gamma\-table + (color mode only) can be used to download a user defined gamma table + for the blue channel. The table must be 256 bytes long. + + .TP +-.B --halftone ++.B \-\-halftone + (Black & White only) select the halftone mask to use. Possible values are + .I Diamond + , +@@ -105,7 +105,7 @@ + .I 8x8 Vertical Line + + .TP +-.B --preview ++.B \-\-preview + requests a preview scan. The resolution used for that scan is 28 dpi + and the scan area is the maximum allowed. The scan mode is user + selected. The default is "no". +@@ -117,10 +117,10 @@ + + .SH FILES + .TP +-.I @LIBDIR@/libsane-leo.a ++.I @LIBDIR@/libsane\-leo.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-leo.so ++.I @LIBDIR@/libsane\-leo.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -147,7 +147,7 @@ + + .SH "SEE ALSO" + +-sane-scsi(5), scanimage(1), xscanimage(1), xsane(1), sane(7) ++sane\-scsi(5), scanimage(1), xscanimage(1), xsane(1), sane(7) + + + .SH AUTHOR +diff -urNad sane-backends-1.0.19~/doc/sane-lexmark.man sane-backends-1.0.19/doc/sane-lexmark.man +--- sane-backends-1.0.19~/doc/sane-lexmark.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-lexmark.man 2008-07-20 12:34:23.077539774 +0200 +@@ -1,5 +1,5 @@ +-.\" .IX sane-lexmark +-.TH "sane-lexmark" "5" "16 April 2007" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.\" .IX sane\-lexmark ++.TH "sane\-lexmark" "5" "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" + .SH "NAME" + sane\-lexmark \- SANE backend for Lexmark X1100/X1200 Series scanners + .SH "DESCRIPTION" +diff -urNad sane-backends-1.0.19~/doc/sane-ma1509.man sane-backends-1.0.19/doc/sane-ma1509.man +--- sane-backends-1.0.19~/doc/sane-ma1509.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-ma1509.man 2008-07-20 12:34:23.077539774 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-ma1509 5 "24 Feb 2003" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-ma1509 ++.TH sane\-ma1509 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-ma1509 + .SH NAME +-sane-ma1509 \- SANE backend for Mustek BearPaw 1200F USB scanner ++sane\-ma1509 \- SANE backend for Mustek BearPaw 1200F USB scanner + .SH DESCRIPTION + The +-.B sane-ma1509 ++.B sane\-ma1509 + library implements a SANE (Scanner Access Now Easy) backend that provides + access to the Mustek BearPaw 1200F USB flatbed scanner. This scanner is based + on the MA-1509 chipset. Other scanners that use this chip (if they exist) may +@@ -14,19 +14,19 @@ + immediately if your hear unusual noises. + .PP + More details can be found on the ma1509 backend homepage +-.IR http://www.meier-geinitz.de/sane/ma1509-backend/ . ++.IR http://www.meier\-geinitz.de/sane/ma1509\-backend/ . + .PP + Other Mustek USB scanners are supported by the gt68xx, mustek_usb and the + plustek backends. See +-.BR sane-mustek_usb (5), +-.BR sane-gt68xx (5) ++.BR sane\-mustek_usb (5), ++.BR sane\-gt68xx (5) + and +-.BR sane-plustek (5) ++.BR sane\-plustek (5) + for details. + .PP + This backend can only work with scanners that are already detected by the + operating system. See +-.BR sane-usb (5) ++.BR sane\-usb (5) + for details. + .PP + If you own a scanner other than the Mustek BearPaw 1200F that works with this +@@ -82,10 +82,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-ma1509.a ++.I @LIBDIR@/libsane\-ma1509.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-ma1509.so ++.I @LIBDIR@/libsane\-ma1509.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -111,17 +111,17 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5), +-.BR sane-gt68xx (5), +-.BR sane-plustek (5), +-.BR sane-mustek_usb (5), +-.BR sane-mustek (5), +-.BR sane-mustek_pp (5), ++.BR sane\-usb (5), ++.BR sane\-gt68xx (5), ++.BR sane\-plustek (5), ++.BR sane\-mustek_usb (5), ++.BR sane\-mustek (5), ++.BR sane\-mustek_pp (5), + .br +-.I http://www.meier-geinitz.de/sane/ma1509-backend/ ++.I http://www.meier\-geinitz.de/sane/ma1509\-backend/ + + .SH AUTHOR +-Henning Meier-Geinitz ++Henning Meier-Geinitz + + .SH BUGS + Resolutions higher than 600 dpi don't work +@@ -131,4 +131,4 @@ + No support for "high-speed" mode (jpeg) + .PP + More detailed bug information is available at the MA-1509 backend homepage +-.IR http://www.meier-geinitz.de/sane/ma1509-backend/ . ++.IR http://www.meier\-geinitz.de/sane/ma1509-backend/ . +diff -urNad sane-backends-1.0.19~/doc/sane-matsushita.man sane-backends-1.0.19/doc/sane-matsushita.man +--- sane-backends-1.0.19~/doc/sane-matsushita.man 2008-07-20 12:30:20.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-matsushita.man 2008-07-20 12:34:23.077539774 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-matsushita 5 "February 11th, 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-matsushita ++.TH sane\-matsushita 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-matsushita + .SH NAME +-sane-matsushita \- SANE backend for Panasonic KV-SS high speed scanners ++sane\-matsushita \- SANE backend for Panasonic KV-SS high speed scanners + .SH DESCRIPTION + The +-.B sane-matsushita ++.B sane\-matsushita + library implements a SANE (Scanner Access Now Easy) backend that + provides access to some Panasonic KV-SS high speed scanners. This + backend is stable. +@@ -33,72 +33,72 @@ + + Valid command line options and their syntax can be listed by using + .RS +-scanimage --help -d matsushita ++scanimage \-\-help \-d matsushita + .RE + + .TP + .B Scan Mode + + .TP +-.B --mode ++.B \-\-mode + selects the basic mode of operation of the scanner. + .TP +-.B --resolution ++.B \-\-resolution + selects the resolution for a scan. Each model supports all or a subset of these resolutions: 100, 150, 200, 240, 300, 360, 400. + .TP +-.B --duplex ++.B \-\-duplex + indicates whether to scan both side of the sheet. + .TP +-.B --feeder-mode ++.B \-\-feeder\-mode + selects the number of pages to scan (one or until the tray is empty). + + .TP + .B Geometry + + .TP +-.B --paper-size A4|...|Legal|Letter [A4] ++.B \-\-paper\-size A4|...|Legal|Letter [A4] + options selects the area to scan. It adjust the +-.B -l -t -x -y ++.B \-l \-t \-x \-y + options accordingly. It does not need to be the real size of the paper. + + .TP +-.B -l -t -x -y +-control the scan area: -l sets the top left x coordinate, -t the top +-left y coordinate, -x selects the width and -y the height of the scan ++.B \-l \-t \-x \-y ++control the scan area: \-l sets the top left x coordinate, \-t the top ++left y coordinate, \-x selects the width and \-y the height of the scan + area. All parameters are specified in millimeters. It is possible to use + the option +-.I --paper-size ++.I \-\-paper\-size + instead. + + .TP + .B Enhancement + + .TP +-.B --brightness ++.B \-\-brightness + controls the brightness of the acquired image. The value varies from 1 to 255, or less, depending on the scanner model. + .TP +-.B --contrast ++.B \-\-contrast + controls the contrast of the acquired image. Some models do not support that option. + .TP +-.B --automatic-threshold +-automatically sets brightness, contrast, white level, gamma, noise reduction and image emphasis. These options are not available when automatic-threshold is in use. ++.B \-\-automatic\-threshold ++automatically sets brightness, contrast, white level, gamma, noise reduction and image emphasis. These options are not available when automatic\-threshold is in use. + .TP +-.B --halftone-pattern ++.B \-\-halftone\-pattern + option sets the tonal gradation for the halftone mode. Pattern downloading is not implemented by the backend. + .TP +-.B --autoseparation ++.B \-\-autoseparation + provides automatic separation of text and images. + .TP +-.B --white-level ++.B \-\-white\-level + option indicate the source of the white base. + .TP +-.B --noise-reduction ++.B \-\-noise\-reduction + reduces the isolated dot noise. This option is not supported by all scanners. + .TP +-.B --image-emphasis ++.B \-\-image\-emphasis + option sets the image emphasis. Some selection are not available on all scanners. + .TP +-.B --gamma ++.B \-\-gamma + options set the gamma curve. It is only valid for Gray modes, and is not available on all scanners. Gamma downloading is not implemented by the backend. + + +@@ -108,10 +108,10 @@ + + .SH FILES + .TP +-.I @LIBDIR@/libsane-matsushita.a ++.I @LIBDIR@/libsane\-matsushita.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-matsushita.so ++.I @LIBDIR@/libsane\-matsushita.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -149,7 +149,7 @@ + + A scanadf command line would be: + +-scanadf -d matsushita --output-file scan%04d.pbm --start-count 0 --duplex --resolution 300 --feeder-mode="All pages" --paper-size="A4" ++scanadf \-d matsushita \-\-output\-file scan%04d.pbm \-\-start\-count 0 \-\-duplex \-\-resolution 300 \-\-feeder\-mode="All pages" \-\-paper\-size="A4" + + + .SH BUGS +@@ -159,7 +159,7 @@ + + .SH "SEE ALSO" + +-sane-scsi(5), scanimage(1), xscanimage(1), xsane(1), sane(7) ++sane\-scsi(5), scanimage(1), xscanimage(1), xsane(1), sane(7) + + + .SH AUTHOR +diff -urNad sane-backends-1.0.19~/doc/sane-microtek.man sane-backends-1.0.19/doc/sane-microtek.man +--- sane-backends-1.0.19~/doc/sane-microtek.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-microtek.man 2008-07-20 12:34:23.078539640 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-microtek 5 "February 8, 2000" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-microtek ++.TH sane\-microtek 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-microtek + .SH NAME +-sane-microtek \- SANE backend for Microtek scanners ++sane\-microtek \- SANE backend for Microtek scanners + .SH DESCRIPTION + The +-.B sane-microtek ++.B sane\-microtek + library implements a SANE (Scanner Access Now Easy) backend that + provides access to the "second generation" Microtek scanners. At present, + the following hardware is known to work with this backend: +@@ -119,10 +119,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-microtek.a ++.I @LIBDIR@/libsane\-microtek.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-microtek.so ++.I @LIBDIR@/libsane\-microtek.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -149,7 +149,7 @@ + levels reduce verbosity. + + .SH "SEE ALSO" +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + + .SH AUTHOR + Matt Marjanovic +@@ -177,7 +177,7 @@ + (If it does, report it.) + .PP + Send lengthy bug reports and new scanner information to +-.BR mtek-bugs@mir.com . ++.BR mtek\-bugs@mir.com . + All bug reports and new scanner inquiries should include an error log file. + You can generate copious + stderr output by setting the SANE_DEBUG_MICROTEK environment variable +@@ -189,6 +189,6 @@ + .PP + More general comments, suggestions, and inquiries about frontends + or SANE should go to +-.BR sane-devel@lists.alioth.debian.org , ++.BR sane\-devel@lists.alioth.debian.org , + the SANE Developers mailing list. Have a look at +-http://www.sane-project.org/mailing-lists.html concerning subscription to sane-devel. ++http://www.sane\-project.org/mailing\-lists.html concerning subscription to sane\-devel. +diff -urNad sane-backends-1.0.19~/doc/sane-microtek2.man sane-backends-1.0.19/doc/sane-microtek2.man +--- sane-backends-1.0.19~/doc/sane-microtek2.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-microtek2.man 2008-07-20 12:34:23.078539640 +0200 +@@ -1,9 +1,9 @@ +-.TH sane-microtek2 5 "28 Jan 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.TH sane\-microtek2 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" + .SH NAME +-sane-microtek2 \- SANE backend for Microtek scanners with SCSI-2 command set ++sane\-microtek2 \- SANE backend for Microtek scanners with SCSI-2 command set + .SH DESCRIPTION + The +-.B sane-microtek2 ++.B sane\-microtek2 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Microtek scanners with a SCSI-2 command set. + This backend can be considered alpha to beta. Some scanner models are reported +@@ -13,7 +13,7 @@ + .PP + There exists a different backend for Microtek scanners with SCSI-1 command + set. +-Refer to sane-microtek(5) for details. ++Refer to sane\-microtek(5) for details. + .PP + And there is work in progress for the ScanMaker 3600. + See +@@ -53,7 +53,7 @@ + .TE + .PP + Additional information can be found at +-.BR http://www.sane-project.org/ . ++.BR http://www.sane\-project.org/ . + .PP + If you own a Microtek scanner other than the ones listed above, + it may or may not work with SANE! Because equal scanners are sold under +@@ -98,7 +98,7 @@ + .br + "export SANE_DEBUG_MICROTEK2=30" and then + .br +-"scanimage -l0 -t0 -x100 -y20 2>scan.log >sout.pnm" ++"scanimage \-l0 \-t0 \-x100 \-y20 2>scan.log >sout.pnm" + .br + You get two files: scan.log contains the logfile and sout.pnm the scanned + image (if there was scanned something). Zip them before sending. +@@ -159,19 +159,19 @@ + .RS + option dump + .br +-option strip-height ++option strip\-height + .br +-option no-backtrack-option ++option no\-backtrack\-option + .br +-option lightlid-35 ++option lightlid\-35 + .br +-option toggle-lamp ++option toggle\-lamp + .br +-option lineart-autoadjust ++option lineart\-autoadjust + .br +-option backend-calibration ++option backend\-calibration + .br +-option colorbalance-adjust ++option colorbalance\-adjust + .RE + .PP + .I option dump +@@ -192,7 +192,7 @@ + .PP + The default is n=1. + .PP +-.I option strip-height ++.I option strip\-height + , where is a floating point number, limits the amount of data that is + read from the scanner with one read command. + The unit is inch and defaults to 1.0, if this option is not set in the +@@ -207,27 +207,27 @@ + The following options enable or disable additional frontend options. If an + option is set to an appropriate option will appear in the frontend. + .PP +-.I option no-backtrack-option ++.I option no\-backtrack\-option + prevents the scanner head from moving backwards between the read commands. + This speeds up scanning. Try it. + .PP +-.I option lightlid-35 ++.I option lightlid\-35 + If you use the LightLid-35 transparency adapter you get an advanced + option which switches off the flatbed lamp during the scan. + .PP +-.I option toggle-lamp ++.I option toggle\-lamp + You get a button in the frontend where you can switch on and off the flatbed + lamp. + .PP +-.I option lineart-autoadjust ++.I option lineart\-autoadjust + You can tell the backend to try to determine a good value for the lineart + threshold. + .PP +-.I option backend-calibration ++.I option backend\-calibration + Some scanners (e.g. Phantom 330CX and 636CX) need to have calibrated the data + by the backend. Try this option if you see vertical stripes in your pictures. + .PP +-.I option colorbalance-adjust ++.I option colorbalance\-adjust + Some scanners (e.g. Phantom 330CX and 636CX) need to have corrected + the color balance. If this option is enabled you get advanced options + where you can balance the colors. And you will have a button +@@ -238,17 +238,17 @@ + .RS + option dump 1 + .br +-option strip-height 1.0 ++option strip\-height 1.0 + .br + /dev/scanner + .br +-option no-backtrack-option on ++option no\-backtrack\-option on + .br + # this is a comment + .br + /dev/sge + .br +-option lightlid-35 on ++option lightlid\-35 on + .RE + + This backend also supports the new configuration file format which makes +@@ -258,19 +258,19 @@ + .RS + option dump 1 + .br +-option strip-height 14.0 ++option strip\-height 14.0 + .br +-option no-backtrack-option on ++option no\-backtrack\-option on + .br +-option backend-calibration on ++option backend\-calibration on + .br +-option lightlid-35 on ++option lightlid\-35 on + .br +-option toggle-lamp on ++option toggle\-lamp on + .br +-option lineart-autoadjust on ++option lineart\-autoadjust on + .br +-option colorbalance-adjust off ++option colorbalance\-adjust off + .br + scsi * * Scanner + .RE +@@ -286,10 +286,10 @@ + .I @CONFIGDIR@/microtek2.conf + The backend configuration file. + .TP +-.I @LIBDIR@/libsane-microtek2.a ++.I @LIBDIR@/libsane\-microtek2.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-microtek2.so ++.I @LIBDIR@/libsane\-microtek2.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH "ENVIRONMENT" +@@ -306,7 +306,7 @@ + .br + export SANE_DEBUG_MICROTEK2=128 + .SH "SEE ALSO" +-sane-scsi(5), sane(7) ++sane\-scsi(5), sane(7) + .SH "AUTHORS" + Bernd Schroeder (not active anymore) + .br +diff -urNad sane-backends-1.0.19~/doc/sane-mustek.man sane-backends-1.0.19/doc/sane-mustek.man +--- sane-backends-1.0.19~/doc/sane-mustek.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-mustek.man 2008-07-20 12:34:23.078539640 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-mustek 5 "18 Sep 2005" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-mustek ++.TH sane\-mustek 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-mustek + .SH NAME +-sane-mustek \- SANE backend for Mustek SCSI flatbed scanners (and some other devices) ++sane\-mustek \- SANE backend for Mustek SCSI flatbed scanners (and some other devices) + .SH DESCRIPTION + The +-.B sane-mustek ++.B sane\-mustek + library implements a SANE (Scanner Access Now Easy) backend that provides access + to Mustek (and some relabeled Trust and Primax) SCSI and parport flatbed + scanners. At present, the following scanners are known to work more or less +@@ -54,7 +54,7 @@ + .RE + .PP + More details can be found on the Mustek SCSI backend homepage +-.IR http://www.meier-geinitz.de/sane/mustek-backend/ . ++.IR http://www.meier\-geinitz.de/sane/mustek\-backend/ . + .PP + Don't mix up MFS (Paragon), Pro and ScanExpress models! They're + completely different. Check the exact model name! +@@ -70,13 +70,13 @@ + .BR "PARALLEL PORT SCANNERS" . + Other parallel port scanners are not supported by this backend but you may be + successful using the Mustek parallel port backend mustek_pp, see +-.BR sane-mustek_pp (5). ++.BR sane\-mustek_pp (5). + USB scanners are also not supported by this backend but the ma1509, mustek_usb, + gt68xx, and plustek backends include support for some of them, see +-.BR sane-ma1509 (5), +-.BR sane-mustek_usb (5), +-.BR sane-gt68xx "(5), and" +-.BR sane-plustek (5). ++.BR sane\-ma1509 (5), ++.BR sane\-mustek_usb (5), ++.BR sane\-gt68xx "(5), and" ++.BR sane\-plustek (5). + .PP + Mustek scanners have no protection against exceeding the physical scan + area height. That is, if a scan is attempted with a height that +@@ -92,13 +92,13 @@ + above that works with this backend, please let us know by sending the + scanner's exact model name (look at the front and back of the scanner) + and a debug output to +-.IR sane-devel@lists.alioth.debian.org . ++.IR sane\-devel@lists.alioth.debian.org . + You can get the debug output by setting the environment variable + .B SANE_DEBUG_MUSTEK +-to 5 and showing the list of available scanners with scanimage\ -L. Please +-send all of it to the mailing list. You must be subscribed to sane-devel ++to 5 and showing the list of available scanners with scanimage \-L. Please ++send all of it to the mailing list. You must be subscribed to sane\-devel + before you can send mail to the list. See +-.I http://www.sane-project.org/mailing-lists.html ++.I http://www.sane\-project.org/mailing\-lists.html + for details. + + .SH "DEVICE NAMES" +@@ -116,14 +116,14 @@ + .B "PARALLEL PORT SCANNERS" + below). For SCSI scanners, the special device name must be a generic SCSI + device or a symlink to such a device. The program +-.I sane-find-scanner ++.I sane\-find\-scanner + helps to find out the correct device. Under Linux, such a device name + could be + .I /dev/sg0 + or + .IR /dev/sg3 , + for example. See +-.BR sane-scsi (5) ++.BR sane\-scsi (5) + for details. + .SH CONFIGURATION + The contents of the +@@ -131,20 +131,20 @@ + file is a list of options and device names that correspond to Mustek + scanners. Empty lines and lines starting with a hash mark (#) are + ignored. See +-.BR sane-scsi (5) ++.BR sane\-scsi (5) + on details of what constitutes a valid device name. + .PP + The supported options are +-.BR linedistance-fix , +-.BR lineart-fix , +-.BR legal-size , ++.BR linedistance\-fix , ++.BR lineart\-fix , ++.BR legal\-size , + .BR buffersize , + .BR blocksize , +-.BR strip-height , +-.BR disable-double-buffering , +-.BR disable-backtracking , ++.BR strip\-height , ++.BR disable\-double\-buffering , ++.BR disable\-backtracking , + and +-.BR force-wait . ++.BR force\-wait . + .PP + Options come in two flavors: global and positional ones. Global + options apply to all devices managed by the backend whereas positional +@@ -152,7 +152,7 @@ + this means that the order in which the options appear matters! + .PP + Option +-.B linedistance-fix ++.B linedistance\-fix + is positional and works around a problem that occurs with some SCSI + controllers (notably the ncr810 controller under Linux). If color + scans have horizontal stripes and/or the colors are off, then it's +@@ -160,14 +160,14 @@ + this option usually fixes the problem. + .PP + Option +-.B lineart-fix ++.B lineart\-fix + is positional and works around a timing problem that seems to exist + with certain MFS-12000SP scanners. The problem manifests itself in + dropped lines when scanning in lineart mode. Turning on this option + should fix the problem but may slow down scanning a bit. + .PP + Option +-.B legal-size ++.B legal\-size + is positional and sets the size of the scan area to Legal format. Set this + option if you own a Paragon 12000 LS. It can't be distinguished by + software from a ScanExpress 12000 SP (ISO A4 format). +@@ -180,7 +180,7 @@ + is half the size of this value. Try to increase this value to achieve higher + scan speeds. Note that some ScanExpress scanners don't like buffer sizes above + 64 kb (buffersize = 128). If your sg driver can't set SCSI buffer sizes at +-runtime you may have to change that value, too. See sane-scsi(5) for details. ++runtime you may have to change that value, too. See sane\-scsi(5) for details. + .PP + Option + .B blocksize +@@ -191,24 +191,24 @@ + value if you don't know exactly what you do. + .PP + Option +-.B strip-height ++.B strip\-height + is a global option that limits the maximum height of the strip scanned with a + single SCSI read command. The height is specified in inches and may contain a +-fractional part (e.g., 1.5). Setting the strip-height to a small value (one ++fractional part (e.g., 1.5). Setting the strip\-height to a small value (one + inch, for example) reduces the likelihood of encountering problems with SCSI + driver timeouts and/or timeouts with other devices on the same SCSI bus. + Unfortunately, it also increases scan times. With current SCSI adapters and + drivers this option shouldn't be needed any more. + .PP + Option +-.B disable-double-buffering ++.B disable\-double\-buffering + is a global option. If set, the backend will only send one buffer at a time to + the scanner. Try this option if you have trouble while scanning, e.g. SCSI + errors, freezes, or the first few cm are repeated over and over again in your + image. + .PP + Option +-.B disable-backtracking ++.B disable\-backtracking + is a positional option. If set, the scanner will not move back its slider + after each SCSI buffer is filled (`backtracking'). Setting this option will + lead to faster scans but may also produce horizontal stripes. This option +@@ -216,7 +216,7 @@ + backtracking). + .PP + Finally, +-.B force-wait ++.B force\-wait + is a global option. If set, the backend will wait until the device is ready + before sending the inquiry command. Further more the backend will force the + scan slider to return to its starting position (not implemented for all +@@ -228,7 +228,7 @@ + .RS + # limit strip height of all scanners to 1.5 inches: + .br +-option strip-height 1.5 ++option strip\-height 1.5 + .br + .br + /dev/scanner # first Mustek scanner +@@ -241,9 +241,9 @@ + .br + # turn on fixes for /dev/sge: + .br +-option lineart-fix ++option lineart\-fix + .br +-option linedistance-fix ++option linedistance\-fix + .RE + + .SH "SCSI ADAPTER TIPS" +@@ -273,7 +273,7 @@ + For Mustek scanners, it is typically necessary to configure the low-level SCSI + driver to disable synchronous transfers (sync negotiation), tagged command + queuing, and target disconnects. See +-.BR sane-scsi (5) ++.BR sane\-scsi (5) + for driver- and platform-specific information. + .PP + The ScanExpress models have sometimes trouble with high resolution +@@ -283,7 +283,7 @@ + .PP + Details on how to get the Mustek SCSI adapters and other cards running can be + found at +-.IR http://www.meier-geinitz.de/sane/mustek-backend/#SCSI . ++.IR http://www.meier\-geinitz.de/sane/mustek\-backend/#SCSI . + + .SH "PARALLEL PORT SCANNERS" + This backend has support for the Paragon 600 II EP and Paragon 600 II N parallel +@@ -316,7 +316,7 @@ + .PP + If the Mustek backend blocks while sending the inquiry command to the scanner, + add the option +-.B force-wait ++.B force\-wait + to + .IR mustek.conf . + .PP +@@ -335,10 +335,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-mustek.a ++.I @LIBDIR@/libsane\-mustek.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-mustek.so ++.I @LIBDIR@/libsane\-mustek.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -379,16 +379,16 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-find-scanner (1), +-.BR sane-scsi (5), +-.BR sane-mustek_usb (5), +-.BR sane-gt68xx (5), +-.BR sane-plustek (5), +-.BR sane-mustek_pp (5) ++.BR sane\-find\-scanner (1), ++.BR sane\-scsi (5), ++.BR sane\-mustek_usb (5), ++.BR sane\-gt68xx (5), ++.BR sane\-plustek (5), ++.BR sane\-mustek_pp (5) + .br + .I @DOCDIR@/mustek/mustek.CHANGES + .br +-.I http://www.meier-geinitz.de/sane/mustek-backend/ ++.I http://www.meier\-geinitz.de/sane/mustek\-backend/ + + .SH AUTHOR + David Mosberger, Andreas Czechanowski, Andreas Bolsch (SE extensions), +@@ -404,4 +404,4 @@ + .PP + More detailed bug information is available at the Mustek backend + homepage: +-.IR http://www.meier-geinitz.de/sane/mustek-backend/ . ++.IR http://www.meier\-geinitz.de/sane/mustek\-backend/ . +diff -urNad sane-backends-1.0.19~/doc/sane-mustek_pp.man sane-backends-1.0.19/doc/sane-mustek_pp.man +--- sane-backends-1.0.19~/doc/sane-mustek_pp.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-mustek_pp.man 2008-07-20 12:34:23.079539799 +0200 +@@ -1,5 +1,5 @@ + .\" t +-.TH sane-mustek_pp 5 "November 17 2003" ++.TH sane\-mustek_pp 5 "14 Jul 2008" + .de EX + .sp + .nf +@@ -10,12 +10,12 @@ + .fi + .sp + .. +-.IX sane-mustek_pp ++.IX sane\-mustek_pp + .SH NAME +-sane-mustek_pp \- SANE backend for Mustek parallel port flatbed scanners ++sane\-mustek_pp \- SANE backend for Mustek parallel port flatbed scanners + .SH DESCRIPTION + The +-.B sane-mustek_pp ++.B sane\-mustek_pp + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Mustek parallel port flatbed scanners and OEM versions. + +@@ -106,14 +106,14 @@ + Note that the backend needs to run as root or has to have appropriate access + rights to /dev/parport* if libieee1284 support is compiled in. To allow user + access to the scanner run the backend through the network interface (See +-saned(8) and sane-net(5)). Note also that the backend ++saned(8) and sane\-net(5)). Note also that the backend + .I does not + support + .IR "parport sharing" , + i.e. if you try printing while scanning, your computer may crash. To enable + parport sharing, you have to enable libieee1284 at compile time. This backend + also conflicts with the +-.I sane-musteka4s2 ++.I sane\-musteka4s2 + backend. You can only enable one of them in your dll.conf. However, you have + to enable the backend explicitly in your dll.conf, just remove the hash mark + in the line "mustek_pp". +@@ -209,7 +209,7 @@ + + If in doubt which port you have to use, or whether your scanner is + detected at all, you can use +-.B sane-find-scanner -p ++.B sane\-find\-scanner \-p + to probe all configured ports. + + .SH CONFIGURATION +@@ -255,12 +255,12 @@ + .br + Default value: 0.0 + .br +-Minimum: -5.0 ++Minimum: \-5.0 + .br + Maximum: 5.0 + .br + .sp +-Example: option top_adjust -2.5 ++Example: option top_adjust \-2.5 + .TP + .B slow_skip + Turns fast skipping to the start of the scan region off. When the region to +@@ -337,7 +337,7 @@ + + # Some calibration options (examples!). + option bw 127 +-option top_skip -0.8 ++option top_skip \-0.8 + + # + # A Mustek 600CP on port 0x3BC +@@ -392,10 +392,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-mustek_pp.a ++.I @LIBDIR@/libsane\-mustek_pp.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-mustek_pp.so ++.I @LIBDIR@/libsane\-mustek_pp.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -422,7 +422,7 @@ + levels reduce verbosity. + .sp + .TS +-lb lb; ++lb lb + l l. + level debug output + - - +@@ -441,7 +441,7 @@ + million lines of debug output. + .sp + .TS +-lb lb; ++lb lb + l l. + level debug output + - - +@@ -454,11 +454,11 @@ + 6 everything + .TE + .SH "SEE ALSO" +-sane(7), sane-mustek(5), sane-net(5), saned(8), sane-find-scanner(1) ++sane(7), sane\-mustek(5), sane\-net(5), saned(8), sane\-find\-scanner(1) + + .TP + For latest bug fixes and information see +-.I http://www.penguin-breeder.org/sane/mustek_pp/ ++.I http://www.penguin\-breeder.org/sane/mustek_pp/ + + .TP + For additional information on the CIS driver, see +@@ -466,15 +466,15 @@ + + .SH AUTHORS + .nf +-Jochen Eisinger ++Jochen Eisinger + Eddy De Greef + .fi + + .SH BUGS + Too many... please send bug reports to +-.I sane-devel@lists.alioth.debian.org ++.I sane\-devel@lists.alioth.debian.org + (note that you have to subscribe first to the list before you can send +-emails... see http://www.sane-project.org/mailing-lists.html) ++emails... see http://www.sane\-project.org/mailing\-lists.html) + + .SH BUG REPORTS + If something doesn't work, please contact us (Jochen for the CCD scanners, +@@ -483,10 +483,10 @@ + + .TP + .I SANE version +-run "scanimage -V" to determine this ++run "scanimage \-V" to determine this + .TP + .I the backend version and your scanner hardware +-run "SANE_DEBUG_MUSTEK_PP=128 scanimage -L" as root. If you don't get any output ++run "SANE_DEBUG_MUSTEK_PP=128 scanimage \-L" as root. If you don't get any output + from the mustek_pp backend, make sure a line "mustek_pp" is included into + your @CONFIGDIR@/dll.conf. + If your scanner isn't detected, make sure you've defined the right port address +diff -urNad sane-backends-1.0.19~/doc/sane-mustek_usb.man sane-backends-1.0.19/doc/sane-mustek_usb.man +--- sane-backends-1.0.19~/doc/sane-mustek_usb.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-mustek_usb.man 2008-07-20 12:34:23.086539391 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-mustek_usb 5 "3 Mar 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-mustek_usb ++.TH sane\-mustek_usb 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-mustek_usb + .SH NAME +-sane-mustek_usb \- SANE backend for Mustek USB flatbed scanners ++sane\-mustek_usb \- SANE backend for Mustek USB flatbed scanners + .SH DESCRIPTION + The +-.B sane-mustek_usb ++.B sane\-mustek_usb + library implements a SANE (Scanner Access Now Easy) backend that provides + access to Mustek USB flatbed scanners (including a clone from Trust). At + present, the following scanners are known to work more or less with this +@@ -24,20 +24,20 @@ + .RE + .PP + More details can be found on the Mustek USB backend homepage +-.IR http://www.meier-geinitz.de/sane/mustek_usb-backend/ . ++.IR http://www.meier\-geinitz.de/sane/mustek_usb\-backend/ . + .PP + The Mustek BearPaw 1200 and 2400 scanners are supported by the plustek + backend. See +-.BR sane-plustek (5) ++.BR sane\-plustek (5) + for details. The Mustek BearPaw 1200F is supported by the MA-1509 backend. See +-.BR sane-ma1509 (5) ++.BR sane\-ma1509 (5) + for details. Other Mustek USB scanners are supported by the gt68xx backend, + see +-.BR sane-gt68xx (5). ++.BR sane\-gt68xx (5). + .PP + This backend can only work with scanners that are already detected by the + operating system. See +-.BR sane-usb (5) ++.BR sane\-usb (5) + for details. + .PP + If you own a Mustek (or Trust) scanner other than the ones listed above that +@@ -126,10 +126,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-mustek_usb.a ++.I @LIBDIR@/libsane\-mustek_usb.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-mustek_usb.so ++.I @LIBDIR@/libsane\-mustek_usb.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -172,20 +172,20 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5), +-.BR sane-mustek (5), +-.BR sane-mustek_pp (5), +-.BR sane-plustek (5), +-.BR sane-gt68xx (5), +-.BR sane-ma1509 (5) ++.BR sane\-usb (5), ++.BR sane\-mustek (5), ++.BR sane\-mustek_pp (5), ++.BR sane\-plustek (5), ++.BR sane\-gt68xx (5), ++.BR sane\-ma1509 (5) + .br + .IR @DOCDIR@/mustek_usb/mustek_usb.CHANGES , + .I @DOCDIR@/mustek_usb/mustek_usb.TODO + .br +-.I http://www.meier-geinitz.de/sane/mustek_usb-backend/ ++.I http://www.meier\-geinitz.de/sane/mustek_usb\-backend/ + + .SH AUTHOR +-Henning Meier-Geinitz ++Henning Meier-Geinitz + .br + This backend is based on the Mustek 1200ub backend from Mustek, maintained by + Tom Wang. +@@ -202,4 +202,4 @@ + + .PP + More detailed bug information is available at the Mustek backend homepage +-.IR http://www.meier-geinitz.de/sane/mustek_usb-backend/ . ++.IR http://www.meier\-geinitz.de/sane/mustek_usb\-backend/ . +diff -urNad sane-backends-1.0.19~/doc/sane-mustek_usb2.man sane-backends-1.0.19/doc/sane-mustek_usb2.man +--- sane-backends-1.0.19~/doc/sane-mustek_usb2.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-mustek_usb2.man 2008-07-20 12:34:23.086539391 +0200 +@@ -1,16 +1,16 @@ +-.TH sane-mustek_usb2 5 "15 Apr 2006" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-mustek_usb2 ++.TH sane\-mustek_usb2 5 "13 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-mustek_usb2 + .SH NAME +-sane-mustek_usb2 \- SANE backend for SQ113 based USB flatbed scanners ++sane\-mustek_usb2 \- SANE backend for SQ113 based USB flatbed scanners + .SH DESCRIPTION + The +-.B sane-mustek_usb2 ++.B sane\-mustek_usb2 + library implements a SANE (Scanner Access Now Easy) backend that provides + access to USB flatbed scanners based on the Service & Quality SQ113 chipset. At + the moment, only the Mustek BearPaw 2448 TA Pro is supported. It's planned to add + support for other scanners that are based on the SQ113 and maybe SQ11 chip. For + more details, see the mustek_usb2 backend homepage: +-.IR http://www.meier-geinitz.de/sane/mustek_usb2-backend/ . ++.IR http://www.meier\-geinitz.de/sane/mustek_usb2\-backend/ . + .PP + This is BETA software. Especially if you test new or untested scanners, keep + your hand at the scanner's plug and unplug it, if the head bumps at the end of +@@ -19,24 +19,24 @@ + If you own a scanner other than the ones listed on the mustek_usb2 homepage that works with this + backend, please let me know this by sending the scanner's exact model name and + the USB vendor and device ids (e.g. from +-.I sane-find-scanner ++.I sane\-find\-scanner + or syslog) to me. Even if the scanner's name is only slightly different from + the models already listed as supported, please let me know. + .PP + .SH LIBUSB ISSUES + Please use libusb-0.1.8 or later. Without libusb or with older libusb versions + all kinds of trouble can be expected. The scanner should be found by +-sane-find-scanner without further actions. For setting permissions and general ++sane\-find\-scanner without further actions. For setting permissions and general + USB information looks at +-.BR sane-usb (5). ++.BR sane\-usb (5). + .PP + + .SH FILES + .TP +-.I @LIBDIR@/libsane-mustek_usb2.a ++.I @LIBDIR@/libsane\-mustek_usb2.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-mustek_usb2.so ++.I @LIBDIR@/libsane\-mustek_usb2.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -51,16 +51,16 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5), +-.BR sane-plustek (5), +-.BR sane-ma1509 (5), +-.BR sane-mustek_usb (5), +-.BR sane-mustek (5), +-.BR sane-mustek_pp (5) ++.BR sane\-usb (5), ++.BR sane\-plustek (5), ++.BR sane\-ma1509 (5), ++.BR sane\-mustek_usb (5), ++.BR sane\-mustek (5), ++.BR sane\-mustek_pp (5) + .br + .I @DOCDIR@/mustek_usb2/mustek_usb2.CHANGES + .br +-.I http://www.meier-geinitz.de/sane/mustek_usb2-backend/ ++.I http://www.meier\-geinitz.de/sane/mustek_usb2\-backend/ + + .SH AUTHOR + The driver has been written Roy Zhou, Jack Xu, and Vinci Cen from +@@ -68,5 +68,5 @@ + + .SH BUGS + Please contact me if you find a bug or missing feature: +-. Please send a debug log if your scanner isn't ++. Please send a debug log if your scanner isn't + detected correctly (see SANE_DEBUG_MUSTEK_USB2 above). +diff -urNad sane-backends-1.0.19~/doc/sane-nec.man sane-backends-1.0.19/doc/sane-nec.man +--- sane-backends-1.0.19~/doc/sane-nec.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-nec.man 2008-07-20 12:34:23.086539391 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-nec 5 "17 Feb 2000" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-nec ++.TH sane\-nec 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-nec + .SH NAME +-sane-nec \- SANE backend for NEC scanners ++sane\-nec \- SANE backend for NEC scanners + .SH DESCRIPTION + The +-.B sane-nec ++.B sane\-nec + library implements a SANE (Scanner Access Now Easy) backend that + provides access to NEC SCSI scanners. This backend should be + considered +@@ -40,10 +40,10 @@ + .I @CONFIGDIR@/nec.conf + The backend configuration file. + .TP +-.I @LIBDIR@/libsane-nec.a ++.I @LIBDIR@/libsane\-nec.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-nec.so ++.I @LIBDIR@/libsane\-nec.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -54,6 +54,6 @@ + a value of 128 requests all debug output to be printed. Smaller + levels reduce verbosity. + .SH "SEE ALSO" +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + .SH AUTHORS + Kazuya Fukuda +diff -urNad sane-backends-1.0.19~/doc/sane-net.man sane-backends-1.0.19/doc/sane-net.man +--- sane-backends-1.0.19~/doc/sane-net.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-net.man 2008-07-20 12:34:23.095023475 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-net 5 "24 Oct 2007" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-net ++.TH sane\-net 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-net + .SH NAME +-sane-net \- SANE network backend ++sane\-net \- SANE network backend + .SH DESCRIPTION + The +-.B sane-net ++.B sane\-net + library implements a SANE (Scanner Access Now Easy) backend that + provides access to image acquisition devices through a network + connection. This makes it possible to control devices attached to a +@@ -20,7 +20,7 @@ + .PP + Where + .I host +-is the name (or IP address) of the (remote-) host and ++is the name (or IP address) of the (remote) host and + .I device + is the name of the device on this host that should be addressed. + If the device name does not contain a colon (:), then the entire string +@@ -57,7 +57,7 @@ + in square brackets. A sample configuration file is shown below: + .PP + .RS +-scan-server.somedomain.firm ++scan\-server.somedomain.firm + .br + 192.168.0.1 + .br +@@ -91,7 +91,7 @@ + are contacted in addition to the hosts listed above. + .PP + For this backend to function properly, it is also necessary to define the +-.B sane-port ++.B sane\-port + service in + .IR /etc/services . + The +@@ -99,7 +99,7 @@ + service should be defined using a line of the following form: + .PP + .RS +-sane-port 6566/tcp # SANE network scanner daemon ++sane\-port 6566/tcp # SANE network scanner daemon + .RE + .PP + .SH FILES +@@ -109,10 +109,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-net.a ++.I @LIBDIR@/libsane\-net.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-net.so ++.I @LIBDIR@/libsane\-net.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -148,8 +148,8 @@ + .SH BUGS + If saned has timed out, the net backend may loop with authorization requests. + .SH "SEE ALSO" +-sane(7), saned(8), sane-dll(5), scanimage(1) ++sane(7), saned(8), sane\-dll(5), scanimage(1) + +-.I http://www.penguin-breeder.org/?page=sane-net ++.I http://www.penguin-breeder.org/?page=sane\-net + .SH AUTHOR + David Mosberger and Andreas Beck +diff -urNad sane-backends-1.0.19~/doc/sane-niash.man sane-backends-1.0.19/doc/sane-niash.man +--- sane-backends-1.0.19~/doc/sane-niash.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-niash.man 2008-07-20 12:34:23.095023475 +0200 +@@ -1,13 +1,13 @@ +-.\" $Id: sane-niash.man,v 1.7 2006-02-04 10:37:52 ullsig-guest Exp $ +-.TH sane-niash 5 "29 July 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-niash ++.\" $Id: sane\-niash.man,v 1.7 2006/02/04 10:37:52 ullsig-guest Exp $ ++.TH sane\-niash 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-niash + + .SH NAME +-sane-niash \- SANE backend for scanners based on the NIASH chipset. ++sane\-niash \- SANE backend for scanners based on the NIASH chipset. + + .SH DESCRIPTION + The +-.B sane-niash ++.B sane\-niash + implements a SANE (Scanner Access Now Easy) backend that + provides access to NIASH chipset based scanners. This backend will try to support + the following models: +@@ -40,11 +40,11 @@ + + .SH FILES + .TP +-.I @LIBDIR@/libsane-niash.a ++.I @LIBDIR@/libsane\-niash.a + The static library implementing this backend. + + .TP +-.I @LIBDIR@/libsane-niash.so ++.I @LIBDIR@/libsane\-niash.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -74,7 +74,7 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5) ++.BR sane\-usb (5) + .br + http://www.sourceforge.net/projects/hp3300backend + .SH AUTHOR +diff -urNad sane-backends-1.0.19~/doc/sane-pie.man sane-backends-1.0.19/doc/sane-pie.man +--- sane-backends-1.0.19~/doc/sane-pie.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-pie.man 2008-07-20 12:34:23.095539639 +0200 +@@ -1,11 +1,11 @@ +-.TH sane-pie 5 "7 Sept 2000" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-pie ++.TH sane\-pie 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-pie + .SH NAME +-sane-pie \- SANE backend for PIE, Devcom and AdLib SCSI flatbed scanners ++sane\-pie \- SANE backend for PIE, Devcom and AdLib SCSI flatbed scanners + + .SH DESCRIPTION + The +-.B sane-pie ++.B sane\-pie + library implements a SANE (Scanner Access Now Easy) backend that + provides access to PIE, Devcom and AdLib SCSI flatbed scanners. + .br +@@ -41,10 +41,10 @@ + .I @CONFIGDIR@/pie.conf + The backend configuration file + .TP +-.I @LIBDIR@/libsane-pie.a ++.I @LIBDIR@/libsane\-pie.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-pie.so ++.I @LIBDIR@/libsane\-pie.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .PP +diff -urNad sane-backends-1.0.19~/doc/sane-pint.man sane-backends-1.0.19/doc/sane-pint.man +--- sane-backends-1.0.19~/doc/sane-pint.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-pint.man 2008-07-20 12:34:23.103774667 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-pint 5 "13 May 1998" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-pint ++.TH sane\-pint 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-pint + .SH NAME +-sane-pint \- SANE backend for scanners that use the PINT device driver ++sane\-pint \- SANE backend for scanners that use the PINT device driver + .SH DESCRIPTION + The +-.B sane-pint ++.B sane\-pint + library implements a SANE (Scanner Access Now Easy) backend that + provides generic access to hand-held and flatbed scanners using the + PINT (PINT Is Not Twain) device driver. The PINT driver is being +@@ -21,9 +21,9 @@ + If have successfully used the PINT driver with your scanner, but it + does not work using this SANE backend, please let us know. To do + this, send a mail with the relevant information for your scanner to +-.IR sane-devel@lists.alioth.debian.org . +-Have a look at http://www.sane-project.org/mailing-lists.html concerning subscription +-to sane-devel. ++.IR sane\-devel@lists.alioth.debian.org . ++Have a look at http://www.sane\-project.org/mailing\-lists.html concerning subscription ++to sane\-devel. + + .SH "DEVICE NAMES" + This backend expects device names of the form: +@@ -62,10 +62,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-pint.a ++.I @LIBDIR@/libsane\-pint.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-pint.so ++.I @LIBDIR@/libsane\-pint.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +diff -urNad sane-backends-1.0.19~/doc/sane-pixma.man sane-backends-1.0.19/doc/sane-pixma.man +--- sane-backends-1.0.19~/doc/sane-pixma.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-pixma.man 2008-07-20 12:34:23.103774667 +0200 +@@ -1,10 +1,10 @@ +-.TH "sane-pixma" "5" "19 July 2007" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-pixma ++.TH "sane\-pixma" "5" "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-pixma + .SH NAME +-sane-pixma \- SANE backend for Canon PIXMA MP series ++sane\-pixma \- SANE backend for Canon PIXMA MP series + .SH DESCRIPTION + The +-.B sane-pixma ++.B sane\-pixma + library implements a SANE (Scanner Access Now Easy) backend that provides + access to Canon PIXMA multi-function devices (All-in-one printers). + Currently, the following models work with this backend: +@@ -54,7 +54,7 @@ + .B experimental + options for button handling, i.e. the options might change in the future. + .TP +-.I button-controlled ++.I button\-controlled + This option can be used in combination with + .BR scanadf (1) + and +@@ -67,24 +67,24 @@ + the button and so on. When you finished, press the gray-scan button. (For + MP150 you have to stop the frontend by pressing Ctrl-C for example.) + .TP +-.I button-update button-1 button-2 ++.I button\-update button\-1 button\-2 + These options are interesting for developers. To check button status: (1) set +-.I button-1 ++.I button\-1 + and +-.I button-2 ++.I button\-2 + to zero, (2) set +-.I button-update ++.I button\-update + (Its type is SANE_TYPE_BUTTON.), (3) get +-.I button-1 ++.I button\-1 + and +-.IR button-2 . ++.IR button\-2 . + If the result is not zero, the corresponding button was pressed. + .SH FILES + .TP +-.I @LIBDIR@/libsane-pixma.a ++.I @LIBDIR@/libsane\-pixma.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-pixma.so ++.I @LIBDIR@/libsane\-pixma.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -112,7 +112,7 @@ + You should also set SANE_DEBUG_PIXMA to 10. + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-dll (5), ++.BR sane\-dll (5), + .I http://home.arcor.de/wittawat/pixma/ + .SH AUTHOR + Wittawat Yamwong +diff -urNad sane-backends-1.0.19~/doc/sane-plustek.man sane-backends-1.0.19/doc/sane-plustek.man +--- sane-backends-1.0.19~/doc/sane-plustek.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-plustek.man 2008-07-20 12:35:04.205539010 +0200 +@@ -1,17 +1,17 @@ +-.TH sane-plustek 5 "15 November 2007" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-plustek ++.TH sane\-plustek 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-plustek + .SH NAME +-sane-plustek \- SANE backend for LM983[1/2/3] based ++sane\-plustek \- SANE backend for LM983[1/2/3] based + USB flatbed scanners + .SH DESCRIPTION + The +-.B sane-plustek ++.B sane\-plustek + library implements a SANE (Scanner Access Now Easy) backend that + provides access to USB flatbed scanners based on National Semiconductor + Merlin chipsets (LM9831, 9832 and 9833). + If you're looking for parallel-port support for Plustek scanner + please refer to the +-.B sane-plustek_pp ++.B sane\-plustek_pp + backend. + + .SH "SUPPORTED DEVICES" +@@ -197,7 +197,7 @@ + .fi + .ft R + For a more complete and up to date list see: +-.B http://www.sane-project.org/sane-supported-devices.html ++.B http://www.sane\-project.org/sane\-supported\-devices.html + + .SH "CONFIGURATION" + To use your scanner with this backend, you need at least two +@@ -228,7 +228,7 @@ + option warmup t + .RS + .I t +-specifies the warmup period in seconds, if set to -1, the ++specifies the warmup period in seconds, if set to \-1, the + automatic warmup function will be used + .RE + .PP +@@ -390,7 +390,7 @@ + .RS + .I r g b ro go bo + These values can be used to set the gain and offset values of +-the AFE for each channel. The range is between 0 and 63. -1 ++the AFE for each channel. The range is between 0 and 63. \-1 + means autocalibration. + .RE + +@@ -402,9 +402,9 @@ + You have to make sure, that the USB subsystem is loaded + correctly and you have access to the device-node. For + more details see +-.B sane-usb (5) ++.B sane\-usb (5) + manpage. You might use +-.B sane-find-scanner ++.B sane\-find\-scanner + to check that you have access to your device. + .PP + .B Note: +@@ -417,10 +417,10 @@ + .I @CONFIGDIR@/plustek.conf + The backend configuration file + .TP +-.I @LIBDIR@/libsane-plustek.a ++.I @LIBDIR@/libsane\-plustek.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-plustek.so ++.I @LIBDIR@/libsane\-plustek.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -450,9 +450,9 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5), +-.BR sane-u12 (5), +-.BR sane-gt68xx (5), ++.BR sane\-usb (5), ++.BR sane\-u12 (5), ++.BR sane\-gt68xx (5), + .br + .I @DOCDIR@/plustek/Plustek-USB.changes + .br +@@ -467,7 +467,7 @@ + .br + Mailing-List archive at: + .br +-.B http://www.sane-project.org/mailing-lists.html ++.B http://www.sane\-project.org/mailing\-lists.html + .PP + or directly from the projects' homepage at: + .br +diff -urNad sane-backends-1.0.19~/doc/sane-plustek_pp.man sane-backends-1.0.19/doc/sane-plustek_pp.man +--- sane-backends-1.0.19~/doc/sane-plustek_pp.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-plustek_pp.man 2008-07-20 12:34:23.112587234 +0200 +@@ -1,11 +1,11 @@ +-.TH sane-plustek_pp 5 "18 June 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-plustek_pp ++.TH sane\-plustek_pp 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-plustek_pp + .SH NAME +-sane-plustek_pp \- SANE backend for Plustek parallel port ++sane\-plustek_pp \- SANE backend for Plustek parallel port + flatbed scanners + .SH DESCRIPTION + The +-.B sane-plustek_pp ++.B sane\-plustek_pp + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Plustek ASIC 9600[1/3] and P9800[1/3] based + parallel port flatbed scanners. +@@ -233,10 +233,10 @@ + .SH "BUILDING THE KERNEL MODULE" + As mentioned before, the plustek_pp backend code can also + be compiled and installed as linux kernel module. To do so, +-you will need the source-files of this sane-backend installation. ++you will need the source-files of this sane\-backend installation. + Unpack this tar-ball and go to the directory: + .br +-.I sane-backends/doc/plustek ++.I sane\-backends/doc/plustek + .br + Within this directory, you should find a script called: + .br +@@ -363,7 +363,7 @@ + .B "/etc/modules.conf" + : + .br +-.I alias char-major-40 pt_drv ++.I alias char\-major\-40 pt_drv + .br + .I pre-install pt_drv modprobe -k parport + .br +@@ -406,10 +406,10 @@ + .I @CONFIGDIR@/plustek_pp.conf + The backend configuration file + .TP +-.I @LIBDIR@/libsane-plustek_pp.a ++.I @LIBDIR@/libsane\-plustek_pp.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-plustek_pp.so ++.I @LIBDIR@/libsane\-plustek_pp.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .TP +@@ -447,7 +447,7 @@ + .SH "SEE ALSO" + .BR sane (7), + .br +-.I @DOCDIR@/plustek/Plustek-PARPORT.changes ++.I @DOCDIR@/plustek/Plustek\-PARPORT.changes + .br + .I http://www.gjaeger.de/scanner/plustek_pp/ + +@@ -460,7 +460,7 @@ + .br + Mailing-List archive at: + .br +-.B http://www.sane-project.org/mailing-lists.html ++.B http://www.sane\-project.org/mailing\-lists.html + .PP + or directly from the projects' homepage at: + .br +diff -urNad sane-backends-1.0.19~/doc/sane-pnm.man sane-backends-1.0.19/doc/sane-pnm.man +--- sane-backends-1.0.19~/doc/sane-pnm.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-pnm.man 2008-07-20 12:34:23.112587234 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-pnm 5 "22 April 2001" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-pnm ++.TH sane\-pnm 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-pnm + .SH NAME +-sane-pnm \- SANE PNM image reader pseudo-backend ++sane\-pnm \- SANE PNM image reader pseudo-backend + .SH DESCRIPTION + The +-.B sane-pnm ++.B sane\-pnm + library implements a SANE (Scanner Access Now Easy) backend that + provides access to PNM (Portable aNyMap files, which covers PBM bitmap + files, PGM grayscale files, and PPM pixmap files). The purpose of +@@ -19,10 +19,10 @@ + No configuration required. + .SH FILES + .TP +-.I @LIBDIR@/libsane-pnm.a ++.I @LIBDIR@/libsane\-pnm.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-pnm.so ++.I @LIBDIR@/libsane\-pnm.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -38,7 +38,7 @@ + user. This is limited to the files saned can access (usually it's running as + user "sane"). All pnm files can be read if saned runs as root which isn't + recommended anyway. The pnm backend is disabled by default. If you want to use +-it, enable it with configure (see configure --help for details). Be sure that ++it, enable it with configure (see configure \-\-help for details). Be sure that + only trusted users can access the pnm backend over saned. + .SH AUTHOR + Andreas Beck, Gordon Matzigkeit, and David Mosberger +diff -urNad sane-backends-1.0.19~/doc/sane-qcam.man sane-backends-1.0.19/doc/sane-qcam.man +--- sane-backends-1.0.19~/doc/sane-qcam.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-qcam.man 2008-07-20 12:34:23.112587234 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-qcam 5 "25 October 1997" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-qcam ++.TH sane\-qcam 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-qcam + .SH NAME +-sane-qcam \- SANE backend for Connectix QuickCam cameras ++sane\-qcam \- SANE backend for Connectix QuickCam cameras + .SH DESCRIPTION + The +-.B sane-qcam ++.B sane\-qcam + library implements a SANE (Scanner Access Now Easy) backend that + provides access Connectix QuickCam cameras. + .SH "DEVICE NAMES" +@@ -50,10 +50,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-qcam.a ++.I @LIBDIR@/libsane\-qcam.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-qcam.so ++.I @LIBDIR@/libsane\-qcam.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +diff -urNad sane-backends-1.0.19~/doc/sane-ricoh.man sane-backends-1.0.19/doc/sane-ricoh.man +--- sane-backends-1.0.19~/doc/sane-ricoh.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-ricoh.man 2008-07-20 12:34:23.121278070 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-ricoh 5 "24 Jun 2000" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-ricoh ++.TH sane\-ricoh 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-ricoh + .SH NAME +-sane-ricoh \- SANE backend for Ricoh flatbed scanners ++sane\-ricoh \- SANE backend for Ricoh flatbed scanners + .SH DESCRIPTION + The +-.B sane-ricoh ++.B sane\-ricoh + library implements a SANE (Scanner Access Now Easy) backend that + provides access to the following Ricoh flatbed scanners: + .PP +@@ -27,13 +27,13 @@ + is the path-name for the special device that corresponds to a + SCSI scanner. The special device name must be a generic SCSI device or a + symlink to such a device. The program +-.IR sane-find-scanner ++.IR sane\-find\-scanner + helps to find out the correct device. Under Linux, such a device name + could be + .I /dev/sga + or + .IR /dev/sge , +-for example. See sane-scsi(5) for details. ++for example. See sane\-scsi(5) for details. + + .SH FILES + .TP +@@ -42,10 +42,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-ricoh.a ++.I @LIBDIR@/libsane\-ricoh.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-ricoh.so ++.I @LIBDIR@/libsane\-ricoh.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -73,7 +73,7 @@ + export SANE_DEBUG_RICOH=4 + + .SH "SEE ALSO" +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + .SH AUTHOR + Feico W. Dillema + +diff -urNad sane-backends-1.0.19~/doc/sane-s9036.man sane-backends-1.0.19/doc/sane-s9036.man +--- sane-backends-1.0.19~/doc/sane-s9036.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-s9036.man 2008-07-20 12:34:23.121539389 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-s9036 5 "24 Jun 2000" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-s9036 ++.TH sane\-s9036 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-s9036 + .SH NAME +-sane-s9036 \- SANE backend for Siemens 9036 flatbed scanners ++sane\-s9036 \- SANE backend for Siemens 9036 flatbed scanners + .SH DESCRIPTION + The +-.B sane-s9036 ++.B sane\-s9036 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Siemens 9036 flatbed scanners. + +@@ -20,13 +20,13 @@ + is the path-name for the special device that corresponds to a + SCSI scanner. The special device name must be a generic SCSI device or a + symlink to such a device. The program +-.IR sane-find-scanner ++.IR sane\-find\-scanner + helps to find out the correct device. Under Linux, such a device name + could be + .I /dev/sga + or + .IR /dev/sge , +-for example. See sane-scsi(5) for details. ++for example. See sane\-scsi(5) for details. + + .SH FILES + .TP +@@ -35,10 +35,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-s9036.a ++.I @LIBDIR@/libsane\-s9036.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-s9036.so ++.I @LIBDIR@/libsane\-s9036.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -66,6 +66,6 @@ + export SANE_DEBUG_S9036=4 + + .SH "SEE ALSO" +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + .SH AUTHOR + Ingo Schneider +diff -urNad sane-backends-1.0.19~/doc/sane-sceptre.man sane-backends-1.0.19/doc/sane-sceptre.man +--- sane-backends-1.0.19~/doc/sane-sceptre.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-sceptre.man 2008-07-20 12:34:23.121539389 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-sceptre 5 "April 21st, 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-sceptre ++.TH sane\-sceptre 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-sceptre + .SH NAME +-sane-sceptre \- SANE backend for SCEPTRE scanners ++sane\-sceptre \- SANE backend for SCEPTRE scanners + .SH DESCRIPTION + The +-.B sane-sceptre ++.B sane\-sceptre + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Sceptre flatbed scanners. This backend should be + considered +@@ -31,14 +31,14 @@ + + Valid command line options and their syntax can be listed by using + .RS +-scanimage --help -d sceptre ++scanimage \-\-help \-d sceptre + .RE + + .TP + .B Scan Mode + + .TP +-.B --mode ++.B \-\-mode + selects the basic mode of operation of the scanner valid choices are + .I Lineart, Halftone, Gray and Color. + The Lineart and Halftone mode are black and white only (1 bit). Gray +@@ -47,48 +47,48 @@ + exports 24. + + .TP +-.B --resolution ++.B \-\-resolution + selects the resolution for a scan. The scanner can do several + resolutions between 50 and 1200. + + .TP +-.B --halftone-pattern ++.B \-\-halftone\-pattern + selects the pattern mode that is used in Halftone mode. Valid options + are 1, 2, 3 and 4. + + .TP +-.B --gamma-correction ++.B \-\-gamma\-correction + controls the scanner internal gamma correction. Valid options are + "Default", "User defined", "High density printing" "Low density + printing" and "High contrast printing". + + .TP +-.B --custom-gamma ++.B \-\-custom\-gamma + (color mode only) allows the user to specify a gamma table (see the + next 3 parameters). + + .TP +-.B --red-gamma-table ++.B \-\-red\-gamma\-table + (color mode only) can be used to download a user defined + gamma table for the red channel. The table must be 256 bytes long. + + .TP +-.B --green-gamma-table ++.B \-\-green\-gamma\-table + (color mode only) can be used to download a user defined + gamma table for the green channel. The table must be 256 bytes long. + + .TP +-.B --blue-gamma-table ++.B \-\-blue\-gamma\-table + (color mode only) can be used to download a user defined gamma table + for the blue channel. The table must be 256 bytes long. + + .TP +-.B --threshold ++.B \-\-threshold + sets the threshold for black and white pixels in lineart + mode. Possible values are from 0 (darker) to 255 (lighter). + + .TP +-.B --preview ++.B \-\-preview + requests a preview scan. The resolution used for that scan is 30 dpi + and the scan area is the maximum allowed. The scan mode is user + selected. The default is "no". +@@ -97,9 +97,9 @@ + .B The geometry options + + .TP +-.B -l -t -x -y +-control the scan area: -l sets the top left x coordinate, -t the top +-left y coordinate, -x selects the width and -y the height of the scan ++.B \-l \-t \-x \-y ++control the scan area: \-l sets the top left x coordinate, \-t the top ++left y coordinate, \-x selects the width and \-y the height of the scan + area. All parameters are specified in millimeters by default. + + +@@ -109,10 +109,10 @@ + + .SH FILES + .TP +-.I @LIBDIR@/libsane-sceptre.a ++.I @LIBDIR@/libsane\-sceptre.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-sceptre.so ++.I @LIBDIR@/libsane\-sceptre.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -142,7 +142,7 @@ + + .SH "SEE ALSO" + +-sane-scsi(5), scanimage(1), xscanimage(1), xsane(1), sane(7) ++sane\-scsi(5), scanimage(1), xscanimage(1), xsane(1), sane(7) + + + .SH AUTHOR +diff -urNad sane-backends-1.0.19~/doc/sane-scsi.man sane-backends-1.0.19/doc/sane-scsi.man +--- sane-backends-1.0.19~/doc/sane-scsi.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-scsi.man 2008-07-20 12:34:23.130028463 +0200 +@@ -1,7 +1,7 @@ +-.TH sane-scsi 5 "28 Oct 2003" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-scsi ++.TH sane\-scsi 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-scsi + .SH NAME +-sane-scsi \- SCSI adapter tips for scanners ++sane\-scsi \- SCSI adapter tips for scanners + .SH DESCRIPTION + This manual page contains various operating-system specific tips and + tricks on how to get scanners with a SCSI interface working. +@@ -22,9 +22,9 @@ + .BR /dev/scanner . + For a detailed description of each backend's configuration file, + please refer to the relevant backend manual page (e.g., +-.BR sane-epson (5) ++.BR sane\-epson (5) + for Epson scanners, +-.BR sane-hp (5) ++.BR sane\-hp (5) + for HP scanners, etc.). + .PP + For some operating systems (e.g. Linux and OS/2), there is an alternate way of +@@ -65,7 +65,7 @@ + it is a compatible device. For example, the line + .PP + .RS +-scsi MUSTEK MFS-06000CX Scanner 0 00 03 00 ++scsi MUSTEK MFS\-06000CX Scanner 0 00 03 00 + .RE + .PP + would attach the Mustek SCSI scanner with the following /proc/scsi/scsi entry: +@@ -74,7 +74,7 @@ + .ft CR + .nf + Host: scsi0 Channel: 00 Id: 03 Lun: 00 +- Vendor: MUSTEK Model: MFS-06000CX Rev: 4.04 ++ Vendor: MUSTEK Model: MFS\-06000CX Rev: 4.04 + Type: Scanner ANSI SCSI revision: 0 + .fi + .ft R +@@ -184,7 +184,7 @@ + buffer size for the generic SCSI driver. From SG driver version 2.0 on, the + maximum buffer size can be changed at program run time, and there is no restriction in size. This driver version is part of the Linux kernels from + version 2.2.7 on. If the new SG driver is available some backends +-(e.g. sane-umax, sane-mustek, sane-sharp) automatically request larger scsi ++(e.g. sane\-umax, sane\-mustek, sane\-sharp) automatically request larger scsi + buffers. If a backend does not automatically request a larger scsi buffer, set + the environment variable + .B SANE_SG_BUFFERSIZE +@@ -218,12 +218,12 @@ + the command: + .PP + .RS +-echo "scsi add-single-device 2 0 5 0" > /proc/scsi/scsi ++echo "scsi add\-single\-device 2 0 5 0" > /proc/scsi/scsi + .RE + .PP + and the kernel will probe and recognize your scanner (this needs to be + done as root). It's also possible to dynamically remove a SCSI device +-by using the ``remove-single-device'' command. For details, please ++by using the ``remove\-single\-device'' command. For details, please + refer to to the SCSI-2.4-HOWTO. + .PP + Scanners are known to work with the following SCSI adapters under Linux. This +@@ -320,9 +320,9 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-find-scanner (1), +-.BR sane-"backendname" (5), +-.BR sane-usb (5) ++.BR sane\-find\-scanner (1), ++.BR sane\-"backendname" (5), ++.BR sane\-usb (5) + + .SH AUTHOR + David Mosberger +diff -urNad sane-backends-1.0.19~/doc/sane-sharp.man sane-backends-1.0.19/doc/sane-sharp.man +--- sane-backends-1.0.19~/doc/sane-sharp.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-sharp.man 2008-07-20 12:34:23.202863042 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-sharp 5 "21 Nov 2000" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-sharp ++.TH sane\-sharp 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-sharp + .SH NAME +-sane-sharp \- SANE backend for SHARP scanners ++sane\-sharp \- SANE backend for SHARP scanners + .SH DESCRIPTION + The +-.B sane-sharp ++.B sane\-sharp + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Sharp SCSI scanners. This backend should be + considered +@@ -58,13 +58,13 @@ + .I /dev/sga + or + .IR /dev/sge , +-for example. See sane-scsi(5) for details. ++for example. See sane\-scsi(5) for details. + + .SH SCAN OPTIONS + + .B Scan Mode + (parameter +-.B --mode ++.B \-\-mode + for scanimage). Possible settings: + .RS + .B Lineart +@@ -84,7 +84,7 @@ + + .B Halftone Pattern + (parameter +-.B --halftone-pattern ++.B \-\-halftone\-pattern + for scanimage). Available only for the JX-330 series scanners. + Possible settings: + .RS +@@ -103,7 +103,7 @@ + + .B Paper Source + (parameter +-.B --source ++.B \-\-source + for scanimage). This option is only available, if an automatic document + feeder or a transparency adapter is installed. Possible settings: + .RS +@@ -118,7 +118,7 @@ + + .B Custom Gamma + (parameter +-.B --custom-gamma ++.B \-\-custom\-gamma + for scanimage). This option determines whether a builtin or a custom + gamma-table is used. Possible settings: + .RS +@@ -131,7 +131,7 @@ + + .B Gamma + (parameter +-.B --Gamma ++.B \-\-Gamma + for scanimage). This option is only available, if + .B Custom Gamma + is set to +@@ -148,32 +148,32 @@ + + .B Gamma Table + (parameter +-.B --gamma-table ++.B \-\-gamma\-table + for scanimage). Allowed values: 0..255; 256 numbers must be defined. + The default values are 0, 1, 2, .. 255 (i.e., gamma == 1). This table + is only used for gray scale scans. + + .B Red Gamma Table + (parameter +-.B --red-gamma-table ++.B \-\-red\-gamma\-table + for scanimage). Allowed values: 0..255; 256 numbers must be defined. + The default values are 0, 1, 2, .. 255 (i.e., gamma == 1). + + .B Green Gamma Table + (paramter +-.B --green-gamma-table ++.B \-\-green\-gamma\-table + for scanimage). Allowed values: 0..255; 256 numbers must be defined. + The default values are 0, 1, 2, .. 255 (i.e., gamma == 1). + + .B Blue Gamma Table + (paramter +-.B --blue-gamma-table ++.B \-\-blue\-gamma\-table + for scanimage). Allowed values: 0..255; 256 numbers must be defined. + The default values are 0, 1, 2, .. 255 (i.e., gamma == 1). + + .B Resolution + in pixel per inch (parameter +-.B --resolution ++.B \-\-resolution + for scanimage). Selects the resolution of the scanned image. Allowed values: + .RS + .B 30..600 +@@ -191,11 +191,11 @@ + xsane. With scanimage, enter one of the following commands: + + .RS +-.I scanimage -d sharp --source """Automatic Document Feeder""" --help ++.I scanimage \-d sharp \-\-source """Automatic Document Feeder""" \-\-help + +-.I scanimage -d sharp --source Flatbed --help ++.I scanimage \-d sharp \-\-source Flatbed \-\-help + +-.I scanimage -d sharp --source """Transparency Adapter""" --help ++.I scanimage \-d sharp \-\-source """Transparency Adapter""" \-\-help + .RE + + in order to see the allowed parameter values for the scan window. +@@ -204,25 +204,25 @@ + + .RS + Top-left x position of scan area (parameter +-.B -l ++.B \-l + for scanimage); + .br + Top-left y position of scan area (parameter +-.B -t ++.B \-t + for scanimage); + .br + bottom right x position of scan area (parameter +-.B -x ++.B \-x + for scanimage); + .br + bottom right y position of scan area (parameter +-.B -y ++.B \-y + for scanimage); + .RE + + .B Edge emphasis + (parameter +-.B --Edge emphasis ++.B \-\-Edge emphasis + for scanimage). This option is not available for the JX-250 and the JX-350. + Possible settings: + .RS +@@ -239,7 +239,7 @@ + + .B Threshold + (parameter +-.B --threshold ++.B \-\-threshold + for scanimage). Sets the threshold for black and white pixels in lineart + mode. Possible values: + .RS +@@ -251,7 +251,7 @@ + + .B Threshold Red + (parameter +-.B --threshold-red ++.B \-\-threshold-red + for scanimage). Sets the threshold for the red component of a pixel in + in lineart color scan mode. Possible values: + .RS +@@ -263,7 +263,7 @@ + + .B Threshold Green + (parameter +-.B --threshold-green ++.B \-\-threshold-green + for scanimage). Sets the threshold for the green component of a pixel in + in lineart color scan mode. Possible values: + .RS +@@ -275,7 +275,7 @@ + + .B Threshold Blue + (parameter +-.B --threshold-blue ++.B \-\-threshold-blue + for scanimage). Sets the threshold for the blue component of a pixel in + in lineart color scan mode. Possible values: + .RS +@@ -287,7 +287,7 @@ + + .B Light Color + (parameter +-.B --LightColor ++.B \-\-LightColor + for scanimage). Sets the color of the light source. Possible values: + .RS + .B white +@@ -314,7 +314,7 @@ + .I sharp.conf + file is a list of options and device names that correspond to Sharp + scanners. Empty lines and lines beginning with a hash mark (#) are +-ignored. See sane-scsi(5) for details about device names. ++ignored. See sane\-scsi(5) for details about device names. + .PP + Lines setting an option start with the key word + .B option, +@@ -452,10 +452,10 @@ + .I @CONFIGDIR@/sharp.conf + The backend configuration file. + .TP +-.I @LIBDIR@/libsane-sharp.a ++.I @LIBDIR@/libsane\-sharp.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-sharp.so ++.I @LIBDIR@/libsane\-sharp.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -495,11 +495,11 @@ + tested. + + .SH "SEE ALSO" +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + .SH AUTHORS + Kazuya Fukuda, Abel Deuring + .SH CREDITS + The Sharp backend is based on the Canon backend written by Helmut Koeberle + .PP +-Parts of this man page are a plain copy of sane-mustek(5) by David ++Parts of this man page are a plain copy of sane\-mustek(5) by David + Mosberger-Tang, Andreas Czechanowski and Andreas Bolsch +diff -urNad sane-backends-1.0.19~/doc/sane-sm3600.man sane-backends-1.0.19/doc/sane-sm3600.man +--- sane-backends-1.0.19~/doc/sane-sm3600.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-sm3600.man 2008-07-20 12:34:23.202863042 +0200 +@@ -1,16 +1,16 @@ +-.TH sane-sm3600 5 "16 August 2005" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-sm3600 ++.TH sane\-sm3600 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-sm3600 + .SH NAME +-sane-sm3600 \- SANE backend for Microtek scanners with M011 USB chip ++sane\-sm3600 \- SANE backend for Microtek scanners with M011 USB chip + .SH DESCRIPTION + The +-.B sane-sm3600 ++.B sane\-sm3600 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to some Microtek scanners with the Toshiba M011 custom + USB chip. This backend should be considered alpha. + .PP + There are also backends for Microtek scanners with SCSI command set. +-Refer to sane-microtek(5) and sane-microtek2(5) for details. ++Refer to sane\-microtek(5) and sane\-microtek2(5) for details. + .PP + At present, the following + scanners are known positively to work with this backend: +@@ -49,10 +49,10 @@ + + .SH FILES + .TP +-.I @LIBDIR@/libsane-sm3600.a ++.I @LIBDIR@/libsane\-sm3600.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-sm3600.so ++.I @LIBDIR@/libsane\-sm3600.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -71,7 +71,7 @@ + export SANE_DEBUG_SM3600=5 + + .SH "SEE ALSO" +-sane-microtek2(5), http://sm3600.sourceforge.net ++sane\-microtek2(5), http://sm3600.sourceforge.net + + .SH AUTHOR + .br +diff -urNad sane-backends-1.0.19~/doc/sane-sm3840.man sane-backends-1.0.19/doc/sane-sm3840.man +--- sane-backends-1.0.19~/doc/sane-sm3840.man 2008-07-20 12:30:21.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-sm3840.man 2008-07-20 12:34:23.203539554 +0200 +@@ -1,18 +1,18 @@ +-.TH sane-sm3840 5 "Mar 15, 2005" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-sm3840 ++.TH sane\-sm3840 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-sm3840 + .SH NAME +-sane-sm3840 \- SANE backend for Microtek scanners with SCAN08 USB chip ++sane\-sm3840 \- SANE backend for Microtek scanners with SCAN08 USB chip + .SH DESCRIPTION + The +-.B sane-sm3840 ++.B sane\-sm3840 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to some Microtek scanners with the SCAN08 + USB chip. + .PP + There exist backends for Microtek scanners with SCSI command set. +-Refer to sane-microtek(5) and sane-microtek2(5) for details. ++Refer to sane\-microtek(5) and sane\-microtek2(5) for details. + .PP +-There also exists a Microtek 3600 series driver, see sane-sm3600(5) for ++There also exists a Microtek 3600 series driver, see sane\-sm3600(5) for + details. + .PP + At present, the following +@@ -39,27 +39,27 @@ + .PP + The following options are supported by the sm3840-driver: + .PP +-.B --mode color|gray ++.B \-\-mode color|gray + .br + Color or grayscale mode. + +-.B --resolution 150|300|600|1200 ++.B \-\-resolution 150|300|600|1200 + .br + Pixels per inch for scans. + +-.B --depth 8|16 ++.B \-\-depth 8|16 + .br + Note that the least significant bits of 16bpp mode may be noise. + +-.B --brightness 1..4096 ++.B \-\-brightness 1..4096 + .br + Higher numbers increase brightness of returned image. + +-.B --contrast 0.1..9.9 ++.B \-\-contrast 0.1..9.9 + .br + Larger numbers decrease contrast of returned image. + +-.B --lamp-timeout 1..15 ++.B \-\-lamp\-timeout 1..15 + .br + Time in minutes until the lamp is turned off after a scan. + +@@ -68,10 +68,10 @@ + + .SH FILES + .TP +-.I @LIBDIR@/libsane-sm3840.a ++.I @LIBDIR@/libsane\-sm3840.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-sm3840.so ++.I @LIBDIR@/libsane\-sm3840.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -86,7 +86,7 @@ + SANE_DEBUG_SM3840 to 1. + + .SH "SEE ALSO" +-sane-microtek2(5), sane-sm3600(5), http://www.ziplabel.com/sm3840 ++sane\-microtek2(5), sane\-sm3600(5), http://www.ziplabel.com/sm3840 + + .SH AUTHOR + .br +diff -urNad sane-backends-1.0.19~/doc/sane-snapscan.man sane-backends-1.0.19/doc/sane-snapscan.man +--- sane-backends-1.0.19~/doc/sane-snapscan.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-snapscan.man 2008-07-20 12:34:23.203539554 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-snapscan 5 "26 May 2001" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-snapscan ++.TH sane\-snapscan 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-snapscan + .SH NAME +-sane-snapscan \- SANE backend for AGFA SnapScan flatbed scanners ++sane\-snapscan \- SANE backend for AGFA SnapScan flatbed scanners + .SH DESCRIPTION + The +-.B sane-snapscan ++.B sane\-snapscan + library implements a SANE (Scanner Access Now Easy) backend that provides + access to AGFA SnapScan flatbed scanners. At present, the following scanners + are supported from this backend: AGFA SnapScan 300, 310, 600, and 1236s, +@@ -31,7 +31,7 @@ + .I /dev/sga + or + .IR /dev/sge , +-for example. See sane-scsi(5) for details. ++for example. See sane\-scsi(5) for details. + .P + For USB scanners the devicename must contain the keyword "usb", as in + .I /dev/usbscanner +@@ -52,7 +52,7 @@ + .I snapscan.conf + file is a list of device names that correspond to SnapScan + scanners. Empty lines and lines starting with a hash mark (#) are +-ignored. See sane-scsi(5) on details of what constitutes a valid ++ignored. See sane\-scsi(5) on details of what constitutes a valid + device name. + + .SH FILES +@@ -62,10 +62,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-snapscan.a ++.I @LIBDIR@/libsane\-snapscan.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-snapscan.so ++.I @LIBDIR@/libsane\-snapscan.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -95,7 +95,7 @@ + Man page doesn't provide much information yet. + + .SH "SEE ALSO" +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + .br + http://www.cs.ualberta.ca/~charter/SnapScan/snapscan.html + .br +diff -urNad sane-backends-1.0.19~/doc/sane-sp15c.man sane-backends-1.0.19/doc/sane-sp15c.man +--- sane-backends-1.0.19~/doc/sane-sp15c.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-sp15c.man 2008-07-20 12:34:23.203539554 +0200 +@@ -1,11 +1,11 @@ +-.TH sane-sp15c 5 "17 Apr 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.TH sane\-sp15c 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" + + .SH NAME +-sane-sp15c \- SANE backend for Fujitsu ScanPartner 15C flatbed scanner ++sane\-sp15c \- SANE backend for Fujitsu ScanPartner 15C flatbed scanner + + .SH DESCRIPTION + The +-.B sane-sp15c ++.B sane\-sp15c + library implements a SANE (Scanner Access Now Easy) backend which + provides access to the Fujitsu flatbed scanners. + At present, the following +@@ -39,7 +39,7 @@ + resolution, bit-depth (and color), and enable the automatic document feeder. + + .SH "SEE ALSO" +-sane(7), sane-scsi(5), sane-fujitsu(5) ++sane(7), sane\-scsi(5), sane\-fujitsu(5) + .br + Fujitsu ScanPartner 15C OEM Manual, Doc. No. 250-0081-0 + .br +diff -urNad sane-backends-1.0.19~/doc/sane-st400.man sane-backends-1.0.19/doc/sane-st400.man +--- sane-backends-1.0.19~/doc/sane-st400.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-st400.man 2008-07-20 12:34:23.203539554 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-st400 5 "08 Mar 1999" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-st400 ++.TH sane\-st400 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-st400 + .SH NAME +-sane-st400 \- SANE backend for Siemens ST/Highscan flatbed scanners ++sane\-st400 \- SANE backend for Siemens ST/Highscan flatbed scanners + .SH DESCRIPTION + The +-.B sane-st400 ++.B sane\-st400 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Siemens ST400 flatbed scanners and compatibles. + At present, the following scanners are supported by this backend: +@@ -22,9 +22,9 @@ + and ST600. If you own one of these scanners, or a scanner other than the + ones listed above that works with this backend, please let us know by sending + the scanner's model name, SCSI ID, and firmware revision to +-.IR sane-devel@lists.alioth.debian.org . +-Have a look at http://www.sane-project.org/mailing-lists.html concerning subscription +-to sane-devel. ++.IR sane\-devel@lists.alioth.debian.org . ++Have a look at http://www.sane\-project.org/mailing\-lists.html concerning subscription ++to sane\-devel. + + .SH "DEVICE NAMES" + This backend expects device names of the form: +@@ -42,7 +42,7 @@ + .I /dev/sga + or + .IR /dev/sge , +-for example. See sane-scsi(5) for details. ++for example. See sane\-scsi(5) for details. + .SH CONFIGURATION + The contents of the + .I st400.conf +@@ -82,10 +82,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-st400.a ++.I @LIBDIR@/libsane\-st400.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-st400.so ++.I @LIBDIR@/libsane\-st400.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -137,7 +137,7 @@ + me the report. + + .SH "SEE ALSO" +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + .br + http://www.informatik.uni-oldenburg.de/~ingo/sane/ + +diff -urNad sane-backends-1.0.19~/doc/sane-stv680.man sane-backends-1.0.19/doc/sane-stv680.man +--- sane-backends-1.0.19~/doc/sane-stv680.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-stv680.man 2008-07-20 12:34:23.204539835 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-stv680 5 "09 June 2006" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-stv680 ++.TH sane\-stv680 5 "11 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-stv680 + .SH NAME +-sane-stv680 \- SANE backend for STV680 camera's ++sane\-stv680 \- SANE backend for STV680 camera's + .SH DESCRIPTION + The +-.B sane-stv680 ++.B sane\-stv680 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to some STV680 cameras. This backend + should be considered +@@ -40,21 +40,21 @@ + + The options the backend supports can either be selected through + command line options to programs like scanimage or through GUI +-elements in xcam. For both programs use the -B option needed for size buffer. ++elements in xcam. For both programs use the \-B option needed for size buffer. + + Some frontends examples: + .br + xcam + .RS +-xcam -B ++xcam \-B + .RE + + scanimage: for writing in batch mode to a file or to a new file each time. + .RS +-scanimage -B -d stv680:libusb:001:002 --batch=out.ppm --batch-count 5 --mode "Color RGB" ++scanimage \-B \-d stv680:libusb:001:002 \-\-batch=out.ppm \-\-batch-count 5 \-\-mode "Color RGB" + .RE + .RS +-scanimage -B -d stv680:libusb:001:002 --batch=out%d.ppm --batch-count 5 --mode "Color RGB" ++scanimage \-B \-d stv680:libusb:001:002 \-\-batch=out%d.ppm \-\-batch-count 5 \-\-mode "Color RGB" + .RE + + .br +@@ -64,7 +64,7 @@ + + Valid command line options and their syntax can be listed by using + .RS +-scanimage --help -d stv680 ++scanimage \-\-help \-d stv680 + .RE + + +@@ -72,23 +72,23 @@ + .B Scan Mode + + .TP +-.B --mode ++.B \-\-mode + selects the basic mode of operation of the webcams valid choices. + + The read resolution mode is 8 bits, output resolution is 24 bits. + Selects the resolution for a scan. + The camera can do only the resolutions listed. + .TP +-.B --Raw ++.B \-\-Raw + In this mode raw data is displayed + .TP +-.B --Color ++.B \-\-Color + In this mode the bayer unshuffle is done but no color correction + .TP +-.B --Color_RGB ++.B \-\-Color_RGB + Bayer unshuffle, color correction + .TP +-.B --Color_RGB_TXT ++.B \-\-Color_RGB_TXT + Bayer unshuffle, color correction, textline with date and time is added + + +@@ -96,22 +96,22 @@ + .B Enhancement options + + .TP +-.B --white-level-r ++.B \-\-white\-level\-r + Selects what red radiance level should be + considered "white", when scanning some sheets by changing the calibration +-value loaded into the scanner. Scale -32 .. 0 .. +32 in steps of 1. ++value loaded into the scanner. Scale \-32 .. 0 .. +32 in steps of 1. + + .TP +-.B --white-level-g ++.B \-\-white\-level\-g + Selects what green radiance level should be + considered "white", when scanning some sheets by changing the calibration i +-value loaded into the scanner. Scale -32 .. 0 .. +32 in steps of 1. ++value loaded into the scanner. Scale \-32 .. 0 .. +32 in steps of 1. + + .TP +-.B --white-level-b ++.B \-\-white\-level\-b + Selects what blue radiance level should be + considered "white", when scanning some sheets by changing the calibration +-value loaded into the scanner. Scale -32 .. 0 .. +32 in steps of 1. ++value loaded into the scanner. Scale \-32 .. 0 .. +32 in steps of 1. + + .SH CONFIGURATION FILE + The configuration file @CONFIGDIR@/stv680.conf supports only one +@@ -120,10 +120,10 @@ + + .SH FILES + .TP +-.I @LIBDIR@/libsane-stv680.a ++.I @LIBDIR@/libsane\-stv680.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-stv680.so ++.I @LIBDIR@/libsane\-stv680.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -155,7 +155,7 @@ + + .SH "SEE ALSO" + +-sane-usb(5), scanimage(1), xcam(1), sane(7) ++sane\-usb(5), scanimage(1), xcam(1), sane(7) + + + .SH AUTHORS +diff -urNad sane-backends-1.0.19~/doc/sane-tamarack.man sane-backends-1.0.19/doc/sane-tamarack.man +--- sane-backends-1.0.19~/doc/sane-tamarack.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-tamarack.man 2008-07-20 12:34:23.204539835 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-tamarack 5 "24 Jun 2000" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-tamarack ++.TH sane\-tamarack 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-tamarack + .SH NAME +-sane-tamarack \- SANE backend for Tamarack flatbed scanners ++sane\-tamarack \- SANE backend for Tamarack flatbed scanners + .SH DESCRIPTION + The +-.B sane-tamarack ++.B sane\-tamarack + library implements a SANE (Scanner Access Now Easy) backend that + provides access to the following Tamarack flatbed scanners: + .PP +@@ -29,13 +29,13 @@ + is the path-name for the special device that corresponds to a + SCSI scanner. The special device name must be a generic SCSI device or a + symlink to such a device. The program +-.IR sane-find-scanner ++.IR sane\-find\-scanner + helps to find out the correct device. Under Linux, such a device name + could be + .I /dev/sga + or + .IR /dev/sge , +-for example. See sane-scsi(5) for details. ++for example. See sane\-scsi(5) for details. + + .SH FILES + .TP +@@ -44,10 +44,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-tamarack.a ++.I @LIBDIR@/libsane\-tamarack.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-tamarack.so ++.I @LIBDIR@/libsane\-tamarack.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -75,6 +75,6 @@ + export SANE_DEBUG_TAMARACK=4 + + .SH "SEE ALSO" +-sane(7), sane-scsi(5) ++sane(7), sane\-scsi(5) + .SH AUTHOR + Roger Wolff +diff -urNad sane-backends-1.0.19~/doc/sane-teco1.man sane-backends-1.0.19/doc/sane-teco1.man +--- sane-backends-1.0.19~/doc/sane-teco1.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-teco1.man 2008-07-20 12:34:23.204539835 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-teco1 5 "August 30th, 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-teco1 ++.TH sane\-teco1 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-teco1 + .SH NAME +-sane-teco1 \- SANE backend for TECO / RELISYS scanners ++sane\-teco1 \- SANE backend for TECO / RELISYS scanners + .SH DESCRIPTION + The +-.B sane-teco1 ++.B sane\-teco1 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to some TECO SCSI flatbed scanners. This backend + should be considered +@@ -47,7 +47,7 @@ + should contact the author for that. + + The TECO VM number can usually be found at the back of the scanner. It +-is also part of the FCC ID. "sane-find-scanner -v" will also show the ++is also part of the FCC ID. "sane\-find\-scanner \-v" will also show the + scsi inquiry, and if it is a TECO scanner, the name will be there too. + + The options the backend supports can either be selected through +@@ -61,14 +61,14 @@ + + Valid command line options and their syntax can be listed by using + .RS +-scanimage --help -d teco1 ++scanimage \-\-help \-d teco1 + .RE + + .TP + .B Scan Mode + + .TP +-.B --mode ++.B \-\-mode + selects the basic mode of operation of the scanner valid choices are + .I Black & White + , +@@ -80,7 +80,7 @@ + color image. + + .TP +-.B --resolution ++.B \-\-resolution + selects the resolution for a scan. The scanner can do all resolutions + between 1 and 600, in increments of 1. + +@@ -89,9 +89,9 @@ + .B Geometry options + + .TP +-.B -l -t -x -y +-control the scan area: -l sets the top left x coordinate, -t the top +-left y coordinate, -x selects the width and -y the height of the scan ++.B \-l \-t \-x \-y ++control the scan area: \-l sets the top left x coordinate, \-t the top ++left y coordinate, \-x selects the width and \-y the height of the scan + area. All parameters are specified in millimeters by default. + + +@@ -99,27 +99,27 @@ + .B Enhancement options + + .TP +-.B --custom-gamma ++.B \-\-custom\-gamma + (color mode only) allows the user to specify a gamma table (see the + next 3 parameters). + + .TP +-.B --red-gamma-table ++.B \-\-red\-gamma\-table + (color mode only) can be used to download a user defined + gamma table for the red channel. The table must be 256 bytes long. + + .TP +-.B --green-gamma-table ++.B \-\-green\-gamma\-table + (color mode only) can be used to download a user defined + gamma table for the green channel. The table must be 256 bytes long. + + .TP +-.B --blue-gamma-table ++.B \-\-blue\-gamma\-table + (color mode only) can be used to download a user defined gamma table + for the blue channel. The table must be 256 bytes long. + + .TP +-.B --dither ++.B \-\-dither + (Black & White only) select the dither mask to use. Possible values are + .I Line art + , +@@ -141,7 +141,7 @@ + + + .TP +-.B --preview ++.B \-\-preview + requests a preview scan. The resolution used for that scan is 22 dpi + and the scan area is the maximum allowed. The scan mode is user + selected. The default is "no". +@@ -153,10 +153,10 @@ + + .SH FILES + .TP +-.I @LIBDIR@/libsane-teco1.a ++.I @LIBDIR@/libsane\-teco1.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-teco1.so ++.I @LIBDIR@/libsane\-teco1.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -183,7 +183,7 @@ + + .SH "SEE ALSO" + +-sane-scsi(5), scanimage(1), xscanimage(1), xsane(1), sane(7) ++sane\-scsi(5), scanimage(1), xscanimage(1), xsane(1), sane(7) + + + .SH AUTHOR +diff -urNad sane-backends-1.0.19~/doc/sane-teco2.man sane-backends-1.0.19/doc/sane-teco2.man +--- sane-backends-1.0.19~/doc/sane-teco2.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-teco2.man 2008-07-20 12:34:40.218539472 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-teco2 5 "29 July 2005" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-teco2 ++.TH sane\-teco2 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-teco2 + .SH NAME +-sane-teco2 \- SANE backend for TECO / RELISYS scanners ++sane\-teco2 \- SANE backend for TECO / RELISYS scanners + .SH DESCRIPTION + The +-.B sane-teco2 ++.B sane\-teco2 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to some TECO SCSI flatbed scanners. This backend + should be considered +@@ -58,14 +58,14 @@ + + Valid command line options and their syntax can be listed by using + .RS +-scanimage --help -d teco2 ++scanimage \-\-help \-d teco2 + .RE + + .TP + .B Scan Mode + + .TP +-.B --mode ++.B \-\-mode + selects the basic mode of operation of the scanner valid choices are + .I Lineart + , +@@ -77,7 +77,7 @@ + color image. + + .TP +-.B --resolution ++.B \-\-resolution + Lineart and Gray + selects the resolution for a scan. The scanner can do all resolutions + between 1 and 600, in increments of 1. +@@ -90,17 +90,17 @@ + All values with ydpi > 300 (300 x 600) or 600 (600 x 1200) result in + a wrong proportion for the scan. The proportion can be adjusted with + the following imagemagick command: +-convert -geometry (dpi/max_xdpi * 100%)x100% ++convert \-geometry (dpi/max_xdpi * 100%)x100% + max_xdpi is for the vm3575 constant with 300 dpi +-e.g. 600dpi adjust with: convert -geometry 200%x100% ++e.g. 600dpi adjust with: convert \-geometry 200%x100% + + .TP + .B Geometry options + + .TP +-.B -l -t -x -y +-control the scan area: -l sets the top left x coordinate, -t the top +-left y coordinate, -x selects the width and -y the height of the scan ++.B \-l \-t \-x \-y ++control the scan area: \-l sets the top left x coordinate, \-t the top ++left y coordinate, \-x selects the width and \-y the height of the scan + area. All parameters are specified in millimeters by default. + + +@@ -108,45 +108,45 @@ + .B Enhancement options + + .TP +-.B --custom-gamma (no custom gamma option for the VM3564 and VM356A) ++.B \-\-custom\-gamma (no custom gamma option for the VM3564 and VM356A) + (color mode only) allows the user to specify a gamma table (see the + next 3 parameters). + + .TP +-.B --red-gamma-table ++.B \-\-red\-gamma\-table + (color mode only) can be used to download a user defined + gamma table for the red channel. The table must be 256 bytes long. + + .TP +-.B --green-gamma-table ++.B \-\-green\-gamma\-table + (color mode only) can be used to download a user defined + gamma table for the green channel. The table must be 256 bytes long. + + .TP +-.B --blue-gamma-table ++.B \-\-blue\-gamma\-table + (color mode only) can be used to download a user defined gamma table + for the blue channel. The table must be 256 bytes long. + + .TP +-.B --white-level-r ++.B \-\-white\-level\-r + (VM3564, VM356A, VM3575 and VM6575 only) Selects what red radiance level should be + considered "white", when scanning some sheets by changing the calibration + value loaded into the scanner. Scale 0..64 in steps of 1. + + .TP +-.B --white-level-g ++.B \-\-white\-level\-g + (VM3564, VM356A, VM3575 and VM6575 only) Selects what green radiance level should be + considered "white", when scanning some sheets by changing the calibration i + value loaded into the scanner. Scale 0..64 in steps of 1. + + .TP +-.B --white-level-b ++.B \-\-white\-level\-b + (VM3564, VM356A, VM3575 and VM6575 only) Selects what blue radiance level should be + considered "white", when scanning some sheets by changing the calibration + value loaded into the scanner. Scale 0..64 in steps of 1. + + .TP +-.B --preview ++.B \-\-preview + requests a preview scan. The resolution used for that scan is 50 dpi + (for VM356A and VM6575 75 dpi) and the scan area is the maximum allowed. + The scan mode is user selected. The default is "no". +@@ -159,10 +159,10 @@ + + .SH FILES + .TP +-.I @LIBDIR@/libsane-teco2.a ++.I @LIBDIR@/libsane\-teco2.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-teco2.so ++.I @LIBDIR@/libsane\-teco2.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -196,7 +196,7 @@ + + .SH "SEE ALSO" + +-sane-scsi(5), scanimage(1), xscanimage(1), xsane(1), sane(7) ++sane\-scsi(5), scanimage(1), xscanimage(1), xsane(1), sane(7) + + + .SH AUTHORS +diff -urNad sane-backends-1.0.19~/doc/sane-teco3.man sane-backends-1.0.19/doc/sane-teco3.man +--- sane-backends-1.0.19~/doc/sane-teco3.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-teco3.man 2008-07-20 12:34:23.205539792 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-teco3 5 "25 July 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-teco3 ++.TH sane\-teco3 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-teco3 + .SH NAME +-sane-teco3 \- SANE backend for TECO / RELISYS scanners ++sane\-teco3 \- SANE backend for TECO / RELISYS scanners + .SH DESCRIPTION + The +-.B sane-teco3 ++.B sane\-teco3 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to some TECO SCSI flatbed scanners. This backend + should be considered +@@ -44,14 +44,14 @@ + + Valid command line options and their syntax can be listed by using + .RS +-scanimage --help -d teco3 ++scanimage \-\-help \-d teco3 + .RE + + .TP + .B Scan Mode + + .TP +-.B --mode ++.B \-\-mode + selects the basic mode of operation of the scanner valid choices are + .I Black & White + , +@@ -63,7 +63,7 @@ + color image. + + .TP +-.B --resolution ++.B \-\-resolution + selects the resolution for a scan. The scanner can do all resolutions + between 1 and 1200, in increments of 1. + +@@ -72,9 +72,9 @@ + .B Geometry options + + .TP +-.B -l -t -x -y +-control the scan area: -l sets the top left x coordinate, -t the top +-left y coordinate, -x selects the width and -y the height of the scan ++.B \-l \-t \-x \-y ++control the scan area: \-l sets the top left x coordinate, \-t the top ++left y coordinate, \-x selects the width and \-y the height of the scan + area. All parameters are specified in millimeters by default. + + +@@ -82,28 +82,28 @@ + .B Enhancement options + + .TP +-.B --custom-gamma ++.B \-\-custom\-gamma + (color mode only) allows the user to specify a gamma table (see the + next 3 parameters). + + .TP +-.B --red-gamma-table ++.B \-\-red\-gamma\-table + (color mode only) can be used to download a user defined + gamma table for the red channel. The table must be 1024 bytes long. + + .TP +-.B --green-gamma-table ++.B \-\-green\-gamma\-table + (color mode only) can be used to download a user defined + gamma table for the green channel. The table must be 1024 bytes long. + + .TP +-.B --blue-gamma-table ++.B \-\-blue\-gamma\-table + (color mode only) can be used to download a user defined gamma table + for the blue channel. The table must be 1024 bytes long. + + + .TP +-.B --preview ++.B \-\-preview + requests a preview scan. The resolution used for that scan is 22 dpi + and the scan area is the maximum allowed. The scan mode is user + selected. The default is "no". +@@ -115,10 +115,10 @@ + + .SH FILES + .TP +-.I @LIBDIR@/libsane-teco3.a ++.I @LIBDIR@/libsane\-teco3.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-teco3.so ++.I @LIBDIR@/libsane\-teco3.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -145,7 +145,7 @@ + + .SH "SEE ALSO" + +-sane-scsi(5), scanimage(1), xscanimage(1), xsane(1), sane(7) ++sane\-scsi(5), scanimage(1), xscanimage(1), xsane(1), sane(7) + + + .SH AUTHOR +diff -urNad sane-backends-1.0.19~/doc/sane-test.man sane-backends-1.0.19/doc/sane-test.man +--- sane-backends-1.0.19~/doc/sane-test.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-test.man 2008-07-20 12:34:23.205539792 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-test 5 "2 Jan 2006" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-test ++.TH sane\-test 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-test + .SH NAME +-sane-test \- SANE backend for testing frontends ++sane\-test \- SANE backend for testing frontends + .SH DESCRIPTION + The +-.B sane-test ++.B sane\-test + library implements a SANE (Scanner Access Now Easy) backend that allows + testing the SANE installation and SANE frontends. It provides access to a + (nearly) unlimited number of virtual devices. There is no support for real +@@ -13,13 +13,13 @@ + .PP + The idea is not only to find bugs in frontends but also to show all + capabilities of SANE. Therefore +-.B sane-test ++.B sane\-test + implements functions and options that are not (or seldom) found in other + backends. + .PP + The backend is commented out in @CONFIGDIR@/dll.conf, so either the comment + character must be removed or the backend must be called explicitly. E.g. +-`scanimage -d test' or `xscanimage test'. ++`scanimage \-d test' or `xscanimage test'. + + .SH SCAN MODE OPTIONS + Option +@@ -37,20 +37,20 @@ + defined. Currently 1 = high intensity and 0 = low intensity is used. + .PP + Setting option +-.B hand-scanner ++.B hand\-scanner + results in the test-backend behaving like a hand-scanner. Hand-scanners do +-not know the image height a priori. Instead, they return a height of -1. ++not know the image height a priori. Instead, they return a height of \-1. + Setting this option allows to test whether a frontend can handle this + correctly. This option also enables a fixed width of 11 cm. + .PP + Setting option +-.B three-pass ++.B three\-pass + simulates a three-pass scanner. Older color scanners needed to scan the image + once per color (reg/green/blue) to get the full image. Therefore, in this mode + three single frames are transmitted in color mode. + .PP + Option +-.B three-pass-order ++.B three\-pass\-order + provides support for changing the order of the three frames (see option + three-pass above). A frontend should support all orders. + .PP +@@ -67,93 +67,93 @@ + + .SH SPECIAL OPTIONS + Option +-.B test-picture ++.B test\-picture + allows to set the image that's returned to the frontend. While "Solid white" + and "Solid black" are quite obvious, the other options need some more + explanation. Color patterns are used to determine if all modes and their + colors are represented correctly by the frontend. The grid should look like the + same in every mode and resolution. A table of all the test pictures can be +-found at: http://www.meier-geinitz.de/sane/test-backend/test-pictures.html. ++found at: http://www.meier\-geinitz.de/sane/test\-backend/test\-pictures.html. + .PP + If option +-.B invert-endianess ++.B invert\-endianess + is set, the upper and lower bytes of image data in 16 bit modes are exchanged. + This option can be used to test the 16 bit modes of frontends, e.g. if the + frontend uses the correct endianess. + .PP + If option +-.B read-limit ++.B read\-limit + is set, the maximum amount of data transferred with each call to sane_read() is + limited. + .PP + Option +-.B read-limit-size ++.B read\-limit\-size + sets the limit for option read-limit. A low limit slows down scanning. It + can be used to detect errors in frontend that occur because of wrong + assumptions on the size of the buffer or timing problems. + .PP + Option +-.B read-delay ++.B read\-delay + enables delaying data to the frontend. + .PP + Option +-.B read-delay-duration ++.B read\-delay\-duration + selects the number of microseconds the backends waits after each transfer of a + buffer. This option is useful to find timing-related bugs, especially if + used over the network. + .PP + If option +-.B read-return-value ++.B read\-return\-value + is different from "Default", the selected status will be returned by every + call to sane_read(). This is useful to test the frontend's handling of the + SANE statii. + .PP + If option +-.B ppl-loss ++.B ppl\-loss + is different from 0, it determines the number of pixels that are "lost" at the + end of each line. That means, lines are padded with unused data. + .PP + Option +-.B fuzzy-parameters ++.B fuzzy\-parameters + selects that fuzzy (inexact) parameters are returned as long as the scan + hasn't been started. This option can be used to test if the frontend uses the + parameters it got before the start of the scan (which it shouldn't). + .PP + Option +-.B non-blocking ++.B non\-blocking + determines if non-blocking IO for sane_read() should be used if supported by + the frontend. + .PP + If option +-.B select-fd ++.B select\-fd + is set, the backend offers a select filedescriptor for detecting if + sane_read() will return data. + .PP + If option +-.B enable-test-options ++.B enable\-test\-options + is set, a fairly big list of options for testing the various SANE option + types is enabled. + .PP + Option +-.B print-options ++.B print\-options + can be used to print a list of all options to standard error. + .PP + + .SH GEOMETRY OPTIONS + Option +-.B tl-x ++.B tl\-x + determines the top-left x position of the scan area. + .PP + Option +-.B tl-y ++.B tl\-y + determines the top-left y position of the scan area. + .PP + Option +-.B br-x ++.B br\-x + determines the bottom-right x position of the scan area. + .PP + Option +-.B br-y ++.B br\-y + determines the bottom-right y position of the scan area. + .PP + +@@ -164,34 +164,34 @@ + or bugs). + .PP + Option +-.B bool-soft-select-soft-detect ++.B bool\-soft\-select\-soft\-detect + (1/6) is a bool test option that has soft select and soft detect (and + advanced) capabilities. That's just a normal bool option. + .PP + Option +-.B bool-hard-select-soft-detect ++.B bool\-hard\-select\-soft\-detect + (2/6) is a bool test option that has hard select and soft detect (and + advanced) capabilities. That means the option can't be set by the frontend + but by the user (e.g. by pressing a button at the device). + .PP + Option +-.B bool-hard-select ++.B bool\-hard\-select + (3/6) is a bool test option that has hard select (and advanced) capabilities. + That means the option can't be set by the frontend but by the user (e.g. by + pressing a button at the device) and can't be read by the frontend. + .PP + Option +-.B bool-soft-detect ++.B bool\-soft\-detect + (4/6) is a bool test option that has soft detect (and advanced) + capabilities. That means the option is read-only. + .PP + Option +-.B bool-soft-select-soft-detect-emulated ++.B bool\-soft\-select\-soft\-detect\-emulated + (5/6) is a Bool test option that has soft select, soft detect, and emulated + (and advanced) capabilities. + .PP + Option +-.B bool-soft-select-soft-detect-auto ++.B bool\-soft\-select\-soft\-detect\-auto + (6/6) is a Bool test option that has soft select, soft detect, and automatic + (and advanced) capabilities. This option can be automatically set by the + backend. +@@ -205,26 +205,26 @@ + (1/6) is an int test option with no unit and no constraint set. + .PP + Option +-.B int-constraint-range ++.B int\-constraint\-range + (2/6) is an int test option with unit pixel and constraint range set. Minimum + is 4, maximum 192, and quant is 2. + .PP + Option +-.B int-constraint-word-list ++.B int\-constraint\-word\-list + (3/6) is an int test option with unit bits and constraint word list set. + .PP + Option +-.B int-constraint-array ++.B int\-constraint\-array + (4/6) is an int test option with unit mm and using an array without + constraints. + .PP + Option +-.B int-constraint-array-constraint-range ++.B int\-constraint\-array\-constraint\-range + (5/6) is an int test option with unit mm and using an array with a range + constraint. Minimum is 4, maximum 192, and quant is 2. + .PP + Option +-.B int-constraint-array-constraint-word-list ++.B int\-constraint\-array\-constraint\-word\-list + (6/6) is an int test option with unit percent and using an array a word list + constraint. + +@@ -236,12 +236,12 @@ + (1/3) is a fixed test option with no unit and no constraint set. + .PP + Option +-.B fixed-constraint-range ++.B fixed\-constraint\-range + (2/3) is a fixed test option with unit microsecond and constraint range +-set. Minimum is -42.17, maximum 32767.9999, and quant is 2.0. ++set. Minimum is \-42.17, maximum 32767.9999, and quant is 2.0. + .PP + Option +-.B fixed-constraint-word-list ++.B fixed\-constraint\-word\-list + (3/3) is a Fixed test option with no unit and constraint word list set. + .PP + +@@ -253,11 +253,11 @@ + (1/3) is a string test option without constraint. + .PP + Option +-.B string-constraint-string-list ++.B string\-constraint\-string\-list + (2/3) is a string test option with string list constraint. + .PP + Option +-.B string-constraint-long-string-list ++.B string\-constraint\-long\-string\-list + (3/3) is a string test option with string list constraint. Contains some more + entries... + .PP +@@ -282,10 +282,10 @@ + the handling of big file sizes. + + .TP +-.I @LIBDIR@/libsane-test.a ++.I @LIBDIR@/libsane\-test.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-test.so ++.I @LIBDIR@/libsane\-test.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -314,11 +314,11 @@ + + .SH "SEE ALSO" + sane(7), +-.IR http://www.meier-geinitz.de/sane/test-backend/ ++.IR http://www.meier\-geinitz.de/sane/test\-backend/ + + + .SH AUTHOR +-Henning Meier-Geinitz ++Henning Meier-Geinitz + + .SH BUGS + \- config file values aren't tested for correctness +diff -urNad sane-backends-1.0.19~/doc/sane-u12.man sane-backends-1.0.19/doc/sane-u12.man +--- sane-backends-1.0.19~/doc/sane-u12.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-u12.man 2008-07-20 12:34:23.206539765 +0200 +@@ -1,11 +1,11 @@ +-.TH sane-u12 5 "18 June 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-u12 ++.TH sane\-u12 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-u12 + .SH NAME +-sane-u12 \- SANE backend for Plustek USB flatbed scanners, ++sane\-u12 \- SANE backend for Plustek USB flatbed scanners, + based on older parport designs + .SH DESCRIPTION + The +-.B sane-u12 ++.B sane\-u12 + library implements a SANE (Scanner Access Now Easy) backend that + provides access to USB flatbed scanners based on Plusteks' ASIC + 98003 (parallel-port ASIC) and a GeneSys Logics' USB-parport +@@ -98,9 +98,9 @@ + You have to make sure, that the USB subsystem is loaded + correctly and you have access to the device-node. For + more details see +-.B sane-usb (5) ++.B sane\-usb (5) + manpage. You might use +-.B sane-find-scanner ++.B sane\-find\-scanner + to check that you have access to your device. + .PP + .B Note: +@@ -113,10 +113,10 @@ + .I @CONFIGDIR@/u12.conf + The backend configuration file + .TP +-.I @LIBDIR@/libsane-u12.a ++.I @LIBDIR@/libsane\-u12.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-u12.so ++.I @LIBDIR@/libsane\-u12.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -146,8 +146,8 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-usb (5), +-.BR sane-plustek (5), ++.BR sane\-usb (5), ++.BR sane\-plustek (5), + .br + .I @DOCDIR@/u12/U12.changes + .br +@@ -162,7 +162,7 @@ + .br + Mailing-List archive at: + .br +-.B http://www.sane-project.org/mailing-lists.html ++.B http://www.sane\-project.org/mailing\-lists.html + .PP + or directly from the projects' homepage at: + .br +diff -urNad sane-backends-1.0.19~/doc/sane-umax.man sane-backends-1.0.19/doc/sane-umax.man +--- sane-backends-1.0.19~/doc/sane-umax.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-umax.man 2008-07-20 12:34:23.206539765 +0200 +@@ -1,18 +1,18 @@ +-.TH sane-umax 5 "29 november 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-umax ++.TH sane\-umax 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-umax + + .SH NAME +-sane-umax \- SANE backend for UMAX scanners ++sane\-umax \- SANE backend for UMAX scanners + + .SH ABOUT THIS FILE + + This file only is a short descripton of the umax-backend for sane! For detailled information take a look at +-sane-umax-doc.html (it is included in the sane source directory and in the xsane online help)! ++sane\-umax\-doc.html (it is included in the sane source directory and in the xsane online help)! + + .SH DESCRIPTION + + The +-.B sane-umax ++.B sane\-umax + library implements a SANE backend that provides acces to several UMAX-SCSI-scanners and some Linotye Hell SCSI-scanners, + parallel- and USB-scanners are not (and propably will never be) supported! + +@@ -30,37 +30,37 @@ + .nf + # this is a comment + # +- option scsi-maxqueue 4 +- option scsi-buffer-size-min 65536 +- option scsi-buffer-size-max 131072 +- option scan-lines 40 +- option preview-lines 10 +- option scsi-maxqueue 2 +- option execute-request-sense 0 +- option force-preview-bit-rgb 0 +- option slow-speed -1 +- option care-about-smearing -1 +- option calibration-full-ccd -1 +- option calibration-width-offset -1 +- option calibration-bytes-pixel -1 +- option exposure-time-rgb-bind -1 +- option invert-shading-data -1 +- option lamp-control-available 0 +- option gamma-lsb-padded 0 ++ option scsi\-maxqueue 4 ++ option scsi\-buffer\-size\-min 65536 ++ option scsi\-buffer\-size\-max 131072 ++ option scan\-lines 40 ++ option preview\-lines 10 ++ option scsi\-maxqueue 2 ++ option execute\-request\-sense 0 ++ option force\-preview\-bit\-rgb 0 ++ option slow\-speed \-1 ++ option care\-about\-smearing \-1 ++ option calibration\-full\-ccd \-1 ++ option calibration\-width\-offset \-1 ++ option calibration\-bytes\-pixel \-1 ++ option exposure\-time\-rgb\-bind \-1 ++ option invert\-shading\-data \-1 ++ option lamp\-control\-available 0 ++ option gamma\-lsb\-padded 0 + /dev/sge + \ + #scsi Vendor Model Type Bus Channel ID LUN + # The following scanner supports lamp control +- option lamp-control-available 1 ++ option lamp\-control\-available 1 + scsi UMAX * Scanner * * * * * + \ + # scanner on /dev/scanner does not support lamp control +- option lamp-control-available 0 ++ option lamp\-control\-available 0 + /dev/scanner + .fi + + .TP +-execute-request-sense: ++execute\-request\-sense: + values: 0 = disabled, 1 = enabled + .br + default = 0 +@@ -69,7 +69,7 @@ + umax_do_calibration. This can hang the system + (but has been enabled until this version) + .TP +-scsi-buffer-size-min, scsi-buffer-size-max: ++scsi\-buffer\-size\-min, scsi\-buffer\-size\-max: + values: 4096-1048576 + .br + default min = 32768, max = 131072 +@@ -84,15 +84,15 @@ + out of memory error. The default is 32KB, for + some scanners it should be increased to 64KB. + .TP +-scan-lines, preview-lines: ++scan\-lines, preview\-lines: + values: 1-65535 + .br +-default: scan-lines = 40, preview-lines = 10 ++default: scan\-lines = 40, preview\-lines = 10 + .br + define the maximum number of lines that are scanned + into one buffer + .TP +-force-preview-bit-rgb: ++force\-preview\-bit\-rgb: + values: + 0 = disabled, + 1 = enabled +@@ -101,77 +101,77 @@ + .br + set preview bit in rgb real scan + .TP +-slow-speed, care-about-smearing: ++slow\-speed, care\-about\-smearing: + values: +--1 = auto, ++\-1 = auto, + 0 = disabled, + 1 = enabled + .br +-default = -1 ++default = \-1 + .br + dangerous options, needed for some scanners + do not changed these options until you really know + what you do, you may destroy your scanner when you + define wrong values for this options + .TP +-calibration-full-ccd: ++calibration\-full\-ccd: + values: +--1 = auto, ++\-1 = auto, + 0 = disabled, + 1 = enabled + .br +-default = -1 ++default = \-1 + .br + do calibration for each pixel of ccd instead of + selected image + .TP +-calibration-width-offset: +-values: -99999 = auto, > -99999 set value ++calibration\-width\-offset: ++values: \-99999 = auto, > \-99999 set value + .br + add an offset width to the calculated with for + image/ccd + .TP +-calibration-bytes-pixel: ++calibration\-bytes\-pixel: + values: +--1 = disabled, ++\-1 = disabled, + 0 = not set, + 1 = 1 byte/pixel, + 2 = 2 bytes/pixel + .br + use # bytes per pixel for calibration + .TP +-exposure-time-rgb-bind: ++exposure\-time\-rgb\-bind: + values: +--1 = automatically set by driver \- if known, ++\-1 = automatically set by driver \- if known, + 0 = disabled (own selection for red, green and blue), + 1 = enabled (same values for red, green and blue) + .TP +-invert-shading-data: ++invert\-shading\-data: + values: +--1 = automatically set by driver \- if known, ++\-1 = automatically set by driver \- if known, + 0 = disabled, + 1 = enabled + .br +-default = -1 ++default = \-1 + .br + invert shading data before sending it back to the scanner + .TP +-lamp-control-available: ++lamp\-control\-available: + values: + 0 = automatically set by driver \- if known, + 1 = available + .br + default = 0 + .TP +-gamma-lsb-padded: ++gamma\-lsb\-padded: + values: +--1 = automatically set by driver \- if known, ++\-1 = automatically set by driver \- if known, + 0 = gamma data is msb padded, + 1 = gamma data is lsb padded + .br +-default = -1 ++default = \-1 + .TP +-handle-bad-sense-error: ++handle\-bad\-sense\-error: + values: + 0 = handle as device busy, + 1 = handle as ok, +@@ -180,7 +180,7 @@ + .br + default = 0 + .TP +-scsi-maxqueue: ++scsi\-maxqueue: + values: + 1..# (maximum defined at compile time) + .br +@@ -194,7 +194,7 @@ + .PP + The special device name must be a generic SCSI device or a symlink to such a device. + To find out to which device your scanner is assigned and how you have to set the +-permissions of that device, have a look at sane-scsi. ++permissions of that device, have a look at sane\-scsi. + + .SH SCSI ADAPTER TIPS + +@@ -213,7 +213,7 @@ + If you have any problems with your Umax scanner, check your scsi chain + (cable length, termination, ...). + +-See also: sane-scsi(5) ++See also: sane\-scsi(5) + + .SH FILES + +@@ -222,10 +222,10 @@ + .I @CONFIGDIR@/umax.conf + .TP + The static library implementing this backend: +-.I @LIBDIR@/libsane-umax.a ++.I @LIBDIR@/libsane\-umax.a + .TP + The shared library implementing this backend: +-.I @LIBDIR@/libsane-umax.so ++.I @LIBDIR@/libsane\-umax.so + (present on systems that support dynamic loading) + + .SH ENVIRONMENT +@@ -250,8 +250,8 @@ + 6 print less important informations + 7 print called procedures + 8 print reader_process messages +- 10 print called sane-init-routines +- 11 print called sane-procedures ++ 10 print called sane\-init-routines ++ 11 print called sane\-procedures + 12 print sane infos + 13 print sane option-control messages + .fi +diff -urNad sane-backends-1.0.19~/doc/sane-umax1220u.man sane-backends-1.0.19/doc/sane-umax1220u.man +--- sane-backends-1.0.19~/doc/sane-umax1220u.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-umax1220u.man 2008-07-20 12:34:23.236540368 +0200 +@@ -1,24 +1,24 @@ +-.TH sane-umax1220u 5 "17 Apr 2006" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-umax ++.TH sane\-umax1220u 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-umax + .SH NAME +-sane-umax1220u \- SANE backend for the UMAX Astra 1220U and similar scanners ++sane\-umax1220u \- SANE backend for the UMAX Astra 1220U and similar scanners + + .SH DESCRIPTION + + The +-.B sane-umax1220 ++.B sane\-umax1220 + library implements a SANE (Scanner Access Now Easy) backend for the + the UMAX Astra 1220U and similar scanners. + + For more information on this backend, please visit +-.IR http://umax1220u-sane.sourceforge.net/ . ++.IR http://umax1220u\-sane.sourceforge.net/ . + + .SH UMAX ASTRA 1600U/2000U/2100U SUPPORT + + This backend is also able to drive the UMAX Astra 1600U/2000U/2100U. The + 2100U is confirmed to work. For the other scanners no reports have been received + yet. Please contact us and tell us if your scanner works +-(sane-devel@lists.alioth.debian.org). ++(sane\-devel@lists.alioth.debian.org). + + .SH CONFIGURATION + +@@ -37,7 +37,7 @@ + /dev/usb/scanner0 + .fi + +-See sane-usb(5) for information on how to set the access permissions on the usb ++See sane\-usb(5) for information on how to set the access permissions on the usb + device files. + + .SH FILES +@@ -47,10 +47,10 @@ + .I @CONFIGDIR@/umax1220u.conf + .TP + The static library implementing this backend: +-.I @LIBDIR@/libsane-umax1220u.a ++.I @LIBDIR@/libsane\-umax1220u.a + .TP + The shared library implementing this backend: +-.I @LIBDIR@/libsane-umax1220u.so ++.I @LIBDIR@/libsane\-umax1220u.so + (present on systems that support dynamic loading) + + .SH ENVIRONMENT +@@ -95,22 +95,22 @@ + area is zero. + + .SH SEE ALSO +-sane(7), sane-usb(5) ++sane(7), sane\-usb(5) + + .TP + (Old) homepage: +-.I http://umax1220u-sane.sourceforge.net/ ++.I http://umax1220u\-sane.sourceforge.net/ + + .SH AUTHOR + + Marcio Luis Teixeira + + .SH EMAIL-CONTACT +-sane-devel@lists.alioth.debian.org ++sane\-devel@lists.alioth.debian.org + + .SH REPORTING BUGS + + This backend isn't actively maintained. Nevertheless, bug reports and comments +-should be sent to the sane-devel mailing list. When reporting bugs, please run ++should be sent to the sane\-devel mailing list. When reporting bugs, please run + the backend with SANE_DEBUG_UMAX1220U set to 10 and attach a copy of the log + messages. +diff -urNad sane-backends-1.0.19~/doc/sane-umax_pp.man sane-backends-1.0.19/doc/sane-umax_pp.man +--- sane-backends-1.0.19~/doc/sane-umax_pp.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-umax_pp.man 2008-07-20 12:34:23.236540368 +0200 +@@ -1,10 +1,10 @@ +-.\" .IX sane-umax_pp +-.TH "sane-umax_pp" "5" "23 August 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.\" .IX sane\-umax_pp ++.TH "sane\-umax_pp" "5" "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" + .SH "NAME" +-sane-umax_pp \- SANE backend for Umax Astra parallel port flatbed scanners ++sane\-umax_pp \- SANE backend for Umax Astra parallel port flatbed scanners + .SH "DESCRIPTION" + The +-.B sane-umax_pp ++.B sane\-umax_pp + library implements a SANE (Scanner Access Now Easy) backend that + provides access to Umax parallel port flatbed scanners. The + following scanners work with this backend: +@@ -55,7 +55,7 @@ + .PP + Note that if you don't use the ppdev character device, the backend + needs to run as root. To allow user access to the scanner +-run the backend through the network interface (See saned(8) and sane-net(5)). ++run the backend through the network interface (See saned(8) and sane\-net(5)). + A more relaxed solution (security wise) is to add suid bit to the frontend + (See chmod(1)). + The backend drop root priviledges as soon as it can, right after gaining direct +@@ -77,7 +77,7 @@ + autodetect all parallel ports and probe + them for scanner + .TP +-safe-auto ++safe\-auto + autodetect all parallel ports and probe + them for scanner, but does not try direct + hardware access +@@ -129,23 +129,23 @@ + scanners. Empty lines and lines starting with a hash mark (#) are + ignored. + .PP +-The height options supported are +-.BR red-gain , +-.BR green-gain , +-.BR blue-gain , +-.BR red-offset , +-.BR green-offset , +-.BR blue-offset , ++The eight options supported are ++.BR red\-gain , ++.BR green\-gain , ++.BR blue\-gain , ++.BR red\-offset , ++.BR green\-offset , ++.BR blue\-offset , + .BR astra , + and + .BR buffer . + + Options +-.B red-gain ++.B red\-gain + , +-.B green-gain ++.B green\-gain + and +-.B blue-gain ++.B blue\-gain + allow you to adjust the sensitivy of your scanner for the given color. Values + range from 0 (lowest gain) to 15 (highest). If the advanced option "Gain" isn't + checked in the frontend, the backend does automatic gain calibration, and do not use +@@ -154,11 +154,11 @@ + .PP + + Options +-.B red-offset ++.B red\-offset + , +-.B green-offset ++.B green\-offset + and +-.B blue-offset ++.B blue\-offset + allow you to adjust the offset of your scanner for the given color. Values + range from 0 (lowest offset) to 15 (highest). + .PP +@@ -194,10 +194,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-umax_pp.a ++.I @LIBDIR@/libsane\-umax_pp.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-umax_pp.so ++.I @LIBDIR@/libsane\-umax_pp.so + The shared library implementing this backend (present on systems that + support dynamic loading). + +@@ -265,7 +265,7 @@ + + .PP + .SH "SEE ALSO" +-sane(7), sane-net(5), saned(8) ++sane(7), sane\-net(5), saned(8) + + .TP + For latest bug fixes and information see +@@ -284,10 +284,10 @@ + + .TP + .I SANE version +-run "scanimage -V" to determine this ++run "scanimage \-V" to determine this + .TP + .I the backend version and your scanner hardware +-run "SANE_DEBUG_UMAX_PP=255 scanimage -L 2>log" as root. If you don't get any output ++run "SANE_DEBUG_UMAX_PP=255 scanimage \-L 2>log" as root. If you don't get any output + from the umax_pp backend, make sure a line "umax_pp" is included into + your @CONFIGDIR@/dll.conf. + If your scanner isn't detected, make sure you've defined the right port address, or the +diff -urNad sane-backends-1.0.19~/doc/sane-usb.man sane-backends-1.0.19/doc/sane-usb.man +--- sane-backends-1.0.19~/doc/sane-usb.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-usb.man 2008-07-20 12:34:23.236540368 +0200 +@@ -1,7 +1,7 @@ +-.TH sane-usb 5 "19 Jun 2006" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-usb ++.TH sane\-usb 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-usb + .SH NAME +-sane-usb \- USB configuration tips for SANE ++sane\-usb \- USB configuration tips for SANE + .SH DESCRIPTION + This manual page contains information on how to access scanners with a USB + interface. It focusses on two main topics: getting the scanner detected by the +@@ -11,20 +11,20 @@ + sanei_usb interface. However, there is one exceptions: USB Scanners + supported by the microtek2 backend need a special USB kernel + driver, see +-.BR sane-microtek2 (5) ++.BR sane\-microtek2 (5) + for details. + + .SH "QUICK START" + This is a short HOWTO-like section. For the full details, read the following + sections. The goal of this section is to get the scanner detected by +-.BR sane-find-scanner (1). ++.BR sane\-find\-scanner (1). + .PP +-Run sane-find-scanner. If it lists your scanner with the correct vendor and ++Run sane\-find\-scanner. If it lists your scanner with the correct vendor and + product ids, you are done. See section + .B "SANE ISSUES" + for details on how to go on. + .PP +-Sane-find-scanner doesn't list your scanner? Does it work as root? If yes, ++sane\-find\-scanner doesn't list your scanner? Does it work as root? If yes, + there is a permission issue. See the + .B LIBUSB + section for details. +@@ -64,7 +64,7 @@ + the devices are located in /proc/bus/usb/ or in /dev/bus/usb, if you use + udev. There are directories named e.g. "001" (the bus name) containing files + "001", "002" etc. (the device files). The right device files can be found out by +-running scanimage -L as root. Setting permissions with "chmod" is not permanent, ++running scanimage \-L as root. Setting permissions with "chmod" is not permanent, + however. They will be reset after reboot or replugging the scanner. + .PP + Usually udev or for older distributions the hotplug utilities are used, which +@@ -81,12 +81,12 @@ + + .SH "SANE ISSUES" + .PP +-This section assumes that your scanner is detected by sane-find-scanner. It +-doesn't make sense to go on, if this is not the case. While sane-find-scanner ++This section assumes that your scanner is detected by sane\-find\-scanner. It ++doesn't make sense to go on, if this is not the case. While sane\-find\-scanner + is able to detect any USB scanner, actual scanning will only work if the + scanner is supported by a SANE backend. Information on the level of support + can be found on the SANE webpage +-.RI ( http://www.sane-project.org/ ), ++.RI ( http://www.sane\-project.org/ ), + and the individual backend manpages. + .PP + Most backends can detect USB scanners automatically using "usb" configuration +@@ -104,7 +104,7 @@ + .I PRODUCT + is the USB product id of the scanner. Both ids are non-negative integer numbers + in decimal or hexadecimal format. The correct values for these fields can be +-found by running sane-find-scanner, looking into the syslog (e.g., ++found by running sane\-find\-scanner, looking into the syslog (e.g., + /var/log/messages) or under Linux by issuing the command "cat + /proc/bus/usb/devices". This is an example of a config file line: + .PP +@@ -120,7 +120,7 @@ + appropriate backend configuration file before using SANE for the first time. + For a detailed description of each backend's configuration file, please refer to + the relevant backend manual page (e.g. +-.BR sane-mustek_usb (5) ++.BR sane\-mustek_usb (5) + for Mustek USB scanners). + .PP + Do +@@ -141,9 +141,9 @@ + + .SH "SEE ALSO" + .BR sane (7), +-.BR sane-find-scanner (1), +-.BR sane-"backendname" (5), +-.BR sane-scsi (5) ++.BR sane\-find\-scanner (1), ++.BR sane\-"backendname" (5), ++.BR sane\-scsi (5) + + .SH AUTHOR +-Henning Meier-Geinitz ++Henning Meier-Geinitz +diff -urNad sane-backends-1.0.19~/doc/sane-v4l.man sane-backends-1.0.19/doc/sane-v4l.man +--- sane-backends-1.0.19~/doc/sane-v4l.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane-v4l.man 2008-07-20 12:34:23.237539727 +0200 +@@ -1,10 +1,10 @@ +-.TH sane-v4l 5 "28 Aug 2002" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +-.IX sane-v4l ++.TH sane\-v4l 5 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.IX sane\-v4l + .SH NAME +-sane-v4l \- SANE interface for Video for Linux API ++sane\-v4l \- SANE interface for Video for Linux API + .SH DESCRIPTION + The +-.B sane-v4l ++.B sane\-v4l + library implements a SANE (Scanner Access Now Easy) backend that + provides generic access to video cameras and similar equipment using + the V4L (Video for Linux) API. +@@ -49,10 +49,10 @@ + .B SANE_CONFIG_DIR + below). + .TP +-.I @LIBDIR@/libsane-v4l.a ++.I @LIBDIR@/libsane\-v4l.a + The static library implementing this backend. + .TP +-.I @LIBDIR@/libsane-v4l.so ++.I @LIBDIR@/libsane\-v4l.so + The shared library implementing this backend (present on systems that + support dynamic loading). + .SH ENVIRONMENT +@@ -83,9 +83,9 @@ + If more than one video card is present, a crash may occur. Frequency and geometry + selection is missing. + .br +-Send bug reports to the SANE mailing list: sane-devel@lists.alioth.debian.org. You must ++Send bug reports to the SANE mailing list: sane\-devel@lists.alioth.debian.org. You must + be subscribed to the list to send mail. See +-http://www.sane-project.org/mailing-lists.html for details. ++http://www.sane\-project.org/mailing\-lists.html for details. + + .SH SEE ALSO + sane(7), xcam(1). +diff -urNad sane-backends-1.0.19~/doc/sane.man sane-backends-1.0.19/doc/sane.man +--- sane-backends-1.0.19~/doc/sane.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/sane.man 2008-07-20 12:34:23.238539597 +0200 +@@ -1,4 +1,4 @@ +-.TH sane 7 "16 October 2005" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.TH sane 7 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" + .IX sane + + .SH NAME +@@ -39,7 +39,7 @@ + + .SH "SOFTWARE PACKAGES" + The package +-.RB ` sane-backends ' ++.RB ` sane\-backends ' + contains a lot of backends, documentation (including the + .B SANE + standard), networking support, and the command line frontend +@@ -47,11 +47,11 @@ + The frontends + .RB ` xscanimage "', `" xcam "', and `" scanadf ' + are included in the package +-.RB ` sane-frontends '. ++.RB ` sane\-frontends '. + Both packages can be downloaded from the + .B SANE + homepage +-.RI ( http://www.sane-project.org/ ). ++.RI ( http://www.sane\-project.org/ ). + Information about other frontends and backends can also be found on the + .B SANE + homepage. +@@ -61,9 +61,9 @@ + information about several aspects of + .B SANE. + A name with a number in parenthesis (e.g. +-.RB ` sane-dll (5)') ++.RB ` sane\-dll (5)') + points to a manual page. In this case +-.RB ` "man 5 sane-dll" ' ++.RB ` "man 5 sane\-dll" ' + will display the page. Entries like + .RI ` @DOCDIR@/sane.tex ' + are references to text files that were copied to the +@@ -76,7 +76,7 @@ + .B SANE homepage + Information on all aspects of SANE including a tutorial and a link to the SANE FAQ + can be found on the SANE homepage: +-.IR http://www.sane-project.org/ . ++.IR http://www.sane\-project.org/ . + .TP + .B SANE device lists + The +@@ -87,16 +87,16 @@ + supported or unsupported), please contact us. See section HOW CAN YOU HELP + SANE for details. There are lists for specific releases of SANE, for the + current development version and a search engine: +-.IR http://www.sane-project.org/sane-supported-devices.html . ++.IR http://www.sane\-project.org/sane\-supported\-devices.html . + The lists are also installed on your system at @DOCDIR@/. + .TP + .B SANE mailing list + There is a mailing list for the purpose of discussing the SANE standard and its +-implementations: sane-devel. Despite its name, the list is not only intended ++implementations: sane\-devel. Despite its name, the list is not only intended + for developers, but also for users. There are also some more lists for special +-topics, however, for users, sane-devel is the right list. How to subscribe and ++topics, however, for users, sane\-devel is the right list. How to subscribe and + unsubscribe: +-.IR http://www.sane-project.org/mailing-lists.html . ++.IR http://www.sane\-project.org/mailing\-lists.html . + .TP + .B SANE IRC channel + The IRC (Internet Relay Chat) channel #sane can be found on the Freenode +@@ -118,11 +118,11 @@ + .TP + .B SCSI configuration + For information about various systems and SCSI controllers see +-.BR sane-scsi (5). ++.BR sane\-scsi (5). + .TP + .B USB configuration + For information about USB configuration see +-.BR sane-usb (5). ++.BR sane\-usb (5). + + .SH "FRONTENDS AND MISCELLANEOUS PROGRAMS" + .TP 2 +@@ -136,55 +136,55 @@ + available on the local host. See + .BR saned (8). + .TP +-.B sane-find-scanner ++.B sane\-find\-scanner + Command-line tool to find SCSI and USB scanners and determine their Unix + device files. See +-.BR sane-find-scanner (1). ++.BR sane\-find\-scanner (1). + .PP + Also, have a look at the +-.B sane-frontends ++.B sane\-frontends + package (including + .BR xscanimage ", " xcam ", and " scanadf ) + and the frontend information page at +-.IR http://www.sane-project.org/sane-frontends.html . ++.IR http://www.sane\-project.org/sane\-frontends.html . + + .SH "BACKENDS FOR SCANNERS" + .TP 2 + .B abaton + The SANE backend for Abaton flatbed scanners supports the Scan 300/GS (8bit, + 256 levels of gray) and the Scan 300/S (black and white, untested). See +-.BR sane-abaton (5) ++.BR sane\-abaton (5) + for details. + .TP + .B agfafocus + This backend supports AGFA Focus scanners and the Siemens S9036 (untested). + See +-.BR sane-agfafocus (5) ++.BR sane\-agfafocus (5) + for details. + .TP + .B apple + The SANE backend for Apple flatbed scanners supports the following scanners: + AppleScanner, OneScanner and ColorOneScanner. See +-.BR sane-apple (5) ++.BR sane\-apple (5) + for details. + .TP + .B artec + The SANE Artec backend supports several Artec/Ultima SCSI flatbed scanners as + well as the BlackWidow BW4800SP and the Plustek 19200S. See +-.BR sane-artec (5) ++.BR sane\-artec (5) + for details. + .TP + .B artec_eplus48u + The SANE artec_eplus48u backend supports the scanner Artec E+ 48U and re-badged + models like Tevion MD 9693, Medion MD 9693, Medion MD 9705 and Trust Easy + Webscan 19200. See +-.BR sane-artec_eplus48u (5) ++.BR sane\-artec_eplus48u (5) + for details. + .TP + .B as6e + This is a SANE backend for using the Artec AS6E parallel port interface + scanner. See +-.BR sane-as6e (5) ++.BR sane\-as6e (5) + for details. + .TP + .B avision +@@ -193,72 +193,72 @@ + ScanJet 53xx and 74xx series, Fujitsu ScanPartner, some Mitsubishi and + Minolta film-scanners. + See +-.BR sane-avision (5) ++.BR sane\-avision (5) + for details. + .TP + .B bh + The bh backend provides access to Bell+Howell Copiscan II series document + scanners. See +-.BR sane-bh (5) ++.BR sane\-bh (5) + for details. + .TP + .B canon + The canon backend supports the CanoScan 300, CanoScan 600, and CanoScan + 2700F SCSI flatbed scanners. See +-.BR sane-canon (5) ++.BR sane\-canon (5) + for details. + .TP + .B canon630u + The canon630u backend supports the CanoScan 630u and 636u USB scanners. See +-.BR sane-canon630u (5) ++.BR sane\-canon630u (5) + for details. + .TP + .B canon_pp + The canon_pp backend supports the CanoScan FB330P, FB630P, N340P and N640P + parallel port scanners. See +-.BR sane-canon_pp (5) ++.BR sane\-canon_pp (5) + for details. + .TP + .B cardscan + This backend provides support for the Corex Cardscan 800c USB scanner. See +-.BR sane-cardscan (5) ++.BR sane\-cardscan (5) + for details. + .TP + .B coolscan + This is a SANE backend for Nikon Coolscan film-scanners. See +-.BR sane-coolscan (5) ++.BR sane\-coolscan (5) + for details. + .TP + .B coolscan2 + This is a SANE backend for Nikon Coolscan film-scanners. + See +-.BR sane-coolscan2 (5) ++.BR sane\-coolscan2 (5) + or + .I http://coolscan2.sourceforge.net + for details. + .TP + .B epjitsu + The epjitsu backend provides support for Epson-based Fujitsu USB scanners. See +-.BR sane-epjitsu (5) ++.BR sane\-epjitsu (5) + for details. + .TP + .B epson + The SANE epson backend provides support for Epson SCSI, parallel port and USB + flatbed scanners. See +-.BR sane-epson (5) ++.BR sane\-epson (5) + for details. + .TP + .B fujitsu + The fujitsu backend provides support for most Fujitsu SCSI and USB, flatbed + and adf scanners. See +-.BR sane-fujitsu (5) ++.BR sane\-fujitsu (5) + for details. + .TP + .B genesys + The genesys backend provides support for scanners based on the Genesys Logic + GL646 and GL841 chips like the Medion 6471 and Hewlett-Packard 2300c. + Support for GL841 based scanners is far from being complete. See +-.BR sane-genesys (5) ++.BR sane\-genesys (5) + for details. + .TP + .B gt68xx +@@ -266,133 +266,133 @@ + GT-6801 and GT-6816 chips like the Artec Ultima 2000 and several Mustek + BearPaw CU and TA models. Some Genius, Lexmark, Medion, Packard Bell, Plustek, + and Trust scanners are also supported. See +-.BR sane-gt68xx (5) ++.BR sane\-gt68xx (5) + for details. + .TP + .B hp + The SANE hp backend provides access to Hewlett-Packard ScanJet scanners which + support SCL (Scanner Control Language by HP). See +-.BR sane-hp (5) ++.BR sane\-hp (5) + for details. + .TP + .B hpsj5s + The SANE backend for the Hewlett-Packard ScanJet 5S scanner. See +-.BR sane-hpsj5s (5) ++.BR sane\-hpsj5s (5) + for details. + .TP + .B hp3500 + The SANE backend for the Hewlett-Packard ScanJet 3500 series. See +-.BR sane-hp3500 (5) ++.BR sane\-hp3500 (5) + for details. + .TP + .B hp3900 + The SANE backend for the Hewlett-Packard ScanJet 3900 series. See +-.BR sane-hp3900 (5) ++.BR sane\-hp3900 (5) + for details. + .TP + .B hp4200 + The SANE backend for the Hewlett-Packard ScanJet 4200 series. See +-.BR sane-hp4200 (5) ++.BR sane\-hp4200 (5) + for details. + .TP + .B hp5400 + The SANE backend for the Hewlett-Packard ScanJet 54XXC series. See +-.BR sane-hp5400 (5) ++.BR sane\-hp5400 (5) + for details. + .TP + .B hpljm1005 + The SANE backend for the Hewlett-Packard LaserJet M1005 scanner. See +-.BR sane-hpljm1005(5) ++.BR sane\-hpljm1005(5) + for details. + .TP + .B hs2p + The SANE backend for the Ricoh IS450 family of SCSI scanners. See +-.BR sane-hs2p (5) ++.BR sane\-hs2p (5) + for details. + .TP + .B ibm + The SANE backend for some IBM and Ricoh SCSI scanners. See +-.BR sane-ibm (5) ++.BR sane\-ibm (5) + for details. + .TP + .B leo + This backend supports the Leo S3 and the Across FS-1130, which is a re-badged + LEO FS-1130 scanner. See +-.BR sane-leo (5) ++.BR sane\-leo (5) + for details. + .TP + .B lexmark + This backend supports the Lexmark X1100 series of USB scanners. See +-.BR sane-lexmark (5) ++.BR sane\-lexmark (5) + for details. + .TP + .B ma1509 + The ma1509 backend supports the Mustek BearPaw 1200F USB flatbed scanner. See +-.BR sane-ma1509 (5) ++.BR sane\-ma1509 (5) + for details. + .TP + .B matsushita + This backend supports some Panasonic KVSS high speed scanners. See +-.BR sane-matsushita (5) ++.BR sane\-matsushita (5) + for details. + .TP + .B microtek + The microtek backend provides access to the "second generation" Microtek + scanners with SCSI-1 command set. See +-.BR sane-microtek (5) ++.BR sane\-microtek (5) + for details. + .TP + .B microtek2 + The microtek2 backend provides access to some Microtek scanners with a + SCSI-2 command set. See +-.BR sane-microtek2 (5) ++.BR sane\-microtek2 (5) + for details. + .TP + .B mustek + The SANE mustek backend supports most Mustek SCSI flatbed scanners including the + Paragon and ScanExpress series and the 600 II N and 600 II EP (non-SCSI). Some + Trust scanners are also supported. See +-.BR sane-mustek (5) ++.BR sane\-mustek (5) + for details. + .TP + .B mustek_pp + The mustek_pp backend provides access to Mustek parallel port flatbed + scanners. See +-.BR sane-mustek_pp (5) ++.BR sane\-mustek_pp (5) + for details. + .TP + .B mustek_usb + The mustek_usb backend provides access to some Mustek ScanExpress USB flatbed + scanners. See +-.BR sane-mustek_usb (5) ++.BR sane\-mustek_usb (5) + for details. + .TP + .B mustek_usb2 + The mustek_usb2 backend provides access to scanners using the SQ113 + chipset like the Mustek BearPaw 2448 TA Pro USB flatbed scanner. See +-.BR sane-mustek_usb2 (5) ++.BR sane\-mustek_usb2 (5) + for details. + .TP + .B nec + The SANE nec backend supports the NEC PC-IN500/4C SCSI scanner. See +-.BR sane-nec (5) ++.BR sane\-nec (5) + for details. + .TP + .B niash + The niash backend supports the Agfa Snapscan Touch and the HP ScanJet 3300c, + 3400c, and 4300c USB flatbed scanners. See +-.BR sane-niash (5) ++.BR sane\-niash (5) + for details. + .TP + .B pie + The pie backend provides access to Pacific Image Electronics (PIE) and Devcom + SCSI flatbed scanners. See +-.BR sane-pie (5) ++.BR sane\-pie (5) + for details. + .TP + .B pixma + The pixma backend supports Canon PIXMA MP series (multi-function devices). See +-.BR sane-pixma (5) ++.BR sane\-pixma (5) + or + .I http://home.arcor.de/wittawat/pixma/ + for details. +@@ -402,101 +402,101 @@ + Semiconductor LM983[1/2/3]-chipset aka Merlin. Scanners using this LM983x chips + include some models from Plustek, KYE/Genius, Hewlett-Packard, Mustek, Umax, + Epson, and Canon. See +-.BR sane-plustek (5) ++.BR sane\-plustek (5) + for details. + .TP + .B plustek_pp + The SANE plustek_pp backend supports Plustek parallel port flatbed scanners. + Scanners using the Plustek ASIC P96001, P96003, P98001 and P98003 include some + models from Plustek, KYE/Genius, Primax. See +-.BR sane-plustek_pp (5) ++.BR sane\-plustek_pp (5) + for details. + .TP + .B ricoh + The ricoh backend provides access to the following Ricoh flatbed + scanners: IS50 and IS60. See +-.BR sane-ricoh (5) ++.BR sane\-ricoh (5) + for details. + .TP + .B s9036 + The s9036 backend provides access to Siemens 9036 flatbed scanners. See +-.BR sane-s9036 (5) ++.BR sane\-s9036 (5) + for details. + .TP + .B sceptre + The sceptre backend provides access to the Sceptre S1200 flatbed scanner. See +-.BR sane-sceptre (5) ++.BR sane\-sceptre (5) + for details. + .TP + .B sharp + The SANE sharp backend supports Sharp SCSI scanners. See +-.BR sane-sharp (5) ++.BR sane\-sharp (5) + for details. + .TP + .B sm3600 + The SANE sm3600 backend supports the Microtek ScanMaker 3600 USB scanner. See +-.BR sane-sm3600 (5) ++.BR sane\-sm3600 (5) + for details. + .TP + .B sm3840 + The SANE sm3840 backend supports the Microtek ScanMaker 3840 USB scanner. See +-.BR sane-sm3840 (5) ++.BR sane\-sm3840 (5) + for details. + .TP + .B snapscan + The snapscan backend supports AGFA SnapScan flatbed scanners. See +-.BR sane-snapscan (5) ++.BR sane\-snapscan (5) + for details. + .TP + .B sp15c + This backend supports the Fujitsu FCPA ScanPartner 15C flatbed scanner. See +-.BR sane-sp15c (5) ++.BR sane\-sp15c (5) + for details. + .TP + .B st400 +-The sane-st400 backend provides access to Siemens ST400 and ST800. See +-.BR sane-st400 (5) ++The sane\-st400 backend provides access to Siemens ST400 and ST800. See ++.BR sane\-st400 (5) + for details. + .TP + .B tamarack + The SANE tamarack backend supports Tamarack Artiscan flatbed scanners. See +-.BR sane-tamarack (5) ++.BR sane\-tamarack (5) + for details. + .TP + .B teco1 teco2 teco3 + The SANE teco1, teco2 and teco3 backends support some TECO scanners, + usually sold under the Relisys, Trust, Primax, Piotech, Dextra + names. See +-.BR sane-teco1 "(5), " sane-teco2 "(5) and " sane-teco3 (5) ++.BR sane\-teco1 "(5), " sane\-teco2 "(5) and " sane\-teco3 (5) + for details. + .TP + .B u12 +-The sane-u12 backend provides USB flatbed scanners based on Plustek's ASIC 98003 ++The sane\-u12 backend provides USB flatbed scanners based on Plustek's ASIC 98003 + (parallel-port ASIC) and a GeneSys Logics' USB-parport bridge chip like the + Plustek OpticPro U(T)12. See +-.BR sane-u12 (5) ++.BR sane\-u12 (5) + for details. + .TP + .B umax +-The sane-umax backend provides access to several UMAX-SCSI-scanners and some ++The sane\-umax backend provides access to several UMAX-SCSI-scanners and some + Linotype Hell SCSI-scanners. See +-.BR sane-umax (5) ++.BR sane\-umax (5) + for details. + .TP + .B umax_pp +-The sane-umax_pp backend provides access to Umax parallel port flatbed scanners ++The sane\-umax_pp backend provides access to Umax parallel port flatbed scanners + and the HP 3200C. See +-.BR sane-umax_pp (5) ++.BR sane\-umax_pp (5) + for details. + .TP + .B umax1200u +-The sane-umax1220u backend supports the UMAX Astra 1220U (USB) flatbed scanner ++The sane\-umax1220u backend supports the UMAX Astra 1220U (USB) flatbed scanner + (and also the UMAX Astra 2000U, sort of). See +-.BR sane-umax1220u (5) ++.BR sane\-umax1220u (5) + for details. + .PP + Also, have a look at the backend information page at +-.I http://www.sane-project.org/sane-supported-devices.html ++.I http://www.sane\-project.org/sane\-supported\-devices.html + and the list of projects in + .IR @DOCDIR@/PROJECTS . + +@@ -504,19 +504,19 @@ + .TP 2 + .B dc210 + Backend for Kodak DC210 Digital Camera. See +-.BR sane-dc210 (5). ++.BR sane\-dc210 (5). + .TP + .B dc240 + Backend for Kodak DC240 Digital Camera. See +-.BR sane-dc240 (5). ++.BR sane\-dc240 (5). + .TP + .B dc25 + Backend for Kodak DC20/DC25 Digital Cameras. See +-.BR sane-dc25 (5). ++.BR sane\-dc25 (5). + .TP + .B dmc + Backend for the Polaroid Digital Microscope Camera. See +-.BR sane-dmc (5). ++.BR sane\-dmc (5). + .TP + .B gphoto2 + Backend for digital cameras supported by the gphoto2 library package. (See +@@ -526,45 +526,45 @@ + testing is needed before all of these cameras will be supported by + .B SANE + backend. See +-.BR sane-gphoto2 (5). ++.BR sane\-gphoto2 (5). + .TP + .B qcam + Backend for Connectix QuickCam cameras. See +-.BR sane-qcam (5). ++.BR sane\-qcam (5). + .TP + .B stv680 +-The sane-st680 backend provides access to webcams with a stv680 chip. See +-.BR sane-st680 (5) ++The sane\-st680 backend provides access to webcams with a stv680 chip. See ++.BR sane\-st680 (5) + for details. + .PP + Also, have a look at the backend information page at +-.I http://www.sane-project.org/sane-supported-devices.html ++.I http://www.sane\-project.org/sane\-supported\-devices.html + and the list of projects in + .IR @DOCDIR@/PROJECTS . + + .SH "MISCELLANEOUS BACKENDS" + .TP 2 + .B dll +-The sane-dll library implements a ++The sane\-dll library implements a + .B SANE + backend that provides access to an arbitrary number of other + .B SANE + backends by dynamic loading. See +-.BR sane-dll (5). ++.BR sane\-dll (5). + .TP + .B net + The + .B SANE + network daemon saned provides access to scanners located on different + computers in connection with the net backend. See +-.BR sane-net "(5) and " saned (8). ++.BR sane\-net "(5) and " saned (8). + .TP + .B pnm + PNM image reader pseudo-backend. The purpose of this backend is primarily to + aid in debugging of + .B SANE + frontends. See +-.BR sane-pnm (5). ++.BR sane\-pnm (5). + .TP + .B pint + Backend for scanners that use the +@@ -573,7 +573,7 @@ + .B PINT + driver is being actively developed on the OpenBSD platform, and has been + ported to a few other *nix-like operating systems. See +-.BR sane-pint (5). ++.BR sane\-pint (5). + .TP + .B test + The +@@ -581,19 +581,19 @@ + test backend is for testing frontends and the + .B SANE + installation. It provides test pictures and various test options. See +-.BR sane-test (5). ++.BR sane\-test (5). + .TP + .B v4l +-The sane-v4l library implements a ++The sane\-v4l library implements a + .B SANE + backend that provides generic access to video cameras and similar equipment + using the + .B V4L + (Video for Linux) API. See +-.BR sane-v4l (5) . ++.BR sane\-v4l (5) . + .PP + Also, have a look at the backend information page at +-.I http://www.sane-project.org/sane-supported-devices.html ++.I http://www.sane\-project.org/sane\-supported\-devices.html + and the list of projects in + .IR @DOCDIR@/PROJECTS . + +@@ -601,10 +601,10 @@ + By default, all + .B SANE + backends (drivers) are loaded dynamically by the +-.B sane-dll ++.B sane\-dll + meta backend. If you have any questions about the dynamic loading, + read +-.BR sane-dll (5). ++.BR sane\-dll (5). + .B SANE + frontend can also be linked to other backends directly by copying or linking a + backend to +@@ -629,33 +629,33 @@ + (if latex is installed on your system) and on the + .B SANE + website: +-.I http://www.sane-project.org/html/ ++.I http://www.sane\-project.org/html/ + (HTML), or +-.I http://www.sane-project.org/sane.ps ++.I http://www.sane\-project.org/sane.ps + (Postscript). + .PP + There is some more information for programmers in +-.IR @DOCDIR@/backend-writing.txt . ++.IR @DOCDIR@/backend\-writing.txt . + Most of the internal + .B SANE + routines + .RB ( sanei ) + are documented using doxygen: +-.IR http://www.sane-project.org/sanei/ . ++.IR http://www.sane\-project.org/sanei/ . + Before a new backend or frontend project is started, have a look at + .I @DOCDIR@/PROJECTS + for projects that are planned or not yet included into the + .B SANE + distribution and at our bug-tracking system: +-.IR http://www.http://www.sane-project.org/bugs.html . ++.IR http://www.http://www.sane\-project.org/bugs.html . + .PP + There are some links on how to find out about the protocol of a scanner: +-.IR http://www.meier-geinitz.de/sane/misc/develop.html . ++.IR http://www.meier\-geinitz.de/sane/misc/develop.html . + + .PP + If you start writing a backend or frontend or any other part of + .BR SANE, +-please contact the sane-devel mailing list for coordination so the same work ++please contact the sane\-devel mailing list for coordination so the same work + isn't done twice. + + .SH "FILES" +@@ -663,10 +663,10 @@ + .I @CONFIGDIR@/*.conf + The backend configuration files. + .TP +-.I @LIBDIR@/libsane-*.a ++.I @LIBDIR@/libsane\-*.a + The static libraries implementing the backends. + .TP +-.I @LIBDIR@/libsane-*.so ++.I @LIBDIR@/libsane\-*.so + The shared libraries implementing the backends (present on systems that + support dynamic loading). + .TP +@@ -678,19 +678,19 @@ + If your device isn't found but you know that it is supported, make + sure that it is detected by your operating system. For SCSI and USB scanners, + use the +-.B sane-find-scanner ++.B sane\-find\-scanner + tool (see +-.BR sane-find-scanner (1) ++.BR sane\-find\-scanner (1) + for details). It prints one line for each scanner it has detected and some + comments (#). If +-.B sane-find-scanner ++.B sane\-find\-scanner + finds your scanner only as root but not as normal user, the permissions for + the device files are not adjusted correctly. If the scanner isn't found at all, + the operating system hasn't detected it and may need some help. Depending on + the type of your scanner, read +-.BR sane-usb (5) ++.BR sane\-usb (5) + or +-.BR sane-scsi (5). ++.BR sane\-scsi (5). + If your scanner (or other device) is not connected over the SCSI bus or USB, + read the backend's manual page for details on how to set it up. + .PP +@@ -698,7 +698,7 @@ + Now your scanner is detected by the operating system but not by + .BR SANE ? + Try +-.BR "scanimage -L" . ++.BR "scanimage \-L" . + If the scanner is not found, check that the backend's name is mentioned in + .IR @CONFIGDIR@/dll.conf . + Some backends are commented out by default. Remove the comment sign for your +@@ -711,7 +711,7 @@ + .PP + + Another reason for not being detected by +-.B scanimage -L ++.B scanimage \-L + may be a missing or wrong configuration in the backend's configuration + file. While + .B SANE +@@ -727,24 +727,24 @@ + .BR SANE_DEBUG_DLL ", " SANE_DEBUG_MUSTEK ", and " SANE_DEBUG_SANEI_SCSI + to 128 and then invoke + .B scanimage +-.B -L . ++.B \-L . + The debug messages for the dll backend tell if the mustek backend was found + and loaded at all. The mustek messages explain what the mustek backend is + doing while the SCSI debugging shows the low level handling. If you can't find +-out what's going on by checking the messages carefully, contact the sane-devel ++out what's going on by checking the messages carefully, contact the sane\-devel + mailing list for help (see REPORTING BUGS below). + .PP + Now that your scanner is found by +-.BR "scanimage -L" , ++.BR "scanimage \-L" , + try to do a scan: + .BR "scanimage >image.pnm" . + This command starts a scan for the default scanner with default settings. All + the available options are listed by running +-.BR "scanimage --help" . ++.BR "scanimage \-\-help" . + If scanning aborts with an error message, turn on debugging as mentioned + above. Maybe the configuration file needs some tuning, e.g. to setup the path + to a firmware that is needed by some scanners. See the backend's manual page +-for details. If you can't find out what's wrong, contact sane-devel. ++for details. If you can't find out what's wrong, contact sane\-devel. + .PP + To check that the + .B SANE +@@ -753,9 +753,9 @@ + .B SANE + device: + .IP +-.B scanimage -d ++.B scanimage \-d + .I test +-.B -T ++.B \-T + .PP + You should get a list of PASSed tests. You can do the same with your backend + by changing "test" to your backend's name. +@@ -791,100 +791,100 @@ + We appreciate any help we can get. Please have a look at our web page about + contributing to + .BR SANE : +-.I http://www.sane-project.org/contrib.html ++.I http://www.sane\-project.org/contrib.html + .PP + + .SH "CONTACT" + For reporting bugs or requesting new features, please use our bug-tracking + system: +-.IR http://www.sane-project.org/bugs.html . ++.IR http://www.sane\-project.org/bugs.html . + You can also contact the author of your backend directly. Usually the email + address can be found in the + .I @DOCDIR@/AUTHORS + file or the backend's manpage. For general discussion about SANE, please use + the + .B SANE +-mailing list sane-devel (see +-.I http://www.sane-project.org/mailing-lists.html ++mailing list sane\-devel (see ++.I http://www.sane\-project.org/mailing\-lists.html + for details). + .PP + + .SH "SEE ALSO" + .BR saned (8), +-.BR sane-find-scanner (1), ++.BR sane\-find\-scanner (1), + .BR scanimage (1), +-.BR sane-abaton (5), +-.BR sane-agfafocus (5), +-.BR sane-apple (5), +-.BR sane-artec (5), +-.BR sane-artec_eplus48u (5), +-.BR sane-as6e (5), +-.BR sane-avision (5), +-.BR sane-bh (5), +-.BR sane-canon (5), +-.BR sane-canon630u (5), +-.BR sane-canon_pp (5), +-.BR sane-coolscan2 (5), +-.BR sane-coolscan (5), +-.BR sane-dc210 (5), +-.BR sane-dc240 (5), +-.BR sane-dc25 (5), +-.BR sane-dll (5), +-.BR sane-dmc (5), +-.BR sane-epson (5), +-.BR sane-fujitsu (5), +-.BR sane-genesys (5), +-.BR sane-gphoto2 (5), +-.BR sane-gt68xx (5), +-.BR sane-hp (5), +-.BR sane-hpsj5s (5), +-.BR sane-hp3500 (5), +-.BR sane-hp3900 (5), +-.BR sane-hp4200 (5), +-.BR sane-hp5400 (5), +-.BR sane-hpljm1005 (5), +-.BR sane-ibm (5), +-.BR sane-leo (5), +-.BR sane-lexmark (5), +-.BR sane-ma1509 (5), +-.BR sane-matsushita (5), +-.BR sane-microtek2 (5), +-.BR sane-microtek (5), +-.BR sane-mustek (5), +-.BR sane-mustek_pp (5), +-.BR sane-mustek_usb (5), +-.BR sane-mustek_usb2 (5), +-.BR sane-nec (5), +-.BR sane-net (5), +-.BR sane-niash (5), +-.BR sane-pie (5), +-.BR sane-pint (5), +-.BR sane-plustek (5), +-.BR sane-plustek_pp (5), +-.BR sane-pnm (5), +-.BR sane-qcam (5), +-.BR sane-ricoh (5), +-.BR sane-s9036 (5), +-.BR sane-sceptre (5), +-.BR sane-scsi (5), +-.BR sane-sharp (5), +-.BR sane-sm3600 (5), +-.BR sane-sm3840 (5), +-.BR sane-snapscan (5), +-.BR sane-sp15c (5), +-.BR sane-st400 (5), +-.BR sane-stv680 (5), +-.BR sane-tamarack (5), +-.BR sane-teco1 (5), +-.BR sane-teco2 (5), +-.BR sane-teco3 (5), +-.BR sane-test (5), +-.BR sane-u12 (5), +-.BR sane-umax1220u (5), +-.BR sane-umax (5), +-.BR sane-umax_pp (5), +-.BR sane-usb (5), +-.BR sane-v4l (5) ++.BR sane\-abaton (5), ++.BR sane\-agfafocus (5), ++.BR sane\-apple (5), ++.BR sane\-artec (5), ++.BR sane\-artec_eplus48u (5), ++.BR sane\-as6e (5), ++.BR sane\-avision (5), ++.BR sane\-bh (5), ++.BR sane\-canon (5), ++.BR sane\-canon630u (5), ++.BR sane\-canon_pp (5), ++.BR sane\-coolscan2 (5), ++.BR sane\-coolscan (5), ++.BR sane\-dc210 (5), ++.BR sane\-dc240 (5), ++.BR sane\-dc25 (5), ++.BR sane\-dll (5), ++.BR sane\-dmc (5), ++.BR sane\-epson (5), ++.BR sane\-fujitsu (5), ++.BR sane\-genesys (5), ++.BR sane\-gphoto2 (5), ++.BR sane\-gt68xx (5), ++.BR sane\-hp (5), ++.BR sane\-hpsj5s (5), ++.BR sane\-hp3500 (5), ++.BR sane\-hp3900 (5), ++.BR sane\-hp4200 (5), ++.BR sane\-hp5400 (5), ++.BR sane\-hpljm1005 (5), ++.BR sane\-ibm (5), ++.BR sane\-leo (5), ++.BR sane\-lexmark (5), ++.BR sane\-ma1509 (5), ++.BR sane\-matsushita (5), ++.BR sane\-microtek2 (5), ++.BR sane\-microtek (5), ++.BR sane\-mustek (5), ++.BR sane\-mustek_pp (5), ++.BR sane\-mustek_usb (5), ++.BR sane\-mustek_usb2 (5), ++.BR sane\-nec (5), ++.BR sane\-net (5), ++.BR sane\-niash (5), ++.BR sane\-pie (5), ++.BR sane\-pint (5), ++.BR sane\-plustek (5), ++.BR sane\-plustek_pp (5), ++.BR sane\-pnm (5), ++.BR sane\-qcam (5), ++.BR sane\-ricoh (5), ++.BR sane\-s9036 (5), ++.BR sane\-sceptre (5), ++.BR sane\-scsi (5), ++.BR sane\-sharp (5), ++.BR sane\-sm3600 (5), ++.BR sane\-sm3840 (5), ++.BR sane\-snapscan (5), ++.BR sane\-sp15c (5), ++.BR sane\-st400 (5), ++.BR sane\-stv680 (5), ++.BR sane\-tamarack (5), ++.BR sane\-teco1 (5), ++.BR sane\-teco2 (5), ++.BR sane\-teco3 (5), ++.BR sane\-test (5), ++.BR sane\-u12 (5), ++.BR sane\-umax1220u (5), ++.BR sane\-umax (5), ++.BR sane\-umax_pp (5), ++.BR sane\-usb (5), ++.BR sane\-v4l (5) + + .SH AUTHOR + David Mosberger-Tang and many many more (see +diff -urNad sane-backends-1.0.19~/doc/saned.man sane-backends-1.0.19/doc/saned.man +--- sane-backends-1.0.19~/doc/saned.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/saned.man 2008-07-20 12:34:23.238539597 +0200 +@@ -1,10 +1,10 @@ +-.TH saned 8 "30 May 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.TH saned 8 "14 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" + .IX saned + .SH NAME + saned \- SANE network daemon + .SH SYNOPSIS + .B saned +-.RB [ -d | -s ++.RB [ \-d | \-s + .RI [ n ]] + .SH DESCRIPTION + .B saned +@@ -13,9 +13,9 @@ + .SH OPTIONS + .PP + The +-.B -d ++.B \-d + and +-.B -s ++.B \-s + flags request that + .B saned + run in debug mode (as opposed to +@@ -26,12 +26,12 @@ + debugging enabled, these flags may be followed by a number to request + debug info. The larger the number, the more verbose the debug output. + E.g., +-.B -d128 ++.B \-d128 + will request printing of all debug info. Debug level 0 means no debug output + at all. The default value is 2. If flag +-.B -d ++.B \-d + is used, the debug messages will be printed to stderr while +-.B -s ++.B \-s + requests using syslog. + .PP + If +@@ -65,7 +65,7 @@ + configuration file is shown below: + .PP + .RS +-scan-client.somedomain.firm ++scan\-client.somedomain.firm + .br + # this is a comment + .br +@@ -92,7 +92,7 @@ + The configuration line normally looks like this: + .PP + .RS +-sane-port stream tcp nowait saned.saned @SBINDIR@/saned saned ++sane\-port stream tcp nowait saned.saned @SBINDIR@/saned saned + .RE + .PP + However, if your system uses +@@ -105,7 +105,7 @@ + instead: + .PP + .RS +-sane-port stream tcp nowait saned.saned /usr/sbin/tcpd @SBINDIR@/saned ++sane\-port stream tcp nowait saned.saned /usr/sbin/tcpd @SBINDIR@/saned + .RE + .PP + Note that both examples assume that there is a +@@ -128,7 +128,7 @@ + # description: The sane server accepts requests + # for network access to a local scanner via the + # network. +-service sane-port ++service sane\-port + { + port = 6566 + socket_type = stream +@@ -145,10 +145,10 @@ + .IR /etc/services : + .PP + .RS +-sane-port 6566/tcp # SANE network scanner daemon ++sane\-port 6566/tcp # SANE network scanner daemon + .RE + .PP +-The official IANA short name for port 6566 is "sane-port". The older name "sane" ++The official IANA short name for port 6566 is "sane\-port". The older name "sane" + is now deprecated. + + .SH "RESTRICTIONS" +@@ -178,7 +178,7 @@ + user:password:backend + + access to the listed backends is restricted. A backend may be listed multiple +-times for different user/password combinations. The server uses MD5 encryption ++times for different user/password combinations. The server uses MD5 hashing + if supported by the client. + .SH ENVIRONMENT + .TP +@@ -201,10 +201,10 @@ + .BR scanimage (1), + .BR xscanimage (1), + .BR xcam (1), +-.BR sane-dll (5), +-.BR sane-net (5), +-.BR sane-"backendname" (5) ++.BR sane\-dll (5), ++.BR sane\-net (5), ++.BR sane\-"backendname" (5) + .br +-.I http://www.penguin-breeder.org/?page=sane-net ++.I http://www.penguin-breeder.org/?page=sane\-net + .SH AUTHOR + David Mosberger +diff -urNad sane-backends-1.0.19~/doc/scanimage.man sane-backends-1.0.19/doc/scanimage.man +--- sane-backends-1.0.19~/doc/scanimage.man 2008-07-20 12:30:22.000000000 +0200 ++++ sane-backends-1.0.19/doc/scanimage.man 2008-07-20 12:34:23.239539691 +0200 +@@ -1,36 +1,36 @@ +-.TH scanimage 1 "03 Oct 2006" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" ++.TH scanimage 1 "10 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" + .IX scanimage + .SH NAME + scanimage \- scan an image + .SH SYNOPSIS + .B scanimage +-.RB [ -d | --device-name ++.RB [ \-d | \-\-device\-name + .IR dev ] +-.RB [ --format ++.RB [ \-\-format + .IR format ] +-.RB [ -i | --icc-profile ++.RB [ \-i | \-\-icc\-profile + .IR profile ] +-.RB [ -L | --list-devices ] +-.RB [ -f | --formatted-device-list ++.RB [ \-L | \-\-list\-devices ] ++.RB [ \-f | \-\-formatted\-device\-list + .IR format ] +-.RB [ --batch ++.RB [ \-\-batch + .RI [= format ]] +-.RB [ --batch-start ++.RB [ \-\-batch\-start + .IR start ] +-.RB [ --batch-count ++.RB [ \-\-batch\-count + .IR count ] +-.RB [ --batch-increment ++.RB [ \-\-batch\-increment + .IR increment ] +-.RB [ --batch-double ] +-.RB [ --accept-md5-only ] +-.RB [ -p | --progress ] +-.RB [ -n | --dont-scan ] +-.RB [ -T | --test ] +-.RB [ -h | --help ] +-.RB [ -v | --verbose ] +-.RB [ -B | --buffersize ] +-.RB [ -V | --version ] +-.RI [ device-specific-options ] ++.RB [ \-\-batch\-double ] ++.RB [ \-\-accept\-md5\-only ] ++.RB [ \-p | \-\-progress ] ++.RB [ \-n | \-\-dont\-scan ] ++.RB [ \-T | \-\-test ] ++.RB [ \-h | \-\-help ] ++.RB [ \-v | \-\-verbose ] ++.RB [ \-B | \-\-buffersize ] ++.RB [ \-V | \-\-version ] ++.RI [ device\-specific\-options ] + .SH DESCRIPTION + .B scanimage + is a command-line interface to control image acquisition devices such +@@ -49,36 +49,36 @@ + .B SANE + backend (try + .B apropos +-.I sane- ++.I sane\- + to get a list of available backends). + + .SH EXAMPLES + To get a list of devices: + +- scanimage -L ++ scanimage \-L + + To scan with default settings to the file image.pnm: + + scanimage >image.pnm + +-To scan 100x100 mm to the file image.tiff (-x and -y may not be available with ++To scan 100x100 mm to the file image.tiff (\-x and \-y may not be available with + all devices): + +- scanimage -x 100 -y 100 --format=tiff >image.tiff ++ scanimage \-x 100 \-y 100 \-\-format=tiff >image.tiff + + To print all available options: + +- scanimage -h ++ scanimage \-h + + .SH OPTIONS + Parameters are separated by a blank from single-character options (e.g. +--d epson) and by a "=" from multi-character options (e.g. --device-name=epson). ++\-d epson) and by a "=" from multi-character options (e.g. \-\-device\-name=epson). + + .PP + The +-.B -d ++.B \-d + or +-.B --device-name ++.B \-\-device\-name + options must be followed by a + .B SANE + device-name like +@@ -86,7 +86,7 @@ + or + .RI ` hp:/dev/usbscanner0 '. + A (partial) list of available devices can be obtained with the +-.B --list-devices ++.B \-\-list\-devices + option (see below). If no device-name is specified explicitly, + .B scanimage + reads a device-name from the environment variable +@@ -96,7 +96,7 @@ + will attempt to open the first available device. + .PP + The +-.B --format ++.B \-\-format + .I format + option selects how image data is written to standard output. + .I format +@@ -105,19 +105,19 @@ + or + .BR tiff. + If +-.B --format ++.B \-\-format + is not used, PNM is written. + .PP + The +-.B -i ++.B \-i + or +-.B --icc-profile ++.B \-\-icc\-profile + option is used to include an ICC profile into a TIFF file. + .PP + The +-.B -L ++.B \-L + or +-.B --list-devices ++.B \-\-list\-devices + option requests a (partial) list of devices that are available. The + list is not complete since some devices may be available, but are not + listed in any of the configuration files (which are typically stored +@@ -129,11 +129,11 @@ + find out the names of such devices. + .PP + The +-.B -f ++.B \-f + or +-.B --formatted-device-list ++.B \-\-formatted\-device\-list + option works similar to +-.BR --list-devices , ++.BR \-\-list\-devices , + but requires a format string. + .B scanimage + replaces the placeholders +@@ -142,7 +142,7 @@ + number respectively. The command + .PP + .RS +-.B scanimage -f ++.B scanimage \-f + .I \*(lq scanner number %i device %d is a %t, model %m, produced by %v \*(rq + .PP + .RE +@@ -154,43 +154,43 @@ + .RE + .PP + The +-.B --batch* ++.B \-\-batch* + options provide the features for scanning documents using document + feeders. +-.BR --batch ++.BR \-\-batch + .RI [ format ] + is used to specify the format of the filename that each page will be written + to. Each page is written out to a single file. If + .I format +-is not specified, the default of out%d.pnm (or out%d.tif for --format tiff) ++is not specified, the default of out%d.pnm (or out%d.tif for \-\-format tiff) + will be used. + .I format + is given as a printf style string with one integer parameter. +-.B --batch-start ++.B \-\-batch\-start + .I start + selects the page number to start naming files with. If this option is not + given, the counter will start at 0. +-.B --batch-count ++.B \-\-batch\-count + .I count + specifies the number of pages to attempt to scan. If not given, + scanimage will continue scanning until the scanner returns a state + other than OK. Not all scanners with document feeders signal when the + ADF is empty, use this command to work around them. + With +-.B --batch-increment ++.B \-\-batch\-increment + .I increment + you can change the amount that the number in the filename is incremented + by. Generally this is used when you are scanning double-sided documents + on a single-sided document feeder. A specific command is provided to + aid this: +-.B --batch-double ++.B \-\-batch\-double + will automatically set the increment to 2. +-.B --batch-prompt ++.B \-\-batch\-prompt + will ask for pressing RETURN before scanning a page. This can be used for + scanning multiple pages without an automatic document feeder. + .PP + The +-.B --accept-md5-only ++.B \-\-accept\-md5\-only + option only accepts user authorization requests that support MD5 security. The + .B SANE + network daemon +@@ -199,9 +199,9 @@ + .BR saned (8). + .PP + The +-.B -p ++.B \-p + or +-.B --progress ++.B \-\-progress + option requests that + .B scanimage + prints a progress counter. It shows how much image data of the current image has +@@ -210,9 +210,9 @@ + (in percent). + .PP + The +-.B -n ++.B \-n + or +-.B --dont-scan ++.B \-\-dont\-scan + option requests that + .B scanimage + only sets the options provided by the user but doesn't actually perform a +@@ -220,9 +220,9 @@ + supported by the backend). + .PP + The +-.B -T ++.B \-T + or +-.B --test ++.B \-\-test + option requests that + .B scanimage + performs a few simple sanity tests to make sure the backend works as +@@ -233,34 +233,34 @@ + function is exercised by this test). + .PP + The +-.B -h ++.B \-h + or +-.B --help ++.B \-\-help + options request help information. The information is printed on + standard output and in this case, no attempt will be made to acquire + an image. + .PP + The +-.B -v ++.B \-v + or +-.B --verbose ++.B \-\-verbose + options increase the verbosity of the operation of + .B scanimage. + The option may be specified repeatedly, each time increasing the verbosity + level. + .PP + The +-.B -B ++.B \-B + or +-.B --buffersize ++.B \-\-buffersize + option changes the input buffersize that + .B scanimage + uses from default 32*1024 to 1024*1024 kbytes. + .PP + The +-.B -V ++.B \-V + or +-.B --version ++.B \-\-version + option requests that + .B scanimage + prints the program and package name, the version number of +@@ -271,7 +271,7 @@ + numbers of the backends are necessary, the + .B DEBUG + variable for the dll backend can be used. Example: SANE_DEBUG_DLL=3 scanimage +--L. ++\-L. + .PP + As you might imagine, much of the power of + .B scanimage +@@ -285,63 +285,63 @@ + via a command-line of the form: + .PP + .RS +-.B scanimage --help --device-name ++.B scanimage \-\-help \-\-device\-name + .I dev + .RE + .PP + The documentation for the device-specific options printed by +-.B --help ++.B \-\-help + is best explained with a few examples: + +- -l 0..218mm [0] ++ \-l 0..218mm [0] + .br + Top-left x position of scan area. + .PP + .RS + The description above shows that option +-.B -l ++.B \-l + expects an option value in the range from 0 to 218 mm. The + value in square brackets indicates that the current option value is 0 +-mm. Most backends provide similar geometry options for top-left y position (-t), +-width (-x) and height of scan-area (-y). ++mm. Most backends provide similar geometry options for top-left y position (\-t), ++width (\-x) and height of scan-area (\-y). + .RE + + +- --brightness -100..100% [0] ++ \-\-brightness \-100..100% [0] + .br + Controls the brightness of the acquired image. + .PP + .RS + The description above shows that option +-.B --brightness +-expects an option value in the range from -100 to 100 percent. The ++.B \-\-brightness ++expects an option value in the range from \-100 to 100 percent. The + value in square brackets indicates that the current option value is 0 + percent. + .RE + +- --default-enhancements ++ \-\-default\-enhancements + .br + Set default values for enhancement controls. + .PP + .RS + The description above shows that option +-.B --default-enhancements ++.B \-\-default\-enhancements + has no option value. It should be thought of as having an immediate + effect at the point of the command-line at which it appears. For + example, since this option resets the +-.B --brightness ++.B \-\-brightness + option, the option-pair +-.B --brightness 50 --default-enhancements ++.B \-\-brightness 50 \-\-default\-enhancements + would effectively be a no-op. + .RE + +- --mode Lineart|Gray|Color [Gray] ++ \-\-mode Lineart|Gray|Color [Gray] + .br + Selects the scan mode (e.g., lineart or color). + .PP + .RS + The description above shows that option +-.B --mode ++.B \-\-mode + accepts an argument that must be one of the strings + .BR Lineart , + .BR Gray , +@@ -353,12 +353,12 @@ + For convenience, it is legal to abbreviate the string values as long as + they remain unique. Also, the case of the spelling doesn't matter. For + example, option setting +-.B --mode col ++.B \-\-mode col + is identical to +-.BR "--mode Color" . ++.BR "\-\-mode Color" . + .RE + +- --custom-gamma[=(yes|no)] [inactive] ++ \-\-custom\-gamma[=(yes|no)] [inactive] + .br + Determines whether a builtin or a custom gamma-table + .br +@@ -366,34 +366,34 @@ + .PP + .RS + The description above shows that option +-.B --custom-gamma ++.B \-\-custom\-gamma + expects either no option value, a "yes" string, or a "no" string. + Specifying the option with no value is equivalent to specifying "yes". + The value in square-brackets indicates that the option is not + currently active. That is, attempting to set the option would result + in an error message. The set of available options typically depends + on the settings of other options. For example, the +-.B --custom-gamma ++.B \-\-custom\-gamma + table might be active only when a grayscale or color scan-mode has + been requested. + + Note that the +-.B --help ++.B \-\-help + option is processed only after all other options have been processed. + This makes it possible to see the option settings for a particular + mode by specifying the appropriate mode-options along + with the +-.B --help ++.B \-\-help + option. For example, the command-line: + .PP +-.B scanimage --help --mode ++.B scanimage \-\-help \-\-mode + .I color + .PP + would print the option settings that are in effect when the color-mode + is selected. + .RE + +- --gamma-table 0..255,... ++ \-\-gamma\-table 0..255,... + .br + Gamma-correction table. In color mode this option + .br +@@ -403,7 +403,7 @@ + .PP + .RS + The description above shows that option +-.B --gamma-table ++.B \-\-gamma\-table + expects zero or more values in the range 0 to 255. For example, a + legal value for this option would be "3,4,5,6,7,8,9,10,11,12". Since + it's cumbersome to specify long vectors in this form, the same can be +@@ -420,7 +420,7 @@ + .RE + + .br +- --filename [/tmp/input.ppm] ++ \-\-filename [/tmp/input.ppm] + .br + The filename of the image to be loaded. + .PP +@@ -450,7 +450,7 @@ + .PP + scanimage uses this information to answer user authorization requests + automatically. The file must have 0600 permissions or stricter. You should +-use this file in conjunction with the --accept-md5-only option to avoid ++use this file in conjunction with the \-\-accept\-md5\-only option to avoid + server-side attacks. The resource may contain any character but is limited + to 127 characters. + .SH "SEE ALSO" +@@ -460,13 +460,13 @@ + .BR xcam(1) , + .BR xsane(1) , + .BR scanadf (1), +-.BR sane-dll (5), +-.BR sane-net (5), +-.BR sane-"backendname" (5) ++.BR sane\-dll (5), ++.BR sane\-net (5), ++.BR sane\-"backendname" (5) + .SH AUTHOR + David Mosberger, Andreas Beck, Gordon Matzigkeit, Caskey Dickson, and many +-others. For questions and comments contact the sane-devel mailinglist (see +-http://www.sane-project.org/mailing-lists.html). ++others. For questions and comments contact the sane\-devel mailinglist (see ++http://www.sane\-project.org/mailing\-lists.html). + + .SH BUGS + For vector options, the help output currently has no indication as to --- sane-backends-1.0.19.orig/debian/patches/32_net_backend_standard_fix.dpatch +++ sane-backends-1.0.19/debian/patches/32_net_backend_standard_fix.dpatch @@ -0,0 +1,125 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 32_net_backend_standard_fix.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Do not reload the option descriptors cache behind the frontend's back. +## DP: This violates the principle of least surprise and the SANE standard. +## DP: Also fetch the option descriptors in sane_open() so a GET_VALUE on +## DP: option 0 can still work without having to fetch option descriptor 0 +## DP: beforehand. +## DP: Also reload options in sane_control_option() if the remote backend +## DP: asks for a reload but the frontend doesn't care (info == NULL). + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/backend/net.c sane-backends-1.0.19/backend/net.c +--- sane-backends-1.0.19~/backend/net.c 2008-07-20 12:38:03.900539576 +0200 ++++ sane-backends-1.0.19/backend/net.c 2008-07-20 12:38:15.117161876 +0200 +@@ -1361,6 +1361,7 @@ + SANE_String nd_name; + SANE_Status status; + SANE_Word handle; ++ SANE_Word ack; + Net_Device *dev; + Net_Scanner *s; + int need_auth; +@@ -1585,8 +1586,26 @@ + s->next = first_handle; + s->local_opt.desc = 0; + s->local_opt.num_options = 0; ++ ++ DBG (3, "sane_open: getting option descriptors\n"); ++ status = fetch_options (s); ++ if (status != SANE_STATUS_GOOD) ++ { ++ DBG (1, "sane_open: fetch_options failed (%s), closing device again\n", ++ sane_strstatus (status)); ++ ++ sanei_w_call (&s->hw->wire, SANE_NET_CLOSE, ++ (WireCodecFunc) sanei_w_word, &s->handle, ++ (WireCodecFunc) sanei_w_word, &ack); ++ ++ free (s); ++ ++ return status; ++ } ++ + first_handle = s; + *meta_handle = s; ++ + DBG (3, "sane_open: success\n"); + return SANE_STATUS_GOOD; + } +@@ -1658,7 +1677,7 @@ + + if (!s->options_valid) + { +- DBG (3, "sane_get_option_descripter: getting option descriptors\n"); ++ DBG (3, "sane_get_option_descriptor: getting option descriptors\n"); + status = fetch_options (s); + if (status != SANE_STATUS_GOOD) + { +@@ -1686,21 +1705,16 @@ + SANE_Status status; + size_t value_size; + int need_auth; ++ SANE_Word local_info; + + DBG (3, "sane_control_option: option %d, action %d\n", option, action); + + if (!s->options_valid) + { +- DBG (3, "sane_control_option: getting option descriptors\n"); +- status = fetch_options (s); +- if (status != SANE_STATUS_GOOD) +- { +- DBG (1, "sane_control_option: fetch_options failed (%s)\n", +- sane_strstatus (status)); +- +- return status; +- } ++ DBG (1, "sane_control_option: FRONTEND BUG: option descriptors reload needed\n"); ++ return SANE_STATUS_INVAL; + } ++ + if (((SANE_Word) option >= s->opt.num_options) || (option < 0)) + { + DBG (1, "sane_control_option: invalid option number\n"); +@@ -1742,6 +1756,8 @@ + req.value_size = value_size; + req.value = value; + ++ local_info = 0; ++ + DBG (3, "sane_control_option: remote control option\n"); + sanei_w_call (&s->hw->wire, SANE_NET_CONTROL_OPTION, + (WireCodecFunc) sanei_w_control_option_req, &req, +@@ -1766,6 +1782,8 @@ + } + else if (status == SANE_STATUS_GOOD) + { ++ local_info = reply.info; ++ + if (info) + *info = reply.info; + if (value_size > 0) +@@ -1787,7 +1805,19 @@ + } + while (need_auth); + +- DBG (2, "sane_control_option: done (%s)\n", sane_strstatus (status)); ++ DBG (2, "sane_control_option: remote done (%s, info %x)\n", sane_strstatus (status), local_info); ++ ++ if ((status == SANE_STATUS_GOOD) && (info == NULL) && (local_info & SANE_INFO_RELOAD_OPTIONS)) ++ { ++ DBG (2, "sane_control_option: reloading options as frontend does not care\n"); ++ ++ status = fetch_options (s); ++ ++ DBG (2, "sane_control_option: reload done (%s)\n", sane_strstatus (status)); ++ } ++ ++ DBG (2, "sane_control_option: done (%s, info %x)\n", sane_strstatus (status), local_info); ++ + return status; + } + --- sane-backends-1.0.19.orig/debian/patches/10_sm3840_unbreak_sane_open.dpatch +++ sane-backends-1.0.19/debian/patches/10_sm3840_unbreak_sane_open.dpatch @@ -0,0 +1,24 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 10_sm3840_unbreak_sane_open.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Unbreak sane_open(), rejecting valid descriptors from sanei_usb due +## DP: to an error in checking the sanei_usb_open() return value. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/backend/sm3840.c sane-backends-1.0.19/backend/sm3840.c +--- sane-backends-1.0.19~/backend/sm3840.c 2008-02-03 11:34:20.000000000 +0100 ++++ sane-backends-1.0.19/backend/sm3840.c 2008-08-27 19:56:41.193612628 +0200 +@@ -805,10 +805,9 @@ + if (!s) + return SANE_STATUS_NO_MEM; + +- s->udev = 0; + status = sanei_usb_open (dev->sane.name, &(s->udev)); +- if (!s->udev) +- return SANE_STATUS_ACCESS_DENIED; ++ if (status != SANE_STATUS_GOOD) ++ return status; + + initialize_options_list (s); + s->scanning = 0; --- sane-backends-1.0.19.orig/debian/patches/40_fujitsu_fixes.dpatch +++ sane-backends-1.0.19/debian/patches/40_fujitsu_fixes.dpatch @@ -0,0 +1,120 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 40_fujitsu_fixes.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Upstream fixes to the fujitsu backend: +## DP: - string initialization in config file parsing +## DP: - color format override for the fi-6130, 6230, 6140, 6240 +## DP: - fix for the fi-6230 wakeup from powersave mode + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/backend/fujitsu-scsi.h sane-backends-1.0.19/backend/fujitsu-scsi.h +--- sane-backends-1.0.19~/backend/fujitsu-scsi.h 2007-07-10 18:07:25.000000000 +0200 ++++ sane-backends-1.0.19/backend/fujitsu-scsi.h 2008-08-28 10:23:30.230354529 +0200 +@@ -129,6 +129,8 @@ + static scsiblk scanner_controlB = { scanner_controlC, sizeof (scanner_controlC) }; + + #define set_SC_function(icb, val) setbitfield(icb + 1, 7, 0, val) ++#define SC_function_adf 0x00 ++#define SC_function_fb 0x01 + #define SC_function_cancel 0x04 + #define SC_function_lamp_on 0x05 + #define SC_function_lamp_off 0x03 +diff -urNad sane-backends-1.0.19~/backend/fujitsu.c sane-backends-1.0.19/backend/fujitsu.c +--- sane-backends-1.0.19~/backend/fujitsu.c 2008-01-23 02:21:21.000000000 +0100 ++++ sane-backends-1.0.19/backend/fujitsu.c 2008-08-28 10:23:30.229354207 +0200 +@@ -274,6 +274,10 @@ + - disable SANE_FRAME_JPEG support until SANE 1.1.0 + V 1.0.55 2007-12-29, MAN (SANE v1.0.19) + - add S500M usb id ++ V 1.0.155 2008-08-27, MAN (Debian stable patch) ++ - fix unintialized string bug (#310597) ++ - add basic fi-6x30 and fi-6x40 color support ++ - select fb or adf in sane_start(), fixes fi-6230 wakeup bug + + SANE FLOW DIAGRAM + +@@ -334,7 +338,7 @@ + #include "fujitsu.h" + + #define DEBUG 1 +-#define BUILD 55 ++#define BUILD 155 + + /* values for SANE_DEBUG_FUJITSU env var: + - errors 5 +@@ -480,7 +484,6 @@ + struct fujitsu *dev; + char line[PATH_MAX]; + const char *lp; +- size_t len; + FILE *fp; + int num_devices=0; + int i=0; +@@ -498,17 +501,12 @@ + + while (sanei_config_read (line, PATH_MAX, fp)) { + ++ lp = line; ++ + /* ignore comments */ +- if (line[0] == '#') ++ if (*lp == '#') + continue; + +- /* delete newline characters at end */ +- len = strlen (line); +- if (line[len - 1] == '\n') +- line[--len] = '\0'; +- +- lp = sanei_config_skip_whitespace (line); +- + /* skip empty lines */ + if (*lp == 0) + continue; +@@ -1485,12 +1483,21 @@ + else if ( strstr (s->product_name, "fi-4340") + || strstr (s->product_name, "fi-4750") + || strstr (s->product_name, "fi-5650") +- || strstr (s->product_name, "fi-5750")) { ++ || strstr (s->product_name, "fi-5750") ++ || strstr (s->product_name, "fi-6140") ++ || strstr (s->product_name, "fi-6240") ++ ) { + + /* weirdness */ + s->color_interlace = COLOR_INTERLACE_RRGGBB; + + } ++ else if ( strstr (s->product_name, "fi-6130") ++ || strstr (s->product_name, "fi-6230")) { ++ ++ /* weirdness */ ++ s->color_interlace = COLOR_INTERLACE_NONE; ++ } + /* some firmware versions use capital f? */ + else if (strstr (s->product_name, "Fi-5900") + || strstr (s->product_name, "fi-5900") ) { +@@ -4090,6 +4097,22 @@ + return ret; + } + ++ /* switch source */ ++ if(s->source == SOURCE_FLATBED){ ++ ret = scanner_control(s, SC_function_fb); ++ if (ret != SANE_STATUS_GOOD) { ++ DBG (5, "sane_start: ERROR: cannot control fb\n"); ++ return ret; ++ } ++ } ++ else{ ++ ret = scanner_control(s, SC_function_adf); ++ if (ret != SANE_STATUS_GOOD) { ++ DBG (5, "sane_start: ERROR: cannot control adf\n"); ++ return ret; ++ } ++ } ++ + /* set window command */ + ret = set_window(s); + if (ret != SANE_STATUS_GOOD) { --- sane-backends-1.0.19.orig/debian/patches/03_snapscan_usb_ftok_fix.dpatch +++ sane-backends-1.0.19/debian/patches/03_snapscan_usb_ftok_fix.dpatch @@ -0,0 +1,157 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 03_snapscan_usb_ftok_fix.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix snapscan backend incorrect usage of ftok(). +## DP: Replace ftok() by a piece of code computing a key from the +## DP: device USB product ID and the bus and device number associated +## DP: to the device. +## DP: This routine is only called from snapscan-usb.c so it is safe +## DP: to assume that it will be used only with USB devices. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/backend/snapscan-mutex.c sane-backends-1.0.19/backend/snapscan-mutex.c +--- sane-backends-1.0.19~/backend/snapscan-mutex.c 2008-03-20 21:23:35.000000000 +0100 ++++ sane-backends-1.0.19/backend/snapscan-mutex.c 2008-03-20 22:05:03.497204484 +0100 +@@ -118,13 +118,51 @@ + + static int snapscani_mutex_open(snapscan_mutex_t* sem_id, const char* dev) + { +- *sem_id = semget( ftok(dev,0x12), 1, IPC_CREAT | 0660 ); +- if (*sem_id != -1) ++ static const char *me = "snapscani_mutex_open"; ++ key_t ipc_key; ++ int pid, devnum, busnum; ++ ++ if (strstr(dev, "libusb:") == dev) + { +- semop(*sem_id, &sem_signal, 1); +- return 1; ++ if (sanei_usb_get_vendor_product_byname(dev, NULL, &pid) != SANE_STATUS_GOOD) ++ { ++ DBG (DL_MAJOR_ERROR, "%s: could not obtain USB product ID for device %s\n", me, dev); ++ return 0; ++ } ++ ++ if (sscanf(dev, "libusb:%d:%d", &busnum, &devnum) != 2) ++ { ++ DBG (DL_MAJOR_ERROR, "%s: could not parse device string: %s\n", me, strerror(errno)); ++ return 0; ++ } ++ ++ ipc_key = pid << 16; ++ ipc_key |= (busnum & 0xff) << 8; ++ ipc_key |= (devnum & 0xff); ++ ++ DBG (DL_INFO, "%s: using IPC key 0x%08x for device %s (pid 0x%04x, bus 0x%02x, dev 0x%02x)\n", ++ me, ipc_key, dev, pid, busnum, devnum); + } +- return 0; ++ else ++ { ++ ipc_key = ftok(dev, 0x12); ++ ++ if (ipc_key == -1) ++ { ++ DBG (DL_MAJOR_ERROR, "%s: could not obtain IPC key for device %s: %s\n", me, dev, strerror(errno)); ++ return 0; ++ } ++ } ++ ++ *sem_id = semget( ipc_key, 1, IPC_CREAT | 0660 ); ++ if (*sem_id == -1) ++ { ++ DBG (DL_MAJOR_ERROR, "%s: semget failed: %s\n", me, strerror(errno)); ++ return 0; ++ } ++ ++ semop(*sem_id, &sem_signal, 1); ++ return 1; + } + + static void snapscani_mutex_close(snapscan_mutex_t* sem_id) +diff -urNad sane-backends-1.0.19~/include/sane/sanei_usb.h sane-backends-1.0.19/include/sane/sanei_usb.h +--- sane-backends-1.0.19~/include/sane/sanei_usb.h 2008-03-20 21:23:35.000000000 +0100 ++++ sane-backends-1.0.19/include/sane/sanei_usb.h 2008-03-20 21:24:23.269205358 +0100 +@@ -180,6 +180,22 @@ + */ + extern void sanei_usb_init (void); + ++/** Get the vendor and product ids by device name. ++ * ++ * @param devname ++ * @param vendor vendor id ++ * @param product product id ++ * ++ * @return ++ * - SANE_STATUS_GOOD - if the ids could be determined ++ * - SANE_STATUS_INVAL - if the device is not found ++ * - SANE_STATUS_UNSUPPORTED - if this method is not supported with the current ++ * access method ++ */ ++SANE_Status ++sanei_usb_get_vendor_product_byname (SANE_String_Const devname, ++ SANE_Word * vendor, SANE_Word * product); ++ + /** Get the vendor and product ids. + * + * Currently, only libusb devices and scanners supported by the Linux USB +@@ -190,8 +206,8 @@ + * @param vendor vendor id + * @param product product id + * +- *@return +- * - SANE_STATUS_GOOD - if the ids could be determinded ++ * @return ++ * - SANE_STATUS_GOOD - if the ids could be determined + * - SANE_STATUS_UNSUPPORTED - if the OS doesn't support detection of ids + */ + extern SANE_Status +diff -urNad sane-backends-1.0.19~/sanei/sanei_usb.c sane-backends-1.0.19/sanei/sanei_usb.c +--- sane-backends-1.0.19~/sanei/sanei_usb.c 2008-03-20 21:23:35.000000000 +0100 ++++ sane-backends-1.0.19/sanei/sanei_usb.c 2008-03-20 21:24:23.270204601 +0100 +@@ -646,6 +646,44 @@ + } + + SANE_Status ++sanei_usb_get_vendor_product_byname (SANE_String_Const devname, ++ SANE_Word * vendor, SANE_Word * product) ++{ ++ int devcount; ++ SANE_Bool found = SANE_FALSE; ++ ++ for (devcount = 0; devcount < MAX_DEVICES && devices[devcount].devname != 0; ++ devcount++) ++ { ++ if (strcmp (devices[devcount].devname, devname) == 0) ++ { ++ found = SANE_TRUE; ++ break; ++ } ++ } ++ ++ if (!found) ++ { ++ DBG (1, "sanei_usb_get_vendor_product_byname: can't find device `%s' in list\n", devname); ++ return SANE_STATUS_INVAL; ++ } ++ ++ if ((devices[devcount].vendor == 0) && (devices[devcount].product == 0)) ++ { ++ DBG (1, "sanei_usb_get_vendor_product_byname: not support for this method\n"); ++ return SANE_STATUS_UNSUPPORTED; ++ } ++ ++ if (vendor) ++ *vendor = devices[devcount].vendor; ++ ++ if (product) ++ *product = devices[devcount].product; ++ ++ return SANE_STATUS_GOOD; ++} ++ ++SANE_Status + sanei_usb_get_vendor_product (SANE_Int dn, SANE_Word * vendor, + SANE_Word * product) + { --- sane-backends-1.0.19.orig/debian/patches/06_sanei_scsi_attach_fix.dpatch +++ sane-backends-1.0.19/debian/patches/06_sanei_scsi_attach_fix.dpatch @@ -0,0 +1,21 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 06_sanei_scsi_attach_fix.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Continue to iterate over the devices even if an attach attempt on +## DP: one of the devices fails. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/sanei/sanei_scsi.c sane-backends-1.0.19/sanei/sanei_scsi.c +--- sane-backends-1.0.19~/sanei/sanei_scsi.c 2007-11-16 19:37:07.000000000 +0100 ++++ sane-backends-1.0.19/sanei/sanei_scsi.c 2008-03-28 22:20:46.183542512 +0100 +@@ -2882,8 +2882,7 @@ + channel, id, lun) + && ((*attach) (dev_name) != SANE_STATUS_GOOD)) + { +- fclose (proc_fp); +- return; ++ DBG(1,"sanei_scsi_find_devices: bad attach\n"); + } + } + vendor[0] = model[0] = type[0] = 0; --- sane-backends-1.0.19.orig/debian/patches/22_dll_backend_conf.dpatch +++ sane-backends-1.0.19/debian/patches/22_dll_backend_conf.dpatch @@ -0,0 +1,239 @@ +#!/bin/sh -e +## 03_dll.conf_debian.dpatch by Julien BLACHE +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: dll.conf comments for Debian +## DP: Patch to the dll backend to look for pieces of dll.conf inside the +## DP: /etc/sane.d/dll.d/ directory. This is a facility for packages providing +## DP: external backends (like libsane-extras, hpoj and hplip). + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in + -patch) patch $patch_opts -p1 < $0;; + -unpatch) patch $patch_opts -p1 -R < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad sane-backends-1.0.19~cvs20071213~/backend/dll.c sane-backends-1.0.19~cvs20071213/backend/dll.c +--- sane-backends-1.0.19~cvs20071213~/backend/dll.c 2007-11-23 11:12:01.000000000 +0100 ++++ sane-backends-1.0.19~cvs20071213/backend/dll.c 2007-12-13 21:30:31.468481793 +0100 +@@ -95,6 +95,8 @@ + #endif + + #include ++#include ++#include + + #include "sane/sane.h" + #include "sane/sanei.h" +@@ -720,12 +722,113 @@ + } + + ++static void ++read_config (const char *conffile) ++{ ++ FILE *fp; ++ char config_line[PATH_MAX]; ++ char *backend_name; ++ ++ fp = sanei_config_open (conffile); ++ if (!fp) ++ { ++ DBG (1, "sane_init/read_config: Couldn't open config file (%s): %s\n", ++ conffile, strerror (errno)); ++ return; /* don't insist on config file */ ++ } ++ ++ DBG (5, "sane_init/read_config: reading %s\n", conffile); ++ while (sanei_config_read (config_line, sizeof (config_line), fp)) ++ { ++ char *comment; ++ SANE_String_Const cp; ++ ++ cp = sanei_config_get_string (config_line, &backend_name); ++ /* ignore empty lines */ ++ if (!backend_name || cp == config_line) ++ { ++ if (backend_name) ++ free (backend_name); ++ continue; ++ } ++ /* ignore line comments */ ++ if (backend_name[0] == '#') ++ { ++ free (backend_name); ++ continue; ++ } ++ /* ignore comments after backend names */ ++ comment = strchr (backend_name, '#'); ++ if (comment) ++ *comment = '\0'; ++ add_backend (backend_name, 0); ++ free (backend_name); ++ } ++ fclose (fp); ++} ++ ++static void ++read_dlld (void) ++{ ++ DIR *dlld; ++ struct dirent *dllconf; ++ struct stat st; ++ char conffile[PATH_MAX]; ++ size_t len, plen; ++ ++ DBG (5, "sane_init/read_dlld: processing %s ...\n", ++ STRINGIFY(PATH_SANE_CONFIG_DIR) "/dll.d"); ++ ++ /* Debian specific: read files under $sysconfdir/sane.d/dll.d */ ++ dlld = opendir (STRINGIFY(PATH_SANE_CONFIG_DIR) "/dll.d"); ++ ++ if (dlld == NULL) ++ { ++ DBG (1, "sane_init/read_dlld: opendir failed: %s\n", ++ strerror (errno)); ++ return; ++ } ++ ++ plen = strlen (STRINGIFY(PATH_SANE_CONFIG_DIR)) + 1; ++ ++ while ((dllconf = readdir (dlld)) != NULL) ++ { ++ /* dotfile (or directory) */ ++ if (dllconf->d_name[0] == '.') ++ continue; ++ ++ len = strlen (dllconf->d_name); ++ ++ /* backup files */ ++ if ((dllconf->d_name[len-1] == '~') ++ || (dllconf->d_name[len-1] == '#')) ++ continue; ++ ++ snprintf (conffile, PATH_MAX, "%s/dll.d/%s", ++ STRINGIFY (PATH_SANE_CONFIG_DIR), dllconf->d_name); ++ ++ DBG (5, "sane_init/read_dlld: considering %s\n", conffile); ++ ++ if (lstat (conffile, &st) != 0) ++ continue; ++ ++ if (!S_ISREG (st.st_mode)) ++ continue; ++ ++ /* expects a path relative to PATH_SANE_CONFIG_DIR */ ++ read_config (conffile+plen); ++ } ++ ++ closedir (dlld); ++ ++ DBG (5, "sane_init/read_dlld: done.\n"); ++} ++ + SANE_Status + sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize) + { + #ifndef __BEOS__ + char config_line[PATH_MAX]; +- char *backend_name; + size_t len; + FILE *fp; + int i; +@@ -762,42 +865,12 @@ + *version_code = SANE_VERSION_CODE (SANE_DLL_V_MAJOR, SANE_DLL_V_MINOR, + SANE_DLL_V_BUILD); + +- fp = sanei_config_open (DLL_CONFIG_FILE); +- if (!fp) +- { +- DBG (1, "sane_init: Couldn't open config file (%s): %s\n", +- DLL_CONFIG_FILE, strerror (errno)); +- return SANE_STATUS_GOOD; /* don't insist on config file */ +- } +- +- DBG (5, "sane_init: reading %s\n", DLL_CONFIG_FILE); +- while (sanei_config_read (config_line, sizeof (config_line), fp)) +- { +- char *comment; +- SANE_String_Const cp; +- +- cp = sanei_config_get_string (config_line, &backend_name); +- /* ignore empty lines */ +- if (!backend_name || cp == config_line) +- { +- if (backend_name) +- free (backend_name); +- continue; +- } +- /* ignore line comments */ +- if (backend_name[0] == '#') +- { +- free (backend_name); +- continue; +- } +- /* ignore comments after backend names */ +- comment = strchr (backend_name, '#'); +- if (comment) +- *comment = '\0'; +- add_backend (backend_name, 0); +- free (backend_name); +- } +- fclose (fp); ++ /* ++ * Read dll.conf & dll.d ++ * Read dll.d first, so that the extras backends will be tried last ++ */ ++ read_dlld (); ++ read_config (DLL_CONFIG_FILE); + + fp = sanei_config_open (DLL_ALIASES_FILE); + if (!fp) +diff -urNad sane-backends-1.0.19~cvs20071213~/backend/dll.conf.in sane-backends-1.0.19~cvs20071213/backend/dll.conf.in +--- sane-backends-1.0.19~cvs20071213~/backend/dll.conf.in 2007-12-13 21:30:29.941481743 +0100 ++++ sane-backends-1.0.19~cvs20071213/backend/dll.conf.in 2007-12-13 21:30:31.468481793 +0100 +@@ -1,3 +1,10 @@ ++# /etc/sane.d/dll.conf - Configuration file for the SANE dynamic backend loader ++# ++# On Debian systems, the dll backend will also look for pieces of configuration ++# in the /etc/sane.d/dll.d directory -- packages providing backends should drop ++# a config file similar to dll.conf in this directory. ++# ++ + # enable the next line if you want to allow access through the network: + net + abaton +@@ -46,7 +53,6 @@ + nec + niash + pie +-pint + pixma + plustek + #plustek_pp +@@ -72,11 +78,4 @@ + #umax_pp + umax1220u + v4l +-# +-# The following backends are not included in the sane-backends distribution +-# If you want to use them, download them from their webpages and read their +-# documentation +-# +-# HP OfficeJet backend homepage: http://hpoj.sf.net/ +-# Uncomment the following line if hpoj is installed: +-#hpoj ++ --- sane-backends-1.0.19.orig/debian/patches/09_avision_fixes.dpatch +++ sane-backends-1.0.19/debian/patches/09_avision_fixes.dpatch @@ -0,0 +1,1531 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 09_avision_fixes.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Misc avision fixes, should help with the troublesome HP5300C. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/backend/avision.c sane-backends-1.0.19/backend/avision.c +--- sane-backends-1.0.19~/backend/avision.c 2008-02-09 11:42:46.000000000 +0100 ++++ sane-backends-1.0.19/backend/avision.c 2008-12-09 16:13:15.045925607 +0100 +@@ -134,7 +134,7 @@ + #include + + #define BACKEND_NAME avision +-#define BACKEND_BUILD 264 /* avision backend BUILD version */ ++#define BACKEND_BUILD 289 /* avision backend BUILD version */ + + #include + #include +@@ -179,63 +179,70 @@ + 0}, + /* status="untested" */ + +- { "AVISION", "AV120", ++ { NULL, NULL, + 0x0638, 0x0A27, + "Avision", "AV120", + AV_INT_STATUS}, + /* comment="sheetfed scanner" */ + /* status="complete" */ + +- { "AVISION", "AV121", ++ { NULL, NULL, + 0x0638, 0x0A3C, + "Avision", "AV121", + AV_INT_BUTTON | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA}, + /* comment="sheetfed scanner" */ + /* status="good" */ + +- { "AVISION", "AV122", ++ { NULL, NULL, + 0x0638, 0x0A33, + "Avision", "AV122", + AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET}, + /* comment="sheetfed duplex scanner" */ + /* status="good" */ + +- { "AVISION", "AV122 C2", ++ { NULL, NULL, + 0x0638, 0x0A93, + "Avision", "AV122 C2", + AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET}, + /* comment="sheetfed duplex scanner" */ + /* status="good" */ + +- { "AVISION", "AV210", ++ { NULL, NULL, + 0x0638, 0x0A24, + "Avision", "AV210", + AV_INT_BUTTON | AV_ACCEL_TABLE}, + /* comment="sheetfed scanner" */ + /* status="complete" */ + +- { "AVISION", "AV210", ++ { NULL, NULL, + 0x0638, 0x0A25, + "Avision", "AV210", +- AV_INT_BUTTON | AV_ACCEL_TABLE}, ++ AV_INT_BUTTON | AV_ACCEL_TABLE | AV_NO_64BYTE_ALIGN}, + /* comment="sheetfed scanner" */ + /* status="complete" */ + +- { "AVISION", "AVISION AV210C2", ++ { NULL, NULL, + 0x0638, 0x0A3A, + "Avision", "AV210C2", + AV_INT_BUTTON | AV_GRAY_MODES}, + /* comment="sheetfed scanner" */ + /* status="complete" */ + +- { "AVISION", "AV210C2", ++ { NULL, NULL, ++ 0x0638, 0x0A2F, ++ "Avision", "AV210C2-G", ++ AV_INT_BUTTON | AV_GRAY_MODES}, ++ /* comment="sheetfed scanner" */ ++ /* status="complete" */ ++ ++ { NULL, NULL, + 0x0638, 0x0A3A, + "Avision", "AV210C2", + AV_INT_BUTTON | AV_GRAY_MODES}, + /* comment="sheetfed scanner" */ + /* status="complete" */ + +- { "AVISION", "AVISION AV220", ++ { NULL, NULL, + 0x0638, 0x0A23, + "Avision", "AV220", + AV_INT_BUTTON}, +@@ -249,6 +256,41 @@ + /* comment="duplex! sheetfed scanner" */ + /* status="complete" */ + ++ { NULL, NULL, ++ 0x0638, 0x0A2B, ++ "Avision", "AV220D2", ++ AV_INT_BUTTON | AV_CANCEL_BUTTON}, ++ /* comment="duplex! sheetfed scanner" */ ++ /* status="complete" */ ++ ++ { NULL, NULL, ++ 0x0638, 0x0A2C, ++ "Avision", "AV220+", ++ AV_INT_BUTTON | AV_CANCEL_BUTTON}, ++ /* comment="duplex! sheetfed scanner" */ ++ /* status="complete" */ ++ ++ { NULL, NULL, ++ 0x0638, 0x0A2D, ++ "Avision", "AV220C2-G", ++ AV_INT_BUTTON | AV_CANCEL_BUTTON}, ++ /* comment="duplex! sheetfed scanner" */ ++ /* status="complete" */ ++ ++ { NULL, NULL, ++ 0x0638, 0x0A2E, ++ "Avision", "AV220C2-B", ++ AV_INT_BUTTON | AV_CANCEL_BUTTON}, ++ /* comment="duplex! sheetfed scanner" */ ++ /* status="complete" */ ++ ++ { NULL, NULL, ++ 0x0638, 0x0A94, ++ "Avision", "AV220-G", ++ AV_INT_BUTTON}, ++ /* comment="duplex! sheetfed scanner" */ ++ /* status="complete" */ ++ + { "AVISION", "AV240SC", + 0, 0, + "Avision", "AV240SC", +@@ -285,26 +327,32 @@ + 0}, + /* status="untested" */ + +- { "AVISION", "AV610", +- 0x0638, 0x0a19, ++ { NULL, "AV610", ++ 0x0638, 0x0a18, + "Avision", "AV610", + AV_GRAY_CALIB_BLUE | AV_ACCEL_TABLE | AV_NO_64BYTE_ALIGN | AV_INT_STATUS | AV_INT_BUTTON}, + /* status="good" */ + +- { "AVISION", "AV610C2", ++ { NULL, NULL, ++ 0x0638, 0x0a18, ++ "Avision", "AV600U Plus", ++ AV_GRAY_CALIB_BLUE | AV_ACCEL_TABLE | AV_NO_64BYTE_ALIGN | AV_INT_STATUS | AV_INT_BUTTON}, ++ /* status="good" */ ++ ++ { NULL, NULL, + 0x0638, 0x0a5e, + "Avision", "AV610C2", +- AV_INT_BUTTON}, /* cancel button -> sense abort! */ ++ AV_NO_BACKGROUND | AV_INT_BUTTON}, /* cancel button -> sense abort! */ + /* status="good" */ + +- { "AVISION", "AM3000 Series", ++ { NULL, NULL, + 0x0638, 0x0a41, + "Avision", "AM3000 Series", + 0}, + /* comment="MFD" */ + /* status="basic" */ + +- { "AVision", "DS610CU", ++ { NULL, NULL, + 0x0638, 0x0a16, + "Avision", "DS610CU Scancopier", + AV_INT_STATUS}, +@@ -346,20 +394,13 @@ + /* comment="1 pass, ??? dpi" */ + /* status="complete" */ + +- { "AVISION", "AV600U", ++ { NULL, NULL, + 0x0638, 0x0A13, + "Avision", "AV600U", + AV_MULTI_CALIB_CMD | AV_ADF_BGR_ORDER_INVERT | AV_SOFT_SCALE | AV_INT_STATUS | AV_NO_BUTTON}, + /* comment="1 pass, 600 dpi" */ + /* status="good" */ + +- { "AVISION", "AV600U Plus", +- 0x0638, 0x0A18, +- "Avision", "AV600U Plus", +- 0}, +- /* comment="1 pass, ??? dpi" */ +- /* status="untested" */ +- + { "AVISION", "AV660S", + 0, 0, + "Avision", "AV660S", +@@ -451,10 +492,31 @@ + /* comment="1 pass, ??? dpi" */ + /* status="complete" */ + ++ { "AVISION", "AV3200SU", ++ 0x0638, 0x0A4E, ++ "Avision", "AV3200SU", ++ 0}, ++ /* comment="1 pass, ??? dpi" */ ++ /* status="complete" */ ++ ++ { "AVISION", "AV3730SU", ++ 0x0638, 0x0A4F, ++ "Avision", "AV3730SU", ++ 0}, ++ /* comment="1 pass, ??? dpi" */ ++ /* status="complete" */ ++ ++ { "AVISION", "AV3750SU", ++ 0x0638, 0x0A65, ++ "Avision", "AV3750SU", ++ 0}, ++ /* comment="1 pass, ??? dpi" */ ++ /* status="complete" */ ++ + { "AVISION", "AV3800C", + 0, 0, + "Avision", "AV3800C", +- AV_NON_INTERLACED_DUPLEX_300}, ++ 0}, + /* comment="1 pass, ??? dpi" */ + /* status="complete" */ + +@@ -466,20 +528,20 @@ + /* status="complete" */ + + { "AVISION", "FB6000E", +- 0, 0, ++ 0, 0, + "Avision", "FB6000E", + AV_NON_INTERLACED_DUPLEX_300}, + /* comment="1 pass, 1200 dpi, A3 - duplex! - zero edge!" */ + /* status="complete" */ + +- { "AVISION", "FB6080E", +- 0x0638, 0x0a82, ++ { NULL, NULL, ++ 0x0638, 0x0a82, + "Avision", "FB6080E", + AV_NON_INTERLACED_DUPLEX_300}, + /* comment="1 pass, 1200 dpi, A3 - duplex! - zero edge!" */ + /* status="complete" */ + +- { "AVISION", "FB2080E", ++ { NULL, NULL, + 0x0638, 0xa84, + "Avision", "FB2080E", + 0}, +@@ -494,43 +556,42 @@ + /* status="complete" */ + + { NULL, NULL, +- 0x0638, 0x0a4d, ++ 0x0638, 0x0a4d, + "Avision", "AV8050U", + AV_NON_INTERLACED_DUPLEX_300 | AV_DOES_NOT_KEEP_GAMMA}, + /* comment="1 pass, 1200 dpi, A3 - duplex!" */ + /* status="complete" */ + + { "AVISION", "AV8300", +- 0x0638, 0x0A40, ++ 0x0638, 0x0A40, + "Avision", "AV8300", + AV_NON_INTERLACED_DUPLEX_300 | AV_DOES_NOT_KEEP_GAMMA}, + /* comment="1 pass, 1200 dpi, A3 - duplex!" */ + /* status="complete" */ + + { "AVISION", "AV8350", +- 0x0638, 0x0A68, ++ 0x0638, 0x0A68, + "Avision", "AV8350", + AV_NON_INTERLACED_DUPLEX_300 | AV_DOES_NOT_KEEP_GAMMA}, + /* comment="1 pass, 1200 dpi, A3 - duplex!" */ + /* status="complete" */ + +- { "AVISION", "IT8300", +- 0x0638, 0x0A61, ++ { NULL, NULL, ++ 0x0638, 0x0A61, + "Avision", "IT8300", + AV_NON_INTERLACED_DUPLEX_300 | AV_ACCEL_TABLE}, + /* comment="1 pass, 1200 dpi, A3 - duplex!, LCD screen, paper sensors" */ + /* status="good" */ + +- { "AVISION", NULL, ++ { NULL, NULL, + 0x0638, 0x0AA1, + "Avision", "@V2500", + 0}, + /* comment="" */ + /* status="untested" */ + +- +- { "AVISION", NULL, +- 0x0638, 0x0A45, ++ { NULL, NULL, ++ 0x0638, 0x0A45, + "Avision", "@V5100", + 0}, + /* comment="" */ +@@ -562,7 +623,7 @@ + { "hp", "scanjet 7400c", + 0x03f0, 0x0801, + "Hewlett-Packard", "ScanJet 7400c", +- AV_NO_64BYTE_ALIGN | AV_INT_STATUS}, ++ AV_LIGHT_CHECK_BOGUS | AV_NO_64BYTE_ALIGN | AV_INT_STATUS}, + /* comment="1 pass, 2400 dpi - dual USB/SCSI interface" */ + /* status="good" */ + +@@ -626,6 +687,12 @@ + "Minolta", "Dimage Scan Dual I", + AV_FORCE_FILM | AV_NO_START_SCAN}, /* not AV_FILMSCANNER (no frame control) */ + /* status="basic" */ ++ ++ { "Minolta", "#2887", ++ 0, 0, ++ "Minolta", "Scan Multi Pro", ++ AV_FORCE_FILM | AV_NO_START_SCAN}, /* AV_FILMSCANNER (rame control)? */ ++ /* status="untested" */ + + { "MINOLTA", "FS-V1", + 0x0638, 0x026a, +@@ -644,16 +711,16 @@ + { "MINOLTA", "FS-V3", + 0x0686, 0x400d, + "Minolta", "Dimage Scan Dual III", +- AV_FILMSCANNER | AV_ONE_CALIB_CMD}, ++ AV_FILMSCANNER | AV_ONE_CALIB_CMD | AV_ACCEL_TABLE }, + /* comment="1 pass, film-scanner" */ +- /* status="basic" */ ++ /* status="good" */ + + { "MINOLTA", "FS-V4", + 0x0686, 0x400e, + "Minolta", "Dimage Scan Elite 5400", + AV_FILMSCANNER | AV_ONE_CALIB_CMD | /*AV_ACCEL_TABLE |*/ AV_NO_START_SCAN}, + /* comment="1 pass, film-scanner" */ +- /* status="untested" */ ++ /* status="good" */ + + { "QMS", "SC-110", + 0x0638, 0x0a15, +@@ -749,49 +816,49 @@ + 0}, + /* status="untested" */ + +- { "FCPA", "fi-4010CU", ++ { NULL, NULL, + 0x04c5, 0x1029, + "Fujitsu", "fi-4010CU", + 0}, + /* status="untested" */ + +- { "KODAK", "i30 Scanner", ++ { NULL, NULL, + 0x040a, 0x6001, + "Kodak", "i30", +- AV_NO_TUNE_BOTTOM | AV_INT_BUTTON}, ++ AV_INT_BUTTON}, + /* status="untested" */ + +- { "KODAK", "i40 Scanner", ++ { NULL, NULL, + 0x040a, 0x6002, + "Kodak", "i40", +- AV_LIGHT_CHECK_BOGUS | AV_NO_GAMMA | AV_NO_TUNE_BOTTOM | AV_INT_BUTTON}, ++ AV_INT_BUTTON}, + /* status="basic" */ + +- { "KODAK", "i50 Scanner", ++ { NULL, NULL, + 0x040a, 0x6003, + "Kodak", "i50", + AV_INT_BUTTON}, + /* status="untested" */ + +- { "KODAK", "i55 Scanner", ++ { NULL, NULL, + 0x040a, 0x6003, +- "Kodak", "i50", ++ "Kodak", "i55", + AV_INT_BUTTON}, + /* status="untested" */ + +- { "KODAK", "i60 Scanner", ++ { NULL, NULL, + 0x040a, 0x6004, + "Kodak", "i60", + AV_INT_BUTTON}, + /* status="untested" */ + +- { "KODAK", "i65 Scanner", ++ { NULL, NULL, + 0x040a, 0x6004, +- "Kodak", "i60", ++ "Kodak", "i65", + AV_INT_BUTTON}, + /* status="untested" */ + +- { "KODAK", "KODAK i80", ++ { NULL, NULL, + 0x040a, 0x6005, + "Kodak", "i80", + AV_INT_BUTTON}, +@@ -803,117 +870,233 @@ + 0}, + /* status="untested" */ + +- { "XEROX", "DocuMate152", +- 0x04a7, 0x0477, +- "Xerox", "DocuMate152", +- AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET}, +- /* status="good" */ ++ { NULL, NULL, ++ 0x04a7, 0x0424, ++ "Visioneer", "Strobe XP 450", ++ AV_INT_BUTTON | AV_ACCEL_TABLE}, ++ /* comment="sheetfed scanner" */ ++ /* status="complete" */ + +- { "XEROX", "DocuMate250", +- 0x04a7, 0x0448, +- "Xerox", "DocuMate250", +- AV_INT_BUTTON}, +- /* status="good" */ +- +- { "XEROX", "DocuMate252", +- 0x04a7, 0x0449, +- "Xerox", "DocuMate252", +- AV_INT_BUTTON}, +- /* status="good" */ ++ { NULL, NULL, ++ 0x04a7, 0x0491, ++ "Visioneer", "Strobe XP 450-G", ++ AV_INT_BUTTON | AV_ACCEL_TABLE}, ++ /* comment="sheetfed scanner" */ ++ /* status="complete" */ + +- { "XEROX", "DocuMate262", +- 0x04a7, 0x044c, +- "Xerox", "DocuMate262", +- AV_INT_BUTTON}, +- /* status="good" */ +- +- { "XEROX", "DocuMate272", +- 0x04a7, 0x0475, +- "Xerox", "DocuMate272", +- AV_INT_BUTTON}, +- /* status="untested" */ +- +- { "XEROX", "DocuMate510", +- 0x04a7, 0x0, /* TODO */ +- "Xerox", "DocuMate510", +- AV_INT_BUTTON}, +- /* status="untested" */ ++ { NULL, NULL, ++ 0x04a7, 0x0479, ++ "Visioneer", "Strobe XP 470", ++ AV_INT_BUTTON | AV_ACCEL_TABLE}, ++ /* comment="sheetfed scanner" */ ++ /* status="complete" */ + +- { "XEROX", "DocuMate520", +- 0x04a7, 0x0447, +- "Xerox", "DocuMate520", +- AV_INT_BUTTON}, +- /* status="untested" */ ++ { NULL, NULL, ++ 0x04a7, 0x048F, ++ "Visioneer", "Strobe XP 470-G", ++ AV_INT_BUTTON | AV_ACCEL_TABLE}, ++ /* comment="sheetfed scanner" */ ++ /* status="complete" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x0420, ++ "Visioneer", "9320", ++ 0}, ++ /* comment="sheetfed scanner" */ ++ /* status="complete" */ + +- { "XEROX", "DocuMate632", +- 0x04a7, 0x0498, +- "Xerox", "DocuMate632", +- AV_INT_BUTTON}, +- /* status="untested" */ ++ { NULL, NULL, ++ 0x04a7, 0x0421, ++ "Visioneer", "9450", ++ 0}, ++ /* comment="sheetfed scanner" */ ++ /* status="complete" */ + +- { "XEROX", "DocuMate752", +- 0x04a7, 0x0478, +- "Xerox", "DocuMate752", +- AV_INT_BUTTON}, +- /* status="untested" */ ++ { NULL, NULL, ++ 0x04a7, 0x047A, ++ "Visioneer", "9450-G", ++ 0}, ++ /* comment="sheetfed scanner" */ ++ /* status="complete" */ + +- { "VISIONER", "Strobe XP 450", +- 0x04a7, 0x0424, +- "Visioneer", "Strobe XP 450", +- AV_INT_BUTTON | AV_ACCEL_TABLE}, ++ { NULL, NULL, ++ 0x04a7, 0x0422, ++ "Visioneer", "9550", ++ 0}, + /* comment="sheetfed scanner" */ + /* status="complete" */ + +- { "VISIONER", NULL, +- 0x04a7, 0x047A, +- "Visioneer", "9450 USB", ++ { NULL, NULL, ++ 0x04a7, 0x0390, ++ "Visioneer", "9650", + 0}, + /* comment="sheetfed scanner" */ + /* status="complete" */ + +- { "VISIONER", NULL, ++ { NULL, NULL, + 0x04a7, 0x047B, +- "Visioneer", "9650 USB", ++ "Visioneer", "9650-G", + 0}, + /* comment="sheetfed scanner" */ + /* status="complete" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x0423, ++ "Visioneer", "9750", ++ AV_INT_BUTTON}, ++ /* comment="sheetfed scanner" */ ++ /* status="complete" */ + +- { "VISIONER", NULL, ++ { NULL, NULL, + 0x04a7, 0x0493, +- "Visioneer", "9750 PDF", ++ "Visioneer", "9750-G", + AV_INT_BUTTON}, + /* comment="sheetfed scanner" */ + /* status="complete" */ + +- { "VISIONER", NULL, ++ { NULL, NULL, + 0x04a7, 0x0497, + "Visioneer", "Patriot 430", + AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET}, + /* comment="sheetfed scanner" */ + /* status="complete" */ + +- { "VISIONER", NULL, ++ { NULL, NULL, + 0x04a7, 0x048F, + "Visioneer", "Patriot 470", + AV_INT_BUTTON}, + /* comment="sheetfed scanner" */ + /* status="complete" */ + +- { "VISIONER", NULL, ++ { NULL, NULL, + 0x04a7, 0x0498, + "Visioneer", "Patriot 680", + AV_INT_BUTTON}, + /* comment="sheetfed scanner" */ + /* status="complete" */ + +- { "VISIONER", NULL, ++ { NULL, NULL, + 0x04a7, 0x0499, + "Visioneer", "Patriot 780", + AV_INT_BUTTON}, + /* comment="sheetfed scanner" */ + /* status="complete" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x049C, ++ "Xerox", "DocuMate150", ++ AV_INT_BUTTON | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_BACKGROUND_QUIRK}, ++ /* status="good" */ + +- { "OKI", "S700 Scancopier", ++ { NULL, NULL, ++ 0x04a7, 0x0477, ++ "Xerox", "DocuMate152", ++ AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET | AV_BACKGROUND_QUIRK}, ++ /* status="good" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x049D, ++ "Xerox", "DocuMate162", ++ AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET | AV_BACKGROUND_QUIRK}, ++ /* status="good" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x0448, ++ "Xerox", "DocuMate250", ++ AV_INT_BUTTON}, ++ /* status="good" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x0490, ++ "Xerox", "DocuMate250-G", ++ AV_INT_BUTTON}, ++ /* status="good" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x0449, ++ "Xerox", "DocuMate252", ++ AV_INT_BUTTON}, ++ /* status="good" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x048C, ++ "Xerox", "DocuMate252-G", ++ AV_INT_BUTTON}, ++ /* status="good" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x044c, ++ "Xerox", "DocuMate262", ++ AV_INT_BUTTON}, ++ /* status="good" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x048D, ++ "Xerox", "DocuMate262-G", ++ AV_INT_BUTTON}, ++ /* status="good" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x0475, ++ "Xerox", "DocuMate272", ++ AV_INT_BUTTON}, ++ /* status="untested" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x048E, ++ "Xerox", "DocuMate272-G", ++ AV_INT_BUTTON}, ++ /* status="untested" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x0446, ++ "Xerox", "DocuMate510", ++ AV_INT_BUTTON}, ++ /* status="untested" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x0495, ++ "Xerox", "DocuMate512", ++ AV_INT_BUTTON}, ++ /* status="untested" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x047c, ++ "Xerox", "DocuMate510-G", ++ AV_INT_BUTTON}, ++ /* status="untested" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x0447, ++ "Xerox", "DocuMate520", ++ AV_INT_BUTTON}, ++ /* status="untested" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x0492, ++ "Xerox", "DocuMate520-G", ++ AV_INT_BUTTON}, ++ /* status="untested" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x0498, ++ "Xerox", "DocuMate632", ++ AV_INT_BUTTON}, ++ /* status="untested" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x0478, ++ "Xerox", "DocuMate752", ++ AV_INT_BUTTON}, ++ /* status="untested" */ ++ ++ { NULL, NULL, ++ 0x04a7, 0x049A, ++ "Xerox", "DocuMate752", ++ AV_INT_BUTTON}, ++ /* status="untested" */ ++ ++ { NULL, NULL, + 0x0638, 0x0a16, + "OKI", "S700 Scancopier", + 0}, +@@ -927,9 +1110,9 @@ + /* comment="1 pass, ??? dpi, A4" */ + /* status="basic" */ + +- { "Kyocera", "FS-1016MFP", ++ { NULL, NULL, + 0x0482, 0x0335, +- 0, 0, ++ "Kyocera", "FS-1016MFP", + 0}, + /* comment="1 pass, ??? dpi, A4" */ + /* status="untested" */ +@@ -1009,7 +1192,10 @@ + #define DEFAULT_WHITE_SHADING 0xFFF0 + + #define MAX_WHITE_SHADING 0xFFFF +-#define WHITE_MAP_RANGE 0x4000 ++/* originally the WHITE_MAP_RANGE was 0x4000 - but this always ++ * resulted in slightly too dark images - thus I have choosen ++ * 0x4FFF ... */ ++#define WHITE_MAP_RANGE 0x4FFF + + #define INVALID_DARK_SHADING 0xFFFF + #define DEFAULT_DARK_SHADING 0x0000 +@@ -1048,11 +1234,13 @@ + }; + static const int hw_res_list_generic[] = + { +- /* tested on AV122/DM152 */ +- 50, 75, /* work but are slower than 150 on the AV122/DM152, left for USB 1 hosts */ ++ 50, /* slower than 150 on the AV122/DM152, left for USB 1 host's preview */ ++ 75, /* slower than 150 on the AV122/DM152, left for USB 1 host's */ + 150, 200, 300, +- /* 400, */ /* worked mostly, y-scaling was wrong on AV122/DM152 */ +- 600, 1200, 2400, 4800, /* ... */ 0 ++ /* 400,*/ /* AV122 simplex y-scaling and duplex interlacing corrupt */ ++ 600, 1200, 2400, 4800, ++ /* ... */ ++ 0 + }; + + static SANE_Bool static_calib_list[3] = +@@ -1081,6 +1269,13 @@ + SANE_FIX (1) /* quantization */ + }; + ++static const SANE_Range exposure_range = ++ { ++ 0, /* minimum */ ++ 1000, /* maximum */ ++ 1 /* quantization */ ++ }; ++ + static const SANE_Range overscan_range = + { + SANE_FIX (0), /* minimum */ +@@ -1311,6 +1506,13 @@ + func, get_double ( &(result[17]) ) ); + DBG (dbg_level, "%s: [19-20] B dark shading target: %x\n", + func, get_double ( &(result[19]) ) ); ++ ++ DBG (dbg_level, "%s: [21] true-gray gain: %d\n", func, result[21]); ++ DBG (dbg_level, "%s: [22-23] true-gray shading target: %x\n", ++ func, get_double ( &(result[22]) ) ); ++ ++ DBG (dbg_level, "%s: [24-25] true-gray dark shading target: %x\n", ++ func, get_double ( &(result[24]) ) ); + } + + static void debug_print_accel_info (int dbg_level, char* func, +@@ -1827,8 +2029,11 @@ + /* per command class timeout tweaks */ + switch (m_cmd[0]) { + case AVISION_SCSI_INQUIRY: ++ read_timeout = 1000; /* quickly timeout on initial detection */ ++ status_timeout = 1000; ++ break; + case AVISION_SCSI_TEST_UNIT_READY: +- read_timeout = 15000; /* quick timeout on initial detection */ ++ read_timeout = 15000; /* quickly timeout on initial detection */ + status_timeout = 15000; + break; + } +@@ -2197,7 +2402,36 @@ + /* interlaced duplex (higher end) or flipping paper (HP8xxx)? */ + s->avdimen.interlaced_duplex = s->source_mode == AV_ADF_DUPLEX && + dev->inquiry_duplex_interlaced; ++ ++ /* for infra-red we use the same code path es for interlaced ++ duplex */ ++ if (s->val[OPT_IR].w) ++ s->avdimen.interlaced_duplex = 1; + ++#ifdef AVISION_ENHANCED_SANE ++ /* quick fix for Microsoft Office Products ... */ ++ switch (s->c_mode) ++ { ++ case AV_THRESHOLDED: ++ case AV_DITHERED: ++ /* our backend already has this restriction - so this line is for ++ documentation purposes only */ ++ boundary = boundary > 32 ? boundary : 32; ++ break; ++ case AV_GRAYSCALE: ++ case AV_GRAYSCALE12: ++ case AV_GRAYSCALE16: ++ boundary = boundary > 4 ? boundary : 4; ++ break; ++ case AV_TRUECOLOR: ++ case AV_TRUECOLOR12: ++ case AV_TRUECOLOR16: ++ /* 12 bytes for 24bit color - 48bit is untested w/ Office */ ++ boundary = boundary > 4 ? boundary : 4; ++ break; ++ } ++#endif ++ + DBG (3, "sane_compute_parameters:\n"); + + DBG (3, "sane_compute_parameters: boundary %d, gray_mode: %d, \n", +@@ -2311,7 +2545,7 @@ + s->avdimen.hw_lines = (s->avdimen.bry - s->avdimen.tly - + 2 * s->avdimen.line_difference); + +- if (s->avdimen.interlaced_duplex) ++ if (s->avdimen.interlaced_duplex && dev->scanner_type != AV_FILM) + s->avdimen.hw_lines -= s->avdimen.hw_lines % dev->read_stripe_size; + + s->params.pixels_per_line = s->avdimen.hw_pixels_per_line * s->avdimen.xres / s->avdimen.hw_xres; +@@ -2865,11 +3099,12 @@ + if (result [2] == 2) /* HP */ + { + dev->inquiry_duplex = 1; ++ dev->inquiry_duplex_interlaced = 0; + dev->inquiry_adf_need_mirror_rear = 1; + } + + /* only honor a 1, some scanner without adapter set 0xff */ +- if (dev->inquiry_light_box == 1) ++ if (result[1] == 1) + dev->inquiry_light_box = 1; + + return SANE_STATUS_GOOD; +@@ -2981,7 +3216,7 @@ + /* no SCSI equivalent */ + /* either there was a button press and this completes quickly + or there is no point waiting for a future press */ +- sanei_usb_set_timeout (250); ++ sanei_usb_set_timeout (100); /* 10th of a second */ + DBG (5, "==> (interrupt read) going down ...\n"); + status = sanei_usb_read_int (s->av_con.usb_dn, (uint8_t*)&result, + &size); +@@ -3661,6 +3896,10 @@ + dev->inquiry_adf = BIT (result[62], 5); + dev->inquiry_duplex = BIT (result[62], 2) || BIT (result[94], 5); + dev->inquiry_duplex_interlaced = BIT(result[62],2) || BIT (result[94], 4); ++ /* the first avision scanners (AV3200) do not set the interlaced bit */ ++ if (dev->inquiry_duplex && dev->inquiry_asic_type < AV_ASIC_C6) ++ dev->inquiry_duplex_interlaced = 1; ++ + dev->inquiry_paper_length = BIT (result[95], 5); + dev->inquiry_batch_scan = BIT (result[95], 0); /* AV122, DM152 */ + +@@ -3695,6 +3934,7 @@ + dev->inquiry_light_control = BIT (result[50], 7); + dev->inquiry_button_control = BIT (result[50], 6) | BIT (result[51],2); + ++ dev->inquiry_exposure_control = BIT(result[51],7); + dev->inquiry_max_shading_target = get_double ( &(result[75]) ); + + dev->inquiry_color_boundary = result[54]; +@@ -3715,10 +3955,18 @@ + + dev->inquiry_line_difference = result[53]; + /* compensation according to real world hardware */ +- if (dev->inquiry_asic_type == AV_ASIC_C2) +- dev->inquiry_line_difference /= 2; /* HP 5300 */ +- else if (dev->inquiry_asic_type == AV_ASIC_C7) +- dev->inquiry_line_difference *= 2; /* AV610C2 */ ++ switch (dev->inquiry_asic_type) ++ { ++ case AV_ASIC_C2: /* HP 5300 */ ++ case AV_ASIC_C5: /* HP 53xx R2 */ ++ dev->inquiry_line_difference /= 2; /* HP 5300 */ ++ break; ++ case AV_ASIC_C7: ++ dev->inquiry_line_difference *= 2; /* AV610C2 */ ++ break; ++ default: ++ ; ++ } + + if (dev->inquiry_new_protocol) { + dev->inquiry_optical_res = get_double ( &(result[89]) ); +@@ -3824,6 +4072,10 @@ + + dev->inquiry_tune_scan_length = BIT(result[94],2); + dev->inquiry_background_raster = BIT(result[95],2); ++ ++ if (dev->hw->feature_type & AV_NO_BACKGROUND) ++ dev->inquiry_background_raster = 0; ++ + if (dev->inquiry_background_raster) { + dev->inquiry_background_raster_pixel = + get_double(&(result[85])) * dev->inquiry_optical_res / AVISION_BASE_RES; +@@ -3958,7 +4210,6 @@ + static SANE_Status + send_tune_scan_length (Avision_Scanner* s) + { +- Avision_Device* dev = s->hw; + int top, bottom; + + SANE_Status status; +@@ -3966,7 +4217,7 @@ + struct command_send scmd; + struct truncate_attach { + uint8_t vertical [2]; +- uint8_t horizontal [2]; ++ /* uint8_t horizontal [2]; not send by the Windows driver, yet */ + } payload; + + DBG (3, "send_tune_scan_length:\n"); +@@ -3985,7 +4236,7 @@ + + set_double (scmd.datatypequal, 0x0001); /* attach, 0x000 is shorten */ + set_double (payload.vertical, top); +- set_double (payload.horizontal, 0); ++ /* set_double (payload.horizontal, 0); */ + + /* we alway send it, even for 0 as the scanner keeps it in RAM and + previous runs could aleady have set something */ +@@ -3996,19 +4247,14 @@ + if (status != SANE_STATUS_GOOD) { + DBG (1, "send_tune_scan_length: send top/left failed (%s)\n", sane_strstatus (status)); + return status; +- } +- +- if (dev->hw->feature_type & AV_NO_TUNE_BOTTOM) { +- DBG (1, "send_tune_scan_length: tune bottom disabled due device list\n"); +- return SANE_STATUS_GOOD; + } +- ++ + scmd.datatypecode = 0x95; /* Attach/Truncate tail(right) of scan length */ + bottom = 1200 * SANE_UNFIX (s->val[OPT_OVERSCAN_BOTTOM].w) / MM_PER_INCH; + DBG (3, "send_tune_scan_length: bottom: %d\n", bottom); + + set_double (payload.vertical, bottom); +- set_double (payload.horizontal, 0); ++ /*set_double (payload.horizontal, 0); */ + + size = sizeof (payload); + status = avision_cmd (&s->av_con, &scmd, sizeof (scmd), +@@ -4241,16 +4487,17 @@ + { + Avision_Device* dev = s->hw; + +- struct command_send scmd; ++ const int elements_per_line = format->pixel_per_line * format->channels; + + SANE_Status status; + + uint8_t send_type; + uint16_t send_type_q; + ++ struct command_send scmd; ++ + int i; + size_t out_size; +- int elements_per_line = format->pixel_per_line * format->channels; + + DBG (3, "set_calib_data:\n"); + +@@ -4375,9 +4622,10 @@ + static uint8_t* + sort_and_average (struct calibration_format* format, uint8_t* data) + { +- int stride, i, line; +- int elements_per_line; +- ++ const int elements_per_line = format->pixel_per_line * format->channels; ++ const int stride = format->bytes_per_channel * elements_per_line; ++ int i, line; ++ + uint8_t *sort_data, *avg_data; + + DBG (1, "sort_and_average:\n"); +@@ -4474,7 +4722,7 @@ + { + int i; + uint16_t inquiry_mst = DEFAULT_WHITE_SHADING; +- uint16_t mst[3], result; ++ uint16_t mst[3]; + + int elements_per_line = format->pixel_per_line * format->channels; + +@@ -4634,7 +4882,19 @@ + free (calib_tmp_data); + return status; + } +- ++ ++ if (0) /* debug */ ++ { ++ FILE* f = NULL; ++ f = fopen ("calibration-white.pnm", "w"); ++ write_pnm_header (f, AV_GRAYSCALE, calib_format.bytes_per_channel * 8, ++ calib_format.pixel_per_line, ++ calib_format.lines * calib_format.channels); ++ ++ fwrite (calib_tmp_data, 1, calib_data_size, f); ++ fclose (f); ++ } ++ + if (s->white_avg_data) { + free (s->white_avg_data); + s->white_avg_data = 0; +@@ -4890,27 +5150,28 @@ + #define SIGN_BIT 0x1000 + #define INT_PART 10 + +- struct command_send scmd; +- struct matrix_3x3 matrix; ++ struct matrix_cmd ++ { ++ struct command_send scmd; ++ struct matrix_3x3 matrix; ++ } cmd; + + /* 04 00 00 00 00 00 + 00 00 04 00 00 00 + 00 00 00 00 04 00 */ + + int i, a_i; +- double c5_matrix[] = +- { 1.3042, -0.1475, -0.1567, +- -0.1413, 1.2007, -0.0594, +- -0.0335, -0.1274, 1.1609 +- }; ++ static const double c5_matrix[] = ++ { 1.000, 0.000, 0.000, ++ 0.000, 1.000, 0.000, ++ 0.000, 0.000, 1.000 }; + + double a_f, b_f; + uint16_t m; + + DBG (3, "send_3x3_matrix:\n"); + +- memset (&scmd, 0, sizeof (scmd)); +- memset (&matrix, 0, sizeof (matrix)); ++ memset (&cmd, 0, sizeof (cmd)); + + for (i = 0; i < 9; i++) + { +@@ -4921,18 +5182,27 @@ + a_f = -a_f; + } + +- a_i = (int) a_f; /* integer */ +- b_f = a_f - (double) a_i; /*float */ +- m = m | ((a_i & 0x3) << INT_PART); +- m = m | (uint16_t) (b_f * 1024); +- set_double ( ((uint8_t*)(&matrix.v[i])), m); ++ a_i = (int) a_f; /* integer */ ++ b_f = a_f - (double) a_i; /* float */ ++ m |= ((a_i & 0x3) << INT_PART); ++ m |= (uint16_t) (b_f * 1024); ++ set_double (((u_int8_t*)(&cmd.matrix.v[i])), m); + } +- scmd.opc = AVISION_SCSI_SEND; +- scmd.datatypecode = 0x83; /* 0x83 for 3x3 color matrix */ +- set_triple (scmd.transferlen, sizeof (matrix)); + +- DBG (3, "send_3x3_matrix: sending matrix\n"); +- status = avision_cmd (&s->av_con, &scmd, sizeof (scmd), &matrix, sizeof(matrix), 0, 0); ++ cmd.scmd.opc = AVISION_SCSI_SEND; ++ cmd.scmd.datatypecode = 0x83; /* 0x83 for 3x3 color matrix */ ++ set_triple (cmd.scmd.transferlen, sizeof (struct matrix_3x3)); ++ ++ if (1) { ++ DBG (3, "send_3x3_matrix: sending matrix split into two commands\n"); ++ status = avision_cmd (&s->av_con, &cmd.scmd, sizeof (cmd.scmd), ++ &cmd.matrix, sizeof(cmd.matrix), 0, 0); ++ } ++ else { ++ DBG (3, "send_3x3_matrix: sending matrix in one command\n"); ++ status = avision_cmd (&s->av_con, &cmd, sizeof (cmd), 0, 0, 0, 0); ++ } ++ + return status; + } + +@@ -5212,7 +5482,7 @@ + line_count * base_dpi_rel / s->avdimen.hw_yres + 1); + + /* interlaced duplex scans are twice as long */ +- if (s->avdimen.interlaced_duplex) { ++ if (s->avdimen.interlaced_duplex && dev->scanner_type != AV_FILM) { + DBG (2, "set_window: interlaced duplex scan, doubled line count\n"); + line_count *= 2; + } +@@ -5304,9 +5574,17 @@ + } + + if (dev->scanner_type == AV_FILM) { +- set_double (cmd.window.avision.type.normal.r_exposure_time, 0x016d); +- set_double (cmd.window.avision.type.normal.g_exposure_time, 0x016d); +- set_double (cmd.window.avision.type.normal.b_exposure_time, 0x016d); ++ /* TODO: wire to IR exposure option? */ ++ cmd.window.avision.type.normal.ir_exposure_time = 100; ++ set_double (cmd.window.avision.type.normal.r_exposure_time, s->val[OPT_EXPOSURE].w); ++ set_double (cmd.window.avision.type.normal.g_exposure_time, s->val[OPT_EXPOSURE].w); ++ set_double (cmd.window.avision.type.normal.b_exposure_time, s->val[OPT_EXPOSURE].w); ++ ++ if (s->val[OPT_IR].w) ++ cmd.window.avision.type.normal.bitset3 |= (1 << 0); ++ ++ if (s->val[OPT_MULTISAMPLE].w) ++ cmd.window.avision.type.normal.bitset3 |= (1 << 1); + } + } + +@@ -5399,13 +5677,19 @@ + SANE_Status status; + + struct command_read rcmd; +- size_t size, read_size; ++ size_t size; + int bytes_per_line, i; + const int bpp = color_mode_is_color (s->c_mode) ? 3 : 1; ++ const int lines = s->val[OPT_BACKGROUND].w * (s->avdimen.interlaced_duplex ? 2 : 1); + + uint8_t* background = NULL; + + DBG (1, "get_background_raster:\n"); ++ ++ if (lines == 0) { ++ DBG (1, "get_background_raster: no background requested\n"); ++ return SANE_STATUS_GOOD; ++ } + + /* full width, always :-(, duplex *2 for front and rear */ + bytes_per_line = dev->inquiry_background_raster_pixel * +@@ -5416,17 +5700,11 @@ + dev->inquiry_background_raster_pixel, bytes_per_line); + + /* according to spec only 8-bit gray or color, TODO: test for bi-level scans */ +- size = bytes_per_line * s->val[OPT_BACKGROUND].w; ++ size = bytes_per_line * lines; + +- DBG (3, "get_background_raster: buffer size: %ld\n", size); +- +- if (size == 0) { +- DBG (1, "get_background_raster: no background requested\n"); +- return SANE_STATUS_GOOD; +- } ++ DBG (3, "get_background_raster: buffer size: %ld\n", (long)size); + +- background = s->background_raster = realloc (s->background_raster, size * +- (s->avdimen.interlaced_duplex ? 2 : 1)); ++ background = s->background_raster = realloc (s->background_raster, size); + if (!background) + return SANE_STATUS_NO_MEM; + +@@ -5435,60 +5713,65 @@ + rcmd.datatypecode = 0x9b; /* get background raster */ + set_double (rcmd.datatypequal, s->hw->data_dq); + +- /* so far either line by line, or stripe by stripe */ +- if (s->avdimen.interlaced_duplex && dev->hw->feature_type & AV_2ND_LINE_INTERLACED) ++ /* Ok, well - this part is very messy. The AV122 and DM152 appear to ++ contain differently buggy ASICs. The only combination I found to ++ at least get a correct front raster out of them is to read it ++ line by line and then every second line appears to be valid front ++ data, ... */ ++ ++ /* read the raster data */ ++ for (i = 0; i < lines;) + { +- set_triple (rcmd.transferlen, bytes_per_line); ++ uint8_t* dst_raster = background + bytes_per_line * i; ++ /* read stripe by stripe, or all in one chunk */ ++ size_t this_read, read_size; ++ int this_lines; + +- for (i = 0; +- i < s->val[OPT_BACKGROUND].w * (s->avdimen.interlaced_duplex ? 2 : 1); +- ++i) +- { +- uint8_t* dst_raster = background + +- bytes_per_line * (i / 2 + (i % 2) * s->val[OPT_BACKGROUND].w); +- DBG (3, "get_background_raster: interlaced line: %d, %lu bytes\n", +- i, (u_long) bytes_per_line); +- +- size = bytes_per_line; +- read_size = size; +- status = avision_cmd (&s->av_con, &rcmd, sizeof (rcmd), 0, 0, dst_raster, &read_size); +- if (status != SANE_STATUS_GOOD || read_size != size) { +- DBG (1, "get_background_raster: read raster failed (%s)\n", +- sane_strstatus (status) ); +- return status; +- } +- } ++ if (dev->hw->feature_type & AV_2ND_LINE_INTERLACED) { ++ if (dev->hw->feature_type & AV_BACKGROUND_QUIRK) ++ this_lines = 1; ++ else ++ this_lines = lines; ++ } ++ else { ++ this_lines = s->val[OPT_BACKGROUND].w; ++ } ++ this_read = bytes_per_line * this_lines; ++ ++ DBG (3, "get_background_raster: line: %d, lines: %d, %lu bytes\n", ++ i, this_lines, (u_long) this_read); ++ ++ set_triple (rcmd.transferlen, this_read); ++ ++ read_size = this_read; ++ status = avision_cmd (&s->av_con, &rcmd, sizeof (rcmd), 0, 0, dst_raster, &read_size); ++ if (status != SANE_STATUS_GOOD || read_size != this_read) { ++ DBG (1, "get_background_raster: read raster failed (%s)\n", ++ sane_strstatus (status) ); ++ return status; ++ } ++ ++ i += this_lines; + } +- else ++ ++ /* dump raw result while debugging */ ++ if (debug) + { +- set_triple (rcmd.transferlen, size); ++ FILE* f = NULL; ++ f = fopen ("background-raw.pnm", "w"); + +- for (i = 0; +- i < (s->avdimen.interlaced_duplex ? 2 : 1); +- ++i) +- { +- uint8_t* dst_raster = background + size * i; +- DBG (3, "get_background_raster: stripe: %d, %lu bytes\n", +- i, (u_long) size); +- +- read_size = size; +- status = avision_cmd (&s->av_con, &rcmd, sizeof (rcmd), 0, 0, dst_raster, &read_size); +- if (status != SANE_STATUS_GOOD || read_size != size) { +- DBG (1, "get_background_raster: read raster failed (%s)\n", +- sane_strstatus (status) ); +- return status; +- } +- } ++ write_pnm_header (f, (color_mode_is_color (s->c_mode) ? AV_TRUECOLOR : AV_GRAYSCALE), 8, ++ bytes_per_line / bpp, lines); ++ ++ fwrite (background, 1, bytes_per_line * lines, f); ++ fclose (f); + } +- +- size = 0; +- ++ + /* line-pack - move to unified processing flow, later */ + if (dev->inquiry_needs_line_pack) + { + /* TODO: add 16bit per sample code? */ + int l, p; +- const int lines = s->val[OPT_BACKGROUND].w * (s->avdimen.interlaced_duplex ? 2 : 1); + + uint8_t* tmp_data = malloc (bytes_per_line); + for (l = 0; l < lines; ++l) +@@ -5509,10 +5792,38 @@ + + free (tmp_data); + } /* end line pack */ +- ++ ++ /* deinterlace? */ ++ if (s->avdimen.interlaced_duplex && dev->hw->feature_type & AV_2ND_LINE_INTERLACED) ++ { ++ uint8_t* deinterlaced = malloc (size * 2); ++ if (!deinterlaced) ++ return SANE_STATUS_NO_MEM; ++ ++ for (i = 0; i < lines; ++i) ++ { ++ int dst_i = i / 2 + (i % 2) * (lines / 2); ++ uint8_t* dst_raster; /* just no C99 in SANE :-( */ ++ uint8_t* src_raster; ++ ++ /* for the quirky devices and some resolutions the interlacing differs */ ++ if (dev->hw->feature_type & AV_BACKGROUND_QUIRK && s->avdimen.hw_xres >= 150) ++ dst_i = i / 2 + ((i+1) % 2) * (lines / 2); ++ ++ dst_raster = deinterlaced + bytes_per_line * dst_i; ++ src_raster = background + bytes_per_line * i; ++ ++ DBG(3, "get_background_raster: deinterlaced %d -> %d\n", i, dst_i); ++ memcpy(dst_raster, src_raster, bytes_per_line); ++ } ++ ++ free (background); ++ background = s->background_raster = deinterlaced; ++ } ++ + /* dump raw result while debugging */ + for (i = 0; debug && i < (s->avdimen.interlaced_duplex ? 2 : 1); ++i) +- { ++ { + FILE* f = NULL; + uint8_t* raster = background; + if (i == 0) { +@@ -5535,9 +5846,7 @@ + uint8_t *dst_ptr, *src_ptr; + dst_ptr = background; + src_ptr = background + s->avdimen.tlx * bpp; +- for (i = 0; +- i < s->val[OPT_BACKGROUND].w * (s->avdimen.interlaced_duplex ? 2 : 1); +- ++i) ++ for (i = 0; i < lines; ++i) + { + memmove (dst_ptr, src_ptr, s->avdimen.hw_bytes_per_line); + dst_ptr += s->avdimen.hw_bytes_per_line; +@@ -5548,7 +5857,6 @@ + /* soft-scale - move to unified processing flow, later */ + if (s->avdimen.hw_xres != s->avdimen.xres) + { +- const int lines = s->val[OPT_BACKGROUND].w * (s->avdimen.interlaced_duplex ? 2 : 1); + const uint8_t* out_data = background; + uint8_t* dst = background; + +@@ -5774,7 +6082,7 @@ + s->duplex_rear_valid = SANE_FALSE; + s->page = 0; + +- if (s->reader_pid != -1) { ++ if (s->reader_pid > 0) { + int exit_status; + + /* ensure child knows it's time to stop: */ +@@ -5991,7 +6299,7 @@ + + if (!dev->inquiry_tune_scan_length) + s->opt[OPT_OVERSCAN_TOP].cap |= SANE_CAP_INACTIVE; +- if (!dev->inquiry_tune_scan_length || dev->hw->feature_type & AV_NO_TUNE_BOTTOM) ++ if (!dev->inquiry_tune_scan_length) + s->opt[OPT_OVERSCAN_BOTTOM].cap |= SANE_CAP_INACTIVE; + + /* background raster */ +@@ -6115,7 +6423,49 @@ + s->opt[OPT_GAMMA_VECTOR].cap &= ~SANE_CAP_INACTIVE; + } + } ++ ++ /* exposure */ ++ s->opt[OPT_EXPOSURE].name = "exposure"; ++ s->opt[OPT_EXPOSURE].title = "Exposure"; ++ s->opt[OPT_EXPOSURE].desc = "Manual exposure adjustment."; ++ s->opt[OPT_EXPOSURE].type = SANE_TYPE_INT; ++ s->opt[OPT_EXPOSURE].unit = SANE_UNIT_PERCENT; ++ s->opt[OPT_EXPOSURE].constraint_type = SANE_CONSTRAINT_RANGE; ++ s->opt[OPT_EXPOSURE].constraint.range = &exposure_range; ++ s->val[OPT_EXPOSURE].w = 100; ++ ++ if (!dev->inquiry_exposure_control) { ++ s->opt[OPT_EXPOSURE].cap |= SANE_CAP_INACTIVE; ++ } ++ ++ /* Multi sample */ ++ s->opt[OPT_MULTISAMPLE].name = "multi-sample"; ++ s->opt[OPT_MULTISAMPLE].title = "Multi-sample"; ++ s->opt[OPT_MULTISAMPLE].desc = "Enable multi-sample scan mode."; ++ s->opt[OPT_MULTISAMPLE].type = SANE_TYPE_BOOL; ++ s->opt[OPT_MULTISAMPLE].unit = SANE_UNIT_NONE; ++ s->val[OPT_MULTISAMPLE].w = SANE_FALSE; ++ ++ /* TODO: No idea how to detect, assume exosure control devices are ++ new enough to support this, for now. -ReneR */ ++ if (!dev->inquiry_exposure_control) { ++ s->opt[OPT_MULTISAMPLE].cap |= SANE_CAP_INACTIVE; ++ } + ++ /* Infra-red */ ++ s->opt[OPT_IR].name = "infra-red"; ++ s->opt[OPT_IR].title = "Infra-red"; ++ s->opt[OPT_IR].desc = "Enable infra-red scan mode."; ++ s->opt[OPT_IR].type = SANE_TYPE_BOOL; ++ s->opt[OPT_IR].unit = SANE_UNIT_NONE; ++ s->val[OPT_IR].w = SANE_FALSE; ++ ++ /* TODO: No idea how to detect, assume exosure control devices are ++ new enough to support this, for now. -ReneR */ ++ if (!dev->inquiry_exposure_control) { ++ s->opt[OPT_IR].cap |= SANE_CAP_INACTIVE; ++ } ++ + /* film holder control */ + if (dev->scanner_type != AV_FILM) + s->opt[OPT_FRAME].cap |= SANE_CAP_INACTIVE; +@@ -6258,6 +6608,9 @@ + deinterlace = HALF; + if (dev->hw->feature_type & AV_2ND_LINE_INTERLACED) + deinterlace = LINE; ++ ++ if (dev->scanner_type == AV_FILM) ++ deinterlace = LINE; + } + + fp = fdopen (fd, "w"); +@@ -7322,7 +7675,7 @@ + /* initilize the options */ + init_options (s); + +- if (dev->inquiry_duplex_interlaced) { ++ if (dev->inquiry_duplex_interlaced || dev->scanner_type == AV_FILM) { + /* Might need at least *DOS (Windows flavour and OS/2) portability fix + However, I was was told Cygwin (et al.) does keep care of it. */ + strncpy(s->duplex_rear_fname, "/tmp/avision-rear-XXXXXX", PATH_MAX); +@@ -7459,6 +7812,12 @@ + DBG (3, "sane_control_option: option=%d, action=%d\n", + (int)option, (int)action); + ++ DBG (5, "sane_control_option: option=%s, action=%s\n", ++ s->opt[option].name, ++ action == SANE_ACTION_GET_VALUE ? "GET" : ++ (action == SANE_ACTION_SET_VALUE ? "SET" : ++ (action == SANE_ACTION_SET_AUTO ? "AUTO" : "UNKNOWN") ) ); ++ + if (info) + *info = 0; + +@@ -7493,6 +7852,9 @@ + + case OPT_BRIGHTNESS: + case OPT_CONTRAST: ++ case OPT_EXPOSURE: ++ case OPT_IR: ++ case OPT_MULTISAMPLE: + case OPT_QSCAN: + case OPT_QCALIB: + *(SANE_Word*) val = s->val[option].w; +@@ -7530,6 +7892,7 @@ + status = get_button_status (s); + + strcpy (val, s->val[option].s); ++ s->val[option].s[0] = 0; + return SANE_STATUS_GOOD; + + case OPT_NVRAM: +@@ -7556,6 +7919,9 @@ + case OPT_PREVIEW: + case OPT_BRIGHTNESS: + case OPT_CONTRAST: ++ case OPT_EXPOSURE: ++ case OPT_IR: ++ case OPT_MULTISAMPLE: + case OPT_QSCAN: + case OPT_QCALIB: + case OPT_OVERSCAN_TOP: +diff -urNad sane-backends-1.0.19~/backend/avision.h sane-backends-1.0.19/backend/avision.h +--- sane-backends-1.0.19~/backend/avision.h 2007-11-17 17:19:53.000000000 +0100 ++++ sane-backends-1.0.19/backend/avision.h 2008-12-09 16:12:33.269925522 +0100 +@@ -115,8 +115,8 @@ + /* if the scan area and resolution needs to be forced for films */ + AV_FORCE_FILM = (1<<6), + +- /* does not support bottom overscan, sigh */ +- AV_NO_TUNE_BOTTOM = (1<<7), ++ /* does not suport, or very broken background (added for AV610C2) */ ++ AV_NO_BACKGROUND = (1<<7), + + /* is film scanner - no detection yet */ + AV_FILMSCANNER = (1<<8), +@@ -160,8 +160,8 @@ + /* allows 12bit mode, though not flagged */ + AV_12_BIT_MODE = (1<<21), + +- /* scanner always (mistakenly) advertises a transparency adapter */ +- AV_NO_TRANSPARENCY = (1<<22), ++ /* very broken background raster */ ++ AV_BACKGROUND_QUIRK = (1<<22), + + /* though marked as GRAY only the scanner can do GRAY modes */ + AV_GRAY_MODES = (1<<23), +@@ -271,6 +271,10 @@ + OPT_GAMMA_VECTOR_R, /* then r g b vector */ + OPT_GAMMA_VECTOR_G, + OPT_GAMMA_VECTOR_B, ++ ++ OPT_EXPOSURE, /* film exposure adjustment */ ++ OPT_IR, /* infra-red */ ++ OPT_MULTISAMPLE, /* multi-sample */ + + OPT_FRAME, /* Film holder control */ + +@@ -350,6 +354,8 @@ + SANE_Bool inquiry_adf_bgr_order; + SANE_Bool inquiry_light_detect; + SANE_Bool inquiry_light_control; ++ SANE_Bool inquiry_exposure_control; ++ + int inquiry_max_shading_target; + SANE_Bool inquiry_button_control; + unsigned int inquiry_buttons; +@@ -443,7 +449,7 @@ + /* Avision HW Access Connection (SCSI/USB abstraction) */ + Avision_Connection av_con; + +- pid_t reader_pid; /* process id of reader */ ++ SANE_Pid reader_pid; /* process id of reader */ + int read_fds; /* pipe reading end */ + int write_fds; /* pipe writing end */ + --- sane-backends-1.0.19.orig/debian/patches/11_minimum_linkage.dpatch +++ sane-backends-1.0.19/debian/patches/11_minimum_linkage.dpatch @@ -0,0 +1,288 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 11_minimum_linkage.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Link backends only with whatever libraries they need. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/acinclude.m4 sane-backends-1.0.19/acinclude.m4 +--- sane-backends-1.0.19~/acinclude.m4 2008-02-12 21:40:39.597459626 +0100 ++++ sane-backends-1.0.19/acinclude.m4 2008-02-12 21:40:40.993390629 +0100 +@@ -200,7 +200,7 @@ + struct parport p; char *buf; + ieee1284_nibble_read(&p, 0, buf, 1); + ], +- [sane_cv_use_libieee1284="yes"; LIBS="${LIBS} -lieee1284" ++ [sane_cv_use_libieee1284="yes"; LIBIEEE1284="-lieee1284" + ],[sane_cv_use_libieee1284="no"]) + ],) + ],) +@@ -235,10 +235,11 @@ + ]) + AC_CHECK_HEADERS(pthread.h, + [ ++ SANE_save_LIBS="${LIBS}" + AC_CHECK_LIB(pthread,pthread_create) +- have_pthread=yes + AC_CHECK_FUNCS([pthread_create pthread_kill pthread_join pthread_detach pthread_cancel pthread_testcancel], +- ,[ have_pthread=no; use_pthread=no ]) ++ [ AC_DEFINE(HAVE_PTHREAD, 1) have_pthread=yes; LIBPTHREAD=-lpthread ] ,[ have_pthread=no; use_pthread=no ]) ++ LIBS="${SANE_save_LIBS}" + ],) + + if test $use_pthread = yes ; then +@@ -270,7 +271,7 @@ + #if JPEG_LIB_VERSION >= 61 + sane_correct_jpeg_lib_version_found + #endif +- ],[sane_cv_use_libjpeg="yes"; LIBS="${LIBS} -ljpeg"; ++ ],[sane_cv_use_libjpeg="yes"; LIBJPEG="-ljpeg"; + AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)]) + ],) + ],) +@@ -282,7 +283,7 @@ + AC_CHECK_LIB(tiff,TIFFFdOpen, + [ + AC_CHECK_HEADER(tiffio.h, +- [sane_cv_use_libtiff="yes"; LIBS="${LIBS} -ltiff"],) ++ [sane_cv_use_libtiff="yes"; LIBTIFF="-ltiff"],) + ],) + ]) + +@@ -449,18 +450,20 @@ + if pkg-config --exists libgphoto2 ; then + with_gphoto2=`pkg-config --modversion libgphoto2` + CPPFLAGS="${CPPFLAGS} `pkg-config --cflags libgphoto2`" +- GPHOTO2_LIBS="`pkg-config --libs libgphoto2`" +- SANE_EXTRACT_LDFLAGS(GPHOTO2_LDFLAGS, GPHOTO2_LIBS) ++ LIBGPHOTO2="`pkg-config --libs libgphoto2`" ++ SANE_EXTRACT_LDFLAGS(GPHOTO2_LDFLAGS, LIBGPHOTO2) + LDFLAGS="$LDFLAGS $GPHOTO2_LDFLAGS" + ++ old_LIBS="$LIBS" ++ LIBS="$LIBS $LIBGPHOTO2" ++ + AC_SUBST(GPHOTO2_LDFLAGS) + +- saved_LIBS="${LIBS}" +- LIBS="${LIBS} ${GPHOTO2_LIBS}" + # Make sure we an really use the library + AC_CHECK_FUNCS(gp_camera_init,HAVE_GPHOTO2=true, +- [ LIBS="${saved_LIBS}" +- HAVE_GPHOTO2=false ]) ++ [ HAVE_GPHOTO2=false ]) ++ ++ LIBS="$old_LIBS" + else + HAVE_GPHOTO2=false + fi +diff -urNad sane-backends-1.0.19~/backend/Makefile.in sane-backends-1.0.19/backend/Makefile.in +--- sane-backends-1.0.19~/backend/Makefile.in 2008-02-12 21:40:39.622690918 +0100 ++++ sane-backends-1.0.19/backend/Makefile.in 2008-02-12 21:44:12.611390365 +0100 +@@ -51,7 +51,7 @@ + CPPFLAGS = @CPPFLAGS@ + CFLAGS = @CFLAGS@ + LDFLAGS = @LDFLAGS@ +-BACKENDLIBS = @LIBS@ @DL_LIB@ ++BACKENDLIBS = @LIBS@ + DEFS = @DEFS@ + DYNAMIC_FLAG=@DYNAMIC_FLAG@ + USE_LINKS=@USE_LINKS@ +@@ -212,7 +212,7 @@ + + libsane-%.la: %.lo %-s.lo $(EXTRA) $(LIBOBJS) + @$(LIBTOOL) $(MLINK) $(CC) -export-dynamic -o $@ $($*_LIBS) \ +- $(LDFLAGS) $(BACKENDLIBS) $^ @LIBTOOL_LINK_EXTRA@ -rpath $(libsanedir) \ ++ $(LDFLAGS) $(BACKENDLIBS) $^ $(ADDLIB-$*) @LIBTOOL_LINK_EXTRA@ -rpath $(libsanedir) \ + -version-info $(V_MAJOR):$(V_REV):$(V_MINOR) $(DYNAMIC_FLAG) + + %-s.lo: %-s.c +@@ -318,7 +318,7 @@ + echo "};" >> $@ + + libsane.la: dll.lo dll-s.lo $(EXTRA) $(addsuffix .lo,$(DLL_PRELOAD)) $(LIBOBJS) +- @$(LIBTOOL) $(MLINK) $(CC) -o $@ $(LDFLAGS) $(BACKENDLIBS) $^ \ ++ @$(LIBTOOL) $(MLINK) $(CC) -o $@ $(LDFLAGS) $(BACKENDLIBS) @DL_LIB@ $^ \ + $(addsuffix .lo,$(DLL_PRELOAD_EXTRAS)) @LIBTOOL_LINK_EXTRA@ \ + -rpath $(libdir) -version-info $(V_MAJOR):$(V_REV):$(V_MINOR) + +@@ -347,6 +347,88 @@ + EXTRA_lexmark = lexmark_low + EXTRA_pixma = pixma_io_sanei pixma_common pixma_mp150 pixma_mp730 pixma_mp750 + ++# Additional library dependencies ++LIBGPHOTO2 = @LIBGPHOTO2@ ++LIBUSB = @LIBUSB@ ++LIBIEEE1284 = @LIBIEEE1284@ ++LIBCAM = @LIBCAM@ ++LIBJPEG = @LIBJPEG@ ++LIBTIFF = @LIBTIFF@ ++LIBM = @LIBM@ ++LIBPTHREAD = @LIBPTHREAD@ ++LIBDL = @DL_LIB@ ++ ++ADDLIB-abaton = $(LIBCAM) ++ADDLIB-agfafocus = $(LIBCAM) ++ADDLIB-apple = $(LIBCAM) ++ADDLIB-artec = $(LIBCAM) ++ADDLIB-artec_eplus48u = $(LIBM) $(LIBUSB) ++ADDLIB-avision = $(LIBM) $(LIBUSB) $(LIBCAM) ++ADDLIB-bh = $(LIBCAM) ++ADDLIB-canon = $(LIBM) $(LIBCAM) ++ADDLIB-canon630u = $(LIBM) $(LIBUSB) ++ADDLIB-canon_pp = $(LIBIEEE1284) ++ADDLIB-cardscan = $(LIBUSB) ++ADDLIB-coolscan = $(LIBM) $(LIBCAM) ++ADDLIB-coolscan2 = $(LIBM) $(LIBUSB) $(LIBCAM) ++ADDLIB-dc25 = $(LIBM) ++ADDLIB-dc210 = $(LIBJPEG) ++ADDLIB-dc240 = $(LIBJPEG) ++ADDLIB-dell1600n_net = $(LIBJPEG) $(LIBTIFF) ++ADDLIB-dll = $(LIBDL) ++ADDLIB-dmc = $(LIBCAM) ++ADDLIB-epjitsu = $(LIBUSB) ++ADDLIB-epson = $(LIBUSB) $(LIBCAM) ++ADDLIB-epson2 = $(LIBUSB) $(LIBCAM) ++ADDLIB-fujitsu = $(LIBM) $(LIBUSB) $(LIBCAM) ++ADDLIB-genesys = $(LIBM) $(LIBUSB) ++ADDLIB-gphoto2 = $(LIBGPHOTO2) $(LIBJPEG) ++ADDLIB-gt68xx = $(LIBM) $(LIBUSB) ++ADDLIB-hp = $(LIBUSB) $(LIBCAM) ++ADDLIB-hp3500 = $(LIBUSB) ++ADDLIB-hp3900 = $(LIBM) $(LIBUSB) $(LIBTIFF) ++ADDLIB-hp4200 = $(LIBM) $(LIBUSB) ++ADDLIB-hp5400 = $(LIBUSB) ++ADDLIB-hp5590 = $(LIBUSB) ++ADDLIB-hpljm1005 = $(LIBM) $(LIBUSB) ++ADDLIB-hpsj5s = $(LIBIEEE1284) ++ADDLIB-ibm = $(LIBCAM) ++ADDLIB-leo = $(LIBCAM) ++ADDLIB-lexmark = $(LIBUSB) ++ADDLIB-ma1509 = $(LIBUSB) ++ADDLIB-matsushita = $(LIBCAM) ++ADDLIB-microtek = $(LIBM) $(LIBCAM) ++ADDLIB-microtek2 = $(LIBM) $(LIBCAM) ++ADDLIB-mustek = $(LIBIEEE1284) $(LIBCAM) ++ADDLIB-mustek_pp = $(LIBM) $(LIBIEEE1284) ++ADDLIB-mustek_usb = $(LIBUSB) ++ADDLIB-mustek_usb2 = $(LIBM) $(LIBPTHREAD) $(LIBUSB) ++ADDLIB-nec = $(LIBM) $(LIBCAM) ++ADDLIB-niash = $(LIBM) $(LIBUSB) ++ADDLIB-pie = $(LIBCAM) ++ADDLIB-pixma = $(LIBM) $(LIBUSB) ++ADDLIB-plustek = $(LIBM) $(LIBUSB) ++ADDLIB-plustek_pp = $(LIBM) $(LIBIEEE1284) ++ADDLIB-ricoh = $(LIBCAM) ++ADDLIB-s9036 = $(LIBCAM) ++ADDLIB-sceptre = $(LIBCAM) ++ADDLIB-sharp = $(LIBM) $(LIBCAM) ++ADDLIB-sm3600 = $(LIBUSB) ++ADDLIB-sm3840 = $(LIBM) $(LIBUSB) $(LIBCAM) ++ADDLIB-snapscan = $(LIBM) $(LIBUSB) $(LIBCAM) ++ADDLIB-sp15c = $(LIBCAM) ++ADDLIB-st400 = $(LIBCAM) ++ADDLIB-stv680 = $(LIBUSB) ++ADDLIB-tamarack = $(LIBCAM) ++ADDLIB-teco1 = $(LIBCAM) ++ADDLIB-teco2 = $(LIBCAM) ++ADDLIB-teco3 = $(LIBCAM) ++ADDLIB-u12 = $(LIBM) $(LIBUSB) ++ADDLIB-umax = $(LIBM) $(LIBUSB) $(LIBCAM) ++ADDLIB-umax1220u = $(LIBM) $(LIBUSB) ++ADDLIB-umax_pp = $(LIBM) ++ ++ + # When preloading dll, we need to add in all preloaded objects: + libsane-dll.la: $(addsuffix .lo,$(DLL_PRELOAD)) + libsane-dll.la: $(addsuffix .lo,$(DLL_PRELOAD_EXTRAS)) +diff -urNad sane-backends-1.0.19~/configure.in sane-backends-1.0.19/configure.in +--- sane-backends-1.0.19~/configure.in 2008-02-12 21:40:39.656236560 +0100 ++++ sane-backends-1.0.19/configure.in 2008-02-12 21:40:40.994390544 +0100 +@@ -99,9 +99,13 @@ + dnl *********************************************************************** + SANE_CHECK_DLL_LIB + dnl Checks for Backend libraries. +-AC_CHECK_LIB(m,sqrt) ++AC_CHECK_LIB(m,sqrt, [ AC_DEFINE(HAVE_LIBM, 1) LIBM="-lm"]) ++AC_SUBST(LIBM) ++AC_CHECK_LIB(cam, cam_open_device, [AC_DEFINE(HAVE_LIBCAM, 1) LIBCAM="-lcam"]) # FreeBSD 3+ needs this ++AC_SUBST(LIBCAM) ++ + AC_CHECK_LIB(scsi, scsireq_enter) # FreeBSD needs this +-AC_CHECK_LIB(cam, cam_open_device) # FreeBSD 3+ needs this ++ + dnl IRIX sometimes has SYSVR3/4 network DSOs, but we do not need or want + dnl to use them! + if test "`uname`" != "IRIX" -a "`uname`" != "IRIX64"; then +@@ -109,12 +113,24 @@ + AC_SEARCH_LIBS(socket, socket) + AC_SEARCH_LIBS(syslog, syslog be) # OS/2 needs -lsyslog, BeOS needs -lbe + fi ++ + SANE_CHECK_JPEG ++AC_SUBST(LIBJPEG) ++ + SANE_CHECK_TIFF ++AC_SUBST(LIBTIFF) ++ + SANE_CHECK_IEEE1284 ++AC_SUBST(LIBIEEE1284) ++ + SANE_CHECK_PTHREAD +-SANE_CHECK_LOCKING ++AC_SUBST(LIBPTHREAD) ++ + SANE_CHECK_GPHOTO2 ++AC_SUBST(LIBGPHOTO2) ++ ++SANE_CHECK_LOCKING ++ + dnl check sane to make sure we don't have two installations + AC_CHECK_LIB(sane, sane_init, LIBSANE_EXISTS="yes") + +@@ -291,11 +307,12 @@ + + dnl we need both libusb header and a libusb providing usb_interrupt_read + if test "${ac_cv_header_usb_h}" = "yes" && test "$USE_LIBUSB" = "yes" ; then +- AC_CHECK_LIB(usb, usb_interrupt_read) ++ AC_CHECK_LIB(usb, usb_interrupt_read, [ AC_DEFINE(HAVE_LIBUSB, 1) LIBUSB="-lusb" ]) + if test "${ac_cv_lib_usb_usb_interrupt_read}" = "yes" ; then + HAVE_LIBUSB="yes" + fi + fi ++AC_SUBST(LIBUSB) + + dnl disable Linux SCSI generic version 3 to avoid 32/64 bit problems + if sparc64 -q > /dev/null 2>&1 ; then +diff -urNad sane-backends-1.0.19~/tools/Makefile.in sane-backends-1.0.19/tools/Makefile.in +--- sane-backends-1.0.19~/tools/Makefile.in 2008-02-12 21:40:39.689765472 +0100 ++++ sane-backends-1.0.19/tools/Makefile.in 2008-02-12 21:40:40.994390544 +0100 +@@ -72,6 +72,10 @@ + # Library routines that should be part of libc, but aren't on some systems: + LIBLIB = ../lib/liblib.a + ++LIBUSB = @LIBUSB@ ++LIBIEEE1284 = @LIBIEEE1284@ ++LIBCAM = @LIBCAM@ ++ + DISTFILES = Makefile.in RenSaneDlls.cmd README libtool-get-dll-ext \ + mustek600iin-off.c sane-config.in sane-desc.c check-usb-chip.c \ + sane-find-scanner.c umax_pp.c xerox gamma4scanimage.c check-po.awk +@@ -104,7 +108,7 @@ + ../sanei/sanei_scsi.lo ../sanei/sanei_usb.lo ../sanei/sanei_init_debug.lo \ + ../sanei/sanei_config.lo + @$(LIBTOOL) $(MLINK) $(LINK) sane-find-scanner.o check-usb-chip.o \ +- ../backend/sane_strstatus.lo $(LIBSANEI) $(LIBLIB) $(LIBS) ++ ../backend/sane_strstatus.lo $(LIBSANEI) $(LIBLIB) $(LIBS) $(LIBUSB) $(LIBIEEE1284) $(LIBCAM) + + gamma4scanimage: gamma4scanimage.o + @$(LIBTOOL) $(MLINK) $(LINK) gamma4scanimage.o -lm +@@ -115,7 +119,7 @@ + + umax_pp: umax_pp.o ../backend/umax_pp_low.o + @$(LIBTOOL) $(MLINK) $(LINK) umax_pp.o ../backend/umax_pp_low.o \ +- $(LIBSANEI) $(LIBLIB) $(LIBS) ++ $(LIBSANEI) $(LIBLIB) $(LIBS) -lm + sane-desc: sane-desc.o + @$(LIBTOOL) $(MLINK) $(LINK) sane-desc.o $(LIBSANEI) $(LIBLIB) + --- sane-backends-1.0.19.orig/debian/patches/02_pixma_update.dpatch +++ sane-backends-1.0.19/debian/patches/02_pixma_update.dpatch @@ -0,0 +1,702 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 02_pixma_update.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Update pixma backend from CVS, adding support for Pixma MP210, MP470, +## DP: MP520, MP610, MultiPASS MP710, MP140, MP220, MultiPASS MP740, MP970 and +## DP: various bugfixes. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/backend/pixma.c sane-backends-1.0.19/backend/pixma.c +--- sane-backends-1.0.19~/backend/pixma.c 2008-02-03 11:34:20.000000000 +0100 ++++ sane-backends-1.0.19/backend/pixma.c 2008-03-01 13:31:20.050339566 +0100 +@@ -826,6 +826,10 @@ + } + result = sanei_thread_waitpid (pid, &status); + ss->reader_taskid = -1; ++ ++ if ((ss->sp.source & (PIXMA_SOURCE_ADF | PIXMA_SOURCE_ADFDUP)) == 0) ++ ss->idle = SANE_TRUE; ++ + if (result == pid) + { + if (exit_code) +@@ -857,7 +861,8 @@ + } + if (ss->reader_taskid != -1) + { +- PDBG (pixma_dbg (1, "BUG:reader_taskid(%d) != -1\n", ss->reader_taskid)); ++ PDBG (pixma_dbg ++ (1, "BUG:reader_taskid(%d) != -1\n", ss->reader_taskid)); + terminate_reader_task (ss, NULL); + } + if (pipe (fds) == -1) +@@ -1245,7 +1250,8 @@ + return SANE_STATUS_INVAL; + if (ss->cancel) + return SANE_STATUS_CANCELLED; +- if (ss->idle) ++ if ((ss->idle) ++ && ((ss->sp.source & (PIXMA_SOURCE_ADF | PIXMA_SOURCE_ADFDUP)) != 0)) + return SANE_STATUS_INVAL; + if (!ss->scanning) + return ss->last_read_status; +diff -urNad sane-backends-1.0.19~/backend/pixma.h sane-backends-1.0.19/backend/pixma.h +--- sane-backends-1.0.19~/backend/pixma.h 2007-07-20 00:17:21.000000000 +0200 ++++ sane-backends-1.0.19/backend/pixma.h 2008-03-01 13:31:20.050339566 +0100 +@@ -107,8 +107,8 @@ + /** \name Version of the driver */ + /**@{*/ + #define PIXMA_VERSION_MAJOR 0 +-#define PIXMA_VERSION_MINOR 13 +-#define PIXMA_VERSION_BUILD 1 ++#define PIXMA_VERSION_MINOR 14 ++#define PIXMA_VERSION_BUILD 3 + /**@}*/ + + /** \name Error codes */ +diff -urNad sane-backends-1.0.19~/backend/pixma_common.c sane-backends-1.0.19/backend/pixma_common.c +--- sane-backends-1.0.19~/backend/pixma_common.c 2007-04-09 22:41:25.000000000 +0200 ++++ sane-backends-1.0.19/backend/pixma_common.c 2008-03-01 13:31:20.051338964 +0100 +@@ -86,7 +86,8 @@ + { + static const char hdigit[16] = + { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', +-'e', 'f' }; ++ 'e', 'f' ++ }; + str[0] = hdigit[(x >> 4) & 0xf]; + str[1] = hdigit[x & 0xf]; + str[2] = '\0'; +@@ -747,6 +748,9 @@ + (sp->xdpi == s->cfg->xdpi && sp->ydpi == s->cfg->ydpi))) + return PIXMA_EINVAL; + ++ if (s->ops->check_param (s, sp) < 0) ++ return PIXMA_EINVAL; ++ + /* FIXME: I assume the same minimum width and height for every model. */ + CLAMP2 (sp->x, sp->w, 13, s->cfg->width, sp->xdpi); + CLAMP2 (sp->y, sp->h, 8, s->cfg->height, sp->ydpi); +diff -urNad sane-backends-1.0.19~/backend/pixma_io_sanei.c sane-backends-1.0.19/backend/pixma_io_sanei.c +--- sane-backends-1.0.19~/backend/pixma_io_sanei.c 2007-04-09 22:41:25.000000000 +0200 ++++ sane-backends-1.0.19/backend/pixma_io_sanei.c 2008-03-01 13:31:20.051338964 +0100 +@@ -144,7 +144,8 @@ + { + static const char hdigit[16] = + { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', +-'E', 'F' }; ++ 'E', 'F' ++ }; + str[0] = hdigit[(x >> 12) & 0xf]; + str[1] = hdigit[(x >> 8) & 0xf]; + str[2] = hdigit[(x >> 4) & 0xf]; +diff -urNad sane-backends-1.0.19~/backend/pixma_mp150.c sane-backends-1.0.19/backend/pixma_mp150.c +--- sane-backends-1.0.19~/backend/pixma_mp150.c 2007-07-20 00:17:21.000000000 +0200 ++++ sane-backends-1.0.19/backend/pixma_mp150.c 2008-03-01 13:31:20.052339059 +0100 +@@ -95,6 +95,17 @@ + #define MP810_PID 0x171a + #define MP960_PID 0x171b + ++#define MP140_PID 0x172b ++ ++/* Generation 3 */ ++#define MP210_PID 0x1721 ++#define MP220_PID 0x1722 /* untested */ ++#define MP470_PID 0x1723 ++#define MP520_PID 0x1724 ++#define MP610_PID 0x1725 ++#define MP970_PID 0x1726 /* untested */ ++ ++ + enum mp150_state_t + { + state_idle, +@@ -116,6 +127,10 @@ + cmd_read_image = 0xd420, + cmd_error_info = 0xff20, + ++ cmd_scan_param_3 = 0xd820, ++ cmd_scan_start_3 = 0xd920, ++ cmd_status_3 = 0xda20, ++ + cmd_e920 = 0xe920 /* seen in MP800 */ + }; + +@@ -127,6 +142,9 @@ + uint8_t current_status[16]; + unsigned last_block; + int generation; ++ /* for Generation 3 */ ++ uint8_t *linebuf; ++ unsigned linelag; + } mp150_t; + + +@@ -186,9 +204,20 @@ + static void mp150_finish_scan (pixma_t * s); + + static int ++start_scan_3 (pixma_t * s) ++{ ++ mp150_t *mp = (mp150_t *) s->subdriver; ++ return pixma_exec_short_cmd (s, &mp->cb, cmd_scan_start_3); ++} ++ ++static int + is_calibrated (pixma_t * s) + { + mp150_t *mp = (mp150_t *) s->subdriver; ++ if (mp->generation == 3) ++ { ++ return (mp->current_status[0] == 1); ++ } + if (mp->generation == 1) + { + return (mp->current_status[8] == 1); +@@ -199,6 +228,31 @@ + } + } + ++/* For processing Generation 3 high dpi images. ++ * Each complete line in mp->imgbuf is reordered for 1200,2400 and 4800 dpi Generation 3 format. */ ++static int ++process_high_dpi_3 (pixma_t * s, pixma_imagebuf_t * ib) ++{ ++ mp150_t *mp = (mp150_t *) s->subdriver; ++ uint8_t *rptr = mp->imgbuf; ++ unsigned i; ++ const unsigned n = s->param->xdpi / 600; ++ const unsigned m = s->param->w / n; ++ const unsigned c = s->param->channels; ++ ++ while (rptr + s->param->line_size <= ib->rend) ++ { ++ for (i = 0; i < s->param->w; i++) ++ { ++ memcpy (mp->linebuf + (c * (n * (i % m) + i / m)), rptr + (c * i), ++ c); ++ } ++ memcpy (rptr, mp->linebuf, s->param->line_size); ++ rptr += s->param->line_size; ++ } ++ return ib->rend - rptr; ++} ++ + static int + has_paper (pixma_t * s) + { +@@ -335,7 +389,7 @@ + /* NOTE: Actually, we can send arbitary width to MP150. Lines returned + are always padded to multiple of 4 or 12 pixels. Is this valid for + other models, too? */ +- if (mp->generation == 2) ++ if (mp->generation >= 2) + { + raw_width = ALIGN (param->w, 32); + } +@@ -357,23 +411,65 @@ + uint8_t *data; + unsigned raw_width = calc_raw_width (mp, s->param); + +- data = pixma_newcmd (&mp->cb, cmd_scan_param, 0x30, 0); +- pixma_set_be16 (s->param->xdpi | 0x8000, data + 0x04); +- pixma_set_be16 (s->param->ydpi | 0x8000, data + 0x06); +- pixma_set_be32 (s->param->x, data + 0x08); +- pixma_set_be32 (s->param->y, data + 0x0c); +- pixma_set_be32 (raw_width, data + 0x10); +- pixma_set_be32 (s->param->h, data + 0x14); +- data[0x18] = (s->param->channels == 1) ? 0x04 : 0x08; +- data[0x19] = s->param->channels * s->param->depth; /* bits per pixel */ +- data[0x20] = 0xff; +- data[0x23] = 0x81; +- data[0x26] = 0x02; +- data[0x27] = 0x01; ++ if (mp->generation <= 2) ++ { ++ data = pixma_newcmd (&mp->cb, cmd_scan_param, 0x30, 0); ++ pixma_set_be16 (s->param->xdpi | 0x8000, data + 0x04); ++ pixma_set_be16 (s->param->ydpi | 0x8000, data + 0x06); ++ pixma_set_be32 (s->param->x, data + 0x08); ++ pixma_set_be32 (s->param->y, data + 0x0c); ++ pixma_set_be32 (raw_width, data + 0x10); ++ pixma_set_be32 (s->param->h, data + 0x14); ++ data[0x18] = (s->param->channels == 1) ? 0x04 : 0x08; ++ data[0x19] = s->param->channels * s->param->depth; /* bits per pixel */ ++ data[0x20] = 0xff; ++ data[0x23] = 0x81; ++ data[0x26] = 0x02; ++ data[0x27] = 0x01; ++ } ++ else ++ { ++ data = pixma_newcmd (&mp->cb, cmd_scan_param_3, 0x38, 0); ++ data[0x00] = 0x01; ++ data[0x01] = 0x01; ++ data[0x02] = 0x01; ++ data[0x05] = 0x01; /* This one also seen at 0. Don't know yet what's used for */ ++ pixma_set_be16 (s->param->xdpi | 0x8000, data + 0x08); ++ pixma_set_be16 (s->param->ydpi | 0x8000, data + 0x0a); ++ pixma_set_be32 (s->param->x, data + 0x0c); ++ pixma_set_be32 (s->param->y, data + 0x10); ++ pixma_set_be32 (raw_width, data + 0x14); ++ pixma_set_be32 (s->param->h, data + 0x18); ++ data[0x1c] = (s->param->channels == 1) ? 0x04 : 0x08; ++ data[0x1d] = s->param->channels * s->param->depth; /* bits per pixel */ ++ data[0x1f] = 0x01; ++ data[0x20] = 0xff; ++ data[0x21] = 0x81; ++ data[0x23] = 0x02; ++ data[0x24] = 0x01; ++ data[0x30] = 0x01; ++ } + return pixma_exec (s, &mp->cb); + } + + static int ++query_status_3 (pixma_t * s) ++{ ++ mp150_t *mp = (mp150_t *) s->subdriver; ++ uint8_t *data; ++ int error, status_len; ++ ++ status_len = 8; ++ data = pixma_newcmd (&mp->cb, cmd_status_3, 0, status_len); ++ error = pixma_exec (s, &mp->cb); ++ if (error >= 0) ++ { ++ memcpy (mp->current_status, data, status_len); ++ } ++ return error; ++} ++ ++static int + query_status (pixma_t * s) + { + mp150_t *mp = (mp150_t *) s->subdriver; +@@ -526,14 +622,17 @@ + static int + wait_until_ready (pixma_t * s) + { ++ mp150_t *mp = (mp150_t *) s->subdriver; + int error, tmo = 60; + +- error = query_status (s); ++ error = (mp->generation == 3) ? query_status_3 (s) : query_status (s); + if (error < 0) + return error; + while (!is_calibrated (s)) + { + error = handle_interrupt (s, 1000); ++ if (mp->generation == 3) ++ error = query_status_3 (s); + if (s->cancel) + return PIXMA_ECANCELED; + if (error != PIXMA_ECANCELED && error < 0) +@@ -596,7 +695,14 @@ + mp->cb.cmd_len_field_ofs = 14; + + mp->imgbuf = buf + CMDBUF_SIZE; ++ ++ /* General rules for setting Pixma protocol generation # */ + mp->generation = (s->cfg->pid >= MP160_PID) ? 2 : 1; ++ if (s->cfg->pid >= MP210_PID) ++ mp->generation = 3; ++ /* And exceptions to be added here */ ++ if (s->cfg->pid == MP140_PID) ++ mp->generation = 2; + + query_status (s); + handle_interrupt (s, 200); +@@ -620,10 +726,11 @@ + mp150_t *mp = (mp150_t *) s->subdriver; + + sp->depth = 8; /* MP150 only supports 8 bit per channel. */ +- if (mp->generation == 2) ++ if (mp->generation >= 2) + { + sp->x = ALIGN (sp->x, 32); + sp->y = ALIGN (sp->y, 32); ++ sp->w = calc_raw_width (mp, sp); + } + sp->line_size = calc_raw_width (mp, sp) * sp->channels; + return 0; +@@ -702,12 +809,14 @@ + } + if (error >= 0) + mp->state = state_warmup; +- if (error >= 0) ++ if ((error >= 0) && (mp->generation <= 2)) + error = select_source (s); + if (error >= 0) + error = send_gamma_table (s); + if (error >= 0) + error = send_scan_param (s); ++ if ((error >= 0) && (mp->generation == 3)) ++ error = start_scan_3 (s); + if (error < 0) + { + mp150_finish_scan (s); +@@ -733,6 +842,15 @@ + * sleep 1.5 sec. */ + mp->state = state_scanning; + mp->last_block = 0; ++ ++ mp->cb.buf = ++ realloc (mp->cb.buf, ++ CMDBUF_SIZE + IMAGE_BLOCK_SIZE + 2 * s->param->line_size); ++ if (!mp->cb.buf) ++ return PIXMA_ENOMEM; ++ mp->linebuf = mp->cb.buf + CMDBUF_SIZE; ++ mp->imgbuf = mp->linebuf + s->param->line_size; ++ mp->linelag = 0; + } + + do +@@ -748,7 +866,8 @@ + return 0; + } + +- error = read_image_block (s, header, mp->imgbuf); ++ memcpy (mp->imgbuf, mp->linebuf, mp->linelag); ++ error = read_image_block (s, header, mp->imgbuf + mp->linelag); + if (error < 0) + { + if (error == PIXMA_ECANCELED) +@@ -779,6 +898,14 @@ + + ib->rptr = mp->imgbuf; + ib->rend = mp->imgbuf + bytes_received; ++ ++ if ((s->param->xdpi > 600) && (mp->generation >= 3)) ++ { ++ ib->rend += mp->linelag; ++ mp->linelag = process_high_dpi_3 (s, ib); ++ ib->rend -= mp->linelag; ++ memcpy (mp->linebuf, ib->rend, mp->linelag); ++ } + return ib->rend - ib->rptr; + } + +@@ -874,6 +1001,7 @@ + PIXMA_CAP_CCD | PIXMA_CAP_ADFDUP | PIXMA_CAP_48BIT), + + /* Generation 2: CIS */ ++ DEVICE ("Canon PIXMA MP140", MP140_PID, 600, PIXMA_CAP_CIS), + DEVICE ("Canon PIXMA MP160", MP160_PID, 600, PIXMA_CAP_CIS), + DEVICE ("Canon PIXMA MP180", MP180_PID, 1200, PIXMA_CAP_CIS), + DEVICE ("Canon PIXMA MP460", MP460_PID, 1200, PIXMA_CAP_CIS), +@@ -887,5 +1015,16 @@ + DEVICE ("Canon PIXMA MP960", MP960_PID, 4800, + PIXMA_CAP_CCD | PIXMA_CAP_TPU), + ++ /* Generation 3: CIS */ ++ DEVICE ("Canon PIXMA MP210", MP210_PID, 600, PIXMA_CAP_CIS), ++ DEVICE ("Canon PIXMA MP220", MP220_PID, 1200, PIXMA_CAP_CIS), ++ DEVICE ("Canon PIXMA MP470", MP470_PID, 2400, PIXMA_CAP_CIS), ++ DEVICE ("Canon PIXMA MP520", MP520_PID, 2400, PIXMA_CAP_CIS), ++ DEVICE ("Canon PIXMA MP610", MP610_PID, 4800, PIXMA_CAP_CIS), ++ ++ /* Generation 3: CCD */ ++ DEVICE ("Canon PIXMA MP970", MP970_PID, 4800, ++ PIXMA_CAP_CCD | PIXMA_CAP_TPU | PIXMA_CAP_EXPERIMENT), ++ + END_OF_DEVICE_LIST + }; +diff -urNad sane-backends-1.0.19~/backend/pixma_mp730.c sane-backends-1.0.19/backend/pixma_mp730.c +--- sane-backends-1.0.19~/backend/pixma_mp730.c 2007-04-09 22:41:25.000000000 +0200 ++++ sane-backends-1.0.19/backend/pixma_mp730.c 2008-03-01 13:31:20.052339059 +0100 +@@ -42,8 +42,10 @@ + */ + #include "../include/sane/config.h" + ++#include + #include + #include ++#include /* localtime(C90) */ + + #include "pixma_rename.h" + #include "pixma_common.h" +@@ -63,8 +65,10 @@ + #define MP370_PID 0x263d + #define MP390_PID 0x263e + #define MP700_PID 0x2630 +-#define MP730_PID 0x262f + ++#define MP740_PID 0x264c /* Untested */ ++#define MP710_PID 0x264d ++#define MP730_PID 0x262f + + enum mp730_state_t + { +@@ -79,15 +83,15 @@ + { + cmd_start_session = 0xdb20, + cmd_select_source = 0xdd20, +- cmd_gamma = 0xee20, +- cmd_scan_param = 0xde20, +- cmd_status = 0xf320, ++ cmd_gamma = 0xee20, ++ cmd_scan_param = 0xde20, ++ cmd_status = 0xf320, + cmd_abort_session = 0xef20, +- cmd_time = 0xeb80, +- cmd_read_image = 0xd420, ++ cmd_time = 0xeb80, ++ cmd_read_image = 0xd420, + +- cmd_activate = 0xcf60, +- cmd_calibrate = 0xe920 ++ cmd_activate = 0xcf60, ++ cmd_calibrate = 0xe920 + }; + + typedef struct mp730_t +@@ -243,10 +247,21 @@ + static int + send_time (pixma_t * s) + { +- /* TODO */ +- UNUSED (s); +- PDBG (pixma_dbg (3, "send_time() is not yet implemented.\n")); +- return 0; ++ /* Why does a scanner need a time? */ ++ time_t now; ++ struct tm *t; ++ uint8_t *data; ++ mp730_t *mp = (mp730_t *) s->subdriver; ++ ++ data = pixma_newcmd (&mp->cb, cmd_time, 20, 0); ++ pixma_get_time (&now, NULL); ++ t = localtime (&now); ++ snprintf ((char *) data, 16, ++ "%02d/%02d/%02d %02d:%02d", ++ t->tm_year % 100, t->tm_mon + 1, t->tm_mday, ++ t->tm_hour, t->tm_min); ++ PDBG (pixma_dbg (3, "Sending time: '%s'\n", (char *) data)); ++ return pixma_exec (s, &mp->cb); + } + + static int +@@ -284,6 +299,8 @@ + + case MP700_PID: + case MP730_PID: ++ case MP710_PID: ++ case MP740_PID: + if (len != 8) + { + PDBG (pixma_dbg +@@ -504,7 +521,7 @@ + /* no image data at this moment. */ + /*pixma_sleep(100000); *//* FIXME: too short, too long? */ + handle_interrupt (s, 100); +- /*XXX*/} ++ /*XXX*/} + } + while (block_size == 0); + +@@ -618,6 +635,8 @@ + DEVICE ("Canon SmartBase MP370", MP370_PID, 1200, 636, 868, 0), + DEVICE ("Canon SmartBase MP390", MP390_PID, 1200, 636, 868, 0), + DEVICE ("Canon MultiPASS MP700", MP700_PID, 1200, 638, 877 /*1035 */ , 0), ++ DEVICE ("Canon MultiPASS MP710", MP710_PID, 1200, 637, 868, 0), + DEVICE ("Canon MultiPASS MP730", MP730_PID, 1200, 637, 868, PIXMA_CAP_ADF), ++ DEVICE ("Canon MultiPASS MP740", MP740_PID, 1200, 637, 868, PIXMA_CAP_ADF), + DEVICE (NULL, 0, 0, 0, 0, 0) + }; +diff -urNad sane-backends-1.0.19~/backend/pixma_mp750.c sane-backends-1.0.19/backend/pixma_mp750.c +--- sane-backends-1.0.19~/backend/pixma_mp750.c 2007-04-09 22:41:25.000000000 +0200 ++++ sane-backends-1.0.19/backend/pixma_mp750.c 2008-03-01 13:31:20.053338560 +0100 +@@ -386,7 +386,7 @@ + if (s->param->source == PIXMA_SOURCE_ADF && !has_paper (s)) + return PIXMA_ENO_PAPER; + error = activate_cs (s, 0); +- /*SIM*/ if (error < 0) ++ /*SIM*/ if (error < 0) + return error; + error = activate_cs (s, 0x20); + if (error < 0) +@@ -628,7 +628,7 @@ + + query_status (s); + check_status (s); +- /*SIM*/ while (!is_calibrated (s) && --tmo >= 0) ++ /*SIM*/ while (!is_calibrated (s) && --tmo >= 0) + { + if (s->cancel) + return PIXMA_ECANCELED; +@@ -636,7 +636,7 @@ + { + block_size = 0; + error = request_image_block (s, &block_size, &info); +- /*SIM*/ if (error < 0) ++ /*SIM*/ if (error < 0) + return error; + } + } +@@ -655,7 +655,7 @@ + } + block_size = 0; + request_image_block (s, &block_size, &info); +- /*SIM*/ mp->state = state_scanning; ++ /*SIM*/ mp->state = state_scanning; + mp->last_block = 0; + } + +@@ -693,7 +693,7 @@ + if (info != 0x38) + { + query_status (s); +- /*SIM*/ while ((info & 0x28) != 0x28) ++ /*SIM*/ while ((info & 0x28) != 0x28) + { + pixma_sleep (10000); + error = request_image_block2 (s, &info); +@@ -710,8 +710,8 @@ + } + + check_status (s); +- /*SIM*/ while (handle_interrupt (s, 1) > 0); +- /*SIM*/ block_size = IMAGE_BLOCK_SIZE; ++ /*SIM*/ while (handle_interrupt (s, 1) > 0); ++ /*SIM*/ block_size = IMAGE_BLOCK_SIZE; + error = request_image_block (s, &block_size, &info); + if (error < 0) + { +@@ -791,7 +791,7 @@ + } + } + query_status (s); +- /*SIM*/ activate (s, 0); ++ /*SIM*/ activate (s, 0); + if (mp->needs_abort) + { + mp->needs_abort = 0; +diff -urNad sane-backends-1.0.19~/doc/descriptions/pixma.desc sane-backends-1.0.19/doc/descriptions/pixma.desc +--- sane-backends-1.0.19~/doc/descriptions/pixma.desc 2008-01-23 02:51:09.000000000 +0100 ++++ sane-backends-1.0.19/doc/descriptions/pixma.desc 2008-03-01 13:31:31.037150091 +0100 +@@ -11,9 +11,10 @@ + ; See doc/descriptions.txt for details. + + :backend "pixma" ; name of backend +-:version "0.13.1" ; version of backend (or "unmaintained") ++:version "0.14.3" ; version of backend (or "unmaintained") + :manpage "sane-pixma" ; name of manpage (if it exists) +-:url "http://home.arcor.de/wittawat/pixma/" ; backend's web page ++:url "http://home.arcor.de/wittawat/pixma/" ; 0.13.1 backend's web page ++:url "http://mp610.blogspot.com/" ; 0.14.2 backend's web page + ;:comment "Devices marked as experimantal are disabled by default. See the manual page for how to enable them." + + :devicetype :scanner ; start of a list of devices.... +@@ -23,6 +24,12 @@ + :mfg "Canon" ; name a manufacturer + :url "http://www.canon.com/" + ++:model "PIXMA MP140" ++:interface "USB" ++:usbid "0x04a9" "0x172b" ++:status :good ++:comment "up to 600 DPI" ++ + :model "PIXMA MP150" + :interface "USB" + :usbid "0x04a9" "0x1709" +@@ -43,6 +50,18 @@ + :usbid "0x04a9" "0x1715" + :status :basic + ++:model "PIXMA MP210" ++:interface "USB" ++:usbid "0x04a9" "0x1721" ++:status :good ++:comment "up to 600DPI" ++ ++:model "PIXMA MP220" ++:interface "USB" ++:usbid "0x04a9" "0x1722" ++:status :untested ++:comment "Testers needed! Likely to use generation 3 protocol." ++ + :model "PIXMA MP450" + :interface "USB" + :usbid "0x04a9" "0x170b" +@@ -54,6 +73,12 @@ + :usbid "0x04a9" "0x1716" + :status :basic + ++:model "PIXMA MP470" ++:interface "USB" ++:usbid "0x04a9" "0x1723" ++:status :good ++:comment "up to 2400DPI" ++ + :model "PIXMA MP500" + :interface "USB" + :usbid "0x04a9" "0x170c" +@@ -64,6 +89,12 @@ + :usbid "0x04a9" "0x1717" + :status :basic + ++:model "PIXMA MP520" ++:interface "USB" ++:usbid "0x04a9" "0x1724" ++:status :good ++:comment "up to 2400DPI" ++ + :model "PIXMA MP530" + :interface "USB" + :usbid "0x04a9" "0x1712" +@@ -81,6 +112,12 @@ + :status :minimal + :comment "2400DPI doesn't work." + ++:model "PIXMA MP610" ++:interface "USB" ++:usbid "0x04a9" "0x1725" ++:status :good ++:comment "up to 4800DPI" ++ + :model "PIXMA MP750" + :interface "USB" + :usbid "0x04a9" "0x1706" +@@ -115,6 +152,7 @@ + :interface "USB" + :usbid "0x04a9" "0x171a" + :status :untested ++:comment "Testers needed!" + + :model "PIXMA MP830" + :interface "USB" +@@ -127,6 +165,12 @@ + :usbid "0x04a9" "0x171b" + :status :minimal + ++:model "PIXMA MP970" ++:interface "USB" ++:usbid "0x04a9" "0x1726" ++:status :untested ++:comment "Testers needed!" ++ + :model "SmartBase MP360" + :interface "USB" + :usbid "0x04a9" "0x263c" +@@ -151,6 +195,18 @@ + :status :basic + :comment "Same model as SmartBase MP700 Photo?" + ++:model "PIXMA MP710" ++:interface "USB" ++:usbid "0x04a9" "0x264d" ++:status :good ++:comment "up to 1200DPI" ++ ++:model "PIXMA MP740" ++:interface "USB" ++:usbid "0x04a9" "0x264c" ++:status :untested ++:comment "Same protocol as Pixma MP710? Testers needed!" ++ + :model "MultiPASS MP730" + :interface "USB" + :usbid "0x04a9" "0x262f" --- sane-backends-1.0.19.orig/debian/patches/31_sanei_pthread_64bit_fix.dpatch +++ sane-backends-1.0.19/debian/patches/31_sanei_pthread_64bit_fix.dpatch @@ -0,0 +1,650 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 31_sanei_pthread_64bit_fix.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Use a long-type variable to hold both pid and pthread id, as pthread_t +## DP: is 64bit on 64bit platforms, whereas pid_t is still a 32bit int. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/backend/agfafocus.h sane-backends-1.0.19/backend/agfafocus.h +--- sane-backends-1.0.19~/backend/agfafocus.h 2004-05-23 19:28:56.000000000 +0200 ++++ sane-backends-1.0.19/backend/agfafocus.h 2008-07-22 23:04:16.974358576 +0200 +@@ -120,7 +120,7 @@ + int lines_available; /* Lines in scanner memory */ + + int fd; /* SCSI filedescriptor */ +- pid_t reader_pid; /* process id of reader */ ++ SANE_Pid reader_pid; /* process id of reader */ + int pipe; /* pipe to reader process */ + int reader_pipe; /* pipe from reader process */ + +diff -urNad sane-backends-1.0.19~/backend/artec_eplus48u.c sane-backends-1.0.19/backend/artec_eplus48u.c +--- sane-backends-1.0.19~/backend/artec_eplus48u.c 2007-11-18 11:59:17.000000000 +0100 ++++ sane-backends-1.0.19/backend/artec_eplus48u.c 2008-07-22 23:04:16.975358576 +0200 +@@ -3478,7 +3478,7 @@ + do_cancel (Artec48U_Scanner * s, SANE_Bool closepipe) + { + struct SIGACTION act; +- pid_t res; ++ SANE_Pid res; + XDBG ((1, "do_cancel\n")); + + s->scanning = SANE_FALSE; +diff -urNad sane-backends-1.0.19~/backend/artec_eplus48u.h sane-backends-1.0.19/backend/artec_eplus48u.h +--- sane-backends-1.0.19~/backend/artec_eplus48u.h 2005-07-15 23:59:21.000000000 +0200 ++++ sane-backends-1.0.19/backend/artec_eplus48u.h 2008-07-22 23:04:16.975358576 +0200 +@@ -282,7 +282,7 @@ + Artec48U_Device *dev; + Artec48U_Line_Reader *reader; + FILE *pipe_handle; +- int reader_pid; ++ SANE_Pid reader_pid; + int pipe; + int reader_pipe; + SANE_Option_Descriptor opt[NUM_OPTIONS]; +diff -urNad sane-backends-1.0.19~/backend/coolscan.h sane-backends-1.0.19/backend/coolscan.h +--- sane-backends-1.0.19~/backend/coolscan.h 2003-11-04 17:09:51.000000000 +0100 ++++ sane-backends-1.0.19/backend/coolscan.h 2008-07-22 23:04:16.976358130 +0200 +@@ -122,7 +122,7 @@ + + SANE_Option_Descriptor opt[NUM_OPTIONS]; + +- pid_t reader_pid; ++ SANE_Pid reader_pid; + int reader_fds; + int pipe; + int scanning; +diff -urNad sane-backends-1.0.19~/backend/hp-handle.c sane-backends-1.0.19/backend/hp-handle.c +--- sane-backends-1.0.19~/backend/hp-handle.c 2003-10-24 19:26:07.000000000 +0200 ++++ sane-backends-1.0.19/backend/hp-handle.c 2008-07-22 23:04:16.977358139 +0200 +@@ -74,7 +74,7 @@ + HpDevice dev; + SANE_Parameters scan_params; + +- pid_t reader_pid; ++ SANE_Pid reader_pid; + int child_forked; /* Flag if we used fork() or not */ + size_t bytes_left; + int pipe_read_fd; +@@ -207,7 +207,7 @@ + return SANE_STATUS_IO_ERROR; + } + +- DBG(1, "start_reader: reader process %d started\n", this->reader_pid); ++ DBG(1, "start_reader: reader process %ld started\n", (long) this->reader_pid); + return SANE_STATUS_GOOD; + } + +@@ -226,7 +226,7 @@ + if (this->reader_pid) + { + int info; +- DBG(3, "hp_handle_stopScan: killing child (%d)\n", this->reader_pid); ++ DBG(3, "hp_handle_stopScan: killing child (%ld)\n", (long) this->reader_pid); + if (this->child_forked) + { + kill(this->reader_pid, SIGTERM); +@@ -744,8 +744,8 @@ + if ( (this->reader_pid) + && (this->dev->compat & HP_COMPAT_OJ_1150C) ) + { +- DBG(3,"sanei_hp_handle_cancel: send SIGTERM to child (%d)\n", +- this->reader_pid); ++ DBG(3,"sanei_hp_handle_cancel: send SIGTERM to child (%ld)\n", ++ (long) this->reader_pid); + if (this->child_forked) + kill(this->reader_pid, SIGTERM); + else +diff -urNad sane-backends-1.0.19~/backend/hp3500.c sane-backends-1.0.19/backend/hp3500.c +--- sane-backends-1.0.19~/backend/hp3500.c 2007-11-18 11:59:17.000000000 +0100 ++++ sane-backends-1.0.19/backend/hp3500.c 2008-07-22 23:04:16.978358053 +0200 +@@ -164,7 +164,7 @@ + int sfd; + int pipe_r; + int pipe_w; +- int reader_pid; ++ SANE_Pid reader_pid; + + int resolution; + int mode; +diff -urNad sane-backends-1.0.19~/backend/microtek2.h sane-backends-1.0.19/backend/microtek2.h +--- sane-backends-1.0.19~/backend/microtek2.h 2006-01-02 16:55:18.000000000 +0100 ++++ sane-backends-1.0.19/backend/microtek2.h 2008-07-22 23:04:16.978358053 +0200 +@@ -1144,7 +1144,7 @@ + int cancelled; + int sfd; /* SCSI filedescriptor */ + int fd[2]; /* file descriptors for pipe */ +- pid_t pid; /* pid of child process */ ++ SANE_Pid pid; /* pid of child process */ + FILE *fp; + + } Microtek2_Scanner; +diff -urNad sane-backends-1.0.19~/backend/mustek.c sane-backends-1.0.19/backend/mustek.c +--- sane-backends-1.0.19~/backend/mustek.c 2007-11-18 12:09:05.000000000 +0100 ++++ sane-backends-1.0.19/backend/mustek.c 2008-07-22 23:04:16.980357943 +0200 +@@ -2952,7 +2952,7 @@ + struct timeval now; + long int scan_time; + long int scan_size; +- pid_t pid; ++ SANE_Pid pid; + + /* print scanning time */ + gettimeofday (&now, 0); +diff -urNad sane-backends-1.0.19~/backend/mustek.h sane-backends-1.0.19/backend/mustek.h +--- sane-backends-1.0.19~/backend/mustek.h 2005-05-05 19:28:37.000000000 +0200 ++++ sane-backends-1.0.19/backend/mustek.h 2008-07-22 23:04:16.980357943 +0200 +@@ -270,7 +270,7 @@ + SANE_Bool one_pass_color_scan; + SANE_Int resolution_code; + int fd; /* SCSI filedescriptor */ +- pid_t reader_pid; /* process id of reader */ ++ SANE_Pid reader_pid; /* process id of reader */ + int reader_fds; /* OS/2: pipe write handler for reader */ + int pipe; /* pipe to reader process */ + long start_time; /* at this time the scan started */ +diff -urNad sane-backends-1.0.19~/backend/pie.c sane-backends-1.0.19/backend/pie.c +--- sane-backends-1.0.19~/backend/pie.c 2008-02-04 02:20:01.000000000 +0100 ++++ sane-backends-1.0.19/backend/pie.c 2008-07-22 23:04:16.981358109 +0200 +@@ -307,7 +307,7 @@ + int scanning; /* true if actually doing a scan */ + SANE_Parameters params; + +- pid_t reader_pid; ++ SANE_Pid reader_pid; + int pipe; + int reader_fds; + +diff -urNad sane-backends-1.0.19~/backend/pixma.c sane-backends-1.0.19/backend/pixma.c +--- sane-backends-1.0.19~/backend/pixma.c 2008-07-22 23:04:10.235358070 +0200 ++++ sane-backends-1.0.19/backend/pixma.c 2008-07-22 23:04:16.982357920 +0200 +@@ -109,7 +109,7 @@ + unsigned image_bytes_read; + unsigned page_count; /* valid for ADF */ + +- int reader_taskid; ++ SANE_Pid reader_taskid; + int wpipe, rpipe; + SANE_Bool reader_stop; + } pixma_sane_t; +@@ -806,10 +806,10 @@ + return reader_loop (ss); + } + +-static int ++static SANE_Pid + terminate_reader_task (pixma_sane_t * ss, int *exit_code) + { +- int result, pid; ++ SANE_Pid result, pid; + int status = 0; + + pid = ss->reader_taskid; +@@ -847,7 +847,7 @@ + start_reader_task (pixma_sane_t * ss) + { + int fds[2]; +- int pid; ++ SANE_Pid pid; + int is_forked; + + if (ss->rpipe != -1 || ss->wpipe != -1) +@@ -862,7 +862,7 @@ + if (ss->reader_taskid != -1) + { + PDBG (pixma_dbg +- (1, "BUG:reader_taskid(%d) != -1\n", ss->reader_taskid)); ++ (1, "BUG:reader_taskid(%ld) != -1\n", (long) ss->reader_taskid)); + terminate_reader_task (ss, NULL); + } + if (pipe (fds) == -1) +@@ -898,7 +898,7 @@ + PDBG (pixma_dbg (1, "ERROR:unable to start reader task\n")); + return PIXMA_ENOMEM; + } +- PDBG (pixma_dbg (3, "Reader task id=%d (%s)\n", pid, ++ PDBG (pixma_dbg (3, "Reader task id=%ld (%s)\n", (long) pid, + (is_forked) ? "forked" : "threaded")); + ss->reader_taskid = pid; + return 0; +@@ -957,7 +957,7 @@ + ss->image_bytes_read, ss->sp.image_size)); + close (ss->rpipe); + ss->rpipe = -1; +- if (terminate_reader_task (ss, &status) > 0 ++ if (terminate_reader_task (ss, &status) != -1 + && status != SANE_STATUS_GOOD) + { + return status; +diff -urNad sane-backends-1.0.19~/backend/plustek-pp.h sane-backends-1.0.19/backend/plustek-pp.h +--- sane-backends-1.0.19~/backend/plustek-pp.h 2006-08-29 10:57:02.000000000 +0200 ++++ sane-backends-1.0.19/backend/plustek-pp.h 2008-07-22 23:04:16.982357920 +0200 +@@ -602,7 +602,7 @@ + typedef struct Plustek_Scanner + { + struct Plustek_Scanner *next; +- pid_t reader_pid; /* process id of reader */ ++ SANE_Pid reader_pid; /* process id of reader */ + SANE_Status exit_code; /* status of the reader process */ + int r_pipe; /* pipe to reader process */ + int w_pipe; /* pipe from reader process */ +diff -urNad sane-backends-1.0.19~/backend/plustek.c sane-backends-1.0.19/backend/plustek.c +--- sane-backends-1.0.19~/backend/plustek.c 2007-12-17 15:27:35.000000000 +0100 ++++ sane-backends-1.0.19/backend/plustek.c 2008-07-22 23:04:16.983358031 +0200 +@@ -566,7 +566,7 @@ + do_cancel( Plustek_Scanner *scanner, SANE_Bool closepipe ) + { + struct SIGACTION act; +- pid_t res; ++ SANE_Pid res; + + DBG( _DBG_PROC,"do_cancel\n" ); + scanner->scanning = SANE_FALSE; +diff -urNad sane-backends-1.0.19~/backend/plustek.h sane-backends-1.0.19/backend/plustek.h +--- sane-backends-1.0.19~/backend/plustek.h 2007-11-23 17:46:04.000000000 +0100 ++++ sane-backends-1.0.19/backend/plustek.h 2008-07-22 23:04:16.983358031 +0200 +@@ -383,7 +383,7 @@ + typedef struct Plustek_Scanner + { + struct Plustek_Scanner *next; +- pid_t reader_pid; /* process id of reader */ ++ SANE_Pid reader_pid; /* process id of reader */ + SANE_Status exit_code; /* status of the reader process */ + int r_pipe; /* pipe to reader process */ + int w_pipe; /* pipe from reader process */ +diff -urNad sane-backends-1.0.19~/backend/plustek_pp.c sane-backends-1.0.19/backend/plustek_pp.c +--- sane-backends-1.0.19~/backend/plustek_pp.c 2007-11-18 11:59:18.000000000 +0100 ++++ sane-backends-1.0.19/backend/plustek_pp.c 2008-07-22 23:04:16.984358163 +0200 +@@ -461,7 +461,7 @@ + static SANE_Status do_cancel( Plustek_Scanner *scanner, SANE_Bool closepipe ) + { + struct SIGACTION act; +- pid_t res; ++ SANE_Pid res; + short int_cnt; + + DBG( _DBG_PROC,"do_cancel\n" ); +diff -urNad sane-backends-1.0.19~/backend/snapscan.c sane-backends-1.0.19/backend/snapscan.c +--- sane-backends-1.0.19~/backend/snapscan.c 2008-01-29 18:48:42.000000000 +0100 ++++ sane-backends-1.0.19/backend/snapscan.c 2008-07-22 23:04:16.985358323 +0200 +@@ -1813,7 +1813,7 @@ + char *me = "sane_snapscan_cancel"; + SnapScan_Scanner *pss = (SnapScan_Scanner *) h; + struct SIGACTION act; +- pid_t res; ++ SANE_Pid res; + + DBG (DL_CALL_TRACE, "%s\n", me); + switch (pss->state) +diff -urNad sane-backends-1.0.19~/backend/snapscan.h sane-backends-1.0.19/backend/snapscan.h +--- sane-backends-1.0.19~/backend/snapscan.h 2006-02-02 22:28:05.000000000 +0100 ++++ sane-backends-1.0.19/backend/snapscan.h 2008-07-22 23:04:16.985358323 +0200 +@@ -353,7 +353,7 @@ + int opens; /* open count */ + int rpipe[2]; /* reader pipe descriptors */ + int orig_rpipe_flags; /* initial reader pipe flags */ +- pid_t child; /* child reader process pid */ ++ SANE_Pid child; /* child reader process pid */ + SnapScan_Mode mode; /* mode */ + SnapScan_Mode preview_mode; /* preview mode */ + SnapScan_Source source; /* scanning source */ +diff -urNad sane-backends-1.0.19~/backend/sp15c.h sane-backends-1.0.19/backend/sp15c.h +--- sane-backends-1.0.19~/backend/sp15c.h 2005-09-19 21:57:48.000000000 +0200 ++++ sane-backends-1.0.19/backend/sp15c.h 2008-07-22 23:04:16.985358323 +0200 +@@ -147,7 +147,7 @@ + int scanning; /* "in progress" flag */ + int autofeeder; /* detected */ + int use_adf; /* requested */ +- int reader_pid; /* child is running */ ++ SANE_Pid reader_pid; /* child is running */ + int prescan; /* ??? */ + + /***** terms for "set window" command *****/ +diff -urNad sane-backends-1.0.19~/backend/tamarack.h sane-backends-1.0.19/backend/tamarack.h +--- sane-backends-1.0.19~/backend/tamarack.h 2004-05-23 19:28:56.000000000 +0200 ++++ sane-backends-1.0.19/backend/tamarack.h 2008-07-22 23:04:16.986358410 +0200 +@@ -113,7 +113,7 @@ + int resolution_code; + #endif + int fd; /* SCSI filedescriptor */ +- pid_t reader_pid; /* process id of reader */ ++ SANE_Pid reader_pid; /* process id of reader */ + int pipe; /* pipe to reader process */ + int reader_pipe; /* pipe from reader process */ + +diff -urNad sane-backends-1.0.19~/backend/test.c sane-backends-1.0.19/backend/test.c +--- sane-backends-1.0.19~/backend/test.c 2007-11-18 11:59:18.000000000 +0100 ++++ sane-backends-1.0.19/backend/test.c 2008-07-22 23:04:16.986358410 +0200 +@@ -1351,10 +1351,10 @@ + if (test_device->reader_pid != -1) + { + int status; +- int pid; ++ SANE_Pid pid; + +- DBG (2, "finish_pass: terminating reader process %d\n", +- test_device->reader_pid); ++ DBG (2, "finish_pass: terminating reader process %ld\n", ++ (long) test_device->reader_pid); + sanei_thread_kill (test_device->reader_pid); + pid = sanei_thread_waitpid (test_device->reader_pid, &status); + if (pid == -1) +diff -urNad sane-backends-1.0.19~/backend/test.h sane-backends-1.0.19/backend/test.h +--- sane-backends-1.0.19~/backend/test.h 2006-01-02 23:55:43.000000000 +0100 ++++ sane-backends-1.0.19/backend/test.h 2008-07-22 23:04:16.987358049 +0200 +@@ -126,7 +126,7 @@ + Option_Value val[num_options]; + SANE_Parameters params; + SANE_String name; +- SANE_Int reader_pid; ++ SANE_Pid reader_pid; + SANE_Int reader_fds; + SANE_Int pipe; + FILE *pipe_handle; +diff -urNad sane-backends-1.0.19~/backend/u12.c sane-backends-1.0.19/backend/u12.c +--- sane-backends-1.0.19~/backend/u12.c 2007-11-18 11:59:18.000000000 +0100 ++++ sane-backends-1.0.19/backend/u12.c 2008-07-22 23:04:16.987358049 +0200 +@@ -385,7 +385,7 @@ + static SANE_Status do_cancel( U12_Scanner *scanner, SANE_Bool closepipe ) + { + struct SIGACTION act; +- pid_t res; ++ SANE_Pid res; + + DBG( _DBG_PROC,"do_cancel\n" ); + +diff -urNad sane-backends-1.0.19~/backend/u12.h sane-backends-1.0.19/backend/u12.h +--- sane-backends-1.0.19~/backend/u12.h 2004-01-21 09:15:16.000000000 +0100 ++++ sane-backends-1.0.19/backend/u12.h 2008-07-22 23:04:16.987358049 +0200 +@@ -304,7 +304,7 @@ + typedef struct u12s + { + struct u12s *next; +- pid_t reader_pid; /* process id of reader */ ++ SANE_Pid reader_pid; /* process id of reader */ + SANE_Status exit_code; /* status of the reader process */ + int r_pipe; /* pipe to reader process */ + int w_pipe; /* pipe from reader process */ +diff -urNad sane-backends-1.0.19~/backend/umax.c sane-backends-1.0.19/backend/umax.c +--- sane-backends-1.0.19~/backend/umax.c 2008-02-04 02:20:01.000000000 +0100 ++++ sane-backends-1.0.19/backend/umax.c 2008-07-22 23:04:16.990358063 +0200 +@@ -4664,7 +4664,8 @@ + + static SANE_Status do_cancel(Umax_Scanner *scanner) + { +- int pid, status; ++ SANE_Pid pid; ++ int status; + + DBG(DBG_sane_proc,"do_cancel\n"); + +diff -urNad sane-backends-1.0.19~/backend/umax.h sane-backends-1.0.19/backend/umax.h +--- sane-backends-1.0.19~/backend/umax.h 2003-09-12 18:10:33.000000000 +0200 ++++ sane-backends-1.0.19/backend/umax.h 2008-07-22 23:04:16.990358063 +0200 +@@ -487,7 +487,7 @@ + int scanning; + SANE_Parameters params; + +- pid_t reader_pid; ++ SANE_Pid reader_pid; + int pipe_read_fd; + int pipe_write_fd; + } Umax_Scanner; +diff -urNad sane-backends-1.0.19~/include/sane/sanei_thread.h sane-backends-1.0.19/include/sane/sanei_thread.h +--- sane-backends-1.0.19~/include/sane/sanei_thread.h 2007-11-16 13:31:59.000000000 +0100 ++++ sane-backends-1.0.19/include/sane/sanei_thread.h 2008-07-22 23:04:16.991358079 +0200 +@@ -60,6 +60,12 @@ + #define sanei_thread_h + #include "../include/sane/config.h" + ++#ifdef USE_PTHREAD ++typedef long SANE_Pid; ++#else ++typedef int SANE_Pid; ++#endif ++ + /** Initialize sanei_thread. + * + * This function must be called before any other sanei_thread function. +@@ -87,7 +93,7 @@ + * - task id + * - -1 if creating the new task failed + */ +-extern int sanei_thread_begin (int (*func) (void *args), void *args); ++extern SANE_Pid sanei_thread_begin (int (*func) (void *args), void *args); + + /** Terminate spawned task. + * +@@ -102,7 +108,7 @@ + * - 0 on success + * - any other value if an error occured while terminating the task + */ +-extern int sanei_thread_kill (int pid); ++extern int sanei_thread_kill (SANE_Pid pid); + + /** Send a signal to a task. + * +@@ -117,7 +123,7 @@ + * - 0 - on success + * - any other value - if an error occured while sending the signal + */ +-extern int sanei_thread_sendsig (int pid, int sig); ++extern int sanei_thread_sendsig (SANE_Pid pid, int sig); + + /** Wait for task termination. + * +@@ -131,7 +137,7 @@ + * @return + * - the pid of the task we have been waiting for + */ +-extern int sanei_thread_waitpid (int pid, int *status); ++extern SANE_Pid sanei_thread_waitpid (SANE_Pid pid, int *status); + + /** Check the current status of the spawned task + * +@@ -142,6 +148,6 @@ + * - SANE_STATUS_GOOD - if the task finished without errors + * - any other value - if the task finished unexpectantly or hasn't finished yet + */ +-extern SANE_Status sanei_thread_get_status (int pid); ++extern SANE_Status sanei_thread_get_status (SANE_Pid pid); + + #endif /* sanei_thread_h */ +diff -urNad sane-backends-1.0.19~/sanei/sanei_thread.c sane-backends-1.0.19/sanei/sanei_thread.c +--- sane-backends-1.0.19~/sanei/sanei_thread.c 2005-07-15 23:59:25.000000000 +0200 ++++ sane-backends-1.0.19/sanei/sanei_thread.c 2008-07-22 23:04:16.991358079 +0200 +@@ -117,9 +117,9 @@ + } + + int +-sanei_thread_kill( int pid ) ++sanei_thread_kill( SANE_Pid pid ) + { +- DBG(2, "sanei_thread_kill() will kill %d\n", (int)pid); ++ DBG(2, "sanei_thread_kill() will kill %ld\n", (long) pid); + #ifdef USE_PTHREAD + #if defined (__APPLE__) && defined (__MACH__) + return pthread_kill((pthread_t)pid, SIGUSR2); +@@ -154,10 +154,10 @@ + * args pointer to scanner data structure + * + */ +-int ++SANE_Pid + sanei_thread_begin( int (*func)(void *args), void* args ) + { +- int pid; ++ SANE_Pid pid; + + td.func = func; + td.func_data = args; +@@ -172,8 +172,8 @@ + return pid; + } + +-int +-sanei_thread_waitpid( int pid, int *status ) ++SANE_Pid ++sanei_thread_waitpid( SANE_Pid pid, int *status ) + { + if (status) + *status = 0; +@@ -181,7 +181,7 @@ + } + + int +-sanei_thread_sendsig( int pid, int sig ) ++sanei_thread_sendsig( SANE_Pid pid, int sig ) + { + return 0; + } +@@ -207,10 +207,10 @@ + * args pointer to scanner data structure + * + */ +-int ++SANE_Pid + sanei_thread_begin( int (*func)(void *args), void* args ) + { +- int pid; ++ SANE_Pid pid; + + td.func = func; + td.func_data = args; +@@ -229,8 +229,8 @@ + return pid; + } + +-int +-sanei_thread_waitpid( int pid, int *status ) ++SANE_Pid ++sanei_thread_waitpid( SANE_Pid pid, int *status ) + { + int32 st; + if ( wait_for_thread(pid, &st) < B_OK ) +@@ -241,7 +241,7 @@ + } + + int +-sanei_thread_sendsig( int pid, int sig ) ++sanei_thread_sendsig( SANE_Pid pid, int sig ) + { + if (sig == SIGKILL) + sig = SIGKILLTHR; +@@ -325,7 +325,7 @@ + #else /* the process stuff */ + + static int +-eval_wp_result( int pid, int wpres, int pf ) ++eval_wp_result( SANE_Pid pid, int wpres, int pf ) + { + int retval = SANE_STATUS_IO_ERROR; + +@@ -348,12 +348,12 @@ + } + #endif + +-int ++SANE_Pid + sanei_thread_begin( int (func)(void *args), void* args ) + { +- int pid; + #ifdef USE_PTHREAD + struct sigaction act; ++ int result; + pthread_t thread; + + /* if signal handler for SIGPIPE is SIG_DFL, replace by SIG_IGN */ +@@ -372,17 +372,18 @@ + td.func = func; + td.func_data = args; + +- pid = pthread_create( &thread, NULL, local_thread, &td ); ++ result = pthread_create( &thread, NULL, local_thread, &td ); + usleep( 1 ); + +- if ( pid != 0 ) { +- DBG( 1, "pthread_create() failed with %d\n", pid ); ++ if ( result != 0 ) { ++ DBG( 1, "pthread_create() failed with %d\n", result ); + return -1; + } + +- DBG( 2, "pthread_create() created thread %d\n", (int)thread ); +- return (int)thread; ++ DBG( 2, "pthread_create() created thread %ld\n", (SANE_Pid)thread ); ++ return (SANE_Pid)thread; + #else ++ SANE_Pid pid; + pid = fork(); + if( pid < 0 ) { + DBG( 1, "fork() failed\n" ); +@@ -392,7 +393,7 @@ + if( pid == 0 ) { + + /* run in child context... */ +- int status = func( args ); ++ int status = func( args ); + + /* don't use exit() since that would run the atexit() handlers */ + _exit( status ); +@@ -404,32 +405,33 @@ + } + + int +-sanei_thread_sendsig( int pid, int sig ) ++sanei_thread_sendsig( SANE_Pid pid, int sig ) + { + #ifdef USE_PTHREAD +- DBG(2, "sanei_thread_sendsig() %d to thread(id=%d)\n", sig, pid); +- return pthread_kill((pthread_t)pid, sig ); ++ DBG(2, "sanei_thread_sendsig() %d to thread (id=%ld)\n", sig, pid); ++ return pthread_kill( (pthread_t)pid, sig ); + #else + DBG(2, "sanei_thread_sendsig() %d to process (id=%d)\n", sig, pid); + return kill( pid, sig ); + #endif + } + +-int +-sanei_thread_waitpid( int pid, int *status ) ++SANE_Pid ++sanei_thread_waitpid( SANE_Pid pid, int *status ) + { + #ifdef USE_PTHREAD + int *ls; + #else + int ls; + #endif +- int result, stat; ++ SANE_Pid result; ++ int stat; + + stat = 0; + +- DBG(2, "sanei_thread_waitpid() - %d\n", pid); ++ DBG(2, "sanei_thread_waitpid() - %ld\n", (long) pid); + #ifdef USE_PTHREAD +- result = pthread_join((pthread_t)pid, (void*)&ls ); ++ result = pthread_join( (pthread_t)pid, (void*)&ls ); + + if( 0 == result ) { + if( PTHREAD_CANCELED == ls ) { +@@ -444,7 +446,7 @@ + /* call detach in any case to make sure that the thread resources + * will be freed, when the thread has terminated + */ +- DBG(2, "* detaching thread(%d)\n", pid ); ++ DBG(2, "* detaching thread(%ld)\n", pid ); + pthread_detach((pthread_t)pid); + if (status) + *status = stat; +@@ -468,7 +470,7 @@ + #endif /* HAVE_OS2_H */ + + SANE_Status +-sanei_thread_get_status( int pid ) ++sanei_thread_get_status( SANE_Pid pid ) + { + #if defined USE_PTHREAD || defined HAVE_OS2_H || defined __BEOS__ + _VAR_NOT_USED( pid ); --- sane-backends-1.0.19.orig/debian/patches/04_sane-desc_hal_new.dpatch +++ sane-backends-1.0.19/debian/patches/04_sane-desc_hal_new.dpatch @@ -0,0 +1,74 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 04_sane-desc_hal_new.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Add support for newer HAL versions, where the info.bus property is not +## DP: supported anymore, superseded by info.subsystem. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/tools/sane-desc.c sane-backends-1.0.19/tools/sane-desc.c +--- sane-backends-1.0.19~/tools/sane-desc.c 2008-03-20 21:23:34.000000000 +0100 ++++ sane-backends-1.0.19/tools/sane-desc.c 2008-03-28 22:07:22.137543185 +0100 +@@ -77,7 +77,8 @@ + output_mode_db, + output_mode_udev, + output_mode_plist, +- output_mode_hal ++ output_mode_hal, ++ output_mode_halnew + } + output_mode; + +@@ -293,7 +294,7 @@ + "(multiple directories can be concatenated by \":\")\n"); + printf (" -m|--mode mode " + "Output mode (ascii, html-backends-split, html-mfgs,\n" +- " xml, statistics, usermap, db, udev, plist, hal)\n"); ++ " xml, statistics, usermap, db, udev, plist, hal, hal-new)\n"); + printf (" -t|--title \"title\" The title used for HTML pages\n"); + printf (" -i|--intro \"intro\" A short description of the " + "contents of the page\n"); +@@ -400,6 +401,11 @@ + DBG_INFO ("Output mode: %s\n", optarg); + mode = output_mode_hal; + } ++ else if (strcmp (optarg, "hal-new") == 0) ++ { ++ DBG_INFO ("Output mode: %s\n", optarg); ++ mode = output_mode_halnew; ++ } + else + { + DBG_ERR ("Unknown output mode: %s\n", optarg); +@@ -3272,14 +3278,17 @@ + + + static void +-print_hal (void) ++print_hal (int new) + { + int i; + usbid_type *usbid = create_usbids_table (); + printf ("\n"); + printf ("\n"); + printf (" \n"); +- printf (" \n"); ++ if (new) ++ printf (" \n"); ++ else ++ printf (" \n"); + while (usbid) + { + manufacturer_model_type * name = usbid->name; +@@ -3353,7 +3362,10 @@ + print_plist (); + break; + case output_mode_hal: +- print_hal (); ++ print_hal (0); ++ break; ++ case output_mode_halnew: ++ print_hal (1); + break; + default: + DBG_ERR ("Unknown output mode\n"); --- sane-backends-1.0.19.orig/debian/patches/23_unneeded_doc.dpatch +++ sane-backends-1.0.19/debian/patches/23_unneeded_doc.dpatch @@ -0,0 +1,63 @@ +#!/bin/sh -e +## 04_unneeded_doc.dpatch by Julien BLACHE +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Do not generate some documentation we do not want; do not include +## DP: sane.png in the html documentation, as it is not distributed in the +## DP: source tarball. + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in + -patch) patch $patch_opts -p1 < $0;; + -unpatch) patch $patch_opts -p1 -R < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad sane-backends-1.0.19~cvs20071213~/doc/Makefile.in sane-backends-1.0.19~cvs20071213/doc/Makefile.in +--- sane-backends-1.0.19~cvs20071213~/doc/Makefile.in 2007-12-13 21:16:33.000000000 +0100 ++++ sane-backends-1.0.19~cvs20071213/doc/Makefile.in 2007-12-13 21:31:07.239481854 +0100 +@@ -42,7 +42,7 @@ + sane-dc25.5 sane-dmc.5 sane-epson.5 sane-hp.5 sane-gphoto2.5 \ + sane-leo.5 sane-lexmark.5 sane-matsushita.5 sane-microtek.5 \ + sane-microtek2.5 sane-mustek.5 sane-nec.5 sane-net.5 sane-pie.5 \ +- sane-pint.5 sane-pnm.5 sane-umax.5 sane-qcam.5 sane-scsi.5 \ ++ sane-umax.5 sane-qcam.5 sane-scsi.5 \ + sane-artec.5 sane-fujitsu.5 sane-sharp.5 sane-s9036.5 \ + sane-tamarack.5 sane-ricoh.5 sane-avision.5 sane-plustek.5 \ + sane-st400.5 sane-mustek_pp.5 sane-dc210.5 sane-v4l.5 \ +@@ -58,12 +58,8 @@ + SECT7 = sane.7 + SECT8 = saned.8 + MANPAGES = $(SECT1) $(SECT5) $(SECT7) $(SECT8) +-READMES = README AUTHORS COPYING ChangeLog LICENSE NEWS PROBLEMS \ +- PROJECTS README README.aix README.beos README.darwin README.freebsd \ +- README.djpeg \ +- README.hp-ux README.linux README.netbsd README.openbsd README.os2 \ +- README.solaris README.unixware2 README.unixware7 README.windows README.zeta +-DOCS = backend-writing.txt sane.ps sane.dvi ++READMES = README AUTHORS NEWS PROBLEMS PROJECTS ++DOCS = backend-writing.txt sane.ps + BACKDIRS= canon leo matsushita mustek mustek_usb plustek u12 umax sceptre teco \ + gt68xx niash mustek_usb2 + LATEX = TEXINPUTS=$(srcdir):$$TEXINPUTS @LATEX@ +@@ -73,7 +69,7 @@ + MAN2HTML= nroff -man |\ + man2html -compress -topm 6 -botm 6 -nodepage -title $${page} \ + -cgiurl '$$title.$$section.html'|\ +- sed 's,,

,' ++ sed 's,,,' + + ifeq (@CROSS_COMPILING@,no) + HTML_PAGES = sane-backends.html sane-backends-external.html \ --- sane-backends-1.0.19.orig/debian/patches/33_scanimage_options_fix.dpatch +++ sane-backends-1.0.19/debian/patches/33_scanimage_options_fix.dpatch @@ -0,0 +1,46 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 33_scanimage_options_fix.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Get option descriptor for option 0 before getting the value of option 0. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/frontend/scanimage.c sane-backends-1.0.19/frontend/scanimage.c +--- sane-backends-1.0.19~/frontend/scanimage.c 2007-12-29 22:36:25.000000000 +0100 ++++ sane-backends-1.0.19/frontend/scanimage.c 2008-08-05 12:07:30.365083518 +0200 +@@ -838,15 +838,33 @@ + const SANE_Option_Descriptor *opt; + SANE_Int num_dev_options; + int i, option_count; ++ SANE_Status status; + + /* and now build the full table of long options: */ + +- sane_control_option (device, 0, SANE_ACTION_GET_VALUE, &num_dev_options, 0); ++ opt = sane_get_option_descriptor (device, 0); ++ if (opt == NULL) ++ { ++ fprintf (stderr, "Could not get option descriptor for option 0\n"); ++ exit (1); ++ } ++ ++ status = sane_control_option (device, 0, SANE_ACTION_GET_VALUE, &num_dev_options, 0); ++ if (status != SANE_STATUS_GOOD) ++ { ++ fprintf (stderr, "Could not get value for option 0: %s\n", sane_strstatus (status)); ++ exit (1); ++ } + + option_count = 0; +- for (i = 0; i < num_dev_options; ++i) ++ for (i = 1; i < num_dev_options; ++i) + { + opt = sane_get_option_descriptor (device, i); ++ if (opt == NULL) ++ { ++ fprintf (stderr, "Could not get option descriptor for option %d\n", i); ++ exit (1); ++ } + + if (!SANE_OPTION_IS_SETTABLE (opt->cap)) + continue; --- sane-backends-1.0.19.orig/debian/patches/07_epson2_be_nice.dpatch +++ sane-backends-1.0.19/debian/patches/07_epson2_be_nice.dpatch @@ -0,0 +1,35 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 07_epson2_be_nice.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Close scanner device if not recognized / other error. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/backend/epson2.c sane-backends-1.0.19/backend/epson2.c +--- sane-backends-1.0.19~/backend/epson2.c 2008-02-03 13:09:09.000000000 +0100 ++++ sane-backends-1.0.19/backend/epson2.c 2008-04-19 17:14:45.666208321 +0200 +@@ -1323,7 +1323,6 @@ + if (status != SANE_STATUS_GOOD) { + DBG(1, "%s: inquiry failed: %s\n", __func__, + sane_strstatus(status)); +- close_scanner(s); + goto free; + } + +@@ -1534,8 +1533,6 @@ + dev->need_reset_on_source_change = SANE_TRUE; + } + +- close_scanner(s); +- + /* we are done with this one, prepare for the next scanner */ + num_devices++; + dev->next = first_dev; +@@ -1545,6 +1542,7 @@ + *devp = dev; + + free: ++ close_scanner(s); + free(s); + return status; + } --- sane-backends-1.0.19.orig/debian/patches/30_new_saned.dpatch +++ sane-backends-1.0.19/debian/patches/30_new_saned.dpatch @@ -0,0 +1,2735 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 30_new_saned.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Backport new saned and net backend from CVS HEAD. +## DP: - standalone mode for saned +## DP: - mDNS/DNS-SD support for saned & net backend + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/aclocal.m4 sane-backends-1.0.19/aclocal.m4 +--- sane-backends-1.0.19~/aclocal.m4 2008-08-05 12:05:01.000000000 +0200 ++++ sane-backends-1.0.19/aclocal.m4 2008-08-05 12:10:07.156084185 +0200 +@@ -1,7 +1,7 @@ +-# generated automatically by aclocal 1.10 -*- Autoconf -*- ++# generated automatically by aclocal 1.9.6 -*- Autoconf -*- + + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +-# 2005, 2006 Free Software Foundation, Inc. ++# 2005 Free Software Foundation, Inc. + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -11,4 +11,162 @@ + # even the implied warranty of MERCHANTABILITY or FITNESS FOR A + # PARTICULAR PURPOSE. + ++# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- ++# ++# Copyright © 2004 Scott James Remnant . ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# PKG_PROG_PKG_CONFIG([MIN-VERSION]) ++# ---------------------------------- ++AC_DEFUN([PKG_PROG_PKG_CONFIG], ++[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) ++m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) ++AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl ++if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then ++ AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) ++fi ++if test -n "$PKG_CONFIG"; then ++ _pkg_min_version=m4_default([$1], [0.9.0]) ++ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) ++ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ PKG_CONFIG="" ++ fi ++ ++fi[]dnl ++])# PKG_PROG_PKG_CONFIG ++ ++# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) ++# ++# Check to see whether a particular set of modules exists. Similar ++# to PKG_CHECK_MODULES(), but does not set variables or print errors. ++# ++# ++# Similar to PKG_CHECK_MODULES, make sure that the first instance of ++# this or PKG_CHECK_MODULES is called, or make sure to call ++# PKG_CHECK_EXISTS manually ++# -------------------------------------------------------------- ++AC_DEFUN([PKG_CHECK_EXISTS], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl ++if test -n "$PKG_CONFIG" && \ ++ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then ++ m4_ifval([$2], [$2], [:]) ++m4_ifvaln([$3], [else ++ $3])dnl ++fi]) ++ ++ ++# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) ++# --------------------------------------------- ++m4_define([_PKG_CONFIG], ++[if test -n "$PKG_CONFIG"; then ++ if test -n "$$1"; then ++ pkg_cv_[]$1="$$1" ++ else ++ PKG_CHECK_EXISTS([$3], ++ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], ++ [pkg_failed=yes]) ++ fi ++else ++ pkg_failed=untried ++fi[]dnl ++])# _PKG_CONFIG ++ ++# _PKG_SHORT_ERRORS_SUPPORTED ++# ----------------------------- ++AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) ++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then ++ _pkg_short_errors_supported=yes ++else ++ _pkg_short_errors_supported=no ++fi[]dnl ++])# _PKG_SHORT_ERRORS_SUPPORTED ++ ++ ++# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], ++# [ACTION-IF-NOT-FOUND]) ++# ++# ++# Note that if there is a possibility the first call to ++# PKG_CHECK_MODULES might not happen, you should be sure to include an ++# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac ++# ++# ++# -------------------------------------------------------------- ++AC_DEFUN([PKG_CHECK_MODULES], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl ++AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl ++AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl ++ ++pkg_failed=no ++AC_MSG_CHECKING([for $1]) ++ ++_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) ++_PKG_CONFIG([$1][_LIBS], [libs], [$2]) ++ ++m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS ++and $1[]_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details.]) ++ ++if test $pkg_failed = yes; then ++ _PKG_SHORT_ERRORS_SUPPORTED ++ if test $_pkg_short_errors_supported = yes; then ++ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` ++ else ++ $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` ++ fi ++ # Put the nasty error message in config.log where it belongs ++ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ++ ++ ifelse([$4], , [AC_MSG_ERROR(dnl ++[Package requirements ($2) were not met: ++ ++$$1_PKG_ERRORS ++ ++Consider adjusting the PKG_CONFIG_PATH environment variable if you ++installed software in a non-standard prefix. ++ ++_PKG_TEXT ++])], ++ [AC_MSG_RESULT([no]) ++ $4]) ++elif test $pkg_failed = untried; then ++ ifelse([$4], , [AC_MSG_FAILURE(dnl ++[The pkg-config script could not be found or is too old. Make sure it ++is in your PATH or set the PKG_CONFIG environment variable to the full ++path to pkg-config. ++ ++_PKG_TEXT ++ ++To get pkg-config, see .])], ++ [$4]) ++else ++ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS ++ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS ++ AC_MSG_RESULT([yes]) ++ ifelse([$3], , :, [$3]) ++fi[]dnl ++])# PKG_CHECK_MODULES ++ + m4_include([acinclude.m4]) +diff -urNad sane-backends-1.0.19~/backend/Makefile.in sane-backends-1.0.19/backend/Makefile.in +--- sane-backends-1.0.19~/backend/Makefile.in 2008-08-05 12:10:05.191083342 +0200 ++++ sane-backends-1.0.19/backend/Makefile.in 2008-08-05 12:10:07.157083814 +0200 +@@ -357,6 +357,7 @@ + LIBM = @LIBM@ + LIBPTHREAD = @LIBPTHREAD@ + LIBDL = @DL_LIB@ ++AVAHI_LIBS = @AVAHI_LIBS@ + + ADDLIB-abaton = $(LIBCAM) + ADDLIB-agfafocus = $(LIBCAM) +@@ -404,6 +405,7 @@ + ADDLIB-mustek_usb = $(LIBUSB) + ADDLIB-mustek_usb2 = $(LIBM) $(LIBPTHREAD) $(LIBUSB) + ADDLIB-nec = $(LIBM) $(LIBCAM) ++ADDLIB-net = $(AVAHI_LIBS) + ADDLIB-niash = $(LIBM) $(LIBUSB) + ADDLIB-pie = $(LIBCAM) + ADDLIB-pixma = $(LIBM) $(LIBUSB) +diff -urNad sane-backends-1.0.19~/backend/net.c sane-backends-1.0.19/backend/net.c +--- sane-backends-1.0.19~/backend/net.c 2008-08-05 12:05:01.000000000 +0200 ++++ sane-backends-1.0.19/backend/net.c 2008-08-05 12:10:07.158083373 +0200 +@@ -1,7 +1,7 @@ + /* sane - Scanner Access Now Easy. + Copyright (C) 1997 David Mosberger-Tang +- Copyright (C) 2003 Julien BLACHE +- AF-independent code + IPv6 ++ Copyright (C) 2003, 2008 Julien BLACHE ++ AF-independent code + IPv6, Avahi support + + This file is part of the SANE package. + +@@ -66,6 +66,21 @@ + #include + #include /* OS/2 needs this _after_ , grrr... */ + ++#ifdef WITH_AVAHI ++# include ++# include ++ ++# include ++# include ++# include ++ ++# define SANED_SERVICE_DNS "_sane-port._tcp" ++ ++static AvahiClient *avahi_client = NULL; ++static AvahiThreadedPoll *avahi_thread = NULL; ++static AvahiServiceBrowser *avahi_browser = NULL; ++#endif /* WITH_AVAHI */ ++ + #include "../include/sane/sane.h" + #include "../include/sane/sanei.h" + #include "../include/sane/sanei_net.h" +@@ -149,6 +164,17 @@ + + DBG (1, "add_device: adding backend %s\n", name); + ++ for (nd = first_device; nd; nd = nd->next) ++ if (strcmp (nd->name, name) == 0) ++ { ++ DBG (1, "add_device: already in list\n"); ++ ++ if (ndp) ++ *ndp = nd; ++ ++ return SANE_STATUS_GOOD; ++ } ++ + memset (&hints, 0, sizeof(hints)); + + # ifdef ENABLE_IPV6 +@@ -231,6 +257,17 @@ + + DBG (1, "add_device: adding backend %s\n", name); + ++ for (nd = first_device; nd; nd = nd->next) ++ if (strcmp (nd->name, name) == 0) ++ { ++ DBG (1, "add_device: already in list\n"); ++ ++ if (ndp) ++ *ndp = nd; ++ ++ return SANE_STATUS_GOOD; ++ } ++ + he = gethostbyname (name); + if (!he) + { +@@ -656,6 +693,249 @@ + DBG (1, "do_authorization: auth_active is false... strange\n"); + } + ++ ++#ifdef WITH_AVAHI ++static void ++net_avahi_resolve_callback (AvahiServiceResolver *r, AvahiIfIndex interface, AvahiProtocol protocol, ++ AvahiResolverEvent event, const char *name, const char *type, ++ const char *domain, const char *host_name, const AvahiAddress *address, ++ uint16_t port, AvahiStringList *txt, AvahiLookupResultFlags flags, ++ void *userdata) ++{ ++ char a[AVAHI_ADDRESS_STR_MAX]; ++ char *t; ++ ++ /* unused */ ++ interface = interface; ++ protocol = protocol; ++ userdata = userdata; ++ ++ if (!r) ++ return; ++ ++ switch (event) ++ { ++ case AVAHI_RESOLVER_FAILURE: ++ DBG (1, "net_avahi_resolve_callback: failed to resolve service '%s' of type '%s' in domain '%s': %s\n", ++ name, type, domain, avahi_strerror (avahi_client_errno (avahi_service_resolver_get_client (r)))); ++ break; ++ ++ case AVAHI_RESOLVER_FOUND: ++ DBG (3, "net_avahi_resolve_callback: service '%s' of type '%s' in domain '%s':\n", name, type, domain); ++ ++ avahi_address_snprint(a, sizeof (a), address); ++ t = avahi_string_list_to_string (txt); ++ ++ DBG (3, "\t%s:%u (%s)\n\tTXT=%s\n\tcookie is %u\n\tis_local: %i\n\tour_own: %i\n" ++ "\twide_area: %i\n\tmulticast: %i\n\tcached: %i\n", ++ host_name, port, a, t, avahi_string_list_get_service_cookie (txt), ++ !!(flags & AVAHI_LOOKUP_RESULT_LOCAL), !!(flags & AVAHI_LOOKUP_RESULT_OUR_OWN), ++ !!(flags & AVAHI_LOOKUP_RESULT_WIDE_AREA), !!(flags & AVAHI_LOOKUP_RESULT_MULTICAST), ++ !!(flags & AVAHI_LOOKUP_RESULT_CACHED)); ++ ++ /* TODO: evaluate TXT record */ ++ ++ /* Try first with the name */ ++ if (add_device (host_name, NULL) != SANE_STATUS_GOOD) ++ { ++ DBG (1, "net_avahi_resolve_callback: couldn't add backend with name %s\n", host_name); ++ ++ /* Then try the raw IP address */ ++ if (add_device (t, NULL) != SANE_STATUS_GOOD) ++ DBG (1, "net_avahi_resolve_callback: couldn't add backend with IP address %s either\n", t); ++ } ++ ++ avahi_free (t); ++ break; ++ } ++ ++ avahi_service_resolver_free(r); ++} ++ ++static void ++net_avahi_browse_callback (AvahiServiceBrowser *b, AvahiIfIndex interface, AvahiProtocol protocol, ++ AvahiBrowserEvent event, const char *name, const char *type, ++ const char *domain, AvahiLookupResultFlags flags, void *userdata) ++{ ++ AvahiProtocol proto; ++ ++ /* unused */ ++ flags = flags; ++ userdata = userdata; ++ ++ if (!b) ++ return; ++ ++ switch (event) ++ { ++ case AVAHI_BROWSER_FAILURE: ++ DBG (1, "net_avahi_browse_callback: %s\n", avahi_strerror (avahi_client_errno (avahi_service_browser_get_client (b)))); ++ avahi_threaded_poll_quit (avahi_thread); ++ return; ++ ++ case AVAHI_BROWSER_NEW: ++ DBG (3, "net_avahi_browse_callback: NEW: service '%s' of type '%s' in domain '%s'\n", name, type, domain); ++ ++ /* The server will actually be added to our list in the resolver callback */ ++ ++ /* The resolver object will be freed in the resolver callback, or by ++ * the server if it terminates before the callback is called. ++ */ ++#ifdef ENABLE_IPV6 ++ proto = AVAHI_PROTO_UNSPEC; ++#else ++ proto = AVAHI_PROTO_INET; ++#endif /* ENABLE_IPV6 */ ++ if (!(avahi_service_resolver_new (avahi_client, interface, protocol, name, type, domain, proto, 0, net_avahi_resolve_callback, NULL))) ++ DBG (2, "net_avahi_browse_callback: failed to resolve service '%s': %s\n", name, avahi_strerror (avahi_client_errno (avahi_client))); ++ break; ++ ++ case AVAHI_BROWSER_REMOVE: ++ DBG (3, "net_avahi_browse_callback: REMOVE: service '%s' of type '%s' in domain '%s'\n", name, type, domain); ++ /* With the current architecture, we cannot safely remove a server from the list */ ++ break; ++ ++ case AVAHI_BROWSER_ALL_FOR_NOW: ++ case AVAHI_BROWSER_CACHE_EXHAUSTED: ++ DBG (3, "net_avahi_browse_callback: %s\n", event == AVAHI_BROWSER_CACHE_EXHAUSTED ? "CACHE_EXHAUSTED" : "ALL_FOR_NOW"); ++ break; ++ } ++} ++ ++static void ++net_avahi_callback (AvahiClient *c, AvahiClientState state, void * userdata) ++{ ++ AvahiProtocol proto; ++ int error; ++ ++ /* unused */ ++ userdata = userdata; ++ ++ if (!c) ++ return; ++ ++ switch (state) ++ { ++ case AVAHI_CLIENT_CONNECTING: ++ break; ++ ++ case AVAHI_CLIENT_S_COLLISION: ++ case AVAHI_CLIENT_S_REGISTERING: ++ case AVAHI_CLIENT_S_RUNNING: ++ if (avahi_browser) ++ return; ++ ++#ifdef ENABLE_IPV6 ++ proto = AVAHI_PROTO_UNSPEC; ++#else ++ proto = AVAHI_PROTO_INET; ++#endif /* ENABLE_IPV6 */ ++ ++ avahi_browser = avahi_service_browser_new (c, AVAHI_IF_UNSPEC, proto, SANED_SERVICE_DNS, NULL, 0, net_avahi_browse_callback, NULL); ++ if (avahi_browser == NULL) ++ { ++ DBG (1, "net_avahi_callback: could not create service browser: %s\n", avahi_strerror (avahi_client_errno (c))); ++ avahi_threaded_poll_quit (avahi_thread); ++ } ++ break; ++ ++ case AVAHI_CLIENT_FAILURE: ++ error = avahi_client_errno (c); ++ ++ if (error == AVAHI_ERR_DISCONNECTED) ++ { ++ /* Server disappeared - try to reconnect */ ++ avahi_client_free (avahi_client); ++ avahi_client = NULL; ++ ++ if (avahi_browser) ++ { ++ avahi_service_browser_free (avahi_browser); ++ avahi_browser = NULL; ++ } ++ ++ avahi_client = avahi_client_new (avahi_threaded_poll_get (avahi_thread), AVAHI_CLIENT_NO_FAIL, net_avahi_callback, NULL, &error); ++ if (avahi_client == NULL) ++ { ++ DBG (1, "net_avahi_init: could not create Avahi client: %s\n", avahi_strerror (error)); ++ avahi_threaded_poll_quit (avahi_thread); ++ } ++ } ++ else ++ { ++ /* Another error happened - game over */ ++ DBG (1, "net_avahi_callback: server connection failure: %s\n", avahi_strerror (error)); ++ avahi_threaded_poll_quit (avahi_thread); ++ } ++ break; ++ } ++} ++ ++ ++static void ++net_avahi_init (void) ++{ ++ int error; ++ ++ avahi_thread = avahi_threaded_poll_new (); ++ if (avahi_thread == NULL) ++ { ++ DBG (1, "net_avahi_init: could not create threaded poll object\n"); ++ goto fail; ++ } ++ ++ avahi_client = avahi_client_new (avahi_threaded_poll_get (avahi_thread), AVAHI_CLIENT_NO_FAIL, net_avahi_callback, NULL, &error); ++ if (avahi_client == NULL) ++ { ++ DBG (1, "net_avahi_init: could not create Avahi client: %s\n", avahi_strerror (error)); ++ goto fail; ++ } ++ ++ if (avahi_threaded_poll_start (avahi_thread) < 0) ++ { ++ DBG (1, "net_avahi_init: Avahi thread failed to start\n"); ++ goto fail; ++ } ++ ++ /* All done */ ++ return; ++ ++ fail: ++ DBG (1, "net_avahi_init: Avahi init failed, support disabled\n"); ++ ++ if (avahi_client) ++ { ++ avahi_client_free (avahi_client); ++ avahi_client = NULL; ++ } ++ ++ if (avahi_thread) ++ { ++ avahi_threaded_poll_free (avahi_thread); ++ avahi_thread = NULL; ++ } ++} ++ ++static void ++net_avahi_cleanup (void) ++{ ++ if (!avahi_thread) ++ return; ++ ++ avahi_threaded_poll_lock (avahi_thread); ++ avahi_threaded_poll_stop (avahi_thread); ++ ++ if (avahi_browser) ++ avahi_service_browser_free (avahi_browser); ++ ++ if (avahi_client) ++ avahi_client_free (avahi_client); ++ ++ avahi_threaded_poll_free (avahi_thread); ++} ++#endif /* WITH_AVAHI */ ++ ++ + SANE_Status + sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize) + { +@@ -676,9 +956,13 @@ + DBG (2, "sane_init: authorize = %p, version_code = %p\n", (void *) authorize, + (void *) version_code); + +- devlist = 0; +- first_device = 0; +- first_handle = 0; ++ devlist = NULL; ++ first_device = NULL; ++ first_handle = NULL; ++ ++#ifdef WITH_AVAHI ++ net_avahi_init (); ++#endif /* WITH_AVAHI */ + + auth_callback = authorize; + +@@ -833,6 +1117,10 @@ + + DBG (1, "sane_exit: exiting\n"); + ++#ifdef WITH_AVAHI ++ net_avahi_cleanup (); ++#endif /* WITH_AVAHI */ ++ + /* first, close all handles: */ + for (handle = first_handle; handle; handle = next_handle) + { +@@ -1439,6 +1727,10 @@ + break; + } + ++ /* Avoid leaking memory bits */ ++ if (value && (action != SANE_ACTION_SET_VALUE)) ++ memset (value, 0, value_size); ++ + /* for SET_AUTO the parameter ``value'' is ignored */ + if (action == SANE_ACTION_SET_AUTO) + value_size = 0; +diff -urNad sane-backends-1.0.19~/configure sane-backends-1.0.19/configure +--- sane-backends-1.0.19~/configure 2008-08-05 12:10:05.216083078 +0200 ++++ sane-backends-1.0.19/configure 2008-08-05 12:10:07.166087314 +0200 +@@ -858,6 +858,9 @@ + HAVE_GPHOTO2 + GPHOTO2_LDFLAGS + LIBGPHOTO2 ++PKG_CONFIG ++AVAHI_CFLAGS ++AVAHI_LIBS + INSTALL_LOCKPATH + LOCKPATH_GROUP + ALLOCA +@@ -902,6 +905,9 @@ + LIBS + CPPFLAGS + CPP ++PKG_CONFIG ++AVAHI_CFLAGS ++AVAHI_LIBS + CXX + CXXFLAGS + CCC +@@ -1490,6 +1496,7 @@ + --enable-warnings turn on tons of compiler warnings (GCC only) + --enable-fork-process use fork instead of pthread (default=no for MacOS X, + yes for everything else) ++ --enable-avahi enable Avahi support for saned and the net backend + --enable-locking activate device locking (default=yes, but only used + by some backends) + --disable-libusb disable support for libusb +@@ -1534,6 +1541,10 @@ + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor ++ PKG_CONFIG path to pkg-config utility ++ AVAHI_CFLAGS ++ C compiler flags for AVAHI, overriding pkg-config ++ AVAHI_LIBS linker flags for AVAHI, overriding pkg-config + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor +@@ -8126,6 +8137,214 @@ + + + ++# Check whether --enable-avahi was given. ++if test "${enable_avahi+set}" = set; then ++ enableval=$enable_avahi; enable_avahi=$enableval ++else ++ enable_avahi=no ++fi ++ ++ ++if test "$enable_avahi" = "yes"; then ++ ++ ++if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. ++set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } ++if test "${ac_cv_path_PKG_CONFIG+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ case $PKG_CONFIG in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ++ ;; ++ *) ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++ ;; ++esac ++fi ++PKG_CONFIG=$ac_cv_path_PKG_CONFIG ++if test -n "$PKG_CONFIG"; then ++ { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 ++echo "${ECHO_T}$PKG_CONFIG" >&6; } ++else ++ { echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_path_PKG_CONFIG"; then ++ ac_pt_PKG_CONFIG=$PKG_CONFIG ++ # Extract the first word of "pkg-config", so it can be a program name with args. ++set dummy pkg-config; ac_word=$2 ++{ echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } ++if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ case $ac_pt_PKG_CONFIG in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ++ ;; ++ *) ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++ ;; ++esac ++fi ++ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG ++if test -n "$ac_pt_PKG_CONFIG"; then ++ { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 ++echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; } ++else ++ { echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6; } ++fi ++ ++ if test "x$ac_pt_PKG_CONFIG" = x; then ++ PKG_CONFIG="" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools ++whose name does not start with the host triplet. If you think this ++configuration is useful to you, please write to autoconf@gnu.org." >&5 ++echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools ++whose name does not start with the host triplet. If you think this ++configuration is useful to you, please write to autoconf@gnu.org." >&2;} ++ac_tool_warned=yes ;; ++esac ++ PKG_CONFIG=$ac_pt_PKG_CONFIG ++ fi ++else ++ PKG_CONFIG="$ac_cv_path_PKG_CONFIG" ++fi ++ ++fi ++if test -n "$PKG_CONFIG"; then ++ _pkg_min_version=0.9.0 ++ { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 ++echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; } ++ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then ++ { echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6; } ++ else ++ { echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6; } ++ PKG_CONFIG="" ++ fi ++ ++fi ++ ++pkg_failed=no ++{ echo "$as_me:$LINENO: checking for AVAHI" >&5 ++echo $ECHO_N "checking for AVAHI... $ECHO_C" >&6; } ++ ++if test -n "$PKG_CONFIG"; then ++ if test -n "$AVAHI_CFLAGS"; then ++ pkg_cv_AVAHI_CFLAGS="$AVAHI_CFLAGS" ++ else ++ if test -n "$PKG_CONFIG" && \ ++ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \" avahi-client >= 0.6.4 \"") >&5 ++ ($PKG_CONFIG --exists --print-errors " avahi-client >= 0.6.4 ") 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ pkg_cv_AVAHI_CFLAGS=`$PKG_CONFIG --cflags " avahi-client >= 0.6.4 " 2>/dev/null` ++else ++ pkg_failed=yes ++fi ++ fi ++else ++ pkg_failed=untried ++fi ++if test -n "$PKG_CONFIG"; then ++ if test -n "$AVAHI_LIBS"; then ++ pkg_cv_AVAHI_LIBS="$AVAHI_LIBS" ++ else ++ if test -n "$PKG_CONFIG" && \ ++ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \" avahi-client >= 0.6.4 \"") >&5 ++ ($PKG_CONFIG --exists --print-errors " avahi-client >= 0.6.4 ") 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ pkg_cv_AVAHI_LIBS=`$PKG_CONFIG --libs " avahi-client >= 0.6.4 " 2>/dev/null` ++else ++ pkg_failed=yes ++fi ++ fi ++else ++ pkg_failed=untried ++fi ++ ++ ++ ++if test $pkg_failed = yes; then ++ ++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then ++ _pkg_short_errors_supported=yes ++else ++ _pkg_short_errors_supported=no ++fi ++ if test $_pkg_short_errors_supported = yes; then ++ AVAHI_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " avahi-client >= 0.6.4 "` ++ else ++ AVAHI_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " avahi-client >= 0.6.4 "` ++ fi ++ # Put the nasty error message in config.log where it belongs ++ echo "$AVAHI_PKG_ERRORS" >&5 ++ ++ { echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6; } ++ enable_avahi=no ++elif test $pkg_failed = untried; then ++ enable_avahi=no ++else ++ AVAHI_CFLAGS=$pkg_cv_AVAHI_CFLAGS ++ AVAHI_LIBS=$pkg_cv_AVAHI_LIBS ++ { echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6; } ++ ++cat >>confdefs.h <<\_ACEOF ++#define WITH_AVAHI 1 ++_ACEOF ++ ++ CFLAGS="${CFLAGS} ${AVAHI_CFLAGS}" ++fi ++fi ++ ++ + + LOCKPATH_GROUP=uucp + use_locking=yes +@@ -12445,7 +12664,7 @@ + ;; + *-*-irix6*) + # Find out which ABI we are using. +- echo '#line 12448 "configure"' > conftest.$ac_ext ++ echo '#line 12667 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +@@ -14888,11 +15107,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:14891: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:15110: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:14895: \$? = $ac_status" >&5 ++ echo "$as_me:15114: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -15156,11 +15375,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:15159: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:15378: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:15163: \$? = $ac_status" >&5 ++ echo "$as_me:15382: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -15260,11 +15479,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:15263: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:15482: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:15267: \$? = $ac_status" >&5 ++ echo "$as_me:15486: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -17568,7 +17787,7 @@ + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < conftest.$ac_ext <&5) ++ (eval echo "\"\$as_me:20230: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:20015: \$? = $ac_status" >&5 ++ echo "$as_me:20234: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -20112,11 +20331,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:20115: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:20334: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:20119: \$? = $ac_status" >&5 ++ echo "$as_me:20338: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -21682,11 +21901,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:21685: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:21904: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:21689: \$? = $ac_status" >&5 ++ echo "$as_me:21908: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -21786,11 +22005,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:21789: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:22008: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:21793: \$? = $ac_status" >&5 ++ echo "$as_me:22012: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -23988,11 +24207,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:23991: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:24210: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:23995: \$? = $ac_status" >&5 ++ echo "$as_me:24214: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -24256,11 +24475,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:24259: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:24478: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:24263: \$? = $ac_status" >&5 ++ echo "$as_me:24482: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -24360,11 +24579,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:24363: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:24582: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:24367: \$? = $ac_status" >&5 ++ echo "$as_me:24586: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -27988,13 +28207,13 @@ + HAVE_GPHOTO2!$HAVE_GPHOTO2$ac_delim + GPHOTO2_LDFLAGS!$GPHOTO2_LDFLAGS$ac_delim + LIBGPHOTO2!$LIBGPHOTO2$ac_delim ++PKG_CONFIG!$PKG_CONFIG$ac_delim ++AVAHI_CFLAGS!$AVAHI_CFLAGS$ac_delim ++AVAHI_LIBS!$AVAHI_LIBS$ac_delim + INSTALL_LOCKPATH!$INSTALL_LOCKPATH$ac_delim + LOCKPATH_GROUP!$LOCKPATH_GROUP$ac_delim + ALLOCA!$ALLOCA$ac_delim + LIBOBJS!$LIBOBJS$ac_delim +-LIBUSB!$LIBUSB$ac_delim +-LN_S!$LN_S$ac_delim +-ECHO!$ECHO$ac_delim + _ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then +@@ -28036,6 +28255,9 @@ + ac_delim='%!_!# ' + for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF ++LIBUSB!$LIBUSB$ac_delim ++LN_S!$LN_S$ac_delim ++ECHO!$ECHO$ac_delim + AR!$AR$ac_delim + RANLIB!$RANLIB$ac_delim + STRIP!$STRIP$ac_delim +@@ -28065,7 +28287,7 @@ + LTLIBOBJS!$LTLIBOBJS$ac_delim + _ACEOF + +- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 27; then ++ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 30; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +@@ -28524,6 +28746,7 @@ + echo "Build saned: no" + fi + echo "IPv6 support: `eval eval echo ${ipv6}`" ++echo "Avahi support: `eval eval echo ${enable_avahi}`" + echo "-> The following backends will be built:" + for backend in ${BACKENDS} ; do + echo $ECHO_N "${backend} " +diff -urNad sane-backends-1.0.19~/configure.in sane-backends-1.0.19/configure.in +--- sane-backends-1.0.19~/configure.in 2008-08-05 12:10:05.191083342 +0200 ++++ sane-backends-1.0.19/configure.in 2008-08-05 12:10:07.167083310 +0200 +@@ -129,6 +129,18 @@ + SANE_CHECK_GPHOTO2 + AC_SUBST(LIBGPHOTO2) + ++AC_ARG_ENABLE(avahi, ++ AC_HELP_STRING([--enable-avahi], [enable Avahi support for saned and the net backend]), ++ [enable_avahi=$enableval], [enable_avahi=no]) ++ ++if test "$enable_avahi" = "yes"; then ++ PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.4 ], ++ [ AC_DEFINE(WITH_AVAHI, 1, [define if Avahi support is enabled for saned and the net backend]) ++ CFLAGS="${CFLAGS} ${AVAHI_CFLAGS}" ], ++ [ enable_avahi=no ]) ++fi ++AC_SUBST(AVAHI_LIBS) ++ + SANE_CHECK_LOCKING + + dnl check sane to make sure we don't have two installations +@@ -607,6 +619,7 @@ + echo "Build saned: no" + fi + echo "IPv6 support: `eval eval echo ${ipv6}`" ++echo "Avahi support: `eval eval echo ${enable_avahi}`" + echo "-> The following backends will be built:" + for backend in ${BACKENDS} ; do + echo $ECHO_N "${backend} " +diff -urNad sane-backends-1.0.19~/doc/saned.man sane-backends-1.0.19/doc/saned.man +--- sane-backends-1.0.19~/doc/saned.man 2008-08-05 12:10:04.983083394 +0200 ++++ sane-backends-1.0.19/doc/saned.man 2008-08-05 12:10:07.168083819 +0200 +@@ -4,8 +4,13 @@ + saned \- SANE network daemon + .SH SYNOPSIS + .B saned +-.RB [ \-d | \-s +-.RI [ n ]] ++.B [ \-a ++.I [ username ] ++.B | \-d ++.I [ n ] ++.B | \-s ++.I [ n ] ++.B ] + .SH DESCRIPTION + .B saned + is the SANE (Scanner Access Now Easy) daemon that allows remote clients +@@ -13,6 +18,25 @@ + .SH OPTIONS + .PP + The ++.B \-a ++flag requests that ++.B saned ++run in standalone daemon mode. In this mode, ++.B saned ++will detach from the console and run in the background, listening for incoming ++client connections; ++.B inetd ++is not required for ++.B saned ++operations in this mode. If the optional ++.B username ++is given after ++.B \-a ++, ++.B saned ++will drop root privileges and run as this user (and group). ++.PP ++The + .B \-d + and + .B \-s +@@ -80,10 +104,11 @@ + .PP + The case of the host names does not matter, so AHost.COM is considered + identical to ahost.com. +- ++.SH INETD CONFIGURATION + For + .B saned +-to work properly, it is also necessary to add a configuration line to ++to work properly in its default mode of operation, it is also necessary to add ++a configuration line to + .IR /etc/inetd.conf . + Note that your inetd must support IPv6 if you + want to connect to saned over IPv6 ; xinetd and openbsd-inetd are known to +@@ -152,7 +177,11 @@ + is now deprecated. + + .SH "RESTRICTIONS" +-In addition to the control connection (port 6566) saned also uses a data ++In addition to the control connection (port ++.B 6566 ++) ++.B saned ++also uses a data + connection. The port of this socket is selected by the operating system and + can't be specified by the user currently. This may be a problem if the + connection must go through a firewall (packet filter). If you must use a packet +diff -urNad sane-backends-1.0.19~/frontend/Makefile.in sane-backends-1.0.19/frontend/Makefile.in +--- sane-backends-1.0.19~/frontend/Makefile.in 2008-08-05 12:05:02.000000000 +0200 ++++ sane-backends-1.0.19/frontend/Makefile.in 2008-08-05 12:10:07.168083819 +0200 +@@ -95,7 +95,7 @@ + + saned: saned.o $(LIBSANEI) $(LIBSANE) $(LIBLIB) + @$(LIBTOOL) $(MLINK) $(LINK) saned.o $(LIBSANEI) $(LIBLIB) $(LIBSANE) \ +- $(LIBS) ++ $(LIBS) @AVAHI_LIBS@ + + scanimage: $(SCAN_OBJS) $(LIBSANE) $(LIBLIB) + @$(LIBTOOL) $(MLINK) $(LINK) $(SCAN_OBJS) $(LIBLIB) $(LIBSANE) $(LIBS) +diff -urNad sane-backends-1.0.19~/frontend/saned.c sane-backends-1.0.19/frontend/saned.c +--- sane-backends-1.0.19~/frontend/saned.c 2008-08-05 12:05:02.000000000 +0200 ++++ sane-backends-1.0.19/frontend/saned.c 2008-08-05 12:10:28.459083470 +0200 +@@ -1,8 +1,8 @@ + /* sane - Scanner Access Now Easy. + Copyright (C) 1997 Andreas Beck + Copyright (C) 2001 - 2004 Henning Meier-Geinitz +- Copyright (C) 2003 Julien BLACHE +- AF-independent + IPv6 code ++ Copyright (C) 2003, 2008 Julien BLACHE ++ AF-independent + IPv6 code, standalone mode + + This file is part of the SANE package. + +@@ -76,13 +76,18 @@ + #include + #include + +-#ifdef SANED_USES_AF_INDEP +-# if defined(HAVE_SYS_POLL_H) && defined(HAVE_POLL) +-# include +-# else ++#include ++ ++#include ++#include ++ ++ ++#if defined(HAVE_SYS_POLL_H) && defined(HAVE_POLL) ++# include ++#else + /* + * This replacement poll() using select() is only designed to cover +- * our needs in main(). It should probably be extended... ++ * our needs in run_standalone(). It should probably be extended... + */ + struct pollfd + { +@@ -92,34 +97,44 @@ + }; + + #define POLLIN 0x0001 ++#define POLLERR 0x0002 ++ ++int ++poll (struct pollfd *ufds, unsigned int nfds, int timeout); + + int + poll (struct pollfd *ufds, unsigned int nfds, int timeout) + { + struct pollfd *fdp; + +- fd_set fds; ++ fd_set rfds; ++ fd_set efds; ++ struct timeval tv; + int maxfd = 0; + unsigned int i; + int ret; + +- /* unused */ +- timeout = timeout; ++ tv.tv_sec = timeout / 1000; ++ tv.tv_usec = (timeout - tv.tv_sec * 1000) * 1000; + +- FD_ZERO (&fds); ++ FD_ZERO (&rfds); ++ FD_ZERO (&efds); + + for (i = 0, fdp = ufds; i < nfds; i++, fdp++) + { ++ fdp->revents = 0; ++ + if (fdp->events & POLLIN) +- { +- FD_SET (fdp->fd, &fds); +- maxfd = (fdp->fd > maxfd) ? fdp->fd : maxfd; +- } ++ FD_SET (fdp->fd, &rfds); ++ ++ FD_SET (fdp->fd, &efds); ++ ++ maxfd = (fdp->fd > maxfd) ? fdp->fd : maxfd; + } +- ++ + maxfd++; + +- ret = select (maxfd, &fds, NULL, NULL, NULL); ++ ret = select (maxfd, &rfds, NULL, &efds, &tv); + + if (ret < 0) + return ret; +@@ -127,14 +142,38 @@ + for (i = 0, fdp = ufds; i < nfds; i++, fdp++) + { + if (fdp->events & POLLIN) +- if (FD_ISSET (fdp->fd, &fds)) +- fdp->revents = POLLIN; ++ if (FD_ISSET (fdp->fd, &rfds)) ++ fdp->revents |= POLLIN; ++ ++ if (FD_ISSET (fdp->fd, &efds)) ++ fdp->revents |= POLLERR; + } + + return ret; + } +-# endif /* HAVE_SYS_POLL_H && HAVE_POLL */ +-#endif /* SANED_USES_AF_INDEP */ ++#endif /* HAVE_SYS_POLL_H && HAVE_POLL */ ++ ++#ifdef WITH_AVAHI ++# include ++# include ++ ++# include ++# include ++# include ++# include ++ ++# define SANED_SERVICE_DNS "_sane-port._tcp" ++# define SANED_NAME "saned" ++ ++pid_t avahi_pid = -1; ++ ++char *avahi_svc_name; ++ ++static AvahiClient *avahi_client = NULL; ++static AvahiSimplePoll *avahi_poll = NULL; ++static AvahiEntryGroup *avahi_group = NULL; ++#endif /* WITH_AVAHI */ ++ + + #include "../include/sane/sane.h" + #include "../include/sane/sanei.h" +@@ -169,7 +208,19 @@ + # define MAXHOSTNAMELEN 120 + #endif + ++struct saned_child { ++ pid_t pid; ++ struct saned_child *next; ++}; ++struct saned_child *children; ++int numchildren; ++ + #define SANED_CONFIG_FILE "saned.conf" ++#define SANED_PID_FILE "/var/run/saned.pid" ++ ++#define SANED_SERVICE_NAME "sane-port" ++#define SANED_SERVICE_PORT 6566 ++#define SANED_SERVICE_PORT_S "6566" + + typedef struct + { +@@ -186,6 +237,7 @@ + static Wire wire; + static int num_handles; + static int debug; ++static int run_mode; + static Handle *handle; + static union + { +@@ -218,7 +270,12 @@ + static SANE_Bool log_to_syslog = SANE_TRUE; + + /* forward declarations: */ +-static void process_request (Wire * w); ++static int process_request (Wire * w); ++ ++#define SANED_RUN_INETD 0 ++#define SANED_RUN_DEBUG 1 ++#define SANED_RUN_ALONE 2 ++ + + #define DBG_ERR 1 + #define DBG_WARN 2 +@@ -399,7 +456,8 @@ + if (handle) + free (handle); + DBG (DBG_WARN, "quit: exiting\n"); +- closelog (); ++ if (log_to_syslog) ++ closelog (); + exit (EXIT_SUCCESS); /* This is a nowait-daemon. */ + } + +@@ -1667,7 +1725,7 @@ + handle[h].scanning = 0; + } + +-static void ++static int + process_request (Wire * w) + { + SANE_Handle be_handle; +@@ -1682,7 +1740,7 @@ + { + DBG (DBG_ERR, + "process_request: bad status %d\n", w->status); +- quit (0); ++ return -1; + } + + current_request = word; +@@ -1714,7 +1772,7 @@ + DBG (DBG_ERR, + "process_request: (open) error while decoding args (%s)\n", + strerror (w->status)); +- return; ++ return 1; + } + + if (!name) +@@ -1722,7 +1780,7 @@ + DBG (DBG_ERR, "process_request: (open) device_name == NULL\n"); + reply.status = SANE_STATUS_INVAL; + sanei_w_reply (w, (WireCodecFunc) sanei_w_open_reply, &reply); +- return; ++ return 1; + } + + can_authorize = 1; +@@ -1756,7 +1814,6 @@ + } + + resource = strdup (device_list[0]->name); +- + } + + if (strchr (resource, ':')) +@@ -1817,7 +1874,7 @@ + + h = decode_handle (w, "get_option_descriptors"); + if (h < 0) +- return; ++ return 1; + be_handle = handle[h].handle; + sane_control_option (be_handle, 0, SANE_ACTION_GET_VALUE, + &opt.num_options, 0); +@@ -1844,10 +1901,10 @@ + || !handle[req.handle].inuse) + { + DBG (DBG_ERR, +- "process_rquest: (control_option) " ++ "process_request: (control_option) " + "error while decoding args h=%d (%s)\n" + , req.handle, strerror (w->status)); +- return; ++ return 1; + } + + can_authorize = 1; +@@ -1875,7 +1932,7 @@ + + h = decode_handle (w, "get_parameters"); + if (h < 0) +- return; ++ return 1; + be_handle = handle[h].handle; + + reply.status = sane_get_parameters (be_handle, &reply.params); +@@ -1892,7 +1949,7 @@ + + h = decode_handle (w, "start"); + if (h < 0) +- return; ++ return 1; + + memset (&reply, 0, sizeof (reply)); /* avoid leaking bits */ + reply.byte_order = SANE_NET_LITTLE_ENDIAN; +@@ -1924,7 +1981,7 @@ + { + DBG (DBG_ERR, "process_request: getpeername failed: %s\n", + strerror (errno)); +- return; ++ return 1; + } + + error = getnameinfo ((struct sockaddr *) &ss, len, text_addr, +@@ -1933,7 +1990,7 @@ + { + DBG (DBG_ERR, "process_request: getnameinfo failed: %s\n", + gai_strerror (error)); +- return; ++ return 1; + } + + DBG (DBG_MSG, "process_request: access to data port from %s\n", +@@ -1946,7 +2003,7 @@ + DBG (DBG_ERR, "process_request: configuration problem or attack?\n"); + close (data_fd); + data_fd = -1; +- quit (0); ++ return -1; + } + + #else /* !SANED_USES_AF_INDEP */ +@@ -1967,7 +2024,7 @@ + { + DBG (DBG_ERR, "process_request: getpeername failed: %s\n", + strerror (errno)); +- return; ++ return 1; + } + + if (memcmp (&remote_address, &sin.sin_addr, +@@ -1983,7 +2040,7 @@ + "process_request: configuration problem or attack?\n"); + close (data_fd); + data_fd = -1; +- quit (0); ++ return -1; + } + else + DBG (DBG_MSG, "process_request: access to data port from %s\n", +@@ -1997,7 +2054,7 @@ + handle[h].docancel = 0; + DBG (DBG_ERR, "process_request: accept failed! (%s)\n", + strerror (errno)); +- return; ++ return 1; + } + fcntl (data_fd, F_SETFL, 1); /* set non-blocking */ + shutdown (data_fd, 0); +@@ -2022,7 +2079,7 @@ + break; + + case SANE_NET_EXIT: +- quit (0); ++ return -1; + break; + + case SANE_NET_INIT: +@@ -2031,278 +2088,882 @@ + DBG (DBG_ERR, + "process_request: received unexpected procedure number %d\n", + current_request); +- quit (0); ++ return -1; + } ++ ++ return 0; + } + +-#ifdef SANED_USES_AF_INDEP +-int +-main (int argc, char *argv[]) ++ ++static int ++wait_child (pid_t pid, int *status, int options) ++{ ++ struct saned_child *c; ++ struct saned_child *p = NULL; ++ int ret; ++ ++ ret = waitpid(pid, status, options); ++ ++ if (ret <= 0) ++ return ret; ++ ++#ifdef WITH_AVAHI ++ if ((avahi_pid > 0) && (ret == avahi_pid)) ++ { ++ avahi_pid = -1; ++ numchildren--; ++ return ret; ++ } ++#endif /* WITH_AVAHI */ ++ ++ for (c = children; (c != NULL) && (c->next != NULL); p = c, c = c->next) ++ { ++ if (c->pid == ret) ++ { ++ if (c == children) ++ children = c->next; ++ else if (p != NULL) ++ p->next = c->next; ++ ++ free(c); ++ ++ numchildren--; ++ ++ break; ++ } ++ } ++ ++ return ret; ++} ++ ++static int ++add_child (pid_t pid) ++{ ++ struct saned_child *c; ++ ++ c = (struct saned_child *) malloc (sizeof(struct saned_child)); ++ ++ if (c == NULL) ++ { ++ DBG (DBG_ERR, "add_child: out of memory\n"); ++ return -1; ++ } ++ ++ c->pid = pid; ++ c->next = children; ++ ++ children = c; ++ ++ return 0; ++} ++ ++ ++static void ++handle_connection (int fd) + { +- int fd = -1; +- int on = 1; + #ifdef TCP_NODELAY + int level = -1; + #endif + +- debug = DBG_WARN; +- openlog ("saned", LOG_PID | LOG_CONS, LOG_DAEMON); ++ DBG (DBG_DBG, "handle_connection: processing client connection\n"); + +- prog_name = strrchr (argv[0], '/'); +- if (prog_name) +- ++prog_name; ++ wire.io.fd = fd; ++ ++ signal (SIGALRM, quit); ++ signal (SIGPIPE, quit); ++ ++#ifdef TCP_NODELAY ++# ifdef SOL_TCP ++ level = SOL_TCP; ++# else /* !SOL_TCP */ ++ /* Look up the protocol level in the protocols database. */ ++ { ++ struct protoent *p; ++ p = getprotobyname ("tcp"); ++ if (p == 0) ++ { ++ DBG (DBG_WARN, "handle_connection: cannot look up `tcp' protocol number"); ++ } ++ else ++ level = p->p_proto; ++ } ++# endif /* SOL_TCP */ ++ if (level == -1 ++ || setsockopt (wire.io.fd, level, TCP_NODELAY, &on, sizeof (on))) ++ DBG (DBG_WARN, "handle_connection: failed to put socket in TCP_NODELAY mode (%s)", ++ strerror (errno)); ++#endif /* !TCP_NODELAY */ ++ ++ if (init (&wire) < 0) ++ return; ++ ++ while (1) ++ { ++ reset_watchdog (); ++ if (process_request (&wire) < 0) ++ break; ++ } ++} ++ ++static void ++handle_client (int fd) ++{ ++ pid_t pid; ++ int i; ++ ++ DBG (DBG_DBG, "handle_client: spawning child process\n"); ++ ++ pid = fork (); ++ if (pid == 0) ++ { ++ /* child */ ++ if (log_to_syslog) ++ closelog(); ++ ++ for (i = 3; i < fd; i++) ++ close(i); ++ ++ if (log_to_syslog) ++ openlog ("saned", LOG_PID | LOG_CONS, LOG_DAEMON); ++ ++ handle_connection (fd); ++ quit (0); ++ } ++ else if (pid > 0) ++ { ++ /* parent */ ++ add_child (pid); ++ close(fd); ++ } + else +- prog_name = argv[0]; ++ { ++ /* FAILED */ ++ DBG (DBG_ERR, "handle_client: fork() failed: %s\n", strerror (errno)); ++ close(fd); ++ } ++} + +- byte_order.w = 0; +- byte_order.ch = 1; ++static void ++bail_out (int error) ++{ ++ DBG (DBG_ERR, "%sbailing out, waiting for children...\n", (error) ? "FATAL ERROR; " : ""); + +- sanei_w_init (&wire, sanei_codec_bin_init); +- wire.io.read = read; +- wire.io.write = write; ++#ifdef WITH_AVAHI ++ if (avahi_pid > 0) ++ kill (avahi_pid, SIGTERM); ++#endif /* WITH_AVAHI */ + +- if (argc == 2 && +- (strncmp (argv[1], "-d", 2) == 0 || strncmp (argv[1], "-s", 2) == 0)) ++ while (numchildren > 0) ++ wait_child (-1, NULL, 0); ++ ++ DBG (DBG_ERR, "bail_out: all children exited\n"); ++ ++ exit ((error) ? 1 : 0); ++} ++ ++void ++sig_int_term_handler (int signum); ++ ++void ++sig_int_term_handler (int signum) ++{ ++ /* unused */ ++ signum = signum; ++ ++ signal (SIGINT, NULL); ++ signal (SIGTERM, NULL); ++ ++ bail_out (0); ++} ++ ++ ++#ifdef WITH_AVAHI ++static void ++saned_avahi (void); ++ ++static void ++saned_create_avahi_services (AvahiClient *c); ++ ++static void ++saned_avahi_callback (AvahiClient *c, AvahiClientState state, void *userdata); ++ ++static void ++saned_avahi_group_callback (AvahiEntryGroup *g, AvahiEntryGroupState state, void *userdata); ++ ++ ++static void ++saned_avahi (void) ++{ ++ int error; ++ ++ avahi_pid = fork (); ++ ++ if (avahi_pid > 0) + { +- /* don't operate in daemon mode: wait for connection request: */ +- struct addrinfo *res; +- struct addrinfo *resp; +- struct addrinfo hints; +- struct pollfd *fds = NULL; +- struct pollfd *fdp = NULL; +- int nfds; +- int err; +- int i; +- short sane_port; +- int family; ++ numchildren++; ++ return; ++ } ++ else if (avahi_pid < 0) ++ { ++ DBG (DBG_ERR, "saned_avahi: could not spawn Avahi process: %s\n", strerror (errno)); ++ return; ++ } + +- if (argv[1][2]) +- debug = atoi (argv[1] + 2); +- if (strncmp (argv[1], "-d", 2) == 0) +- log_to_syslog = SANE_FALSE; ++ signal (SIGINT, NULL); ++ signal (SIGTERM, NULL); + +- DBG (DBG_WARN, "main: starting debug mode (level %d)\n", debug); ++ avahi_svc_name = avahi_strdup(SANED_NAME); + +- DBG (DBG_DBG, +- "main: trying to get port for service `sane-port' (getaddrinfo)\n"); ++ avahi_poll = avahi_simple_poll_new (); ++ if (avahi_poll == NULL) ++ { ++ DBG (DBG_ERR, "saned_avahi: failed to create simple poll object\n"); ++ goto fail; ++ } + +- memset (&hints, 0, sizeof (struct addrinfo)); ++ avahi_client = avahi_client_new (avahi_simple_poll_get (avahi_poll), AVAHI_CLIENT_NO_FAIL, saned_avahi_callback, NULL, &error); ++ if (avahi_client == NULL) ++ { ++ DBG (DBG_ERR, "saned_avahi: failed to create client: %s\n", avahi_strerror (error)); ++ goto fail; ++ } + +- hints.ai_family = PF_UNSPEC; +- hints.ai_flags = AI_PASSIVE; +- hints.ai_socktype = SOCK_STREAM; ++ avahi_simple_poll_loop (avahi_poll); + +- err = getaddrinfo (NULL, "sane-port", &hints, &res); +- if (err) ++ return; ++ ++ fail: ++ if (avahi_client) ++ avahi_client_free (avahi_client); ++ ++ if (avahi_poll) ++ avahi_simple_poll_free (avahi_poll); ++ ++ avahi_free (avahi_svc_name); ++} ++ ++static void ++saned_avahi_group_callback (AvahiEntryGroup *g, AvahiEntryGroupState state, void *userdata) ++{ ++ char *n; ++ ++ /* unused */ ++ userdata = userdata; ++ ++ if ((!g) || (g != avahi_group)) ++ return; ++ ++ switch (state) ++ { ++ case AVAHI_ENTRY_GROUP_ESTABLISHED: ++ /* The entry group has been established successfully */ ++ DBG (DBG_INFO, "saned_avahi_group_callback: service '%s' successfully established\n", avahi_svc_name); ++ break; ++ ++ case AVAHI_ENTRY_GROUP_COLLISION: ++ /* A service name collision with a remote service ++ * happened. Let's pick a new name */ ++ n = avahi_alternative_service_name (avahi_svc_name); ++ avahi_free (avahi_svc_name); ++ avahi_svc_name = n; ++ ++ DBG (DBG_WARN, "saned_avahi_group_callback: service name collision, renaming service to '%s'\n", avahi_svc_name); ++ ++ /* And recreate the services */ ++ saned_create_avahi_services (avahi_entry_group_get_client (g)); ++ break; ++ ++ case AVAHI_ENTRY_GROUP_FAILURE : ++ DBG (DBG_ERR, "saned_avahi_group_callback: entry group failure: %s\n", avahi_strerror (avahi_client_errno (avahi_entry_group_get_client (g)))); ++ ++ /* Some kind of failure happened while we were registering our services */ ++ avahi_simple_poll_quit (avahi_poll); ++ break; ++ ++ case AVAHI_ENTRY_GROUP_UNCOMMITED: ++ case AVAHI_ENTRY_GROUP_REGISTERING: ++ break; ++ } ++} ++ ++static void ++saned_create_avahi_services (AvahiClient *c) ++{ ++ char *n; ++ char txt[32]; ++ AvahiProtocol proto; ++ int ret; ++ ++ if (!c) ++ return; ++ ++ if (!avahi_group) ++ { ++ avahi_group = avahi_entry_group_new (c, saned_avahi_group_callback, NULL); ++ if (avahi_group == NULL) + { +- DBG (DBG_WARN, "main: \"sane-port\" service unknown on your host; you should add\n"); +- DBG (DBG_WARN, "main: sane-port 6566/tcp saned # SANE network scanner daemon\n"); +- DBG (DBG_WARN, "main: to your /etc/services file (or equivalent). Proceeding anyway.\n"); +- err = getaddrinfo (NULL, "6566", &hints, &res); +- if (err) ++ DBG (DBG_ERR, "saned_create_avahi_services: avahi_entry_group_new() failed: %s\n", avahi_strerror (avahi_client_errno (c))); ++ goto fail; ++ } ++ } ++ ++ if (avahi_entry_group_is_empty (avahi_group)) ++ { ++ DBG (DBG_INFO, "saned_create_avahi_services: adding service '%s'\n", avahi_svc_name); ++ ++ snprintf(txt, sizeof (txt), "protovers=%x", SANE_VERSION_CODE (V_MAJOR, V_MINOR, SANEI_NET_PROTOCOL_VERSION)); ++ ++#ifdef ENABLE_IPV6 ++ proto = AVAHI_PROTO_UNSPEC; ++#else ++ proto = AVAHI_PROTO_INET; ++#endif /* ENABLE_IPV6 */ ++ ++ ret = avahi_entry_group_add_service (avahi_group, AVAHI_IF_UNSPEC, proto, 0, avahi_svc_name, SANED_SERVICE_DNS, NULL, NULL, SANED_SERVICE_PORT, txt, NULL); ++ if (ret < 0) ++ { ++ if (ret == AVAHI_ERR_COLLISION) + { +- DBG (DBG_ERR, "main: getaddrinfo() failed even with numeric port: %s\n", +- gai_strerror (err)); +- exit (1); ++ n = avahi_alternative_service_name (avahi_svc_name); ++ avahi_free (avahi_svc_name); ++ avahi_svc_name = n; ++ ++ DBG (DBG_WARN, "saned_create_avahi_services: service name collision, renaming service to '%s'\n", avahi_svc_name); ++ ++ avahi_entry_group_reset (avahi_group); ++ ++ saned_create_avahi_services (c); ++ ++ return; + } ++ ++ DBG (DBG_ERR, "saned_create_avahi_services: failed to add %s service: %s\n", SANED_SERVICE_DNS, avahi_strerror (ret)); ++ goto fail; + } + +- for (resp = res, nfds = 0; resp != NULL; resp = resp->ai_next, nfds++) +- ; +- +- fds = malloc (nfds * sizeof (struct pollfd)); ++ /* Tell the server to register the service */ ++ ret = avahi_entry_group_commit (avahi_group); ++ if (ret < 0) ++ { ++ DBG (DBG_ERR, "saned_create_avahi_services: failed to commit entry group: %s\n", avahi_strerror (ret)); ++ goto fail; ++ } ++ } + +- if (fds == NULL) ++ return; ++ ++ fail: ++ avahi_simple_poll_quit (avahi_poll); ++} ++ ++static void ++saned_avahi_callback (AvahiClient *c, AvahiClientState state, void *userdata) ++{ ++ int error; ++ ++ /* unused */ ++ userdata = userdata; ++ ++ if (!c) ++ return; ++ ++ switch (state) ++ { ++ case AVAHI_CLIENT_CONNECTING: ++ break; ++ ++ case AVAHI_CLIENT_S_RUNNING: ++ saned_create_avahi_services (c); ++ break; ++ ++ case AVAHI_CLIENT_S_COLLISION: ++ case AVAHI_CLIENT_S_REGISTERING: ++ if (avahi_group) ++ avahi_entry_group_reset (avahi_group); ++ break; ++ ++ case AVAHI_CLIENT_FAILURE: ++ error = avahi_client_errno (c); ++ ++ if (error == AVAHI_ERR_DISCONNECTED) ++ { ++ /* Server disappeared - try to reconnect */ ++ avahi_client_free (avahi_client); ++ avahi_client = NULL; ++ ++ avahi_client = avahi_client_new (avahi_simple_poll_get (avahi_poll), AVAHI_CLIENT_NO_FAIL, saned_avahi_callback, NULL, &error); ++ if (avahi_client == NULL) ++ { ++ DBG (DBG_ERR, "saned_avahi_callback: failed to create client: %s\n", avahi_strerror (error)); ++ avahi_simple_poll_quit (avahi_poll); ++ } ++ } ++ else ++ { ++ /* Another error happened - game over */ ++ DBG (DBG_ERR, "saned_avahi_callback: client failure: %s\n", avahi_strerror (error)); ++ avahi_simple_poll_quit (avahi_poll); ++ } ++ break; ++ } ++} ++#endif /* WITH_AVAHI */ ++ ++ ++#ifdef SANED_USES_AF_INDEP ++static void ++do_bindings (int *nfds, struct pollfd **fds) ++{ ++ struct addrinfo *res; ++ struct addrinfo *resp; ++ struct addrinfo hints; ++ struct pollfd *fdp = NULL; ++ int err; ++ int i; ++ short sane_port; ++ int family; ++ int fd = -1; ++ int on = 1; ++ ++ DBG (DBG_DBG, "do_bindings: trying to get port for service \"%s\" (getaddrinfo)\n", SANED_SERVICE_NAME); ++ ++ memset (&hints, 0, sizeof (struct addrinfo)); ++ ++ hints.ai_family = PF_UNSPEC; ++ hints.ai_flags = AI_PASSIVE; ++ hints.ai_socktype = SOCK_STREAM; ++ ++ err = getaddrinfo (NULL, SANED_SERVICE_NAME, &hints, &res); ++ if (err) ++ { ++ DBG (DBG_WARN, "do_bindings: \" %s \" service unknown on your host; you should add\n", SANED_SERVICE_NAME); ++ DBG (DBG_WARN, "do_bindings: %s %d/tcp saned # SANE network scanner daemon\n", SANED_SERVICE_NAME, SANED_SERVICE_PORT); ++ DBG (DBG_WARN, "do_bindings: to your /etc/services file (or equivalent). Proceeding anyway.\n"); ++ err = getaddrinfo (NULL, SANED_SERVICE_PORT_S, &hints, &res); ++ if (err) + { +- DBG (DBG_ERR, "main: not enough memory for fds\n"); +- freeaddrinfo (res); +- exit (1); ++ DBG (DBG_ERR, "do_bindings: getaddrinfo() failed even with numeric port: %s\n", gai_strerror (err)); ++ bail_out (1); + } ++ } + +- for (resp = res, i = 0, fdp = fds; resp != NULL; resp = resp->ai_next, i++, fdp++) ++ for (resp = res, *nfds = 0; resp != NULL; resp = resp->ai_next, (*nfds)++) ++ ; ++ ++ *fds = malloc (*nfds * sizeof (struct pollfd)); ++ ++ if (fds == NULL) ++ { ++ DBG (DBG_ERR, "do_bindings: not enough memory for fds\n"); ++ freeaddrinfo (res); ++ bail_out (1); ++ } ++ ++ for (resp = res, i = 0, fdp = *fds; resp != NULL; resp = resp->ai_next, i++, fdp++) ++ { ++ if (resp->ai_family == AF_INET) + { +- if (resp->ai_family == AF_INET) ++ family = 4; ++ sane_port = ntohs (((struct sockaddr_in *) resp->ai_addr)->sin_port); ++ } ++#ifdef ENABLE_IPV6 ++ else if (resp->ai_family == AF_INET6) ++ { ++ family = 6; ++ sane_port = ntohs (((struct sockaddr_in6 *) resp->ai_addr)->sin6_port); ++ } ++#endif /* ENABLE_IPV6 */ ++ else ++ { ++ fdp--; ++ (*nfds)--; ++ continue; ++ } ++ ++ DBG (DBG_DBG, "do_bindings: [%d] socket () using IPv%d\n", i, family); ++ if ((fd = socket (resp->ai_family, SOCK_STREAM, 0)) < 0) ++ { ++ DBG (DBG_ERR, "do_bindings: [%d] socket failed: %s\n", i, strerror (errno)); ++ ++ fdp--; ++ (*nfds)--; ++ continue; ++ } ++ ++ DBG (DBG_DBG, "do_bindings: [%d] setsockopt ()\n", i); ++ if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on))) ++ DBG (DBG_ERR, "do_bindings: [%d] failed to put socket in SO_REUSEADDR mode (%s)\n", i, strerror (errno)); ++ ++ ++ DBG (DBG_DBG, "do_bindings: [%d] bind () to port %d\n", i, sane_port); ++ if (bind (fd, resp->ai_addr, resp->ai_addrlen) < 0) ++ { ++ /* ++ * Binding a socket may fail with EADDRINUSE if we already bound ++ * to an IPv6 addr returned by getaddrinfo (usually the first ones) ++ * and we're trying to bind to an IPv4 addr now. ++ * It can also fail because we're trying to bind an IPv6 socket and IPv6 ++ * is not functional on this machine. ++ * In any case, a bind() call returning an error is not necessarily fatal. ++ */ ++ DBG (DBG_WARN, "do_bindings: [%d] bind failed: %s\n", i, strerror (errno)); ++ ++ close (fd); ++ ++ fdp--; ++ (*nfds)--; ++ continue; ++ } ++ ++ DBG (DBG_DBG, "do_bindings: [%d] listen ()\n", i); ++ if (listen (fd, 1) < 0) ++ { ++ DBG (DBG_ERR, "do_bindings: [%d] listen failed: %s\n", i, strerror (errno)); ++ ++ close (fd); ++ ++ fdp--; ++ (*nfds)--; ++ continue; ++ } ++ ++ fdp->fd = fd; ++ fdp->events = POLLIN; ++ } ++ ++ resp = NULL; ++ freeaddrinfo (res); ++ ++ if (*nfds <= 0) ++ { ++ DBG (DBG_ERR, "do_bindings: couldn't bind an address. Exiting.\n"); ++ bail_out (1); ++ } ++} ++ ++#else /* !SANED_USES_AF_INDEP */ ++ ++static void ++do_bindings (int *nfds, struct pollfd **fds) ++{ ++ struct sockaddr_in sin; ++ struct servent *serv; ++ short port; ++ int fd = -1; ++ int on = 1; ++ ++ DBG (DBG_DBG, "do_bindings: trying to get port for service \"%s\" (getservbyname)\n", SANED_SERVICE_PORT); ++ serv = getservbyname (SANED_SERVICE_NAME, "tcp"); ++ ++ if (serv) ++ { ++ port = serv->s_port; ++ DBG (DBG_MSG, "do_bindings: port is %d\n", ntohs (port)); ++ } ++ else ++ { ++ port = htons (SANED_SERVICE_PORT); ++ DBG (DBG_WARN, "do_bindings: \"%s\" service unknown on your host; you should add\n", SANED_SERVICE_NAME); ++ DBG (DBG_WARN, "do_bindings: %s %d/tcp saned # SANE network scanner daemon\n", SANED_SERVICE_NAME, SANED_SERVICE_PORT); ++ DBG (DBG_WARN, "do_bindings: to your /etc/services file (or equivalent). Proceeding anyway.\n"); ++ } ++ ++ *nfds = 1; ++ *fds = malloc (*nfds * sizeof (struct pollfd)); ++ ++ if (fds == NULL) ++ { ++ DBG (DBG_ERR, "do_bindings: not enough memory for fds\n"); ++ bail_out (1); ++ } ++ ++ memset (&sin, 0, sizeof (sin)); ++ ++ sin.sin_family = AF_INET; ++ sin.sin_addr.s_addr = INADDR_ANY; ++ sin.sin_port = port; ++ ++ DBG (DBG_DBG, "do_bindings: socket ()\n"); ++ fd = socket (AF_INET, SOCK_STREAM, 0); ++ ++ DBG (DBG_DBG, "do_bindings: setsockopt ()\n"); ++ if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on))) ++ DBG (DBG_ERR, "do_bindings: failed to put socket in SO_REUSEADDR mode (%s)", strerror (errno)); ++ ++ DBG (DBG_DBG, "do_bindings: bind ()\n"); ++ if (bind (fd, (struct sockaddr *) &sin, sizeof (sin)) < 0) ++ { ++ DBG (DBG_ERR, "do_bindings: bind failed: %s", strerror (errno)); ++ bail_out (1); ++ } ++ ++ DBG (DBG_DBG, "do_bindings: listen ()\n"); ++ if (listen (fd, 1) < 0) ++ { ++ DBG (DBG_ERR, "do_bindings: listen failed: %s", strerror (errno)); ++ bail_out (1); ++ } ++ ++ (*fds)->fd = fd; ++ (*fds)->events = POLLIN; ++} ++ ++#endif /* SANED_USES_AF_INDEP */ ++ ++ ++static void ++run_standalone (int argc, char **argv) ++{ ++ struct pollfd *fds = NULL; ++ struct pollfd *fdp = NULL; ++ int nfds; ++ int fd = -1; ++ int i; ++ int ret; ++ ++ uid_t runas_uid = 0; ++ gid_t runas_gid = 0; ++ struct passwd *pwent; ++ gid_t *grplist; ++ int ngroups = 0; ++ FILE *pidfile; ++ ++ do_bindings (&nfds, &fds); ++ ++ if (run_mode != SANED_RUN_DEBUG) ++ { ++ if (argc > 2) ++ { ++ pwent = getpwnam(argv[2]); ++ ++ if (pwent == NULL) + { +- family = 4; +- sane_port = ntohs (((struct sockaddr_in *) resp->ai_addr)->sin_port); ++ DBG (DBG_ERR, "FATAL ERROR: user %s not found on system\n", argv[2]); ++ bail_out (1); + } +-#ifdef ENABLE_IPV6 +- else if (resp->ai_family == AF_INET6) ++ ++ runas_uid = pwent->pw_uid; ++ runas_gid = pwent->pw_gid; ++ ++ /* Get group list for runas_uid */ ++ ngroups = 10; ++ grplist = (gid_t *) malloc (ngroups * sizeof(gid_t)); ++ ++ if (grplist == NULL) + { +- family = 6; +- sane_port = ntohs (((struct sockaddr_in6 *) resp->ai_addr)->sin6_port); ++ DBG (DBG_ERR, "FATAL ERROR: cannot allocate memory for group list\n"); ++ ++ exit (1); + } +-#endif /* ENABLE_IPV6 */ +- else ++ ++ ret = getgrouplist (argv[2], runas_gid, grplist, &ngroups); ++ if (ret < 0) + { +- fdp--; +- nfds--; +- continue; ++ grplist = (gid_t *) realloc (grplist, ngroups * sizeof(gid_t)); ++ if (grplist == NULL) ++ { ++ DBG (DBG_ERR, "FATAL ERROR: cannot reallocate memory for group list\n"); ++ ++ exit (1); ++ } ++ ++ ret = getgrouplist (argv[2], runas_gid, grplist, &ngroups); ++ if (ret < 0) ++ { ++ DBG (DBG_ERR, "FATAL ERROR: getgrouplist() failed again\n"); ++ ++ exit (1); ++ } + } ++ } + +- DBG (DBG_DBG, "main: [%d] socket () using IPv%d\n", i, family); +- if ((fd = socket (resp->ai_family, SOCK_STREAM, 0)) < 0) ++ DBG (DBG_MSG, "run_standalone: daemonizing now\n"); ++ ++ fd = open ("/dev/null", O_RDWR); ++ if (fd < 0) ++ { ++ DBG (DBG_ERR, "FATAL ERROR: cannot open /dev/null: %s\n", strerror (errno)); ++ exit (1); ++ } ++ ++ ret = fork (); ++ if (ret > 0) ++ { ++ _exit (0); ++ } ++ else if (ret < 0) ++ { ++ DBG (DBG_ERR, "FATAL ERROR: fork failed: %s\n", strerror (errno)); ++ exit (1); ++ } ++ ++ DBG (DBG_WARN, "Now daemonized\n"); ++ ++ /* Write out PID file */ ++ pidfile = fopen (SANED_PID_FILE, "w"); ++ if (pidfile) ++ { ++ fprintf (pidfile, "%d", getpid()); ++ fclose (pidfile); ++ } ++ else ++ DBG (DBG_ERR, "Could not write PID file: %s\n", strerror (errno)); ++ ++ chdir ("/"); ++ ++ dup2 (fd, STDIN_FILENO); ++ dup2 (fd, STDOUT_FILENO); ++ dup2 (fd, STDERR_FILENO); ++ ++ close (fd); ++ ++ setsid (); ++ ++ /* Drop privileges if requested */ ++ if (runas_uid > 0) ++ { ++ ret = setgroups(ngroups, grplist); ++ if (ret < 0) + { +- DBG (DBG_ERR, "main: [%d] socket failed: %s\n", i, +- strerror (errno)); +- +- nfds--; +- fdp--; +- continue; ++ DBG (DBG_ERR, "FATAL ERROR: could not set group list: %s\n", strerror(errno)); ++ ++ exit (1); + } +- +- DBG (DBG_DBG, "main: [%d] setsockopt ()\n", i); +- if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on))) +- DBG (DBG_ERR, "main: [%d] failed to put socket in SO_REUSEADDR mode (%s)\n", +- i, strerror (errno)); + +- +- DBG (DBG_DBG, "main: [%d] bind () to port %d\n", i, sane_port); +- if (bind (fd, resp->ai_addr, resp->ai_addrlen) < 0) ++ free(grplist); ++ ++ ret = setegid (runas_gid); ++ if (ret < 0) + { +- /* +- * binding a socket may fail, eg if we already +- * to the IPv6 addr returned by getaddrinfo (usually the first one), +- * or if IPv6 isn't supported, but saned was built with IPv6 support +- */ +- DBG (DBG_ERR, "main: [%d] bind failed: %s\n", i, strerror (errno)); ++ DBG (DBG_ERR, "FATAL ERROR: setegid to gid %d failed: %s\n", runas_gid, strerror (errno)); + +- close (fd); +- +- nfds--; +- fdp--; +- continue; ++ exit (1); + } + +- DBG (DBG_DBG, "main: [%d] listen ()\n", i); +- if (listen (fd, 1) < 0) ++ ret = seteuid (runas_uid); ++ if (ret < 0) + { +- DBG (DBG_ERR, "main: [%d] listen failed: %s\n", i, strerror (errno)); ++ DBG (DBG_ERR, "FATAL ERROR: seteuid to uid %d failed: %s\n", runas_uid, strerror (errno)); ++ + exit (1); + } + +- fdp->fd = fd; +- fdp->events = POLLIN; ++ DBG (DBG_WARN, "Dropped privileges to uid %d gid %d\n", runas_uid, runas_gid); + } + +- resp = NULL; +- freeaddrinfo (res); ++ signal(SIGINT, sig_int_term_handler); ++ signal(SIGTERM, sig_int_term_handler); ++ } + +- if (nfds <= 0) +- { +- DBG (DBG_ERR, "main: couldn't bind an address. Exiting.\n"); +- exit (1); +- } +- +- DBG (DBG_MSG, "main: waiting for control connection\n"); ++#ifdef WITH_AVAHI ++ DBG (DBG_INFO, "run_standalone: spawning Avahi process\n"); ++ saned_avahi (); ++#endif /* WITH_AVAHI */ + +- while (1) ++ DBG (DBG_MSG, "run_standalone: waiting for control connection\n"); ++ ++ while (1) ++ { ++ ret = poll (fds, nfds, 500); ++ if (ret < 0) + { +- if (poll (fds, nfds, -1) < 0) ++ if (errno == EINTR) ++ continue; ++ else + { +- if (errno == EINTR) +- continue; +- else +- { +- DBG (DBG_ERR, "main: poll failed: %s\n", strerror (errno)); +- free (fds); +- exit (1); +- } ++ DBG (DBG_ERR, "run_standalone: poll failed: %s\n", strerror (errno)); ++ free (fds); ++ bail_out (1); + } ++ } + +- for (i = 0, fdp = fds; i < nfds; i++, fdp++) +- { +- if (! (fdp->revents & POLLIN)) +- continue; ++ /* Wait for children */ ++ while (wait_child (-1, NULL, WNOHANG) > 0) ++ ; + +- wire.io.fd = accept (fdp->fd, 0, 0); +- if (wire.io.fd < 0) +- { +- DBG (DBG_ERR, "main: accept failed: %s", strerror (errno)); +- free (fds); +- exit (1); +- } ++ if (ret == 0) ++ continue; + ++ for (i = 0, fdp = fds; i < nfds; i++, fdp++) ++ { ++ /* Error on an fd */ ++ if (! (fdp->revents & POLLIN)) ++ { + for (i = 0, fdp = fds; i < nfds; i++, fdp++) + close (fdp->fd); + + free (fds); + ++ DBG (DBG_WARN, "run_standalone: invalid fd in set, attempting to re-bind\n"); ++ ++ /* Reopen sockets */ ++ do_bindings (&nfds, &fds); ++ + break; + } +- break; ++ ++ fd = accept (fdp->fd, 0, 0); ++ if (fd < 0) ++ { ++ DBG (DBG_ERR, "run_standalone: accept failed: %s", strerror (errno)); ++ continue; ++ } ++ ++ if (run_mode == SANED_RUN_DEBUG) ++ break; /* We have the only connection we're going to handle */ ++ else ++ handle_client (fd); + } ++ ++ if (run_mode == SANED_RUN_DEBUG) ++ break; + } +- else +- /* use filedescriptor opened by inetd: */ +-#ifdef HAVE_OS2_H +- /* under OS/2, the socket handle is passed as argument on the command +- line; the socket handle is relative to IBM TCP/IP, so a call +- to impsockethandle() is required to add it to the EMX runtime */ +- if (argc == 2) ++ ++ for (i = 0, fdp = fds; i < nfds; i++, fdp++) ++ close (fdp->fd); ++ ++ free (fds); ++ ++ if (run_mode == SANED_RUN_DEBUG) + { +- wire.io.fd = _impsockhandle (atoi (argv[1]), 0); +- if (wire.io.fd == -1) +- perror ("impsockhandle"); ++ if (fd > 0) ++ handle_connection (fd); ++ ++ bail_out(0); + } +- else +-#endif /* HAVE_OS2_H */ +- wire.io.fd = 1; ++} + +- signal (SIGALRM, quit); +- signal (SIGPIPE, quit); + +-#ifdef TCP_NODELAY +-# ifdef SOL_TCP +- level = SOL_TCP; +-# else /* !SOL_TCP */ +- /* Look up the protocol level in the protocols database. */ +- { +- struct protoent *p; +- p = getprotobyname ("tcp"); +- if (p == 0) +- { +- DBG (DBG_WARN, "main: cannot look up `tcp' protocol number"); +- } +- else +- level = p->p_proto; +- } +-# endif /* SOL_TCP */ +- if (level == -1 +- || setsockopt (wire.io.fd, level, TCP_NODELAY, &on, sizeof (on))) +- DBG (DBG_WARN, "main: failed to put socket in TCP_NODELAY mode (%s)", +- strerror (errno)); +-#endif /* !TCP_NODELAY */ +- +-/* define the version string depending on which network code is used */ +-#ifdef ENABLE_IPV6 +- DBG (DBG_WARN, "saned (AF-indep+IPv6) from %s ready\n", PACKAGE_STRING); +-#else +- DBG (DBG_WARN, "saned (AF-indep) from %s ready\n", PACKAGE_STRING); +-#endif /* ENABLE_IPV6 */ ++static void ++run_inetd (int argc, char **argv) ++{ ++ int fd = 1; + +- if (init (&wire) < 0) +- quit (0); ++#ifndef HAVE_OS2_H ++ /* Unused in this function */ ++ argc = argc; ++ argv = argv; + +- while (1) ++#else ++ /* under OS/2, the socket handle is passed as argument on the command ++ line; the socket handle is relative to IBM TCP/IP, so a call ++ to impsockethandle() is required to add it to the EMX runtime */ ++ if (argc == 2) + { +- reset_watchdog (); +- process_request (&wire); ++ fd = _impsockhandle (atoi (argv[1]), 0); ++ if (fd == -1) ++ perror ("impsockhandle"); + } ++#endif /* HAVE_OS2_H */ ++ ++ handle_connection(fd); + } + +-#else /* !SANED_USES_AF_INDEP */ + + int + main (int argc, char *argv[]) + { +- int fd, on = 1; +-#ifdef TCP_NODELAY +- int level = -1; +-#endif +- + debug = DBG_WARN; +- openlog ("saned", LOG_PID | LOG_CONS, LOG_DAEMON); + + prog_name = strrchr (argv[0], '/'); + if (prog_name) +@@ -2310,128 +2971,61 @@ + else + prog_name = argv[0]; + +- byte_order.w = 0; +- byte_order.ch = 1; +- +- sanei_w_init (&wire, sanei_codec_bin_init); +- wire.io.read = read; +- wire.io.write = write; ++ numchildren = 0; ++ run_mode = SANED_RUN_INETD; + +- if (argc == 2 && +- (strncmp (argv[1], "-d", 2) == 0 || strncmp (argv[1], "-s", 2) == 0)) ++ if (argc >= 2) + { +- /* don't operate in daemon mode: wait for connection request: */ +- struct sockaddr_in sin; +- struct servent *serv; +- short port; ++ if (strncmp (argv[1], "-a", 2) == 0) ++ run_mode = SANED_RUN_ALONE; ++ else if (strncmp (argv[1], "-d", 2) == 0) ++ { ++ run_mode = SANED_RUN_DEBUG; ++ log_to_syslog = SANE_FALSE; ++ } ++ else if (strncmp (argv[1], "-s", 2) == 0) ++ run_mode = SANED_RUN_DEBUG; ++ } + ++ if (run_mode == SANED_RUN_DEBUG) ++ { + if (argv[1][2]) + debug = atoi (argv[1] + 2); +- if (strncmp (argv[1], "-d", 2) == 0) +- log_to_syslog = SANE_FALSE; + + DBG (DBG_WARN, "main: starting debug mode (level %d)\n", debug); ++ } + +- memset (&sin, 0, sizeof (sin)); ++ if (log_to_syslog) ++ openlog ("saned", LOG_PID | LOG_CONS, LOG_DAEMON); + +- DBG (DBG_DBG, +- "main: trying to get port for service `sane' (getservbyname)\n"); +- serv = getservbyname ("sane-port", "tcp"); +- if (serv) +- { +- port = serv->s_port; +- DBG (DBG_MSG, "main: port is %d\n", ntohs (port)); +- } +- else +- { +- port = htons (6566); +- DBG (DBG_WARN, "main: could not find `sane' service (%s)\n", +- strerror (errno)); +- DBG (DBG_WARN, "main: using default port %d\n", ntohs (port)); +- } +- sin.sin_family = AF_INET; +- sin.sin_addr.s_addr = INADDR_ANY; +- sin.sin_port = port; ++ byte_order.w = 0; ++ byte_order.ch = 1; + +- DBG (DBG_DBG, "main: socket ()\n"); +- fd = socket (AF_INET, SOCK_STREAM, 0); ++ sanei_w_init (&wire, sanei_codec_bin_init); ++ wire.io.read = read; ++ wire.io.write = write; + +- DBG (DBG_DBG, "main: setsockopt ()\n"); +- if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on))) +- DBG (DBG_ERR, "failed to put socket in SO_REUSEADDR mode (%s)", +- strerror (errno)); ++/* define the version string depending on which network code is used */ ++#ifdef SANED_USES_AF_INDEP ++# ifdef ENABLE_IPV6 ++ DBG (DBG_WARN, "saned (AF-indep+IPv6) from %s starting up\n", PACKAGE_STRING); ++# else ++ DBG (DBG_WARN, "saned (AF-indep) from %s starting up\n", PACKAGE_STRING); ++# endif /* ENABLE_IPV6 */ ++#else ++ DBG (DBG_WARN, "saned from %s ready\n", PACKAGE_STRING); ++#endif /* SANED_USES_AF_INDEP */ + +- DBG (DBG_DBG, "main: bind ()\n"); +- if (bind (fd, (struct sockaddr *) &sin, sizeof (sin)) < 0) +- { +- DBG (DBG_ERR, "main: bind failed: %s", strerror (errno)); +- exit (1); +- } +- DBG (DBG_DBG, "main: listen ()\n"); +- if (listen (fd, 1) < 0) +- { +- DBG (DBG_ERR, "main: listen failed: %s", strerror (errno)); +- exit (1); +- } +- DBG (DBG_MSG, "main: waiting for control connection\n"); +- wire.io.fd = accept (fd, 0, 0); +- if (wire.io.fd < 0) +- { +- DBG (DBG_ERR, "main: accept failed: %s", strerror (errno)); +- exit (1); +- } +- close (fd); ++ if ((run_mode == SANED_RUN_ALONE) || (run_mode == SANED_RUN_DEBUG)) ++ { ++ run_standalone(argc, argv); + } + else +- /* use filedescriptor opened by inetd: */ +-#ifdef HAVE_OS2_H +- /* under OS/2, the socket handle is passed as argument on the command +- line; the socket handle is relative to IBM TCP/IP, so a call +- to impsockethandle() is required to add it to the EMX runtime */ +- if (argc == 2) + { +- wire.io.fd = _impsockhandle (atoi (argv[1]), 0); +- if (wire.io.fd == -1) +- perror ("impsockhandle"); ++ run_inetd(argc, argv); + } +- else +-#endif /* HAVE_OS2_H */ +- wire.io.fd = 1; +- +- signal (SIGALRM, quit); +- signal (SIGPIPE, quit); + +-#ifdef TCP_NODELAY +-# ifdef SOL_TCP +- level = SOL_TCP; +-# else /* !SOL_TCP */ +- /* Look up the protocol level in the protocols database. */ +- { +- struct protoent *p; +- p = getprotobyname ("tcp"); +- if (p == 0) +- { +- DBG (DBG_WARN, "main: cannot look up `tcp' protocol number"); +- } +- else +- level = p->p_proto; +- } +-# endif /* SOL_TCP */ +- if (level == -1 +- || setsockopt (wire.io.fd, level, TCP_NODELAY, &on, sizeof (on))) +- DBG (DBG_WARN, "main: failed to put socket in TCP_NODELAY mode (%s)", +- strerror (errno)); +-#endif /* !TCP_NODELAY */ +- +- DBG (DBG_WARN, "saned from %s ready\n", PACKAGE_STRING); +- +- if (init (&wire) < 0) +- quit (0); ++ DBG (DBG_WARN, "saned exiting\n"); + +- while (1) +- { +- reset_watchdog (); +- process_request (&wire); +- } ++ return 0; + } +-#endif /* SANED_USES_AF_INDEP */ +diff -urNad sane-backends-1.0.19~/include/sane/config.h.in sane-backends-1.0.19/include/sane/config.h.in +--- sane-backends-1.0.19~/include/sane/config.h.in 2008-08-05 12:05:02.000000000 +0200 ++++ sane-backends-1.0.19/include/sane/config.h.in 2008-08-05 12:10:07.170083319 +0200 +@@ -449,6 +449,9 @@ + /* Define to the version of the distribution. */ + #undef VERSION + ++/* define if Avahi support is enabled for saned and the net backend */ ++#undef WITH_AVAHI ++ + /* Define to 1 if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ + #undef WORDS_BIGENDIAN --- sane-backends-1.0.19.orig/debian/patches/42_add_epson_cx_6000.dpatch +++ sane-backends-1.0.19/debian/patches/42_add_epson_cx_6000.dpatch @@ -0,0 +1,16 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 42_add_epson_cx_6000.dpatch by Martin Pitt +## +## DP: Add Epson CX6000. (LP: #314485) +@DPATCH@ +diff -urNad sane-backends-1.0.19~/backend/epson_usb.c sane-backends-1.0.19/backend/epson_usb.c +--- sane-backends-1.0.19~/backend/epson_usb.c 2007-08-18 14:06:36.000000000 +0200 ++++ sane-backends-1.0.19/backend/epson_usb.c 2009-02-13 12:12:07.520196551 +0100 +@@ -43,6 +43,7 @@ + 0x819, /* CX4800 */ + 0x820, /* CX4200 */ + 0x82b, /* Stylus CX5000/DX5000/DX5050 */ ++ 0x82e, /* CX6000 */ + 0x82f, /* Stylus DX4050 */ + 0 /* last entry - this is used for devices that are specified + in the config file as "usb " */ --- sane-backends-1.0.19.orig/debian/patches/41_epjitsu_fixes.dpatch +++ sane-backends-1.0.19/debian/patches/41_epjitsu_fixes.dpatch @@ -0,0 +1,170 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 41_epjitsu_fixes.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Double-free fix, from CVS. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/backend/epjitsu.c sane-backends-1.0.19/backend/epjitsu.c +--- sane-backends-1.0.19~/backend/epjitsu.c 2007-12-30 02:31:13.000000000 +0100 ++++ sane-backends-1.0.19/backend/epjitsu.c 2008-11-24 14:59:20.388047181 +0100 +@@ -90,8 +90,13 @@ + - fi-60F 300 & 600 dpi support (150 is non-square?) + - fi-60F gray & binary support + - fi-60F improved calibration +- V 1.0.10, 2007-12-19, MAN ++ V 1.0.10, 2007-12-19, MAN (SANE v1.0.19) + - fix missing function (and memory leak) ++ V 1.0.11 2008-02-14, MAN ++ - sanei_config_read has already cleaned string (#310597) ++ V 1.0.12 2008-02-28, MAN ++ - cleanup double free bug with new destroy() ++ + + SANE FLOW DIAGRAM + +@@ -151,7 +156,7 @@ + #include "epjitsu-cmd.h" + + #define DEBUG 1 +-#define BUILD 10 ++#define BUILD 12 + + unsigned char global_firmware_filename[PATH_MAX]; + +@@ -210,7 +215,6 @@ + struct scanner *dev; + char line[PATH_MAX]; + const char *lp; +- size_t len; + + authorize = authorize; /* get rid of compiler warning */ + +@@ -233,17 +237,12 @@ + + while (sanei_config_read (line, PATH_MAX, fp)) { + ++ lp = line; ++ + /* ignore comments */ +- if (line[0] == '#') ++ if (*lp == '#') + continue; + +- /* delete newline characters at end */ +- len = strlen (line); +- if (line[len - 1] == '\n') +- line[--len] = '\0'; +- +- lp = sanei_config_skip_whitespace (line); +- + /* skip empty lines */ + if (*lp == 0) + continue; +@@ -320,7 +319,7 @@ + /* copy the device name */ + s->sane.name = strdup (name); + if (!s->sane.name){ +- sane_close((SANE_Handle)s); ++ destroy(s); + return SANE_STATUS_NO_MEM; + } + +@@ -330,14 +329,14 @@ + s->fd = -1; + ret = connect_fd(s); + if(ret != SANE_STATUS_GOOD){ +- sane_close((SANE_Handle)s); ++ destroy(s); + return ret; + } + + /* load the firmware file into scanner */ + ret = load_fw(s); + if (ret != SANE_STATUS_GOOD) { +- sane_close((SANE_Handle)s); ++ destroy(s); + DBG (5, "attach_one: firmware load failed\n"); + return ret; + } +@@ -345,7 +344,7 @@ + /* Now query the device to load its vendor/model/version */ + ret = get_ident(s); + if (ret != SANE_STATUS_GOOD) { +- sane_close((SANE_Handle)s); ++ destroy(s); + DBG (5, "attach_one: identify failed\n"); + return ret; + } +@@ -2989,19 +2988,6 @@ + disconnect_fd(s); + } + +- if(s->sane.name){ +- free(s->sane.name); +- } +- if(s->sane.model){ +- free(s->sane.model); +- } +- if(s->sane.vendor){ +- free(s->sane.vendor); +- } +- +- teardown_buffers(s); +- free(s); +- + DBG (10, "sane_close: finish\n"); + } + +@@ -3022,6 +3008,31 @@ + } + + static SANE_Status ++destroy(struct scanner *s) ++{ ++ SANE_Status ret = SANE_STATUS_GOOD; ++ ++ DBG (10, "destroy: start\n"); ++ ++ teardown_buffers(s); ++ ++ if(s->sane.name){ ++ free(s->sane.name); ++ } ++ if(s->sane.vendor){ ++ free(s->sane.vendor); ++ } ++ if(s->sane.model){ ++ free(s->sane.model); ++ } ++ ++ free(s); ++ ++ DBG (10, "destroy: finish\n"); ++ return ret; ++} ++ ++static SANE_Status + teardown_buffers(struct scanner *s) + { + SANE_Status ret = SANE_STATUS_GOOD; +@@ -3089,7 +3100,7 @@ + + for (dev = scanner_devList; dev; dev = next) { + next = dev->next; +- free(dev); ++ destroy(dev); + } + + if (sane_devArray) +diff -urNad sane-backends-1.0.19~/backend/epjitsu.h sane-backends-1.0.19/backend/epjitsu.h +--- sane-backends-1.0.19~/backend/epjitsu.h 2007-12-19 23:14:19.000000000 +0100 ++++ sane-backends-1.0.19/backend/epjitsu.h 2008-11-24 14:59:20.388047181 +0100 +@@ -263,6 +263,7 @@ + static SANE_Status change_params(struct scanner *s); + void update_block_totals(struct scanner * s); + ++static SANE_Status destroy(struct scanner *s); + static SANE_Status teardown_buffers(struct scanner *s); + static SANE_Status setup_buffers(struct scanner *s); + --- sane-backends-1.0.19.orig/debian/patches/24_sane-desc.c_debian_mods.dpatch +++ sane-backends-1.0.19/debian/patches/24_sane-desc.c_debian_mods.dpatch @@ -0,0 +1,73 @@ +#!/bin/sh -e +## 05_sane-desc.c_debian_mods.dpatch by Julien BLACHE +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Do not link to HTML manpages, we do not have them installed. Also, +## DP: do not use sane.png, as it's not distributed in the source tarball. + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in + -patch) patch $patch_opts -p1 < $0;; + -unpatch) patch $patch_opts -p1 -R < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad sane-backends-1.0.19~cvs20071213~/tools/sane-desc.c sane-backends-1.0.19~cvs20071213/tools/sane-desc.c +--- sane-backends-1.0.19~cvs20071213~/tools/sane-desc.c 2007-07-30 12:58:08.000000000 +0200 ++++ sane-backends-1.0.19~cvs20071213/tools/sane-desc.c 2007-12-13 21:31:29.719481442 +0100 +@@ -25,7 +25,7 @@ + + #define SANE_DESC_VERSION "3.3" + +-#define MAN_PAGE_LINK "http://www.sane-project.org/man/%s.5.html" ++#define MAN_PAGE_LINK "/usr/share/doc/libsane/html/%s.5.html" + #define COLOR_MINIMAL "\"#B00000\"" + #define COLOR_BASIC "\"#FF9000\"" + #define COLOR_GOOD "\"#90B000\"" +@@ -2362,8 +2362,8 @@ + printf ("
\n"); + } + if (be->manpage) +- printf ("Manual page: %s
\n", be->manpage, be->manpage); ++ printf ("Manual page:" ++ "%s
\n", be->manpage); + + if (be->comment) + printf ("Comment: %s
\n", be->comment); +@@ -2597,9 +2597,9 @@ + + printf ("\n"); + if (model_record->be->manpage) +- printf ("%s\n", +- model_record->be->manpage, model_record->be->manpage); ++ printf ("" ++ "%s\n", ++ model_record->be->manpage); + else + printf ("?\n"); + +@@ -2624,8 +2624,8 @@ + printf + ("\n" + "\n" +- "
\n" +- "\"SANE\"\n"); ++ "
\n"); ++ /* "\"SANE\"\n"); */ + printf ("

%s

\n", title); + printf ("
\n" "
\n"); + printf ("%s\n", intro); --- sane-backends-1.0.19.orig/debian/patches/08_epson2_be_nice_to_saned.dpatch +++ sane-backends-1.0.19/debian/patches/08_epson2_be_nice_to_saned.dpatch @@ -0,0 +1,18 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 08_epson2_be_nice_to_saned.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Be nice to saned and do not pollute fd 0. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/backend/epson2.c sane-backends-1.0.19/backend/epson2.c +--- sane-backends-1.0.19~/backend/epson2.c 2008-05-03 16:48:03.175216524 +0200 ++++ sane-backends-1.0.19/backend/epson2.c 2008-05-03 16:48:29.315216254 +0200 +@@ -1243,6 +1243,7 @@ + * set dummy values. + */ + ++ s->fd = -1; + s->hw = dev; + + dev->name = NULL; --- sane-backends-1.0.19.orig/debian/patches/00list +++ sane-backends-1.0.19/debian/patches/00list @@ -0,0 +1,23 @@ +01_manpages_fixes +02_pixma_update +03_snapscan_usb_ftok_fix +04_sane-desc_hal_new +05_hp_timing_fix +06_sanei_scsi_attach_fix +07_epson2_be_nice +08_epson2_be_nice_to_saned +09_avision_fixes +10_sm3840_unbreak_sane_open +11_minimum_linkage +12_new_configure +21_sane-config.in_no_rpath +22_dll_backend_conf +23_unneeded_doc +24_sane-desc.c_debian_mods +30_new_saned +31_sanei_pthread_64bit_fix +32_net_backend_standard_fix +33_scanimage_options_fix +40_fujitsu_fixes +41_epjitsu_fixes +42_add_epson_cx_6000 --- sane-backends-1.0.19.orig/debian/patches/05_hp_timing_fix.dpatch +++ sane-backends-1.0.19/debian/patches/05_hp_timing_fix.dpatch @@ -0,0 +1,30 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 05_hp_timing_fix.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Timing fix for HP devices. Fixes this sporadic error: +## DP: scanimage: hp-option.c:3713: hp_optset_fix_geometry_options: +## DP: Assertion `tl_x && tl_y && br_x && br_y' failed. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/backend/hp-scl.c sane-backends-1.0.19/backend/hp-scl.c +--- sane-backends-1.0.19~/backend/hp-scl.c 2004-10-04 20:09:05.000000000 +0200 ++++ sane-backends-1.0.19/backend/hp-scl.c 2008-03-28 22:15:17.186788197 +0100 +@@ -44,6 +44,9 @@ + + /* + $Log: hp-scl.c,v $ ++ Revision 1.15 2008/03/28 14:37:36 kitno-guest ++ add usleep to improve usb performance, from jim a t meyering d o t net ++ + Revision 1.14 2004-10-04 18:09:05 kig-guest + Rename global function hp_init_openfd to sanei_hp_init_openfd + +@@ -1763,6 +1766,7 @@ + RETURN_IF_FAIL( hp_scsi_flush (scsi)) ; + + RETURN_IF_FAIL( hp_scsi_scl(scsi, inq_cmnd, SCL_INQ_ID(scl)) ); ++ usleep (1000); /* 500 works, too, but not 100 */ + + status = hp_scsi_read(scsi, buf, &bufsize, 1); + if (FAILED(status)) --- sane-backends-1.0.19.orig/debian/patches/12_new_configure.dpatch +++ sane-backends-1.0.19/debian/patches/12_new_configure.dpatch @@ -0,0 +1,743 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 12_new_configure.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: New configure script, includes changes made to configure.in by previous patches. + +@DPATCH@ +diff -urNad sane-backends-1.0.19~/configure sane-backends-1.0.19/configure +--- sane-backends-1.0.19~/configure 2008-02-11 00:02:31.000000000 +0100 ++++ sane-backends-1.0.19/configure 2008-02-12 21:30:12.625390160 +0100 +@@ -849,12 +849,20 @@ + DL_LIB + DYNAMIC_FLAG + USE_LINKS +-INSTALL_LOCKPATH +-LOCKPATH_GROUP ++LIBM ++LIBCAM ++LIBJPEG ++LIBTIFF ++LIBIEEE1284 ++LIBPTHREAD + HAVE_GPHOTO2 + GPHOTO2_LDFLAGS ++LIBGPHOTO2 ++INSTALL_LOCKPATH ++LOCKPATH_GROUP + ALLOCA + LIBOBJS ++LIBUSB + LN_S + ECHO + AR +@@ -1509,8 +1517,8 @@ + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-docdir=DIR documentation [PREFIX/doc/sane-VERSION] +- --with-group use the specified group for lock dir [default=uucp] + --with-gphoto2 include the gphoto2 backend [default=yes] ++ --with-group use the specified group for lock dir [default=uucp] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-pic try to use only PIC/non-PIC objects [default=use + both] +@@ -6396,7 +6404,6 @@ + esac + + +- + { echo "$as_me:$LINENO: checking for sqrt in -lm" >&5 + echo $ECHO_N "checking for sqrt in -lm... $ECHO_C" >&6; } + if test "${ac_cv_lib_m_sqrt+set}" = set; then +@@ -6459,22 +6466,20 @@ + { echo "$as_me:$LINENO: result: $ac_cv_lib_m_sqrt" >&5 + echo "${ECHO_T}$ac_cv_lib_m_sqrt" >&6; } + if test $ac_cv_lib_m_sqrt = yes; then +- cat >>confdefs.h <<_ACEOF ++ cat >>confdefs.h <<\_ACEOF + #define HAVE_LIBM 1 + _ACEOF +- +- LIBS="-lm $LIBS" +- ++ LIBM="-lm" + fi + + +-{ echo "$as_me:$LINENO: checking for scsireq_enter in -lscsi" >&5 +-echo $ECHO_N "checking for scsireq_enter in -lscsi... $ECHO_C" >&6; } +-if test "${ac_cv_lib_scsi_scsireq_enter+set}" = set; then ++{ echo "$as_me:$LINENO: checking for cam_open_device in -lcam" >&5 ++echo $ECHO_N "checking for cam_open_device in -lcam... $ECHO_C" >&6; } ++if test "${ac_cv_lib_cam_cam_open_device+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lscsi $LIBS" ++LIBS="-lcam $LIBS" + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF +@@ -6488,11 +6493,11 @@ + #ifdef __cplusplus + extern "C" + #endif +-char scsireq_enter (); ++char cam_open_device (); + int + main () + { +-return scsireq_enter (); ++return cam_open_device (); + ; + return 0; + } +@@ -6515,37 +6520,37 @@ + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then +- ac_cv_lib_scsi_scsireq_enter=yes ++ ac_cv_lib_cam_cam_open_device=yes + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_cv_lib_scsi_scsireq_enter=no ++ ac_cv_lib_cam_cam_open_device=no + fi + + rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ echo "$as_me:$LINENO: result: $ac_cv_lib_scsi_scsireq_enter" >&5 +-echo "${ECHO_T}$ac_cv_lib_scsi_scsireq_enter" >&6; } +-if test $ac_cv_lib_scsi_scsireq_enter = yes; then +- cat >>confdefs.h <<_ACEOF +-#define HAVE_LIBSCSI 1 ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_cam_cam_open_device" >&5 ++echo "${ECHO_T}$ac_cv_lib_cam_cam_open_device" >&6; } ++if test $ac_cv_lib_cam_cam_open_device = yes; then ++ cat >>confdefs.h <<\_ACEOF ++#define HAVE_LIBCAM 1 + _ACEOF ++ LIBCAM="-lcam" ++fi ++ # FreeBSD 3+ needs this + +- LIBS="-lscsi $LIBS" + +-fi +- # FreeBSD needs this + +-{ echo "$as_me:$LINENO: checking for cam_open_device in -lcam" >&5 +-echo $ECHO_N "checking for cam_open_device in -lcam... $ECHO_C" >&6; } +-if test "${ac_cv_lib_cam_cam_open_device+set}" = set; then ++{ echo "$as_me:$LINENO: checking for scsireq_enter in -lscsi" >&5 ++echo $ECHO_N "checking for scsireq_enter in -lscsi... $ECHO_C" >&6; } ++if test "${ac_cv_lib_scsi_scsireq_enter+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lcam $LIBS" ++LIBS="-lscsi $LIBS" + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF +@@ -6559,11 +6564,11 @@ + #ifdef __cplusplus + extern "C" + #endif +-char cam_open_device (); ++char scsireq_enter (); + int + main () + { +-return cam_open_device (); ++return scsireq_enter (); + ; + return 0; + } +@@ -6586,29 +6591,30 @@ + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then +- ac_cv_lib_cam_cam_open_device=yes ++ ac_cv_lib_scsi_scsireq_enter=yes + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_cv_lib_cam_cam_open_device=no ++ ac_cv_lib_scsi_scsireq_enter=no + fi + + rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ echo "$as_me:$LINENO: result: $ac_cv_lib_cam_cam_open_device" >&5 +-echo "${ECHO_T}$ac_cv_lib_cam_cam_open_device" >&6; } +-if test $ac_cv_lib_cam_cam_open_device = yes; then ++{ echo "$as_me:$LINENO: result: $ac_cv_lib_scsi_scsireq_enter" >&5 ++echo "${ECHO_T}$ac_cv_lib_scsi_scsireq_enter" >&6; } ++if test $ac_cv_lib_scsi_scsireq_enter = yes; then + cat >>confdefs.h <<_ACEOF +-#define HAVE_LIBCAM 1 ++#define HAVE_LIBSCSI 1 + _ACEOF + +- LIBS="-lcam $LIBS" ++ LIBS="-lscsi $LIBS" + + fi +- # FreeBSD 3+ needs this ++ # FreeBSD needs this ++ + if test "`uname`" != "IRIX" -a "`uname`" != "IRIX64"; then + { echo "$as_me:$LINENO: checking for library containing gethostbyaddr" >&5 + echo $ECHO_N "checking for library containing gethostbyaddr... $ECHO_C" >&6; } +@@ -6861,6 +6867,7 @@ + # OS/2 needs -lsyslog, BeOS needs -lbe + fi + ++ + { echo "$as_me:$LINENO: checking for jpeg_start_decompress in -ljpeg" >&5 + echo $ECHO_N "checking for jpeg_start_decompress in -ljpeg... $ECHO_C" >&6; } + if test "${ac_cv_lib_jpeg_jpeg_start_decompress+set}" = set; then +@@ -7073,7 +7080,7 @@ + _ACEOF + if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "sane_correct_jpeg_lib_version_found" >/dev/null 2>&1; then +- sane_cv_use_libjpeg="yes"; LIBS="${LIBS} -ljpeg"; ++ sane_cv_use_libjpeg="yes"; LIBJPEG="-ljpeg"; + { echo "$as_me:$LINENO: result: yes" >&5 + echo "${ECHO_T}yes" >&6; } + else +@@ -7091,6 +7098,8 @@ + + + ++ ++ + { echo "$as_me:$LINENO: checking for TIFFFdOpen in -ltiff" >&5 + echo $ECHO_N "checking for TIFFFdOpen in -ltiff... $ECHO_C" >&6; } + if test "${ac_cv_lib_tiff_TIFFFdOpen+set}" = set; then +@@ -7285,7 +7294,7 @@ + + fi + if test $ac_cv_header_tiffio_h = yes; then +- sane_cv_use_libtiff="yes"; LIBS="${LIBS} -ltiff" ++ sane_cv_use_libtiff="yes"; LIBTIFF="-ltiff" + fi + + +@@ -7294,6 +7303,8 @@ + + + ++ ++ + if test "${ac_cv_header_ieee1284_h+set}" = set; then + { echo "$as_me:$LINENO: checking for ieee1284.h" >&5 + echo $ECHO_N "checking for ieee1284.h... $ECHO_C" >&6; } +@@ -7467,7 +7478,7 @@ + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then +- sane_cv_use_libieee1284="yes"; LIBS="${LIBS} -lieee1284" ++ sane_cv_use_libieee1284="yes"; LIBIEEE1284="-lieee1284" + + else + echo "$as_me: failed program was:" >&5 +@@ -7495,6 +7506,8 @@ + + + ++ ++ + case "${host_os}" in + darwin*) # currently only enabled on MacOS X + use_pthread=yes +@@ -7656,6 +7669,7 @@ + #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF + ++ SANE_save_LIBS="${LIBS}" + + { echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 + echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6; } +@@ -7727,7 +7741,6 @@ + + fi + +- have_pthread=yes + + + +@@ -7823,12 +7836,16 @@ + cat >>confdefs.h <<_ACEOF + #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 + _ACEOF +- ++ cat >>confdefs.h <<\_ACEOF ++#define HAVE_PTHREAD 1 ++_ACEOF ++ have_pthread=yes; LIBPTHREAD=-lpthread + else + have_pthread=no; use_pthread=no + fi + done + ++ LIBS="${SANE_save_LIBS}" + + fi + +@@ -7855,68 +7872,6 @@ + echo "${ECHO_T}$use_pthread" >&6; } + + +- LOCKPATH_GROUP=uucp +- use_locking=yes +- case "${host_os}" in +- os2* ) +- use_locking=no +- ;; +- esac +- +- # +- # we check the user +- # Check whether --enable-locking was given. +-if test "${enable_locking+set}" = set; then +- enableval=$enable_locking; +- if test $enableval = yes ; then +- use_locking=yes +- else +- use_locking=no +- fi +- +-fi +- +- if test $use_locking = yes ; then +- +-# Check whether --with-group was given. +-if test "${with_group+set}" = set; then +- withval=$with_group; LOCKPATH_GROUP="$withval" +- +-fi +- +- # check if the group does exist +- lasterror="" +- touch sanetest.file +- chgrp $LOCKPATH_GROUP sanetest.file 2>/dev/null || lasterror=$? +- rm -f sanetest.file +- if test ! -z "$lasterror"; then +- { echo "$as_me:$LINENO: WARNING: Group $LOCKPATH_GROUP does not exist on this system." >&5 +-echo "$as_me: WARNING: Group $LOCKPATH_GROUP does not exist on this system." >&2;} +- { echo "$as_me:$LINENO: WARNING: Locking feature will be disabled." >&5 +-echo "$as_me: WARNING: Locking feature will be disabled." >&2;} +- use_locking=no +- fi +- fi +- if test $use_locking = yes ; then +- INSTALL_LOCKPATH=install-lockpath +- +-cat >>confdefs.h <<\_ACEOF +-#define ENABLE_LOCKING 1 +-_ACEOF +- +- else +- INSTALL_LOCKPATH= +- fi +- { echo "$as_me:$LINENO: checking whether to enable device locking" >&5 +-echo $ECHO_N "checking whether to enable device locking... $ECHO_C" >&6; } +- { echo "$as_me:$LINENO: result: $use_locking" >&5 +-echo "${ECHO_T}$use_locking" >&6; } +- if test $use_locking = yes ; then +- { echo "$as_me:$LINENO: Setting lockdir group to $LOCKPATH_GROUP" >&5 +-echo "$as_me: Setting lockdir group to $LOCKPATH_GROUP" >&6;} +- fi +- +- + + + +@@ -8040,9 +7995,9 @@ + if pkg-config --exists libgphoto2 ; then + with_gphoto2=`pkg-config --modversion libgphoto2` + CPPFLAGS="${CPPFLAGS} `pkg-config --cflags libgphoto2`" +- GPHOTO2_LIBS="`pkg-config --libs libgphoto2`" ++ LIBGPHOTO2="`pkg-config --libs libgphoto2`" + tmp_LIBS="" +-for param in ${GPHOTO2_LIBS}; do ++for param in ${LIBGPHOTO2}; do + case "${param}" in + -l*) + tmp_LIBS="${tmp_LIBS} ${param}" +@@ -8052,16 +8007,17 @@ + ;; + esac + done +-GPHOTO2_LIBS="${tmp_LIBS}" ++LIBGPHOTO2="${tmp_LIBS}" + unset tmp_LIBS + unset param + + LDFLAGS="$LDFLAGS $GPHOTO2_LDFLAGS" + ++ old_LIBS="$LIBS" ++ LIBS="$LIBS $LIBGPHOTO2" ++ + + +- saved_LIBS="${LIBS}" +- LIBS="${LIBS} ${GPHOTO2_LIBS}" + # Make sure we an really use the library + + for ac_func in gp_camera_init +@@ -8155,11 +8111,12 @@ + _ACEOF + HAVE_GPHOTO2=true + else +- LIBS="${saved_LIBS}" +- HAVE_GPHOTO2=false ++ HAVE_GPHOTO2=false + fi + done + ++ ++ LIBS="$old_LIBS" + else + HAVE_GPHOTO2=false + fi +@@ -8167,6 +8124,73 @@ + fi + + ++ ++ ++ ++ LOCKPATH_GROUP=uucp ++ use_locking=yes ++ case "${host_os}" in ++ os2* ) ++ use_locking=no ++ ;; ++ esac ++ ++ # ++ # we check the user ++ # Check whether --enable-locking was given. ++if test "${enable_locking+set}" = set; then ++ enableval=$enable_locking; ++ if test $enableval = yes ; then ++ use_locking=yes ++ else ++ use_locking=no ++ fi ++ ++fi ++ ++ if test $use_locking = yes ; then ++ ++# Check whether --with-group was given. ++if test "${with_group+set}" = set; then ++ withval=$with_group; LOCKPATH_GROUP="$withval" ++ ++fi ++ ++ # check if the group does exist ++ lasterror="" ++ touch sanetest.file ++ chgrp $LOCKPATH_GROUP sanetest.file 2>/dev/null || lasterror=$? ++ rm -f sanetest.file ++ if test ! -z "$lasterror"; then ++ { echo "$as_me:$LINENO: WARNING: Group $LOCKPATH_GROUP does not exist on this system." >&5 ++echo "$as_me: WARNING: Group $LOCKPATH_GROUP does not exist on this system." >&2;} ++ { echo "$as_me:$LINENO: WARNING: Locking feature will be disabled." >&5 ++echo "$as_me: WARNING: Locking feature will be disabled." >&2;} ++ use_locking=no ++ fi ++ fi ++ if test $use_locking = yes ; then ++ INSTALL_LOCKPATH=install-lockpath ++ ++cat >>confdefs.h <<\_ACEOF ++#define ENABLE_LOCKING 1 ++_ACEOF ++ ++ else ++ INSTALL_LOCKPATH= ++ fi ++ { echo "$as_me:$LINENO: checking whether to enable device locking" >&5 ++echo $ECHO_N "checking whether to enable device locking... $ECHO_C" >&6; } ++ { echo "$as_me:$LINENO: result: $use_locking" >&5 ++echo "${ECHO_T}$use_locking" >&6; } ++ if test $use_locking = yes ; then ++ { echo "$as_me:$LINENO: Setting lockdir group to $LOCKPATH_GROUP" >&5 ++echo "$as_me: Setting lockdir group to $LOCKPATH_GROUP" >&6;} ++ fi ++ ++ ++ ++ + { echo "$as_me:$LINENO: checking for sane_init in -lsane" >&5 + echo $ECHO_N "checking for sane_init in -lsane... $ECHO_C" >&6; } + if test "${ac_cv_lib_sane_sane_init+set}" = set; then +@@ -11576,8 +11600,7 @@ + + + if test "${ac_cv_header_usb_h}" = "yes" && test "$USE_LIBUSB" = "yes" ; then +- +-{ echo "$as_me:$LINENO: checking for usb_interrupt_read in -lusb" >&5 ++ { echo "$as_me:$LINENO: checking for usb_interrupt_read in -lusb" >&5 + echo $ECHO_N "checking for usb_interrupt_read in -lusb... $ECHO_C" >&6; } + if test "${ac_cv_lib_usb_usb_interrupt_read+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +@@ -11639,12 +11662,10 @@ + { echo "$as_me:$LINENO: result: $ac_cv_lib_usb_usb_interrupt_read" >&5 + echo "${ECHO_T}$ac_cv_lib_usb_usb_interrupt_read" >&6; } + if test $ac_cv_lib_usb_usb_interrupt_read = yes; then +- cat >>confdefs.h <<_ACEOF ++ cat >>confdefs.h <<\_ACEOF + #define HAVE_LIBUSB 1 + _ACEOF +- +- LIBS="-lusb $LIBS" +- ++ LIBUSB="-lusb" + fi + + if test "${ac_cv_lib_usb_usb_interrupt_read}" = "yes" ; then +@@ -11652,6 +11673,7 @@ + fi + fi + ++ + if sparc64 -q > /dev/null 2>&1 ; then + + cat >>confdefs.h <<\_ACEOF +@@ -12423,7 +12445,7 @@ + ;; + *-*-irix6*) + # Find out which ABI we are using. +- echo '#line 12426 "configure"' > conftest.$ac_ext ++ echo '#line 12448 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +@@ -14866,11 +14888,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:14869: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:14891: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:14873: \$? = $ac_status" >&5 ++ echo "$as_me:14895: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -15134,11 +15156,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:15137: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:15159: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:15141: \$? = $ac_status" >&5 ++ echo "$as_me:15163: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -15238,11 +15260,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:15241: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:15263: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:15245: \$? = $ac_status" >&5 ++ echo "$as_me:15267: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -17546,7 +17568,7 @@ + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < conftest.$ac_ext <&5) ++ (eval echo "\"\$as_me:20011: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:19993: \$? = $ac_status" >&5 ++ echo "$as_me:20015: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -20090,11 +20112,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:20093: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:20115: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:20097: \$? = $ac_status" >&5 ++ echo "$as_me:20119: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -21660,11 +21682,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:21663: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:21685: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:21667: \$? = $ac_status" >&5 ++ echo "$as_me:21689: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -21764,11 +21786,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:21767: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:21789: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:21771: \$? = $ac_status" >&5 ++ echo "$as_me:21793: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -23966,11 +23988,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:23969: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:23991: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:23973: \$? = $ac_status" >&5 ++ echo "$as_me:23995: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -24234,11 +24256,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:24237: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:24259: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:24241: \$? = $ac_status" >&5 ++ echo "$as_me:24263: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -24338,11 +24360,11 @@ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:24341: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:24363: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:24345: \$? = $ac_status" >&5 ++ echo "$as_me:24367: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -27957,22 +27979,22 @@ + DL_LIB!$DL_LIB$ac_delim + DYNAMIC_FLAG!$DYNAMIC_FLAG$ac_delim + USE_LINKS!$USE_LINKS$ac_delim +-INSTALL_LOCKPATH!$INSTALL_LOCKPATH$ac_delim +-LOCKPATH_GROUP!$LOCKPATH_GROUP$ac_delim ++LIBM!$LIBM$ac_delim ++LIBCAM!$LIBCAM$ac_delim ++LIBJPEG!$LIBJPEG$ac_delim ++LIBTIFF!$LIBTIFF$ac_delim ++LIBIEEE1284!$LIBIEEE1284$ac_delim ++LIBPTHREAD!$LIBPTHREAD$ac_delim + HAVE_GPHOTO2!$HAVE_GPHOTO2$ac_delim + GPHOTO2_LDFLAGS!$GPHOTO2_LDFLAGS$ac_delim ++LIBGPHOTO2!$LIBGPHOTO2$ac_delim ++INSTALL_LOCKPATH!$INSTALL_LOCKPATH$ac_delim ++LOCKPATH_GROUP!$LOCKPATH_GROUP$ac_delim + ALLOCA!$ALLOCA$ac_delim + LIBOBJS!$LIBOBJS$ac_delim ++LIBUSB!$LIBUSB$ac_delim + LN_S!$LN_S$ac_delim + ECHO!$ECHO$ac_delim +-AR!$AR$ac_delim +-RANLIB!$RANLIB$ac_delim +-STRIP!$STRIP$ac_delim +-DLLTOOL!$DLLTOOL$ac_delim +-AS!$AS$ac_delim +-OBJDUMP!$OBJDUMP$ac_delim +-CXX!$CXX$ac_delim +-CXXFLAGS!$CXXFLAGS$ac_delim + _ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then +@@ -28014,6 +28036,14 @@ + ac_delim='%!_!# ' + for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF ++AR!$AR$ac_delim ++RANLIB!$RANLIB$ac_delim ++STRIP!$STRIP$ac_delim ++DLLTOOL!$DLLTOOL$ac_delim ++AS!$AS$ac_delim ++OBJDUMP!$OBJDUMP$ac_delim ++CXX!$CXX$ac_delim ++CXXFLAGS!$CXXFLAGS$ac_delim + ac_ct_CXX!$ac_ct_CXX$ac_delim + CXXCPP!$CXXCPP$ac_delim + F77!$F77$ac_delim +@@ -28035,7 +28065,7 @@ + LTLIBOBJS!$LTLIBOBJS$ac_delim + _ACEOF + +- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 19; then ++ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 27; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 --- sane-backends-1.0.19.orig/debian/patches/21_sane-config.in_no_rpath.dpatch +++ sane-backends-1.0.19/debian/patches/21_sane-config.in_no_rpath.dpatch @@ -0,0 +1,43 @@ +#!/bin/sh -e +## 02_sane-config.in_no_rpath.dpatch by Julien BLACHE +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Do not output rpath in --ldflags. + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in + -patch) patch $patch_opts -p1 < $0;; + -unpatch) patch $patch_opts -p1 -R < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad sane-backends-1.0.19~cvs20071213~/tools/sane-config.in sane-backends-1.0.19~cvs20071213/tools/sane-config.in +--- sane-backends-1.0.19~cvs20071213~/tools/sane-config.in 2007-12-25 22:50:55.000000000 +0100 ++++ sane-backends-1.0.19~cvs20071213/tools/sane-config.in 2007-12-25 22:52:02.244891946 +0100 +@@ -7,12 +7,12 @@ + PACKAGE="@PACKAGE@" + scriptname="sane-config" + +-LINKER_RPATH="@LINKER_RPATH@" ++LINKER_RPATH="" + + prefix="@prefix@" + exec_prefix="@exec_prefix@" + +-LIBS="@LIBS@ @DL_LIB@" ++LIBS="@LIBS@" + pkgincludedir="@pkgincludedir@" + pkglibdir="@pkglibdir@" + includedir="@includedir@" --- sane-backends-1.0.19.orig/debian/po/pt_BR.po +++ sane-backends-1.0.19/debian/po/pt_BR.po @@ -0,0 +1,112 @@ +# sane-backends Brazilian Portuguese translation +# Copyright (C) 2008 THE sane-backends'S COPYRIGHT HOLDER +# This file is distributed under the same license as the sane-backends package. +# Eder L. Marques (frolic) , 2008. +# +msgid "" +msgstr "pt_BR utf-8\n" +"Project-Id-Version: sane-backends-1.0.19-7\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-05-06 14:46-0300\n" +"Last-Translator: Eder L. Marques (frolic) \n" +"Language-Team: l10n portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "Habilitar o saned como um servidor autônomo?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "The saned server, when enabled, makes scanners available over the network." +msgstr "" +"O servidor saned, quando habilitado, torna os scanners disponíveis através da " +"rede." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" +"Existem duas maneiras de executar o saned:\n" +" - como um serviço inetd, iniciado pelo superservidor inetd. Neste modo,\n" +"o saned é iniciado quando necessário pelo inetd sempre que um cliente tentar " +"conectar ao servidor;\n" +" - como um daemon autônomo, iniciado na inicialização do sistema. Neste modo,\n" +"o saned executa em segundo plano por si só e escuta por conexões de clientes." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "" +"Quando executado no modo autônomo, o saned publica-se na rede e pode ser " +"detectado automaticamente pelos clientes SANE sem nenhuma configuração no " +"lado do cliente. Você continua precisando configurar o servidor para aceitar " +"conexões de seus clientes." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "Aceite esta opção se você quer fazer uso desse recurso." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "Adicionar o usuário saned ao grupo scanner?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "" +"O servidor saned, quando habilitado, torna os scanners disponíveis através da " +"rede. Ao aplicar diferentes permissões a diferentes scanners conectados a sua " +"máquina, você pode controlar quais estarão disponíveis através da rede." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "" +"Leia /usr/share/doc/sane-utils/README.Debian para detalhes sobre como " +"gerenciar permissões para o saned. Por padrão, o saned é executado sob o " +"usuário e grupo saned." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "" +"Aceite esta opção se você quer tornar todos os scanners disponíveis através " +"da rede sem restrição." + --- sane-backends-1.0.19.orig/debian/po/eu.po +++ sane-backends-1.0.19/debian/po/eu.po @@ -0,0 +1,109 @@ +# translation of sane-backends1.0.19-7-eu.po to Euskara +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Piarres Beobide , 2008. +msgid "" +msgstr "" +"Project-Id-Version: sane-backends1.0.19-7-eu\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-05-06 22:03+0200\n" +"Last-Translator: Piarres Beobide \n" +"Language-Team: Euskara \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "Saned bakarkako deabru gisa gaitu?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "The saned server, when enabled, makes scanners available over the network." +msgstr "Saned zerbitzariak, gaiturik dagoenean, eskanerrak sare biez eskuragarri egiten ditu." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" +"Saned exekutatzeko bi modu ezberdin daude:\n" +" - inetd zerbitzu gisa, inetd superzerbitzariak abiarazia. Modu honetan\n" +"saned behar denean inetd bidez abiaraziko da bezero batek zerbitzarira " +"konektatzen saiatzean;\n" +" - bakarkako deabru gisa, sistema abioan abiarazia. Modu honetan, saned\n" +"atzeko planoan exekutatzen da eta bezero konexioa itxoiten ditu." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "" +"Bakarkako moduan exekutatzen, saned-ek bere burua sarean aurkezten du " +"eta automatikoki atzeman dezakete SANE bezeroek konfigurazio berezirik " +"gabe. Zuk zerbitzaria konfiguratu behar duzu bezeroetatik konexioak onartzeko." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "Aukera hau onartu ezaugarri hau erabili nahi baduzu." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "Gehitu saned erabiltzailea scanner taldera?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "" +"Saned zerbitzariak, gaiturik dagoenean, eskanerrak sarez bide erabilgarri " +"egiten ditu. Zure makinara konektaturik dagoen eskaner bakoitzari baimen " +"ezberdinak ezarriaz, horietariko zein sare bidez erabilgarri izango diren kontrola " +"dezakezu." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "" +"Irakurri /usr/share/doc/sane-utils/README.Debian saned-eko baimen kudeaketari buruz " +"xehetasun gehiagorako. Lehenespen bezala saned zerbitzaria saned erabiltzaile eta " +"taldeaz abiaraztren da." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "" +"Onartu aukera hau zure eskaner guztiak sare bidez eta mugarik gabe erabilgarri " +"egin bahi badituzu." + --- sane-backends-1.0.19.orig/debian/po/es.po +++ sane-backends-1.0.19/debian/po/es.po @@ -0,0 +1,133 @@ +# sane-backends translation to spanish +# Copyright (C) 2008 Software in the Public Interest +# This file is distributed under the same license as the sane-backends package. +# Changes: +# - Initial translation +# Ignacio Mondino , 2008 +# Traductores, si no conoce el formato PO, merece la pena leer la +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Equipo de traducción al español, por favor lean antes de traducir +# los siguientes documentos: +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish +# especialmente las notas de traducción en +# http://www.debian.org/intl/spanish/notas +# - La guía de traducción de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# +msgid "" +msgstr "" +"Project-Id-Version: sane-backends 1.0.19-13\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-09-16 20:32-0300\n" +"Last-Translator: Ignacio Mondino \n" +"Language-Team: Debian Spanish team \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "¿Desea activar «saned» como un servidor independiente?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"The saned server, when enabled, makes scanners available over the network." +msgstr "" +"Se puede acceder a los escáneres a través de la red cuando se activa el " +"servidor «saned»." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" +"Hay dos maneras de ejecutar «saned»;\n" +" - como un servicio «inetd», iniciado por el súper servidor «inetd». En este " +"modo, «saned» se inicia cuando inetd lo necesita cada vez que el cliente " +"intenta conectarse al servidor;\n" +" - como un demonio independiente, lanzado al inicio del sistema. En\n" +"este modo «saned» se ejecuta en segundo plano por sí mismo y escucha conexiones " +"de los clientes." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "" +"En modo independiente, «saned» se anuncia por sí mismo en la red y puede " +"detectarse automáticamente por los clientes SANE sin configuración por parte " +"de los mismos. Aun así, será necesario que configure el servidor para aceptar " +"conexiones de los clientes." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "Acepte esta opción si desea utilizar esta característica." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "¿Desea agregar al usuario «saned» al grupo «scanner»?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "" +"Se puede acceder a los escáneres a través de la red cuando está activado el " +"servidor «saned». Puede controlar qué dispositivos se ofrecerán de esta forma " +"aplicando distintos permisos a los distintos escáneres conectados a su " +"equipo." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "" +"Lea «/usr/share/doc/sane-utils/README.Debian» para obtener detalles sobre como " +"gestionar los permisos para «saned». Por omisión, saned se ejecuta con el " +"usuario y grupo «saned»." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "" +"Acepte esta opción si desea que todos los escáneres estén disponibles a " +"través de la red sin restricciones." + --- sane-backends-1.0.19.orig/debian/po/fr.po +++ sane-backends-1.0.19/debian/po/fr.po @@ -0,0 +1,114 @@ +# Translation of sane-backends debconf templates to French +# Copyright (C) 2008 Christian Perrier +# This file is distributed under the same license as the sane-backends package. +# +# Christian Perrier , 2008. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-05-15 22:23+0200\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "Faut-il activer le serveur « saned » ?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"The saned server, when enabled, makes scanners available over the network." +msgstr "" +"Le serveur « saned », une fois activé, rend disponibles les scanners sur le " +"réseau." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" +"Il existe deux méthodes pour exécuter le serveur :\n" +" - via le superserveur inetd : dans ce mode, le serveur est lancé\n" +" à la demande quand un client se connecte ; \n" +" - en tant que démon autonome, lancé au démarrage du système : dans\n" +" ce mode, le serveur fonctionne en permanence en tâche de fond, en\n" +" attente des connexions des clients." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "" +"En mode autonome, le démon s'annonce sur le réseau et peut alors être " +"automatiquement détecté par les clients SANE sans nécessiter de " +"configuration particulière de ces clients. Il restera nécessaire de " +"configurer le serveur pour qu'il accepte les connexions des clients." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "" +"Si vous choisissez cette option, le serveur sera lancé au démarrage du " +"système." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "Faut-il ajouter l'utilisateur « saned » au groupe « scanner » ?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "" +"Lorsque le serveur saned est activé, les scanners deviennent accessibles via " +"le réseau. Il est possible d'autoriser ou non l'accès via le réseau aux " +"différents scanners de cette machine, en modifiant les permissions de chacun " +"d'eux." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "" +"Veuillez lire le fichier /usr/share/doc/sane-utils/README.Debian pour plus " +"d'informations sur le gestion des permissions pour saned. Par défaut, le " +"démon est exécuté avec les privilèges de l'utilisateur et du groupe « saned »." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "" +"Si vous choisissez cette option, tous les scanners deviendront accessibles " +"via le réseau sans restriction." --- sane-backends-1.0.19.orig/debian/po/templates.pot +++ sane-backends-1.0.19/debian/po/templates.pot @@ -0,0 +1,91 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"The saned server, when enabled, makes scanners available over the network." +msgstr "" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "" --- sane-backends-1.0.19.orig/debian/po/sv.po +++ sane-backends-1.0.19/debian/po/sv.po @@ -0,0 +1,95 @@ +# translation of sane-backends_1.0.19-10_sv.po to swedish +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Martin Bagge , 2008. +msgid "" +msgstr "" +"Project-Id-Version: sane-backends_1.0.19-10_sv\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-06-21 12:03+0200\n" +"Last-Translator: Martin Bagge \n" +"Language-Team: swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "Aktivera saned som ensamstående tjänst?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "The saned server, when enabled, makes scanners available over the network." +msgstr "När saned är aktiverad så kan man komma åt scanrarna över nätverket." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" +"Det finns två sätt att köra saned:\n" +" - som en inetd-tjänst, startad av inetd. I detta läge startas saned\n" +"när det behövs av inetd.\n" +" - som ensamstående tjänst, startad av systemet vid uppstart. I detta läge körs saned i bakgrunden hela tiden och lyssnar efter anslutningar från klienter." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "När saned körs i ensamstående läge så meddelar saned det till nätverket och kan på så vis automatiskt upptäckas av SANE-klienter utan att det behöver ställas in något på klient-sidan. Du behöver dock fortfarande ställa in tjänsten att ta emot anslutningar från klienterna." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "Välj detta alternativet om du vill använda denna funktionen." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "Lägg till en saned-användare till scanner-gruppen?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "När saned är aktiverad så kan man komma åt scanrarna över nätverket. Genom att ange olika regler till de olika scanrarna så kan du kontrollera vilka som ska vara tillgängliga över nätverket." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "Läs /usr/share/doc/sane-utils/README.Debian för detaljerad information om hur man ställer in reglerna för saned. I standardläget körs saned i en egen användare och grupp 'saned'." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "Ange detta alternativ om du vill göra alla dina scanrar tillgängliga över nätverket utan några restriktioner." + --- sane-backends-1.0.19.orig/debian/po/it.po +++ sane-backends-1.0.19/debian/po/it.po @@ -0,0 +1,110 @@ +# Translation of sane-backends debconf templates to Italian +# This file is distributed under the same license as the sane-backends package. +# Luca Monducci , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: sane-backends 1.0.19\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-12-02 15:35+0100\n" +"Last-Translator: Luca Monducci \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "Attivare saned come servizio autonomo?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"The saned server, when enabled, makes scanners available over the network." +msgstr "" +"Il server saned, quando attivo, rende gli scanner disponibili tramite la " +"rete." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" +"Il server può essere eseguito in due modalità:\n" +" - come servizio di inetd, attivato dal superserver inetd. In questa\n" +" modalità saned è attivato solo quando un client prova a connettersi\n" +" al server;\n" +" - come demone autonomo, attivato all'avvio del sistema. In questa\n" +" modalità saned è sempre attivo e in ascolto per le connessioni dei\n" +" client." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "" +"In modalità autonoma, saned si annuncia da solo sulla rete e può essere " +"rilevato automaticamente dai client SANE senza configurare i client. È " +"comunque necessario configurare il server per accettare le connessioni dai " +"client." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "Accettare per utilizzare questa funzione." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "Aggiungere l'utente saned al gruppo scanner?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "" +"Il server saned, quando attivo, rende gli scanner disponibili tramite la " +"rete. È possibile applicare permessi diversi a ogni scanner collegato alla " +"macchina in modo da controllare quali saranno disponibili tramite la rete." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "" +"Per sapere come gestire i permessi per saned, leggere /usr/share/doc/sane-" +"utils/README.Debian. Con la configurazione predefinita, saned viene eseguito " +"con utente e gruppo saned." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "" +"Accettare per rendere tutti i propri scanner disponibili sulla rete senza " +"alcuna restrizione." --- sane-backends-1.0.19.orig/debian/po/ru.po +++ sane-backends-1.0.19/debian/po/ru.po @@ -0,0 +1,113 @@ +# translation of ru.po to Russian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Yuri Kozlov , 2008. +msgid "" +msgstr "" +"Project-Id-Version: sane-backends 1.0.19-7\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-05-17 22:48+0400\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "Запускать saned как отдельную службу?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "The saned server, when enabled, makes scanners available over the network." +msgstr "" +"Если включена служба saned, то сканеры становятся доступными " +"по сети." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" +"saned может запускаться двумя способами:\n" +" - как служба inetd с помощью суперсервера inetd. В этом режиме\n" +"saned запускается в момент, когда в inetd поступает клиентский запрос " +"на подключение к серверу;\n" +" - в виде самостоятельной службы при включении компьютера. В этом режиме saned\n" +"работает в фоновом режиме и сам принимает клиентские подключения." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "" +"При работе в виде самостоятельной службы, saned анонсирует себя в сети " +"и может быть автоматически найден клиентами SANE без выполнения " +"настроек на их стороне. Вам нужно только настроить сервер для " +"приёма запросов от клиентов." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "Ответьте утвердительно, если хотите использовать эту возможность." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "Добавить учётную запись saned в группу scanner?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "" +"Если включена служба saned, то сканеры становятся доступными " +"через сеть. Назначая различные права на конкретные сканеры, " +"подключённые к компьютеру, вы можете сделать доступными через " +"сеть только нужные." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "" +"В файле /usr/share/doc/sane-utils/README.Debian подробно описано, " +"как управлять правами saned. По умолчанию, saned запускается с правами " +"учётной записи и группы saned." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "" +"Ответьте утвердительно, если хотите, чтобы все сканеры " +"были доступны по сети без ограничений." + --- sane-backends-1.0.19.orig/debian/po/de.po +++ sane-backends-1.0.19/debian/po/de.po @@ -0,0 +1,111 @@ +# Translation of sane-backends debconf templates to German +# Copyright (C) Helge Kreutzmann , 2008. +# This file is distributed under the same license as the sane-backends package. +# +msgid "" +msgstr "" +"Project-Id-Version: sane-backends 1.0.19-7\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-05-06 22:06+0200\n" +"Last-Translator: Helge Kreutzmann \n" +"Language-Team: de \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "Aktiviere Saned als Einzel-Server?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"The saned server, when enabled, makes scanners available over the network." +msgstr "" +"Der Saned-Server stellt Scanner ber das Netz zu Verfgung, wenn er aktiviert " +"ist." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" +"Es gibt zwei Arten, Saned zu betreiben:\n" +" - als Inetd-Service, gestartet ber den Inetd-Superserver. In diesem Modus\n" +" wird Saned immer dann vom Inetd gestartet, wenn ein Scanner einen\n" +" Verbindungsaufbau startet\n" +" - als Einzel-Server, gestartet beim Systemstart. In diesem Modus luft Saned\n" +" selbst im Hintergrund und wartet auf Anfragen von Clients" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "" +"Im Einzel-Server-Modus macht sich Saned ber das Netz bekannt und kann von " +"SANE-Clients ohne Konfiguration auf der Clientseite automatisch erkannt " +"werden. Sie mssen dennoch den Server konfigurieren, damit er Verbindungen " +"von den Clients akzeptiert." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "" +"Akzeptieren Sie diese Option, falls Sie diese Funktionalitt nutzen wollen." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "Saned-Benutzer zu der Scanner-Gruppe hinzufgen?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "" +"Falls er aktiviert wird, stellt der Saned-Server Scanner ber das Netz " +"bereit. Durch Verteilen verschiedener Rechte auf verschiedene Scanner an " +"Ihrer Maschine knnen Sie steuern, welche davon ber Netz bereitgestellt " +"werden." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "" +"Lesen Sie /usr/share/doc/sane-utils/README.Debian fr Details ber die " +"Rechteverwaltung fr Saned. Standardmig luft Saned unter dem saned-" +"Benutzer und dessen Gruppe." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "" +"Akzeptieren Sie diese Option, falls Sie alle Ihre Scanner ber das Netz ohne " +"Einschrnkungen zur Verfgung stellen wollen." --- sane-backends-1.0.19.orig/debian/po/pt.po +++ sane-backends-1.0.19/debian/po/pt.po @@ -0,0 +1,109 @@ +# translation of sane-backends debconf to Portuguese +# Copyright (C) 2008 Américo Monteiro +# This file is distributed under the same license as the sane-backends package. +# +# Américo Monteiro , 2008. +msgid "" +msgstr "" +"Project-Id-Version: sane-backends 1.0.19-7\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-05-05 19:22+0100\n" +"Last-Translator: Américo Monteiro \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "Activar o saned como servidor autónomo?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "The saned server, when enabled, makes scanners available over the network." +msgstr "O servidor saned, quando activo, torna os scanners disponíveis na rede. " + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" +"Existem duas maneiras de correr o saned:\n" +"- como um serviço inetd, arrancado pelo superservidor inetd. Neste modo,\n" +"o saned arranca quando necessário pelo inetd sempre que um cliente tenta " +"ligar-se ao servidor;\n" +"- como um deamon standalone, arrancado com o arranque do sistema. Neste modo,\n" +"o saned corre autónomo nos bastidores e escuta por ligações de clientes." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "" +"Quando corre em modo autónomo, o saned anuncia-se a si próprio na rede e " +"pode ser detectado automaticamente pelos clientes SANE sem nenhuma " +"configuração no lado do cliente. Você ainda precisa de configurar o servidor " +"para aceitar ligações dos seus clientes." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "Aceite esta opção se deseja usar esta funcionalidade." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "Adicionar o utilizador saned ao grupo scanner?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "" +"O servidor saned, quando activo, torna os scanners disponíveis na rede. " +"Ao aplicar permissões diferentes permissões aos vários scanners ligados à " +"sua máquina, você pode controlar quais deles estarão disponíveis na rede." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "" +"Leia /usr/share/doc/sane-utils/README.Debian para detalhes em como gerir " +"permissões para o saned. Por pré-definição, o saned corre sob o utilizador e " +"grupo saned." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "" +"Aceite esta opção se deseja tornar todos os seus scanners disponíveis na rede " +"sem restrições." + --- sane-backends-1.0.19.orig/debian/po/fi.po +++ sane-backends-1.0.19/debian/po/fi.po @@ -0,0 +1,38 @@ +msgid "" +msgstr "" +"Project-Id-Version: sane-backends\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-04 12:29+0200\n" +"PO-Revision-Date: 2008-05-10 23:01+0200\n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Finnish\n" +"X-Poedit-Country: FINLAND\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Add saned user to the scanner group?" +msgstr "Lisätäänkö saned-käyttäjä ryhmään scanner?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "The saned server, when enabled, makes scanners available over the network. By applying different permissions to the different scanners connected to your machine, you can control which ones will be made available over the network." +msgstr "Ollessaan käytössä saned-palvelin mahdollistaa skannerien käytön verkon yli. Asettamalla eri oikeuksia järjestelmään kytketyille skannereille voidaan valita mitkä niistä ovat käytettävissä verkon kautta." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Read /usr/share/doc/sane-utils/README.Debian for details on how to manage permissions for saned. By default, saned is run under the saned user and group." +msgstr "Tiedostossa /usr/share/doc/sane-utils/README.Debian on lisätietoja oikeuksien hallinnasta. Oletuksena saned ajetaan käyttäjällä ja ryhmällä saned." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make all your scanners available over the network without restriction." +msgstr "Valitse tämä vaihtoehto, jos kaikki skannerit halutaan asettaa käytettäväksi verkon yli ilman rajoituksia." + --- sane-backends-1.0.19.orig/debian/po/cs.po +++ sane-backends-1.0.19/debian/po/cs.po @@ -0,0 +1,107 @@ +# Czech translation of sane-backends debconf messages. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the sane-backends package. +# Miroslav Kure , 2008 +# +msgid "" +msgstr "" +"Project-Id-Version: sane-backends\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-05-09 15:17+0200\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "Povolit saned jako samostatný server?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"The saned server, when enabled, makes scanners available over the network." +msgstr "Pokud je saned server povolený, zpřístupňuje dostupné scannery přes síť." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" +"Existují dva způsoby, jak spouštět saned:\n" +" - jako službu inetd, kterou startuje superserver inetd. V tomto režimu " +"je saned spuštěn pouze v případě, že se klient snaží připojit k serveru;\n" +" - jako samostatný daemon, spouštěný při zavádění systému. V tomto režimu" +"běží saned celou dobu na pozadí a sám naslouchá příchozím spojením." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "" +"Při spuštění jako samostatný daemon se saned sám nabízí na síti a SANE " +"klienti ho mohou rozpoznat automaticky, bez dalšího nastavování na straně " +"klienta. Stále však budete muset nastavit server, aby přijímal příchozí " +"spojení od klientů." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "Chcete-li této vlastnosti využít, odpovězte kladně." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "Přidat uživatele saned do skupiny scanner?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "" +"Pokud je saned server povolený, zpřístupňuje dostupné scannery přes síť. " +"Nastavením různých přístupových oprávnění ke scannerům připojeným k tomuto " +"počítači můžete řídit, které scannery mají být přístupné přes síť." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "" +"Podrobnosti o správě oprávnění pro saned se dočtete v /usr/share/doc/" +"sane-utils/README.Debian. Ve výchozím nastavení se saned spouští pod " +"uživatelem i skupinou saned." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "" +"Chcete-li zpřístupnit přes síť všechny scannery bez omezení, tuto možnost " +"povolte." --- sane-backends-1.0.19.orig/debian/po/ja.po +++ sane-backends-1.0.19/debian/po/ja.po @@ -0,0 +1,109 @@ +# Copyright (C) 2008 Julien BLACHE +# as sane-backends Debian package's copyright holder. +# This file is distributed under the same license as the sane-backends package. +# Hideki Yamane (Debian-JP) , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: sane-backends 1.0.19-15\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-07-31 11:21+0200\n" +"Last-Translator: Hideki Yamane (Debian-JP) \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "saned をスタンドアロンなサーバとして有効にしますか?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"The saned server, when enabled, makes scanners available over the network." +msgstr "" +"有効にした場合、saned サーバはネットワーク越しにスキャナを利用できるようになります。" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" +"saned を実行するには二通りのやり方があります:\n" +" - inetd サービスとして実行し、inetd スーパーサーバから起動する。この場合、" +"saned はクライアントが接続しようとしてきた時にいつでも inetd の要請に応じて起動" +"されます。\n" +" - システム起動時にスタンドアロンなデーモンとして実行する。この場合、saned は完全に" +"バックグラウンドで実行されクライアントからの接続を待ちつづけます。" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "" +"スタンドアロンで実行している場合、saned はネットワークに対して存在していることを" +"通知します。そのため、クライアント側では何の設定もせずに SANE クライアントがサーバ" +"を自動的に認識できるようになります。サーバの設定でクライアントからの接続を受け付け" +"られるようにする必要もあります。" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "この機能を使いたい場合はこのオプションを有効にしてください。" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "saned ユーザを scanner グループに追加しますか?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "" +"saned サーバが有効にされた場合、ネットワーク越しにスキャナが利用出来るようになり" +"ます。マシンに接続されているスキャナごとに異なった設定を適用することで、どれがネット" +"ワーク越しに利用できるようにするかをコントロール出来ます。" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "" +"saned の権限の取扱い方については、詳細は /usr/share/doc/sane-utils/README.Debian " +"を参照してください。デフォルトでは、saned は saned ユーザと saned グループの権限で" +"動作します。" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "" +"特に制限無く全てのスキャナを有効にしたい場合は、このオプションを有効にしてください。" + --- sane-backends-1.0.19.orig/debian/po/vi.po +++ sane-backends-1.0.19/debian/po/vi.po @@ -0,0 +1,97 @@ +# Vietnamese translation for SANE Backends. +# Copyright © 2008 Free Software Foundation, Inc. +# Clytie Siddall , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: sane-backends 1.0.19-7\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-05-10 21:05+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.7b3\n" + +#: ../sane-utils.templates:1001 +#. Type: boolean +#. Description +msgid "Enable saned as a standalone server?" +msgstr "Bật saned làm trình phục vụ độc lập không?" + +#: ../sane-utils.templates:1001 +#. Type: boolean +#. Description +msgid "" +"The saned server, when enabled, makes scanners available over the network." +msgstr "Bật trình phục vụ saned thì làm cho máy quét sẵn sàng trên khắp mạng." + +#: ../sane-utils.templates:1001 +#. Type: boolean +#. Description +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "Có hai phương pháp chạy saned:\n" +" • làm dịch vụ inetd, được khởi chạy bởi siêu trình phục vụ inetd.\n" +" Trong chế độ này, saned được inetd khởi chạy theo yêu cầu,\n" +" khi ứng dụng khách thử kết nối đến trình phục vụ.\n" +" • làm trình nền độc lập, được khởi chạy khi khởi động hệ thống.\n" +" Trong chế độ này, saned chạy một mình về nền,\n" +" và lắng nghe kết nối của ứng dụng khách." + +#: ../sane-utils.templates:1001 +#. Type: boolean +#. Description +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "Khi chạy trong chế độ độc lập, saned tự quảng cáo trên mạng, và có thể được tự động phát hiện bởi các ứng dụng khách SANE, không cần cấu hình riêng bên khách. Bạn vẫn còn cần phải cấu hình trình phục vụ để chấp nhận kết nối từ ứng dụng khách." + +#: ../sane-utils.templates:1001 +#. Type: boolean +#. Description +msgid "Accept this option if you want to make use of this feature." +msgstr "Muốn dùng tính năng đó thì hãy bật tùy chọn này." + +#: ../sane-utils.templates:2001 +#. Type: boolean +#. Description +msgid "Add saned user to the scanner group?" +msgstr "Thêm người dùng saned vào nhóm scanner không?" + +#: ../sane-utils.templates:2001 +#. Type: boolean +#. Description +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "Bật trình phục vụ saned thì làm cho máy quét sẵn sàng trên khắp mạng. Bằng cách áp dụng các quyền hạn khác nhau cho những máy quét khác nhau được kết nối đến máy này, bạn có thể điều khiển những máy quét sẽ được công bố qua mạng." + +#: ../sane-utils.templates:2001 +#. Type: boolean +#. Description +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "Xem tài liệu Đọc Đi « /usr/share/doc/sane-utils/README.Debian » để tìm chi tiết về quản lý quyền hạn cho saned như thế nào. Mặc định là saned được chạy dưới người dùng và nhóm « saned »." + +#: ../sane-utils.templates:2001 +#. Type: boolean +#. Description +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "Bật tùy chọn này để làm cho tất cả các máy quét sẵn sàng qua mạng, vô hạn." --- sane-backends-1.0.19.orig/debian/po/gl.po +++ sane-backends-1.0.19/debian/po/gl.po @@ -0,0 +1,110 @@ +# Galician translation of sane-backends's debconf templates +# This file is distributed under the same license as the sane-backends package. +# Jacobo Tarrio , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: sane-backends\n" +"Report-Msgid-Bugs-To: sane-backends@packages.debian.org\n" +"POT-Creation-Date: 2008-05-05 19:03+0200\n" +"PO-Revision-Date: 2008-05-06 22:50+0100\n" +"Last-Translator: Jacobo Tarrio \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Enable saned as a standalone server?" +msgstr "¿Activar saned coma un servidor autónomo?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"The saned server, when enabled, makes scanners available over the network." +msgstr "" +"O servidor saned, cando está activado, deixa os escáneres dispoñibles pola " +"rede." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"There are two ways of running saned:\n" +" - as an inetd service, started by the inetd superserver. In this mode,\n" +"saned is started as needed by inetd whenever a client tries to connect to " +"the server;\n" +" - as a standalone daemon, started at system boot. In this mode, saned\n" +"runs in the background all by itself and listens for client connections." +msgstr "" +"Hai dúas maneiras de executar saned:\n" +" - coma un servizo de inetd, iniciado polo superservidor inetd.\n" +" Neste modo, saned iníciase cando sexa necesario cada vez que\n" +" un cliente tente conectarse ao servidor;\n" +" - coma un servizo autónomo, que se inicia ao arrincar o sistema.\n" +" Neste modo, saned execútase en segundo plano e espera\n" +" conexións por parte dos clientes." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "" +"When run in standalone mode, saned advertises itself on the network and can " +"be detected automatically by the SANE clients with no configuration on the " +"client side. You still need to configure the server to accept connections " +"from your clients." +msgstr "" +"Ao executalo en modo autónomo, saned anúnciase na rede e os clientes SANE " +"pódeno detectar automaticamente sen necesidade de os configurar. Aínda ha " +"ter que configurar o servidor para aceptar conexións dos clientes." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:1001 +msgid "Accept this option if you want to make use of this feature." +msgstr "Acepte esta opción se quere empregar esta funcionalidade." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "Add saned user to the scanner group?" +msgstr "¿Engadir saned ao grupo do escáner?" + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"The saned server, when enabled, makes scanners available over the network. " +"By applying different permissions to the different scanners connected to " +"your machine, you can control which ones will be made available over the " +"network." +msgstr "" +"O servidor saned, cando está activado, fai que os escáneres estean " +"dispoñibles pola rede. Aplicando distintos permisos aos diferentes escáneres " +"conectados á máquina, pódense controlar cales han estar dispoñibles pola " +"rede." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Read /usr/share/doc/sane-utils/README.Debian for details on how to manage " +"permissions for saned. By default, saned is run under the saned user and " +"group." +msgstr "" +"Consulte /usr/share/doc/sane-utils/README.Debian para máis detalles sobre " +"como xestionar os permisos de saned. Por defecto, saned execútase co usuario " +"e grupo \"saned\"." + +#. Type: boolean +#. Description +#: ../sane-utils.templates:2001 +msgid "" +"Accept this option if you want to make all your scanners available over the " +"network without restriction." +msgstr "" +"Acepte esta opción se quere que tódolos escáneres estean dispoñibles pola " +"rede sen restricións." --- sane-backends-1.0.19.orig/debian/po/POTFILES.in +++ sane-backends-1.0.19/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] sane-utils.templates