Skip to contentSkip to conversation

automake: update gtk-doc.m4 to serial 2

PATCH New Gustavo Zacarias 4 participants 12 messages Oct 10, 2014 – Oct 12, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 automake: update gtk-doc.m4 to serial 2

Update gtk-doc.m4 infra to serial (version) 2.
Some packages start to need/ship with the new version and can't be properly autoreconf'ed, like kmod 18+.
The file was picked up from kmod-18 itself actually.
Also add host-pkgconf to DEPENDENCIES since it's required by gtk-doc.m4 and rather than tweak it we'd prefer to use vanilla - it's actually a small price in build time if we are autoreconfiguring anyway.

---
 package/automake/automake.mk |  2 +-
 package/automake/gtk-doc.m4  | 47 ++++++++++++++++++++++++++++++++++----------
 2 files changed, 38 insertions(+), 11 deletions(-)
package/automake/automake.mk +1 -1
index 8d7e291..ab17c5d 100644
@@ -10,7 +10,7 @@ AUTOMAKE_SITE = $(BR2_GNU_MIRROR)/automake
 AUTOMAKE_LICENSE = GPLv2+
 AUTOMAKE_LICENSE_FILES = COPYING
 
-HOST_AUTOMAKE_DEPENDENCIES = host-autoconf
+HOST_AUTOMAKE_DEPENDENCIES = host-autoconf host-pkgconf
 
 define GTK_DOC_M4_INSTALL
  $(INSTALL) -D -m 0644 package/automake/gtk-doc.m4 $(HOST_DIR)/usr/share/aclocal/gtk-doc.m4
package/automake/gtk-doc.m4 +37 -10

77 lines not on this page · raw message

Signature · 1 line
2.0.4
#1 lore raw

PATCH 2/2 kmod: needs to autoreconf

Fixes:
http://autobuild.buildroot.net/results/7a7/7a70b179f17070d0a0883f71c60030dd7d8a9102/
Didn't see widespread failure because it autoreconfed on its own just fine if autotools infra was already present.
And didn't work before the automake patch with AUTORECONF=YES because of an older gtk-doc.m4

---
 package/kmod/kmod.mk | 2 ++
 1 file changed, 2 insertions(+)
package/kmod/kmod.mk +2 -0
index 1f170dd..99ab387 100644
@@ -8,6 +8,8 @@ KMOD_VERSION = 18
 KMOD_SOURCE = kmod-$(KMOD_VERSION).tar.xz
 KMOD_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kernel/kmod
 KMOD_INSTALL_STAGING = YES
+# For kmod-0002-add-backup-implementation-of-be32toh.patch
+KMOD_AUTORECONF = YES
 KMOD_DEPENDENCIES = host-pkgconf
 HOST_KMOD_DEPENDENCIES = host-pkgconf
 
Signature · 1 line
2.0.4
#2 lore raw

PATCH 2/2 kmod: needs to autoreconf

Dear Gustavo Zacarias,

Quoted 18 lines · Gustavo Zacarias

Fixes:
http://autobuild.buildroot.net/results/7a7/7a70b179f17070d0a0883f71c60030dd7d8a9102/
Didn't see widespread failure because it autoreconfed on its own just fine if autotools infra was already present.
And didn't work before the automake patch with AUTORECONF=YES because of an older gtk-doc.m4

---
  package/kmod/kmod.mk | 2 ++
  1 file changed, 2 insertions(+)
package/kmod/kmod.mk +0 -0
index 1f170dd..99ab387 100644

package/kmod/kmod.mk KMOD_VERSION = 18 · line 15

Quoted 8 lines
package/kmod/kmod.mk +2 -0
@@ -8,6 +8,8 @@ KMOD_VERSION = 18
  KMOD_SOURCE = kmod-$(KMOD_VERSION).tar.xz
  KMOD_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kernel/kmod
  KMOD_INSTALL_STAGING = YES
+# For kmod-0002-add-backup-implementation-of-be32toh.patch
+KMOD_AUTORECONF = YES
  KMOD_DEPENDENCIES = host-pkgconf
  HOST_KMOD_DEPENDENCIES = host-pkgconf
 
Signature · 5 lines
Vicente Olivert Riera
Graduate Software Engineer, MIPS Processor IP
Imagination Technologies Limited
t: +44 (0)113 2429814
www.imgtec.com
#3 lore raw

PATCH 2/2 kmod: needs to autoreconf

In reply to Gustavo Zacarias
Quoted 10 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Gustavo" == Gustavo Zacarias <[email protected]> writes:

