GNU bug report logs -
#77220
[shepherd]: Timers do not set HOME environment variable correctly
Previous Next
Reported by: Tomas Volf <~@wolfsden.cz>
Date: Sun, 23 Mar 2025 21:31:01 UTC
Severity: normal
Done: Tomas Volf <~@wolfsden.cz>
Bug is archived. No further changes may be made.
Full log
Message #13 received at 77220-done <at> debbugs.gnu.org (full text, mbox):
Ludovic Courtès <ludo <at> gnu.org> writes:
> Hi Tomas,
>
> Tomas Volf <~@wolfsden.cz> 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?
It sounds... verbose. :) In practice it cannot be
--8<---------------cut here---------------start------------->8---
(command … #:environment-variables
(cons "HOME=/whatever" (default-environment-variables)))
--8<---------------cut here---------------end--------------->8---
but something like
--8<---------------cut here---------------start------------->8---
(command … #:environment-variables
(cons (string-append "HOME="
(passwd:dir (getpwnam "whatever")))
(default-environment-variables)))
--8<---------------cut here---------------end--------------->8---
I do however see your point, I simply need to get the timer == cron
approximation out of my head. I am viewing it too much through "this is
cron" lenses. I just add this (setting the home) into my wrapper.
I am closing this bug, since there is nothing to do here.
Thanks for the explanation,
Tomas
--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
This bug report was last modified 93 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.