Subject: [bug#58457] [PATCH v2] gnu: Add passage.

From: Nicolas Graves <[email-masked]>
Date: Tue, 11 Oct 2022 23:39:45 +0200

* gnu/packages/password-utils.scm (passage): New variable.
---
 gnu/packages/password-utils.scm | 38 +++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 8e29bef484..36b0ae7537 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -37,6 +37,7 @@
 ;;; Copyright © 2022 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2022 Maxime Devos <[email-masked]>
 ;;; Copyright © 2022 ( <[email-masked]>
+;;; Copyright © 2022 Nicolas Graves <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,6 +58,7 @@ (define-module (gnu packages password-utils)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix utils)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module (guix build-system python)
@@ -589,6 +591,42 @@ (define-public password-store
 through the pass command.")
     (license license:gpl2+)))

+(define-public pass-age
+  (package
+    (inherit password-store)
+    (name "pass-age")
+    (version "1.7.4a0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/FiloSottile/passage")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "17899whffnpqqx9x1nx2b8bfxbxlh1pwlglqa0kznl0cn6sb37ql"))))
+    (build-system copy-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'rename-script
+                    (lambda _
+                      (rename-file "src/password-store.sh"
+                                   "src/passage"))))
+       #:install-plan
+       '(("src/passage" "/bin/")
+         ("src/completion/pass.bash-completion"
+          "/share/bash-completion/completions/")
+         ("src/completion/pass.zsh-completion"
+          "/share/zsh/site-functions/"))))
+    (propagated-inputs
+     (list util-linux git qrencode sed tree age))
+    (home-page "https://github.com/FiloSottile/passage")
+    (synopsis "An encrypted password manager")
+    (description "This package provides an encrypted password manager, forked
+from the @code{password-store} package.  Files are encrypted with the
+@command{age} encryption package with small explicit keys.")
+    (license license:gpl2+)))
+
 (define-public pass-otp
   (package
     (name "pass-otp")
--
2.38.0

Thanks for the review!

> OK, I've been looking at this for an embarrasingly long time
> trying to figure out what you're trying to communicate with '(…
> (list '(…))).  It seems very deliberate.  Any hints?  :-p

Not deliberate, I probably misread the copy-build-system info
manual. Fixed!

> No, I don't think it is.  Adding this script need not affect other
> packages.

I understand, although I would think that choices need to be made and
that this one would not annoy a lot.

Just as a reminder, this patch cannot be merged before 58340.

--
Best regards,
Nicolas Graves