Subject: [bug#44269] [PATCH] gnu: Add eosio-cdt.

From: [email-masked]
Date: Tue, 27 Oct 2020 22:12:46 +0100

Hi all!

This is my first patch, I hope I'm doing it correctly.

The patch below adds the Contract Development Toolkit (compiler) for smart
contracts on the EOS blockchain. I also have a package for EOS itself that is
a bit more involved, so I'll submit separately.

Total package size is 607MB of which self is 329MB. It takes a while to
compile (about an hour on my i7 laptop).

Any feedback is appreciated. Thanks.

Jesse

---
 gnu/packages/finance.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 4397cf8ba8..0e661c4b56 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -59,6 +59,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
@@ -96,6 +97,7 @@
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages upnp)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages gnuzilla))
@@ -547,6 +549,39 @@ generation from a seed.  Your secret keys are encrypted and are never sent to
 other machines/servers.  Electroncash does not download the Bitcoin Cash blockchain.")
     (license license:expat)))
 
+(define-public eosio-cdt
+  (package
+    (name "eosio-cdt")
+    (version "1.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference (url "https://github.com/EOSIO/eosio.cdt")
+                           (commit (string-append "v" version))
+                           (recursive? #t)))
+       (sha256
+        (base32
+         "1mrc8dn7sf086456c63rlha4j3fh0g1a59dbd6in6nyhan712xps"))
+       (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("git" ,git)
+       ("doxygen" ,doxygen)
+       ("pkg-config" ,pkg-config)
+       ("curl" ,curl)))
+    (inputs
+     `(("gmp" ,gmp)
+       ("openssl" ,openssl)
+       ("python" ,python-3)))
+    (arguments
+     `(#:build-type "Release"))
+    (home-page "https://developers.eos.io/manuals/eosio.cdt/latest/index")
+    (synopsis "EOSIO.CDT is a suite of tools used to build EOSIO contracts")
+    (description
+     "EOSIO.CDT is a toolchain for WebAssembly (WASM) and set of tools to
+facilitate smart contract development for the EOSIO platform.")
+    (license license:expat)))
+
 (define-public monero
   ;; This package bundles easylogging++ and lmdb.
   ;; The bundled easylogging++ is modified, and the changes will not be
-- 
2.24.1