[libvirt] [jenkins-ci PATCH v3 5/7] projects: add gtk-vnc project

Andrea Bolognani abologna at redhat.com
Fri Dec 13 17:20:57 UTC 2019


On Fri, 2019-12-13 at 14:36 +0000, Daniel P. Berrangé wrote:
> +++ b/guests/playbooks/build/projects/gtk-vnc+mingw64.yml
> @@ -0,0 +1,12 @@
> +---
> +- set_fact:
> +    name: gtk-vnc+mingw64
> +    machines: '{{ mingw_machines }}'
> +    archive_format: xz
> +    git_url: '{{ git_urls["gtk-vnc"][git_remote] }}'
> +
> +- include: '{{ playbook_base }}/jobs/prepare.yml'
> +- include: '{{ playbook_base }}/jobs/meson-build-job.yml'
> +  vars:
> +    local_env: '{{ mingw64_local_env }}'
> +    meson_args: '{{ mingw32_meson_args }}'

s/mingw32/mingw64/

> +++ b/guests/playbooks/build/projects/gtk-vnc.yml
> @@ -0,0 +1,19 @@
> +---
> +- set_fact:
> +    name: gtk-vnc
> +    machines: '{{ all_machines }}'
> +    archive_format: xz
> +    git_url: '{{ git_urls["gtk-vnc"][git_remote] }}'
> +
> +- include: '{{ playbook_base }}/jobs/prepare.yml'
> +- include: '{{ playbook_base }}/jobs/meson-build-job.yml'

Build fails on FreeBSD with

  $ meson .. . --prefix=$VIRT_PREFIX
  The Meson build system
  Version: 0.52.1
  Source dir: /usr/home/test/gtk-vnc
  Build dir: /usr/home/test/gtk-vnc/build
  Build type: native build
  Project name: gtk-vnc
  Project version: 1.0.0
  C compiler for the host machine: ccache cc (clang 6.0.1 "FreeBSD clang version 6.0.1 (tags/RELEASE_601/final 335540) (based on LLVM 6.0.1)")
  C linker for the host machine: lld 6.0.1
  Host machine cpu family: x86_64
  Host machine cpu: x86_64
  Program pod2man found: YES (/usr/local/bin/pod2man)
  Found pkg-config: /usr/local/bin/pkg-config (1.6.3)
  Run-time dependency gobject-2.0 found: YES 2.56.3
  Run-time dependency gio-2.0 found: YES 2.56.3
  Run-time dependency gio-unix-2.0 found: YES 2.56.3
  Run-time dependency gdk-pixbuf-2.0 found: YES 2.38.1
  Did not find CMake 'cmake'
  Found CMake: NO
  Run-time dependency gtk+-3.0 found: NO

  meson.build:81:0: ERROR: Could not generate cargs for gtk+-3.0:
  Package xproto was not found in the pkg-config search path.
  Perhaps you should add the directory containing `xproto.pc'
  to the PKG_CONFIG_PATH environment variable
  Package 'xproto', required by 'x11', not found
  Package 'kbproto', required by 'x11', not found
  Package 'xextproto', required by 'xext', not found
  Package 'xproto', required by 'xdamage', not found
  [...]

The issue is not in Meson itself:

  $ pkg-config --cflags --libs gtk+-3.0
  Package xproto was not found in the pkg-config search path.
  Perhaps you should add the directory containing `xproto.pc'
  to the PKG_CONFIG_PATH environment variable
  Package 'xproto', required by 'x11', not found
  Package 'kbproto', required by 'x11', not found
  Package 'xextproto', required by 'xext', not found
  Package 'xproto', required by 'xdamage', not found
  [...]

so it looks like it's most likely a packaging issue.

