[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-commit] [SCM] GNU Automake branch, minor, updated. v1.14.1-76-
From: |
Stefano Lattarini |
Subject: |
[Automake-commit] [SCM] GNU Automake branch, minor, updated. v1.14.1-76-g4cb0327 |
Date: |
Tue, 30 Dec 2014 21:52:54 +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=4cb0327adc1f085f4b9bacd0e6e1c2d7a88b92f6
The branch, minor has been updated
via 4cb0327adc1f085f4b9bacd0e6e1c2d7a88b92f6 (commit)
via 86b397b6e4aa0dd5f29030dfb48e72afd7ae413a (commit)
via 545e5740906595dff53c72af7153d4fa0392ccf8 (commit)
via b8aa9fc0ce8d411be4451022e4b14d0f4238a9d9 (commit)
via 269893bbd44f3f7ece2d9fbdc6d2dddbec969e6d (commit)
via 0fae5905f9b676725a7e82c7aa03e8e3cbf5008a (commit)
via 047e0cf6a836fc83a5ba335bf8eebd4fe354af0b (commit)
via cd040965d51f9818c56a714efaaaa699eb93b503 (commit)
via b9303ccf7f3c13fd9422b3457f3ffd20ad300ce3 (commit)
via c3da5a74ffef3cb177270b021c34bd4cd2bb80f5 (commit)
from bd838a68d44a3adce9ae4b2c5e3e17b47eead7c1 (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 -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
NEWS | 63 ++++++++++++-------
doc/automake.texi | 15 ++++-
t/ax/shell-no-trail-bslash.in | 107 ++++++++++++++++++---------------
t/instmany-mans.sh | 14 +++-
t/instmany-python.sh | 14 +++-
t/instmany.sh | 14 +++-
t/lex-noyywrap.sh | 5 +-
t/parallel-tests-concurrency.sh | 13 +++-
t/self-check-shell-no-trail-bslash.sh | 38 +++++++++++-
t/txinfo-override-texinfo-tex.sh | 6 +-
10 files changed, 193 insertions(+), 96 deletions(-)
diff --git a/NEWS b/NEWS
index 2649698..dcbf657 100644
--- a/NEWS
+++ b/NEWS
@@ -97,16 +97,43 @@ New in 1.15:
extra useless "make all" recursive invocation in some corner cases
(automake bug#16302).
-* Bugs fixed:
+* Distribution:
- - The expansion of AM_INIT_AUTOMAKE ends once again with a trailing
- newline (bug#16841). Regression introduced in Automake 1.14.
+ - Automake bug#18286: "make distcheck" could sometimes fail to detect
+ missing files in the distribution tarball, especially in those cases
+ where both the generated files and their dependencies are explicitly
+ in $(srcdir). An important example of this are *generated* makefile
+ fragments included at Automake time in Makefile.am; e.g.:
- - The user can now extend the special .PRECIOUS target, the same way
- he could already do with the .MAKE .and .PHONY targets.
+ ...
+ $(srcdir)/fragment.am: $(srcdir)/data.txt $(srcdir)/preproc.sh
+ cd $(srcdir) && $(SHELL) preproc.sh <data.txt >fragment.am
+ include $(srcdir)/fragment.am
+ ...
- - Fixed confusing typos in the manual and in some warning messages
- (automake bug#16827 and bug#16997).
+ If the use forgot to add data.txt and/or preproc.sh in the distribution
+ tarball, "make distcheck" would have erroneously succeeded! This issue
+ is now fixed.
+
+ - As a consequence of the previous change, "make distcheck" will run
+ using '$(distdir)/_build/sub' as the build directory, rather than
+ simply '$(distdir)/_build' (as it was with Automake 1.14 and earlier).
+ Consequently, the './configure' and 'make' invocations issued by the
+ distcheck recipe will have $(srcdir) equal to '../..', rather than to
+ just '..' (as it was with Automake 1.14 and earlier). Dependent and
+ similar variables (e.g., top_srcdir) are also changed accordingly.
+
+ Thus, Makefiles that made assumptions about the exact values of the
+ build and source directories used by "make distcheck" will have to
+ be adjusted. Notice that making such assumptions was a bad and
+ unsupported practice anyway, since the exact locations of those
+ directories should be considered implementation details, and we
+ reserve the right to change them at any time.
+
+* Miscellaneous bugs fixed:
+
+ - The expansion of AM_INIT_AUTOMAKE ends once again with a trailing
+ newline (bug#16841). Regression introduced in Automake 1.14.
- We no longer risk to use '$ac_aux_dir' before it's defined (see
automake bug#15981). Bug introduced in Automake 1.14.
@@ -127,21 +154,11 @@ New in 1.15:
something like "... overrides Automake target '$(srcdir)/foo.am".
This bug is now fixed.
- - Automake bug#18286: "make distcheck" could sometimes fail to detect
- missing files in the distribution tarball, especially in those cases
- where both the generated files and their dependencies are explicitly
- in $(srcdir). An important example of this are *generated* makefile
- fragments included at Automake time in Makefile.am; e.g.:
-
- ...
- $(srcdir)/fragment.am: $(srcdir)/data.txt $(srcdir)/preproc.sh
- cd $(srcdir) && $(SHELL) preproc.sh <data.txt >fragment.am
- include $(srcdir)/fragment.am
- ...
+ - The user can now extend the special .PRECIOUS target, the same way
+ he could already do with the .MAKE .and .PHONY targets.
- If the use forgot to add data.txt and/or preproc.sh in the distribution
- tarball, "make distcheck" would have erroneously succeeded! This issue
- is now fixed.
+ - Fixed confusing typos in the manual and in some warning messages
+ (automake bug#16827 and bug#16997).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -249,8 +266,8 @@ New in 1.14:
Now that we have the 'info-in-builddir' option that explicitly causes
generated '.info' files to be placed in the builddir, this hack should
- be longer necessary, so we deprecate it with runtime warnings. It will
- likely be removed altogether in Automake 2.0.
+ be longer necessary, so we deprecate it with runtime warnings.
+ It will be removed altogether in Automake 2.0.
* Relative directory in Makefile fragments:
diff --git a/doc/automake.texi b/doc/automake.texi
index fb6c05f..383a811 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -1242,8 +1242,12 @@ uninstall} do not omit any file (@pxref{Standard
Targets}),
and it checks that @code{DESTDIR} installations work (@pxref{DESTDIR}).
@end itemize
-All of these actions are performed in a temporary subdirectory, so
-that no root privileges are required.
+All of these actions are performed in a temporary directory, so that no
+root privileges are required. Please note that the exact location and the
+exact structure of such a subdirectory (where the extracted sources are
+placed, how the temporary build and install directories are named and how
+deeply they are nested, etc.) is to be considered an implementation detail,
+which can change at any time; so do not rely on it.
Releasing a package that fails @code{make distcheck} means that one of
the scenarios we presented will not work and some users will be
@@ -8555,6 +8559,13 @@ finally, makes another tarball to ensure the
distribution is
self-contained.
@end itemize
+All of these actions are performed in a temporary directory. Please
+note that the exact location and the exact structure of such a directory
+(where the read-only sources are placed, how the temporary build and
+install directories are named and how deeply they are nested, etc.) is
+to be considered an implementation detail, which can change at any time;
+so do not reply on it.
+
@vindex AM_DISTCHECK_CONFIGURE_FLAGS
@vindex DISTCHECK_CONFIGURE_FLAGS
@subheading DISTCHECK_CONFIGURE_FLAGS
diff --git a/t/ax/shell-no-trail-bslash.in b/t/ax/shell-no-trail-bslash.in
index 770dcde..26979b6 100644
--- a/t/ax/shell-no-trail-bslash.in
+++ b/t/ax/shell-no-trail-bslash.in
@@ -14,63 +14,72 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# A "shell" that chokes on '-c' commands having a trailing '\' character
-# (possibly followed by whitespace only). This is to emulate problems
-# seen in older bash versions (e.g., bash 2.05b).
-# See also automake bug#10436.
+# A "shell" that chokes on '-c' commands and/or shell scripts having
+# a trailing '\' character (possibly followed by whitespace only).
+# This is to emulate problems seen in older bash versions (e.g., bash
+# 2.05b). See also automake bug#10436.
-set -e
set -u
am_SHELL=${AM_TESTSUITE_SHELL-'@SHELL@'}
-tab=' '
-nl='
+(
+ set -e
+ shell_command=; unset shell_command
+ shell_script=; unset shell_script
+ while test $# -gt 0; do
+ case $1 in
+ # The shell might be invoked by make e.g. as "sh -ec" or "sh -ce".
+ # Be liberal (in the spirit of defensive programming) and accept
+ # both forms.
+ -*c*) shell_command=$2; shift;;
+ -?*) ;;
+ *) break;;
+ esac
+ shift
+ done
+
+ if test x${shell_command+"set"} != x"set"; then
+ if test $# -gt 0; then
+ shell_script=$1
+ shell_command=$(cat <"$shell_script")
+ else
+ # Some make implementations, like *BSD's, pass the recipes to the
+ # shell through its standard input. Trying to run our extra checks
+ # in this case would be too tricky, so we just skip them.
+ exit 0
+ fi
+ fi
+ original_shell_command=$shell_command
+
+ tab=' '
+ nl='
'
-am_shell_flags=
-am_shell_command=; unset am_shell_command
-while test $# -gt 0; do
- case $1 in
- # If the shell is invoked by make e.g. as "sh -ec" (seen on
- # GNU make in POSIX mode) or "sh -ce" (seen on Solaris make).
- -*c*)
- am_flg=$(printf '%s\n' "$1" | sed -e 's/^-//' -e 's/c//g')
- if test x"$am_flg" != x; then
- am_shell_flags="$am_shell_flags -$am_flg"
+ case "$shell_command" in
+ *" "|*"$tab"|*"$nl")
+ shell_command=$(printf '%s\n' "$shell_command" | tr -d " $tab$nl");;
+ esac
+
+ case "$shell_command" in
+ *\\)
+ {
+ printf '%s\n' "$0: recipe/script ends with backslash character"
+ printf '%s\n' "=== BEGIN recipe/script"
+ if test x${shell_script+"set"} = x"set"; then
+ cat <"$shell_script"
+ else
+ printf '%s\n' "$original_shell_command"
fi
- am_shell_command=$2
- shift;;
- -?*)
- am_shell_flags="$am_shell_flags $1";;
- *)
- break;;
+ printf '%s\n' "=== END recipe/script"
+ } >&2
+ exit 1
+ ;;
esac
- shift
-done
+)
-if test x${am_shell_command+"set"} != x"set"; then
- # Some make implementations, like *BSD's, pass the recipes to the shell
- # through its standard input. Trying to run our extra checks in this
- # case would be too tricky, so we just skip them.
- exec $am_SHELL $am_shell_flags ${1+"$@"}
+if test $? -gt 0; then
+ # Some of our scripts or makefile recipes had invalid contents.
+ exit 3
fi
-case $am_shell_command in
- *" "|*"$tab"|*"$nl")
- am_tweaked_shell_command=$(printf '%s\n' "$am_shell_command" \
- | tr -d " $tab$nl");;
- *)
- am_tweaked_shell_command=$am_shell_command;;
-esac
-
-case $am_tweaked_shell_command in
- *\\)
- printf '%s\n' "$0: recipe ends with backslash character" >&2
- printf '%s\n' "=== BEGIN recipe" >&2
- printf '%s\n' "${am_shell_command-}" >&2
- printf '%s\n' "=== END recipe" >&2
- exit 1
- ;;
-esac
-
-exec $am_SHELL $am_shell_flags -c "$am_shell_command" ${1+"$@"}
+exec ${AM_TESTSUITE_SHELL-'@SHELL@'} ${1+"$@"}
diff --git a/t/instmany-mans.sh b/t/instmany-mans.sh
index be33a02..0ed2348 100644
--- a/t/instmany-mans.sh
+++ b/t/instmany-mans.sh
@@ -37,8 +37,6 @@ mkdir x-bin
sed "s|@limit@|$limit|g" >x-bin/my-install <<'END'
#! /bin/sh
-# Fake install script. This doesn't really install
-# (the INSTALL path below would be wrong outside this directory).
address@hidden@
PATH=$oPATH; export PATH
if test -z "$orig_INSTALL"; then
@@ -72,8 +70,16 @@ END
# Creative quoting in the next line to please maintainer-check.
chmod +x x-bin/'rm' x-bin/my-install
-cat > setenv.in <<'END'
-orig_INSTALL='@INSTALL@'; export orig_INSTALL
+cat >setenv.in <<'END'
+orig_INSTALL='@INSTALL@'
+# In case we've falled back on the install-sh script (seen e.g.,
+# on AIX 7.1), we need to make sure we use its absolute path,
+# as we don't know from which directory we'll be run.
+case "$orig_INSTALL" in
+ /*) ;;
+ */*) orig_INSTALL=$(pwd)/$orig_INSTALL;;
+esac
+export orig_INSTALL
END
cat >>configure.ac <<END
diff --git a/t/instmany-python.sh b/t/instmany-python.sh
index 40c8502..0088b2d 100644
--- a/t/instmany-python.sh
+++ b/t/instmany-python.sh
@@ -33,8 +33,6 @@ mkdir x-bin
sed "s|@limit@|$limit|g" >x-bin/my-install <<'END'
#! /bin/sh
-# Fake install script. This doesn't really install
-# (the INSTALL path below would be wrong outside this directory).
address@hidden@
PATH=$oPATH; export PATH
if test -z "$orig_INSTALL"; then
@@ -68,8 +66,16 @@ END
# Creative quoting in the next line to please maintainer-check.
chmod +x x-bin/'rm' x-bin/my-install
-cat > setenv.in <<'END'
-orig_INSTALL='@INSTALL@'; export orig_INSTALL
+cat >setenv.in <<'END'
+orig_INSTALL='@INSTALL@'
+# In case we've falled back on the install-sh script (seen e.g.,
+# on AIX 7.1), we need to make sure we use its absolute path,
+# as we don't know from which directory we'll be run.
+case "$orig_INSTALL" in
+ /*) ;;
+ */*) orig_INSTALL=$(pwd)/$orig_INSTALL;;
+esac
+export orig_INSTALL
END
cat >>configure.ac <<END
diff --git a/t/instmany.sh b/t/instmany.sh
index 94a8053..126c93f 100644
--- a/t/instmany.sh
+++ b/t/instmany.sh
@@ -45,8 +45,6 @@ mkdir x-bin
sed "s|@limit@|$limit|g" >x-bin/my-install <<'END'
#! /bin/sh
-# Fake install script. This doesn't really install
-# (the INSTALL path below would be wrong outside this directory).
address@hidden@
PATH=$oPATH; export PATH
if test -z "$orig_INSTALL"; then
@@ -80,8 +78,16 @@ END
# Creative quoting in the next line to please maintainer-check.
chmod +x x-bin/'rm' x-bin/my-install
-cat > setenv.in <<'END'
-orig_INSTALL='@INSTALL@'; export orig_INSTALL
+cat >setenv.in <<'END'
+orig_INSTALL='@INSTALL@'
+# In case we've falled back on the install-sh script (seen e.g.,
+# on AIX 7.1), we need to make sure we use its absolute path,
+# as we don't know from which directory we'll be run.
+case "$orig_INSTALL" in
+ /*) ;;
+ */*) orig_INSTALL=$(pwd)/$orig_INSTALL;;
+esac
+export orig_INSTALL
END
cat >>configure.ac <<END
diff --git a/t/lex-noyywrap.sh b/t/lex-noyywrap.sh
index 4fe85e5..750f322 100644
--- a/t/lex-noyywrap.sh
+++ b/t/lex-noyywrap.sh
@@ -69,7 +69,8 @@ if ! cross_compiling; then
: For shells with busted 'set -e'.
fi
-# Sanity check on distribution.
-yl_distcheck DISTCHECK_CONFIGURE_FLAGS='LEXLIB="none needed"'
+# Sanity check on distribution. Escape in LEXLIB must use backspace,
+# not double-quotes, to avoid a spurious failure with AIX make.
+yl_distcheck DISTCHECK_CONFIGURE_FLAGS='LEXLIB=none\ needed'
:
diff --git a/t/parallel-tests-concurrency.sh b/t/parallel-tests-concurrency.sh
index e2c622b..4a70e23 100644
--- a/t/parallel-tests-concurrency.sh
+++ b/t/parallel-tests-concurrency.sh
@@ -17,8 +17,8 @@
# Check parallel-tests features:
# - concurrent parallel execution
-# FIXME: we should factorize the code to determine how to run
-# make in parallel out in am-test-lib.sh ...
+# FIXME: we should factor out (into am-test-lib.sh?) the code to determine
+# how to run make in parallel mode ...
. test-init.sh
@@ -89,11 +89,16 @@ for build in serial parallel; do
done
cd serial
-$MAKE ${j}1 check &
-cd ../parallel
+# Do *not* use "make -j1" here; apparently, some make implementations
+# (e.g., AIX 7.1) interpret it as a synonym of "make -j" :-(
+$MAKE check &
+cd ..
+
+cd parallel
$sleep
run_make -O -- ${j}4 check
cd ..
+
# Ensure the tests are really being run in parallel mode: if this is
# the case, the serial run of the dummy testsuite started above should
# still be ongoing when the parallel one has terminated.
diff --git a/t/self-check-shell-no-trail-bslash.sh
b/t/self-check-shell-no-trail-bslash.sh
index 8c9d38e..8b7afa5 100644
--- a/t/self-check-shell-no-trail-bslash.sh
+++ b/t/self-check-shell-no-trail-bslash.sh
@@ -34,12 +34,48 @@ bad:
END
SHELL=$am_testaux_builddir/shell-no-trail-bslash
+
$SHELL -c 'exit 0'
test "$($SHELL -c 'echo is o\k')" = "is ok"
+echo 'echo is ok\"' > ok.sh
+$SHELL ./ok.sh
+test "$($SHELL ./ok.sh)" = "is ok\""
+
+tab=' '
+nl='
+'
+for sfx in \
+ '\' \
+ '\\' \
+ '\\\\\' \
+ '\ ' \
+ "\\$tab" \
+ "\\ $tab$tab " \
+ "\\$nl" \
+ "\\ $nl " \
+ "\\$nl$nl$nl" \
+; do
+ for pfx in "" "echo bad" ": a${nl}# multine${nl}: text"; do
+ cmd=${pfx}${sfx}
+ printf '%s' "$cmd" > bad.sh
+ for args in '-c "$cmd"' './bad.sh'; do
+ eval "\$SHELL $args 2>stderr && { cat stderr >&2; exit 1; }; :"
+ cat stderr >&2
+ $FGREP "recipe/script ends with backslash character" stderr
+ cmd="$cmd" $PERL -w -e '
+ undef $/;
+ $_ = <>;
+ index($_, $ENV{cmd}) >= 0 or exit 1;
+ ' <stderr
+ $FGREP "$cmd" stderr
+ done
+ done
+done
+
$MAKE good
run_make -E -e FAIL bad SHELL="$SHELL"
-$FGREP "recipe ends with backslash character" stderr
+$FGREP "recipe/script ends with backslash character" stderr
:
diff --git a/t/txinfo-override-texinfo-tex.sh b/t/txinfo-override-texinfo-tex.sh
index fc2fcc7..60be43d 100644
--- a/t/txinfo-override-texinfo-tex.sh
+++ b/t/txinfo-override-texinfo-tex.sh
@@ -30,12 +30,13 @@ AC_OUTPUT
END
cat > Makefile.am << 'END'
-TEXINFO_TEX = $(srcdir)/tex/texinfo.tex
+TEXINFO_TEX = ../tex/texinfo.tex
info_TEXINFOS = main.texi
sure_it_exists:
- test -f $(TEXINFO_TEX)
+ test -f $(srcdir)/$(TEXINFO_TEX)
sure_it_is_not_distributed: distdir
test ! -f $(distdir)/tex/texinfo.tex
+check-local: sure_it_exists
END
cat > main.texi << 'END'
@@ -61,7 +62,6 @@ test -f tex/texinfo.tex
./configure
-$MAKE sure_it_exists
$MAKE distcheck
$MAKE sure_it_is_not_distributed
hooks/post-receive
--
GNU Automake
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, minor, updated. v1.14.1-76-g4cb0327,
Stefano Lattarini <=