[bug#58386,v2] gnu: Add passage.
Commit Message
* gnu/packages/password-utils.scm (passage): New variable.
---
gnu/packages/password-utils.scm | 38 +++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
--
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
Comments
Hi Nicolas,
Nicolas Graves 写道:
> Just as a reminder, this patch cannot be merged before 58340.
Thanks, I realised that after I sent it. I'll treat (and close)
them as one bug for this reply.
I've pushed all 3 patches as
ac553ba68e535810085dd838e48e4fa6ac553e67 et al with the following
mods:
> * gnu/packages/password-utils.scm (passage): New variable.
I fixed up the commit message to match the name, and addressed the
following ‘guix lint’ warnings:
pass-age@1.7.4a0: no article allowed at the beginning of the
synopsis
age@1.0.0: sentences in description should be followed by two
spaces
Whilst there, I turned @code{age-encryption.org/v1} into a full
@url{}, and fixed up upstream's ‘config’ & ‘UNIX’ slang.
> * gnu/packages/golang.scm
> (age): New variable.
> (go-filippo-io-cmd-age): New variable.
> (go-filippo-io-cmd-age-keygen): New variable.
^^
Our changelogs are never indented, you'd write:
> * gnu/packages/golang.scm (age, go-filippo-io-cmd-age)
> (go-filippo-io-cmd-age-keygen): New variables.
…but in this case, I was bold and removed the two
go-filippo-io-cmd-age* packages completely. I moved ‘age’ to (gnu
packages password-utils).
The partial recursion in the go-* variants made me nervous (and
would probably prevent the move, although I didn't try).
If these variants are needed for something, it's not pass-age, and
we can review them separately if/when needed. Is that acceptable?
> I would think that choices need to be made
Princip(al)ly: the choice to reuse an existing package name was
FiloSottile's, for the sake of a pun. Much as I like bad puns, I
think that's rather rude. It's not hard to search for free
package names, e.g., [0].
> that this one would not annoy a lot.
Technically: it would silently replace users' games with some
encryption tool. That's problematic even if those users are few.
Similarly: had the game been added after this ‘passage’, I would
have grumpily agreed to ‘passage-game’ :-) But it wasn't.
But: I think your ’pass-age’ solution is perfect. Thanks!
FiloSottile should consider it.
Kind regards,
T G-R
[0]: https://repology.org/project/passage/versions
Tobias Geerinckx-Rice via Guix-patches via 写道:
> …but in this case, I was bold and removed the two
> go-filippo-io-cmd-age* packages completely.
Grr. And of course, whilst migrating pass-age's propagated-inputs
to regular ones (propagation is evil and should be avoided
whenever possible), I see I've been looking at the wrong ‘age’.
Y'know. The one that does have a ‘/bin/age’ in it.
Yep, I'm back,
T G-R
Closing as a duplicate of #58386.
When sending patch rerolls, use ‘--to=NNN@debbugs.gnu.org’ (NOT
the default guix-patches@gnu.org) to avoid opening a new bug
number.
Kind regards,
T G-R
Hey Tobias,
> Y'know. The one that does have a ‘/bin/age’ in it.
In the current version, it seems that the age-keygen binary is not in
the bin output. Both commands "age" and "age-keygen" are necessary,
hence the way I tried to package that with propagated inputs.
Thanks for your reviews, let me know if I can help.
@@ -37,6 +37,7 @@
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2022 ( <paren@disroot.org>
+;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; 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")