[libvirt-ci PATCH 0/2] Improve CentOS coverage

Build more projects and install more optional dependencies. Andrea Bolognani (2): mappings: Add libssh2 and wireshark on CentOS Build libvirt-tck on CentOS 8 guests/playbooks/build/projects/libvirt-tck.yml | 2 ++ guests/vars/mappings.yml | 2 -- jenkins/projects/libvirt-tck.yaml | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) -- 2.25.3

Turns out the packages are actually available on both CentOS 7 and CentOS 8. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- guests/vars/mappings.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/guests/vars/mappings.yml b/guests/vars/mappings.yml index e924e5b..753f0fe 100644 --- a/guests/vars/mappings.yml +++ b/guests/vars/mappings.yml @@ -425,7 +425,6 @@ mappings: deb: libssh2-1-dev pkg: libssh2 rpm: libssh2-devel - CentOS8: cross-policy-deb: foreign libtirpc: @@ -996,7 +995,6 @@ mappings: wireshark: deb: wireshark-dev rpm: wireshark-devel - CentOS: cross-policy-deb: skip xen: -- 2.25.3

On Mon, Apr 20, 2020 at 03:00:36PM +0200, Andrea Bolognani wrote:
Turns out the packages are actually available on both CentOS 7 and CentOS 8.
Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- guests/vars/mappings.yml | 2 -- 1 file changed, 2 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

CentOS 7 is missing perl-generators, as explained in the comment, but this limitation does not apply to CentOS 8. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- guests/playbooks/build/projects/libvirt-tck.yml | 2 ++ jenkins/projects/libvirt-tck.yaml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/guests/playbooks/build/projects/libvirt-tck.yml b/guests/playbooks/build/projects/libvirt-tck.yml index b8d848c..c83d8b6 100644 --- a/guests/playbooks/build/projects/libvirt-tck.yml +++ b/guests/playbooks/build/projects/libvirt-tck.yml @@ -4,6 +4,7 @@ # build libvirt-tck name: libvirt-tck machines: + - libvirt-centos-8 - libvirt-debian-9 - libvirt-debian-10 - libvirt-debian-sid @@ -24,6 +25,7 @@ - include: '{{ playbook_base }}/jobs/perl-modulebuild-rpm-job.yml' vars: machines: + - libvirt-centos-8 - libvirt-fedora-30 - libvirt-fedora-31 - libvirt-fedora-rawhide diff --git a/jenkins/projects/libvirt-tck.yaml b/jenkins/projects/libvirt-tck.yaml index fcdea98..c0fb1f7 100644 --- a/jenkins/projects/libvirt-tck.yaml +++ b/jenkins/projects/libvirt-tck.yaml @@ -4,6 +4,7 @@ # CentOS 7 doesn't include perl-generators, which is necessary to # build libvirt-tck machines: + - libvirt-centos-8 - libvirt-debian-9 - libvirt-debian-10 - libvirt-fedora-30 @@ -22,6 +23,7 @@ - perl-modulebuild-rpm-job: parent_jobs: 'libvirt-tck-check' machines: + - libvirt-centos-8 - libvirt-fedora-30 - libvirt-fedora-31 - libvirt-fedora-rawhide -- 2.25.3

On Mon, Apr 20, 2020 at 03:00:37PM +0200, Andrea Bolognani wrote:
CentOS 7 is missing perl-generators, as explained in the comment, but this limitation does not apply to CentOS 8.
The comment is wrong
diff --git a/jenkins/projects/libvirt-tck.yaml b/jenkins/projects/libvirt-tck.yaml index fcdea98..c0fb1f7 100644 --- a/jenkins/projects/libvirt-tck.yaml +++ b/jenkins/projects/libvirt-tck.yaml @@ -4,6 +4,7 @@ # CentOS 7 doesn't include perl-generators, which is necessary to # build libvirt-tck
perl-Sys-Virt-TCK.spec.PL says %if 0%{?fedora} || 0%{?rhel} > 7 BuildRequires: perl-interpreter BuildRequires: perl-generators %endif perl-generators is not a module ever used by code, it is an invention of the RPM packaging, to get the automatic Reqiures/Provides lines added. So the fact that it doesn't exist on RHEL-7 is simply because it is part of another RPM instead (redhat-rpm-config IIRC)
machines: + - libvirt-centos-8 - libvirt-debian-9 - libvirt-debian-10 - libvirt-fedora-30 @@ -22,6 +23,7 @@ - perl-modulebuild-rpm-job: parent_jobs: 'libvirt-tck-check' machines: + - libvirt-centos-8 - libvirt-fedora-30 - libvirt-fedora-31 - libvirt-fedora-rawhide -- 2.25.3
Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Mon, 2020-04-20 at 14:05 +0100, Daniel P. Berrangé wrote:
On Mon, Apr 20, 2020 at 03:00:37PM +0200, Andrea Bolognani wrote:
# CentOS 7 doesn't include perl-generators, which is necessary to # build libvirt-tck
perl-Sys-Virt-TCK.spec.PL says
%if 0%{?fedora} || 0%{?rhel} > 7 BuildRequires: perl-interpreter BuildRequires: perl-generators %endif
perl-generators is not a module ever used by code, it is an invention of the RPM packaging, to get the automatic Reqiures/Provides lines added. So the fact that it doesn't exist on RHEL-7 is simply because it is part of another RPM instead (redhat-rpm-config IIRC)
Okay, my testing was flawed because I failed to add libvirt-tck to the list of projects associated to the hosts in the inventory. What happens if you actually try to build the project is, everything works fine on both targets until you get to the RPM part, which fails with perl(Config::Record) is needed by perl-Sys-Virt-TCK-2.0.0-1.el7.noarch perl(TAP::Formatter::HTML) is needed by perl-Sys-Virt-TCK-2.0.0-1.el7.noarch perl(TAP::Formatter::JUnit) is needed by perl-Sys-Virt-TCK-2.0.0-1.el7.noarch perl(TAP::Harness::Archive) is needed by perl-Sys-Virt-TCK-2.0.0-1.el7.noarch perl(accessors) is needed by perl-Sys-Virt-TCK-2.0.0-1.el7.noarch on CentOS 7 and with perl(Config::Record) is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch perl(LWP::UserAgent) is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch perl(Sys::Virt) >= 0.2.1 is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch perl(TAP::Formatter::HTML) is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch perl(TAP::Formatter::JUnit) is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch perl(TAP::Harness::Archive) is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch perl(accessors) is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch on CentOS 8, which looks about right because the corresponding packages are not available in the repositories. Now the question is: if these are actual build requirements, how can the build succeed and the test suite pass? -- Andrea Bolognani / Red Hat / Virtualization

On Mon, Apr 20, 2020 at 06:52:59PM +0200, Andrea Bolognani wrote:
On Mon, 2020-04-20 at 14:05 +0100, Daniel P. Berrangé wrote:
On Mon, Apr 20, 2020 at 03:00:37PM +0200, Andrea Bolognani wrote:
# CentOS 7 doesn't include perl-generators, which is necessary to # build libvirt-tck
perl-Sys-Virt-TCK.spec.PL says
%if 0%{?fedora} || 0%{?rhel} > 7 BuildRequires: perl-interpreter BuildRequires: perl-generators %endif
perl-generators is not a module ever used by code, it is an invention of the RPM packaging, to get the automatic Reqiures/Provides lines added. So the fact that it doesn't exist on RHEL-7 is simply because it is part of another RPM instead (redhat-rpm-config IIRC)
Okay, my testing was flawed because I failed to add libvirt-tck to the list of projects associated to the hosts in the inventory.
What happens if you actually try to build the project is, everything works fine on both targets until you get to the RPM part, which fails with
perl(Config::Record) is needed by perl-Sys-Virt-TCK-2.0.0-1.el7.noarch perl(TAP::Formatter::HTML) is needed by perl-Sys-Virt-TCK-2.0.0-1.el7.noarch perl(TAP::Formatter::JUnit) is needed by perl-Sys-Virt-TCK-2.0.0-1.el7.noarch perl(TAP::Harness::Archive) is needed by perl-Sys-Virt-TCK-2.0.0-1.el7.noarch perl(accessors) is needed by perl-Sys-Virt-TCK-2.0.0-1.el7.noarch
on CentOS 7 and with
perl(Config::Record) is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch perl(LWP::UserAgent) is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch perl(Sys::Virt) >= 0.2.1 is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch perl(TAP::Formatter::HTML) is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch perl(TAP::Formatter::JUnit) is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch perl(TAP::Harness::Archive) is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch perl(accessors) is needed by perl-Sys-Virt-TCK-2.0.0-1.el8.noarch
on CentOS 8, which looks about right because the corresponding packages are not available in the repositories.
Now the question is: if these are actual build requirements, how can the build succeed and the test suite pass?
Well the "build" phase in Perl essentially does nothing more than copying files from one dir to another dir, so that won't care. The test suite will need more stuff, but the test suite is fairly minimal in what it does, so I'm not entirely surprised it passes. I'm 100% confident if you actually run the TCK though it will fail due to these missing pieces, most critically the Config::Record module. I'd probably just leave it disabled on both CentOS but with fixed comments to say why Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Mon, 2020-04-20 at 17:58 +0100, Daniel P. Berrangé wrote:
On Mon, Apr 20, 2020 at 06:52:59PM +0200, Andrea Bolognani wrote:
Now the question is: if these are actual build requirements, how can the build succeed and the test suite pass?
Well the "build" phase in Perl essentially does nothing more than copying files from one dir to another dir, so that won't care. The test suite will need more stuff, but the test suite is fairly minimal in what it does, so I'm not entirely surprised it passes.
I'm 100% confident if you actually run the TCK though it will fail due to these missing pieces, most critically the Config::Record module.
I'd probably just leave it disabled on both CentOS but with fixed comments to say why
Sounds good to me. Can you ACK the first patch in the series? That one is connected only by the fact that it also touches CentOS, and it doesn't make a lot of sense to send it again when I respin this one. -- Andrea Bolognani / Red Hat / Virtualization
participants (2)
-
Andrea Bolognani
-
Daniel P. Berrangé