[libvirt] [jenkins-ci PATCH 0/4] Switch libosinfo builds to Meson

Subject says it all, basically. It's important to note that we will add the whole machinery to install meson via pip and build the projects in platforms where the minimum required version of meson is not present, I really would like to go ahead with this patch as soon as I can have the libosinfo MR acked. Fabiano Fidêncio (4): libosinfo: Add meson dependency Only build libosinfo on systems with meson >= 0.49.0 Update libosinfo's archive_format Switch libosinfo builds to Meson guests/host_vars/libvirt-centos-7/main.yml | 1 - guests/host_vars/libvirt-debian-9/main.yml | 1 - guests/host_vars/libvirt-ubuntu-16/main.yml | 1 - guests/host_vars/libvirt-ubuntu-18/main.yml | 1 - .../build/projects/libosinfo+mingw32.yml | 6 ++--- .../build/projects/libosinfo+mingw64.yml | 6 ++--- guests/playbooks/build/projects/libosinfo.yml | 26 ++++++++++++++----- guests/vars/projects/libosinfo+mingw32.yml | 1 + guests/vars/projects/libosinfo+mingw64.yml | 1 + guests/vars/projects/libosinfo.yml | 1 + jenkins/projects/libosinfo+mingw32.yaml | 6 ++--- jenkins/projects/libosinfo+mingw64.yaml | 6 ++--- jenkins/projects/libosinfo.yaml | 26 +++++++++++++------ 13 files changed, 52 insertions(+), 31 deletions(-) -- 2.23.0

It's been introduced as dependency as part of v1.7.0 development cycle. Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> --- guests/vars/projects/libosinfo+mingw32.yml | 1 + guests/vars/projects/libosinfo+mingw64.yml | 1 + guests/vars/projects/libosinfo.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/guests/vars/projects/libosinfo+mingw32.yml b/guests/vars/projects/libosinfo+mingw32.yml index 5884a09..107ab20 100644 --- a/guests/vars/projects/libosinfo+mingw32.yml +++ b/guests/vars/projects/libosinfo+mingw32.yml @@ -1,5 +1,6 @@ --- packages: + - meson - mingw32-glib2 - mingw32-libsoup - mingw32-libxml2 diff --git a/guests/vars/projects/libosinfo+mingw64.yml b/guests/vars/projects/libosinfo+mingw64.yml index 182c784..8ef9b4a 100644 --- a/guests/vars/projects/libosinfo+mingw64.yml +++ b/guests/vars/projects/libosinfo+mingw64.yml @@ -1,5 +1,6 @@ --- packages: + - meson - mingw64-glib2 - mingw64-libsoup - mingw64-libxml2 diff --git a/guests/vars/projects/libosinfo.yml b/guests/vars/projects/libosinfo.yml index dba691c..c93b15e 100644 --- a/guests/vars/projects/libosinfo.yml +++ b/guests/vars/projects/libosinfo.yml @@ -7,6 +7,7 @@ packages: - libsoup - libxml2 - libxslt + - meson - pci-ids - usb-ids - vala -- 2.23.0

