unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#30007] [PATCH 0/2] gnu: borg: Unbundle libb2.
@ 2018-01-06 15:51 Tobias Geerinckx-Rice
  2018-01-06 15:54 ` [bug#30007] [PATCH 1/2] gnu: Add libb2 Tobias Geerinckx-Rice
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-01-06 15:51 UTC (permalink / raw)
  To: 30007

Guix,

This adds a libb2 (BLAKE2) package and makes borg use that instead of
its bundled copy.

Not sure whether it belongs in crypto.scm or the new digest.scm wherein
I randomly plonked it. Not sure whether it matters.

Kind regards,

T G-R

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

* [bug#30007] [PATCH 1/2] gnu: Add libb2.
  2018-01-06 15:51 [bug#30007] [PATCH 0/2] gnu: borg: Unbundle libb2 Tobias Geerinckx-Rice
@ 2018-01-06 15:54 ` Tobias Geerinckx-Rice
  2018-01-06 15:54   ` [bug#30007] [PATCH 2/2] gnu: borg: Unbundle libb2 Tobias Geerinckx-Rice
  2018-01-06 17:49   ` [bug#30007] [PATCH 1/2] gnu: Add libb2 Leo Famulari
  2018-01-06 17:47 ` [bug#30007] [PATCH 0/2] gnu: borg: Unbundle libb2 Leo Famulari
  2018-01-08 14:13 ` bug#30007: " Tobias Geerinckx-Rice
  2 siblings, 2 replies; 8+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-01-06 15:54 UTC (permalink / raw)
  To: 30007

* gnu/packages/digest.scm (libb2): New public variable.
---
 gnu/packages/digest.scm | 48 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 47 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/digest.scm b/gnu/packages/digest.scm
index 5f14ab913..456980ea5 100644
--- a/gnu/packages/digest.scm
+++ b/gnu/packages/digest.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -17,9 +17,11 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages digest)
+  #:use-module (gnu packages autotools)
   #: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 xxhash
@@ -53,3 +55,47 @@ The code is highly portable, and hashes of the same length are identical on all
 platforms (both big and little endian).")
     (license (list license:bsd-2        ; xxhash library (xxhash.[ch])
                    license:gpl2+))))    ; xxhsum.c
