Subject: Re: [bug#35346] [PATCH 2/2] gnu: Add pass-otp.
From: Christopher Baines <[email-masked]>
To: Alex Griffin <[email-masked]>
Cc: [email-masked]
Date: Mon, 22 Apr 2019 10:36:24 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Alex Griffin <[email-masked]> writes:

> On Sun, Apr 21, 2019, at 9:30 PM, Christopher Baines wrote:
>> These changes are looking good, one thing though, is that I think this
>> native-search-paths field should be defined for the password-store
>> package, as it's the one that uses the search path.
>>
>> While it works having it defined for pass-otp, having it in the
>> password-store package will become relevant if there are more extensions
>> packaged for Guix, as then they'll be able to take advantage of this as
>> well.
>
> Thanks Chris, that makes sense. I've attached 2 updated patches with the requested changes.

Great, I've pushed these two patches now, with a few minor changes
that'll describe below.

> From 8f64805def5352919e4dac57ce0adc79f0243a43 Mon Sep 17 00:00:00 2001
> From: Alex Griffin <[email-masked]>
> Date: Sat, 20 Apr 2019 11:56:23 -0500
> Subject: [PATCH 1/2] gnu: password-store: Allow external packages to provide
>  extensions.
>
> * gnu/packages/password-utils.scm (password-store): Add mechanism for
> providing pass extensions in separate packages.
> [arguments]: Add patch-system-extension-dir phase.
> [native-search-paths]: Add PASSWORD_STORE_SYSTEM_EXTENSION_DIR.
> ---
>  gnu/packages/password-utils.scm | 18 +++++++++++++++++-
>  1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
> index 5c11d8c437..5cd8e2f160 100644
> --- a/gnu/packages/password-utils.scm
> +++ b/gnu/packages/password-utils.scm
> @@ -6,7 +6,7 @@
>  ;;; Copyright © 2016 Jessica Tallon <[email-masked]>
>  ;;; Copyright © 2016 Andreas Enge <[email-masked]>
>  ;;; Copyright © 2016 Lukas Gradl <[email-masked]>
> -;;; Copyright © 2016 Alex Griffin <[email-masked]>
> +;;; Copyright © 2016, 2019 Alex Griffin <[email-masked]>
>  ;;; Copyright © 2017 Leo Famulari <[email-masked]>
>  ;;; Copyright © 2017, 2018 Clément Lassieur <[email-masked]>
>  ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <[email-masked]>
> @@ -423,6 +423,18 @@ any X11 window.")
>         (modify-phases %standard-phases
>           (delete 'configure)
>           (delete 'build)
> +         (add-before 'install 'patch-system-extension-dir
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (extension-dir (string-append out "/lib/password-store/extensions")))
> +               (substitute* "src/password-store.sh"
> +                 (("^SYSTEM_EXTENSION_DIR=.*$")
> +                  ;; lead with whitespace to prevent 'make install' from
> +                  ;; overwriting it again
> +                  (string-append " SYSTEM_EXTENSION_DIR=\""
> +                                 "${PASSWORD_STORE_SYSTEM_EXTENSION_DIR:-"
> +                                 extension-dir
> +                                 "}\"\n"))))))

I'm still not quite sure why, but currently it's at least more
consistent if phases like the one above evaluate to #t, so I've added #t
in at the end.

> From 0c695f7ee5151a4c1747591ca165b44c5b9e553b Mon Sep 17 00:00:00 2001
> From: Alex Griffin <[email-masked]>
> Date: Sat, 20 Apr 2019 11:59:35 -0500
> Subject: [PATCH 2/2] gnu: Add pass-otp.
>
> * gnu/packages/password-utils.scm (pass-otp): New variable.
> ---
>  gnu/packages/password-utils.scm | 49 +++++++++++++++++++++++++++++++++
>  1 file changed, 49 insertions(+)
>
> diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
> index 5cd8e2f160..fd0a7c6501 100644
> --- a/gnu/packages/password-utils.scm
> +++ b/gnu/packages/password-utils.scm

...

> +    (inputs
> +     `(("password-store" ,password-store)
> +       ("expect" ,expect)
> +       ("oath-toolkit" ,oath-toolkit)
> +       ("git" ,git)
> +       ("gnupg" ,gnupg)
> +       ("which" ,which)))

oath-toolkit is the only one of these inputs referenced by the output,
so I've changed the others in to native-inputs, as I think this makes a
bit more sense.

> +    (home-page "https://github.com/tadfisher/pass-otp")
> +    (synopsis "Pass extension for managing one-time-password (OTP) tokens")
> +    (description " An extension for password-store that allows adding
> +one-time-password (OTP) secrets, generating OTP codes, and displaying secret
> +key URIs using the standard otpauth:// scheme.")

I've tweaked the description slightly, removing the space at the start,
and making it more of a complete sentence:

  "Pass OTP is an extension for password-store that allows ..."

Thanks again,

Chris