diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2013-05-10 21:18:40 +0200 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2013-05-10 21:18:40 +0200 |
commit | 0cf58ea7c1c05cdc7b6abff6edc68e934333d1e2 (patch) | |
tree | a4007dd22de95af4cc9440b3b7a1a85a562a1ba1 | |
parent | 0dd95c8d51099aaca08fab7815e2c536908250e2 (diff) | |
parent | 7a2ff99d85c7abcd2753e9815fc8fdac4b13e38f (diff) | |
download | automake-0cf58ea7c1c05cdc7b6abff6edc68e934333d1e2.tar.gz |
Merge branch 'maint'
* maint:
news: document new 'subdir-objects' warning
PLANS: one minor fixlet (mostly cosmetic)
PLANS: we have already dropped support for split info files in master
NEWS: fix a reference to Automake 1.14 where Automake 2.0 was intended
PLANS: fix reference to non-existent 'next' branch
PLANS: fix botched version reference
maintcheck: fix two references to old location of aclocal and automake
dist: deprecated shar and tar+compress formats
-rw-r--r-- | NEWS | 12 | ||||
-rw-r--r-- | PLANS/obsolete-removed/configure.in.txt | 6 | ||||
-rw-r--r-- | PLANS/rm-f-without-args.txt | 4 | ||||
-rw-r--r-- | PLANS/texi/drop-split-info-files.txt | 6 | ||||
-rw-r--r-- | doc/automake.texi | 19 | ||||
-rw-r--r-- | lib/Automake/Options.pm | 17 | ||||
-rw-r--r-- | lib/am/distdir.am | 6 | ||||
-rw-r--r-- | maintainer/syntax-checks.mk | 4 | ||||
-rwxr-xr-x | t/dist-formats.tap | 50 | ||||
-rwxr-xr-x | t/dist-lzma.sh (renamed from t/lzma.sh) | 4 | ||||
-rwxr-xr-x | t/dist-shar.sh | 47 | ||||
-rwxr-xr-x | t/dist-tarZ.sh | 59 | ||||
-rw-r--r-- | t/list-of-tests.mk | 4 |
13 files changed, 185 insertions, 53 deletions
@@ -143,6 +143,16 @@ New in 1.14: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44> + - The next major Automake version (2.0) will unconditionally turn on + the 'subdir-objects' option. I order to smooth out the transition, + we now give a warning (in the category 'unsupported') whenever a + source file is present in a subdirectory but the 'subdir-object' is + not enabled. For example, the following usage will trigger such a + warning (of course, assuming the 'subdir-objects' option is off): + + bin_PROGRAMS = sub/foo + sub_foo_SOURCES = sub/main.c sub/bar.c + - 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 @@ -183,7 +193,7 @@ 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 1.14. + likely be removed altogether in Automake 2.0. * Relative directory in Makefile fragments: diff --git a/PLANS/obsolete-removed/configure.in.txt b/PLANS/obsolete-removed/configure.in.txt index 180f92c14..d3f6da795 100644 --- a/PLANS/obsolete-removed/configure.in.txt +++ b/PLANS/obsolete-removed/configure.in.txt @@ -1,5 +1,5 @@ -In Automake 1.13.x ------------------- +In Automake 1.13.x (once planned, then dropped) +----------------------------------------------- We are already warning about 'configure.in' used as the name for the Autoconf input file ('configure.ac' should be used instead); we've @@ -24,5 +24,5 @@ that Autoconf will actually have started deprecating 'configure.in' by the time Automake 2.0 is released. Note that the removal of 'configure.in' has already been implemented -in our 'next' branch (from where the 2.0 release will be finally +in our 'master' branch (from where the 2.0 release will be finally cut); see commits 'v1.13-17-gbff57c8' and 'v1.13-21-g7626e63'. diff --git a/PLANS/rm-f-without-args.txt b/PLANS/rm-f-without-args.txt index 918e0492d..b940fc3e9 100644 --- a/PLANS/rm-f-without-args.txt +++ b/PLANS/rm-f-without-args.txt @@ -13,8 +13,8 @@ accordingly, to get rid of the awful idiom: See automake bug#10828. -For Automake 1.13.2 (DONE) --------------------------- +For Automake 1.14 (DONE) +------------------------ Add a temporary "probe check" in AM_INIT_AUTOMAKE that verifies that the no-args "rm -f" usage is supported on the system configure is diff --git a/PLANS/texi/drop-split-info-files.txt b/PLANS/texi/drop-split-info-files.txt index 8b36ecb05..a0a5636e7 100644 --- a/PLANS/texi/drop-split-info-files.txt +++ b/PLANS/texi/drop-split-info-files.txt @@ -1,7 +1,7 @@ -For automake 2.0 ----------------- +For in Automake 2.0 (DONE) +-------------------------- -We want to drop split info files in Automake 2.0. +We will drop split info files in Automake 2.0. See automake bug#13351: <http://debbugs.gnu.org/13351>. Basically, it has been confirmed that the original reason behind diff --git a/doc/automake.texi b/doc/automake.texi index 779116944..e1d0b425e 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -8693,13 +8693,16 @@ Generate a @samp{zip} archive of the distribution. @item @code{dist-tarZ} Generate a tar archive of the distribution, compressed with the -historical (obsolescent) program @command{compress}. Use of this -option is discouraged. +historical (and obsolescent) program @command{compress}. This +option is deprecated, and it and the corresponding functionality +will be removed altogether in Automake 2.0. @trindex dist-tarZ @item @code{dist-shar} -Generate a @samp{shar} archive of the distribution. This format archive -is obsolescent, and use of this option is discouraged. +Generate a @samp{shar} archive of the distribution. This format +archive is obsolescent, and use of this option is deprecated. +It and the corresponding functionality will be removed altogether +in Automake 2.0. @trindex dist-shar @end table @@ -10095,15 +10098,17 @@ Hook @code{dist-zip} to @code{dist}. @cindex Option, @option{dist-shar} @opindex dist-shar Hook @code{dist-shar} to @code{dist}. Use of this option -is discouraged, as the @samp{shar} format is obsolescent and -problematic. +is deprecated, as the @samp{shar} format is obsolescent and +problematic. Support for it will be removed altogether in +Automake 2.0. @trindex dist-shar @item @option{dist-tarZ} @cindex Option, @option{dist-tarZ} @opindex dist-tarZ Hook @code{dist-tarZ} to @code{dist}. Use of this option -is discouraged, as the @samp{compress} program is obsolete. +is deprecated, as the @samp{compress} program is obsolete. +Support for it will be removed altogether in Automake 2.0. @trindex dist-tarZ @item @option{filename-length-max=99} diff --git a/lib/Automake/Options.pm b/lib/Automake/Options.pm index e3f551a43..737d2a170 100644 --- a/lib/Automake/Options.pm +++ b/lib/Automake/Options.pm @@ -272,8 +272,6 @@ sub _is_valid_easy_option ($) dejagnu dist-bzip2 dist-lzip - dist-shar - dist-tarZ dist-xz dist-zip info-in-builddir @@ -334,6 +332,21 @@ sub _process_option_list (\%@) error ($where, "support for lzma-compressed distribution " . "archives has been removed"); } + # TODO: Make this a fatal error in Automake 2.0. + elsif ($_ eq 'dist-shar') + { + msg ('obsolete', $where, + "support for shar distribution archives is deprecated.\n" . + " It will be removed in Automake 2.0"); + } + # TODO: Make this a fatal error in Automake 2.0. + elsif ($_ eq 'dist-tarZ') + { + msg ('obsolete', $where, + "support for distribution archives compressed with " . + "legacy program 'compress' is deprecated.\n" . + " It will be removed in Automake 2.0"); + } elsif (/^filename-length-max=(\d+)$/) { delete $options->{$_}; diff --git a/lib/am/distdir.am b/lib/am/distdir.am index e5d8d5ea9..0e5f6bdb9 100644 --- a/lib/am/distdir.am +++ b/lib/am/distdir.am @@ -339,12 +339,18 @@ dist-xz: distdir ?COMPRESS?DIST_ARCHIVES += $(distdir).tar.Z .PHONY: dist-tarZ dist-tarZ: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) ?SHAR?DIST_ARCHIVES += $(distdir).shar.gz .PHONY: dist-shar dist-shar: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) diff --git a/maintainer/syntax-checks.mk b/maintainer/syntax-checks.mk index 6cfa603c2..0bd362cf9 100644 --- a/maintainer/syntax-checks.mk +++ b/maintainer/syntax-checks.mk @@ -504,11 +504,11 @@ sc_tests_PATH_SEPARATOR: ## Try to make sure all @...@ substitutions are covered by our ## substitution rule. sc_perl_at_substs: - @if test `grep -E '^[^#]*@[A-Za-z_0-9]+@' aclocal | wc -l` -ne 0; then \ + @if test `grep -E '^[^#]*@[A-Za-z_0-9]+@' bin/aclocal | wc -l` -ne 0; then \ echo "Unresolved @...@ substitution in aclocal" 1>&2; \ exit 1; \ fi - @if test `grep -E '^[^#]*@[A-Za-z_0-9]+@' automake | wc -l` -ne 0; then \ + @if test `grep -E '^[^#]*@[A-Za-z_0-9]+@' bin/automake | wc -l` -ne 0; then \ echo "Unresolved @...@ substitution in automake" 1>&2; \ exit 1; \ fi diff --git a/t/dist-formats.tap b/t/dist-formats.tap index 730fa5d07..bebac374d 100755 --- a/t/dist-formats.tap +++ b/t/dist-formats.tap @@ -20,7 +20,7 @@ am_create_testdir=empty . test-init.sh -plan_ 70 +plan_ 66 # ---------------------------------------------------- # # Common and/or auxiliary subroutines and variables. # @@ -56,12 +56,10 @@ setup_vars_for_compression_format () suffix=NONE compressor=NONE case $1 in gzip) suffix=tar.gz compressor=gzip ;; - tarZ) suffix=tar.Z compressor=compress ;; lzip) suffix=tar.lz compressor=lzip ;; xz) suffix=tar.xz compressor=xz ;; bzip2) suffix=tar.bz2 compressor=bzip2 ;; zip) suffix=zip compressor=zip ;; - shar) suffix=shar.gz compressor=shar ;; *) fatal_ "invalid compression format '$1'";; esac } @@ -73,20 +71,6 @@ have_compressor () # Assume gzip(1) is available on every reasonable portability target. gzip) return 0;; - # On Cygwin, as of 9/2/2012, 'compress' is provided by sharutils - # and is just a dummy script that is not able to actually compress - # (it can only decompress). So, check that the 'compress' program - # is actually able to compress input. - # Note that, at least on GNU/Linux, 'compress' does (and is - # documented to) exit with status 2 if the output is larger than - # the input after (attempted) compression; so we need to pass it - # an input that it can actually reduce in size when compressing. - compress) - for x in 1 2 3 4 5 6 7 8; do - echo aaaaaaaaaaaaaaaaaaaaa - done | compress -c >/dev/null && return 0 - return 1 - ;; *) case $1 in # Do not use --version, or older versions bzip2 would try to @@ -113,7 +97,7 @@ have_compressor () fatal_ "have_compressor(): dead code reached" } -all_compression_formats='gzip tarZ lzip xz bzip2 zip shar' +all_compression_formats='gzip lzip xz bzip2 zip' all_compressors=$( for x in $all_compression_formats; do @@ -305,7 +289,7 @@ END nogzip in am and bzip2 in am nogzip in ac and xz in am nogzip in am and lzip in ac -nogzip in ac and tarZ in ac +nogzip in ac and zip in ac # ----------------------------------------------------------- # @@ -324,13 +308,13 @@ end_subtest # Parallel compression. # # ----------------------- # -# We only use formats requiring 'gzip', 'bzip2' and 'compress' programs, -# since there are the most likely to be all found on the great majority +# We only use formats requiring 'gzip', 'bzip2' and 'xz' programs, +# since there are the most likely to be all found on the majority # of systems. -start_subtest parallel-compression ac_opts=dist-bzip2 am_opts=dist-tarZ +start_subtest parallel-compression ac_opts=dist-bzip2 am_opts=dist-xz -desc=gzip+bzip2+tarZ +desc=gzip+bzip2+xz tarname=parallel-compression-1.0 check_tarball () @@ -353,11 +337,17 @@ check_tarball () command_ok_ "$desc [automake]" $AUTOMAKE -skip_reason= -have_compressor compress || skip_reason="'compress' not available" -have_compressor bzip2 || skip_reason="'bzip2' not available" +if ! have_compressor xz && ! have_compressor bzip2; then + skip_reason="both 'bzip2' and 'xz' are unavailable" +elif ! have_compressor xz; then + skip_reason="'xz' not available" +elif ! have_compressor bzip2; then + skip_reason="'bzip2' not available" +else + skip_reason= +fi if test "$MAKE_j4" = false; then - test -z "$skip_reason" || skip_reason="$skip_reason and " + test -z "$skip_reason" || skip_reason="$skip_reason, and " skip_reason="${skip_reason}make concurrency unavailable" fi @@ -370,7 +360,7 @@ else ls -l # For debugging. command_ok_ "$desc [check .tar.gz tarball]" check_tarball gzip command_ok_ "$desc [check .tar.bz2 tarball]" check_tarball bzip2 - command_ok_ "$desc [check .tar.Z tarball]" check_tarball tarZ + command_ok_ "$desc [check .tar.xz tarball]" check_tarball xz fi unset tarname desc skip_reason @@ -445,8 +435,8 @@ END chmod a+x check-distdir grep-distdir-error for prog in tar $all_compressors; do case $prog in - tar|shar|zip) cp check-distdir $prog;; - *) cp grep-distdir-error $prog;; + tar|zip) cp check-distdir $prog;; + *) cp grep-distdir-error $prog;; esac done unset prog diff --git a/t/lzma.sh b/t/dist-lzma.sh index 30fc689b9..d1d3e4b67 100755 --- a/t/lzma.sh +++ b/t/dist-lzma.sh @@ -25,8 +25,8 @@ $ACLOCAL --force AUTOMAKE_fails -Wnone -Wno-error grep "^Makefile\\.am:1:.*$errmsg" stderr -cat > configure.ac << 'END' -AC_INIT([lzma], [1.0]) +cat > configure.ac <<END +AC_INIT([$me], [1.0]) AM_INIT_AUTOMAKE([no-dist-gzip dist-lzma]) AC_CONFIG_FILES([Makefile]) AC_OUTPUT diff --git a/t/dist-shar.sh b/t/dist-shar.sh new file mode 100755 index 000000000..cd0442552 --- /dev/null +++ b/t/dist-shar.sh @@ -0,0 +1,47 @@ +#! /bin/sh +# Copyright (C) 2013 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/>. + +# Check support for no-dist-gzip with dist-shar. + +required=shar +. test-init.sh + +errmsg='support for shar .*deprecated' + +echo AUTOMAKE_OPTIONS = dist-shar > Makefile.am +$ACLOCAL +AUTOMAKE_fails -Wnone -Wobsolete +grep "^Makefile\\.am:1:.*$errmsg" stderr + +cat > configure.ac <<END +AC_INIT([$me], [1.0]) +AM_INIT_AUTOMAKE([no-dist-gzip dist-shar]) +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT +END +: > Makefile.am + +rm -rf autom4te*.cache +$ACLOCAL +AUTOMAKE_run -Wno-error +grep "^configure\\.ac:2:.*$errmsg" stderr + +$AUTOCONF +./configure +$MAKE distcheck +test -f $distdir.shar.gz + +: diff --git a/t/dist-tarZ.sh b/t/dist-tarZ.sh new file mode 100755 index 000000000..f27648166 --- /dev/null +++ b/t/dist-tarZ.sh @@ -0,0 +1,59 @@ +#! /bin/sh +# Copyright (C) 2013 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/>. + +# Check support for no-dist-gzip with dist-tarZ. + +. test-init.sh + +# On Cygwin, as of 9/2/2012, 'compress' is provided by sharutils +# and is just a dummy script that is not able to actually compress +# (it can only decompress). So, check that the 'compress' program +# is actually able to compress input. +# Note that, at least on GNU/Linux, 'compress' does (and is +# documented to) exit with status 2 if the output is larger than +# the input after (attempted) compression; so we need to pass it +# an input that it can actually reduce in size when compressing. +for x in 1 2 3 4 5 6 7 8; do + echo aaaaaaaaaaaaaaaaaaaaa +done | compress -c >/dev/null \ + || skip_ "cannot find a working 'compress' program" + +errmsg=".*legacy .*'compress' .*deprecated" + +echo AUTOMAKE_OPTIONS = dist-tarZ > Makefile.am +$ACLOCAL +AUTOMAKE_fails -Wnone -Wobsolete +grep "^Makefile\\.am:1:.*$errmsg" stderr + +cat > configure.ac <<END +AC_INIT([$me], [1.0]) +AM_INIT_AUTOMAKE([no-dist-gzip dist-tarZ]) +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT +END +: > Makefile.am + +rm -rf autom4te*.cache +$ACLOCAL +AUTOMAKE_run -Wno-error +grep "^configure\\.ac:2:.*$errmsg" stderr + +$AUTOCONF +./configure +$MAKE distcheck +test -f dist-tarz-1.0.tar.Z + +: diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk index d494ef6a9..0d6f5d1b7 100644 --- a/t/list-of-tests.mk +++ b/t/list-of-tests.mk @@ -384,6 +384,9 @@ t/destdir.sh \ t/dir-named-obj-is-bad.sh \ t/discover.sh \ t/dist-formats.tap \ +t/dist-lzma.sh \ +t/dist-tarZ.sh \ +t/dist-shar.sh \ t/dist-auxdir-many-subdirs.sh \ t/dist-auxfile-2.sh \ t/dist-auxfile.sh \ @@ -656,7 +659,6 @@ t/ltinstloc.sh \ t/ltlibobjs.sh \ t/ltlibsrc.sh \ t/ltorder.sh \ -t/lzma.sh \ t/m4-inclusion.sh \ t/maintclean.sh \ t/maintclean-vpath.sh \ |