diff mbox series

[bug#64179] gnu: Add wasm-micro-runtime.

Message ID 5d862d14705443a7898adf814a8a647f22df6d2b.1687211787.git.felix.lechner@lease-up.com
State New
Headers show
Series [bug#64179] gnu: Add wasm-micro-runtime. | expand

Commit Message

Felix Lechner June 19, 2023, 9:56 p.m. UTC
* gnu/packages/web.scm (wasm-micro-runtime): New variable.
---
 gnu/packages/web.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)


base-commit: d884fc9e2efecfba09af4694f5a13ad7fc6f704f

Comments

Maxim Cournoyer Sept. 6, 2023, 1:55 p.m. UTC | #1
Hi Felix,

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

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

[...]

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

> +          (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

--8<---------------cut here---------------start------------->8---
            (add-after 'unpack 'chdir
             (lambda _
              (chdir "product-mini/platforms/linux")))
--8<---------------cut here---------------end--------------->8---

It looks like this should do it.

> +    (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?
Ricardo Wurmus Sept. 20, 2023, 2:39 p.m. UTC | #2
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.
diff mbox series

Patch

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