unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] gnu: Add pass.
@ 2015-08-23  2:51 Steve Sprang
  2015-08-27 21:11 ` Ludovic Courtès
  0 siblings, 1 reply; 16+ messages in thread
From: Steve Sprang @ 2015-08-23  2:51 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 97 bytes --]

I'm not sure if there's a good way to enable tests here, so they are
currently disabled.

-Steve

[-- Attachment #1.2: Type: text/html, Size: 147 bytes --]

[-- Attachment #2: add_pass.patch --]
[-- Type: text/x-patch, Size: 2850 bytes --]

From adef360ea4ec41aa23ec7aef43341c12bf27ca3c Mon Sep 17 00:00:00 2001
From: Steve Sprang <scs@stevesprang.com>
Date: Sat, 22 Aug 2015 19:49:21 -0700
Subject: [PATCH] gnu: Add pass.

* gnu/packages/password-utils.scm (pass): New variable.
---
 gnu/packages/password-utils.scm | 53 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 52 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 4aef371..0beddaf 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -20,7 +20,12 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
-  #:use-module (guix packages))
+  #:use-module (guix packages)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages xdisorg))
 
 (define-public pwgen
   (package
@@ -41,3 +46,49 @@
     (description "Pwgen generates passwords which can be easily memorized by a
 human.")
     (license license:gpl2)))
+
+(define-public pass
+  (package
+    (name "pass")
+    (version "1.6.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://git.zx2c4.com/password-store/snapshot/"
+             "password-store-" version ".tar.xz"))
+       (sha256
+        (base32 "05bk3lrp5jwg0v338lvylp7glpliydzz4jf5pjr6k3kagrv3jyik"))))
+    (build-system gnu-build-system)
+    (inputs `(("git" ,git)
+              ("gnupg" ,gnupg)
+              ("pwgen" ,pwgen)
+              ("tree" ,tree)
+              ("xclip" ,xclip)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'build) ; pass is implemented as a shell script
+         (add-after
+          'install 'set-path
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out"))
+                  (input->path (lambda (input)
+                                 (string-append
+                                  (assoc-ref inputs (car input))
+                                  "/bin"))))
+              ;; pass executes its inputs as helper programs at runtime
+              (wrap-program (string-append out "/bin/pass")
+                `("PATH" ":" prefix ,(map input->path inputs)))))))
+       #:make-flags
+       (list (string-append "PREFIX=" %output)
+             "FORCE_ALL=1") ; bash-completion
+       #:test-target "test"
+       #:tests? #f)) ; tests hang
+    (home-page "http://www.passwordstore.org/")
+    (synopsis "Simple password manager")
+    (description "Pass is a simple password manager which uses GnuPG and
+ordinary directories.")
+    (license license:gpl2+)))
+
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2015-08-23  2:51 Steve Sprang
@ 2015-08-27 21:11 ` Ludovic Courtès
  0 siblings, 0 replies; 16+ messages in thread
From: Ludovic Courtès @ 2015-08-27 21:11 UTC (permalink / raw)
  To: Steve Sprang; +Cc: guix-devel

Steve Sprang <steve.sprang@gmail.com> skribis:

> From adef360ea4ec41aa23ec7aef43341c12bf27ca3c Mon Sep 17 00:00:00 2001
> From: Steve Sprang <scs@stevesprang.com>
> Date: Sat, 22 Aug 2015 19:49:21 -0700
> Subject: [PATCH] gnu: Add pass.
>
> * gnu/packages/password-utils.scm (pass): New variable.
> +(define-public pass
> +  (package
> +    (name "pass")

Shouldn’t it be “password-store”, which is the name of the tarball?

> +       (list (string-append "PREFIX=" %output)
> +             "FORCE_ALL=1") ; bash-completion

Could you expound the comment a bit?  Maybe “install bash completion”?

> +       #:test-target "test"
> +       #:tests? #f)) ; tests hang

Could it be that $HOME points to an nonexistent directory, which
confuses gpg?  Could you try something like:

  (setenv "HOME" (getcwd))

?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH] gnu: Add pass.
@ 2016-02-08 22:27 Jessica Tallon
  2016-02-09 21:33 ` Leo Famulari
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Jessica Tallon @ 2016-02-08 22:27 UTC (permalink / raw)
  To: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 73 bytes --]

Hello,

I've finally got around to packaging the pass password manager.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-pass.patch --]
[-- Type: text/x-patch, Size: 2822 bytes --]

From 86ab2ad8f47cb72780cf0140352a9a5c26af36f8 Mon Sep 17 00:00:00 2001
From: Jessica Tallon <tsyesika@tsyesika.se>
Date: Mon, 8 Feb 2016 22:12:50 +0100
Subject: [PATCH] gnu: Add pass.

* gnu/packages/password-utils.scm (pass): 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 7c128a3..3a8cefa 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -25,6 +25,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
@@ -35,6 +36,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system python))
@@ -241,3 +243,39 @@ JSON files.  It has a command line interface as well as a very simple
 graphical interface, which can even \"type\" your passwords into
 any X11 window.")
     (license license:gpl3+)))
+
+(define-public pass
+  (package
+    (name "pass")
+    (version "1.6.5")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://git.zx2c4.com/password-store/snapshot/"
+                              "password-store-" version ".tar.xz"))
+              (sha256
+               (base32
+                "05bk3lrp5jwg0v338lvylp7glpliydzz4jf5pjr6k3kagrv3jyik"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (alist-delete 'configure %standard-phases)
+       #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+       ;; The tests mysteriously hang, I've tired it outside of guix and
+       ;; they run perfectly fine. Not sure why so for now I've disabled
+       ;; them.
+       #:tests? #f
+       #:test-target "test"))
+    (inputs `(("gnupg" ,gnupg)
+              ("pwgen" ,pwgen)
+              ("xclip" ,xclip)
+              ("git" ,git)
+              ("tree" ,tree)))
+    (home-page "http://www.passwordstore.org/")
+    (synopsis "Encrypted password manager")
+    (description "Pass is a password manager which uses gnupg to store, retrieve
+generated passwords.  The tool stores each password in its own file gpg
+encrypted allowing the program to be simple yet secure.  Synchronization is
+possible with inbuild git support which commits changes to your password database
+to a git repository that can be managed through the pass command.")
+    (license license:gpl2+)))
-- 
2.6.3


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-02-08 22:27 [PATCH] gnu: Add pass Jessica Tallon
@ 2016-02-09 21:33 ` Leo Famulari
  2016-02-09 21:36 ` Ludovic Courtès
  2016-02-09 22:55 ` Andreas Enge
  2 siblings, 0 replies; 16+ messages in thread
From: Leo Famulari @ 2016-02-09 21:33 UTC (permalink / raw)
  To: Jessica Tallon; +Cc: Guix-devel

On Mon, Feb 08, 2016 at 11:27:44PM +0100, Jessica Tallon wrote:
> * gnu/packages/password-utils.scm (pass): New variable.

Thanks!

[...]

> +    (arguments
> +     '(#:phases
> +       (alist-delete 'configure %standard-phases)
> +       #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
> +       ;; The tests mysteriously hang, I've tired it outside of guix and
> +       ;; they run perfectly fine. Not sure why so for now I've disabled
> +       ;; them.
> +       #:tests? #f

It may be worth taking the time to figure out why the test suite fails.
My understanding of this password manager is that you can always use
gnupg to decrypt the files without the password manager, but I still
think it would be best for a password manager to be able to pass its
test suite. I'd hate for some user who was not proficient with gnupg to
get locked out of their accounts because our pass package was somehow
broken.

> +       #:test-target "test"))
> +    (inputs `(("gnupg" ,gnupg)

Does it matter which version of gnupg is used? We package the 3 branches
of it described here: https://gnupg.org/

> +              ("pwgen" ,pwgen)
> +              ("xclip" ,xclip)
> +              ("git" ,git)
> +              ("tree" ,tree)))
> +    (home-page "http://www.passwordstore.org/")
> +    (synopsis "Encrypted password manager")
> +    (description "Pass is a password manager which uses gnupg to store, retrieve
> +generated passwords.  The tool stores each password in its own file gpg
> +encrypted allowing the program to be simple yet secure.  Synchronization is
> +possible with inbuild git support which commits changes to your password database

This line should be ≤ 80 characters.

> +to a git repository that can be managed through the pass command.")
> +    (license license:gpl2+)))
> -- 
> 2.6.3
> 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-02-08 22:27 [PATCH] gnu: Add pass Jessica Tallon
  2016-02-09 21:33 ` Leo Famulari
@ 2016-02-09 21:36 ` Ludovic Courtès
  2016-02-09 22:55 ` Andreas Enge
  2 siblings, 0 replies; 16+ messages in thread
From: Ludovic Courtès @ 2016-02-09 21:36 UTC (permalink / raw)
  To: Jessica Tallon; +Cc: Guix-devel

Hi!

Jessica Tallon <tsyesika@tsyesika.se> skribis:

> From 86ab2ad8f47cb72780cf0140352a9a5c26af36f8 Mon Sep 17 00:00:00 2001
> From: Jessica Tallon <tsyesika@tsyesika.se>
> Date: Mon, 8 Feb 2016 22:12:50 +0100
> Subject: [PATCH] gnu: Add pass.
>
> * gnu/packages/password-utils.scm (pass): New variable.

[...]

> +(define-public pass
> +  (package
> +    (name "pass")

I think we should call it “password-store” since that’s the upstream
name.

> +       ;; The tests mysteriously hang, I've tired it outside of guix and
> +       ;; they run perfectly fine. Not sure why so for now I've disabled
> +       ;; them.
> +       #:tests? #f

I added ‘set -x’ to src/password-store.sh and run ‘make check’ within
‘guix environment --container’, which gave this:

--8<---------------cut here---------------start------------->8---
# ./src/password-store.sh init 000432
+ GPG_OPTS=("--quiet" "--yes" "--compress-algo=none" "--no-encrypt-to")
+ GPG=gpg
++ tty
+ export GPG_TTY=/dev/console
+ GPG_TTY=/dev/console
+ which gpg2
+ [[ -n '' ]]
+ [[ gpg == \g\p\g\2 ]]
+ PREFIX=/homeless-shelter/.password-store
+ X_SELECTION=clipboard
+ CLIP_TIME=45
+ export GIT_DIR=/homeless-shelter/.password-store/.git
+ GIT_DIR=/homeless-shelter/.password-store/.git
+ export GIT_WORK_TREE=/homeless-shelter/.password-store
+ GIT_WORK_TREE=/homeless-shelter/.password-store
+ GETOPT=getopt
+ SHRED='shred -f -z'
++ dirname ./src/password-store.sh
++ uname
++ cut -d _ -f 1
++ tr '[:upper:]' '[:lower:]'
+ source ./src/platform/linux.sh
+ PROGRAM=password-store.sh
+ COMMAND=init
+ case "$1" in
+ shift
+ cmd_init 000432
+ local opts id_path=
++ getopt -o p: -l path: -n password-store.sh -- 000432
./src/password-store.sh: line 263: getopt: command not found
+ opts=
+ local err=127
+ eval set -- ''
++ set --
+ true
+ case $1 in
+ true
+ case $1 in
[… endless loop…]
--8<---------------cut here---------------end--------------->8---

So I think adding util-linux (which provides the ‘getopt’ command) as an
input will solve the problem.

> +    (description "Pass is a password manager which uses gnupg to store, retrieve
> +generated passwords.  The tool stores each password in its own file gpg
> +encrypted allowing the program to be simple yet secure.  Synchronization is
> +possible with inbuild git support which commits changes to your password database
> +to a git repository that can be managed through the pass command.")

s/gnupg/GnuPG/; s/git/Git/; s/gpg/@command{gpg}/  :-)

Could you send an updated patch?

Thank you!

Ludo’.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-02-08 22:27 [PATCH] gnu: Add pass Jessica Tallon
  2016-02-09 21:33 ` Leo Famulari
  2016-02-09 21:36 ` Ludovic Courtès
@ 2016-02-09 22:55 ` Andreas Enge
  2016-02-17 18:13   ` Andreas Enge
  2 siblings, 1 reply; 16+ messages in thread
From: Andreas Enge @ 2016-02-09 22:55 UTC (permalink / raw)
  To: Jessica Tallon; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 1030 bytes --]

Hello!

On Mon, Feb 08, 2016 at 11:27:44PM +0100, Jessica Tallon wrote:
> I've finally got around to packaging the pass password manager.

That sounds interesting. Now I just wonder which password manager I would
prefer to use...

A few comments in addition to those already made.
As to the name, this is unclear; upstream uses "pass" a lot, so it could be
argued that it should be "pass". If in doubt, we go with the upstream tarball
name, and that is what I would do here.

I tried to build with gnupg-2.0 to make the tests pass, but this is not
enough.

I added a copyright line for you.

I would suggest a slightly modified description.

Adding util-linux to the native-inputs as suggested by Ludovic gets the
tests further: something happens at least, but they fail.

Since I tried out a few things, I realised I might as well send you my
modified version of the patch. Maybe you could continue from there and
examine the tests. If you are not happy with some of my modifications,
please feel free to discuss them.

Andreas


[-- Attachment #2: 0001-gnu-Add-password-store.patch --]
[-- Type: text/plain, Size: 3351 bytes --]

From f18ee39a7a486d472886de700e090b1313939173 Mon Sep 17 00:00:00 2001
From: Jessica Tallon <tsyesika@tsyesika.se>
Date: Mon, 8 Feb 2016 22:12:50 +0100
Subject: [PATCH] gnu: Add password-store.

* gnu/packages/password-utils.scm (password-store): New variable.

Co-authored-by: Andreas Enge <andreas@enge.fr>
---
 gnu/packages/password-utils.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 7c128a3..b8b5663 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -3,6 +3,8 @@
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Aljosha Papsch <misc@rpapsch.de>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
+;;; Copyright © 2016 Jessica Tallon <tsyesika@tsyesika.se>
+;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,16 +27,19 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system python))
@@ -241,3 +246,37 @@ JSON files.  It has a command line interface as well as a very simple
 graphical interface, which can even \"type\" your passwords into
 any X11 window.")
     (license license:gpl3+)))
+
+(define-public password-store
+  (package
+    (name "password-store")
+    (version "1.6.5")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://git.zx2c4.com/password-store/snapshot/"
+                              name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "05bk3lrp5jwg0v338lvylp7glpliydzz4jf5pjr6k3kagrv3jyik"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (alist-delete 'configure %standard-phases)
+       #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+       #:test-target "test"))
+    (native-inputs `(("util-linux" ,util-linux))) ; getopt for the tests
+    (inputs `(("gnupg" ,gnupg)
+              ("pwgen" ,pwgen)
+              ("xclip" ,xclip)
+              ("git" ,git)
+              ("tree" ,tree)))
+    (home-page "http://www.passwordstore.org/")
+    (synopsis "Encrypted password manager")
+    (description "Password-store is a password manager which uses GnuPG to
+store and retrieve passwords.  The tool stores each password in its own
+GnuPG-encrypted file, allowing the program to be simple yet
+secure.  Synchronization is possible using the integrated git support, which
+commits changes to your password database to a git repository that can be
+managed through the pass command.")
+    (license license:gpl2+)))
-- 
2.6.3


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-02-09 22:55 ` Andreas Enge
@ 2016-02-17 18:13   ` Andreas Enge
  2016-02-28  8:39     ` Andreas Enge
  2016-08-01 15:24     ` ng0
  0 siblings, 2 replies; 16+ messages in thread
From: Andreas Enge @ 2016-02-17 18:13 UTC (permalink / raw)
  To: Jessica Tallon; +Cc: Guix-devel

Hello, Jessica,

On Tue, Feb 09, 2016 at 11:55:51PM +0100, Andreas Enge wrote:
> Since I tried out a few things, I realised I might as well send you my
> modified version of the patch. Maybe you could continue from there and
> examine the tests. If you are not happy with some of my modifications,
> please feel free to discuss them.

did you find some time to look at the password manager recipe? I think it
would be nice to get it into our distribution.

Andreas

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-02-17 18:13   ` Andreas Enge
@ 2016-02-28  8:39     ` Andreas Enge
  2016-02-28 15:12       ` Jessica Tallon
  2016-08-01 15:24     ` ng0
  1 sibling, 1 reply; 16+ messages in thread
From: Andreas Enge @ 2016-02-28  8:39 UTC (permalink / raw)
  To: Jessica Tallon; +Cc: Guix-devel

Hello Jessica,

a quick reminder, it would be a pity to drop an almost finished package.

Andreas

On Wed, Feb 17, 2016 at 07:13:44PM +0100, Andreas Enge wrote:
> On Tue, Feb 09, 2016 at 11:55:51PM +0100, Andreas Enge wrote:
> > Since I tried out a few things, I realised I might as well send you my
> > modified version of the patch. Maybe you could continue from there and
> > examine the tests. If you are not happy with some of my modifications,
> > please feel free to discuss them.
> did you find some time to look at the password manager recipe? I think it
> would be nice to get it into our distribution.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-02-28  8:39     ` Andreas Enge
@ 2016-02-28 15:12       ` Jessica Tallon
  2016-03-02  8:30         ` Leo Famulari
  0 siblings, 1 reply; 16+ messages in thread
From: Jessica Tallon @ 2016-02-28 15:12 UTC (permalink / raw)
  To: Andreas Enge; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 2578 bytes --]