libosinfo has switched its build system to meson and requires 0.49.0 or newer. Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> --- guests/host_vars/libvirt-centos-7/main.yml | 1 - guests/host_vars/libvirt-debian-9/main.yml | 1 - guests/host_vars/libvirt-ubuntu-16/main.yml | 1 - guests/host_vars/libvirt-ubuntu-18/main.yml | 1 - guests/playbooks/build/projects/libosinfo.yml | 17 +++++++++++++++-- jenkins/projects/libosinfo.yaml | 16 ++++++++++++++-- 6 files changed, 29 insertions(+), 8 deletions(-) diff --git a/guests/host_vars/libvirt-centos-7/main.yml b/guests/host_vars/libvirt-centos-7/main.yml index 72db363..6156414 100644 --- a/guests/host_vars/libvirt-centos-7/main.yml +++ b/guests/host_vars/libvirt-centos-7/main.yml @@ -1,6 +1,5 @@ --- projects: - - libosinfo - libvirt - libvirt-cim - libvirt-dbus diff --git a/guests/host_vars/libvirt-debian-9/main.yml b/guests/host_vars/libvirt-debian-9/main.yml index c45c0fb..cb19395 100644 --- a/guests/host_vars/libvirt-debian-9/main.yml +++ b/guests/host_vars/libvirt-debian-9/main.yml @@ -1,6 +1,5 @@ --- projects: - - libosinfo - libvirt - libvirt-dbus - libvirt-glib diff --git a/guests/host_vars/libvirt-ubuntu-16/main.yml b/guests/host_vars/libvirt-ubuntu-16/main.yml index 3e9ae9f..0407ae3 100644 --- a/guests/host_vars/libvirt-ubuntu-16/main.yml +++ b/guests/host_vars/libvirt-ubuntu-16/main.yml @@ -1,6 +1,5 @@ --- projects: - - libosinfo - libvirt - libvirt-dbus - libvirt-glib diff --git a/guests/host_vars/libvirt-ubuntu-18/main.yml b/guests/host_vars/libvirt-ubuntu-18/main.yml index 4a38ab0..4a95f45 100644 --- a/guests/host_vars/libvirt-ubuntu-18/main.yml +++ b/guests/host_vars/libvirt-ubuntu-18/main.yml @@ -1,6 +1,5 @@ --- projects: - - libosinfo - libvirt - libvirt-dbus - libvirt-glib diff --git a/guests/playbooks/build/projects/libosinfo.yml b/guests/playbooks/build/projects/libosinfo.yml index 311a52b..60a6df2 100644 --- a/guests/playbooks/build/projects/libosinfo.yml +++ b/guests/playbooks/build/projects/libosinfo.yml @@ -1,7 +1,17 @@ --- - set_fact: name: libosinfo - machines: '{{ all_machines }}' + # libosinfo depends on meson 0.49.0, which is not available on + # CentOS 7, Debian 9, Ubuntu 18; + machines: + - libvirt-debian-10 + - libvirt-debian-sid + - libvirt-fedora-29 + - libvirt-fedora-30 + - libvirt-fedora-rawhide + - libvirt-freebsd-11 + - libvirt-freebsd-12 + - libvirt-freebsd-current archive_format: gz git_url: '{{ git_urls["libosinfo"][git_remote] }}' @@ -11,4 +21,7 @@ - include: '{{ playbook_base }}/jobs/autotools-check-job.yml' - include: '{{ playbook_base }}/jobs/autotools-rpm-job.yml' vars: - machines: '{{ rpm_machines }}' + machines: + - libvirt-fedora-29 + - libvirt-fedora-30 + - libvirt-fedora-rawhide diff --git a/jenkins/projects/libosinfo.yaml b/jenkins/projects/libosinfo.yaml index d20d3f2..409c1f9 100644 --- a/jenkins/projects/libosinfo.yaml +++ b/jenkins/projects/libosinfo.yaml @@ -1,7 +1,16 @@ --- - project: name: libosinfo - machines: '{all_machines}' + # libosinfo depends on meson 0.49.0, which is not available on + # CentOS 7, Debian 9, Ubuntu 18; + machines: + - libvirt-debian-10 + - libvirt-debian-sid + - libvirt-fedora-29 + - libvirt-fedora-30 + - libvirt-fedora-rawhide + - libvirt-freebsd-11 + - libvirt-freebsd-12 title: libosinfo archive_format: gz git_url: '{git_urls[libosinfo][default]}' @@ -14,4 +23,7 @@ parent_jobs: 'libosinfo-syntax-check' - autotools-rpm-job: parent_jobs: 'libosinfo-check' - machines: '{rpm_machines}' + machines: + - libvirt-fedora-29 + - libvirt-fedora-30 + - libvirt-fedora-rawhide -- 2.23.0