Fixes:
http://autobuild.buildroot.net/results/7a7/7a70b179f17070d0a0883f71c60030dd7d8a9102/
Didn't see widespread failure because it autoreconfed on its own just fine if autotools infra was already present.
And didn't work before the automake patch with AUTORECONF=YES because of an older gtk-doc.m4

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#4 lore raw

PATCH 1/2 automake: update gtk-doc.m4 to serial 2

In reply to Gustavo Zacarias

Dear Gustavo Zacarias,

Quoted 102 lines · Gustavo Zacarias

Update gtk-doc.m4 infra to serial (version) 2.
Some packages start to need/ship with the new version and can't be properly autoreconf'ed, like kmod 18+.
The file was picked up from kmod-18 itself actually.
Also add host-pkgconf to DEPENDENCIES since it's required by gtk-doc.m4 and rather than tweak it we'd prefer to use vanilla - it's actually a small price in build time if we are autoreconfiguring anyway.

---
  package/automake/automake.mk |  2 +-
  package/automake/gtk-doc.m4  | 47 ++++++++++++++++++++++++++++++++++----------
  2 files changed, 38 insertions(+), 11 deletions(-)
package/automake/automake.mk +1 -1
index 8d7e291..ab17c5d 100644
@@ -10,7 +10,7 @@ AUTOMAKE_SITE = $(BR2_GNU_MIRROR)/automake
  AUTOMAKE_LICENSE = GPLv2+
  AUTOMAKE_LICENSE_FILES = COPYING
 
-HOST_AUTOMAKE_DEPENDENCIES = host-autoconf
+HOST_AUTOMAKE_DEPENDENCIES = host-autoconf host-pkgconf
 
  define GTK_DOC_M4_INSTALL
   $(INSTALL) -D -m 0644 package/automake/gtk-doc.m4 $(HOST_DIR)/usr/share/aclocal/gtk-doc.m4
package/automake/gtk-doc.m4 +32 -10
index 2cfa1e7..3675543 100644
@@ -1,16 +1,33 @@
  dnl -*- mode: autoconf -*-
 
-# serial 1
+# serial 2
 
  dnl Usage:
  dnl   GTK_DOC_CHECK([minimum-gtk-doc-version])
  AC_DEFUN([GTK_DOC_CHECK],
  [
+  AC_REQUIRE([PKG_PROG_PKG_CONFIG])
    AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
    AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
 
+  ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"])
+  AC_MSG_CHECKING([for gtk-doc])
+  PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no])
+  AC_MSG_RESULT($have_gtk_doc)
+
+  if test "$have_gtk_doc" = "no"; then
+      AC_MSG_WARN([
+  You will not be able to create source packages with 'make dist'
+  because $gtk_doc_requires is not found.])
+  fi
+
    dnl check for tools we added during development
-  AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
+  dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that
+  dnl may not be writable by the user. Currently, automake requires that the
+  dnl test name must end in '.test'.
+  dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638
+  AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test])
+  AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check])
    AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
    AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
 
@@ -27,17 +44,22 @@ AC_DEFUN([GTK_DOC_CHECK],
                     [use gtk-doc to build documentation [[default=no]]]),,
      [enable_gtk_doc=no])
 