Andreas Enge writes:

> Hello Jessica,
>
> a quick reminder, it would be a pity to drop an almost finished package.
>
> Andreas
>
> On Wed, Feb 17, 2016 at 07:13:44PM +0100, Andreas Enge wrote:
>> On Tue, Feb 09, 2016 at 11:55:51PM +0100, Andreas Enge wrote:
>> > Since I tried out a few things, I realised I might as well send you my
>> > modified version of the patch. Maybe you could continue from there and
>> > examine the tests. If you are not happy with some of my modifications,
>> > please feel free to discuss them.
>> did you find some time to look at the password manager recipe? I think it
>> would be nice to get it into our distribution.

Hey,

The tests were failing due to a missing `which` command which I have
added however, it requires `which` as it tries to detect for itself the
GPG command.

The Guix build system therefore can't patch it, this really leaves the
only option of patching the script to use paths so it can be patched or
to use autoconf to detect them upon build so no patching would be
necessary.

I was going to create a patch for this so autoconf was used to detect
what it needs and send this patch upstream however upon looking through
the archives of its mailing list I've found the lead developer is
opposed to this and has make it clear they're not open to discussing
this further:

> I will not be incorporating m4, dot-in extensions, or any thing of the
> sort. That is non-negotiable, and I will not discuss it further.
https://lists.zx2c4.com/pipermail/password-store/2014-April/000751.html

