On Tue, 30 Aug 2016 11:09:49 +0000 ng0 <n...@we.make.ritual.n0.is> wrote:
> From a95d7059ea452c9fe9b8d148c33e0d77fbbffc04 Mon Sep 17 00:00:00 2001 > From: ng0 <n...@we.make.ritual.n0.is> > Date: Fri, 26 Aug 2016 15:41:33 +0000 > Subject: [PATCH] gnu: Add eschalot. > > * gnu/packages/crypto.scm (eschalot): New variable. > --- > gnu/packages/crypto.scm | 55 > +++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 55 insertions(+) > > diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm > index 5dad97c..be55a1d 100644 > --- a/gnu/packages/crypto.scm > +++ b/gnu/packages/crypto.scm > @@ -4,6 +4,7 @@ > ;;; Copyright © 2016 Leo Famulari <l...@famulari.name> > ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox> > ;;; Copyright © 2016 Tobias Geerinckx-Rice <m...@tobias.gr> > +;;; Copyright © 2016 ng0 <n...@we.make.ritual.n0.is> > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -37,6 +38,7 @@ > #:use-module ((guix licenses) #:prefix license:) > #:use-module (guix packages) > #:use-module (guix download) > + #:use-module (guix git-download) > #:use-module (guix build-system gnu)) > > (define-public libsodium > @@ -263,3 +265,56 @@ gain and retain the authorization and encryption keys > required to perform > secure operations. ") > (license (list license:lgpl2.1+ ; the files keyutils.* > license:gpl2+)))) ; the rest > + > +;; There is no release candidate but commits point out a version number. The README mentions tarballs. Are they not available anywhere? I couldn't seem to access the .onion address mentioned on the github page. > +(define-public eschalot > + (let ((commit "0bf31d88a11898c19b1ed25ddd2aff7b35dbac44") > + (revision "1")) > + (package > + (name "eschalot") > + (version (string-append "1.2.0-" revision "." (string-take commit 7))) > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/schnabear/eschalot") > + (commit commit))) > + (sha256 > + (base32 > + "0lj38ldh8vzi11wp4ghw4k0fkwp0s04zv8k8d473p1snmbh7mx98")))) > + (inputs > + `(("openssl" ,openssl))) ; It needs: openssl/{bn,pem,rsa,sha}.h > + (build-system gnu-build-system) > + (arguments > + `(#:make-flags (list "CC=gcc" > + (string-append "PREFIX=" (assoc-ref %outputs > "out")) > + (string-append "INSTALL=" "install")) > + ;; XXX: make test would run a !VERY! long hashing of names with the > use > + ;; of a wordlist, the amount of computing time this would waste on > build > + ;; servers is in no relation to the size or importance of this small > + ;; application, therefore we disable the tests. > + ;; TODO: Patch the Makefile to run a modified test phase which runs > a > + ;; reasonable amount of hashes. > + #:tests? #f How about something simple like: (replace 'check (lambda _ (zero? (system* "./eschalot" "-r" "^guix|^guixsd")))) That command returns in under .3s on my i5. I suppose it could be expanded to test the wordlist capabilities. > + #:phases > + (modify-phases %standard-phases > + (replace 'configure > + (lambda _ > + (substitute* "Makefile" > + (("/bin/rm") "rm")))) I think this phase could simply be removed. The RM variable is only referenced in the 'clean' and 'cleantest' targets, which aren't made. If it's really necessary, "RM=rm" could simply be added to #:make-flags. > + ;; Make install can not create the bin dir. Create it. > + (add-before 'install 'create-bin-dir > + (lambda* (#:key outputs inputs #:allow-other-keys) ^ The 'inputs' variable is not referenced in this phase, and can be left out. Otherwise looks good, `~Eric