Ludovic Courtès writes: > Hi! > > Andrew Tropin skribis: > >> These functions are need for Guix Home. >> --- >> For now functions are copy pasted, but it seems better to reuse >> existing functions. >> https://git.sr.ht/~abcdw/rde/tree/057888b2604b05d555fd1b67f3d356644f9a134d/gnu/home-services.scm#L418 >> >> gnu/services.scm | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/gnu/services.scm b/gnu/services.scm >> index 8d413e198e..53b358c63b 100644 >> --- a/gnu/services.scm >> +++ b/gnu/services.scm >> @@ -91,6 +91,9 @@ >> ambiguous-target-service-error-service >> ambiguous-target-service-error-target-type >> >> + provenance-entry >> + sexp->channel > > This ‘sexp->channel’ exists “for historical reasons”. Could you use > (@ (guix channels) sexp->channel) instead, together with > ‘channel-instance->sexp’? Sure!) > Actually, could you define it like so: > > --8<---------------cut here---------------start------------->8--- > (define home-provenance-service-type > (service-type > (inherit provenance-service-type) > (extensions > (list (service-extension > home-service-type > (service-extension-compute > (first (service-extensions provenance-service-type)))))) > (default-value #f))) > --8<---------------cut here---------------end--------------->8--- Looks good to me. > More generally, perhaps you could have a procedure that takes a service > type and “rewires” it so that it extends ‘home-service-type’ instead of > ‘etc-service-type’, say. Does that make sense? Thank you for the idea, it can be useful, I'll consider it.