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

To reply to this bug, email your comments to 75130 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to andrew <at> trop.in, janneke <at> gnu.org, ludo <at> gnu.org, tanguy <at> bioneland.org, guix-patches <at> gnu.org:
bug#75130; Package guix-patches. (Thu, 26 Dec 2024 23:28:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Antero Mejr <mail <at> antr.me>:
New bug report received and forwarded. Copy sent to andrew <at> trop.in, janneke <at> gnu.org, ludo <at> gnu.org, tanguy <at> bioneland.org, guix-patches <at> gnu.org. (Thu, 26 Dec 2024 23:28:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Antero Mejr <mail <at> antr.me>
To: guix-patches <at> gnu.org
Subject: [PATCH] home: Load system profile in setup-environment.
Date: Thu, 26 Dec 2024 18:27:30 -0500
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
+
 case $XDG_DATA_DIRS in
   *$HOME_ENVIRONMENT/profile/share*) ;;
   *) export XDG_DATA_DIRS=$HOME_ENVIRONMENT/profile/share:$XDG_DATA_DIRS ;;

base-commit: e4bdd464ebb49f4e698e5105f70b29688fff9475
-- 
2.47.1





Information forwarded to guix-patches <at> gnu.org:
bug#75130; Package guix-patches. (Fri, 27 Dec 2024 10:09:01 GMT) Full text and rfc822 format available.

Message #8 received at 75130 <at> debbugs.gnu.org (full text, mbox):

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: Re: [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.