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

From: Tomas Volf <[email-masked]>
Date: Sun, 23 Mar 2025 22:29:48 +0100

Hi,

I am in a process of porting my crontabs over to shepherd timers and
noticed a difference.

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:

--8<---------------cut here---------------start------------->8---
  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>>
--8<---------------cut here---------------end--------------->8---

1. Is this intentional?
2. If yes, is this something you would be opened to changing?

Or at least, if this is intentional, would it not be better to not set
HOME at all instead of to a wrong value?

For the time being, I will just do `HOME=~git' as a first line of all
the scripts, but it is not great having to do that everywhere.

Tomas

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.