Message ID | 5d862d14705443a7898adf814a8a647f22df6d2b.1687211787.git.felix.lechner@lease-up.com |
---|---|
State | New |
Headers | show |
Series | [bug#64179] gnu: Add wasm-micro-runtime. | expand |
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?
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 --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")