On Debian 9, it fails with

  [...]
  [56/64] Linking target src/libgtk-vnc-2.0.so.0.0.2.
  FAILED: src/libgtk-vnc-2.0.so.0.0.2
  ccache cc  -o src/libgtk-vnc-2.0.so.0.0.2 'src/25a6634@@gtk-vnc-2.0 at sha/meson-generated_.._vncdisplayenums.c.o' 'src/25a6634@@gtk-vnc-2.0 at sha/meson-generated_.._vncmarshal.c.o' 'src/25a6634@@gtk-vnc-2.0 at sha/meson-generated_.._vncconnectionenums.c.o' 'src/25a6634@@gtk-vnc-2.0 at sha/vncdisplay.c.o' 'src/25a6634@@gtk-vnc-2.0 at sha/vncgrabsequence.c.o' 'src/25a6634@@gtk-vnc-2.0 at sha/vnccairoframebuffer.c.o' 'src/25a6634@@gtk-vnc-2.0 at sha/vncdisplaykeymap.c.o' -Wl,--no-undefined -Wl,--as-needed -shared -fPIC -Wl,--start-group -Wl,-soname,libgtk-vnc-2.0.so.0 src/libgvnc-1.0.so.0.0.1 -Wl,--no-undefined -Wl,--version-script,/home/test/gtk-vnc/src/libgtk-vnc_sym.version /usr/lib/x86_64-linux-gnu/libgtk-3.so /usr/lib/x86_64-linux-gnu/libgdk-3.so /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so /usr/lib/x86_64-linux-gnu/libpango-1.0.so /usr/lib/x86_64-linux-gnu/libatk-1.0.so /usr/lib/x86_64-linux-gnu/libcairo-gobject.so /usr/lib/x86_64-linux-gnu/libcairo.so /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so /usr/lib/x86_64-linux-gnu/libgio-2.0.so /usr/lib/x86_64-linux-gnu/libgobject-2.0.so /usr/lib/x86_64-linux-gnu/libglib-2.0.so -lgcrypt /usr/lib/x86_64-linux-gnu/libgnutls.so /usr/lib/x86_64-linux-gnu/libsasl2.so /usr/lib/x86_64-linux-gnu/libz.so -Wl,--end-group '-Wl,-rpath,$ORIGIN/' -Wl,-rpath-link,/home/test/gtk-vnc/build/src
  src/25a6634@@gtk-vnc-2.0 at sha/vncdisplaykeymap.c.o: In function `vnc_display_keymap_gdk2rfb_table':
  /home/test/gtk-vnc/build/../src/vncdisplaykeymap.c:150: undefined reference to `XkbGetMap'
  /home/test/gtk-vnc/build/../src/vncdisplaykeymap.c:154: undefined reference to `XkbGetNames'
  /home/test/gtk-vnc/build/../src/vncdisplaykeymap.c:163: undefined reference to `XkbFreeKeyboard'
  src/25a6634@@gtk-vnc-2.0 at sha/vncdisplaykeymap.c.o: In function `check_for_xquartz':
  /home/test/gtk-vnc/build/../src/vncdisplaykeymap.c:116: undefined reference to `XListExtensions'
  /home/test/gtk-vnc/build/../src/vncdisplaykeymap.c:125: undefined reference to `XFreeExtensionList'
  src/25a6634@@gtk-vnc-2.0 at sha/vncdisplaykeymap.c.o: In function `vnc_display_keymap_gdk2rfb_table':
  /home/test/gtk-vnc/build/../src/vncdisplaykeymap.c:177: undefined reference to `XKeysymToKeycode'
  /home/test/gtk-vnc/build/../src/vncdisplaykeymap.c:182: undefined reference to `XKeysymToKeycode'
  /home/test/gtk-vnc/build/../src/vncdisplaykeymap.c:177: undefined reference to `XKeysymToKeycode'
  /home/test/gtk-vnc/build/../src/vncdisplaykeymap.c:182: undefined reference to `XKeysymToKeycode'
  src/25a6634@@gtk-vnc-2.0 at sha/vncdisplaykeymap.c.o: In function `check_for_xquartz':
  /home/test/gtk-vnc/build/../src/vncdisplaykeymap.c:125: undefined reference to `XFreeExtensionList'
  collect2: error: ld returned 1 exit status
  [58/64] Generating GVncPulse-1.0.typelib with a custom command.
  ninja: build stopped: subcommand failed.

and both Ubuntu version also display very similar failures.

> +- include: '{{ playbook_base }}/jobs/meson-check-job.yml'
> +- include: '{{ playbook_base }}/jobs/meson-rpm-job.yml'
> +  vars:
> +    # RPM build is still not possible on CentOS7 as it does not
> +    # have the needed RPM macros for meson.
> +    machines:
> +      - libvirt-centos-8
> +      - libvirt-fedora-30
> +      - libvirt-fedora-31
> +      - libvirt-fedora-rawhide

Building the RPM fails everywhere with

  $ rpmbuild --clean --define "_topdir `pwd`/rpmbuild" -ta meson-dist/*.tar.xz
  error: Failed to read spec file from meson-dist/gtk-vnc-1.0.0.tar.xz

I think we might need to adapt our RPM build rules.

> +++ b/jenkins/projects/gtk-vnc+mingw64.yaml
> @@ -0,0 +1,12 @@
> +---
> +- project:
> +    name: gtk-vnc+mingw64
> +    machines: '{mingw_machines}'
> +    title: GTK-VNC MinGW (64-bit)
> +    archive_format: xz
> +    git_url: '{git_urls[gtk-vnc][default]}'
> +    jobs:
> +      - meson-build-job:
> +          parent_jobs:
> +          local_env: '{mingw64_local_env}'
> +          meson_args: '{mingw32_meson_args}'

s/mingw32/mingw64/

> +++ b/jenkins/projects/gtk-vnc.yaml
> @@ -0,0 +1,15 @@
> +---
> +- project:
> +    name: gtk-vnc
> +    machines: '{all_machines}'
> +    title: GTK-VNC
> +    archive_format: gz

s/gz/xz/

> +    git_url: '{git_urls[gtk-vnc][default]}'
> +    jobs:
> +      - meson-build-job:
> +          parent_jobs:
> +      - meson-check-job:
> +          parent_jobs: 'gtk-vnc-build'
> +      - meson-rpm-job:
> +          parent_jobs: 'gtk-vnc-check'
> +          machines: '{rpm_machines}'

This needs to have the same list of machines, and the same comment,
as the Ansible version.

-- 
Andrea Bolognani / Red Hat / Virtualization





More information about the libvir-list mailing list