> The whole notion here is that I don't want there to be a "build step",
> ever. This whole platform-file wonkiness was an unfortunate necessity, but
> I don't want to follow that further. There's "running", which is
> src/password-store.sh, and there's "installing", which is putting that file
> as /usr/bin/pass, and that's it. Simplicity is key. Somewhere along the way
> I had to sneak in a little sed into the "installing", which is a bummer,
> but, bleh.
https://lists.zx2c4.com/pipermail/password-store/2014-April/000757.html

In my opinion this while could be fixed downstream isn't worth it to me,
there are plenty of other password managers which don't require this and
operate in a more sensible way. I'll be looking to migrate to another
password manager rather than continue to use this.

I've attached the package so if someone would like to continue, please
do so, I won't be. Thanks for your work and suggestions those who've
helped me get this far with packaging it :) I've learnt a lot about it.

--
Thanks,
Jessica.


[-- Attachment #2: 0001-gnu-Add-password-store.patch --]
[-- Type: text/x-patch, Size: 3514 bytes --]

From 0c24f17cd35de1b3ffefeffbb8b1e7681e5b880c Mon Sep 17 00:00:00 2001
From: Jessica Tallon <tsyesika@tsyesika.se>
Date: Mon, 8 Feb 2016 22:12:50 +0100
Subject: [PATCH] gnu: Add password-store.

* gnu/packages/password-utils.scm (password-store): New variable.

Co-authored-by: Andreas Enge <andreas@enge.fr>
---
 gnu/packages/password-utils.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 7c128a3..5a911c5 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -3,6 +3,8 @@
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Aljosha Papsch <misc@rpapsch.de>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
+;;; Copyright © 2016 Jessica Tallon <tsyesika@tsyesika.se>
+;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,16 +27,20 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix packages)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system python))
@@ -241,3 +247,38 @@ JSON files.  It has a command line interface as well as a very simple
 graphical interface, which can even \"type\" your passwords into
 any X11 window.")
     (license license:gpl3+)))
