Merge branch 'branch-1.13.2' into maint
authorStefano Lattarini <stefano.lattarini@gmail.com>
Tue, 30 Apr 2013 13:35:46 +0000 (15:35 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Tue, 30 Apr 2013 13:35:46 +0000 (15:35 +0200)
* branch-1.13.2:
  sync: update files from upstream with "make fetch"
  maintcheck: remove outdated whitelisting
  tar: format 'ustar' cannot support UID/GID longer than 21 bits

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1  2 
NEWS
maintainer/syntax-checks.mk
t/list-of-tests.mk
t/tar-opts-errors.sh
t/tar-pax.sh
t/tar-ustar.sh

diff --combined NEWS
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
 -New in 1.13.2:
 -
 -* Obsolescent features:
 +New in 1.14:
 +
 +* C compilation, and the AC_PROG_CC and AM_PROG_CC_C_O macros:
 +
 +  - The 'compile' script is now unconditionally required for all
 +    packages that perform C compilation (note that if you are using
 +    the '--add-missing' option, automake will fetch that script for
 +    you, so you shouldn't need any explicit adjustment).
 +    This new behaviour is needed to avoid obscure errors when the
 +    'subdir-objects' option is used, and the compiler is an inferior
 +    one that doesn't grasp the combined use of both the "-c -o"
 +    options; see discussion about automake bug#13378 for more details:
 +    <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
 +    <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
 +
 +  - Automake will automatically enhance the AC_PROG_CC autoconf macro
 +    to make it check, at configure time, that the C compiler supports
 +    the combined use of both the "-c -o" options.  This "rewrite" of
 +    AC_PROG_CC is only meant to be temporary, since future Autoconf
 +    versions should provide all the features Automake needs.
 +
 +  - The AM_PROG_CC_C_O is no longer useful, and its use is a no-op
 +    now.  Future Automake versions might start warning that this
 +    macro is obsolete.  For better backward-compatibility, this macro
 +    still sets a proper 'ac_cv_prog_cc_*_c_o' cache variable, and
 +    define the 'NO_MINUS_C_MINUS_O' C preprocessor symbol, but you
 +    should really stop relying on that.
 +
 +* Texinfo support:
 +
 +  - Automake can now be instructed to place '.info' files generated from
 +    Texinfo input in the builddir rather than in the srcdir; this is done
 +    specifying the new automake option 'info-in-builddir'.  This feature
 +    was requested by the developers of GCC, GDB, GNU binutils and the GNU
 +    bfd library.  See the extensive discussion about automake bug#11034
 +    for more details.
 +
 +  - For quite a long time, Automake has been implementing an undocumented
 +    hack which ensured that '.info' files which appeared to be cleaned
 +    (by e.g. being listed in the CLEANFILES or DISTCLEANFILES variables)
 +    were built in the builddir rather than in the srcdir; this hack was
 +    introduced to ensure better backward-compatibility with packages such
 +    as Texinfo, which did things like:
 +
 +        info_TEXINFOS = texinfo.txi info-stnd.texi info.texi
 +        DISTCLEANFILES = texinfo texinfo-* info*.info*
 +        # Do not create info files for distribution.
 +        dist-info:
 +            @:
 +
 +    in order not to distribute generated '.info' files.
 +
 +    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 1.14.
 +
 +* Relative directory in Makefile fragments:
 +
 +  - The special Automake-time substitutions '%reldir%' and '%canon_reldir%'
 +    (and their short versions, '%D%' and '%C%' respectively) can now be used
 +    in an included Makefile fragment.  The former is substituted with the
 +    relative directory of the included fragment (compared to the top level
 +    including Makefile), and the latter with the canonicalized version of
 +    the same relative directory:
 +
 +        bin_PROGRAMS += %reldir%/foo
 +        %canon_reldir%_foo_SOURCES = %reldir%/bar.c
  
 -  - Use of suffix-less info files (that can be specified through the
 -    '@setfilename' macro in Texinfo input files) is discouraged, and
 -    its use will raise warnings in the 'obsolete' category.
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
 -  - Use of Texinfo input files with '.txi' or '.texinfo' extensions
 -    is discouraged, and its use will raise warnings in the 'obsolete'
 -    category.  You are advised to simply use the '.texi' extension
 -    instead.
 +New in 1.13.2:
  
  * Documentation fixes:
  
    - Other minor miscellaneous fixes and improvements; in particular,
      some improvements in cross-references.
  
 +* Obsolescent features:
 +
 +  - Use of suffix-less info files (that can be specified through the
 +    '@setfilename' macro in Texinfo input files) is discouraged, and
 +    its use will raise warnings in the 'obsolete' category.  Simply
 +    use the '.info' extension for all your info files, transforming
 +    usages like:
 +
 +        @setfilename myprogram
 +
 +    into:
 +
 +        @setfilename myprogram.info
 +
 +  - Use of Texinfo input files with '.txi' or '.texinfo' extensions
 +    is discouraged, and its use will raise warnings in the 'obsolete'
 +    category.  You are advised to simply use the '.texi' extension
 +    instead.
 +
  * Bugs fixed:
  
+   - When the 'ustar' option is used, the generated configure script no
+     longer risks hanging during the tests for the availability of the
+     'pax' utility, even if the user running configure has a UID or GID
+     that requires more than 21 bits to be represented.
+     See automake bug#8343 and bug#13588.
    - The obsolete macros AM_CONFIG_HEADER or AM_PROG_CC_STDC work once
      again, as they did in Automake 1.12.x (albeit printing runtime
      warnings in the 'obsolete' category).  Removing them has turned
@@@ -86,22 -86,19 +86,22 @@@ sc_at_in_tex
  automake_diff_no = 8
  aclocal_diff_no = 9
  sc_diff_automake sc_diff_aclocal: sc_diff_% :
 -      @set +e; tmp=$*-diffs.tmp; \
 -       diff -u $(srcdir)/$*.in $* > $$tmp; test $$? -eq 1 || exit 1; \
 -       added=`grep -v '^+++ ' $$tmp | grep -c '^+'` || exit 1; \
 -       removed=`grep -v '^--- ' $$tmp | grep -c '^-'` || exit 1; \
 -       test $$added,$$removed = $($*_diff_no),$($*_diff_no) \
 +      @set +e; \
 +      in=$*-in.tmp out=$*-out.tmp diffs=$*-diffs.tmp \
 +        && sed '/^#!.*[pP]rototypes/d' $(srcdir)/$*.in > $$in \
 +        && sed '/^# BEGIN.* PROTO/,/^# END.* PROTO/d' $* > $$out \
 +        && { diff -u $$in $$out > $$diffs; test $$? -eq 1; } \
 +        && added=`grep -v '^+++ ' $$diffs | grep -c '^+'` \
 +        && removed=`grep -v '^--- ' $$diffs | grep -c '^-'` \
 +        && test $$added,$$removed = $($*_diff_no),$($*_diff_no) \
          || { \
            echo "Found unexpected diffs between $*.in and $*"; \
            echo "Lines added:   $$added"  ; \
            echo "Lines removed: $$removed"; \
 -          cat $$tmp >&2; \
 +          cat $$diffs; \
            exit 1; \
 -        } >&1; \
 -      rm -f $$tmp
 +        } >&2; \
 +      rm -f $$in $$out $$diffs
  
  ## Expect no instances of '${...}'.  However, $${...} is ok, since that
  ## is a shell construct, not a Makefile construct.
@@@ -114,7 -111,7 +114,7 @@@ sc_no_brace_variable_expansions
  ## Make sure 'rm' is called with '-f'.
  sc_rm_minus_f:
        @if grep -v '^#' $(ams) $(xtests) \
 -         | grep -vE '/(spy-rm\.tap|subobj-clean.*-pr10697\.sh):' \
 +         | grep -vE '/(rm-f-probe\.sh|spy-rm\.tap|subobj-clean.*-pr10697\.sh):' \
           | grep -E '\<rm ([^-]|\-[^f ]*\>)'; \
        then \
          echo "Suspicious 'rm' invocation." 1>&2; \
@@@ -375,13 -372,7 +375,7 @@@ sc_tests_overriding_macros_on_cmdline
  # The first s/// tries to account for usages like "$MAKE || st=$?".
  # 'DISTCHECK_CONFIGURE_FLAGS' and 'exp' are allowed to contain whitespace in
  # their definitions, hence the more complex last three substitutions below.
- # Also, the 'make-dryrun.sh' is whitelisted, since there we need to
- # override variables from the command line in order to cover the expected
- # code paths.
-       @tests=`for t in $(xtests); do \
-                 case $$t in */make-dryrun.sh);; *) echo $$t;; esac; \
-               done`; \
-       if sed -e 's/ || .*//' -e 's/ && .*//' \
+       @if sed -e 's/ || .*//' -e 's/ && .*//' \
                -e 's/ DESTDIR=[^ ]*/ /' -e 's/ SHELL=[^ ]*/ /' \
                -e 's/ V=[^ ]*/ /' -e 's/ DISABLE_HARD_ERRORS=[^ ]*/ /' \
                -e "s/ DISTCHECK_CONFIGURE_FLAGS='[^']*'/ /" \
                -e "s/ exp='[^']*'/ /" \
                -e 's/ exp="[^"]*"/ /' \
                -e 's/ exp=[^ ]/ /' \
-             $$tests | grep '\$$MAKE .*='; then \
+             $(xtests) | grep '\$$MAKE .*='; then \
          echo 'Rewrite "$$MAKE foo=bar" as "foo=bar $$MAKE -e" in the above lines,' 1>&2; \
          echo 'it is more portable.' 1>&2; \
          exit 1; \
@@@ -545,7 -536,3 +539,7 @@@ maintainer-check: $(syntax_check_rules
  ## Check that the list of tests given in the Makefile is equal to the
  ## list of all test scripts in the Automake testsuite.
  maintainer-check: maintainer-check-list-of-tests
 +
 +# I'm a lazy typist.
 +lint: maintainer-check
 +.PHONY: lint
diff --combined t/list-of-tests.mk
@@@ -71,10 -71,10 +71,10 @@@ t/get-sysconf.sh 
  $(perl_TESTS) \
  t/instspc.tap \
  t/aclocal.sh \
 -t/acloca10.sh \
  t/aclocal-I-order-1.sh \
  t/aclocal-I-order-2.sh \
  t/aclocal-I-order-3.sh \
 +t/aclocal-I-and-install.sh \
  t/aclocal-acdir.sh \
  t/aclocal-amflags.sh \
  t/aclocal-autoconf-version-check.sh \
@@@ -132,7 -132,6 +132,7 @@@ t/aminit-moreargs-deprecation.sh 
  t/amassign.sh \
  t/am-config-header.sh \
  t/am-prog-cc-stdc.sh \
 +t/am-prog-cc-c-o.sh \
  t/am-macro-not-found.sh \
  t/amopt.sh \
  t/amopts-location.sh \
@@@ -208,8 -207,8 +208,8 @@@ t/canon7.sh 
  t/canon8.sh \
  t/canon-name.sh \
  t/ccnoco.sh \
 -t/ccnoco2.sh \
  t/ccnoco3.sh \
 +t/ccnoco4.sh \
  t/check.sh \
  t/check2.sh \
  t/check4.sh \
@@@ -569,7 -568,6 +569,7 @@@ t/lex-header.sh 
  t/lex-lib.sh \
  t/lex-lib-external.sh \
  t/lex-libobj.sh \
 +t/lex-multiple.sh \
  t/lex-noyywrap.sh \
  t/lex-clean-cxx.sh \
  t/lex-clean.sh \
@@@ -866,10 -864,6 +866,10 @@@ t/pr401.sh 
  t/pr401b.sh \
  t/pr401c.sh \
  t/prefix.sh \
 +t/preproc-basics.sh \
 +t/preproc-c-compile.sh \
 +t/preproc-demo.sh \
 +t/preproc-errmsg.sh \
  t/primary.sh \
  t/primary2.sh \
  t/primary3.sh \
@@@ -958,9 -952,7 +958,9 @@@ t/remake-macrodir.sh 
  t/remake-timing-bug-pr8365.sh \
  t/reqd2.sh \
  t/repeated-options.sh \
 +t/rm-f-probe.sh \
  t/rulepat.sh \
 +t/self-check-cc-no-c-o.sh \
  t/self-check-configure-help.sh \
  t/self-check-dir.tap \
  t/self-check-exit.tap \
@@@ -1000,7 -992,7 +1000,7 @@@ t/spell.sh 
  t/spell2.sh \
  t/spell3.sh \
  t/spelling.sh \
 -t/spy.sh \
 +t/spy-double-colon.sh \
  t/spy-rm.tap \
  t/stdinc.sh \
  t/stamph2.sh \
@@@ -1157,9 -1149,10 +1157,10 @@@ t/tags.sh 
  t/tags2.sh \
  t/tagsub.sh \
  t/tags-pr12372.sh \
 -t/tar.sh \
 -t/tar2.sh \
 -t/tar3.sh \
 +t/tar-ustar.sh \
 +t/tar-pax.sh \
 +t/tar-opts-errors.sh \
+ t/tar-ustar-id-too-high.sh \
  t/tar-override.sh \
  t/target-cflags.sh \
  t/targetclash.sh \
@@@ -1168,14 -1161,12 +1169,14 @@@ t/tests-environment-and-log-compiler.s
  t/txinfo-absolute-srcdir-pr408.sh \
  t/txinfo-add-missing-and-dist.sh \
  t/txinfo-bsd-make-recurs.sh \
 +t/txinfo-builddir.sh \
  t/txinfo-clean.sh \
  t/txinfo-dvi-recurs.sh \
  t/txinfo-info-in-srcdir.sh \
  t/txinfo-makeinfo-error-no-clobber.sh \
  t/txinfo-many-output-formats.sh \
  t/txinfo-many-output-formats-vpath.sh \
 +t/txinfo-nodist-info.sh \
  t/txinfo-no-clutter.sh \
  t/txinfo-no-extra-dist.sh \
  t/txinfo-no-installinfo.sh \
@@@ -1247,10 -1238,10 +1248,10 @@@ t/werror3.sh 
  t/werror4.sh \
  t/whoami.sh \
  t/xsource.sh \
 -t/yacc4.sh \
 -t/yaccdry.sh \
 -t/yaccpp.sh \
 -t/yaccvpath.sh \
 +t/yacc-misc.sh \
 +t/yacc-dry.sh \
 +t/yacc-cxx-grepping.sh \
 +t/yacc-vpath.sh \
  t/yacc-auxdir.sh \
  t/yacc-basic.sh \
  t/yacc-cxx.sh \
diff --combined t/tar-opts-errors.sh
@@@ -18,8 -18,8 +18,8 @@@
  
  . test-init.sh
  
- cat > configure.ac << 'END'
- AC_INIT([tar2], [1.0])
+ cat > configure.ac <<END
+ AC_INIT([$me], [1.0])
  AM_INIT_AUTOMAKE([tar-pax tar-v7])
  AC_CONFIG_FILES([Makefile])
  AC_OUTPUT
@@@ -37,8 -37,8 +37,8 @@@ grep "'tar-v7'"  tar-er
  
  rm -rf autom4te.cache
  
- cat > configure.ac << 'END'
- AC_INIT([tar2], [1.0])
+ cat > configure.ac <<END
+ AC_INIT([$me], [1.0])
  AM_INIT_AUTOMAKE
  AC_CONFIG_FILES([Makefile])
  AC_OUTPUT
@@@ -47,6 -47,6 +47,6 @@@ EN
  echo 'AUTOMAKE_OPTIONS = tar-pax' > Makefile.am
  
  AUTOMAKE_fails
- grep '^Makefile\.am:1:.*tar-pax.*AM_INIT_AUTOMAKE' stderr
+ grep "^Makefile\.am:1:.*'tar-pax'.*AM_INIT_AUTOMAKE" stderr
  
  :
diff --combined t/tar-pax.sh
@@@ -18,8 -18,8 +18,8 @@@
  
  . test-init.sh
  
- cat > configure.ac << 'END'
- AC_INIT([tar2], [1.0])
+ cat > configure.ac <<END
+ AC_INIT([$me], [1.0])
  AM_INIT_AUTOMAKE([tar-pax])
  AC_CONFIG_FILES([Makefile])
  AC_OUTPUT
@@@ -32,9 -32,12 +32,12 @@@ $AUTOCON
  $AUTOMAKE
  ./configure
  
- if grep 'am__tar.*false' Makefile; then
+ grep 'am__tar' Makefile # For debugging.
+ if grep '^am__tar = false' Makefile; then
    skip_ "cannot find proper archiver program"
  fi
  
  $MAKE distcheck
- test -f tar2-1.0.tar.gz
+ test -f "$distdir.tar.gz"
+ :
diff --combined t/tar-ustar.sh
@@@ -18,8 -18,8 +18,8 @@@
  
  . test-init.sh
  
- cat > configure.ac << 'END'
- AC_INIT([tar], [1.0])
+ cat > configure.ac <<END
+ AC_INIT([$me], [1.0])
  AM_INIT_AUTOMAKE([tar-ustar])
  AC_CONFIG_FILES([Makefile])
  AC_OUTPUT
@@@ -32,9 -32,12 +32,12 @@@ $AUTOCON
  $AUTOMAKE
  ./configure
  
- if grep 'am__tar.*false' Makefile; then
+ grep 'am__tar' Makefile # For debugging.
+ if grep '^am__tar = false' Makefile; then
    skip_ "cannot find proper archiver program"
  fi
  
  $MAKE distcheck
- test -f tar-1.0.tar.gz
+ test -f "$distdir.tar.gz"
+ :