GNU bug report logs - #44269
[PATCH] gnu: Add eosio-cdt.

Previous Next

Package: guix-patches;

Reported by: jesse <at> unraveled.tech

Date: Tue, 27 Oct 2020 22:50:02 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 44269 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#44269; Package guix-patches. (Tue, 27 Oct 2020 22:50:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to jesse <at> unraveled.tech:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Tue, 27 Oct 2020 22:50:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: jesse <at> unraveled.tech
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: Add eosio-cdt.
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





Information forwarded to guix-patches <at> gnu.org:
bug#44269; Package guix-patches. (Tue, 10 Nov 2020 20:23:02 GMT) Full text and rfc822 format available.

Message #8 received at 44269 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <marius <at> gnu.org>
To: jesse <at> unraveled.tech, 44269 <at> debbugs.gnu.org
Subject: Re: [bug#44269] [PATCH] gnu: Add eosio-cdt.
Date: Tue, 10 Nov 2020 21:21:54 +0100
[Message part 1 (text/plain, inline)]
jesse <at> unraveled.tech writes:

> Hi all!
>
> This is my first patch, I hope I'm doing it correctly.

Cool, welcome!

The patch is lacking a proper commit message, but looks pretty good
overall.  Some comments follow.

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

I suppose some of that time is because of the bundled LLVM, libcxx,
etc.  Do you know if it's possible to remove those, or at least build
them separately?

> 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

Can you also add your name to the list of authors at the top of the file?

> @@ -59,6 +59,7 @@
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages crypto)
>    #:use-module (gnu packages curl)
> +  #:use-module (gnu packages cmake)

I believe this import is unused.

[...]
  
> +(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)

It looks like the git dependency comes from
"modules/ClangExternalProject.txt".  Though I don't see it being used.
Can you try to substitute* out the "find_package(Git ...)" statement and
see if it's possible to make it work without it?

It's not uncommon that build scripts look for git even when it's not
strictly needed.  By removing the dependency we avoid needlessly
rebuilding this package every time git is updated.

> +       ("doxygen" ,doxygen)
> +       ("pkg-config" ,pkg-config)
> +       ("curl" ,curl)))
> +    (inputs
> +     `(("gmp" ,gmp)
> +       ("openssl" ,openssl)
> +       ("python" ,python-3)))
> +    (arguments
> +     `(#:build-type "Release"))

Is there a particular reason to use a "Release" build here (as opposed
to the default "RelWithDebInfo")?  Guix is a hackers distro, and
debugging symbols are nice.  :-)

> +    (home-page "https://developers.eos.io/manuals/eosio.cdt/latest/index")
> +    (synopsis "EOSIO.CDT is a suite of tools used to build EOSIO contracts")

Just "Suite of tools to build EOSIO contracts".

Otherwise the patch looks great.  Can you send an updated version?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#44269; Package guix-patches. (Tue, 17 Nov 2020 14:14:02 GMT) Full text and rfc822 format available.

Message #11 received at 44269 <at> debbugs.gnu.org (full text, mbox):

From: Jesse Eisses <jesse <at> unraveled.tech>
To: Marius Bakke <marius <at> gnu.org>
Cc: 44269 <at> debbugs.gnu.org
Subject: Re: [bug#44269] [PATCH] gnu: Add eosio-cdt.
Date: Tue, 17 Nov 2020 09:20:32 +0100
Thanks for the feedback

As there are changes made to LLVM and libcxx for eosio-cdt I think we
have to compile them. These large dependencies are included as git
submodules though, so I will try to put them in separate packages.

The comments are clear; I'm working on an updated patch :)

- Jesse


Op di 10 nov. 2020 om 21:22 schreef Marius Bakke <marius <at> gnu.org>:
>
> jesse <at> unraveled.tech writes:
>
> > Hi all!
> >
> > This is my first patch, I hope I'm doing it correctly.
>
> Cool, welcome!
>
> The patch is lacking a proper commit message, but looks pretty good
> overall.  Some comments follow.
>
> > 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).
>
> I suppose some of that time is because of the bundled LLVM, libcxx,
> etc.  Do you know if it's possible to remove those, or at least build
> them separately?
>
> > 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
>
> Can you also add your name to the list of authors at the top of the file?
>
> > @@ -59,6 +59,7 @@
> >    #:use-module (gnu packages compression)
> >    #:use-module (gnu packages crypto)
> >    #:use-module (gnu packages curl)
> > +  #:use-module (gnu packages cmake)
>
> I believe this import is unused.
>
> [...]
>
> > +(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)
>
> It looks like the git dependency comes from
> "modules/ClangExternalProject.txt".  Though I don't see it being used.
> Can you try to substitute* out the "find_package(Git ...)" statement and
> see if it's possible to make it work without it?
>
> It's not uncommon that build scripts look for git even when it's not
> strictly needed.  By removing the dependency we avoid needlessly
> rebuilding this package every time git is updated.
>
> > +       ("doxygen" ,doxygen)
> > +       ("pkg-config" ,pkg-config)
> > +       ("curl" ,curl)))
> > +    (inputs
> > +     `(("gmp" ,gmp)
> > +       ("openssl" ,openssl)
> > +       ("python" ,python-3)))
> > +    (arguments
> > +     `(#:build-type "Release"))
>
> Is there a particular reason to use a "Release" build here (as opposed
> to the default "RelWithDebInfo")?  Guix is a hackers distro, and
> debugging symbols are nice.  :-)
>
> > +    (home-page "https://developers.eos.io/manuals/eosio.cdt/latest/index")
> > +    (synopsis "EOSIO.CDT is a suite of tools used to build EOSIO contracts")
>
> Just "Suite of tools to build EOSIO contracts".
>
> Otherwise the patch looks great.  Can you send an updated version?




This bug report was last modified 3 years and 153 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.