+
+(define-public password-store
+  (package
+    (name "password-store")
+    (version "1.6.5")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://git.zx2c4.com/password-store/snapshot/"
+                              name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "05bk3lrp5jwg0v338lvylp7glpliydzz4jf5pjr6k3kagrv3jyik"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (alist-delete 'configure %standard-phases)
+       #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+       #:test-target "test"))
+    (native-inputs `(("util-linux" ,util-linux))) ; getopt for the tests
+    (inputs `(("gnupg" ,gnupg)
+              ("pwgen" ,pwgen)
+              ("xclip" ,xclip)
+              ("git" ,git)
+              ("tree" ,tree)
+              ("which" ,which)))
+    (home-page "http://www.passwordstore.org/")
+    (synopsis "Encrypted password manager")
+    (description "Password-store is a password manager which uses GnuPG to
+store and retrieve passwords.  The tool stores each password in its own
+GnuPG-encrypted file, allowing the program to be simple yet
+secure.  Synchronization is possible using the integrated git support, which
+commits changes to your password database to a git repository that can be
+managed through the pass command.")
+    (license license:gpl2+)))
-- 
2.6.3


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-02-28 15:12       ` Jessica Tallon
@ 2016-03-02  8:30         ` Leo Famulari
  2016-03-02  8:39           ` Leo Famulari
  0 siblings, 1 reply; 16+ messages in thread
From: Leo Famulari @ 2016-03-02  8:30 UTC (permalink / raw)
  To: Jessica Tallon; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 613 bytes --]

On Sun, Feb 28, 2016 at 04:12:57PM +0100, Jessica Tallon wrote:
> I've attached the package so if someone would like to continue, please
> do so, I won't be. Thanks for your work and suggestions those who've
> helped me get this far with packaging it :) I've learnt a lot about it.

I added a wrapper which provides getopt (as well as the rest of
'util-linux/bin') to the script at run-time. Is there a way to only
provide the single executable 'getopt'?

Either way, I think it's a better solution than propagating util-linux,
since the wrapper keeps util-linux out of the user's profile.

What do people think?

[-- Attachment #2: 0001-gnu-Add-password-store.patch --]
[-- Type: text/x-diff, Size: 4127 bytes --]

From c35aaafb4c2184b113c0c7382557a3b8376f20c6 Mon Sep 17 00:00:00 2001
Message-Id: <c35aaafb4c2184b113c0c7382557a3b8376f20c6.1456907157.git.leo@famulari.name>
From: Jessica Tallon <tsyesika@tsyesika.se>
Date: Mon, 8 Feb 2016 22:12:50 +0100
Subject: [PATCH 1/1] gnu: Add password-store.

* gnu/packages/password-utils.scm (password-store): New variable.

Co-authored-by: Andreas Enge <andreas@enge.fr>
Co-authored-by: Leo Famulari <leo@famulari.name>
---
 gnu/packages/password-utils.scm | 53 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 7c128a3..4119335 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -3,6 +3,8 @@
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Aljosha Papsch <misc@rpapsch.de>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
+;;; Copyright © 2016 Jessica Tallon <tsyesika@tsyesika.se>
+;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,16 +27,20 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix packages)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system python))
@@ -241,3 +247,50 @@ JSON files.  It has a command line interface as well as a very simple
 graphical interface, which can even \"type\" your passwords into
 any X11 window.")
     (license license:gpl3+)))
+
+(define-public password-store
+  (package
+    (name "password-store")
+    (version "1.6.5")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://git.zx2c4.com/password-store/snapshot/"
+                              name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "05bk3lrp5jwg0v338lvylp7glpliydzz4jf5pjr6k3kagrv3jyik"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after
+          ;; The script requires 'getopt' at run-time. We provide it with a
+          ;; wrapper instead of propagating util-linux.
+          'install 'wrap-getopt
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (let* ((out    (assoc-ref outputs "out"))
+                   (pass   (string-append out "/bin/pass"))
+                   (getopt (string-append (assoc-ref inputs "getopt") "/bin")))
+              (wrap-program pass
+               `("PATH" ":" prefix (,getopt)))
+              #t))))
+       #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+       #:test-target "test"))
+    (native-inputs `(("getopt" ,util-linux))) ; getopt for the tests
+    (inputs `(("gnupg" ,gnupg)
+              ("pwgen" ,pwgen)
+              ("xclip" ,xclip)
+              ("git" ,git)
+              ("tree" ,tree)
+              ("which" ,which)))
+    (home-page "http://www.passwordstore.org/")
+    (synopsis "Encrypted password manager")
+    (description "Password-store is a password manager which uses GnuPG to
+store and retrieve passwords.  The tool stores each password in its own
+GnuPG-encrypted file, allowing the program to be simple yet secure.
+Synchronization is possible using the integrated git support, which commits
+changes to your password database to a git repository that can be managed
+through the pass command.")
+    (license license:gpl2+)))
-- 
2.7.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-03-02  8:30         ` Leo Famulari
@ 2016-03-02  8:39           ` Leo Famulari
  2016-03-02  9:13             ` Ludovic Courtès
  0 siblings, 1 reply; 16+ messages in thread
From: Leo Famulari @ 2016-03-02  8:39 UTC (permalink / raw)
  To: Jessica Tallon; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 821 bytes --]

On Wed, Mar 02, 2016 at 03:30:40AM -0500, Leo Famulari wrote:
> On Sun, Feb 28, 2016 at 04:12:57PM +0100, Jessica Tallon wrote:
> > I've attached the package so if someone would like to continue, please
> > do so, I won't be. Thanks for your work and suggestions those who've
> > helped me get this far with packaging it :) I've learnt a lot about it.
> 
> I added a wrapper which provides getopt (as well as the rest of
> 'util-linux/bin') to the script at run-time. Is there a way to only
> provide the single executable 'getopt'?
> 
> Either way, I think it's a better solution than propagating util-linux,
> since the wrapper keeps util-linux out of the user's profile.

I realized the script offers a "GETOPT" variable, so this patch uses
that instead. I think this is the best solution.

> 
> What do people think?

[-- Attachment #2: 0001-gnu-Add-password-store.patch --]
[-- Type: text/x-diff, Size: 4049 bytes --]

From 57db34189830c07ed339037de2820705925f418b Mon Sep 17 00:00:00 2001
Message-Id: <57db34189830c07ed339037de2820705925f418b.1456907900.git.leo@famulari.name>
From: Jessica Tallon <tsyesika@tsyesika.se>
Date: Mon, 8 Feb 2016 22:12:50 +0100
Subject: [PATCH 1/1] gnu: Add password-store.

* gnu/packages/password-utils.scm (password-store): New variable.

Co-authored-by: Andreas Enge <andreas@enge.fr>
Co-authored-by: Leo Famulari <leo@famulari.name>
---
 gnu/packages/password-utils.scm | 52 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 7c128a3..cddc655 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -3,6 +3,8 @@
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Aljosha Papsch <misc@rpapsch.de>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
+;;; Copyright © 2016 Jessica Tallon <tsyesika@tsyesika.se>
+;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,16 +27,20 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix packages)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system python))
@@ -241,3 +247,49 @@ JSON files.  It has a command line interface as well as a very simple
 graphical interface, which can even \"type\" your passwords into
 any X11 window.")
     (license license:gpl3+)))
+
+(define-public password-store
+  (package
+    (name "password-store")
+    (version "1.6.5")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://git.zx2c4.com/password-store/snapshot/"
+                              name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "05bk3lrp5jwg0v338lvylp7glpliydzz4jf5pjr6k3kagrv3jyik"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after
+          ;; The script requires 'getopt' at run-time.
+          'unpack 'patch-path
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (let ((getopt (string-append (assoc-ref inputs "getopt")
+                                         "/bin/getopt")))
+              (substitute* "src/password-store.sh"
+                (("GETOPT=\"getopt\"")
+                 (string-append "GETOPT=\"" getopt "\"")))
+              #t))))
+       #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+       #:test-target "test"))
+    (native-inputs `(("getopt" ,util-linux))) ; getopt for the tests
+    (inputs `(("gnupg" ,gnupg)
+              ("pwgen" ,pwgen)
+              ("xclip" ,xclip)
+              ("git" ,git)
+              ("tree" ,tree)
+              ("which" ,which)))
+    (home-page "http://www.passwordstore.org/")
+    (synopsis "Encrypted password manager")
+    (description "Password-store is a password manager which uses GnuPG to
+store and retrieve passwords.  The tool stores each password in its own
+GnuPG-encrypted file, allowing the program to be simple yet secure.
+Synchronization is possible using the integrated git support, which commits
+changes to your password database to a git repository that can be managed
+through the pass command.")
+    (license license:gpl2+)))
-- 
2.7.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-03-02  8:39           ` Leo Famulari
@ 2016-03-02  9:13             ` Ludovic Courtès
  2016-03-02 19:19               ` Leo Famulari
  0 siblings, 1 reply; 16+ messages in thread
From: Ludovic Courtès @ 2016-03-02  9:13 UTC (permalink / raw)
  To: Leo Famulari; +Cc: Jessica Tallon, Guix-devel

Leo Famulari <leo@famulari.name> skribis:

> From 57db34189830c07ed339037de2820705925f418b Mon Sep 17 00:00:00 2001
> Message-Id: <57db34189830c07ed339037de2820705925f418b.1456907900.git.leo@famulari.name>
> From: Jessica Tallon <tsyesika@tsyesika.se>
> Date: Mon, 8 Feb 2016 22:12:50 +0100
> Subject: [PATCH 1/1] gnu: Add password-store.
>
> * gnu/packages/password-utils.scm (password-store): New variable.
>
> Co-authored-by: Andreas Enge <andreas@enge.fr>
> Co-authored-by: Leo Famulari <leo@famulari.name>

Looks good, please push.

Thank you all!

Ludo’.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-03-02  9:13             ` Ludovic Courtès
@ 2016-03-02 19:19               ` Leo Famulari
  0 siblings, 0 replies; 16+ messages in thread
From: Leo Famulari @ 2016-03-02 19:19 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Jessica Tallon, Guix-devel

On Wed, Mar 02, 2016 at 10:13:56AM +0100, Ludovic Courtès wrote:
> Leo Famulari <leo@famulari.name> skribis:
> 
> > From 57db34189830c07ed339037de2820705925f418b Mon Sep 17 00:00:00 2001
> > Message-Id: <57db34189830c07ed339037de2820705925f418b.1456907900.git.leo@famulari.name>
> > From: Jessica Tallon <tsyesika@tsyesika.se>
> > Date: Mon, 8 Feb 2016 22:12:50 +0100
> > Subject: [PATCH 1/1] gnu: Add password-store.
> >
> > * gnu/packages/password-utils.scm (password-store): New variable.
> >
> > Co-authored-by: Andreas Enge <andreas@enge.fr>
> > Co-authored-by: Leo Famulari <leo@famulari.name>
> 
> Looks good, please push.

Pushed as c285a400a.

> Thank you all!

Sometimes it takes a crowd... :)

