[bug#37340] gnu: Add wabt.
diff mbox series

Message ID 874l1n6we1.fsf@yucca
State New
Headers show
Series
  • [bug#37340] gnu: Add wabt.
Related show

Commit Message

Vagrant Cascadian Sept. 8, 2019, 8:10 a.m. UTC
Hi Guix,

wabt includes tools for manipulating WebAssembly/Wasm related files.

Does web.scm make sense for it? 

I'm sure better formatting could be done on the synopsis and
description... help would be appreciated!

This also adds yet another test suite dependency and optional feature
for diffoscope; not sure if that should be in a separate patch; in this
case I've added it in the same commit...

Thanks!

live well,
  vagrant

Comments

Vagrant Cascadian Sept. 19, 2019, 7:30 p.m. UTC | #1
On 2019-09-08, Vagrant Cascadian wrote:
> wabt includes tools for manipulating WebAssembly/Wasm related files.
>
> Does web.scm make sense for it? 
>
> I'm sure better formatting could be done on the synopsis and
> description... help would be appreciated!
>
> This also adds yet another test suite dependency and optional feature
> for diffoscope; not sure if that should be in a separate patch; in this
> case I've added it in the same commit...

I went ahead and pushed a slightly modified version in
4d83157cd806aeb864664ebb380c19f6be04648c.

live well,
  vagrant

Patch
diff mbox series

From c0ec454bd69e69d2104fd2c64f22c4b07c1bb80f Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Thu, 5 Sep 2019 11:13:22 -0700
Subject: [PATCH] gnu: Add wabt.

* gnu/packages/web (wabt): New variable.
  [use-module]: re2c.
* gnu/packages/package-management (diffoscope)[native-inputs]: Add wabt.
---
 gnu/packages/package-management.scm |  1 +
 gnu/packages/web.scm                | 40 +++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+)

diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index b712bd7ec9..d5ead2acc3 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -664,6 +664,7 @@  transactions from C or Python.")
                        ("sqlite" ,sqlite)
                        ("squashfs-tools" ,squashfs-tools)
                        ("tcpdump" ,tcpdump)
+                       ("wabt" ,wabt)
                        ("xxd" ,xxd)
                        ("xz" ,xz)))
       (home-page "https://diffoscope.org/")
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index ad6f0635dd..c4169da8c9 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -123,6 +123,7 @@ 
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages re2c)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils)
@@ -859,6 +860,45 @@  for efficient socket-like bidirectional reliable communication channels.")
     ;; This is LGPLv2.1-only with extra exceptions specified in 'LICENSE'.
     (license license:lgpl2.1)))
 
+(define-public wabt
+  (package
+    (name "wabt")
+    (version "1.0.11")
+    (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 "0hn88vlqyclpk79v3wg3lrssd9vwhjdgvb41g03jqakygxxgnmp5"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags '("-DBUILD_TESTS=OFF")
+       #:tests? #f))
+    (inputs `(("python" ,python-2)
+              ("re2c" ,re2c)))
+    (home-page "https://github.com/WebAssembly/wabt")
+    (synopsis "WebAssembly Binary Toolkit")
+    (description "WABT (pronounced: wabbit) is a suite of tools for
+WebAssembly, including:
+
+* wat2wasm: translate from WebAssembly text format to the WebAssembly binary
+  format
+* wasm2wat: the inverse of wat2wasm, translate from the binary format back
+  to the text format (also known as a .wat)
+* wasm-objdump: print information about a wasm binary.  Similar to objdump.
+* wasm-interp: decode and run a WebAssembly binary file using a stack-based
+  interpreter
+* wat-desugar: parse .wat text form as supported by the spec interpreter
+  (s-expressions, flat syntax, or mixed) and print canonical flat format
+* wasm2c: convert a WebAssembly binary file to a C source and header
+
+These tools are intended for use in (or for development of) toolchains or
+other systems that want to manipulate WebAssembly files.")
+    (license license:asl2.0)))
+
 (define-public websocketpp
   (package
     (name "websocketpp")
-- 
2.20.1