guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] gnu: Add eschalot.


From: Eric Bavier
Subject: Re: [PATCH] gnu: Add eschalot.
Date: Tue, 30 Aug 2016 12:34:38 -0500

On Tue, 30 Aug 2016 11:09:49 +0000
ng0 <address@hidden> wrote:

> From a95d7059ea452c9fe9b8d148c33e0d77fbbffc04 Mon Sep 17 00:00:00 2001
> From: ng0 <address@hidden>
> 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 <address@hidden>
>  ;;; Copyright © 2016 Lukas Gradl <address@hidden>
>  ;;; Copyright © 2016 Tobias Geerinckx-Rice <address@hidden>
> +;;; Copyright © 2016 ng0 <address@hidden>
>  ;;;
>  ;;; 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]