summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorArtyom V. Poptsov <poptsov.artyom@gmail.com>2024-06-18 22:43:44 +0300
committerSharlatan Hellseher <sharlatanus@gmail.com>2024-06-19 14:25:55 +0100
commit051aa813bd092b02b0e3b67b7131243072b32047 (patch)
tree042fd82691d4ecccda44465a2cab2e1c46e31fae /gnu/packages
parentcb0b42a8d4e4c6d4d435f04dd5b3da009bb79d08 (diff)
downloadguix-051aa813bd092b02b0e3b67b7131243072b32047.tar.gz
gnu: Add go-github-com-ipld-go-ipld-prime.
* gnu/packages/ipfs.scm (go-github-com-ipld-go-ipld-prime): New variable.

Change-Id: Icbf768341fda23154b82f10e3701ce435c9ec6e9
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/ipfs.scm51
1 files changed, 50 insertions, 1 deletions
diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm
index 7fb50452b6..5d426dc326 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -37,7 +37,8 @@
   #:use-module (gnu packages golang-web)
   #:use-module (gnu packages golang-xyz)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages shells))
+  #:use-module (gnu packages shells)
+  #:use-module (gnu packages specifications))
 
 (define-public go-github-com-ipfs-go-block-format
   (package
@@ -298,6 +299,54 @@ throughout its lifetime.")
 order to be a part of the @acronym{IPLD, InterPlanetary Linked Data} merkle-forest.")
     (license license:expat)))
 
+(define-public go-github-com-ipld-go-ipld-prime
+  (package
+    (name "go-github-com-ipld-go-ipld-prime")
+    (version "0.21.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ipld/go-ipld-prime")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ycb08h0hvq3mw3sbjkjzp5sfcxmss155jxiv5gjg7myxvzk91ja"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:go go-1.21
+      #:unpack-path "github.com/ipld/go-ipld-prime/"
+      #:import-path "github.com/ipld/go-ipld-prime/"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'copy-ipld-specfs
+            (lambda* (#:key import-path #:allow-other-keys)
+              (copy-recursively
+               (string-append #$(this-package-native-input
+                                 "specification-ipld")
+                              "/share/ipld/")
+               (string-append "src/" import-path "/ipld")))))))
+    (native-inputs
+     (list go-github-com-frankban-quicktest
+           go-github-com-warpfork-go-testmark
+           specification-ipld))
+    (propagated-inputs
+     (list go-github-com-google-go-cmp-cmp
+           go-github-com-ipfs-go-block-format
+           go-github-com-ipfs-go-cid
+           go-github-com-multiformats-go-multicodec
+           go-github-com-multiformats-go-multihash
+           go-github-com-polydawn-refmt
+           go-gopkg-in-yaml-v2))
+    (home-page "https://github.com/ipld/go-ipld-prime")
+    (synopsis "Golang interfaces for the IPLD Data Model")
+    (description
+     "@code{go-ipld-prime} is an implementation of the IPLD spec interfaces, a
+batteries-included codec implementations of IPLD for CBOR and JSON, and tooling for
+basic operations on IPLD objects (traversals, etc).")
+    (license license:expat)))
+
 (define-public go-github-com-ipfs-go-ipfs-api
   (let ((commit
           "dafc2a13a4389ac1a6c2786e34ab70a4f26d3a3f")