> 
> Ludo’.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-02-17 18:13   ` Andreas Enge
  2016-02-28  8:39     ` Andreas Enge
@ 2016-08-01 15:24     ` ng0
  2016-08-03  1:17       ` Leo Famulari
  1 sibling, 1 reply; 16+ messages in thread
From: ng0 @ 2016-08-01 15:24 UTC (permalink / raw)
  To: Andreas Enge, Jessica Tallon; +Cc: Guix-devel

Hi Andreas and Jessica,

I found this contribution on my search for forgotten
packages/contributions.

Jessica, was this simply forgotten or left due to whatever reasons, or
do you want someone else to move this over the finnishing line?

Thanks,
ng0   

Andreas Enge <andreas@enge.fr> writes:

> Hello, Jessica,
>
> On Tue, Feb 09, 2016 at 11:55:51PM +0100, Andreas Enge wrote:
>> Since I tried out a few things, I realised I might as well send you my
>> modified version of the patch. Maybe you could continue from there and
>> examine the tests. If you are not happy with some of my modifications,
>> please feel free to discuss them.
>
> did you find some time to look at the password manager recipe? I think it
> would be nice to get it into our distribution.
>
> Andreas
>
>

-- 
♥Ⓐ  ng0
Current Keys: https://we.make.ritual.n0.is/ng0.txt
For non-prism friendly talk find me on http://www.psyced.org

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-08-01 15:24     ` ng0
@ 2016-08-03  1:17       ` Leo Famulari
  2016-08-03 12:23         ` ng0
  0 siblings, 1 reply; 16+ messages in thread
From: Leo Famulari @ 2016-08-03  1:17 UTC (permalink / raw)
  To: ng0; +Cc: Jessica Tallon, Guix-devel

On Mon, Aug 01, 2016 at 03:24:14PM +0000, ng0 wrote:
> Hi Andreas and Jessica,
> 
> I found this contribution on my search for forgotten
> packages/contributions.

I believe this package was merged as 'password-store'.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] gnu: Add pass.
  2016-08-03  1:17       ` Leo Famulari
