From patchwork Fri Apr 4 03:23:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Hilton Chain X-Patchwork-Id: 41258 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 1330027BBEA; Fri, 4 Apr 2025 04:24:49 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,FROM_SUSPICIOUS_NTLD,MAILING_LIST_MULTI, PDS_OTHER_BAD_TLD,RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 62F3127BBE2 for ; Fri, 4 Apr 2025 04:24:48 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u0XfC-0006wp-3T; Thu, 03 Apr 2025 23:24:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u0Xf6-0006vg-PL for guix-patches@gnu.org; Thu, 03 Apr 2025 23:24:11 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u0Xf6-0002mG-Ag for guix-patches@gnu.org; Thu, 03 Apr 2025 23:24:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=2Klkhi6hIObdEXUoc1WrSi6YuLCRK/lw5odfrGdGnLQ=; b=kjC3LWzasp7zjWM3cmY/3nVMvmOBY9l2NZfb3KA/NSr8VbaujWGrR2XFbqtFm0rx+slI1b4IWafFYXiJWqNH2IdOCmH9adLCvNDGek6vubA7TlzjQqg+7JU2FeXhYsQ0o3PcTmqHbUiDi7ccXLm/S6b16EACwDJ+WTmE+4hE1IACg1TTYWFYzP3cvoNATFYTrmN14AcumQKarRIvo5tSCNQZdwq9kY0ULDVeYwCXl2EGbTBb9jSUdYBL6JLZZsiOeI2X4WiFLkEhJNwLYroom320F2Ek9IN9qD7N0A7a+tBUzx3fT2S9Z1ryrqTX3PJ2qxbOXFjYDG9AdyV7d9g/2w==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1u0Xf6-0002dN-3s for guix-patches@gnu.org; Thu, 03 Apr 2025 23:24:08 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#77527] [PATCH v4 5/6] guix-install.sh: Group profile sourcing. Resent-From: Hilton Chain Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 04 Apr 2025 03:24:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 77527 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 77527@debbugs.gnu.org Cc: Hilton Chain X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.174373703710016 (code B ref -1); Fri, 04 Apr 2025 03:24:07 +0000 Received: (at submit) by debbugs.gnu.org; 4 Apr 2025 03:23:57 +0000 Received: from localhost ([127.0.0.1]:36548 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0Xev-0002bP-9Z for submit@debbugs.gnu.org; Thu, 03 Apr 2025 23:23:57 -0400 Received: from lists.gnu.org ([2001:470:142::17]:32952) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u0Xes-0002aK-15 for submit@debbugs.gnu.org; Thu, 03 Apr 2025 23:23:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u0Xem-0006tY-NZ for guix-patches@gnu.org; Thu, 03 Apr 2025 23:23:48 -0400 Received: from mx.boiledscript.com ([88.99.243.112]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u0Xel-0002is-0o for guix-patches@gnu.org; Thu, 03 Apr 2025 23:23:48 -0400 From: Hilton Chain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ultrarare.space; s=mail; t=1743737025; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2Klkhi6hIObdEXUoc1WrSi6YuLCRK/lw5odfrGdGnLQ=; b=iJeElmZWjhtwr0uefZ0SmUGJ5X7lpagswx4NJ0VJPGHbXmsPrJ/Fx9Q5G4aoRjK/Hi+JG4 RjOF1yewbHXGCRTPcaLe0/kwcLVSIrzJMpH5aCDB+I23dyqRpy4xZIEJ30CcQuHaAS2/Lx LZO6eAsq2TgVc8AoRGMZ1DM9KwNYcW9gdJSEuT0sQ0VqzPG6v4UlhxBq6atXMwQsh39y2H 9B78nh3h+wdS2/gvSaAXKhwWmQYZu+P8u8j3+F01kcOALU751SLTVH7sbPaVYiGBdb6Phi TeNJxIweAPXpF4WCYJiIx0CUlEs+NbHcOwfVpxxTSq+da8CbxTF7YYcNrzpCdg== Date: Fri, 4 Apr 2025 11:23:02 +0800 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-MS-Reactions: disallow Received-SPF: pass client-ip=88.99.243.112; envelope-from=hako@ultrarare.space; helo=mx.boiledscript.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * etc/guix-install.sh (sys_create_init_profile): Group sourcing of all default profiles. Change-Id: Ia443b78a5ba656b7d03e1abbba53c4bf1240e338 --- etc/guix-install.sh | 69 +++++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 31 deletions(-) diff --git a/etc/guix-install.sh b/etc/guix-install.sh index b5d833cd64..f0d37bc384 100755 --- a/etc/guix-install.sh +++ b/etc/guix-install.sh @@ -749,47 +749,54 @@ export XDG_CONFIG_DIRS="${XDG_CONFIG_DIRS:-/etc/xdg}" export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" # no default for XDG_RUNTIME_DIR (depends on foreign distro for semantics) -# `guix pull` profile -GUIX_PROFILE="$HOME/.config/guix/current" -export PATH="$GUIX_PROFILE/bin${PATH:+:}$PATH" -# Add to INFOPATH and MANPATH so the latest Guix documentation is available to -# info and man readers. When INFOPATH is unset, add a trailing colon so Emacs -# searches 'Info-default-directory-list'. When MANPATH is unset, add a -# trailing colon so the system default search path is used. -export INFOPATH="$GUIX_PROFILE/share/info:$INFOPATH" -export MANPATH="$GUIX_PROFILE/share/man:$MANPATH" -# Expose the latest Guix modules to Guile so guix shell and repls spawned by -# e.g. Geiser work out of the box. -export GUILE_LOAD_PATH="$GUIX_PROFILE/share/guile/site/3.0${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH" -export GUILE_LOAD_COMPILED_PATH="$GUIX_PROFILE/lib/guile/3.0/site-ccache${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH" - -# User's default profile, if it exists -GUIX_PROFILE="$HOME/.guix-profile" -if [ -L "$GUIX_PROFILE" ]; then - . "$GUIX_PROFILE/etc/profile" - - # see info '(guix) Application Setup' - export GUIX_LOCPATH="$GUIX_PROFILE/lib/locale${GUIX_LOCPATH:+:}$GUIX_LOCPATH" - - # Documentation search paths may be handled by $GUIX_PROFILE/etc/profile if - # the user installs info and man readers via Guix. If the user doesn’t, - # explicitly add to them so documentation for software from ‘guix install’ - # is available to the system info and man readers. +# Set up environment for all default profiles. +for GUIX_PROFILE in "$HOME/.guix-home/profile" \ + "$HOME/.guix-profile" \ + "$HOME/.config/guix/current" +do + if [ -f "$GUIX_PROFILE/etc/profile" ]; then + . "$GUIX_PROFILE/etc/profile" + if [ ! \"$GUIX_PROFILE\" = \"$HOME/.config/guix/current\" ]; then + # See info '(guix) Application Setup'. + case $GUIX_LOCPATH in + *GUIX_PROFILE/lib/locale*) ;; + *) export GUIX_LOCPATH="$GUIX_PROFILE/lib/locale${GUIX_LOCPATH:+:}$GUIX_LOCPATH" ;; + esac + fi + fi + if [ \"$GUIX_PROFILE\" = \"$HOME/.config/guix/current\" ]; then + # Expose the latest Guix modules to Guile so guix shell and repls spawned by + # e.g. Geiser work out of the box. + case $GUILE_LOAD_PATH in + *$GUIX_PROFILE/share/guile/site/3.0*) ;; + *) export GUILE_LOAD_PATH=\"$GUIX_PROFILE/share/guile/site/3.0${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH\" ;; + esac + case $GUILE_LOAD_COMPILED_PATH in + *$GUIX_PROFILE/lib/guile/3.0/site-ccache*) ;; + *) export GUILE_LOAD_COMPILED_PATH=\"$GUIX_PROFILE/lib/guile/3.0/site-ccache${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH\" ;; + esac + fi + # Make basic things just work when the user installs their first package. + case $PATH in + *$GUIX_PROFILE/bin*) ;; + *) export PATH="$GUIX_PROFILE/bin${PATH:+:}$PATH" ;; + esac + # Add to INFOPATH and MANPATH so the latest Guix documentation is available to + # info and man readers. When INFOPATH is unset, add a trailing colon so Emacs + # searches 'Info-default-directory-list'. When MANPATH is unset, add a + # trailing colon so the system default search path is used. case $INFOPATH in *$GUIX_PROFILE/share/info*) ;; *) export INFOPATH="$GUIX_PROFILE/share/info:$INFOPATH" ;; esac case $MANPATH in *$GUIX_PROFILE/share/man*) ;; - *) export MANPATH="$GUIX_PROFILE/share/man:$MANPATH" + *) export MANPATH="$GUIX_PROFILE/share/man:$MANPATH" ;; esac -fi +done # NOTE: Guix Home handles its own profile initialization in ~/.profile. See # info '(guix) Configuring the Shell'. - -# Clean up after ourselves. -unset GUIX_PROFILE EOF }