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?
>From c35aaafb4c2184b113c0c7382557a3b8376f20c6 Mon Sep 17 00:00:00 2001 Message-Id: <c35aaafb4c2184b113c0c7382557a3b8376f20c6.1456907157.git....@famulari.name> From: Jessica Tallon <tsyes...@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 <andr...@enge.fr> Co-authored-by: Leo Famulari <l...@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 <efr...@flashner.co.il> ;;; Copyright © 2015 Aljosha Papsch <m...@rpapsch.de> ;;; Copyright © 2016 Christopher Allan Webber <cweb...@dustycloud.org> +;;; Copyright © 2016 Jessica Tallon <tsyes...@tsyesika.se> +;;; Copyright © 2016 Andreas Enge <andr...@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