We should probably have another sanity check at build time, similar to the
one for libssh2 (might end up looking a bit different given that
libvncclient provides its own handy macro for determining whether the
library uses gcrypt):

https://github.com/apache/guacamole-server/blob/6d526cb60f3601c4d73f00fbd0daa72457d7df84/configure.ac#L919-L938

I think part of this is that the -dev / -devel package for libvncclient on
the various distributions is technically incorrect (if it's build against
libgcrypt, the -dev package should depend on libgcrypt-dev), but our build
should at least display a meaningful warning if this condition occurs.

- Mike


On Sat, Jan 23, 2021 at 5:19 AM Nick Couchman <[email protected]>
wrote:

> Welp, looks like I have a little more work to do on this one...
>
> -Nick
>
> On Sat, Jan 23, 2021 at 6:44 AM Apache Jenkins Server <
> [email protected]> wrote:
>
> > See <
> >
> https://ci-builds.apache.org/job/Guacamole/job/guacamole-server-master-centos/CENTOS_RELEASE=7,JENKINS_LABEL_EXPRESSION=ubuntu/184/display/redirect?page=changes
> > >
> >
> > Changes:
> >
> > [Nick Couchman] GUACAMOLE-1133: initialize GCrypt in VNC protocol prior
> to
> > client
> >
> >
> > ------------------------------------------
> > [...truncated 158.79 KB...]
> >   CC       libguac_la-id.lo
> >   CC       libguac_la-palette.lo
> >   CC       libguac_la-parser.lo
> >   CC       libguac_la-pool.lo
> >   CC       libguac_la-protocol.lo
> >   CC       libguac_la-raw_encoder.lo
> >   CC       libguac_la-socket.lo
> >   CC       libguac_la-socket-broadcast.lo
> >   CC       libguac_la-socket-fd.lo
> >   CC       libguac_la-socket-nest.lo
> >   CC       libguac_la-socket-tee.lo
> >   CC       libguac_la-string.lo
> >   CC       libguac_la-timestamp.lo
> >   CC       libguac_la-unicode.lo
> >   CC       libguac_la-user.lo
> >   CC       libguac_la-user-handlers.lo
> >   CC       libguac_la-user-handshake.lo
> >   CC       libguac_la-wait-fd.lo
> >   CC       libguac_la-wol.lo
> >   CC       libguac_la-encode-webp.lo
> >   CC       libguac_la-socket-ssl.lo
> >   CCLD     libguac.la
> > make[3]: Leaving directory `/build/guacamole-server/src/libguac'
> > Making all in tests
> > make[3]: Entering directory `/build/guacamole-server/src/libguac/tests'
> > make[3]: Nothing to be done for `all'.
> > make[3]: Leaving directory `/build/guacamole-server/src/libguac/tests'
> > make[2]: Leaving directory `/build/guacamole-server/src/libguac'
> > Making all in src/common
> > make[2]: Entering directory `/build/guacamole-server/src/common'
> > Making all in .
> > make[3]: Entering directory `/build/guacamole-server/src/common'
> >   CC       libguac_common_la-io.lo
> >   CC       libguac_common_la-blank_cursor.lo
> >   CC       libguac_common_la-clipboard.lo
> >   CC       libguac_common_la-cursor.lo
> >   CC       libguac_common_la-display.lo
> >   CC       libguac_common_la-dot_cursor.lo
> >   CC       libguac_common_la-ibar_cursor.lo
> >   CC       libguac_common_la-iconv.lo
> >   CC       libguac_common_la-json.lo
> >   CC       libguac_common_la-list.lo
> >   CC       libguac_common_la-pointer_cursor.lo
> >   CC       libguac_common_la-recording.lo
> >   CC       libguac_common_la-rect.lo
> >   CC       libguac_common_la-string.lo
> >   CC       libguac_common_la-surface.lo
> >   CCLD     libguac_common.la
> > make[3]: Leaving directory `/build/guacamole-server/src/common'
> > Making all in tests
> > make[3]: Entering directory `/build/guacamole-server/src/common/tests'
> > make[3]: Nothing to be done for `all'.
> > make[3]: Leaving directory `/build/guacamole-server/src/common/tests'
> > make[2]: Leaving directory `/build/guacamole-server/src/common'
> > Making all in src/common-ssh
> > make[2]: Entering directory `/build/guacamole-server/src/common-ssh'
> > Making all in .
> > make[3]: Entering directory `/build/guacamole-server/src/common-ssh'
> >   CC       libguac_common_ssh_la-buffer.lo
> >   CC       libguac_common_ssh_la-dsa-compat.lo
> >   CC       libguac_common_ssh_la-rsa-compat.lo
> >   CC       libguac_common_ssh_la-sftp.lo
> >   CC       libguac_common_ssh_la-ssh.lo
> >   CC       libguac_common_ssh_la-key.lo
> >   CC       libguac_common_ssh_la-user.lo
> >   CCLD     libguac_common_ssh.la
> > make[3]: Leaving directory `/build/guacamole-server/src/common-ssh'
> > Making all in tests
> > make[3]: Entering directory
> `/build/guacamole-server/src/common-ssh/tests'
> > make[3]: Nothing to be done for `all'.
> > make[3]: Leaving directory `/build/guacamole-server/src/common-ssh/tests'
> > make[2]: Leaving directory `/build/guacamole-server/src/common-ssh'
> > Making all in src/terminal
> > make[2]: Entering directory `/build/guacamole-server/src/terminal'
> >   CC       libguac_terminal_la-buffer.lo
> >   CC       libguac_terminal_la-char_mappings.lo
> >   CC       libguac_terminal_la-color-scheme.lo
> >   CC       libguac_terminal_la-common.lo
> >   CC       libguac_terminal_la-display.lo
> >   CC       libguac_terminal_la-named-colors.lo
> >   CC       libguac_terminal_la-palette.lo
> >   CC       libguac_terminal_la-scrollbar.lo
> >   CC       libguac_terminal_la-select.lo
> >   CC       libguac_terminal_la-terminal.lo
> >   CC       libguac_terminal_la-terminal_handlers.lo
> >   CC       libguac_terminal_la-terminal-stdin-stream.lo
> >   CC       libguac_terminal_la-typescript.lo
> >   CC       libguac_terminal_la-xparsecolor.lo
> >   CCLD     libguac_terminal.la
> > make[2]: Leaving directory `/build/guacamole-server/src/terminal'
> > Making all in src/pulse
> > make[2]: Entering directory `/build/guacamole-server/src/pulse'
> >   CC       libguac_pulse_la-pulse.lo
> >   CCLD     libguac_pulse.la
> > make[2]: Leaving directory `/build/guacamole-server/src/pulse'
> > Making all in src/protocols/kubernetes
> > make[2]: Entering directory
> > `/build/guacamole-server/src/protocols/kubernetes'
> >   CC       libguac_client_kubernetes_la-argv.lo
> >   CC       libguac_client_kubernetes_la-client.lo
> >   CC       libguac_client_kubernetes_la-clipboard.lo
> >   CC       libguac_client_kubernetes_la-input.lo
> >   CC       libguac_client_kubernetes_la-io.lo
> >   CC       libguac_client_kubernetes_la-pipe.lo
> >   CC       libguac_client_kubernetes_la-settings.lo
> >   CC       libguac_client_kubernetes_la-ssl.lo
> >   CC       libguac_client_kubernetes_la-kubernetes.lo
> >   CC       libguac_client_kubernetes_la-url.lo
> >   CC       libguac_client_kubernetes_la-user.lo
> >   CCLD     libguac-client-kubernetes.la
> > make[2]: Leaving directory
> > `/build/guacamole-server/src/protocols/kubernetes'
> > Making all in src/protocols/rdp
> > make[2]: Entering directory `/build/guacamole-server/src/protocols/rdp'
> >   GEN      _generated_channel_entry_wrappers.c
> >   GEN      _generated_keymaps.c
> >  [91mAdded: base
> >  [0m [91mAdded: failsafe
> >  [0m [91mAdded: de-de-qwertz
> >  [0m [91mAdded: de-ch-qwertz
> >  [0m [91mAdded: en-gb-qwerty
> >  [0m [91mAdded: en-us-qwerty
> >  [0m [91mAdded: es-es-qwerty
> >  [0m [91mAdded: es-latam-qwerty
> >  [0m [91mAdded: fr-be-azerty
> >  [0m [91mAdded: fr-ch-qwertz
> >  [0m [91mAdded: fr-fr-azerty
> >  [0m [91mAdded: hu-hu-qwertz
> >  [0m [91mAdded: it-it-qwerty
> >  [0m [91mAdded: ja-jp-qwerty
> >  [0m [91mAdded: pt-br-qwerty
> >  [0m [91mAdded: sv-se-qwerty
> >  [0m [91mAdded: da-dk-qwerty
> >  [0m [91mAdded: tr-tr-qwerty
> >  [0mmake  all-recursive
> > make[3]: Entering directory `/build/guacamole-server/src/protocols/rdp'
> > Making all in .
> > make[4]: Entering directory `/build/guacamole-server/src/protocols/rdp'
> >   CC
> >  plugins/guac-common-svc/libguac_common_svc_client_la-guac-common-svc.lo
> >   CCLD     libguac-common-svc-client.la
> >   CC       channels/audio-input/libguacai_client_la-audio-buffer.lo
> >   CC       plugins/guacai/libguacai_client_la-guacai-messages.lo
> >   CC       plugins/guacai/libguacai_client_la-guacai.lo
> >   CC       plugins/libguacai_client_la-ptr-string.lo
> >   CCLD     libguacai-client.la
> >   CC       libguac_client_rdp_la-argv.lo
> >   CC       libguac_client_rdp_la-beep.lo
> >   CC       libguac_client_rdp_la-bitmap.lo
> >   CC       channels/audio-input/libguac_client_rdp_la-audio-buffer.lo
> >   CC       channels/audio-input/libguac_client_rdp_la-audio-input.lo
> >   CC       channels/libguac_client_rdp_la-cliprdr.lo
> >   CC       channels/libguac_client_rdp_la-common-svc.lo
> >   CC       channels/libguac_client_rdp_la-disp.lo
> >   CC       channels/libguac_client_rdp_la-pipe-svc.lo
> >   CC       channels/libguac_client_rdp_la-rail.lo
> >   CC
> >  channels/rdpdr/libguac_client_rdp_la-rdpdr-fs-messages-dir-info.lo
> >   CC
> >  channels/rdpdr/libguac_client_rdp_la-rdpdr-fs-messages-file-info.lo
> >   CC
> >  channels/rdpdr/libguac_client_rdp_la-rdpdr-fs-messages-vol-info.lo
> >   CC       channels/rdpdr/libguac_client_rdp_la-rdpdr-fs-messages.lo
> >   CC       channels/rdpdr/libguac_client_rdp_la-rdpdr-fs.lo
> >   CC       channels/rdpdr/libguac_client_rdp_la-rdpdr-messages.lo
> >   CC       channels/rdpdr/libguac_client_rdp_la-rdpdr-printer.lo
> >   CC       channels/rdpdr/libguac_client_rdp_la-rdpdr.lo
> >   CC       channels/rdpsnd/libguac_client_rdp_la-rdpsnd-messages.lo
> >   CC       channels/rdpsnd/libguac_client_rdp_la-rdpsnd.lo
> >   CC       libguac_client_rdp_la-client.lo
> >   CC       libguac_client_rdp_la-color.lo
> >   CC       libguac_client_rdp_la-decompose.lo
> >   CC       libguac_client_rdp_la-download.lo
> >   CC       libguac_client_rdp_la-error.lo
> >   CC       libguac_client_rdp_la-fs.lo
> >   CC       libguac_client_rdp_la-gdi.lo
> >   CC       libguac_client_rdp_la-glyph.lo
> >   CC       libguac_client_rdp_la-input.lo
> >   CC       libguac_client_rdp_la-keyboard.lo
> >   CC       libguac_client_rdp_la-keymap.lo
> >   CC       libguac_client_rdp_la-log.lo
> >   CC       libguac_client_rdp_la-ls.lo
> >   CC       plugins/libguac_client_rdp_la-channels.lo
> >   CC       plugins/libguac_client_rdp_la-ptr-string.lo
> >   CC       libguac_client_rdp_la-pointer.lo
> >   CC       libguac_client_rdp_la-print-job.lo
> >   CC       libguac_client_rdp_la-rdp.lo
> >   CC       libguac_client_rdp_la-resolution.lo
> >   CC       libguac_client_rdp_la-settings.lo
> >   CC       libguac_client_rdp_la-unicode.lo
> >   CC       libguac_client_rdp_la-upload.lo
> >   CC       libguac_client_rdp_la-user.lo
> >   CC       libguac_client_rdp_la-sftp.lo
> >   CC       libguac_client_rdp_la-_generated_channel_entry_wrappers.lo
> >   CC       libguac_client_rdp_la-_generated_keymaps.lo
> >   CCLD     libguac-client-rdp.la
> > make[4]: Leaving directory `/build/guacamole-server/src/protocols/rdp'
> > Making all in tests
> > make[4]: Entering directory
> > `/build/guacamole-server/src/protocols/rdp/tests'
> > make[4]: Nothing to be done for `all'.
> > make[4]: Leaving directory
> > `/build/guacamole-server/src/protocols/rdp/tests'
> > make[3]: Leaving directory `/build/guacamole-server/src/protocols/rdp'
> > make[2]: Leaving directory `/build/guacamole-server/src/protocols/rdp'
> > Making all in src/protocols/ssh
> > make[2]: Entering directory `/build/guacamole-server/src/protocols/ssh'
> >   CC       libguac_client_ssh_la-argv.lo
> >   CC       libguac_client_ssh_la-client.lo
> >   CC       libguac_client_ssh_la-clipboard.lo
> >   CC       libguac_client_ssh_la-input.lo
> >   CC       libguac_client_ssh_la-pipe.lo
> >   CC       libguac_client_ssh_la-settings.lo
> >   CC       libguac_client_ssh_la-sftp.lo
> >   CC       libguac_client_ssh_la-ssh.lo
> >   CC       libguac_client_ssh_la-ttymode.lo
> >   CC       libguac_client_ssh_la-user.lo
> >   CCLD     libguac-client-ssh.la
> > make[2]: Leaving directory `/build/guacamole-server/src/protocols/ssh'
> > Making all in src/protocols/telnet
> > make[2]: Entering directory
> `/build/guacamole-server/src/protocols/telnet'
> >   CC       libguac_client_telnet_la-argv.lo
> >   CC       libguac_client_telnet_la-client.lo
> >   CC       libguac_client_telnet_la-clipboard.lo
> >   CC       libguac_client_telnet_la-input.lo
> >   CC       libguac_client_telnet_la-pipe.lo
> >   CC       libguac_client_telnet_la-settings.lo
> >   CC       libguac_client_telnet_la-telnet.lo
> >   CC       libguac_client_telnet_la-user.lo
> >   CCLD     libguac-client-telnet.la
> > make[2]: Leaving directory `/build/guacamole-server/src/protocols/telnet'
> > Making all in src/protocols/vnc
> > make[2]: Entering directory `/build/guacamole-server/src/protocols/vnc'
> >   CC       libguac_client_vnc_la-argv.lo
> >   CC       libguac_client_vnc_la-auth.lo
> >   CC       libguac_client_vnc_la-client.lo
> >   CC       libguac_client_vnc_la-clipboard.lo
> >   CC       libguac_client_vnc_la-cursor.lo
> >   CC       libguac_client_vnc_la-display.lo
> >   CC       libguac_client_vnc_la-input.lo
> >   CC       libguac_client_vnc_la-log.lo
> >   CC       libguac_client_vnc_la-settings.lo
> >   CC       libguac_client_vnc_la-user.lo
> >   CC       libguac_client_vnc_la-vnc.lo
> >  [91mvnc.c:56:20: fatal error: gcrypt.h: No such file or directory
> >  #include <gcrypt.h>
> >                     ^
> > compilation terminated.
> >  [0m [91mmake[2]: *** [libguac_client_vnc_la-vnc.lo] Error 1
> >  [0mmake[2]: Leaving directory
> `/build/guacamole-server/src/protocols/vnc'
> > make[1]: Leaving directory `/build/guacamole-server'
> >  [91mmake[1]: *** [all-recursive] Error 1
> >  [0m [91mmake: *** [all] Error 2
> >  [0mThe command '/bin/sh -c /bin/bash -e -x /build/build.sh' returned a
> > non-zero code: 2
> > + docker rmi --force
> >
> guac-jenkins-guacamole-guacamole-server-master-centos-centos-release-7-jenkins-label-expression-ubuntu-184
> > Error: No such image:
> >
> guac-jenkins-guacamole-guacamole-server-master-centos-centos-release-7-jenkins-label-expression-ubuntu-184
> > Build step 'Execute shell' marked build as failure
> >
>

Reply via email to