build: Check for /gnu/store file names upon "make dist".
authorLudovic Courtès <ludo@gnu.org>
Wed, 12 Oct 2016 10:01:54 +0000 (12:01 +0200)
committerAndy Wingo <wingo@pobox.com>
Wed, 1 Mar 2017 19:39:48 +0000 (20:39 +0100)
* Makefile.am (assert-no-store-file-names): New rule, taken from Guix.
(dist-hook): Depend on it.

Makefile.am

index 07033261123482d163a224380d80047636ca926b..ebbf6d4763c64a5d3da70ccda053224e9a05db5e 100644 (file)
@@ -2,7 +2,7 @@
 ##
 ##     Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006, 2007,
 ##        2008, 2009, 2010, 2011, 2012, 2013,
-##        2014, 2015 Free Software Foundation, Inc.
+##        2014, 2015, 2016 Free Software Foundation, Inc.
 ##
 ##   This file is part of GUILE.
 ##
@@ -91,7 +91,7 @@ DISTCLEANFILES = check-guile.log
 
 DISTCHECK_CONFIGURE_FLAGS = --enable-error-on-warning
 
-dist-hook: gen-ChangeLog gen-tarball-version
+dist-hook: gen-ChangeLog gen-tarball-version assert-no-store-file-names
 
 clean-local:
        rm -rf cache/
@@ -108,6 +108,16 @@ gen-ChangeLog:
          mv $(distdir)/cl-t $(distdir)/ChangeLog;                      \
        fi
 
+# Make sure we're not shipping a file that embeds a /gnu/store file
+# name, for maintainers who use Guix.
+.PHONY: assert-no-store-file-names
+assert-no-store-file-names:
+       if grep -rE "/gnu/store/[a-z0-9]{32}-" $(distdir) ;                     \
+       then                                                                    \
+         echo "error: store file names embedded in the distribution" >&2 ;     \
+         exit 1 ;                                                              \
+       fi
+
 BUILT_SOURCES += $(top_srcdir)/.version
 $(top_srcdir)/.version:
        echo $(VERSION) > $@-t && mv $@-t $@