Simen Endsjø <[email protected]> writes: > I'm probably doing something wrong, but I'm having problems using > `home-gpg-agent-service-type' from a service. It works fine inside an > `home-environment', but not within a service type. > > So this works fine: > ,---- > | (home-environment > | (services > | (list > | (service home-gpg-agent-service-type > | (home-gpg-agent-configuration > | (pinentry-program > | (file-append sijo-pinentry "/bin/sijo-pinentry")) > | (extra-content "allow-loopback-pinentry")))))) > | > `---- > > But when I move this into a new service, it doesn't seem to do anything, > and only the default configuration is used. > > ,---- > | (home-environment > | (services > | (list > | (service sijo-gpg-service-type)))) > | > | (define-public sijo-gpg-service-type > | (service-type > | (name 'sijo-gpg-service) > | (extensions > | (list > | (service-extension home-profile-service-type > | (lambda (config) > | (list sijo-pinentry))) > | ;; This doesn't actually see mto do anything > | (service-extension home-gpg-agent-service-type
I do not believe the home-gpg-agent-service-type can be extended.
Looking at the source code:
--8<---------------cut here---------------start------------->8---
(define home-gpg-agent-service-type
(service-type
(name 'home-gpg-agent)
(extensions
(list (service-extension home-files-service-type
home-gpg-agent-files)
(service-extension home-shepherd-service-type
home-gpg-agent-shepherd-services)
(service-extension home-activation-service-type
(const gpg-agent-activation))
(service-extension home-environment-variables-service-type
home-gpg-agent-environment-variables)))
(default-value (home-gpg-agent-configuration))
(description
"Configure GnuPG's agent, @command{gpg-agent}, which is responsible for
managing OpenPGP and optionally SSH private keys. When SSH support is
enabled, @command{gpg-agent} acts as a drop-in replacement for OpenSSH's
@command{ssh-agent}.")))
--8<---------------cut here---------------end--------------->8---
And the relevant part of the info manual for `Data Type: service-type':
--8<---------------cut here---------------start------------->8---
‘extend’ (default: ‘#f’)
If this is ‘#f’, services of this type cannot be extended.
--8<---------------cut here---------------end--------------->8---
Since the home-gpg-agent-service-type does not set the `extend' field, I
conclude the service cannot be extended.
However the fact that it does not signal an error is (in my opinion) a
bug and you should report it.
> | (lambda (config)
> | (home-gpg-agent-configuration
> | (pinentry-program
> | (file-append sijo-pinentry
> "/bin/sijo-pinentry"))
> | (extra-content "allow-loopback-pinentry"))))))
> | (default-value #f)
> | (description "")))
> `----
>
Tomas
--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
signature.asc
Description: PGP signature
