automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-628-g


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-628-g01c3294
Date: Fri, 06 Jan 2012 13:55:32 +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=01c3294bac3b67004d208449fe9460fc3ab61ee4

The branch, maint has been updated
       via  01c3294bac3b67004d208449fe9460fc3ab61ee4 (commit)
      from  741a0a1e94ce855fcd2109d5557a924e792b9320 (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 01c3294bac3b67004d208449fe9460fc3ab61ee4
Author: Stefano Lattarini <address@hidden>
Date:   Tue Jan 3 16:12:46 2012 +0100

    dist: do not wrap calls to 'tar' with the 'missing' script
    
    The `missing' script is meant to allow non-developers to build a
    package in the face of slightly-skewed timestamps (as might happen
    e.g. when the package is obtained from a VCS checkout rather than
    from a distribution tarball).  It is *not* the business of the
    `missing' script to try to provide wrappers for all the maintainer
    tools (in this case, to tool being a decent tar program).  Such
    wrapping of `tar' was not only inappropriate, but it was also
    preventing the legitimate overriding (at make runtime) of the
    `tar' program used in the creation of the distribution tarballs.
    
    See also automake bug#9822.
    
    * lib/missing: Don't try to specially wrap `tar' invocations
    anymore.
    * m4/tar.m4 (_AM_PROG_TAR): In the definitions of the `AMTAR'
    variable, do not wrap the `tar' invocation with the `missing'
    script anymore.  Instead, allow the user to override the intended
    tar program at make runtime, by defining the `TAR' environment
    variable.
    [$1 == v7]: Similarly for the definitions of the `am__tar' and
    `am__untar' variables.  Since we are at it, don't make them depend
    anymore on the definition of the obsolescent `AMTAR' variable.
    * NEWS: Update.
    * tests/missing-tar.test: Remove, it's obsolete.
    * tests/tar-override.test: New test.
    * tests/Makefile.am (TESTS): Update.
    
    Reported by Akim Demaille.

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

Summary of changes:
 NEWS                    |    7 ++
 lib/missing             |   32 +---------
 m4/tar.m4               |    9 ++-
 tests/Makefile.am       |    2 +-
 tests/missing-tar.test  |  160 -----------------------------------------------
 tests/tar-override.test |   67 ++++++++++++++++++++
 6 files changed, 82 insertions(+), 195 deletions(-)
 delete mode 100755 tests/missing-tar.test
 create mode 100755 tests/tar-override.test

diff --git a/NEWS b/NEWS
index 7e52d83..2b09bb5 100644
--- a/NEWS
+++ b/NEWS
@@ -32,6 +32,13 @@ New in 1.11.0a:
 
 * Miscellaneous changes:
 
+  - The `missing' script don't try to wrap calls to `tar' anymore.
+
+  - "make dist" doesn't wrap `tar' invocations with the `missing' script
+    anymore.  Similarly, the obsolescent variable `$(AMTAR)' (which you
+    shouldn't be using BTW ;-) does not invoke the missing script anymore
+    to wrap tar, but simply invokes the `tar' program itself.
+
   - "make dist" can now create lzip-compressed tarballs.
 
   - In the Automake info documentation, the Top node and the nodes about
diff --git a/lib/missing b/lib/missing
index 1039955..86a8fc3 100755
--- a/lib/missing
+++ b/lib/missing
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2011-12-22.11; # UTC
+scriptversion=2012-01-06.13; # UTC
 
 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <address@hidden>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -84,7 +84,6 @@ Supported PROGRAM values:
   help2man     touch the output file
   lex          create \`lex.yy.c', if possible, from existing .c
   makeinfo     touch the output file
-  tar          try tar, gnutar, gtar, then tar without non-portable flags
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
 
 Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
@@ -122,15 +121,6 @@ case $1 in
     # Not GNU programs, they don't have --version.
     ;;
 
-  tar*)
-    if test -n "$run"; then
-       echo 1>&2 "ERROR: \`tar' requires --run"
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       exit 1
-    fi
-    ;;
-
   *)
     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
        # We have it, but it failed.
@@ -318,24 +308,6 @@ WARNING: \`$1' is $msg.  You should only need it if
     touch $file
     ;;
 
-  tar*)
-    shift
-    # We have already tried tar in the generic part.  So try with GNU tar.
-    # Look for gnutar/gtar before invocation to avoid ugly error messages.
-    for cmd in gnutar gtar; do
-      ($cmd --version) > /dev/null 2>&1 || continue
-      echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
-         Trying to use GNU tar (\"$cmd\") instead ..."
-      exec $cmd "$@"
-    done
-    echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
-         You may want to install GNU tar or Free paxutils, or check the
-         command line arguments."
-    exit 1
-    ;;
-
   *)
     echo 1>&2 "\
 WARNING: \`$1' is needed, and is $msg.
diff --git a/m4/tar.m4 b/m4/tar.m4
index a4a00ec..0683951 100644
--- a/m4/tar.m4
+++ b/m4/tar.m4
@@ -1,6 +1,6 @@
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -22,10 +22,11 @@
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
 AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
+[# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
 m4_if([$1], [v7],
-     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
      [m4_case([$1], [ustar],, [pax],,
               [m4_fatal([Unknown tar format])])
 AC_MSG_CHECKING([how to create a $1 tar archive])
diff --git a/tests/Makefile.am b/tests/Makefile.am
index ff56442..9db0a03 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -586,7 +586,6 @@ missing3.test \
 missing4.test \
 missing5.test \
 missing6.test \
-missing-tar.test \
 mkinstall.test \
 mkinst2.test \
 mkinst3.test \
@@ -855,6 +854,7 @@ tagsub.test \
 tar.test \
 tar2.test \
 tar3.test \
+tar-override.test \
 target-cflags.test \
 targetclash.test \
 txinfo.test \
diff --git a/tests/missing-tar.test b/tests/missing-tar.test
deleted file mode 100755
index 889ae20..0000000
--- a/tests/missing-tar.test
+++ /dev/null
@@ -1,160 +0,0 @@
-#! /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/>.
-
-# Test how the `missing' script wraps the`tar' program .
-# FIXME: we should also try to run the `missing' script with the
-#        $CONFIG_SHELL ...
-
-. ./defs || Exit 1
-
-set -e
-
-# FIXME: make this working with "installcheck" too ...
-cp "$testsrcdir"/../lib/missing . \
-  || fatal_ "failed to fetch auxiliary script \`missing'"
-
-old_PATH=$PATH; export old_PATH
-new_PATH=`pwd`/bin$PATH_SEPARATOR$PATH
-mkdir bin
-
-cat > data.txt <<'END'
-To be, or not to be: that is the question:
-Whether 'tis nobler in the mind to suffer
-...
-END
-
-cat > nonesuch <<'END'
-#!/bin/sh
-exit 127
-END
-chmod a+x nonesuch
-
-# Simple runs.
-for nullify_gnu in yes no; do
-  case $nullify_gnu in
-    yes)
-      cp nonesuch bin/gtar
-      cp nonesuch bin/gnutar
-      PATH=$new_PATH; export PATH;
-      mkdir simple-nognu
-      cd simple-nognu
-      ;;
-    no)
-      mkdir simple-dflt
-      cd simple-dflt
-      ;;
-    *)
-      Exit 99 # Can't happen.
-      ;;
-  esac
-  cp ../data.txt foobar.txt
-  ../missing --run tar cvf mu.tar foobar.txt
-  rm -f foobar.txt
-  test -f mu.tar
-  ../missing --run tar tf mu.tar >output 2>&1 || { cat output; Exit 1; }
-  cat output
-  $FGREP 'foobar.txt' output
-  test ! -f foobar.txt
-  ../missing --run tar xvf mu.tar
-  diff ../data.txt foobar.txt
-  PATH=$old_PATH; export PATH;
-  cd ..
-done
-
-rm -f bin/*
-
-# Helper scripts and functions for next tests.
-
-cat > fake-gnu-tar <<'END'
-#!/bin/sh
-case " $* " in *\ --version\ *) echo fake GNU tar; exit $?;; esac
-PATH=$old_PATH; export PATH
-exec tar "$@"
-END
-chmod a+x fake-gnu-tar
-
-cat > failing-tar <<'END'
-#!/bin/sh
-echo "Error message from tar passed through" >&2
-exit 1
-END
-chmod a+x failing-tar
-
-grep_tar_failed ()
-{
-  grep "WARNING:.* can't.* run \`tar' with .*given arguments" $*
-}
-
-# The `tar' program does not work with the given options, but we have
-# gtar or gnutar.
-cp failing-tar bin/tar
-for pfx in g gnu; do
-  case $pfx in g) othpfx=gnu;; gnu) othpfx=g;; *) Exit 99;; esac
-  cp nonesuch bin/${othpfx}tar
-  if ${pfx}tar --version | grep GNU; then :; else
-    cp fake-gnu-tar bin/${pfx}tar
-  fi
-  tarball=foo-$pfx.tar
-  PATH=$new_PATH; export PATH
-  ./missing --run tar cvf $tarball ./data.txt 2>stderr \
-    || { cat stderr >&2; Exit 1; }
-  cat stderr >&2
-  PATH=$old_PATH; export PATH
-  test -f $tarball
-  grep_tar_failed stderr
-  grep "Error message from tar passed through" stderr
-  grep "[Tt]rying to use GNU tar.*${pfx}tar" stderr
-  grep "${othpfx}tar" stderr && Exit 1
-  : # For shells with broken 'set -e'
-done
-
-rm -f bin/*
-
-# The `tar' program does not work with the given options, and we don't
-# have neither gtar nor gnutar.
-cp failing-tar bin/tar
-cp nonesuch bin/gtar
-cp nonesuch bin/gnutar
-PATH=$new_PATH; export PATH
-./missing --run tar cvf foo.tar ./data.txt 2>stderr \
-  && { cat stderr >&2; Exit 1; }
-cat stderr >&2
-PATH=$old_PATH; export PATH
-test ! -f foo.tar
-grep_tar_failed stderr
-grep "Error message from tar passed through" stderr
-grep "[iI]nstall GNU tar or Free [pP]axutils" stderr
-$EGREP "(g|gnu)tar" stderr && Exit 1
-
-rm -f bin/*
-
-# We try to use an option that causes any `tar' program (GNU or non-GNU) to.
-./missing --run tar --bad-unknonw-option cvf foo.tar ./data.txt 2>stderr \
-  && { cat stderr >&2; Exit 1; }
-cat stderr >&2
-test ! -f foo.tar
-grep_tar_failed stderr
-grep "bad-unknonw-option" stderr
-for p in gtar gnutar; do
-  if $p --version; then
-    cnt=1
-  else
-    cnt=0
-  fi
-  test `$EGREP -c "[Tt]rying to use GNU tar.*$p" stderr` -eq $cnt
-done
-
-:
diff --git a/tests/tar-override.test b/tests/tar-override.test
new file mode 100755
index 0000000..b08c9f8
--- /dev/null
+++ b/tests/tar-override.test
@@ -0,0 +1,67 @@
+#! /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/>.
+
+# Check that the user can override the tar program used by "make dist"
+# at runtime, by redefining the `TAR' environment variable.
+# FIXME: currently this works only when the tar format used is `v7'
+# FIXME: (which is the default one).
+
+. ./defs || Exit 1
+
+set -e
+
+cwd=`pwd` || fatal_ "couldn't get current working directory"
+
+echo AC_OUTPUT >> configure.in
+
+cat > am--tar <<'END'
+#!/bin/sh
+echo $1 > am--tar-has-run
+shift
+exec tar "$@"
+END
+chmod a+x am--tar
+
+cat > Makefile.am <<'END'
+check-local: dist
+       test -f am--tar-has-run
+CLEANFILES = am--tar-has-run
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+./configure
+
+$MAKE dist
+test -f $me-1.0.tar.gz
+ls | grep has-run && Exit 1
+
+rm -f *.tar.* *has-run*
+
+TAR="$cwd/am--tar foo" $MAKE distcheck
+test -f $me-1.0.tar.gz
+test "`cat am--tar-has-run`" = foo
+
+rm -f *.tar.* *has-run*
+
+TAR=; unset TAR
+# Creative use of eval to pacify maintainer checks.
+eval \$'MAKE dist "TAR=./am--tar mu"'
+test -f $me-1.0.tar.gz
+test "`cat am--tar-has-run`" = mu
+
+:


hooks/post-receive
-- 
GNU Automake



reply via email to

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