From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:57336) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iHgLz-0003xg-DU for guix-patches@gnu.org; Mon, 07 Oct 2019 23:40:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iHgLy-0000cr-Bl for guix-patches@gnu.org; Mon, 07 Oct 2019 23:40:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:40507) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iHgLy-0000cl-8Q for guix-patches@gnu.org; Mon, 07 Oct 2019 23:40:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iHgLy-0002cB-3m for guix-patches@gnu.org; Mon, 07 Oct 2019 23:40:02 -0400 Subject: [bug#37654] [PATCH] gnu-build-system: Don't try executing directories in bootstrap phase. Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:57249) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iHgLJ-0003ug-TL for guix-patches@gnu.org; Mon, 07 Oct 2019 23:39:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iHgLI-0000Ox-5s for guix-patches@gnu.org; Mon, 07 Oct 2019 23:39:21 -0400 Received: from mx2.mailbox.org ([80.241.60.215]:63778) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iHgLH-0000Ly-KU for guix-patches@gnu.org; Mon, 07 Oct 2019 23:39:20 -0400 Received: from smtp2.mailbox.org (smtp1.mailbox.org [80.241.60.240]) (using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits)) (No client certificate requested) by mx2.mailbox.org (Postfix) with ESMTPS id 7BE45A25EC for ; Tue, 8 Oct 2019 05:39:14 +0200 (CEST) Received: from smtp2.mailbox.org ([80.241.60.240]) by spamfilter01.heinlein-hosting.de (spamfilter01.heinlein-hosting.de [80.241.56.115]) (amavisd-new, port 10030) with ESMTP id CzBxTXI7LX75 for ; Tue, 8 Oct 2019 05:39:11 +0200 (CEST) From: Brendan Tildesley Message-ID: <4ed4493a-5d41-9bad-d81d-6082e3b1f151@brendan.scot> Date: Tue, 8 Oct 2019 14:39:05 +1100 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------E2A22CF87F90B47E9E3CD128" Content-Language: en-AU List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 37654@debbugs.gnu.org This is a multi-part message in MIME format. --------------E2A22CF87F90B47E9E3CD128 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit I just made this after discovering a source repo with a bootstrap directory. Naturally it results in just about everything being rebuilt, so it would a long time to fully test it, and I'm no experienced schemer so I can't be sure this is the right way to add in this change. Feel free to rewrite it a better way. --------------E2A22CF87F90B47E9E3CD128 Content-Type: text/x-patch; name="0001-gnu-build-system-Don-t-try-executing-directories-in-.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-gnu-build-system-Don-t-try-executing-directories-in-.pa"; filename*1="tch" >From 3a602cccbd8711f40f6b981e5616289a5fdd0b56 Mon Sep 17 00:00:00 2001 From: Brendan Tildesley Date: Tue, 8 Oct 2019 02:55:03 +1100 Subject: [PATCH] gnu-build-system: 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. --- guix/build/gnu-build-system.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index e5f3197b0a..6b4e74721b 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -177,12 +177,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 -- 2.23.0 --------------E2A22CF87F90B47E9E3CD128--