Hello Carlo,
thank you for tackling this issue, imo it's a super useful feature to be able to change (shepherd) services after they are made. > As fuel for thought, we have https://issues.guix.gnu.org/27155 from 2017 > which creates a finalization mechanism for any service type, but it > built on the idea of explicit extension points which would limit what a > finalizer can do to whatever a service writer has made available. Could you clarify this point? Maybe I misunderstood the patch, but the way I see it is that it takes the service-value (configuration) and modifies it in any way. If that's so, it seems to me it's even more general than your idea and that is't possible to build the finalization options for shepherd as a layer above it (procedures that will make modifications easier for the end user that could be part of the Guix channel). To make sure we are on the same page, the way I see it - with the patch 27155 it should be possible to finalize root shepherd service type and go over all the services available. Not that the service that added the shepherd service would be finalized. If one was trying to do it like that, then yes, it would be fairly easy to hit the problem you're suggesting - service writer has (not) made something available. Regards, Rutherther