Subject: [bug#62669] [PATCH] gnu: wabt: Update to 1.0.32

From: Robin Templeton <[email-masked]>
Date: Thu, 06 Apr 2023 18:13:10 -0400

* gnu/packages/web.scm (wabt): Update to 1.0.32. Enable test suite.
---
wabt apparently only works on amd64; add a supported-systems field to
reflect that. (Thanks to David Thompson for reporting this problem.)

 gnu/packages/web.scm | 58 +++++++++++++++++++++++++++++---------------
 1 file changed, 39 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 7b05a99752..ad2e3e0850 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -62,6 +62,7 @@
 ;;; Copyright © 2023 Paul A. Patience <[email-masked]>
 ;;; Copyright © 2022 Bruno Victal <[email-masked]>
 ;;; Copyright © 2023 David Thompson <[email-masked]>
+;;; Copyright © 2023 Robin Templeton <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -157,6 +158,7 @@ (define-module (gnu packages web)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lisp-xyz)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages lsof)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages mail)
@@ -1518,45 +1520,63 @@ (define-public libwebsockets
 (define-public wabt
   (package
     (name "wabt")
-    (version "1.0.12")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/WebAssembly/wabt")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1zlv3740wkqj4mn6sr84h0x6wk2lcp4pwwmqsh5yyqp1j1glbsa0"))))
+    (version "1.0.32")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/WebAssembly/wabt")
+                    (commit version)
+                    (recursive? #t)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0m124r8v9c0hxiaa4iy7ch4ng8msnirbc2vb702gbdjhvgzyrcwh"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags '("-DBUILD_TESTS=OFF")
-       #:tests? #f))
-    (inputs `(("python" ,python-2)
-              ("re2c" ,re2c)))
+     (list #:out-of-source? #t
+           #:test-target "check"
+           #:phases #~(modify-phases %standard-phases
+                        ;; The wasm2c tests (e.g., "memory-init.txt") compile
+                        ;; successfully with clang but not gcc.
+                        (add-before 'check 'set-cc
+                          (lambda _
+                            (setenv "CC" "clang"))))))
+    (native-inputs (list python clang))
     (home-page "https://github.com/WebAssembly/wabt")
     (synopsis "WebAssembly Binary Toolkit")
-    (description "WABT (pronounced: wabbit) is a suite of tools for
-WebAssembly, including:
+    (description
+     "WABT (pronounced: wabbit) is a suite of tools for WebAssembly,
+including:
 
 @enumerate
-@item @command{wat2wasm} translates from WebAssembly text format to the
+@item @command{wat2wasm} translates from WebAssembly text format (WAT) to the
 WebAssembly binary format
 @item @command{wasm2wat} is the inverse; it translates from the binary format
-back to the text format (also known as a .wat)
+back to WAT
 @item @command{wasm-objdump} prints information about a wasm binary, similarly
 to @command{objdump}.
 @item @command{wasm-interp} decodes ands run a WebAssembly binary file using a
 stack-based interpreter
-@item @command{wat-desugar} parses .wat text form as supported by the spec
+@item @command{wasm-decompile} decompiles a wasm binary into a readable
+C-like syntax
+@item @command{wat-desugar} parses WAT text form as supported by the spec
 interpreter (s-expressions, flat syntax, or mixed) and prints the canonical
 flat format
 @item @command{wasm2c} converts a WebAssembly binary file to a C source and
 header file.
+@item @command{wasm-strip} removes sections of a WebAssembly binary file
+@item @command{wasm-validate} validates a file in the WebAssembly binary
+format
+@item @command{wast2json} converts a file in the WebAssembly spec test
+format to a JSON file and associated wasm binary file
+@item @command{wasm-opcodecnt} counts opcode usage for instructions
+@item @command{spectest-interp} reads a spectest JSON file and runs its
+test in the interpreter
 @end enumerate
 
 These tools are intended for use in (or for development of) toolchains or
 other systems that want to manipulate WebAssembly files.")
+    (supported-systems '("x86_64-linux"))
     (license license:asl2.0)))
 
 (define-public wasm3

base-commit: 47ea688fd27d0ce0c8ea5481f1f94d0ebc3e37eb
-- 
2.39.1