automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11-1101


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11-1101-ga778e9e
Date: Thu, 03 Nov 2011 10:44:52 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=a778e9e1dcf606c9cee31009c982daa748438b39

The branch, master has been updated
       via  a778e9e1dcf606c9cee31009c982daa748438b39 (commit)
       via  1ba50d12baadb27e463c6e6c73bf19ddd53c65e4 (commit)
       via  a45c636491dda9b628266c2dfed5457a90baba1e (commit)
       via  3df373a8d62784eeab87452a42a08d11b7e75722 (commit)
       via  12f0a41009a4277f0ee705afa7cb2750451379dd (commit)
       via  182935ac18db1d6eb324c452b465c097a5bfabf0 (commit)
       via  1ec1668645acc84c2f2ae78d5a3da6f9e50ca429 (commit)
      from  8c695f69de9a6d8114ca3672de5ad303faa2c700 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit a778e9e1dcf606c9cee31009c982daa748438b39
Merge: 8c695f6 1ba50d1
Author: Stefano Lattarini <address@hidden>
Date:   Thu Nov 3 11:37:30 2011 +0100

    Merge branch 'maint'
    
    * maint:
      maint-mode: fix botched configure messages
      fix: regenerate Makefiles
      info: allow user to inhibit creation/update of '${infodir}/dir'

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                          |   43 +++++++++++
 NEWS                               |    8 ++
 THANKS                             |    3 +-
 doc/Makefile.in                    |    9 ++-
 doc/automake.texi                  |    7 ++
 lib/am/texinfos.am                 |   22 +++---
 m4/maintainer.m4                   |    6 +-
 tests/Makefile.am                  |    3 +-
 tests/Makefile.in                  |    3 +-
 tests/help-maintainer.test         |   59 ---------------
 tests/install-info-dir.test        |  140 ++++++++++++++++++++++++++++++++++++
 tests/maintmode-configure-msg.test |   79 ++++++++++++++++++++
 12 files changed, 303 insertions(+), 79 deletions(-)
 delete mode 100755 tests/help-maintainer.test
 create mode 100755 tests/install-info-dir.test
 create mode 100755 tests/maintmode-configure-msg.test

diff --git a/ChangeLog b/ChangeLog
index 7cb48e0..051e7fa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,46 @@
+2011-11-03  Zack Weinberg <address@hidden>  (tiny change)
+           Stefano Lattarini  <address@hidden>
+
+       maint-mode: fix botched configure messages
+       This change fixes automake bug#9890.
+       * m4/maintainer.m4 (AM_MAINTAINER_MODE): Fix the "checking ..."
+       configure message related to the enabling/disabling of maintainer
+       mode.
+       * tests/help-maintainer.test: Renamed ...
+       * tests/maintmode-configure-msg.test: ... to this, and extended
+       to cover the fixed bug.  Also, since we are at it, make grepping
+       of configure help screens stricter, and throw in some few other
+       changes to reduce code duplication and enhance readability.
+       * tests/Makefile.am (TESTS): Update.
+       * THANKS: Update with Zack's new e-mail address.
+       Report and initial patch by Zack Weinberg, test cases added by
+       Stefano Lattarini.
+
+2011-10-23  Stefano Lattarini  <address@hidden>
+
+       info: allow user to inhibit creation/update of '${infodir}/dir'
+       With this change, we allow the user to request the install-info
+       rules not to update the `${infodir}/dir' file, by exporting the
+       environment variable `AM_UPDATE_INFO_DIR' to the value "no".
+       This is especially useful to distro packagers, and is a definite
+       improvement over our previous hack of looking whether the
+       `install-info' program was the Debian or GNU version -- hack
+       which had been silently broken with recent versions of debian
+       install-info BTW (probably since dpkg 1.15.4, 2009-09-06).
+       This change fixes automake bug#9773.  See also Debian Bug#543992.
+       * lib/am/texinfos.am: Don't look anymore at the output of
+       `install-info --version' to decide whether to use it to update
+       the `${infodir}/dir' or not; instead, honour the environment
+       variable `AM_UPDATE_INFO_DIR'.
+       * tests/install-info-dir.test: New test.
+       * tests/Makefile.am (TESTS): Add it.
+       * tests/defs: Also unset `AM_UPDATE_INFO_DIR', to avoid unwanted
+       interferences from the environment.
+       * doc/automake.texi (Texinfo): Update.
+       * NEWS: Likewise.
+       * THANKS: Likewise.
+       Report by Jonathan Nieder.
+
 2011-10-20  Stefano Lattarini  <address@hidden>
 
        deps: partially revert commit `v1.11-512-geeee551'
