]> git.ipfire.org Git - thirdparty/automake.git/commit
dist: fix bug#18286 "distcheck fails to detect missing files"
authorStefano Lattarini <stefano.lattarini@gmail.com>
Tue, 23 Dec 2014 17:39:32 +0000 (18:39 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Tue, 23 Dec 2014 18:47:31 +0000 (19:47 +0100)
commit01a7a4a7bea81b4e2d03d08b45d605b98501e024
tree78373eeccd87f9444cfabb7a3a4a867ac20ffa33
parent2629aa9e713c584c799677987ffb03156b8aae8e
dist: fix bug#18286 "distcheck fails to detect missing files"

BTW, this issue had been already reported in the past:
http://lists.gnu.org/archive/html/automake/2006-09/msg00008.html
http://lists.gnu.org/archive/html/automake/2013-01/msg00049.html

"make distcheck" could sometimes fail to detect missing files in the
distribution tarball, especially in those cases where both the generated
files and their dependencies are explicitly in $(srcdir).  An important
example of this are *generated* makefile fragments included at Automake
time in Makefile.am.  A basic example:

    # -*- Makefile.am -*-

    $(srcdir)/fragment.am: $(srcdir)/data.txt $(srcdir)/preproc.sh
        cd $(srcdir) && $(SHELL) preproc.sh <data.txt >fragment.am

    include $(srcdir)/fragment.am

    ...

If the use forgot to add data.txt and/or preproc.sh in the distribution
tarball, "make distcheck" would have erroneously succeeded!

The reason is that, while $(srcdir)/data.txt does not exist, make also
looks in $(srcdir)/$(srcdir)/data.txt, and in the distcheck-issued
VPATH build where $(srcdir) is '..', that file exists, as it is
part of the original development directory.

* t/distdir.am (distcheck): Adjust to have the build directory be
'$(distdir)/_build/sub' rather than just '$(distdir)/_build'.  Thanks
Nicola Fontana for the suggestion.
* t/distcheck-pr18286.sh: Enhance and tighten a little.
* t/list-of-tests.mk (XFAIL_TESTS): Remove 't/distcheck-pr18286.sh',
as it's now passing.
* t/subdir-am-cond.sh: Adjust to avoid a fully spurious failure due
to the new distcheck semantics.
* t/subdir-ac-subst.sh: Likewise.
* t/dejagnu-relative-srcdir.sh: Likewise.
* t/txinfo-builddir.sh: Likewise.
* NEWS: Update.

Helped-by: Nicola Fontana <ntd@entidi.it>
Helped-by: Peter Johansson <trojkan@gmail.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS
THANKS
lib/am/distdir.am
t/dejagnu-relative-srcdir.sh
t/distcheck-pr18286.sh
t/list-of-tests.mk
t/subdir-ac-subst.sh
t/subdir-am-cond.sh
t/txinfo-builddir.sh