You may need to explicitly disable support for WebP:

   ./configure --without-webp

It looks like the libwebp installed in your case is old enough that its API
is incompatible with that used by Guacamole. I'd need to look deeper to
determine what the minimum version of libwebp would be for Guacamole as it
stands, and to determine whether compatibility with older libwebp is
possible, but the above will at least allow Guacamole to build. Lacking
WebP support, Guacamole will still work well; it will use PNG for image
compression in most cases, and will use JPEG for cases where things look
like they would benefit from lossy compression.

- Mike


On Sun, Sep 24, 2017 at 12:07 PM, Philip Abbey <phi...@abbey1.org.uk> wrote:

> Thought I would see how var I could get with installing Guacamole on a
> Raspberry Pi. It was all looking so good, 'configure' gave me the thumbs
> up.
> Alas 'make' failed compiling 'libguac_la-encode-webp.lo' with errors from
> 'encode-webp.c'.
>
> Now I had to mess with the dependencies a little, falling back to to a
> non-turbo version of JPEG, but 'configure' suggested the alternative seemed
> promising. I've included the version info for WebP, which seems to be the
> source of the error in the hopes I've enough info for someone knowledgeable
> to home in on the issue.
>
> Thanks,
>
> Philip
>
> $:~/guacamole# cat dependencies.bash
>
> #!/bin/bash
> # 'libjpeg62-turbo-dev' not available, trying 'libjpeg62-dev'
> # 'libvncserver-dev' requires 'libjpeg8-dev' instead of 'libjpeg-dev',
> 'libjpeg62-dev' will be removed.
>
> apt-get install libcairo2-dev libjpeg8-dev libpng12-dev libossp-uuid-dev
> libavcodec-dev libavutil-dev libswscale-dev libfreerdp-dev libpango1.0-dev
> libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev
> libvorbis-dev libwebp-dev
>
> $:~/guacamole/guacamole-server-0.9.13-incubating# ./configure
> --with-init-dir=/etc/init.d
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... /bin/mkdir -p
> checking for gawk... no
> checking for mawk... mawk
> checking whether make sets $(MAKE)... yes
> checking whether make supports nested variables... yes
> checking whether make supports nested variables... (cached) yes
> checking build system type... armv6l-unknown-linux-gnueabihf
> checking host system type... armv6l-unknown-linux-gnueabihf
> checking how to print strings... printf
> checking for style of include used by make... GNU
> checking for gcc... gcc
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking whether gcc understands -c and -o together... yes
> checking dependency style of gcc... gcc3
> checking for a sed that does not truncate output... /bin/sed
> checking for grep that handles long lines and -e... /bin/grep
> checking for egrep... /bin/grep -E
> checking for fgrep... /bin/grep -F
> checking for ld used by gcc... /usr/bin/ld
> checking if the linker (/usr/bin/ld) is GNU ld... yes
> checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
> checking the name lister (/usr/bin/nm -B) interface... BSD nm
> checking whether ln -s works... yes
> checking the maximum length of command line arguments... 1572864
> checking how to convert armv6l-unknown-linux-gnueabihf file names to
> armv6l-unknown-linux-gnueabihf format... func_convert_file_noop
> checking how to convert armv6l-unknown-linux-gnueabihf file names to
> toolchain format... func_convert_file_noop
> checking for /usr/bin/ld option to reload object files... -r
> checking for objdump... objdump
> checking how to recognize dependent libraries... pass_all
> checking for dlltool... no
> checking how to associate runtime and link libraries... printf %s\n
> checking for ar... ar
> checking for archiver @FILE support... @
> checking for strip... strip
> checking for ranlib... ranlib
> checking command to parse /usr/bin/nm -B output from gcc object... ok
> checking for sysroot... no
> checking for a working dd... /bin/dd
> checking how to truncate binary pipes... /bin/dd bs=4096 count=1
> checking for mt... mt
> checking if mt is a manifest tool... no
> checking how to run the C preprocessor... gcc -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking for dlfcn.h... yes
> checking for objdir... .libs
> checking if gcc supports -fno-rtti -fno-exceptions... no
> checking for gcc option to produce PIC... -fPIC -DPIC
> checking if gcc PIC flag -fPIC -DPIC works... yes
> checking if gcc static flag -static works... yes
> checking if gcc supports -c -o file.o... yes
> checking if gcc supports -c -o file.o... (cached) yes
> checking whether the gcc linker (/usr/bin/ld) supports shared libraries...
> yes
> checking whether -lc should be explicitly linked in... no
> checking dynamic linker characteristics... GNU/Linux ld.so
> checking how to hardcode library paths into programs... immediate
> checking for shl_load... no
> checking for shl_load in -ldld... no
> checking for dlopen... no
> checking for dlopen in -ldl... yes
> checking whether a program can dlopen itself... yes
> checking whether a statically linked program can dlopen itself... no
> checking whether stripping libraries is possible... yes
> checking if libtool supports shared libraries... yes
> checking whether to build shared libraries... yes
> checking whether to build static libraries... yes
> checking for gcc... (cached) gcc
> checking whether we are using the GNU C compiler... (cached) yes
> checking whether gcc accepts -g... (cached) yes
> checking for gcc option to accept ISO C89... (cached) none needed
> checking whether gcc understands -c and -o together... (cached) yes
> checking dependency style of gcc... (cached) gcc3
> checking for gcc option to accept ISO C99... -std=gnu99
> checking fcntl.h usability... yes
> checking fcntl.h presence... yes
> checking for fcntl.h... yes
> checking for stdlib.h... (cached) yes
> checking for string.h... (cached) yes
> checking sys/socket.h usability... yes
> checking sys/socket.h presence... yes
> checking for sys/socket.h... yes
> checking time.h usability... yes
> checking time.h presence... yes
> checking for time.h... yes
> checking sys/time.h usability... yes
> checking sys/time.h presence... yes
> checking for sys/time.h... yes
> checking syslog.h usability... yes
> checking syslog.h presence... yes
> checking for syslog.h... yes
> checking for unistd.h... (cached) yes
> checking cairo/cairo.h usability... yes
> checking cairo/cairo.h presence... yes
> checking for cairo/cairo.h... yes
> checking pngstruct.h usability... no
> checking pngstruct.h presence... no
> checking for pngstruct.h... no
> checking for cos in -lm... yes
> checking for png_write_png in -lpng... yes
> checking for jpeg_start_compress in -ljpeg... yes
> checking for cairo_create in -lcairo... yes
> checking for pthread_create in -lpthread... yes
> checking for uuid_make in -lossp-uuid... yes
> checking ossp/uuid.h usability... yes
> checking ossp/uuid.h presence... yes
> checking for ossp/uuid.h... yes
> checking whether uuid_make is declared... yes
> checking for CU_run_test in -lcunit... no
> checking for main in -lwsock32... no
> checking for clock_gettime... no
> checking for gettimeofday... yes
> checking for memmove... yes
> checking for memset... yes
> checking for select... yes
> checking for strdup... yes
> checking for nanosleep... yes
> checking whether png_get_io_ptr is declared... yes
> checking whether cairo_format_stride_for_width is declared... yes
> checking for size_t... yes
> checking for ssize_t... yes
> checking for pkg-config... /usr/bin/pkg-config
> checking pkg-config is at least version 0.9.0... yes
> checking for AVCODEC... yes
> checking for AVUTIL... yes
> checking for SWSCALE... yes
> checking openssl/ssl.h usability... yes
> checking openssl/ssl.h presence... yes
> checking for openssl/ssl.h... yes
> checking for SSL_CTX_new in -lssl... yes
> checking whether DSA_SIG_get0 is declared... no
> checking whether DSA_get0_pqg is declared... no
> checking whether DSA_get0_key is declared... no
> checking whether RSA_get0_key is declared... no
> checking whether libssl requires threading callbacks... yes
> checking vorbis/vorbisenc.h usability... yes
> checking vorbis/vorbisenc.h presence... yes
> checking for vorbis/vorbisenc.h... yes
> checking for ogg_stream_init in -logg... yes
> checking for vorbis_block_init in -lvorbis... yes
> checking for vorbis_encode_init in -lvorbisenc... yes
> checking for pa_context_new in -lpulse... yes
> checking for PANGO... yes
> checking for PANGOCAIRO... yes
> checking for rfbInitClient in -lvncclient... yes
> checking for rfbClient.destHost... yes
> checking for rfbClient.destPort... yes
> checking whether listenForIncomingConnectionsNoFork is declared... yes
> checking for freerdp_new in -lfreerdp-core... yes
> checking for glyph_cache_register_callbacks in -lfreerdp-cache... yes
> checking for freerdp_channels_new in -lfreerdp-client... no
> checking for freerdp_channels_new in -lfreerdp-channels... yes
> checking for svc_plugin_init in -lfreerdp-utils... yes
> checking for freerdp_image_convert in -lfreerdp-codec... yes
> checking whether freerdp_convert_gdi_order_color is declared... no
> checking whether freerdp_color_convert_drawing_order_color_to_gdi_color is
> declared... no
> checking for rdpSvcPlugin.interval_ms... yes
> checking freerdp/locale/keyboard.h usability... no
> checking freerdp/locale/keyboard.h presence... no
> checking for freerdp/locale/keyboard.h... no
> checking freerdp/kbd/layouts.h usability... yes
> checking freerdp/kbd/layouts.h presence... yes
> checking for freerdp/kbd/layouts.h... yes
> checking freerdp/addin.h usability... no
> checking freerdp/addin.h presence... no
> checking for freerdp/addin.h... no
> checking freerdp/client/channels.h usability... no
> checking freerdp/client/channels.h presence... no
> checking for freerdp/client/channels.h... no
> checking for freerdp/client/cliprdr.h... no
> checking for freerdp/plugins/cliprdr.h... yes
> checking for freerdp/client/disp.h... no
> checking for rdpSettings.GatewayEnabled... no
> checking for rdpSettings.LoadBalanceInfo... no
> checking whether PubSub_SubscribeChannelConnected is declared... no
> checking whether freerdp_register_addin_provider is declared... no
> checking whether freerdp_channels_global_init is declared... yes
> checking for ADDIN_ARGV... no
> checking winpr/stream.h usability... no
> checking winpr/stream.h presence... no
> checking for winpr/stream.h... no
> checking whether stream_write_uint8 is declared... yes
> checking winpr/wtypes.h usability... no
> checking winpr/wtypes.h presence... no
> checking for winpr/wtypes.h... no
> checking freerdp/types.h usability... yes
> checking freerdp/types.h presence... yes
> checking for freerdp/types.h... yes
> checking for freerdp.ContextSize... no
> checking for freerdp.context_size... yes
> checking for rdpSettings.Width... no
> checking for rdpSettings.Height... no
> checking for rdpSettings.FastPathInput... no
> checking for rdpSettings.FastPathOutput... no
> checking for rdpSettings.SendPreconnectionPdu... no
> checking for rdpSettings.OrderSupport... no
> checking for rdpSettings.width... yes
> checking for rdpSettings.height... yes
> checking for rdpSettings.order_support... yes
> checking for rdpSettings.audio_playback... no
> checking for rdpSettings.audio_capture... no
> checking for rdpSettings.device_redirection... no
> checking for CHANNEL_ENTRY_POINTS_FREERDP... no
> checking freerdp/version.h usability... no
> checking freerdp/version.h presence... no
> checking for freerdp/version.h... no
> checking whether rdpBitmap.Decompress() requires the codec_id... no
> checking whether IWTSVirtualChannelCallback.OnDataReceived() uses a
> wStream... no
> checking whether interleaved_decompress() accepts an additional palette
> parameter... no
> checking whether planar_decompress() can flip... no
> checking for rdpContext.codecs... no
> checking whether rdpPalette.entries is static... no
> checking for rdpPointer.SetDefault... no
> checking for rdpPointer.SetNull... no
> checking for wMessage.id... no
> checking for RDP_EVENT.event_class... yes
> checking for libssh2_session_init_ex in -lssh2... yes
> checking for gcry_control in -lssh2... no
> checking for telnet_init in -ltelnet... yes
> checking webp/encode.h usability... yes
> checking webp/encode.h presence... yes
> checking for webp/encode.h... yes
> checking for WebPEncode in -lwebp... yes
> checking that generated files are newer than configure... done
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating tests/Makefile
> config.status: creating src/common/Makefile
> config.status: creating src/common-ssh/Makefile
> config.status: creating src/terminal/Makefile
> config.status: creating src/libguac/Makefile
> config.status: creating src/libguacd/Makefile
> config.status: creating src/guacd/Makefile
> config.status: creating src/guacenc/Makefile
> config.status: creating src/pulse/Makefile
> config.status: creating src/protocols/rdp/Makefile
> config.status: creating src/protocols/ssh/Makefile
> config.status: creating src/protocols/telnet/Makefile
> config.status: creating src/protocols/vnc/Makefile
> config.status: creating config.h
> config.status: config.h is unchanged
> config.status: executing depfiles commands
> config.status: executing libtool commands
>
> ------------------------------------------------
> guacamole-server version 0.9.13-incubating
> ------------------------------------------------
>
>    Library status:
>
>      freerdp ............. yes
>      pango ............... yes
>      libavcodec .......... yes
>      libavutil ........... yes
>      libssh2 ............. yes
>      libssl .............. yes
>      libswscale .......... yes
>      libtelnet ........... yes
>      libVNCServer ........ yes
>      libvorbis ........... yes
>      libpulse ............ yes
>      libwebp ............. yes
>
>    Protocol support:
>
>       RDP ....... yes
>       SSH ....... yes
>       Telnet .... yes
>       VNC ....... yes
>
>    Services / tools:
>
>       guacd ...... yes
>       guacenc .... yes
>
>    Init scripts: /etc/init.d
>
> Type "make" to compile guacamole-server.
>
> $:~/guacamole/guacamole-server-0.9.13-incubating# make
> make  all-recursive
> make[1]: Entering directory
> '/root/guacamole/guacamole-server-0.9.13-incubating'
> Making all in src/libguac
> make[2]: Entering directory
> '/root/guacamole/guacamole-server-0.9.13-incubating/src/libguac'
>   CC       libguac_la-encode-webp.lo
> encode-webp.c: In function \u2018guac_webp_write\u2019:
> encode-webp.c:195:11: error: \u2018WebPConfig\u2019 has no member named
> \u2018lossless\u2019
> encode-webp.c:197:11: error: \u2018WebPConfig\u2019 has no member named
> \u2018thread_level\u2019
> encode-webp.c:205:12: error: \u2018WebPPicture\u2019 has no member named
> \u2018use_argb\u2019
> encode-webp.c:216:26: error: \u2018WebPPicture\u2019 has no member named
> \u2018argb\u2019
> encode-webp.c:242:31: error: \u2018WebPPicture\u2019 has no member named
> \u2018argb_stride\u2019
> Makefile:743: recipe for target 'libguac_la-encode-webp.lo' failed
> make[2]: *** [libguac_la-encode-webp.lo] Error 1
> make[2]: Leaving directory
> '/root/guacamole/guacamole-server-0.9.13-incubating/src/libguac'
> Makefile:494: recipe for target 'all-recursive' failed
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory
> '/root/guacamole/guacamole-server-0.9.13-incubating'
> Makefile:426: recipe for target 'all' failed
> make: *** [all] Error 2
>
> $:~/guacamole# dpkg-query -W | grep webp
> libwebp-dev:armhf       0.1.3-3+nmu1
> libwebp2:armhf  0.1.3-3+nmu1
>
>
>
>
> --
> Sent from: http://apache-guacamole-incubating-users.2363388.n4.nabble.com/
>

Reply via email to