all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* What else could set the GUIX_PROFILE variable?
@ 2024-06-22  6:33 Adam McCartney via
  2024-06-22  7:50 ` Nils Landt
  0 siblings, 1 reply; 3+ messages in thread
From: Adam McCartney via @ 2024-06-22  6:33 UTC (permalink / raw)
  To: help-guix

Hi Guix,

Does something set the GUIX_PROFILE variable to $HOME/.guix-home/profile by 
deafault?

So I've been scratching my head about this today. It may be obvious to someone
else what is happening. I'm running guix ad a foreign distro on a number of 
machines, others are guix system on one. Some use a profile that exists in 
'~/.guix-home/profile' others rely on '.guix-extra-profiles/$(hostname)/$(hostname)'. 

I can observe the following behaviour on a "foreign distro" that uses a profile
defined by the hostname of the system.

I define a small function in my bashrc that checks to see what one is active.
```
# .bashrc

function guix_activate_profile() {
     # Check for a "host" profile
     # Set it if it exists
     if [ -d "$HOME/.guix-extra-profiles/$(hostname)/$(hostname)" ]; then
         export GUIX_PROFILE="$HOME/.guix-extra-profiles/$(hostname)/$(hostname)"
         . "$GUIX_PROFILE/etc/profile"
     elif [ -d "$HOME/.guix-home/profile" ]; then
         echo "default to ~/.guix-home/profile"
         export GUIX_PROFILE="$HOME/.guix-home/profile"
         . "$GUIX_PROFILE/etc/profile"
     fi
}


if [ -z ${GUIX_PROFILE} ]; then # none active
     guix_activate_profile  # try to activate host profile
fi
```

After I login and start a terminal emulator, everything appears to be
hunky dory:

```
amccartn@mc ~
> echo $GUIX_PROFILE
/home/amccartn/.guix-extra-profiles/mc/mc
```

As soon as I start a tmux session, something mysteriously sets the GUIX_PROFILE 
to $HOME/.guix-home/profile. And the original control loop in my bashrc doesn't run.

```
> echo $GUIX_PROFILE
/home/amccartn/.guix-home/profile
amccartn@mc ~
> guix package --list-profiles
/home/amccartn/.guix-extra-profiles/mc/mc
/home/amccartn/.config/guix/current
/home/amccartn/.guix-profile
```

Note that the guix home profile doesn't exist on the machine!
```
amccartn@mc ~
> ls -l $HOME/.guix-home/profile
ls: cannot access '/home/amccartn/.guix-home/profile': No such file or directory
```

I realize that the problem goes away if I remove the control block. So maybe 
it's just a logic error on my part. I'd still like to know what is setting the 
GUIX_PROFILE to $HOME/.guix-home/profile when I launch tmux.


Thanks!
Adam

-- 
  Adam McCartney - https://admccartney.mur.at 
/


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: What else could set the GUIX_PROFILE variable?
  2024-06-22  6:33 What else could set the GUIX_PROFILE variable? Adam McCartney via
@ 2024-06-22  7:50 ` Nils Landt
  2024-06-22  9:24   ` Adam McCartney via
  0 siblings, 1 reply; 3+ messages in thread
From: Nils Landt @ 2024-06-22  7:50 UTC (permalink / raw)
  To: Adam McCartney, Adam McCartney via


> Adam McCartney via <help-guix@gnu.org> hat am 22.06.2024 08:33 CEST geschrieben:
> 
>  
> Hi Guix,
> 
> Does something set the GUIX_PROFILE variable to $HOME/.guix-home/profile by 
> deafault?
> 
> So I've been scratching my head about this today. It may be obvious to someone
> else what is happening. I'm running guix ad a foreign distro on a number of 
> machines, others are guix system on one. Some use a profile that exists in 
> '~/.guix-home/profile' others rely on '.guix-extra-profiles/$(hostname)/$(hostname)'. 
>
> I realize that the problem goes away if I remove the control block. So maybe 
> it's just a logic error on my part. I'd still like to know what is setting the 
> GUIX_PROFILE to $HOME/.guix-home/profile when I launch tmux.

The installer adds /etc/profile.d/zzz-guix.sh which, among other things, sets GUIX_PROFILE.

But I don't know why this happens with tmux and not your regular shell session.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: What else could set the GUIX_PROFILE variable?
  2024-06-22  7:50 ` Nils Landt
@ 2024-06-22  9:24   ` Adam McCartney via
  0 siblings, 0 replies; 3+ messages in thread
From: Adam McCartney via @ 2024-06-22  9:24 UTC (permalink / raw)
  To: Nils Landt; +Cc: Adam McCartney via

On 2024-06-22, Nils Landt wrote:
>
>> I realize that the problem goes away if I remove the control block. So maybe
>> it's just a logic error on my part. I'd still like to know what is setting the
>> GUIX_PROFILE to $HOME/.guix-home/profile when I launch tmux.
>
>The installer adds /etc/profile.d/zzz-guix.sh which, among other things, sets GUIX_PROFILE.
>
>But I don't know why this happens with tmux and not your regular shell session.

So I guess it might be due to the fact that tmux starts a login shell, so all 
the profile files are sourced, where as the gnome terminal starts with an 
interactive session? Possibly mixing up the terms a bit there.

Adding the following to the tmux rc file fixes it:

```
# ~/.tmux.conf 

# Don't run a login shell!
set -g default-command "${SHELL}"
```

cheers,
Adam

-- 
  Adam McCartney - https://admccartney.mur.at 
/


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-06-22  9:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-22  6:33 What else could set the GUIX_PROFILE variable? Adam McCartney via
2024-06-22  7:50 ` Nils Landt
2024-06-22  9:24   ` Adam McCartney via

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.