Generated hwdb files listed the vendor ID instead of the product ID
which made udevd not recognizing scanner devices as such. Thanks to
Fabrice Bellet who spotted the problem.
udev now comes with a hardware database (hwdb) which is meant to replace large
rule files as the one typically shipped with sane. This should significantly
speed up the processing of usb add events.
Add the required output format and add a special udev output mode which is
produces the udev file to be used with hwdb.
Sample hwdb file: <https://dev.archlinux.org/~tomegun/20-sane.hwdb>.
Sample udev+hwdb rules file:
<https://dev.archlinux.org/~tomegun/53-sane.rules>.
Similar support was recently added to gphoto2:
<http://sourceforge.net/p/gphoto/code/14490/>.
The new udev rules file does not support old udev/kernels as these anyway
don't support hwdb.
Moreover, it does not come with GROUP=/MODE= or ACL support as this can easily
be done externally by hooking into the libsane_matched envvar. In particular
systemd-logind uses this to do its own ACL handling.
Use ACLs for the scanner group instead of making the device root:scanner
with permissions 0664; designed to help with MFPs and play nice with
ConsoleKit.
add cv_ prefix to cached variable. Remove AC_ARG_PROGRAM as
automake already invokes this. When prefered AC_USE_SYSTEM_EXTENSIONS
exists, use that instead of AC_GNU_SOURCE/AC_AIX/AC_MINUX.
Cleanup socket detection more by creating only a single
SOCKET_LIBS that contains list of all optional libraries
for any socket related funciton. Make sure that checks
for socket related functions use SOCKET_LIBS when searching.
Check for getopt_long() and getopt.h. Make OS/2 use
-no-undefined (same as windows).
* ltmain.sh, m4/libtool.m4: Upgrade to libtool 1.5.26.
* Makefile.am: Cleanups to match configure updates.
* frontend/scanimage.c, include/Makefile.in, lib/getopt.c
lib/getopt1.c, toosl/sane-desc.c, include/lgetopt.h:
Rename internal getopt.h to lgetopt.h to allow using
external getopt.h when it exists. This allows to go
back to optionally compiling getopt()/getopt_long() and its
prototypes and not have conflicts with external headers/symbols.
own *_LIB variables instead of $LIB so that we do not have to
link in the world to all executables. Modified SANE_CHECK_U_TYPES
to be a little more portable to platforms that use #define
for u_* types. Create SANE_CHECK_BACKENDS macro so that
PRELOADABLE_BACKENDS can also be valided. Auto-populated
PRELAODABLE_BACKENDS when detect dlopen() won't work.
Various protability cleanups.
* backend/dll.c: Make dll-preload.c a .h since its an include and
not compilable byitself.
* frontend/Makefile.in, frontend/scanimage.c, include/laaloca.h,
lib/Makefile.am, lib/alloca.c, strcasestr.c, tools/Makefile.in,
tools/sane-desc.c: Convert lib/ to automake. Create a liblib.la
for everyone to use and a libfelib.la for only frontend programs.
Make all internal programs be prefixed with sanei_ as not to conflict
with other programs libsane is linked in with that will also most
likely create similar internal utils on problem platforms.
* include/getopt.h, lib/getopt.c, lib/getopt1.c: Always compile
and link in getopt_long() but prefix it with sanei_. Its
easier to always use internal version then try to figure out what
platforms support getopt_long() and what header files to use.
* backend/Makefile.am: Convert backend makefile to automake.
Initial version that is feature parity with original but uses
specific rules instead of wildcards and only links in libraries/objs
really required. Room for more cleanup of whats linked in once
all makefiles have been converted to automake.
This effectively works around the hardware bugs exposed by CONFIG_USB_SUSPEND.
Works only with kernels >= 2.6.22 where /sys/bus/usb/devices/*/power/level exists.
known devices. Added support for more than one search directory. Removed support
for deprecated backend status ("alpha", "beta" ...). Ran indent -gnu. HTML
output (backends and mfgs) prints statitics now. Unify status and device type
strings. Simplified status and device type string printing. Removed any
remaining links of backend status.