[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Libguestfs] [PATCH libguestfs 1/2] build: invoke autopoint and autoreconf with --force



On 25/08/09 15:23, Jim Meyering wrote:
 From a4272589d360fa86abe77fa8b1b3df5277f50c74 Mon Sep 17 00:00:00 2001
From: Jim Meyering<meyering redhat com>
Date: Tue, 25 Aug 2009 09:43:04 +0200
Subject: [PATCH libguestfs 1/3] build: update gnulib submodule to latest

* .gnulib: Update to latest.
---
  .gnulib |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/.gnulib b/.gnulib
index 7560950..52dec75 160000
--- a/.gnulib
+++ b/.gnulib
@@ -1 +1 @@
-Subproject commit 7560950d6efd9e209b8d7188e1a95ceb53035889
+Subproject commit 52dec75be71b6526bb42610f74beb013cb27f1f3
--
1.6.4.1.322.g38eb7

This is just dark magic to me. I'll take your word on it ;)

 From 3d9604287c9af52b725b7efe815cee3d8a522c5e Mon Sep 17 00:00:00 2001
From: Jim Meyering<meyering redhat com>
Date: Tue, 25 Aug 2009 09:10:21 +0200
Subject: [PATCH libguestfs 2/3] build: invoke autopoint with --force

* bootstrap: Invoke autopoint with --force, to avoid warning
about existing build-aux/config.rpath.
Invoke libtoolize before gnulib-tool, to avoid spurious warnings.
* autogen.sh: Add comments.
Remove build-aux/config.rpath before running autoreconf.
---
  autogen.sh |    4 ++++
  bootstrap  |   10 ++++++++--
  2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/autogen.sh b/autogen.sh
index 5179623..649ca7b 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -33,6 +33,10 @@ else
  fi

  mkdir -p daemon/m4
+
+# Remove this file, so autoreconf doesn't complain about it being
+# locally modified.
+rm -f build-aux/config.rpath
  autoreconf -i

  CONFIGUREDIR=.
diff --git a/bootstrap b/bootstrap
index 2eba6a7..c2d5604 100755
--- a/bootstrap
+++ b/bootstrap
@@ -29,7 +29,14 @@ GNULIB_SRCDIR=.gnulib
  ls po/*.po 2>/dev/null | sed 's|.*/||; s|\.po$||'>  po/LINGUAS

  # Run autopoint, to get po/Makevars.template:
-autopoint
+# Also, released autopoint has the tendency to install macros that have
+# been obsoleted in current gnulib, so run this before gnulib-tool.
+autopoint --force
+
+# Autoreconf runs aclocal before libtoolize, which causes spurious
+# warnings if the initial aclocal is confused by the libtoolized
+# (or worse out-of-date) macro directory.
+libtoolize --copy --install

  # Create gettext configuration.
  echo "$0: Creating po/Makevars from po/Makevars.template ..."
@@ -50,7 +57,6 @@ gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
  (cd daemon&&  mkdir -p tests lib&&  ../$gnulib_tool --update)

  modules='
-asprintf
  closeout
  gitlog-to-changelog
  gnu-make
--
1.6.4.1.322.g38eb7

That's a whole lot clearer, thanks.

 From 080317644908f2e7e13df4abbcbe99a9c02d45bf Mon Sep 17 00:00:00 2001
From: Jim Meyering<meyering redhat com>
Date: Tue, 25 Aug 2009 16:21:48 +0200
Subject: [PATCH libguestfs 3/3] build: use only one m4/ directory

* Makefile.am (ACLOCAL_AMFLAGS): Specify only one include dir: m4.
* bootstrap: Tell gnulib-tool to put .m4 files in m4/, not gnulib/m4.
* autogen.sh: Move autoreconf from here into...
* bootstrap: ...here, so that it is sure to precede the gnulib-tool run.
* m4/.gitignore: Update.
---
  Makefile.am   |    2 +-
  autogen.sh    |    7 ------
  bootstrap     |    7 +++++-
  m4/.gitignore |   61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  4 files changed, 68 insertions(+), 9 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 8fed9ec..bbf23d9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -15,7 +15,7 @@
  # along with this program; if not, write to the Free Software
  # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