-  if test x$enable_gtk_doc = xyes; then
-    ifelse([$1],[],
-      [PKG_CHECK_EXISTS([gtk-doc],,
-                        AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
-      [PKG_CHECK_EXISTS([gtk-doc >= $1],,
-                        AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
-  fi
-
    AC_MSG_CHECKING([whether to build gtk-doc documentation])
    AC_MSG_RESULT($enable_gtk_doc)
 
+  if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
+    AC_MSG_ERROR([
+  You must have $gtk_doc_requires installed to build documentation for
+  $PACKAGE_NAME. Please install gtk-doc or disable building the
+  documentation by adding '--disable-gtk-doc' to '[$]0'.])
+  fi
+
+  dnl don't check for glib if we build glib
+  if test "x$PACKAGE_NAME" != "xglib"; then
+    dnl don't fail if someone does not have glib
+    PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0,,[:])
+  fi
+
    dnl enable/disable output formats
    AC_ARG_ENABLE([gtk-doc-html],
      AS_HELP_STRING([--enable-gtk-doc-html],
@@ -52,7 +74,12 @@ AC_DEFUN([GTK_DOC_CHECK],
      enable_gtk_doc_pdf=no
    fi

package/automake/gtk-doc.m4 AC_DEFUN([GTK_DOC_CHECK], · line 85

Quoted 10 lines
package/automake/gtk-doc.m4 +5 -0
 
+  if test -z "$AM_DEFAULT_VERBOSITY"; then
+    AM_DEFAULT_VERBOSITY=1
+  fi
+  AC_SUBST([AM_DEFAULT_VERBOSITY])
 
+  AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes])
    AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
    AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
    AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
Signature · 5 lines
Vicente Olivert Riera
Graduate Software Engineer, MIPS Processor IP
Imagination Technologies Limited
t: +44 (0)113 2429814
www.imgtec.com
#5 lore raw

PATCH 1/2 automake: update gtk-doc.m4 to serial 2

In reply to Gustavo Zacarias

Dear Gustavo Zacarias,

package/automake/automake.mk AUTOMAKE_SITE = $(BR2_GNU_MIRROR)/automake · line 13

Quoted 2 lines · Gustavo Zacarias
package/automake/automake.mk +1 -1
-HOST_AUTOMAKE_DEPENDENCIES = host-autoconf
+HOST_AUTOMAKE_DEPENDENCIES = host-autoconf host-pkgconf

I'm not sure exactly, but shouldn't depending on host-pkgconf be the responsibility of each individual package that uses the gtk-doc.m4 stuff?

Even though I agree pkgconf is fairly quick to build, I find it odd to have host-automake depend on host-pkgconf if it's only a very limited number of packages that actually use the gtk-doc.m4 stuff that need the host-pkgconf dependency.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#6 lore raw

PATCH 1/2 automake: update gtk-doc.m4 to serial 2

Quoted 8 lines · Thomas Petazzoni

I'm not sure exactly, but shouldn't depending on host-pkgconf be the responsibility of each individual package that uses the gtk-doc.m4 stuff?

Even though I agree pkgconf is fairly quick to build, I find it odd to have host-automake depend on host-pkgconf if it's only a very limited number of packages that actually use the gtk-doc.m4 stuff that need the host-pkgconf dependency.

The problem is it wasn't the case for gtk-doc.m4 serial 1, the check and need for pkgconfig is done after gtk-doc is enabled, but for serial 2 some of the checks are done before that.
So we'd need to find all packages that use gtk-doc.m4 and add it there (well, for those that autoreconf, but that would be sloppy since an added autoreconf would trigger the need).
As stated i prefer to keep it simple without patching gtk-doc.m4 for when serial 3 comes around.
Regards.

#7 lore raw

PATCH 1/2 automake: update gtk-doc.m4 to serial 2

Dear Gustavo Zacarias,

Quoted 9 lines · Gustavo Zacarias
Quoted 8 lines

I'm not sure exactly, but shouldn't depending on host-pkgconf be the responsibility of each individual package that uses the gtk-doc.m4 stuff?

Even though I agree pkgconf is fairly quick to build, I find it odd to have host-automake depend on host-pkgconf if it's only a very limited number of packages that actually use the gtk-doc.m4 stuff that need the host-pkgconf dependency.

Quoted 6 lines

The problem is it wasn't the case for gtk-doc.m4 serial 1, the check and need for pkgconfig is done after gtk-doc is enabled, but for serial 2 some of the checks are done before that.
So we'd need to find all packages that use gtk-doc.m4 and add it there (well, for those that autoreconf, but that would be sloppy since an added autoreconf would trigger the need).

Yes, correct, that's my idea. I think it's more correct than globally adding this host-pkgconf dependency.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#8 lore raw

PATCH 1/2 automake: update gtk-doc.m4 to serial 2

Quoted 2 lines · Thomas Petazzoni

Yes, correct, that's my idea. I think it's more correct than globally adding this host-pkgconf dependency.

"When you autoreconf you might need host-pkgconf in DEPENDENCIES whereas you didn't before"... really?
Regards.

#9 lore raw

PATCH 1/2 automake: update gtk-doc.m4 to serial 2

Dear Gustavo Zacarias,

Quoted 5 lines · Gustavo Zacarias
Quoted 2 lines

Yes, correct, that's my idea. I think it's more correct than globally adding this host-pkgconf dependency.

"When you autoreconf you might need host-pkgconf in DEPENDENCIES whereas you didn't before"... really?

Come on Gustavo, no need to start being aggressive here.

Yes, that's exactly what I suggest. And actually, we already need to add host-pkgconf in DEPENDENCIES when doing autoreconf, if the configure.ac uses PKG_CHECK_MODULES, which is far more common than packages using gtk-doc.m4 specifically.

PKG_CHECK_MODULES in configure.ac requiring host-pkgconf in the DEPENDENCIES is precisely the reason why I proposed
http://patchwork.ozlabs.org/patch/340902/ some time ago. Nothing prevents from adding a similar check to see if the package uses the gtk-doc.m4 macros or not. That would at least warn loudly if such macros are used without the package having host-pkgconf in its dependencies.

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#10 lore raw

PATCH 1/2 automake: update gtk-doc.m4 to serial 2

Quoted 1 line · Thomas Petazzoni

Come on Gustavo, no need to start being aggressive here.

Huh? It's not intended to be aggressive.

Quoted 5 lines

Yes, that's exactly what I suggest. And actually, we already need to add host-pkgconf in DEPENDENCIES when doing autoreconf, if the configure.ac uses PKG_CHECK_MODULES, which is far more common than packages using gtk-doc.m4 specifically.

Quoted 7 lines

PKG_CHECK_MODULES in configure.ac requiring host-pkgconf in the DEPENDENCIES is precisely the reason why I proposed
http://patchwork.ozlabs.org/patch/340902/ some time ago. Nothing prevents from adding a similar check to see if the package uses the gtk-doc.m4 macros or not. That would at least warn loudly if such macros are used without the package having host-pkgconf in its dependencies.

Well, at least from my POV it's making some packages need host-pkgconf just because they use gtk-doc.m4, we're bumping the version and they're AUTORECONFed. If they weren't AUTORECONFed they maybe didn't need host-pkgconf (maybe for other purposes, but not because of the old gtk-doc.m4) so it seems to me it's autotools/autoreconfs fault, and it should be handled there.
It has nothing to do with packages that don't account for host-pkgconf usage without accounting for it in the first place.
Regards.

#11 lore raw

PATCH 1/2 automake: update gtk-doc.m4 to serial 2

In reply to Gustavo Zacarias
Quoted 35 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Gustavo" == Gustavo Zacarias <[email protected]> writes:

Update gtk-doc.m4 infra to serial (version) 2.
Some packages start to need/ship with the new version and can't be properly autoreconf'ed, like kmod 18+.
The file was picked up from kmod-18 itself actually.
Also add host-pkgconf to DEPENDENCIES since it's required by gtk-doc.m4 and rather than tweak it we'd prefer to use vanilla - it's actually a small price in build time if we are autoreconfiguring anyway.

---
 package/automake/automake.mk |  2 +-
 package/automake/gtk-doc.m4  | 47 ++++++++++++++++++++++++++++++++++----------
 2 files changed, 38 insertions(+), 11 deletions(-)
package/automake/automake.mk +1 -1
index 8d7e291..ab17c5d 100644
@@ -10,7 +10,7 @@ AUTOMAKE_SITE = $(BR2_GNU_MIRROR)/automake
 AUTOMAKE_LICENSE = GPLv2+
 AUTOMAKE_LICENSE_FILES = COPYING
 
-HOST_AUTOMAKE_DEPENDENCIES = host-autoconf
+HOST_AUTOMAKE_DEPENDENCIES = host-autoconf host-pkgconf
 
 define GTK_DOC_M4_INSTALL
  $(INSTALL) -D -m 0644 package/automake/gtk-doc.m4 $(HOST_DIR)/usr/share/aclocal/gtk-doc.m4
package/automake/gtk-doc.m4 +0 -0
index 2cfa1e7..3675543 100644
@@ -27,17 +44,22 @@ AC_DEFUN([GTK_DOC_CHECK],
                    [use gtk-doc to build documentation [[default=no]]]),,

package/automake/gtk-doc.m4 AC_DEFUN([GTK_DOC_CHECK], · line 37

Quoted 10 lines
package/automake/gtk-doc.m4 +0 -8
     [enable_gtk_doc=no])
 
-  if test x$enable_gtk_doc = xyes; then
-    ifelse([$1],[],
-      [PKG_CHECK_EXISTS([gtk-doc],,
-                        AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
-      [PKG_CHECK_EXISTS([gtk-doc >= $1],,
-                        AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
-  fi
-

So the old version of gtk-doc.m4 already needed host-pkgconf when autoreconfiguring, and the bump shouldn't cause any more breakage.

We discussed it during the dev days. Considering how fast host-pkgconf builds we should probably just automatically pull it in for all autotools packages (even if they don't autoreconf) so we don't need to add it everywhere, but that's for later.

Signature · 1 line
Bye, Peter Korsgaard