Subject: Re: [bug#58381] [PATCH 1/3] gnu: Add go-github-com-go-piv-piv-go.

From: Christopher Baines <[email-masked]>
Date: Thu, 13 Oct 2022 11:58:31 +0100

Nicolas Graves <[email-masked]> writes:

> On 2022-10-11 11:48, Christopher Baines wrote:
>
>> What relation does pcsc-lite have to this package, and why does it need
>> to be propagated?
>>
>> If this can be avoid, that would be good. Otherwise it would be good to
>> mention why the propagation is needed in a comment.
>
> For piv-go, in their README:
>
> To build on Linux, piv-go requires PCSC lite. To install on Debian-based distros, run:
> sudo apt-get install libpcsclite-dev
>
> ==> So probably no need to propagate here.
>
> ----
>
> For yubikey-agent:
>
> The package relies on pcscd (daemon) to run on linux, which is already
> available in guix. Maybe it's better to say that in the README ? Instead
> of the package, what it needs is actually the service.
>
> I've also written some tested lines for a yubikey-agent
> configuration/feature (as done in the RDE project) shepherd service,
> although as it is really tiny, I didn't know if I should've contributed
> this.
>
> It looks like that, and did work (it also depends on the acceptance of
> the patch https://issues.guix.gnu.org/52900 in this case):
>
> (define* (feature-yubikey-agent
>           #:key
>           (yubikey-agent yubikey-agent))
>   "Configure Yubikey-Agent."
>   (ensure-pred file-like? yubikey-agent)
>
>   (define (get-system-services _)
>     (list
>      (service pcscd-service-type)
>      (udev-rules-service
>       'yubikey
>       (file->udev-rule
>        "70-u2f.rules"
>        (file-append libfido2 "/udev/rules.d/70-u2f.rules")))))
>
>   ;; (define (get-home-services config)
>   ;;   (list
>   ;;    ;; MAYBE: It should be installed system-wide?
>   ;;    (simple-service
>   ;;     'yubikey-agent-add-yubikey-agent-package
>   ;;     home-profile-service-type
>   ;;     (list yubikey-agent))
>   ;;    (simple-service
>   ;;    'start-yubikey-agent-at-startup
>   ;;    home-shepherd-service-type
>   ;;    (list (shepherd-service
>   ;;           (documentation "Run the yubikey-agent.")
>   ;;           (provision '(yubikey-agent))
>   ;;           (requirement '())
>   ;;           (start #~(make-forkexec-constructor
>   ;;                     (list (string-append
>   ;;                            #$yubikey-agent "/bin/yubikey-agent")
>   ;;                            "-l" "/tmp/yubikey-agent.sock")))
>   ;;           (stop #~(make-kill-destructor)))))))
>
>   (feature
>    (name 'yubikey-agent)
>    (values `((yubikey-agent . ,yubikey-agent)))
>    (system-services-getter get-system-services)
>    ;; (home-services-getter get-home-services)
>    ))
>
>
> I'm not sure what would be the guideline here regarding doing or
> avoiding propagations. WDYT? (I'm sending a V2 once I have a clearer
> idea of what makes sense).

I'd try avoiding all the propagated inputs and then tackle the issue of
getting the service working separately.

Thanks,

Chris