[libvirt] [jenkins-ci PATCH] Build libosinfo and osinfo-db-tools on mingw platform

Daniel P. Berrangé berrange at redhat.com
Wed May 9 11:39:19 UTC 2018


On Wed, May 09, 2018 at 01:34:53PM +0200, Andrea Bolognani wrote:
> On Tue, 2018-05-08 at 14:37 +0100, Daniel P. Berrangé wrote:
> > Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> > ---
> >  guests/host_vars/libvirt-fedora-rawhide/main.yml |  2 ++
> >  guests/vars/mappings.yml                         |  6 ++++++
> >  guests/vars/projects/libosinfo+mingw.yml         |  8 ++++++++
> >  guests/vars/projects/osinfo-db-tools+mingw.yml   | 10 ++++++++++
> >  projects/libosinfo.yaml                          | 12 ++++++++++++
> >  projects/osinfo-db-tools.yaml                    | 12 ++++++++++++
> >  6 files changed, 50 insertions(+)
> >  create mode 100644 guests/vars/projects/libosinfo+mingw.yml
> >  create mode 100644 guests/vars/projects/osinfo-db-tools+mingw.yml
> 
> I was wondering why we didn't do this just the other day...
> Thanks for looking into it before I had a chance to :)
> 
> > diff --git a/guests/vars/mappings.yml b/guests/vars/mappings.yml
> > index f1777fe..3e33bf1 100644
> > --- a/guests/vars/mappings.yml
> > +++ b/guests/vars/mappings.yml
> > @@ -368,6 +368,9 @@ mappings:
> >    mingw32-gtk-vnc2:
> >      FedoraRawhide: mingw32-gtk-vnc2
> >  
> > +  mingw32-libarchive:
> > +    FedoraRawhide: mingw32-libarchive
> > +
> >    mingw32-libgovirt:
> >      FedoraRawhide: mingw32-libgovirt
> >  
> > @@ -437,6 +440,9 @@ mappings:
> >    mingw64-gtk-vnc2:
> >      FedoraRawhide: mingw64-gtk-vnc2
> >  
> > +  mingw64-libarchive:
> > +    FedoraRawhide: mingw64-libarchive
> > +
> >    mingw64-libgovirt:
> >      FedoraRawhide: mingw64-libgovirt
> >  
> 
> You also need
> 
>   mingw32-libxslt:
>     FedoraRawhide: mingw32-libxslt
> 
>   mingw64-libxslt:
>     FedoraRawhide: mingw64-libxslt
> 
> here.

Opps, i blindly assumed it was already there for libvirt

> 
> > diff --git a/projects/libosinfo.yaml b/projects/libosinfo.yaml
> > index 0d25447..8e3d105 100644
> > --- a/projects/libosinfo.yaml
> > +++ b/projects/libosinfo.yaml
> > @@ -13,3 +13,15 @@
> >        - autotools-rpm-job:
> >            parent_jobs: 'libosinfo-master-check'
> >            machines: '{rpm_machines}'
> > +      - autotools-build-job:
> > +          parent_jobs: 'osinfo-db-tools-master-build-mingw32'
> > +          variant: -mingw32
> > +          local_env: '{mingw32_local_env}'
> > +          autogen_args: '{mingw32_autogen_args}'
> > +          machines: '{mingw_machines}'
> > +      - autotools-build-job:
> > +          parent_jobs: 'osinfo-db-tools-master-build-mingw64'
> > +          variant: -mingw64
> > +          local_env: '{mingw64_local_env}'
> > +          autogen_args: '{mingw64_autogen_args}'
> > +          machines: '{mingw_machines}'
> 
> Unfortunately, this doesn't quite work:
> 
>   [...]
>   checking for gtk-doc... no
>   configure: WARNING:
>     You will not be able to create source packages with 'make dist'
>     because gtk-doc >= 1.10 is not found.
>   checking for gtkdoc-check... gtkdoc-check.test
>   checking for gtkdoc-check... /usr/bin/gtkdoc-check
>   checking for gtkdoc-rebase... /usr/bin/gtkdoc-rebase
>   checking for gtkdoc-mkpdf... /usr/bin/gtkdoc-mkpdf
>   checking whether to build gtk-doc documentation... yes
>   configure: error:
>     You must have gtk-doc >= 1.10 installed to build documentation for
>     libosinfo. Please install gtk-doc or disable building the
>     documentation by adding '--disable-gtk-doc' to './configure'.
> 
> The problem is that we override both $PKG_CONFIG_PATH and
> $PKG_CONFIG_LIBDIR in {mingw*_local_env}, which causes pkg-config
> to only look for .pc files in MinGW's directories; on the other
> hand, the GTK_DOC_CHECK() macro also uses pkg-config to decide
> whether gtk-doc is available, and due to the overrides it can't
> locate the native .pc file and decides it's not there.
> 
> The only reason we didn't run into this issue when enabling MinGW
> builds for libvirt-glib, which also uses gtk-doc, is that that
> project's autogen.sh doesn't explicitly enable gtk-doc support,
> while libosinfo's does:
> 
>   . gnome-autogen.sh --enable-gtk-doc "$@"
> 
> I can see a few ways to address this:
> 
>   1) make it so $PKG_CONFIG_PATH or $PKG_CONFIG_LIBDIR include
>      the native pkg-config directories even when performing MinGW
>      builds;
> 
>   2) add --disable-gtk-doc or --enable-gtk-doc=check to
>      {mingw*_autogen_args}, thus overriding the default hardcoded
>      in libosinfo's autogen.sh;
> 
>   3) change libosinfo's autogen.sh not to mandate gtk-doc for all
>      builds.
> 
> Option 3) looks like the best one to me, mostly because I think
> the default behavior of checking for gtk-doc's presence and decide
> whether to build the API reference based on that is more sane than
> forcing gtk-doc to be present; moreover, --enable-gtk-doc is
> already in $DISTCHECK_CONFIGURE_FLAGS and prepare-release.sh, so
> there's no risk of accidentally generating a release that doesn't
> contain the API reference.

Agreed - I looked back in history and it seems I added --enable-gtk-doc
to autogen.sh right at start when integrating gtk-doc. There's no good
reason given, and other projects work without this so lets remove it.

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