Alex Griffin 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 > 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 > ;;; Copyright © 2016 Andreas Enge > ;;; Copyright © 2016 Lukas Gradl > -;;; Copyright © 2016 Alex Griffin > +;;; Copyright © 2016, 2019 Alex Griffin > ;;; Copyright © 2017 Leo Famulari > ;;; Copyright © 2017, 2018 Clément Lassieur > ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice > @@ -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 > 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