From: Jim Meyering Date: Sat, 5 Dec 2009 21:16:32 +0000 (+0100) Subject: build: distcheck: do not leave a $TMPDIR/coreutils directory behind X-Git-Tag: v8.2~16 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ae034822c535fa5168069a75fb5e1c58f93a7834;p=thirdparty%2Fcoreutils.git build: distcheck: do not leave a $TMPDIR/coreutils directory behind * dist-check.mk (tmpdir): Rename from TMPDIR. Use ./tests/torture unconditionally, rather than $TMPDIR-with-default-to-/tmp. Otherwise, running "make distcheck" could leave an empty /tmp/coreutils directory behind. (tp): Simplify, now that it's always in the build-dir. (taint-distcheck): Set HOME earlier, in case $(MAKE) misbehaves. (my-instcheck, coreutils-path-check): Add diagnostics, so it's easier to diagnose when each runs. (coreutils-path-check): Run configure with --quiet, to reduce output. Inspired by Ralf Wildenhues' report of /tmp/coreutils being left behind. --- diff --git a/dist-check.mk b/dist-check.mk index 3a61572452..0299f51784 100644 --- a/dist-check.mk +++ b/dist-check.mk @@ -4,14 +4,15 @@ bin=bin-$$$$ write_loser = printf '\#!%s\necho $$0: bad path 1>&2; exit 1\n' '$(SHELL)' -TMPDIR ?= /tmp -t=$(TMPDIR)/$(PACKAGE)/test +tmpdir = $(abs_top_builddir)/tests/torture + +t=$(tmpdir)/$(PACKAGE)/test pfx=$(t)/i # More than once, tainted build and source directory names would # have caused at least one "make check" test to apply "chmod 700" # to all directories under $HOME. Make sure it doesn't happen again. -tp := $(shell echo "$(TMPDIR)/$(PACKAGE)-$$$$") +tp = $(tmpdir)/taint t_prefix = $(tp)/a t_taint = '$(t_prefix) b' fake_home = $(tp)/home @@ -30,10 +31,11 @@ taint-distcheck: $(DIST_ARCHIVES) touch $(fake_home)/f mkdir -p $(fake_home)/d/e ls -lR $(fake_home) $(t_prefix) > $(tp)/.ls-before + HOME=$(fake_home); export HOME; \ cd $(t_taint)/$(distdir) \ && ./configure \ && $(MAKE) \ - && HOME=$(fake_home) $(MAKE) check \ + && $(MAKE) check \ && ls -lR $(fake_home) $(t_prefix) > $(tp)/.ls-after \ && diff $(tp)/.ls-before $(tp)/.ls-after \ && test -d $(t_prefix) @@ -52,6 +54,7 @@ endef # Install, then verify that all binaries and man pages are in place. # Note that neither the binary, ginstall, nor the ].1 man page is installed. define my-instcheck + echo running my-instcheck; \ $(MAKE) prefix=$(pfx) install \ && test ! -f $(pfx)/bin/ginstall \ && { fail=0; \ @@ -70,6 +73,7 @@ endef define coreutils-path-check { \ + echo running coreutils-path-check; \ if test -f $(srcdir)/src/true.c; then \ fail=1; \ mkdir $(bin) \ @@ -117,7 +121,7 @@ my-distcheck: $(DIST_ARCHIVES) $(local-check) mkdir -p $(t) GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz cd $(t)/$(distdir) \ - && ./configure --enable-gcc-warnings --disable-nls \ + && ./configure --quiet --enable-gcc-warnings --disable-nls \ && $(MAKE) AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)' \ && $(MAKE) dvi \ && $(install-transform-check) \ @@ -128,6 +132,7 @@ my-distcheck: $(DIST_ARCHIVES) $(local-check) && $(AMTAR) -zxf - ) < $(distdir).tar.gz diff -ur $(t)/$(distdir).old $(t)/$(distdir) -rm -rf $(t) + rmdir $(tmpdir)/$(PACKAGE) $(tmpdir) @echo "========================"; \ echo "$(distdir).tar.gz is ready for distribution"; \ echo "========================"