Hash :
01c3294b
Author :
Date :
2012-01-03T16:12:46
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 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
: