Subject: Re: bug#27155: [PATCH 0/2] Support service extensions on the "final" service values

From: [email-masked] (Ludovic Courtès)
Date: Wed, 21 Jun 2017 15:06:34 +0200

Hi!

[email-masked] (宋文武) skribis:

> Maybe allow a service to override extensions specified by its
> type?
>
> It can be:
>
> (define etc-service-type
>   (service-type
>     (name 'etc)
>     (default-extensions (list ...))
>     (extension-points (list ...))))
>
> (define builtin-etc-service
>   (... %base-services))
>
> (define my-etc-service
>   (service etc-service-type
>     (service-value builtin-etc-service)
>     #:extensions
>     (list (service-extension
>             activation-service-type
>             activate-my-etc-files-in-my-way)
>           ...)))
>
> So we can change what service actually do, this is really powerful!

The problem as I see it is that this would be redundant with extensions
in service types.

Also, the “etc” service is one of the “special” services that are not in
‘%base-services’; instead they’re automatically added by
‘essential-services’ in (gnu system).

Thanks for your feedback,
Ludo’.