build-system/gnu: Don't try executing directories in bootstrap phase.

* guix/build/gnu-build-system.scm: (bootstrap): Change the file-exists?
procedure to one that excludes directories, so that we do not mistake it for a
script. For example if the source includes a bootstrap/ directory.

Signed-off-by: Marius Bakke <mbakke@fastmail.com>
This commit is contained in:
Brendan Tildesley 2019-10-08 02:55:03 +11:00 committed by Marius Bakke
parent f379c665a8
commit a21bd6d5c2
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
1 changed files with 7 additions and 2 deletions

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@ -173,12 +174,16 @@ working directory."
\"autoreconf\". Otherwise do nothing."
;; Note: Run that right after 'unpack' so that the generated files are
;; visible when the 'patch-source-shebangs' phase runs.
(if (not (file-exists? "configure"))
(define (script-exists? file)
(and (file-exists? file)
(not (file-is-directory? file))))
(if (not (script-exists? "configure"))
;; First try one of the BOOTSTRAP-SCRIPTS. If none exists, and it's
;; clearly an Autoconf-based project, run 'autoreconf'. Otherwise, do
;; nothing (perhaps the user removed or overrode the 'configure' phase.)
(let ((script (find file-exists? bootstrap-scripts)))
(let ((script (find script-exists? bootstrap-scripts)))
;; GNU packages often invoke the 'git-version-gen' script from
;; 'configure.ac' so make sure it has a valid shebang.
(false-if-file-not-found