[PATCH] gnu: Add wasm-micro-runtime.

  • Done
  • quality assurance status badge
Details
3 participants
  • Felix Lechner
  • Maxim Cournoyer
  • Ricardo Wurmus
Owner
unassigned
Submitted by
Felix Lechner
Severity
normal
F
F
Felix Lechner wrote on 19 Jun 2023 23:56
(address . guix-patches@gnu.org)(name . Felix Lechner)(address . felix.lechner@lease-up.com)
5d862d14705443a7898adf814a8a647f22df6d2b.1687211787.git.felix.lechner@lease-up.com
* gnu/packages/web.scm (wasm-micro-runtime): New variable.
---
gnu/packages/web.scm | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (67 lines)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index f5b6c8cd2f..cfd3ae2d30 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -62,6 +62,7 @@
;;; Copyright © 2023 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2022 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu>
+;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -111,6 +112,7 @@ (define-module (gnu packages web)
#:use-module (gnu packages bittorrent)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
+ #:use-module (gnu packages ccache)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
@@ -1640,6 +1642,42 @@ (define-public wasm3
(description "WASM3 is a fast WebAssembly interpreter.")
(license license:expat)))
+(define-public wasm-micro-runtime
+ (package
+ (name "wasm-micro-runtime")
+ (version "1.2.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bytecodealliance/wasm-micro-runtime")
+ (commit (string-append "WAMR-" version))))
+ (file-name (git-file-name "WAMR" version))
+ (sha256
+ (base32
+ "1mbwaj25798ilhg02447k3c2813xvxd70dwdlr4ha73xxbdgi54f"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'check)
+ (replace 'configure
+ (lambda _
+ (chdir "product-mini/platforms/linux")
+ (mkdir-p "build")
+ (chdir "build")
+ (invoke "cmake" "--install-prefix" #$output ".."))))))
+ (native-inputs (list
+ ccache
+ gcc))
+ (home-page "https://bytecodealliance.github.io/wamr.dev")
+ (synopsis "WebAssembly Micro Runtime")
+ (description "WebAssembly Micro Runtime (WAMR) is a lightweight standalone
+WebAssembly (Wasm) runtime with small footprint, high performance and highly
+configurable features for applications cross from embedded, IoT, edge to Trusted
+Execution Environment (TEE), smart contract, cloud native and other features.")
+ (license license:asl2.0)))
+
(define-public websocketpp
(package
(name "websocketpp")

base-commit: d884fc9e2efecfba09af4694f5a13ad7fc6f704f
--
2.40.1
M
M
Maxim Cournoyer wrote on 6 Sep 2023 15:55
(name . Felix Lechner)(address . felix.lechner@lease-up.com)(address . 64179@debbugs.gnu.org)
87fs3r76e4.fsf@gmail.com
Hi Felix,

Felix Lechner <felix.lechner@lease-up.com> writes:

Toggle quote (2 lines)
> * gnu/packages/web.scm (wasm-micro-runtime): New variable.

[...]

Toggle quote (20 lines)
> +(define-public wasm-micro-runtime
> + (package
> + (name "wasm-micro-runtime")
> + (version "1.2.2")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/bytecodealliance/wasm-micro-runtime")
> + (commit (string-append "WAMR-" version))))
> + (file-name (git-file-name "WAMR" version))
> + (sha256
> + (base32
> + "1mbwaj25798ilhg02447k3c2813xvxd70dwdlr4ha73xxbdgi54f"))))
> + (build-system cmake-build-system)
> + (arguments
> + (list
> + #:phases
> + #~(modify-phases %standard-phases
> + (delete 'check)

Instead of deleting the check phase, uses #:tests? #f with an
appropriate comment (e.g.: ';no test suite' if inline).

Toggle quote (7 lines)
> + (replace 'configure
> + (lambda _
> + (chdir "product-mini/platforms/linux")
> + (mkdir-p "build")
> + (chdir "build")
> + (invoke "cmake" "--install-prefix" #$output ".."))))))

Instead of overriding configure, missing all the important CMake options
that the default configure phase would use, did you try toa add a phase
like

Toggle snippet (5 lines)
(add-after 'unpack 'chdir
(lambda _
(chdir "product-mini/platforms/linux")))

It looks like this should do it.

Toggle quote (4 lines)
> + (native-inputs (list
> + ccache
> + gcc))

I'm pretty sure gcc is not necessary since it's already provided by
cmake-build-system. ccache seems useless since we always build from
scratch in a clean environment.

Could you try the above suggestions and send a v2?

--
Thanks,
Maxim
F
F
Felix Lechner wrote on 6 Sep 2023 23:23
[PATCH v2] gnu: Add wasm-micro-runtime.
(address . 64179@debbugs.gnu.org)(name . Felix Lechner)(address . felix.lechner@lease-up.com)
d59fcdd8ce0b440b3ffa96e9273c8f13c8c75679.1694035430.git.felix.lechner@lease-up.com
* gnu/packages/web.scm (wasm-micro-runtime): New variable.
---

Hi Maxim,

The pointers were great. Everything worked. I also updated the version
to 1.2.3. Thanks!

Kind regards
Felix

gnu/packages/web.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 46a60b8b15..2379a68741 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -63,6 +63,7 @@
;;; Copyright © 2022 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2023 Christopher Howard <christopher@librehacker.com>
+;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1709,6 +1710,36 @@ (define-public wasm3
(description "WASM3 is a fast WebAssembly interpreter.")
(license license:expat)))
+(define-public wasm-micro-runtime
+ (package
+ (name "wasm-micro-runtime")
+ (version "1.2.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bytecodealliance/wasm-micro-runtime")
+ (commit (string-append "WAMR-" version))))
+ (file-name (git-file-name "WAMR" version))
+ (sha256
+ (base32
+ "1s7r8vfxixf737jp12cf7as68fd63lrmqdxj7fiqdla2wk89ly3f"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "product-mini/platforms/linux"))))))
+ (home-page "https://bytecodealliance.github.io/wamr.dev")
+ (synopsis "WebAssembly Micro Runtime")
+ (description "WebAssembly Micro Runtime (WAMR) is a lightweight standalone
+WebAssembly (Wasm) runtime with small footprint, high performance and highly
+configurable features for applications cross from embedded, IoT, edge to Trusted
+Execution Environment (TEE), smart contract, cloud native and other features.")
+ (license license:asl2.0)))
+
(define-public websocketpp
(package
(name "websocketpp")

base-commit: 65dcfb3f3865d08467da747041263fd22460d393
--
2.41.0
R
R
Ricardo Wurmus wrote on 20 Sep 2023 16:39
[PATCH] gnu: Add wasm-micro-runtime.
(address . 64179-done@debbugs.gnu.org)
87ttrohppv.fsf@elephly.net
Thanks for the patch. I pushed it to the master branch with commit
e05c225ffbc6decb8294d30dfb0776284025c19f.

I reflowed the description and tried to get the tests to run. When I
decided to accept defeat I added a comment to explain why they are
disabled.

--
Ricardo
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 64179@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 64179
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch