[sane-devel] Using "scanimage" under Gentoo

Bruce Schultz brulzki at gmail.com
Wed Feb 5 20:47:53 GMT 2020

On 2020-02-05 19:47, Olaf Meeuwissen wrote:
> 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.
I'm not sure what's going on either. It's building fine on my gentoo 

I tried uninstalling libjpeg (the libjpeg-turbo package) to force 
HAVE_LIBJPEG to be undefined and building again. It completes building 
successfully, but does not build the pixma backend. Or, if I force it to 
build only the pixma backend:

BACKENDS=pixma ./configure

configure fails with an error about missing libjpeg. So that is working 
the way it should.

I also tried removing libjpeg after running configure, but before 
running make. That fails with a compilation error in sanei_jpeg.c.

In short, I was unable to reproduce the failure the Rainer had.

>> 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?
Also, what options are you passing in to ./configure ?


More information about the sane-devel mailing list