Subject: [bug#77526] [PATCH v4 3/6] system: /etc/profile: Set up extra environment variables for Guix Home.

From: 宋文武 <[email-masked]>
Date: Sat, 19 Apr 2025 10:37:14 +0800

Hilton Chain <[email-masked]> writes:

> * gnu/system.scm (operating-system-etc-service)[profile]: Set up extra
> environment variables for Guix Home.
> * gnu/home/services/shells.scm (add-shell-profile-file): Skip
> setup-environment if already finished.
> * gnu/home/services.scm (environment-variables->setup-environment-script):
> Skip initializing home profile if already finished.
>
> Change-Id: Ife4100c6b19f61272525eebc82931c81784fe9e0
> ---
>  gnu/home/services.scm        | 6 +++++-
>  gnu/home/services/shells.scm | 6 +++++-
>  gnu/system.scm               | 5 +++++
>  3 files changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/home/services.scm b/gnu/home/services.scm
> index 85a43f80ca..6be1a49a90 100644
> --- a/gnu/home/services.scm
> +++ b/gnu/home/services.scm
> @@ -279,7 +279,11 @@ (define (environment-variables->setup-environment-script vars)
>  # ~/.profile does)
>  GUIX_PROFILE=\"$HOME_ENVIRONMENT/profile\"
>  PROFILE_FILE=\"$GUIX_PROFILE/etc/profile\"
> -[ -f $PROFILE_FILE ] && . $PROFILE_FILE
> +# Skip if already initialized.
> +case $INFOPATH in
> +  *$GUIX_PROFILE/share/info*) ;;
> +  *) [ -f \"$PROFILE_FILE\" ] && . \"$PROFILE_FILE\" ;;
> +esac

I don't think INFOPATH is a perfect flag, but I have no better idea
here..

So look good to me.