Subject: [PATCH v3 12/47] gnu: Add go-github-com-blanu-dust.

From: Raghav Gururajan <[email-masked]>
Date: Tue, 8 Jun 2021 19:10:04 -0400

* gnu/packages/golang.scm (go-github-com-blanu-dust): New variable.
---
 gnu/packages/golang.scm | 122 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 122 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 52e6318019..58883dc891 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -69,6 +69,128 @@
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
 
+(define-public go-github-com-blanu-dust
+  (package
+    (name "go-github-com-blanu-dust")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/blanu/Dust")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1lya21w06ramq37af5hdiafbrv5k1csjm7k7m00v0bfxg3ni01bs"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:unpack-path "github.com/blanu/Dust"
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'build
+           (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys)
+             (for-each
+              (lambda (directory)
+                ((assoc-ref %standard-phases 'build)
+                 #:source source
+                 #:system system
+                 #:outputs outputs
+                 #:search-paths search-paths
+                 #:build-flags build-flags
+                 #:unpack-path unpack-path
+                 #:inputs inputs
+                 #:import-path directory))
+              (list
+               "github.com/blanu/Dust/go/buf"
+               "github.com/blanu/Dust/go/dist"
+               "github.com/blanu/Dust/go/huffman"
+               "github.com/blanu/Dust/go/model1"
+               "github.com/blanu/Dust/go/prim1"
+               "github.com/blanu/Dust/go/proc"
+               "github.com/blanu/Dust/go/sillyHex"
+               "github.com/blanu/Dust/go/skein"
+               "github.com/blanu/Dust/go/v2/Dust2_proxy"
+               "github.com/blanu/Dust/go/v2/Dust2_tool"
+               "github.com/blanu/Dust/go/v2/crypting"
+               "github.com/blanu/Dust/go/v2/interface"
+               "github.com/blanu/Dust/go/v2/shaping"))
+             #t))
+         (replace 'check
+           (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys)
+             (for-each
+              (lambda (directory)
+                ((assoc-ref %standard-phases 'check)
+                 #:source source
+                 #:system system
+                 #:outputs outputs
+                 #:search-paths search-paths
+                 #:tests? tests?
+                 #:unpack-path unpack-path
+                 #:inputs inputs
+                 #:import-path directory))
+              (list
+               "github.com/blanu/Dust/go/buf"
+               "github.com/blanu/Dust/go/dist"
+               ;; Repository is missing test files directory.
+               ;;"github.com/blanu/Dust/go/huffman"
+               "github.com/blanu/Dust/go/model1"
+               "github.com/blanu/Dust/go/prim1"
+               "github.com/blanu/Dust/go/proc"
+               "github.com/blanu/Dust/go/sillyHex"
+               "github.com/blanu/Dust/go/skein"
+               "github.com/blanu/Dust/go/v2/Dust2_proxy"
+               "github.com/blanu/Dust/go/v2/Dust2_tool"
+               "github.com/blanu/Dust/go/v2/crypting"
+               "github.com/blanu/Dust/go/v2/interface"
+               "github.com/blanu/Dust/go/v2/shaping"))
+             #t))
+         (replace 'install
+           (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys)
+             (for-each
+              (lambda (directory)
+                ((assoc-ref %standard-phases 'install)
+                 #:source source
+                 #:system system
+                 #:outputs outputs
+                 #:search-paths search-paths
+                 #:install-source? install-source?
+                 #:unpack-path unpack-path
+                 #:inputs inputs
+                 #:import-path directory))
+              (list
+               "github.com/blanu/Dust/go/buf"
+               "github.com/blanu/Dust/go/dist"
+               "github.com/blanu/Dust/go/huffman"
+               "github.com/blanu/Dust/go/model1"
+               "github.com/blanu/Dust/go/prim1"
+               "github.com/blanu/Dust/go/proc"
+               "github.com/blanu/Dust/go/sillyHex"
+               "github.com/blanu/Dust/go/skein"
+               "github.com/blanu/Dust/go/v2/Dust2_proxy"
+               "github.com/blanu/Dust/go/v2/Dust2_tool"
+               "github.com/blanu/Dust/go/v2/crypting"
+               "github.com/blanu/Dust/go/v2/interface"
+               "github.com/blanu/Dust/go/v2/shaping"))
+             #t)))))
+    (propagated-inputs
+     `(("go-github-com-operatorfoundation-ed25519"
+        ,go-github-com-operatorfoundation-ed25519)
+       ("go-github-com-op-go-logging" ,go-github-com-op-go-logging)
+       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+    (home-page "github.com/blanu/Dust")
+    (synopsis "Censorship-Resistant Internet Transport Protocol")
+    (description "Dust is an Internet protocol designed to resist a number of
+attacks currently in active use to censor Internet communication.  While
+adherence to the theoretical maxims of cryptographic security are observed where
+possible, the focus of Dust is on real solutions to real attacks.")
+    (license
+     (list
+      ;; Skein.
+      license:bsd-2
+      ;; Others.
+      license:expat))))
+
 (define-public go-github-com-op-go-logging
   (package
     (name "go-github-com-op-go-logging")
-- 
2.31.1