Subject: Re: [BUG] guix home: on foreign distro, ~/.bash_profile is not initialized

From: florhizome <[email-masked]>
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 <[email-masked]> 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