Subject: Re: bug#77220: [shepherd]: Timers do not set HOME environment variable correctly

From: Ludovic Courtès <[email-masked]>
Date: Wed, 26 Mar 2025 12:33:16 +0100

Hi Tomas,

Tomas Volf <[email-masked]> skribis:

> Given a timer executed under some user (via #:user "git" #:group "git"
> keyword arguments), the HOME variable is set to /.  Is that correct?  I
> get that it might be desirable for a root user, but for regular users
> that is surprising and causes (for example gitolite from the package of
> the same name) to not function:
>
>   2025-03-23 21:09:06 FATAL: errors found but logfile could not be created
>   2025-03-23 21:09:06 FATAL: //.gitolite/logs/gitolite-2025-03.log: No such file or directory
>   2025-03-23 21:09:06 FATAL: die	chdir //.gitolite failed: No such file or directory<<newline>>
>
> 1. Is this intentional?
> 2. If yes, is this something you would be opened to changing?

Timers do not set ‘HOME’ (or any other environment variable) at all.
That is, they take what’s given in (command … #:environment-variables …)
and don’t touch it.

It’s intentional, but the downside is that it can lead to more verbose
timer definitions, where would have to explicitly do:

  (command … #:environment-variables
             (cons "HOME=/whatever" (default-environment-variables)))

or similar.

How does that sound?

Ludo’.