diff --git a/NEWS b/NEWS
index c645962..3852abf 100644
--- a/NEWS
+++ b/NEWS
@@ -75,6 +75,10 @@ New in 1.11a:
     file generated by automake-provided rules by defining the special make
     variable `$(EXTRA_DEJAGNU_SITE_CONFIG)'.
 
+  - The `install-info' rule can now be instructed not to create/update
+    the `${infodir}/dir' file, by exporting the new environment variable
+    `AM_UPDATE_INFO_DIR' to the value "no".
+
   - Support for automatic de-ANSI-fication has been removed.
 
 Bugs fixed in 1.11a:
@@ -185,6 +189,10 @@ Bugs fixed in 1.11a:
   - Now aclocal and automake, when they've to spawn autoconf or autom4te
     processes, honour the configure-time definitions of AUTOCONF and
     AUTOM4TE.
+
+  - The `install-info' recipe does not try anymore to guess whether the
+    `install-info' program is from Debian or from GNU, and adaptively
+    change its behaviour; this has proven to be frail and easy to regress.
 
 New in 1.11:
 
diff --git a/THANKS b/THANKS
index 2963899..dd6002e 100644
--- a/THANKS
+++ b/THANKS
@@ -173,6 +173,7 @@ John Pierce         address@hidden
 John Ratliff           address@hidden
 John R. Cary           address@hidden
 John W. Coomes         address@hidden
+Jonathan Nieder                address@hidden
 Josh MacDonald         address@hidden
 Joshua Cowan           address@hidden
 js pendry              address@hidden
@@ -368,7 +369,7 @@ William Pursell             address@hidden
 William S Fulton       address@hidden
 Yann Droneaud          address@hidden
 Younes Younes          address@hidden
-Zack Weinberg          address@hidden
+Zack Weinberg          address@hidden
 Zbigniew Jędrzejewski-Szmek address@hidden
 Zoltan Rado            address@hidden
 
diff --git a/doc/Makefile.in b/doc/Makefile.in
index b0d06f2..160b19b 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -767,8 +767,13 @@ install-info-am: $(INFO_DEPS)
          echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
          $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
        @$(POST_INSTALL)
-       @if (install-info --version && \
-            install-info --version 2>&1 | sed 1q | grep -i -v debian) 
>/dev/null 2>&1; then \
+       @am__run_installinfo=yes; \
+       case $$AM_UPDATE_INFO_DIR in \
+         n|no|NO) am__run_installinfo=no;; \
+         *) (install-info --version) >/dev/null 2>&1 \
+              || am__run_installinfo=no;; \
+       esac; \
+       if test $$am__run_installinfo = yes; then \
          list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
          for file in $$list; do \
            relfile=`echo "$$file" | sed 's|^.*/||'`; \
diff --git a/doc/automake.texi b/doc/automake.texi
index e6290a6..378b82f 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -7883,6 +7883,13 @@ be prevented via the @code{no-installinfo} option.  In 
this case,
 @file{.info} files are not installed by default, and user must
 request this explicitly using @samp{make install-info}.
 
address@hidden AM_UPDATE_INFO_DIR
+By default, @code{make install-info} will try to run the
address@hidden program (if available) to update (or create)
+the @address@hidden@address@hidden/dir} index.  If this is undesired, it
+can be prevented by exporting the @code{AM_UPDATE_INFO_DIR} variable
+to "@code{no}".
+
 The following variables are used by the Texinfo build rules.
 
 @vtable @code
