[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-522-g
From: |
Stefano Lattarini |
Subject: |
[Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-522-g182935a |
Date: |
Sat, 29 Oct 2011 10:35:08 +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=182935ac18db1d6eb324c452b465c097a5bfabf0
The branch, maint has been updated
via 182935ac18db1d6eb324c452b465c097a5bfabf0 (commit)
via 1ec1668645acc84c2f2ae78d5a3da6f9e50ca429 (commit)
from cb9f2c28b2cb8bdcc942468008765598f87f425c (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 182935ac18db1d6eb324c452b465c097a5bfabf0
Merge: cb9f2c2 1ec1668
Author: Stefano Lattarini <address@hidden>
Date: Sat Oct 29 12:22:50 2011 +0200
Merge branch 'fix-pr9773' into maint
* fix-pr9773:
info: allow user to inhibit creation/update of '${infodir}/dir'
commit 1ec1668645acc84c2f2ae78d5a3da6f9e50ca429
Author: Stefano Lattarini <address@hidden>
Date: Sun Oct 23 13:19:21 2011 +0200
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.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 25 ++++++++
NEWS | 8 +++
THANKS | 1 +
doc/automake.texi | 7 ++
lib/am/texinfos.am | 22 +++----
tests/Makefile.am | 1 +
tests/Makefile.in | 1 +
tests/install-info-dir.test | 140 +++++++++++++++++++++++++++++++++++++++++++
8 files changed, 193 insertions(+), 12 deletions(-)
create mode 100755 tests/install-info-dir.test
diff --git a/ChangeLog b/ChangeLog
index 39c661c..d6f4bfc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+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 92c7735..fe1dc97 100644
--- a/NEWS
+++ b/NEWS
@@ -44,6 +44,10 @@ New in 1.11.0a:
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".
+
Bugs fixed in 1.11.0a:
* Bugs introduced by 1.11:
@@ -127,6 +131,10 @@ Bugs fixed in 1.11.0a:
- 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 eae683f..7fa37c2 100644
--- a/THANKS
+++ b/THANKS
@@ -171,6 +171,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
diff --git a/doc/automake.texi b/doc/automake.texi
index eac380a..f6039bb 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -7963,6 +7963,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 c9dcd9d..80712cf 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/tests/Makefile.am b/tests/Makefile.am
index c16eb9f..301a2b9 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -437,6 +437,7 @@ init2.test \
insh2.test \
install2.test \
installdir.test \
+install-info-dir.test \
instsh.test \
instsh2.test \
instsh3.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 65e8d7f..0eece13 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -721,6 +721,7 @@ init2.test \
insh2.test \
install2.test \
installdir.test \
+install-info-dir.test \
instsh.test \
instsh2.test \
instsh3.test \
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
+
+:
hooks/post-receive
--
GNU Automake
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-522-g182935a,
Stefano Lattarini <=