Bug 1465665
| Summary: | 1.36.x build failure: gtkdocize fails using newer autotools due to missing GTK_DOC_CHECK in configure.ac | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Community] Virtualization Tools | Reporter: | hlein-rhbz | ||||
| Component: | libguestfs | Assignee: | Richard W.M. Jones <rjones> | ||||
| Status: | CLOSED UPSTREAM | QA Contact: | |||||
| Severity: | unspecified | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | unspecified | CC: | hlein-rhbz, ptoscano, rbalakri | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2017-07-10 16:05:32 UTC | Type: | Bug | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
|
Description
hlein-rhbz
2017-06-27 21:40:48 UTC
I'd really love to get rid of gtk-doc. It's by far the slowest part
of the build, and adds no value since we generate documentation using POD.
Anyway ...
We already include m4/gtk-doc.m4. I conclude this because if I add
m4_include([m4/gtk-doc.m4])
then I get this warning:
m4/guestfs_gobject.m4:64: warning: file `m4/gtk-doc.m4' included several times
We are calling GTK_DOC_CHECK in m4/guestfs_gobject.m4 already.
> which in turn triggers a failure when gtkdocize is run due to missing
> macros / includes in configure.ac.
What is the error?
(In reply to Richard W.M. Jones from comment #1) > I'd really love to get rid of gtk-doc. It's by far the slowest part > of the build, and adds no value since we generate documentation using POD. I would not object :) > Anyway ... > > We already include m4/gtk-doc.m4. I conclude this because if I add > m4_include([m4/gtk-doc.m4]) > > then I get this warning: > m4/guestfs_gobject.m4:64: warning: file `m4/gtk-doc.m4' included several > times > > We are calling GTK_DOC_CHECK in m4/guestfs_gobject.m4 already. > > > which in turn triggers a failure when gtkdocize is run due to missing > > macros / includes in configure.ac. > > What is the error? Sorry, that was the entire error. From the Gentoo build process: * Running aclocal -I m4 ... * Automake used for the package (1.15) differs from the installed version (1.15.1). * Forcing a full rebuild of the autotools to workaround. * Running eautoreconf in '/var/tmp/portage/app-emulation/libguestfs-1.36.5/work/libguestfs-1.36.5' ... * Running gtkdocize --copy ... * Failed Running gtkdocize ! * * Include in your bugreport the contents of: * * /var/tmp/portage/app-emulation/libguestfs-1.36.5/temp/gtkdocize.out And the entire contents of that file is: > gtkdocize: GTK_DOC_CHECK not called in ./configure.ac My impression is that gtkdocize is not that bright; if you Google for that exact phrase you'll see many other projects having to fight with it. I think it does an initial grep before calling m4 to expand includes, causing it to quit early. Oh, but I did not include the errors that caused me to then also add the GTK_DOC_{USE,BUILD}* pieces. If I *just* add a reference to GTK_DOC_CHECK in configure.ac and regenerate, I get a bit further but then there's a failure during automake --add-missing --copy --foreign --force-missing: * Running aclocal -I m4 ... * Automake used for the package (1.15) differs from the installed version (1.15.1). * Forcing a full rebuild of the autotools to workaround. * Running eautoreconf in '/var/tmp/portage/app-emulation/libguestfs-1.36.5/work/libguestfs-1.36.5' ... * Running libtoolize --install --copy --force --automake ... * Running aclocal -I m4 ... * Running autoconf --force ... * Running autoheader ... * Running automake --add-missing --copy --foreign --force-missing ... * Failed Running automake ! * * Include in your bugreport the contents of: * * /var/tmp/portage/app-emulation/libguestfs-1.36.5/temp/automake.out Which contained: configure.ac:83: installing 'build-aux/compile' configure.ac:35: installing 'build-aux/missing' align/Makefile.am: installing 'build-aux/depcomp' gobject/docs/gtk-doc.make:7: error: GTK_DOC_USE_LIBTOOL does not appear in AM_CONDITIONAL gobject/docs/Makefile.am:95: 'gobject/docs/gtk-doc.make' included from here gobject/docs/gtk-doc.make:55: error: GTK_DOC_BUILD_HTML does not appear in AM_CONDITIONAL gobject/docs/Makefile.am:95: 'gobject/docs/gtk-doc.make' included from here gobject/docs/gtk-doc.make:60: error: GTK_DOC_BUILD_PDF does not appear in AM_CONDITIONAL gobject/docs/Makefile.am:95: 'gobject/docs/gtk-doc.make' included from here So, I added the GTK_DOC_{USE_LIBTOOL,BUILD_HTML,BUILD_PDF} entries by trial and error after Googling the subsequent errors and others' workarounds. Probably my workaround is the wrong or incomplete fix, but it _does_ allow the build to continue for me where the toolchain insists on running gtkdocize. It's Gentoo's build process deciding to run an autoreconf, and gtkdocize inside of that. I've also mentioned this in a Gentoo bug on this package, https://bugs.gentoo.org/show_bug.cgi?id=601162, and elsewhere there is a b.g.o bug for "don't always rerun gtkdocize": https://bugs.gentoo.org/show_bug.cgi?id=459978 If you think the right fix for libguestfs is "Gentoo, don't do that" then I'll update those two bugs accordingly. Let me see how easy it is to *remove* gtk-docs ... Patches to remove gtk-doc: https://www.redhat.com/archives/libguestfs/2017-June/msg00298.html Great, thank you! Upstream in: https://github.com/libguestfs/libguestfs/commit/2cb0413049f1a185a057c1b82b6642241f80dcdc https://github.com/libguestfs/libguestfs/commit/f5f7f00a465c83351157bcebd0b320e38978ff0a https://github.com/libguestfs/libguestfs/commit/f30b2065a202a17dc3beaaa0fe211d74ce8eb942 As this makes quite a large change to the build system and removes a feature (Gtk docs) it's not 1.36 stable branch material, so I'm closing this bug. This will appear in libguestfs 1.38. |