diff --git a/lib/am/texinfos.am b/lib/am/texinfos.am
index bfde665..56c092f 100644
--- a/lib/am/texinfos.am
+++ b/lib/am/texinfos.am
@@ -208,18 +208,16 @@ install-info-am: $(INFO_DEPS)
          echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
          $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
        @$(POST_INSTALL)
-## Only run this code if install-info actually exists, and it is not
-## the Debian install-info.  FIXME: once Debian install-info goes
-## away, we can remove this hack.  Some versions of Debian install-info
-## print their version on stderr (e.g. 1.8.3), other do it in
-## on stdout (e.g. 1.10.15).
-##
-## Do not use
-##    install-info --version 2>&1 | sed 1q | grep -v -i debian
-## as if install-info does not exist, grep -v will be happy, and
-## therefore the code will be triggered although install-info is missing.
-       @if (install-info --version && \
-            install-info --version 2>&1 | sed 1q | grep -i -v debian) 
>/dev/null 2>&1; then \
+## Only run this code if install-info actually exists, and if the user
+## doesn't request it not to be run (through the `AM_UPDATE_INFO_DIR'
+## environment variable).  See automake bug#9773 and Debian Bug#543992.
+       @am__run_installinfo=yes; \
+       case $$AM_UPDATE_INFO_DIR in \
+         n|no|NO) am__run_installinfo=no;; \
+         *) (install-info --version) >/dev/null 2>&1 \
+              || am__run_installinfo=no;; \
+       esac; \
+       if test $$am__run_installinfo = yes; then \
          list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
          for file in $$list; do \
 ## Strip directory
diff --git a/m4/maintainer.m4 b/m4/maintainer.m4
index 0d0bf7f..b8f02bd 100644
--- a/m4/maintainer.m4
+++ b/m4/maintainer.m4
@@ -1,8 +1,8 @@
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
+# 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -22,7 +22,7 @@ AC_DEFUN([AM_MAINTAINER_MODE],
        [disable], [m4_define([am_maintainer_other], [enable])],
        [m4_define([am_maintainer_other], [enable])
         m4_warn([syntax], [unexpected argument to AM@&address@hidden: $1])])
-AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions 
of Makefiles])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
   dnl maintainer-mode's default is 'disable' unless 'enable' is passed
   AC_ARG_ENABLE([maintainer-mode],
     [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4c04f1e..d900b41 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -509,7 +509,6 @@ help-depend2.test \
 help-dmalloc.test \
 help-init.test \
 help-lispdir.test \
-help-maintainer.test \
 help-multilib.test \
 help-python.test \
 help-regex.test \
@@ -524,6 +523,7 @@ init2.test \
 insh2.test \
 install2.test \
 installdir.test \
+install-info-dir.test \
 instsh.test \
 instsh2.test \
 instsh3.test \
@@ -657,6 +657,7 @@ lzma.test \
 m4-inclusion.test \
 maintclean.test \
 maintclean-vpath.test \
+maintmode-configure-msg.test \
 make.test \
 makej.test \
 makej2.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 704ae44..e1f91d0 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -785,7 +785,6 @@ help-depend2.test \
 help-dmalloc.test \
 help-init.test \
 help-lispdir.test \
-help-maintainer.test \
 help-multilib.test \
 help-python.test \
 help-regex.test \
@@ -800,6 +799,7 @@ init2.test \
 insh2.test \
 install2.test \
 installdir.test \
+install-info-dir.test \
 instsh.test \
 instsh2.test \
 instsh3.test \
@@ -933,6 +933,7 @@ lzma.test \
 m4-inclusion.test \
 maintclean.test \
 maintclean-vpath.test \
+maintmode-configure-msg.test \
 make.test \
 makej.test \
 makej2.test \
diff --git a/tests/help-maintainer.test b/tests/help-maintainer.test
deleted file mode 100755
index a4b2d85..0000000
--- a/tests/help-maintainer.test
+++ /dev/null
@@ -1,59 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Make sure that our macro `AM_MAINTAINER_MODE' adds proper text to
-# the configure help screen.
-
-. ./defs || Exit 1
-
-cat > configure.in <<END
-AC_INIT([$me], [1.0])
-AM_MAINTAINER_MODE
-END
-
-cat configure.in
-$ACLOCAL
-$AUTOCONF --force
-./configure --help >stdout || { cat stdout; Exit 1; }
-cat stdout
-$EGREP '^  *--enable-maintainer-mode( |$)' stdout
-$FGREP ' enable make rules' stdout
-
-rm -rf autom4te*.cache # just to be sure
-sed 's/\(AM_MAINTAINER_MODE\).*/\1([disable])/' configure.in >t
-mv -f t configure.in
-
-cat configure.in
-$ACLOCAL
-$AUTOCONF --force
-./configure --help >stdout || { cat stdout; Exit 1; }
-cat stdout
-$EGREP '^  *--enable-maintainer-mode( |$)' stdout
-$FGREP ' enable make rules' stdout
-
-rm -rf autom4te*.cache # just to be sure
-sed 's/\(AM_MAINTAINER_MODE\).*/\1([enable])/' configure.in >t
-mv -f t configure.in
-
-cat configure.in
-$ACLOCAL
-$AUTOCONF --force
-./configure --help >stdout || { cat stdout; Exit 1; }
-cat stdout
-$EGREP '^  *--disable-maintainer-mode( |$)' stdout
-$FGREP ' disable make rules' stdout
-
-:
diff --git a/tests/install-info-dir.test b/tests/install-info-dir.test
new file mode 100755
index 0000000..f75b115
--- /dev/null
+++ b/tests/install-info-dir.test
@@ -0,0 +1,140 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Checks on the `install-info' target.
+# Details about the individual checks' purposes and motivations are
+# inlined, below.
+
+# FIXME: this test is a good candidate for a conversion to TAP,
+# FIXME: and could be merged with `txinfo27.test'.
+
+required=makeinfo
+. ./defs || Exit 1
+
+cwd=`pwd` || fatal_ "cannot get current working directory"
+
+mkdir bin
+saved_PATH=$PATH; export saved_PATH
+PATH=$cwd/bin$PATH_SEPARATOR$PATH; export PATH
+
+set -e
+
+cat >> configure.in <<'END'
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+info_TEXINFOS = foo.texi
+END
+
+cat > foo.texi << 'END'
+\input texinfo
address@hidden foo.info
address@hidden Top
+Hello world!
address@hidden
+END
+
+$ACLOCAL
+$AUTOMAKE -a
+$AUTOCONF
+
+instdir=_inst
+destdir=_dest
+
+./configure --prefix="$cwd/$instdir" --infodir="$cwd/$instdir/info"
+
+$MAKE info
+test -f foo.info
+
+if install-info --version; then
+  have_installinfo=yes
+else
+  have_installinfo=no
+fi
+
+# The `install-info' target updates the `${infodir}/dir' file
+# by default (if the `install-info' program is available).
+# This should happen in a normal as well as in a DESTDIR installation.
+if test $have_installinfo = yes; then
+  $MAKE install-info
+  test -f $instdir/info/foo.info
+  test -f $instdir/info/dir
+  $MAKE DESTDIR="$cwd/$destdir" install-info
+  test -f "$destdir/$cwd/$instdir"/info/foo.info
+  test -f "$destdir/$cwd/$instdir"/info/dir
+fi
+
+rm -rf $instdir $destdir
+
+# The `install-info' target doesn't fail if the `install-info'
+# program is not available.
+cat > bin/install-info <<'END'
+#!/bin/sh
+echo error from install-info >&2
+exit 127
+END
+chmod a+x bin/install-info
+$MAKE install-info >output 2>&1 || { cat output; Exit 1; }
+cat output
+test -f $instdir/info/foo.info
+test ! -f $instdir/info/dir
+grep 'error from install-info' output && Exit 1
+
+rm -rf $instdir output
+
+if test $have_installinfo = yes; then
+  # The `install-info' target doesn't try to guess whether the `install-info'
+  # is the GNU or debian version.
+  unindent > bin/install-info <<'END'
+    #!/bin/sh
+    set -e; set -u;
+    for fd in 1 2; do
+      for str in dpkg debian Debian; do
+        eval "echo This is $str install-info >&$fd"
+      done
+    done
+    PATH=$saved_PATH; export PATH
+    exec install-info ${1+"$@"}
+END
+  $MAKE install-info
+  test -f $instdir/info/foo.info
+  test -f $instdir/info/dir
+fi
+
+rm -rf $instdir bin/install-info
+
+# The `AM_UPDATE_INFO_DIR' environment variable can be used to
+# prevent the creation or update of the `${infodir}/dir' file,
+# if set to a "no" value.
+for val in no NO n; do
+  rm -rf $instdir
+  env AM_UPDATE_INFO_DIR="$val" $MAKE install-info
+  test -f $instdir/info/foo.info
+  test ! -f $instdir/info/dir
+done
+if test $have_installinfo = yes; then
+  for val in 'yes' 'who cares!'; do
+    rm -rf $instdir
+    env AM_UPDATE_INFO_DIR="$val" $MAKE install-info
+    test -f $instdir/info/foo.info
+    test -f $instdir/info/dir
+  done
+fi
+
+rm -rf $instdir
+
+:
diff --git a/tests/maintmode-configure-msg.test 
b/tests/maintmode-configure-msg.test
new file mode 100755
index 0000000..5771392
--- /dev/null
+++ b/tests/maintmode-configure-msg.test
@@ -0,0 +1,79 @@
+#! /bin/sh
+# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Make sure that our macro `AM_MAINTAINER_MODE' adds proper text to
+# the configure help screen.  Also make sure the "checking ..." messages
+# related to the enabling/disabling of maintainer mode are correct (see
+# automake bug#9890).
+
+. ./defs || Exit 1
+
+set -e
+
+set_maintmode ()
+{
+  rm -rf autom4te*.cache # Just to be sure not to use a stale cache.
+  echo "AC_INIT([$me], [1.0])" > configure.in
+  case $1 in
+    DEFAULT) echo AM_MAINTAINER_MODE;;
+          *) echo "AM_MAINTAINER_MODE([$*])";;
+  esac >> configure.in
+}
+
+check_configure_message_with ()
+{
+  answer=$1; shift
+  ./configure ${1+"$@"} >stdout || { cat stdout; Exit 1; }
+  cat stdout
+  grep "^checking whether to enable maintainer-specific.*\\.\\.\\. $answer$" 
stdout
+  test `grep -c 'checking.*maint' stdout` -eq 1
+  :
+}
+
+set_maintmode "DEFAULT"
+
+$ACLOCAL
+
+$AUTOCONF --force
+
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep '^  *--enable-maintainer-mode.* enable make rules' stdout
+
+check_configure_message_with "no"
+check_configure_message_with "yes" --enable-maintainer-mode
+
+set_maintmode "disable"
+
+$AUTOCONF --force
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep '^  *--enable-maintainer-mode.* enable make rules' stdout
+
+check_configure_message_with "no"
+check_configure_message_with "yes" --enable-maintainer-mode
+
+set_maintmode "enable"
+
+$AUTOCONF --force
+./configure --help >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep '^  *--disable-maintainer-mode.* disable make rules' stdout
+
+check_configure_message_with "yes"
+check_configure_message_with "no" --disable-maintainer-mode
+
+:


hooks/post-receive
-- 
GNU Automake



reply via email to

[Prev in Thread] Current Thread [Next in Thread]