[sane-devel] long option format not recognized (Was: Epson Perfection 610 Issue with 150 dpi scan)

m. allan noah kitno455 at gmail.com
Sun Jan 3 23:06:10 UTC 2010


good call chris- you want to submit a fix?

allan

On Sun, Jan 3, 2010 at 4:14 PM, Rainer Dorsch <rdorsch at web.de> wrote:
> Hi Chris,
>
> Am Sonntag, 3. Januar 2010 schrieb Chris Bagwell:
>> On Sun, Jan 3, 2010 at 7:01 AM, Rainer Dorsch <rdorsch at web.de> wrote:
>> > For the long options issue:
>> > I rebuild git sane on another machine (also Debian stable aka Debian 5.0)
>> > and
>> > the long options error is still there. Even --help has problems. Which
>> > library is sane using to process the command line options? Does Debian
>> > stable
>> > maybe ship with a different version than your system?
>>
>> After running configure, can you look at the file include/sane/config.h?
>> Check if HAVE_GETOPT_H and HAVE_GETOPT_LONG are defined.   On debian, I
>> would expect them to be defined.  In that case, it uses standard libc
>> version of getopt.
>
> As you expected, it is there:
>
> rd at blackbox:~/SW.nobackup/sane-backends$ grep HAVE_GETOPT
> include/sane/config.h
> #define HAVE_GETOPT_H 1
> #define HAVE_GETOPT_LONG 1
> rd at blackbox:~/SW.nobackup/sane-backends$
>
>> I do see one suspicious line in lib/getopt.c and lib/getopt1.c.  They do a
>> #include <config.h> instead of #include "../include/sane/config.h" and so
>> in certain cases it may be including the wrong config.h file.  In that
>> case, it would mistakenly compile a conflicting version of getopt_long()
>> (which can explain the problem your seeing).
>
> Hmm...that does solve the problem:
>
> I did this modification
>
> rd at blackbox:~/SW.nobackup/sane-backends$ git diff
> diff --git a/lib/getopt.c b/lib/getopt.c
> index 9dabb82..b8715e3 100644
> --- a/lib/getopt.c
> +++ b/lib/getopt.c
> @@ -20,7 +20,7 @@
>    License along with the GNU C Library; if not, write to the Free
>    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
>    02111-1307 USA.  */
> -# include <config.h>
> +# include "../include/sane/config.h"
>  #if !defined(HAVE_GETOPT_H) || !defined(HAVE_GETOPT_LONG)
>  ^L
>  /* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
> diff --git a/lib/getopt1.c b/lib/getopt1.c
> index 5ace00a..082998c 100644
> --- a/lib/getopt1.c
> +++ b/lib/getopt1.c
> @@ -17,7 +17,7 @@
>    License along with the GNU C Library; if not, write to the Free
>    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
>    02111-1307 USA.  */
> -#include <config.h>
> +#include "../include/sane/config.h"
>  #if !defined(HAVE_GETOPT_H) || !defined(HAVE_GETOPT_LONG)
>  ^L
>  #ifdef HAVE_CONFIG_H
> rd at blackbox:~/SW.nobackup/sane-backends$
>
> recompiled, set the paths again
>
> rd at blackbox:~/SW.nobackup/sane-backends$ export |grep PATH
> declare -x LD_LIBRARY_PATH="/opt/sane-backends-091230/lib"
> declare -x
> PATH="/opt/sane-backends-091230/bin:/usr/local/bin:/usr/bin:/bin:/usr/games"
> rd at blackbox:~/SW.nobackup/sane-backends$
>
> and --help is still not recognized
>
> rd at blackbox:~/SW.nobackup/sane-backends$ which scanimage
> /opt/sane-backends-091230/bin/scanimage
> rd at blackbox:~/SW.nobackup/sane-backends$
>
> and --help is still not recogniced
>
> rd at blackbox:~/SW.nobackup/sane-backends$ scanimage --help
> Usage: scanimage [OPTION]...
>
> Start image acquisition on a scanner device and write image data to
> standard output.
>
> 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, --device-name=DEVICE   use a given scanner device (e.g. hp:/dev/scanner)
>    --format=pnm|tiff      file format of output file
> -i, --icc-profile=PROFILE  include this ICC profile into TIFF file
> -L, --list-devices         show available scanner devices
> -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output
>                           can be specified: %d (device name), %v (vendor),
>                           %m (model), %t (type), %i (index number), and
>                           %n (newline)
> -b, --batch[=FORMAT]       working in batch mode, FORMAT is `out%d.pnm' or
>                           `out%d.tif' by default depending on --format
>    --batch-start=#        page number to start naming files with
>    --batch-count=#        how many pages to scan in batch mode
>    --batch-increment=#    increase page number in filename by #
>    --batch-double         increment page number by two, same as
>                           --batch-increment=2
>    --batch-prompt         ask for pressing a key before scanning a page
>    --accept-md5-only      only accept authorization requests using md5
> -p, --progress             print progress messages
> -n, --dont-scan            only set options, don't actually scan
> -T, --test                 test backend thoroughly
> -h, --help                 display this help message and exit
> -v, --verbose              give even more status messages
> -B, --buffer-size=#        change input buffer size (in kB, default 32)
> -V, --version              print version information
> scanimage: unrecognized option `--help'
> rd at blackbox:~/SW.nobackup/sane-backends$
>
> Thanks,
> Rainer
>
>
> --
> Rainer Dorsch
> Lärchenstr. 6
> D-72135 Dettenhausen
> 07157-734133
> email: rdorsch at web.de
> jabber: rdorsch at jabber.org
> GPG Fingerprint: 5966 C54C 2B3C 42CC 1F4F  8F59 E3A8 C538 7519 141E
> Full GPG key: http://pgp.mit.edu/
>
> --
> sane-devel mailing list: sane-devel at lists.alioth.debian.org
> http://lists.alioth.debian.org/mailman/listinfo/sane-devel
> Unsubscribe: Send mail with subject "unsubscribe your_password"
>             to sane-devel-request at lists.alioth.debian.org
>



-- 
"The truth is an offense, but not a sin"



More information about the sane-devel mailing list