From patchwork Tue May 4 13:39:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 29116 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 4BA9227BC82; Tue, 4 May 2021 14:46:40 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id EBF0327BC81 for ; Tue, 4 May 2021 14:46:39 +0100 (BST) Received: from localhost ([::1]:45424 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldvNn-0005SV-3k for patchwork@mira.cbaines.net; Tue, 04 May 2021 09:46:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46232) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldvIM-0003FM-3U for guix-patches@gnu.org; Tue, 04 May 2021 09:41:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:41748) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ldvIL-0006T3-TW for guix-patches@gnu.org; Tue, 04 May 2021 09:41:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ldvIL-0007t7-RR for guix-patches@gnu.org; Tue, 04 May 2021 09:41:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#48224] [PATCH 1/2] gnu: guix: Avoid Bash wrapper. References: <20210504132542.10540-1-ludo@gnu.org> In-Reply-To: <20210504132542.10540-1-ludo@gnu.org> Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 04 May 2021 13:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48224 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 48224@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= Received: via spool by 48224-submit@debbugs.gnu.org id=B48224.162013561730296 (code B ref 48224); Tue, 04 May 2021 13:41:01 +0000 Received: (at 48224) by debbugs.gnu.org; 4 May 2021 13:40:17 +0000 Received: from localhost ([127.0.0.1]:53289 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ldvHc-0007sa-WB for submit@debbugs.gnu.org; Tue, 04 May 2021 09:40:17 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37664) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ldvHa-0007sI-MA for 48224@debbugs.gnu.org; Tue, 04 May 2021 09:40:15 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51834) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldvHV-0005ph-F0; Tue, 04 May 2021 09:40:09 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=59102 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ldvHU-0006JJ-Cg; Tue, 04 May 2021 09:40:09 -0400 From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Tue, 4 May 2021 15:39:57 +0200 Message-Id: <20210504133958.11011-1-ludo@gnu.org> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches The Bash wrapper created by 'wrap-program' creates an extra indirection and may annoyingly emit locale warnings: /gnu/store/…-bash-minimal-5.0.16/bin/bash: warning: setlocale: LC_ALL: cannot change locale (wtf) This warning would typically show up when running Guix, as produced by 'guix pack guix', on a foreign distro, annihilating efforts made in 1d4ab335b22a93e01c2eb1eb3e93fc6534157040 and 8a973abc6f7eebfcd8a904bfbb99cb9f86f66ef0. * gnu/packages/package-management.scm (guix)[arguments]: In 'wrap-program' phase, remove 'string-join' call for PATH and GOPATH. Replace 'wrap-program' call with a 'substitute*' form. Remove (when target ...) form. [inputs]: Remove "bash-minimal" added in commit 38b9af7c92344a17b6680ebd2aeea14171f84a1c and no longer needed. --- gnu/packages/package-management.scm | 56 ++++++++++++++++------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 827166c938..1a637f9ec8 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -326,31 +326,38 @@ $(prefix)/etc/openrc\n"))) (open-pipe* OPEN_READ (string-append guile "/bin/guile") "-c" "(display (effective-version))"))) - (path (string-join - (map (cut string-append <> - "/share/guile/site/" - effective) - (delete #f deps*)) - ":")) - (gopath (string-join - (map (cut string-append <> - "/lib/guile/" effective - "/site-ccache") - (delete #f deps*)) - ":")) + (path (map (cut string-append <> + "/share/guile/site/" + effective) + (delete #f deps*))) + (gopath (map (cut string-append <> + "/lib/guile/" effective + "/site-ccache") + (delete #f deps*))) (locpath (string-append locales "/lib/locale"))) - (wrap-program (string-append out "/bin/guix") - `("GUILE_LOAD_PATH" ":" prefix (,path)) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath)) - `("GUIX_LOCPATH" ":" suffix (,locpath))) - - (when target - ;; XXX Touching wrap-program rebuilds world - (let ((bash (assoc-ref inputs "bash"))) - (substitute* (string-append out "/bin/guix") - (("^#!.*/bash") (string-append "#! " bash "/bin/bash"))))) - #t))) + ;; Modify 'guix' directly instead of using + ;; 'wrap-command'. This avoids the indirection + ;; through Bash, which in turn avoids getting Bash's + ;; own locale warnings. + (substitute* (string-append out "/bin/guix") + (("!#") + (string-append + "!#\n\n" + (object->string + `(set! %load-path (append ',path %load-path))) + "\n" + (object->string + `(set! %load-compiled-path + (append ',gopath %load-compiled-path))) + "\n" + (object->string + `(let ((path (getenv "GUIX_LOCPATH"))) + (setenv "GUIX_LOCPATH" + (if path + (string-append path ":" ,locpath) + ,locpath)))) + "\n\n")))))) ;; The 'guix' executable has 'OUT/libexec/guix/guile' as ;; its shebang; that should remain unchanged, thus remove @@ -405,8 +412,7 @@ $(prefix)/etc/openrc\n"))) `(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux"))) '()) ,@(if (%current-target-system) - `(("bash" ,bash-minimal) - ("xz" ,xz)) + `(("xz" ,xz)) '()) ;; Tests also rely on these bootstrap executables. From patchwork Tue May 4 13:39:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 29114 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id A3F0627BC82; Tue, 4 May 2021 14:41:11 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 7193C27BC81 for ; Tue, 4 May 2021 14:41:11 +0100 (BST) Received: from localhost ([::1]:40962 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldvIU-0003Ge-Lk for patchwork@mira.cbaines.net; Tue, 04 May 2021 09:41:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldvIM-0003FW-H3 for guix-patches@gnu.org; Tue, 04 May 2021 09:41:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:41749) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ldvIM-0006Tt-Aq for guix-patches@gnu.org; Tue, 04 May 2021 09:41:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ldvIM-0007tE-7a for guix-patches@gnu.org; Tue, 04 May 2021 09:41:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#48224] [PATCH 2/2] gnu: guix: Phases refer to #:system and #:target. Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 04 May 2021 13:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48224 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 48224@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= Received: via spool by 48224-submit@debbugs.gnu.org id=B48224.162013561830303 (code B ref 48224); Tue, 04 May 2021 13:41:02 +0000 Received: (at 48224) by debbugs.gnu.org; 4 May 2021 13:40:18 +0000 Received: from localhost ([127.0.0.1]:53291 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ldvHe-0007sh-Bc for submit@debbugs.gnu.org; Tue, 04 May 2021 09:40:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37674) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ldvHc-0007sL-E6 for 48224@debbugs.gnu.org; Tue, 04 May 2021 09:40:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51835) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldvHW-0005po-Ak; Tue, 04 May 2021 09:40:10 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=59102 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ldvHV-0006JJ-PF; Tue, 04 May 2021 09:40:10 -0400 From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Tue, 4 May 2021 15:39:58 +0200 Message-Id: <20210504133958.11011-2-ludo@gnu.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210504133958.11011-1-ludo@gnu.org> References: <20210504133958.11011-1-ludo@gnu.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/packages/package-management.scm (guix)[arguments]: In 'copy-bootstrap-guile' and 'wrap-program' phases, refer to #:system and #:target instead of unquoting (%current-system) and (%current-target-system). --- gnu/packages/package-management.scm | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 1a637f9ec8..5c6937adb8 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -261,11 +261,9 @@ $(prefix)/etc/openrc\n"))) (intern (assoc-ref inputs "boot-guile") #f) ;; On x86_64 some tests need the i686 Guile. - ,@(if (and (not (%current-target-system)) - (string=? (%current-system) - "x86_64-linux")) - '((intern (assoc-ref inputs "boot-guile/i686") #f)) - '()) + (when (and (not target) + (string=? system "x86_64-linux")) + (intern (assoc-ref inputs "boot-guile/i686") #f)) ;; Copy the bootstrap executables. (for-each (lambda (input) @@ -299,9 +297,9 @@ $(prefix)/etc/openrc\n"))) ;; Make sure the 'guix' command finds GnuTLS, ;; Guile-JSON, and Guile-Git automatically. (let* ((out (assoc-ref outputs "out")) - (guile ,@(if (%current-target-system) - '((assoc-ref native-inputs "guile")) - '((assoc-ref inputs "guile")))) + (guile (if target + (assoc-ref native-inputs "guile") + (assoc-ref inputs "guile"))) (avahi (assoc-ref inputs "guile-avahi")) (gcrypt (assoc-ref inputs "guile-gcrypt")) (guile-lib (assoc-ref inputs "guile-lib")) @@ -318,9 +316,7 @@ $(prefix)/etc/openrc\n"))) (locales (assoc-ref inputs "glibc-utf8-locales")) (deps (list gcrypt json sqlite gnutls git bs ssh zlib lzlib zstd guile-lib)) - (deps* ,@(if (%current-target-system) - '(deps) - '((cons avahi deps)))) + (deps* (if target deps (cons avahi deps))) (effective (read-line (open-pipe* OPEN_READ