GNU bug report logs - #19964
automake fails if files named “install.sh” and “install-sh” are found in the parent directory

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: automake; Severity: minor; Reported by: Florent Le Coz <louiz@HIDDEN>; Keywords: confirmed; dated Fri, 27 Feb 2015 20:04:01 UTC; Maintainer for automake is bug-automake@HIDDEN.
Added tag(s) confirmed. Request was from Mike Frysinger <vapier@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Severity set to 'minor' from 'normal' Request was from Mike Frysinger <vapier@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 19964 <at> debbugs.gnu.org:


Received: (at 19964) by debbugs.gnu.org; 27 Feb 2015 21:02:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 27 16:02:14 2015
Received: from localhost ([127.0.0.1]:60248 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1YRS34-0004tC-4c
	for submit <at> debbugs.gnu.org; Fri, 27 Feb 2015 16:02:14 -0500
Received: from mx4.gridway.net ([72.1.205.246]:46195)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <nbowler@HIDDEN>) id 1YRS31-0004sx-QL
 for 19964 <at> debbugs.gnu.org; Fri, 27 Feb 2015 16:02:12 -0500
Received: from delivery.mygridway.net (delivery.mygridway.net [72.1.205.180])
 by mx4.gridway.net (8.14.4/8.14.4/Debian-4) with ESMTP id
 t1RL24Sf009761
 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT);
 Fri, 27 Feb 2015 16:02:05 -0500
Received: from mail.ellipticsemi.com (24.114.47.98) by delivery.mygridway.net
 (172.17.12.4) with Microsoft SMTP Server (TLS) id 14.3.224.2;
 Fri, 27 Feb 2015 16:02:04 -0500
Date: Fri, 27 Feb 2015 16:02:04 -0500
From: Nick Bowler <nbowler@HIDDEN>
To: Florent Le Coz <louiz@HIDDEN>
Subject: Re: bug#19964: automake fails =?utf-8?Q?if?=
 =?utf-8?B?IGZpbGVzIG5hbWVkIOKAnGluc3RhbGwuc2jigJ0gYW5kIOKAnGluc3RhbGwt?=
 =?utf-8?B?c2jigJ0=?= are found in the parent directory
Message-ID: <20150227210204.GA13606@HIDDEN>
References: <54F0CA75.2080803@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <54F0CA75.2080803@HIDDEN>
Organization: Elliptic Technologies Inc.
User-Agent: Mutt/1.5.23 (2014-03-12)
X-Originating-IP: [24.114.47.98]
X-Spam-Score: undef - relay 72.1.205.180 marked with skip_spam_scan
X-CanIt-Geo: ip=72.1.205.180; country=CA; region=Ontario; city=Ottawa;
 latitude=45.4167; longitude=-75.7000;
 http://maps.google.com/maps?q=45.4167,-75.7000&z=6
X-CanItPRO-Stream: base:outbound (inherits from base:default)
X-Canit-Stats-ID: Bayes signature not available
X-Scanned-By: CanIt (www . roaringpenguin . com) on 72.1.205.246
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 19964
Cc: 19964 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

