Current backend/Makefile.am states difference between libsane and
libsane-dll as:
> libsane.la and libsane-dll.la are the same thing except for
> the addition of backends listed by PRELOADABLE_BACKENDS that are
> statically linked in.
We were (mistakenly) linking in dll-preload.h and thus symbols
for all preload backends for both libraries but we were only
linking in those symbols for libsane.
This mistake became obvious on mingw which does not allow for
any unresolved symbols. Resolve by forcing an empty preload
backend list for libsane-dll.
* include/sane/sanei_config.h sanei/sanei_config.c: Add function
sanei_config_get_paths to obtain all configuration pathes (from env var
SANE_CONFIG_DIR and default paths); fix pointers to invalid/freed
strings when SANE_CONFIG_DIR is set
* backend/dll.c: When searching for the dll.d/ directory, also use
the SANE_CONFIG_DIR env variable.
Source code was inconsistent on how they were referencing
include files in include/sane. In certain cases, sane/sane.h
and sane/saneopts.h was really including external copies (with
some preprocessor implementations anyways).
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.
patches have been applied yet, but it's a start. The backends
are not installed as shared libs but as add-ons, which are shared libs
but in a specific folder in [/system|~]/config/add-ons/ named SANE/.
The install target has been changed to account for this,
Some files don't exist in BeOS/ZETA (ipc.h, ...).
Bbackend function names get a prefix, I suppose to avoid namespace clashes.
Though we do have a libdl to implement dl_open, the native way is prefered.
Added a --with-docdir= configure arg.
BeOS has a broken get[name|addr]info() from bind. This is fixed in ZETA R1.
libtool needs -no-undefined. Various VPATH fixes.
Check for <be/drivers/USB_scanner.h>, but not used yet.
No S_IFSOCK (sockets are fds to /dev/net/api). Stub pio code, untested.
Patch from Francois Revol <revol@free.fr>.
$LD_LIBRARY_PATH ($SHLIB_PATH, $LIBPATH) first and only check LIBDIR if
opening failed. New version: 1.0.6.
Henning Meier-Geinitz <henning@meier-geinitz.de>
* PROBLEMS: Point to pnm/saned security risks.
* TODO: Removed the entries about epson usb mis-detection and check
for installed sane versions.
* configure configure.in backend/Makefile.in: Added detection of older
versions of SANE. The pnm backend is now disabled by default.
* backend/dll.c backend/dll.desc: Fixed file descriptor leak (found by
Douglas Gilbert). New version: 1.0.2.
* backend/net.desc: Added Jochen Eisinger's email address as contact
for the net backend.
* doc/sane-pnm.man: Point to pnm/saned security risks.
* README: Updated xsane link.
* configure configure.in backend/dll.c backend/dll.desc
backend/net.c backend/net.desc include/sane/config.h.in
Yet another change in the version system for dll and net.
For sane_init return the version of the package but use
own internal version number in the source (printed with
debugging enabled) and in *.desc. The internal versions
of both net and dll are set to 1.0.1. Please increase the
build number with every change on the source files.
* doc/realeases.txt -> doc/releases.txt. Fixed spelling error.
Added entries about sane-backends.html, sane.ps, man pages,
platforms page.
* PROJECTS TODO: Added entry about E3 USB chipset.
* backend/dll.c backend/dll.desc: New version is 1.0.5. Version and
PACKAGE_VERSION is printed with debug level set to 1 or higher.
The version numbers of all backends that are loaded are printed
at debug level 3 or higher. Print error if backend with wrong
major version number is loaded. Some standardization changes
concerning the DBG messages.
* backend/net.c backend/net.desc: New version is 1.0.5. Version and
PACKAGE_VERSION is printed with debug level set to 1 or higher.
Some standardization changes concerning the DBG messages.
* backend/pnm.c: Return SANE_INFO_RELOAD_PARAMS even if the pnm
file doesn't exist or can't be loaded (from mh <crapsite@gmx.net>).
* doc/backend-writing.txt: Added AUTHORS to the list of things that
should be updated when including a new backend. Added points about
avoiding printf and exit in backends.
* doc/releases.txt: New file. This text summarizes some points to
pay attention to when a new release of sane-backends is made.
Additions and corrections are appreciated.
* doc/scanimage.man: Add some more information about the -V option.
* frontend/scanimage.c: The option -V now also prints the version of
the backend (ususally dll).