GNU bug report logs - #54354
[BUG] guix home: on foreign distro, ~/.bash_profile is not initialized

Previous Next

Package: guix;

Reported by: florhizome <florhizome <at> posteo.net>

Date: Sat, 12 Mar 2022 16:07:01 UTC

Severity: normal

To reply to this bug, email your comments to 54354 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 bug-guix <at> gnu.org:
bug#54354; Package guix. (Sat, 12 Mar 2022 16:07:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to florhizome <florhizome <at> posteo.net>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sat, 12 Mar 2022 16:07:02 GMT) Full text and rfc822 format available.

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

From: florhizome <florhizome <at> posteo.net>
To: bug-guix <at> gnu.org 
Subject: [BUG] guix home: on foreign distro, ~/.bash_profile is not initialized
Date: Sat, 12 Mar 2022 13:07:29 +0000
[Message part 1 (text/plain, inline)]
Hi guix' !
I have been trying to use guix home on my foreign distro partition
(manjaro); especially in order to set up additional profiles from
there, but my .bash_profile generated by guix doesn't seem to be
evaluated at all.

To describe the actual issue finally: None of the things that should happen through .bash_profile seem to
happen at the moment (it's just about different environment variables that
will not be set up.), but after running bash --login in my
terminal-emulator everything is as anticipated so my guess is that
.bash_profile actually isn't evaluated at all after login. I'm happy to hear
other suggestions and especially solutions.

I will attach the file that I use
for home configuration, as well as the current resulting .bashrc,
.bash_profile and .profile files.
I'm aware that there is duplicated code by the generated aliases in
.bashrc and that the prompt customization  for guix profiles added by
the "guix-defaults?" field does not work due to other related code that comes afterwards but I'm not sure it's related to that main issue.
I did the original set up using "guix home import" which seems to have
improved since I tried last in december last year when the generated
file didn't work at all.
Manjaro has a lot of stuff in it's .bashrc that i didn't want to
override, and maybe there are more cases of duplication there that I
don't know about what harm they might introduce.

Greetings, Florian

[home-configuration.scm (text/plain, attachment)]
[.profile (text/plain, attachment)]
[.bashrc (text/plain, attachment)]
[.bash_profile (text/plain, attachment)]

Information forwarded to bug-guix <at> gnu.org:
bug#54354; Package guix. (Sat, 12 Mar 2022 18:30:02 GMT) Full text and rfc822 format available.

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

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: florhizome <florhizome <at> posteo.net>, 54354 <at> debbugs.gnu.org
Subject: Re: [BUG] guix home: on foreign distro, ~/.bash_profile is not
 initialized
Date: Sat, 12 Mar 2022 19:29:10 +0100
Hi Florian

Am Samstag, dem 12.03.2022 um 13:07 +0000 schrieb florhizome:
> 
> Hi guix' !
> I have been trying to use guix home on my foreign distro partition
> (manjaro); especially in order to set up additional profiles from
> there, but my .bash_profile generated by guix doesn't seem to be
> evaluated at all.
> 
> To describe the actual issue finally: None of the things that should
> happen through .bash_profile seem to happen at the moment (it's just
> about different environment variables that will not be set up.), but
> after running bash --login in my terminal-emulator everything is as
> anticipated so my guess is that .bash_profile actually isn't evaluated
> at all after login.  I'm happy to hear other suggestions and especially
> solutions.
This looks vaguely like a problem others (myself included) have
experienced/are experiencing on Ubuntu.  See [1] among others.

Given that bash is not used for login, your environment-variables block
has not effect.  Now if you were to define that inside a variable, you
could also write up a service that generates systemd unit overrides and
add those definitions to it.  I'm not sure how well-received such a
service would be upstream given that we don't use systemd in Guix, but
it's a point to start.

Cheers

[1] https://issues.guix.gnu.org/48300#7




Information forwarded to bug-guix <at> gnu.org:
bug#54354; Package guix. (Sun, 20 Mar 2022 15:10:02 GMT) Full text and rfc822 format available.

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

From: florhizome <florhizome <at> posteo.net>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>, 54354 <at> debbugs.gnu.org
Subject: Re: [BUG] guix home: on foreign distro, ~/.bash_profile is not
 initialized
Date: Sun, 20 Mar 2022 14:09:22 +0000
Hi Liliana,

