Subject: Re: bug#76368: Cannot reboot when virtlogd and containerd is running?

From: Dariqq <[email-masked]>
Date: Mon, 24 Feb 2025 10:59:43 +0000

Hi Ludo,

Thank you for the patch.

On 23.02.25 22:51, Ludovic Courtès wrote:
> Hi Maxim,
> 
> Maxim Cournoyer <[email-masked]> skribis:
> 
>> I was wondering if this shouldn't be part of an implicit default %shepherd-default-requires that
>> could be overridden if needed... but I think even in systemd land you
>> must explicitly specify wanted using e.g. 'WantedBy=multi-user.target'
>> in your systemd unit definition, so I guess it's fine that it must be
>> explicitly specified.
> 
> I almost changed the default value of ‘requirement’ to '(user-processes)
> in <shepherd-service>, but then I thought this would need more testing
> and discussion: surely there are places in Guix and in code/config out
> there that relies on the current default value.
> 

I don't think this would have been a good change:

- It breaks services that correctly don't depend on user-processes, i.e. 
filesystem mounts
- It breaks every home-services that (correctly) depends on nothing but 
the home-shepherd .
- It creates a (non obvious) discrepancy between the shepherd service 
API and the Guix layer on top

Imo ideally all services would expose their shepherd requirements (and 
service-autostart, extra daemon args, daemon-environment, extra actions, 
...) in the configuration records which would allows users to workaround 
such a problem themselves.

The current system depends on whether the author of the service added 
it, feels a bit arbitrary and is not flexible if a setting one would 
like to adjust is not configurable.

(i am guilty of this as well for the service i contributed to guix)

But this for a discussion at another time.

> Thanks for your feedback,
> Ludo’.