> Assuming project.tar.gz contains the source code of a project using
> the autotools as its build system:
> 
> $ tar xf project.tar.gz
> $ cd project/
> $ touch ../install-sh ../install.sh
> $ autoreconf -vif
> autoreconf: Entering directory `.'
> […]
> BUG.am: error: 'install.sh' is an anachronism; use 'install-sh' instead
> […]
> autoreconf: automake failed with exit status: 1

Full test case:

  % mkdir foo
  % cat >foo/configure.ac <<'EOF'
AC_INIT([test], [0])
AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
EOF
  % touch foo/Makefile.am
  % touch install-sh install.sh
  % (cd foo && autoreconf -i)
configure.ac:2: installing '../missing'
BUG.am: error: 'install.sh' is an anachronism; use 'install-sh' instead
autoreconf-2.69: automake failed with exit status: 1

Note how it actually copies the missing script to ".." as well, and NOT
into the package directory.  If we remove just ../install.sh automake
will still copy files into "..", and 'make dist' will fail to include
them in the tarball.

> You probably have reasons to look in .. or ../.. (and I would be
> quite interested to hear them, actually)

I imagine it is for subprojects, so that the scripts are not copied into
every one.  Which unfortunately means changing the automake behaviour
could break this usage...

However, there is a workaround.  If you add AC_CONFIG_AUX_DIR([.]) to
configure.ac, then this will cause Automake to not look in .. or ../..,
and things should work properly.

Cheers,
-- 
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)




Information forwarded to bug-automake@HIDDEN:
bug#19964; Package automake. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 27 Feb 2015 20:03:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 27 15:03:12 2015
Received: from localhost ([127.0.0.1]:60233 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1YRR7v-0003Sf-Sg
	for submit <at> debbugs.gnu.org; Fri, 27 Feb 2015 15:03:12 -0500
Received: from eggs.gnu.org ([208.118.235.92]:40114)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <louiz@HIDDEN>) id 1YRQve-00037q-FF
 for submit <at> debbugs.gnu.org; Fri, 27 Feb 2015 14:50:31 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <louiz@HIDDEN>) id 1YRQvY-0007SP-61
 for submit <at> debbugs.gnu.org; Fri, 27 Feb 2015 14:50:25 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled
 version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:42472)
 by eggs.gnu.org with esmtp (Exim 4.71)
 (envelope-from <louiz@HIDDEN>) id 1YRQvY-0007SG-1n
 for submit <at> debbugs.gnu.org; Fri, 27 Feb 2015 14:50:24 -0500
Received: from eggs.gnu.org ([2001:4830:134:3::10]:41820)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <louiz@HIDDEN>) id 1YRQvW-0005h4-Ur
 for bug-automake@HIDDEN; Fri, 27 Feb 2015 14:50:23 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <louiz@HIDDEN>) id 1YRQvT-0007Q0-1s
 for bug-automake@HIDDEN; Fri, 27 Feb 2015 14:50:22 -0500
Received: from smtp08.smtpout.orange.fr ([80.12.242.130]:41009
 helo=smtp.smtpout.orange.fr) by eggs.gnu.org with esmtp (Exim 4.71)
 (envelope-from <louiz@HIDDEN>) id 1YRQvS-0007OJ-R5
 for bug-automake@HIDDEN; Fri, 27 Feb 2015 14:50:18 -0500
Received: from [192.168.1.18] ([109.218.103.116]) by mwinf5d67 with ME
 id xXqD1p0082WhVmM03XqD9Q; Fri, 27 Feb 2015 20:50:13 +0100
X-ME-Helo: [192.168.1.18]
X-ME-Date: Fri, 27 Feb 2015 20:50:13 +0100
X-ME-IP: 109.218.103.116
Message-ID: <54F0CA75.2080803@HIDDEN>
Date: Fri, 27 Feb 2015 20:50:13 +0100
From: Florent Le Coz <louiz@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: bug-automake@HIDDEN
Subject: automake fails if files named =?UTF-8?B?4oCcaW5zdGFsbC5zaOKAnSBh?=
 =?UTF-8?B?bmQg4oCcaW5zdGFsbC1zaOKAnSBhcmUgZm91bmQgaW4gdGhlIHBhcmVudCBkaXI=?=
 =?UTF-8?B?ZWN0b3J5?=
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -5.0 (-----)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Fri, 27 Feb 2015 15:03:10 -0500
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -5.0 (-----)

Software versions:
automake (GNU automake) 1.14.1
aclocal (GNU automake) 1.14.1
autoconf (GNU Autoconf) 2.69
autoreconf (GNU Autoconf) 2.69


Assuming project.tar.gz contains the source code of a project using
the autotools as its build system:

$ tar xf project.tar.gz
$ cd project/
$ touch ../install-sh ../install.sh
$ autoreconf -vif
autoreconf: Entering directory `.'
[…]
BUG.am: error: 'install.sh' is an anachronism; use 'install-sh' instead
[…]
autoreconf: automake failed with exit status: 1

$ rm ../install-sh ../install.sh
$ autoreconf -vif
autoreconf: Entering directory `.'
[…]
autoreconf: Leaving directory `.'
$ echo $?
0

It seems to be related to this code (taken from the last git revision)

       # The default auxiliary directory is the first
       # of ., .., or ../.. that contains install-sh.
       # Assume . if install-sh doesn't exist yet.
       for my $dir (qw (. .. ../..))
         {
           if (-f "$dir/install-sh")
             {
               $config_aux_dir = $dir;
               last;
             }
         }

Which sets $config_aux_dir to "..", but then later we look for
install.sh in that directory

   err_am "'install.sh' is an anachronism; use 'install-sh' instead"
     if -f $config_aux_dir . '/install.sh';

You probably have reasons to look in .. or ../.. (and I would be
quite interested to hear them, actually), but I don’t think it
should fail in the specific case I described above.  I don’t
think it’s safe to assume that the parent directory of a project
is not filled with garbage (mine was full or random files,
including a install.sh and install-sh files, for some reasons).

Plus, it was really, really hard for me to understand which
“install.sh” file this error was talking about, since I could not
find any such file in my working directory or any sub-directory.

Regards

-- 
Florent





Acknowledgement sent to Florent Le Coz <louiz@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-automake@HIDDEN. Full text available.
Report forwarded to bug-automake@HIDDEN:
bug#19964; Package automake. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 21 Feb 2022 04:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.