[libvirt] [libvirt-jenkins-ci PATCH 05/18] ansible: Add libvirt-cim project

Daniel P. Berrange berrange at redhat.com
Tue Oct 3 09:02:21 UTC 2017


On Tue, Oct 03, 2017 at 09:18:32AM +0200, Andrea Bolognani wrote:
> On Mon, 2017-10-02 at 16:57 +0100, Daniel P. Berrange wrote:
> > > +packages:
> > > +  - libcmpiutil-devel
> > > +  - libconfig-devel
> > > +  - libuuid-devel
> > > +  - libxml2-devel
> > > +  - libxslt
> > > +  - wget
> > > +
> > > +extra_packages:
> > > +  - libvirt-devel
> > 
> > This isn't right - we should never install libvirt-devel on any of the
> > build hosts. Downstream projects are chained up to build against the
> > version of libvirt we just built. The same applies for other deps
> > we build that are used by other downstream pieces.
> 
> That's why it's in 'extra_packages' rather than 'packages' ;)
> 
> Again, this is only used during development.
> 
> See group_vars/all/main.yml:
> 
>   # Wether to build software. While this is useful for figuring out
>   # build dependencies, it should not be turned on in production
>   # because it causes extra packages to be installed, which can
>   # interfere with the CI jobs
>   build: false
> 
> and tasks/packages.yml:
> 
>   - name: '{{ project }}: Install extra packages'
>     package:
>       name: '{{ item }}'
>       state: present
>     with_items:
>       '{{ extra_packages }}'
>     when:
>       - extra_packages is defined
>       # Only extra additional packages if we're going to build
>       - build
> 
> Yuck, I accidentally that comment. You get the idea though.
> 
> > Is there any way to get inheritance between these 'vars' files, so we don't
> > copy+paste the same content for every Fedora/CentOS version ?
> 
> Mh, I have the feeling it might complicate things rather than
> make them nicer. I can look into it, though.

One of the big wins when I moved the configs out of Jenkins native config
format, into the Jenkins  Job Builder config format is that we could
eliminate all the duplication between the configs. So from that POV it
feels unpleasant to be re-adding lots of duplication. 

In the very last patch you add a bunch of files which define aliases for
the various dependancies, and map those to the distro specific package
name eg 

+cyrus-sasl:
+  - cyrus-sasl       # FreeBSD
+  - cyrus-sasl-devel # CentOS, Fedora
+  - libsasl2-dev     # Debian, Ubuntu

Given these data maps, it seems like we ought to be able to define the
build pre-requisites once in terms of the alias names, and then expand
that into the distro specific package lists, thus avoiding a per-distro
list of deps for each module

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 :|




More information about the libvir-list mailing list