Since the switch to meson, libosinfo's archive format is "xz" instead of "gz". Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> --- guests/playbooks/build/projects/libosinfo+mingw32.yml | 2 +- guests/playbooks/build/projects/libosinfo+mingw64.yml | 2 +- guests/playbooks/build/projects/libosinfo.yml | 2 +- jenkins/projects/libosinfo+mingw32.yaml | 2 +- jenkins/projects/libosinfo+mingw64.yaml | 2 +- jenkins/projects/libosinfo.yaml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/guests/playbooks/build/projects/libosinfo+mingw32.yml b/guests/playbooks/build/projects/libosinfo+mingw32.yml index 4979f5f..fee0ef7 100644 --- a/guests/playbooks/build/projects/libosinfo+mingw32.yml +++ b/guests/playbooks/build/projects/libosinfo+mingw32.yml @@ -2,7 +2,7 @@ - set_fact: name: libosinfo+mingw32 machines: '{{ mingw_machines }}' - archive_format: gz + archive_format: xz git_url: '{{ git_urls["libosinfo"][git_remote] }}' - include: '{{ playbook_base }}/jobs/prepare.yml' diff --git a/guests/playbooks/build/projects/libosinfo+mingw64.yml b/guests/playbooks/build/projects/libosinfo+mingw64.yml index 64b6dc1..a79accc 100644 --- a/guests/playbooks/build/projects/libosinfo+mingw64.yml +++ b/guests/playbooks/build/projects/libosinfo+mingw64.yml @@ -2,7 +2,7 @@ - set_fact: name: libosinfo+mingw64 machines: '{{ mingw_machines }}' - archive_format: gz + archive_format: xz git_url: '{{ git_urls["libosinfo"][git_remote] }}' - include: '{{ playbook_base }}/jobs/prepare.yml' diff --git a/guests/playbooks/build/projects/libosinfo.yml b/guests/playbooks/build/projects/libosinfo.yml index 60a6df2..3a0c43c 100644 --- a/guests/playbooks/build/projects/libosinfo.yml +++ b/guests/playbooks/build/projects/libosinfo.yml @@ -12,7 +12,7 @@ - libvirt-freebsd-11 - libvirt-freebsd-12 - libvirt-freebsd-current - archive_format: gz + archive_format: xz git_url: '{{ git_urls["libosinfo"][git_remote] }}' - include: '{{ playbook_base }}/jobs/prepare.yml' diff --git a/jenkins/projects/libosinfo+mingw32.yaml b/jenkins/projects/libosinfo+mingw32.yaml index 8356724..d3e5d42 100644 --- a/jenkins/projects/libosinfo+mingw32.yaml +++ b/jenkins/projects/libosinfo+mingw32.yaml @@ -3,7 +3,7 @@ name: libosinfo+mingw32 machines: '{mingw_machines}' title: libosinfo MinGW (32-bit) - archive_format: gz + archive_format: xz git_url: '{git_urls[libosinfo][default]}' jobs: - autotools-build-job: diff --git a/jenkins/projects/libosinfo+mingw64.yaml b/jenkins/projects/libosinfo+mingw64.yaml index 492bbb7..25ce34c 100644 --- a/jenkins/projects/libosinfo+mingw64.yaml +++ b/jenkins/projects/libosinfo+mingw64.yaml @@ -3,7 +3,7 @@ name: libosinfo+mingw64 machines: '{mingw_machines}' title: libosinfo MinGW (64-bit) - archive_format: gz + archive_format: xz git_url: '{git_urls[libosinfo][default]}' jobs: - autotools-build-job: diff --git a/jenkins/projects/libosinfo.yaml b/jenkins/projects/libosinfo.yaml index 409c1f9..200a766 100644 --- a/jenkins/projects/libosinfo.yaml +++ b/jenkins/projects/libosinfo.yaml @@ -12,7 +12,7 @@ - libvirt-freebsd-11 - libvirt-freebsd-12 title: libosinfo - archive_format: gz + archive_format: xz git_url: '{git_urls[libosinfo][default]}' jobs: - autotools-build-job: -- 2.23.0

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> --- guests/playbooks/build/projects/libosinfo+mingw32.yml | 4 ++-- guests/playbooks/build/projects/libosinfo+mingw64.yml | 4 ++-- guests/playbooks/build/projects/libosinfo.yml | 7 +++---- jenkins/projects/libosinfo+mingw32.yaml | 4 ++-- jenkins/projects/libosinfo+mingw64.yaml | 4 ++-- jenkins/projects/libosinfo.yaml | 8 +++----- 6 files changed, 14 insertions(+), 17 deletions(-) diff --git a/guests/playbooks/build/projects/libosinfo+mingw32.yml b/guests/playbooks/build/projects/libosinfo+mingw32.yml index fee0ef7..ea113e2 100644 --- a/guests/playbooks/build/projects/libosinfo+mingw32.yml +++ b/guests/playbooks/build/projects/libosinfo+mingw32.yml @@ -6,7 +6,7 @@ git_url: '{{ git_urls["libosinfo"][git_remote] }}' - include: '{{ playbook_base }}/jobs/prepare.yml' -- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' +- include: '{{ playbook_base }}/jobs/meson-build-job.yml' vars: local_env: '{{ mingw32_local_env }}' - autogen_args: '{{ mingw32_autogen_args }}' + autogen_args: '{{ mingw32_meson_args }}' diff --git a/guests/playbooks/build/projects/libosinfo+mingw64.yml b/guests/playbooks/build/projects/libosinfo+mingw64.yml index a79accc..e7cc88c 100644 --- a/guests/playbooks/build/projects/libosinfo+mingw64.yml +++ b/guests/playbooks/build/projects/libosinfo+mingw64.yml @@ -6,7 +6,7 @@ git_url: '{{ git_urls["libosinfo"][git_remote] }}' - include: '{{ playbook_base }}/jobs/prepare.yml' -- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' +- include: '{{ playbook_base }}/jobs/meson-build-job.yml' vars: local_env: '{{ mingw64_local_env }}' - autogen_args: '{{ mingw64_autogen_args }}' + autogen_args: '{{ mingw64_meson_args }}' diff --git a/guests/playbooks/build/projects/libosinfo.yml b/guests/playbooks/build/projects/libosinfo.yml index 3a0c43c..f06dbb3 100644 --- a/guests/playbooks/build/projects/libosinfo.yml +++ b/guests/playbooks/build/projects/libosinfo.yml @@ -16,10 +16,9 @@ git_url: '{{ git_urls["libosinfo"][git_remote] }}' - include: '{{ playbook_base }}/jobs/prepare.yml' -- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' -- include: '{{ playbook_base }}/jobs/autotools-syntax-check-job.yml' -- include: '{{ playbook_base }}/jobs/autotools-check-job.yml' -- include: '{{ playbook_base }}/jobs/autotools-rpm-job.yml' +- include: '{{ playbook_base }}/jobs/meson-build-job.yml' +- include: '{{ playbook_base }}/jobs/meson-check-job.yml' +- include: '{{ playbook_base }}/jobs/meson-rpm-job.yml' vars: machines: - libvirt-fedora-29 diff --git a/jenkins/projects/libosinfo+mingw32.yaml b/jenkins/projects/libosinfo+mingw32.yaml index d3e5d42..6900090 100644 --- a/jenkins/projects/libosinfo+mingw32.yaml +++ b/jenkins/projects/libosinfo+mingw32.yaml @@ -6,7 +6,7 @@ archive_format: xz git_url: '{git_urls[libosinfo][default]}' jobs: - - autotools-build-job: + - meson-build-job: parent_jobs: 'osinfo-db-tools+mingw32-build' local_env: '{mingw32_local_env}' - autogen_args: '{mingw32_autogen_args}' + autogen_args: '{mingw32_meson_args}' diff --git a/jenkins/projects/libosinfo+mingw64.yaml b/jenkins/projects/libosinfo+mingw64.yaml index 25ce34c..bcd81d8 100644 --- a/jenkins/projects/libosinfo+mingw64.yaml +++ b/jenkins/projects/libosinfo+mingw64.yaml @@ -6,7 +6,7 @@ archive_format: xz git_url: '{git_urls[libosinfo][default]}' jobs: - - autotools-build-job: + - meson-build-job: parent_jobs: 'osinfo-db-tools+mingw64-build' local_env: '{mingw64_local_env}' - autogen_args: '{mingw64_autogen_args}' + autogen_args: '{mingw64_meson_args}' diff --git a/jenkins/projects/libosinfo.yaml b/jenkins/projects/libosinfo.yaml index 200a766..c744b38 100644 --- a/jenkins/projects/libosinfo.yaml +++ b/jenkins/projects/libosinfo.yaml @@ -15,13 +15,11 @@ archive_format: xz git_url: '{git_urls[libosinfo][default]}' jobs: - - autotools-build-job: + - meson-build-job: parent_jobs: 'osinfo-db-build' - - autotools-syntax-check-job: + - meson-check-job: parent_jobs: 'libosinfo-build' - - autotools-check-job: - parent_jobs: 'libosinfo-syntax-check' - - autotools-rpm-job: + - meson-rpm-job: parent_jobs: 'libosinfo-check' machines: - libvirt-fedora-29 -- 2.23.0

