GNU bug report logs - #75130
[PATCH] home: Load system profile in setup-environment.

Previous Next

Package: guix-patches;

Reported by: Antero Mejr <mail <at> antr.me>

Date: Thu, 26 Dec 2024 23:28:02 UTC

Severity: normal

Tags: patch

Full log


View this message in rfc822 format

From: Andrew Tropin <andrew <at> trop.in>
To: Antero Mejr <mail <at> antr.me>, 75130 <at> debbugs.gnu.org
Cc: ludo <at> gnu.org, tanguy <at> bioneland.org, janneke <at> gnu.org
Subject: [bug#75130] [PATCH] home: Load system profile in setup-environment.
Date: Fri, 27 Dec 2024 14:08:04 +0400
[Message part 1 (text/plain, inline)]
On 2024-12-26 18:27, Antero Mejr wrote:

> This ensures packages installed with `guix install` are available on
> $PATH when using Guix home with a foreign distro.
>
> * gnu/home/services.scm (environment-variables->setup-environment-script):
> Load system profile while loading home profile in setup-environment.
>
> Change-Id: I96b047b92f3c050b15e521fecc96740390cae2ca
> ---
>  gnu/home/services.scm | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/home/services.scm b/gnu/home/services.scm
> index 39c9033ad6..1cf5ce0835 100644
> --- a/gnu/home/services.scm
> +++ b/gnu/home/services.scm
> @@ -268,8 +268,6 @@ (define (environment-variables->setup-environment-script vars)
>     %store-monad
>     (return
>      `(("setup-environment"
> -       ;; TODO: It's necessary to source ~/.guix-profile too
> -       ;; on foreign distros
>         ,(computed-file "setup-environment"
>                         #~(call-with-output-file #$output
>                             (lambda (port)
> @@ -280,6 +278,10 @@ (define (environment-variables->setup-environment-script vars)
>  PROFILE_FILE=\"$HOME_ENVIRONMENT/profile/etc/profile\"
>  [ -f $PROFILE_FILE ] && . $PROFILE_FILE
>  
> +SYSTEM_ENVIRONMENT=$HOME/.guix-profile
> +SYSTEM_PROFILE_FILE=\"$SYSTEM_ENVIRONMENT/etc/profile\"
> +[ -f $SYSTEM_PROFILE_FILE ] && . $SYSTEM_PROFILE_FILE
> +

IIRC, it called user profile.

/etc/profile on Guix System already contains this:
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/system.scm?h=092467b3b6#n1085
Unconditionally sourcing it two times is not the best idea (while it
probably will work most of the time, still feels wrong and probably can
cause unexpected issues).

There is a reason why GUIX_PROFILE is set before sourcing profile file.
Its value used to set PATH and similiar variables to
~/path/to/profile/bin instead of /gnu/blabla-profile/bin, so in case of
changing of ~/path/to/profile content/symlink all respective variables
don't require updates.

>  case $XDG_DATA_DIRS in
>    *$HOME_ENVIRONMENT/profile/share*) ;;
>    *) export XDG_DATA_DIRS=$HOME_ENVIRONMENT/profile/share:$XDG_DATA_DIRS ;;
>
> base-commit: e4bdd464ebb49f4e698e5105f70b29688fff9475

-- 
Best regards,
Andrew Tropin
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 175 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.