[sane-devel] Using "scanimage" under Gentoo

Olaf Meeuwissen paddy-hack at member.fsf.org
Wed Feb 5 09:47:14 GMT 2020

Hi Rainer,

Dr Rainer Woitok writes:

> Olaf,
> On Friday, 2020-01-31 18:08:28 +0900, you wrote:
>> ...
>> This shouldn't be anything to worry about but I've submitted an issue
>> for it.  You can find it at:
>>   https://gitlab.com/sane-project/backends/issues/235
>> If you could add distribution/version info as well as attach your
>> config.log and config.status there, that would be appreciated.
> Didn't yet, but will do eventually.
>> ...
>> > [...] and will report back how it went.
>> Waiting, patiently ;-)
> Well,  up to now "sane-backends" fails to compile here.  I compiled from
> three different changesets, and all failed the same way.  I tried:
>    - changeset  1942c5fd32a7 (by <paddy-hack at member.fsf.org>, 2020-01-26
>      10:56:34 +0000), the 1.0.29 pre-release changeset,
>    - changeset  5aa523289f82 (by <paddy-hack at member.fsf.org>, 2019-07-31
>      20:39:43 +0900), tagged 1.0.28,
>    - changeset 20be9af3d7f3  (by <povilas at radix.lt>, 2020-02-02 23:16:29
>      +0000), which as of today was the current tip of the repository.
> The problem was consistently the same:
> /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: ./.libs/libpixma.a(libpixma_la-pixma.o): in function `pixma_jpeg_read_header':
> /home/rainer/repo/sane-backends/backend/pixma/pixma.c:1311: undefined reference to `sanei_jpeg_jinit_write_ppm'
> collect2: error: ld returned 1 exit status
> make[2]: *** [Makefile:4001: libsane.la] Error 1
> make[2]: Leaving directory '/home/rainer/repo/sane-backends/backend'
> make[1]: *** [Makefile:3274: all] Error 2
> make[1]: Leaving directory '/home/rainer/repo/sane-backends/backend'
> make: *** [Makefile:596: all-recursive] Error 1
> But "sanei_jpeg_jinit_write_ppm" is defined in file "sanei/sanei_jpeg.c"

It's only defined if HAVE_LIBJPEG is defined.

> and according to my build log  this file has been  compiled successfully
> farther up:
> depbase=`echo sanei_jpeg.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
> /bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include/sane  -D_REENTRANT -DPATH_SANE_CONFIG_DIR=/home/rainer/etc/sane.d 	  -DPATH_SANE_DATA_DIR=/home/rainer/share 	  -DPATH_SANE_LOCK_DIR=/home/rainer/var/lock/sane 	  -DV_MAJOR=1 -DV_MINOR=0 -I. -I. -I../include -I../include -I/usr/include/libusb-1.0  -I/usr/include/libxml2   -Wall -Wextra -pedantic -g -O2 -MT sanei_jpeg.lo -MD -MP -MF $depbase.Tpo -c -o sanei_jpeg.lo sanei_jpeg.c &&\
> mv -f $depbase.Tpo $depbase.Plo
> libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include/sane -D_REENTRANT -DPATH_SANE_CONFIG_DIR=/home/rainer/etc/sane.d -DPATH_SANE_DATA_DIR=/home/rainer/share -DPATH_SANE_LOCK_DIR=/home/rainer/var/lock/sane -DV_MAJOR=1 -DV_MINOR=0 -I. -I. -I../include -I../include -I/usr/include/libusb-1.0 -I/usr/include/libxml2 -Wall -Wextra -pedantic -g -O2 -MT sanei_jpeg.lo -MD -MP -MF .deps/sanei_jpeg.Tpo -c sanei_jpeg.c  -fPIC -DPIC -o .libs/sanei_jpeg.o
> /bin/sh ../libtool  --tag=CC   --mode=link gcc -Wall -Wextra -pedantic -g -O2   -o libsanei.la  sanei_ab306.lo sanei_constrain_value.lo sanei_init_debug.lo sanei_net.lo sanei_wire.lo sanei_codec_ascii.lo sanei_codec_bin.lo sanei_scsi.lo sanei_config.lo sanei_config2.lo sanei_pio.lo sanei_pa4s2.lo sanei_auth.lo sanei_usb.lo sanei_thread.lo sanei_pv8630.lo sanei_pp.lo sanei_lm983x.lo sanei_access.lo sanei_tcp.lo sanei_udp.lo sanei_magic.lo sanei_ir.lo sanei_jpeg.lo
> libtool: link: ar cru .libs/libsanei.a .libs/sanei_ab306.o .libs/sanei_constrain_value.o .libs/sanei_init_debug.o .libs/sanei_net.o .libs/sanei_wire.o .libs/sanei_codec_ascii.o .libs/sanei_codec_bin.o .libs/sanei_scsi.o .libs/sanei_config.o .libs/sanei_config2.o .libs/sanei_pio.o .libs/sanei_pa4s2.o .libs/sanei_auth.o .libs/sanei_usb.o .libs/sanei_thread.o .libs/sanei_pv8630.o .libs/sanei_pp.o .libs/sanei_lm983x.o .libs/sanei_access.o .libs/sanei_tcp.o .libs/sanei_udp.o .libs/sanei_magic.o .libs/sanei_ir.o .libs/sanei_jpeg.o
> libtool: link: ranlib .libs/libsanei.a
> libtool: link: ( cd ".libs" && rm -f "libsanei.la" && ln -s "../libsanei.la" "libsanei.la" )
> make[1]: Leaving directory '/home/rainer/repo/sane-backends/sanei'

So, if HAVE_LIBJPEG is not defined (check include/sane/config.h), that
compiled sanei_jpeg.lo is basically empty.

Assuming it is not defined ...

Then I don't understand is why `make` thinks the pixma backend should be
built when HAVE_LIBJPEG is undefined.  Its compilation should have been
disabled by `configure` and shouldn't be listed in BACKEND_LIBS_ENABLED
in backend/Makefile.

> What's going on here?   I don't think I'm missing any dependencies, bec-
> ause I didn't have any problems  building from Bruce's sane-backends ov-
> erlay.

Don't know, really.  Can you re-run `configure` and provide the
`config.status` and `config.log` files?

Hope this helps,
Olaf Meeuwissen, LPIC-2            FSF Associate Member since 2004-01-27
 GnuPG key: F84A2DD9/B3C0 2F47 EA19 64F4 9F13  F43E B8A4 A88A F84A 2DD9
 Support Free Software                        https://my.fsf.org/donate
 Join the Free Software Foundation              https://my.fsf.org/join

More information about the sane-devel mailing list