Hm, well it doesn't seem like the exact same issue, but that thread is
helpful. Could systemd/logind be made to use bash for login? For now I thought maybe I can just write shepherd services to do
that stuff for me, to stay in guix homes framework. But shepherd seems
to have a problem starting up:

/gnu/store/y85vzni5yc6lcb7qqhmlkifis9nzmm5l-shepherd.conf wird geladen.
herd: Ausnahmefehler während der Ausführung von »load« mit dem Dienst »root«:
In procedure fport_write: Eingabe-/Ausgabefehler

If you don't speak german, that roughly translates to:

loading /gnu/store/...-shepherd.conf
herd: exception error during the execution of <<load>> with the service
<<root>>:
In procedure fport_write: i/o error

I got the same error when reconfiguring with two differing simple
service configurations (just start a program from a package) passed to shepherd.
In anyway I think it would be good to add to guix home's documentation that some features might not work
due to the login system of a foreign distro if we are sure of that?

cheers


Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes:

> Hi Florian
>
> Am Samstag, dem 12.03.2022 um 13:07 +0000 schrieb florhizome:
>> 
>> Hi guix' !
>> I have been trying to use guix home on my foreign distro partition
>> (manjaro); especially in order to set up additional profiles from
>> there, but my .bash_profile generated by guix doesn't seem to be
>> evaluated at all.
>> 
>> To describe the actual issue finally: None of the things that should
>> happen through .bash_profile seem to happen at the moment (it's just
>> about different environment variables that will not be set up.), but
>> after running bash --login in my terminal-emulator everything is as
>> anticipated so my guess is that .bash_profile actually isn't evaluated
>> at all after login.  I'm happy to hear other suggestions and especially
>> solutions.
> This looks vaguely like a problem others (myself included) have
> experienced/are experiencing on Ubuntu.  See [1] among others.
>
> Given that bash is not used for login, your environment-variables block
> has not effect.  Now if you were to define that inside a variable, you
> could also write up a service that generates systemd unit overrides and
> add those definitions to it.  I'm not sure how well-received such a
> service would be upstream given that we don't use systemd in Guix, but
> it's a point to start.
>
> Cheers
>
> [1] https://issues.guix.gnu.org/48300#7




Information forwarded to bug-guix <at> gnu.org:
bug#54354; Package guix. (Tue, 18 Oct 2022 08:48:02 GMT) Full text and rfc822 format available.

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

From: Andrew Tropin <andrew <at> trop.in>
To: florhizome <florhizome <at> posteo.net>, Liliana Marie Prikler
 <liliana.prikler <at> gmail.com>, 54354 <at> debbugs.gnu.org
Subject: Re: bug#54354: [BUG] guix home: on foreign distro, ~/.bash_profile
 is not initialized
Date: Tue, 18 Oct 2022 12:47:45 +0400
[Message part 1 (text/plain, inline)]
On 2022-03-20 14:09, florhizome wrote:

> Hi Liliana,
>
> Hm, well it doesn't seem like the exact same issue, but that thread is
> helpful. Could systemd/logind be made to use bash for login?

Login shell is usually controlled by /etc/passwd, so it shouldn't
inerfer with systemd, elogind.

> For now I thought maybe I can just write shepherd services to do
> that stuff for me, to stay in guix homes framework. But shepherd seems
> to have a problem starting up:
>
> /gnu/store/y85vzni5yc6lcb7qqhmlkifis9nzmm5l-shepherd.conf wird geladen.
> herd: Ausnahmefehler während der Ausführung von »load« mit dem Dienst »root«:
> In procedure fport_write: Eingabe-/Ausgabefehler
>
> If you don't speak german, that roughly translates to:
>
> loading /gnu/store/...-shepherd.conf
> herd: exception error during the execution of <<load>> with the service
> <<root>>:
> In procedure fport_write: i/o error
>
> I got the same error when reconfiguring with two differing simple
> service configurations (just start a program from a package) passed to shepherd.
> In anyway I think it would be good to add to guix home's documentation that some features might not work
> due to the login system of a foreign distro if we are sure of that?
>

There were a few fixes related to shepherd service, which probably fixes
it.  Can you confirm this?  Or issue is still valid?

Is the whole issue 54354 still valid?

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

This bug report was last modified 2 years and 44 days ago.

Previous Next


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