@ 2016-08-03 12:23         ` ng0
  0 siblings, 0 replies; 16+ messages in thread
From: ng0 @ 2016-08-03 12:23 UTC (permalink / raw)
  To: Leo Famulari; +Cc: Jessica Tallon, Guix-devel

Hi,

Leo Famulari <leo@famulari.name> writes:

> On Mon, Aug 01, 2016 at 03:24:14PM +0000, ng0 wrote:
>> Hi Andreas and Jessica,
>> 
>> I found this contribution on my search for forgotten
>> packages/contributions.
>
> I believe this package was merged as 'password-store'.

Yes, you are correct.

ng0@shadowwalker ~/src/guix/guix-no-changes/gnu/packages$ egrep -nr "password-store"
password-utils.scm:253:(define-public password-store
password-utils.scm:255:    (name "password-store")
password-utils.scm:260:               (string-append "https://git.zx2c4.com/password-store/snapshot/"

Thanks for closing this.
-- 
♥Ⓐ  ng0
Current Keys: https://we.make.ritual.n0.is/ng0.txt
For non-prism friendly talk find me on http://www.psyced.org

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2016-08-03 12:23 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-08 22:27 [PATCH] gnu: Add pass Jessica Tallon
2016-02-09 21:33 ` Leo Famulari
2016-02-09 21:36 ` Ludovic Courtès
2016-02-09 22:55 ` Andreas Enge
2016-02-17 18:13   ` Andreas Enge
2016-02-28  8:39     ` Andreas Enge
2016-02-28 15:12       ` Jessica Tallon
2016-03-02  8:30         ` Leo Famulari
2016-03-02  8:39           ` Leo Famulari
2016-03-02  9:13             ` Ludovic Courtès
2016-03-02 19:19               ` Leo Famulari
2016-08-01 15:24     ` ng0
2016-08-03  1:17       ` Leo Famulari
2016-08-03 12:23         ` ng0
  -- strict thread matches above, loose matches on Subject: below --
2015-08-23  2:51 Steve Sprang
2015-08-27 21:11 ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).