+
+(define-public libb2
+  (let ((revision "1")                  ; upstream doesn't ‘do’ releases
+        (commit "60ea749837362c226e8501718f505ab138e5c19d"))
+    (package
+      (name "libb2")
+      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/BLAKE2/libb2")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "07a2m8basxrsj9dsp5lj24y8jraj85lfy56756a7za1nfkgy04z7"))))
+      (build-system gnu-build-system)
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("libtool" ,libtool)))
+      (arguments
+       `(#:configure-flags
+         (list "--enable-fat"           ; detect optimisations at run time...
+               "--disable-native")      ; ...not build time
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'bootstrap
+             (lambda _
+               (invoke "sh" "autogen.sh")
+               #t)))))
+      (home-page "https://blake2.net/")
+      (synopsis "Library implementing the BLAKE2 family of hash functions")
+      (description
+       "libb2 is a portable implementation of the BLAKE2 family of cryptographic
+hash functions.  It includes optimised implementations for IA-32 and AMD64
+processors, and an interface layer that automatically selects the best
+implementation for the processor it is run on.
+
+@dfn{BLAKE2} (RFC 7693) is a family of high-speed cryptographic hash functions
+that are faster than MD5, SHA-1, SHA-2, and SHA-3, yet are at least as secure
+as the latest standard, SHA-3.  It is an improved version of the SHA-3 finalist
+BLAKE.")
+      (license license:public-domain))))
-- 
2.15.0

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

* [bug#30007] [PATCH 2/2] gnu: borg: Unbundle libb2.
  2018-01-06 15:54 ` [bug#30007] [PATCH 1/2] gnu: Add libb2 Tobias Geerinckx-Rice
@ 2018-01-06 15:54   ` Tobias Geerinckx-Rice
  2018-01-06 17:49     ` Leo Famulari
  2018-01-06 17:49   ` [bug#30007] [PATCH 1/2] gnu: Add libb2 Leo Famulari
  1 sibling, 1 reply; 8+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-01-06 15:54 UTC (permalink / raw)
  To: 30007

* gnu/packages/backup.scm (borg)[source]: Remove bundled libb2 in snippet.
[inputs]: Add libb2.
[arguments]: Use it.
---
 gnu/packages/backup.scm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 2fba1a9e7..19a26dc9a 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
@@ -37,6 +37,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages digest)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages ftp)
@@ -483,7 +484,7 @@ detection, and lossless compression.")
            ;; Remove bundled shared libraries.
            (with-directory-excursion "src/borg/algorithms"
              (for-each delete-file-recursively
-                       (list "lz4" "zstd")))))))
+                       (list "blake2" "lz4" "zstd")))))))
     (build-system python-build-system)
     (arguments
      `(#:modules ((srfi srfi-26) ; for cut
@@ -494,9 +495,11 @@ detection, and lossless compression.")
          (add-after 'unpack 'set-env
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((openssl (assoc-ref inputs "openssl"))
+                   (libb2 (assoc-ref inputs "libb2"))
                    (lz4 (assoc-ref inputs "lz4"))
                    (zstd (assoc-ref inputs "zstd")))
                (setenv "BORG_OPENSSL_PREFIX" openssl)
+               (setenv "BORG_LIBB2_PREFIX" libb2)
                (setenv "BORG_LIBLZ4_PREFIX" lz4)
                (setenv "BORG_LIBZSTD_PREFIX" zstd)
                (setenv "PYTHON_EGG_CACHE" "/tmp")
@@ -558,6 +561,7 @@ detection, and lossless compression.")
        ("python-guzzle-sphinx-theme" ,python-guzzle-sphinx-theme)))
     (inputs
      `(("acl" ,acl)
+       ("libb2" ,libb2)
        ("lz4" ,lz4)
        ("openssl" ,openssl)
        ("python-llfuse" ,python-llfuse)
-- 
2.15.0

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

* [bug#30007] [PATCH 0/2] gnu: borg: Unbundle libb2.
  2018-01-06 15:51 [bug#30007] [PATCH 0/2] gnu: borg: Unbundle libb2 Tobias Geerinckx-Rice
  2018-01-06 15:54 ` [bug#30007] [PATCH 1/2] gnu: Add libb2 Tobias Geerinckx-Rice
@ 2018-01-06 17:47 ` Leo Famulari
  2018-01-08 14:13 ` bug#30007: " Tobias Geerinckx-Rice
  2 siblings, 0 replies; 8+ messages in thread
From: Leo Famulari @ 2018-01-06 17:47 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice; +Cc: 30007

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

On Sat, Jan 06, 2018 at 04:51:01PM +0100, Tobias Geerinckx-Rice wrote:
> Guix,
> 
> This adds a libb2 (BLAKE2) package and makes borg use that instead of
> its bundled copy.

Okay!

> Not sure whether it belongs in crypto.scm or the new digest.scm wherein
> I randomly plonked it. Not sure whether it matters.

I'd put it in crypto.scm since it is supposed to be cryptographically
secure.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* [bug#30007] [PATCH 1/2] gnu: Add libb2.
  2018-01-06 15:54 ` [bug#30007] [PATCH 1/2] gnu: Add libb2 Tobias Geerinckx-Rice
  2018-01-06 15:54   ` [bug#30007] [PATCH 2/2] gnu: borg: Unbundle libb2 Tobias Geerinckx-Rice
@ 2018-01-06 17:49   ` Leo Famulari
  2018-01-06 18:12     ` Tobias Geerinckx-Rice
  1 sibling, 1 reply; 8+ messages in thread
From: Leo Famulari @ 2018-01-06 17:49 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice; +Cc: 30007

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

On Sat, Jan 06, 2018 at 04:54:17PM +0100, Tobias Geerinckx-Rice wrote:
> * gnu/packages/digest.scm (libb2): New public variable.

> +      (name "libb2")
> +      (version (string-append "0.0.0-" revision "." (string-take commit 7)))

Use the (git-version) procedure here

> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://github.com/BLAKE2/libb2")
> +                      (commit commit)))
> +                (file-name (string-append name "-" version "-checkout"))

And (git-file-name)

> +           (add-after 'unpack 'bootstrap
> +             (lambda _
> +               (invoke "sh" "autogen.sh")
> +               #t)))))

(invoke) should raise an exception if something goes wrong;
otherwise it returns #t. Do we need that extra #t?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* [bug#30007] [PATCH 2/2] gnu: borg: Unbundle libb2.
  2018-01-06 15:54   ` [bug#30007] [PATCH 2/2] gnu: borg: Unbundle libb2 Tobias Geerinckx-Rice
@ 2018-01-06 17:49     ` Leo Famulari
  0 siblings, 0 replies; 8+ messages in thread
From: Leo Famulari @ 2018-01-06 17:49 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice; +Cc: 30007

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

On Sat, Jan 06, 2018 at 04:54:18PM +0100, Tobias Geerinckx-Rice wrote:
> * gnu/packages/backup.scm (borg)[source]: Remove bundled libb2 in snippet.
> [inputs]: Add libb2.
> [arguments]: Use it.

LGTM, thanks!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* [bug#30007] [PATCH 1/2] gnu: Add libb2.
  2018-01-06 17:49   ` [bug#30007] [PATCH 1/2] gnu: Add libb2 Leo Famulari
@ 2018-01-06 18:12     ` Tobias Geerinckx-Rice
  0 siblings, 0 replies; 8+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-01-06 18:12 UTC (permalink / raw)
  To: leo; +Cc: 30007


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

Leo,

Leo Famulari wrote on 06/01/18 at 18:49:
> Use the (git-version) procedure here
> And (git-file-name)

Both new to me. Thanks!

>> +           (add-after 'unpack 'bootstrap
>> +             (lambda _
>> +               (invoke "sh" "autogen.sh")
>> +               #t)))))
> 
> (invoke) should raise an exception if something goes wrong;
> otherwise it returns #t. Do we need that extra #t?

Nope, the whole point of (invoke) was to replace my original use of
(system*), and the #t just got left in. Thanks for spotting!

Kind regards,

T G-R


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 248 bytes --]

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

* bug#30007: [PATCH 0/2] gnu: borg: Unbundle libb2.
  2018-01-06 15:51 [bug#30007] [PATCH 0/2] gnu: borg: Unbundle libb2 Tobias Geerinckx-Rice
  2018-01-06 15:54 ` [bug#30007] [PATCH 1/2] gnu: Add libb2 Tobias Geerinckx-Rice
  2018-01-06 17:47 ` [bug#30007] [PATCH 0/2] gnu: borg: Unbundle libb2 Leo Famulari
@ 2018-01-08 14:13 ` Tobias Geerinckx-Rice
  2 siblings, 0 replies; 8+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-01-08 14:13 UTC (permalink / raw)
  To: 30007-done

Tobias Geerinckx-Rice wrote on 06/01/18 at 16:51:
> This adds a libb2 (BLAKE2) package and makes borg use that instead of
> its bundled copy.

Pushed with suggested modifications as
c6220b13014f47a0aeb29975cdcf3c3b2b880b9d et al.

Thanks for the reviews,

T G-R

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

end of thread, other threads:[~2018-01-08 14:12 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-06 15:51 [bug#30007] [PATCH 0/2] gnu: borg: Unbundle libb2 Tobias Geerinckx-Rice
2018-01-06 15:54 ` [bug#30007] [PATCH 1/2] gnu: Add libb2 Tobias Geerinckx-Rice
2018-01-06 15:54   ` [bug#30007] [PATCH 2/2] gnu: borg: Unbundle libb2 Tobias Geerinckx-Rice
2018-01-06 17:49     ` Leo Famulari
2018-01-06 17:49   ` [bug#30007] [PATCH 1/2] gnu: Add libb2 Leo Famulari
2018-01-06 18:12     ` Tobias Geerinckx-Rice
2018-01-06 17:47 ` [bug#30007] [PATCH 0/2] gnu: borg: Unbundle libb2 Leo Famulari
2018-01-08 14:13 ` bug#30007: " Tobias Geerinckx-Rice

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).