Ludovic Courtès <l...@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.