Subject: bug#10816: closed (Re: bug#10816: [PATCH] aclocal: create local directory where to install m4 files)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 17 Mar 2012 09:18:02 +0000

Your bug report

#10816: automake: autoreconf -i fails if macro dir does not exist (it should automatically create new directories)

which was filed against the automake package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
10816: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10816
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#10816: [PATCH] aclocal: create local directory where to install m4 files
From: Stefano Lattarini <[email-masked]>
To: [email-masked]
Cc: [email-masked], [email-masked], [email-masked], [email-masked]
Date: Sat, 17 Mar 2012 09:46:30 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

On 03/15/2012 08:57 PM, Stefano Lattarini wrote:
> Fixes automake bug#8168 and bug#10816.
> 
> A call like "aclocal -I m4 --install" used to fail if the 'm4'
> directory wasn't pre-existing.  This could be particularly
> annoying when running in a checked-out version from a VCS like
> git, which doesn't allow empty directories to be tracked.
> 
> * aclocal.in (File::Path): New import.
> (scan_m4_dirs): Don't die if the first directory of type FT_USER
> doesn't exist and the '--install' option was given; that directory
> will be created later in ...
> (install_file): ... here.  Change signature: now it takes as second
> argument the destination directory rather than the destination file.
> Crate the destination directory if it doesn't already exist.  In
> verbose mode, tell what is being copied where.
> (write_aclocal): Update.
> * NEWS, THANKS: Update.
> * tests/aclocal-install-fail.test: New test.
> * tests/aclocal-install-mkdir.test: Likewise.
> * tests/aclocal-no-install-no-mkdir.test: Likewise.
> * tests/aclocal-verbose-install.test: Likewise.
> * tests/list-of-tests.mk: Add them.
> 
> Signed-off-by: Stefano Lattarini <[email-masked]>
> ---
> 
>  I will push this in a couple of days if there is no objection.
>  Thanks to David and Javier, and sorry for the awful delay.
> 
No objection seen so far, so I've pushed this patch (with minor
adjustments, see commit a75a1a52).  I'm also closing the relevant
bug reports.

Regards,
  Stefano

Subject: automake: autoreconf -i fails if macro dir does not exist (it should automatically create new directories)
From: "David A. Wheeler" <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Wed, 15 Feb 2012 09:58:20 -0500 (EST)
List-Id: <debbugs-submit.debbugs.gnu.org>

Problem:
"autoreconf -i" fails if you follow the libtool advice and use put this in configure.ac:
 AC_CONFIG_MACRO_DIR([m4])
and add "-I m4" to ACLOCAL_AMFLAGS in Makefile.am

It will instead report:
aclocal: couldn't open directory `m4': No such file or directory
autoreconf: aclocal failed with exit status: 1

The whole point of "autoreconf -i" is to create "whatever is needed",
and clearly MACRO_DIRs are needed, yet autoreconf fails to do so.  Therefore, this is a bug.

This is *especially* a problem when using the widely-used "git" tool,
because "git" does not store empty directories (only files). The symptom is that
you "git clone" a fresh repository, and then "autoreconf -i" fails.  You can work around this using:
"mkdir m4 ; touch m4/dummy ; git add m4/dummy" or similar, but you shouldn't need
to work around this at all.

This is already a bug report in Debian:
 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=565663
reported against automake 1.11.

Solution:
Please patch aclocal (part of automake) to automatically create these directories.

A patch has already been created in 2010:
  http://permalink.gmane.org/gmane.linux.debian.devel.bugs.general/678260
  http://permalink.gmane.org/gmane.comp.sysutils.automake.patches/3859

--- David A. Wheeler