On Tue, 2019-09-24 at 09:02 +0200, Fabiano Fidêncio wrote:
+++ b/guests/playbooks/build/projects/libosinfo+mingw32.yml @@ -6,7 +6,7 @@ git_url: '{{ git_urls["libosinfo"][git_remote] }}'
- include: '{{ playbook_base }}/jobs/prepare.yml' -- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' +- include: '{{ playbook_base }}/jobs/meson-build-job.yml' vars: local_env: '{{ mingw32_local_env }}' - autogen_args: '{{ mingw32_autogen_args }}' + autogen_args: '{{ mingw32_meson_args }}'
You need to change the variable name to meson_args for MinGW builds to happen (three more instances below). -- Andrea Bolognani / Red Hat / Virtualization

On Tue, 2019-09-24 at 09:02 +0200, Fabiano Fidêncio wrote:
Subject says it all, basically. It's important to note that we will add the whole machinery to install meson via pip and build the projects in platforms where the minimum required version of meson is not present, I really would like to go ahead with this patch as soon as I can have the libosinfo MR acked.
Fabiano Fidêncio (4): libosinfo: Add meson dependency Only build libosinfo on systems with meson >= 0.49.0 Update libosinfo's archive_format Switch libosinfo builds to Meson
Merging this now means you'll have to revert at least part of it once we introduce the support for non-distro-provided Meson that you mention above, but you're clearly aware of that. As long as you're okay with doing some of the work twice, and given that we have both a precedent of dropping some targets for Meson-related reasons (osinfo-db-tools) and a plan to address that issue going forward, I'm okay with merging this to unblock your libosinfo patches, so Reviewed-by: Andrea Bolognani <abologna@redhat.com> Just let me know when it's a good time for me to push them (after addressing the obvious bug in 4/4) and apply the changes to the CI environment. -- Andrea Bolognani / Red Hat / Virtualization
participants (2)
-
Andrea Bolognani
-
Fabiano Fidêncio