-ACLOCAL_AMFLAGS = -I m4 -I gnulib/m4
+ACLOCAL_AMFLAGS = -I m4

  SUBDIRS = gnulib/lib src daemon appliance fish po examples images \
  	gnulib/tests capitests regressions test-tool
diff --git a/autogen.sh b/autogen.sh
index 649ca7b..9c73a2d 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -32,13 +32,6 @@ else
      ./bootstrap&&  echo "$t">  $curr_status
  fi

-mkdir -p daemon/m4
-
-# Remove this file, so autoreconf doesn't complain about it being
-# locally modified.
-rm -f build-aux/config.rpath
-autoreconf -i
-
  CONFIGUREDIR=.

  # Run configure in BUILDDIR if it's set
diff --git a/bootstrap b/bootstrap
index c2d5604..020a6b3 100755
--- a/bootstrap
+++ b/bootstrap
@@ -38,6 +38,11 @@ autopoint --force
  # (or worse out-of-date) macro directory.
  libtoolize --copy --install

+# Remove this file, so autoreconf doesn't complain about it being
+# locally modified.
+rm -f build-aux/config.rpath
+autoreconf -i
+
  # Create gettext configuration.
  echo "$0: Creating po/Makevars from po/Makevars.template ..."
  rm -f po/Makevars
@@ -76,7 +81,7 @@ warnings
  $gnulib_tool			\
    --avoid=dummy			\
    --with-tests			\
-  --m4-base=gnulib/m4		\
+  --m4-base=m4			\
    --source-base=gnulib/lib	\
    --tests-base=gnulib/tests	\
    --import $modules
diff --git a/m4/.gitignore b/m4/.gitignore
index a2d2160..2f903a4 100644
--- a/m4/.gitignore
+++ b/m4/.gitignore
@@ -25,3 +25,64 @@ ulonglong.m4
  wchar_t.m4
  wint_t.m4
  xsize.m4
+/00gnulib.m4
+/alloca.m4
+/close-stream.m4
+/closeout.m4
+/eealloc.m4
+/environ.m4
+/errno_h.m4
+/error.m4
+/exitfail.m4
+/extensions.m4
+/float_h.m4
+/fpending.m4
+/getpagesize.m4
+/glibc2.m4
+/gnu-make.m4
+/gnulib-common.m4
+/gnulib-comp.m4
+/gnulib-tool.m4
+/include_next.m4
+/inline.m4
+/intl.m4
+/intldir.m4
+/intlmacosx.m4
+/intmax_t.m4
+/localcharset.m4
+/locale-fr.m4
+/locale-ja.m4
+/locale-zh.m4
+/lock.m4
+/malloca.m4
+/manywarnings.m4
+/mbrtowc.m4
+/mbsinit.m4
+/mbstate_t.m4
+/memchr.m4
+/mmap-anon.m4
+/multiarch.m4
+/onceonly.m4
+/quotearg.m4
+/rawmemchr.m4
+/setenv.m4
+/stdbool.m4
+/stddef_h.m4
+/stdint.m4
+/stdio_h.m4
+/stdlib_h.m4
+/strchrnul.m4
+/strerror.m4
+/string_h.m4
+/strndup.m4
+/strnlen.m4
+/threadlib.m4
+/unistd_h.m4
+/vasnprintf.m4
+/vasprintf.m4
+/visibility.m4
+/warnings.m4
+/wchar.m4
+/wctob.m4
+/wctype.m4
+/xalloc.m4
--
1.6.4.1.322.g38eb7

I'm not sure this entirely resolves the problem with m4 macro dir precedence you describe in your intro. You've still got the problem that if you run things in the wrong order you end up with the wrong version of a macro in the m4 directory, with no obvious way of noticing that this has happened.

I wonder if the above macros should be checked in to libguestfs rather than ignored. I know this isn't ideal, but it would at least be obvious if one changed.

Matt
--
Matthew Booth, RHCA, RHCSS
Red Hat Engineering, Virtualisation Team

M:       +44 (0)7977 267231
GPG ID:  D33C3490
GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]