On Sun, May 09, 2021 at 12:28:03PM +0200, Sebastien Marie wrote:
> Hi,
> 
> The following diff update lang/wabt to 1.0.23.

New diff with futher changes:

- Fabian told me privately to remove him as MAINTAINER

- I patched command-line tools with unveil and pledge (tools are used
  to inspect wasm files, which tend to be untrusted files from
  internet)

Comments or OK ?
-- 
Sebastien Marie


diff 7180b7eb7a5ecb0c5a59d457eb8191f1571bdb8d /home/semarie/repos/openbsd/ports
blob - 9b9cda8d58eb01e9f60a8709532e605f0d573b5a
file + lang/wabt/Makefile
--- lang/wabt/Makefile
+++ lang/wabt/Makefile
@@ -2,27 +2,35 @@
 
 COMMENT =      WebAssembly binary toolkit
 
-GH_ACCOUNT =   WebAssembly
-GH_PROJECT =   wabt
-GH_TAGNAME =   1.0.8
+DISTNAME =     wabt-${V}
+V =            1.0.23
 
 CATEGORIES =   lang
 
-MAINTAINER =   Fabian Raetz <[email protected]>
+HOMEPAGE =     https://github.com/WebAssembly/wabt/
 
 # Apache 2.0
 PERMIT_PACKAGE =       Yes
 
+# use pledge()
 WANTLIB = ${COMPILER_LIBCXX} c m
 
+MASTER_SITES = https://github.com/WebAssembly/wabt/releases/download/${V}/
+
+EXTRACT_SUFX = .tar.xz
+
 # C++11
 COMPILER =     base-clang ports-gcc
 
-MODULES =      devel/cmake
+MODULES =      devel/cmake \
+               lang/python
 
-CONFIGURE_ARGS =       -DBUILD_TESTS=OFF \
-                       -DRUN_RE2C=OFF
+MODPY_RUNDEP = No
 
-NO_TEST =      Yes
+TEST_TARGET =  check
 
+# disable skip-stack-guard-page test: SEGFAULT
+pre-test:
+       -mv ${WRKSRC}/test/wasm2c/spec/skip-stack-guard-page.txt{,.disable}
+
 .include <bsd.port.mk>
blob - a974db92ccc8ee84f5270e4aee6655bc66df8be0
file + lang/wabt/distinfo
--- lang/wabt/distinfo
+++ lang/wabt/distinfo
@@ -1,2 +1,2 @@
-SHA256 (wabt-1.0.8.tar.gz) = /6rW3lz7xb4MfnjM1MC0S70eWeqjjPUPQkXKBNvaiD4=
-SIZE (wabt-1.0.8.tar.gz) = 954541
+SHA256 (wabt-1.0.23.tar.xz) = /EIQKeGWTdashGz0JwroEwo6TZ1VO/QcF1pW2o5CI+4=
+SIZE (wabt-1.0.23.tar.xz) = 1925328
blob - /dev/null
file + lang/wabt/patches/patch-src_tools_wasm-decompile_cc
--- /dev/null
+++ lang/wabt/patches/patch-src_tools_wasm-decompile_cc
@@ -0,0 +1,29 @@
+$OpenBSD$
+
+Index: src/tools/wasm-decompile.cc
+--- src/tools/wasm-decompile.cc.orig
++++ src/tools/wasm-decompile.cc
+@@ -19,6 +19,9 @@
+ #include <cstdio>
+ #include <cstdlib>
+ 
++#include <err.h>
++#include <unistd.h>
++
+ #include "src/apply-names.h"
+ #include "src/binary-reader.h"
+ #include "src/binary-reader-ir.h"
+@@ -70,6 +73,13 @@ int ProgramMain(int argc, char** argv) {
+                        });
+     parser.Parse(argc, argv);
+   }
++
++  if (unveil(infile.c_str(), "r") != 0)
++    err(1, "unveil: %s", infile.c_str());
++  if (!outfile.empty() && unveil(outfile.c_str(), "wc") != 0)
++    err(1, "unveil: %s", outfile.c_str());
++  if (pledge("stdio rpath wpath cpath", NULL) != 0)
++    err(1, "pledge");
+ 
+   std::vector<uint8_t> file_data;
+   Result result = ReadFile(infile.c_str(), &file_data);
blob - /dev/null
file + lang/wabt/patches/patch-src_tools_wasm-interp_cc
--- /dev/null
+++ lang/wabt/patches/patch-src_tools_wasm-interp_cc
@@ -0,0 +1,27 @@
+$OpenBSD$
+
+Index: src/tools/wasm-interp.cc
+--- src/tools/wasm-interp.cc.orig
++++ src/tools/wasm-interp.cc
+@@ -22,6 +22,9 @@
+ #include <string>
+ #include <vector>
+ 
++#include <err.h>
++#include <unistd.h>
++
+ #include "src/binary-reader.h"
+ #include "src/error-formatter.h"
+ #include "src/feature.h"
+@@ -326,6 +329,11 @@ int ProgramMain(int argc, char** argv) {
+ 
+   ParseOptions(argc, argv);
+ 
++  if (unveil(s_infile, "r") != 0)
++    err(1, "unveil: %s", s_infile);
++  if (pledge("stdio rpath", NULL) != 0)
++    err(1, "pledge");
++  
+   wabt::Result result = ReadAndRunModule(s_infile);
+   return result != wabt::Result::Ok;
+ }
blob - /dev/null
file + lang/wabt/patches/patch-src_tools_wasm-objdump_cc
--- /dev/null
+++ lang/wabt/patches/patch-src_tools_wasm-objdump_cc
@@ -0,0 +1,25 @@
+$OpenBSD$
+
+Index: src/tools/wasm-objdump.cc
+--- src/tools/wasm-objdump.cc.orig
++++ src/tools/wasm-objdump.cc
+@@ -18,6 +18,9 @@
+ #include <cstdlib>
+ #include <cstring>
+ 
++#include <err.h>
++#include <unistd.h>
++
+ #include "src/common.h"
+ #include "src/option-parser.h"
+ #include "src/stream.h"
+@@ -117,6 +120,9 @@ Result dump_file(const char* filename) {
+ 
+ int ProgramMain(int argc, char** argv) {
+   InitStdio();
++
++  if (pledge("stdio rpath", NULL) != 0)
++    err(1, "pledge");
+ 
+   ParseOptions(argc, argv);
+   if (!s_objdump_options.headers && !s_objdump_options.details &&
blob - /dev/null
file + lang/wabt/patches/patch-src_tools_wasm-opcodecnt_cc
--- /dev/null
+++ lang/wabt/patches/patch-src_tools_wasm-opcodecnt_cc
@@ -0,0 +1,29 @@
+$OpenBSD$
+
+Index: src/tools/wasm-opcodecnt.cc
+--- src/tools/wasm-opcodecnt.cc.orig
++++ src/tools/wasm-opcodecnt.cc
+@@ -23,6 +23,9 @@
+ #include <map>
+ #include <vector>
+ 
++#include <err.h>
++#include <unistd.h>
++
+ #include "src/binary-reader.h"
+ #include "src/binary-reader-opcnt.h"
+ #include "src/option-parser.h"
+@@ -151,6 +154,13 @@ void WriteCountsWithImmediates(Stream& stream,
+ int ProgramMain(int argc, char** argv) {
+   InitStdio();
+   ParseOptions(argc, argv);
++
++  if (unveil(s_infile, "r") != 0)
++    err(1, "unveil: %s", s_infile);
++  if (s_outfile != NULL && unveil(s_outfile, "wc") != 0)
++    err(1, "unveil: %s", s_outfile);
++  if (pledge("stdio rpath wpath cpath", NULL) != 0)
++    err(1, "pledge");
+ 
+   std::vector<uint8_t> file_data;
+   Result result = ReadFile(s_infile, &file_data);
blob - /dev/null
file + lang/wabt/patches/patch-src_tools_wasm-strip_cc
--- /dev/null
+++ lang/wabt/patches/patch-src_tools_wasm-strip_cc
@@ -0,0 +1,27 @@
+$OpenBSD$
+
+Index: src/tools/wasm-strip.cc
+--- src/tools/wasm-strip.cc.orig
++++ src/tools/wasm-strip.cc
+@@ -14,6 +14,9 @@
+  * limitations under the License.
+  */
+ 
++#include <err.h>
++#include <unistd.h>
++
+ #include "src/binary.h"
+ #include "src/binary-reader.h"
+ #include "src/binary-reader-nop.h"
+@@ -85,6 +88,11 @@ int ProgramMain(int argc, char** argv) {
+   InitStdio();
+   ParseOptions(argc, argv);
+ 
++  if (unveil(s_filename.c_str(), "rwc") != 0)
++    err(1, "unveil: %s", s_filename.c_str());
++  if (pledge("stdio rpath wpath cpath", NULL) != 0)
++    err(1, "pledge");
++  
+   std::vector<uint8_t> file_data;
+   result = ReadFile(s_filename.c_str(), &file_data);
+   if (Succeeded(result)) {
blob - /dev/null
file + lang/wabt/patches/patch-src_tools_wasm-validate_cc
--- /dev/null
+++ lang/wabt/patches/patch-src_tools_wasm-validate_cc
@@ -0,0 +1,27 @@
+$OpenBSD$
+
+Index: src/tools/wasm-validate.cc
+--- src/tools/wasm-validate.cc.orig
++++ src/tools/wasm-validate.cc
+@@ -19,6 +19,9 @@
+ #include <cstdio>
+ #include <cstdlib>
+ 
++#include <err.h>
++#include <unistd.h>
++
+ #include "src/binary-reader.h"
+ #include "src/binary-reader-ir.h"
+ #include "src/error-formatter.h"
+@@ -71,6 +74,11 @@ int ProgramMain(int argc, char** argv) {
+ 
+   InitStdio();
+   ParseOptions(argc, argv);
++
++  if (unveil(s_infile.c_str(), "r") != 0)
++    err(1, "unveil: %s", s_infile.c_str());
++  if (pledge("stdio rpath", NULL) != 0)
++    err(1, "pledge");
+ 
+   std::vector<uint8_t> file_data;
+   result = ReadFile(s_infile.c_str(), &file_data);
blob - /dev/null
file + lang/wabt/patches/patch-src_tools_wasm2c_cc
--- /dev/null
+++ lang/wabt/patches/patch-src_tools_wasm2c_cc
@@ -0,0 +1,25 @@
+$OpenBSD$
+
+Index: src/tools/wasm2c.cc
+--- src/tools/wasm2c.cc.orig
++++ src/tools/wasm2c.cc
+@@ -19,6 +19,9 @@
+ #include <cstdio>
+ #include <cstdlib>
+ 
++#include <err.h>
++#include <unistd.h>
++
+ #include "src/apply-names.h"
+ #include "src/binary-reader.h"
+ #include "src/binary-reader-ir.h"
+@@ -108,6 +111,9 @@ int ProgramMain(int argc, char** argv) {
+ 
+   InitStdio();
+   ParseOptions(argc, argv);
++
++  if (pledge("stdio rpath wpath cpath", NULL) != 0)
++    err(1, "pledge");
+ 
+   std::vector<uint8_t> file_data;
+   result = ReadFile(s_infile.c_str(), &file_data);
blob - /dev/null
file + lang/wabt/patches/patch-src_tools_wasm2wat_cc
--- /dev/null
+++ lang/wabt/patches/patch-src_tools_wasm2wat_cc
@@ -0,0 +1,29 @@
+$OpenBSD$
+
+Index: src/tools/wasm2wat.cc
+--- src/tools/wasm2wat.cc.orig
++++ src/tools/wasm2wat.cc
+@@ -19,6 +19,9 @@
+ #include <cstdio>
+ #include <cstdlib>
+ 
++#include <err.h>
++#include <unistd.h>
++
+ #include "src/apply-names.h"
+ #include "src/binary-reader.h"
+ #include "src/binary-reader-ir.h"
+@@ -103,6 +106,13 @@ int ProgramMain(int argc, char** argv) {
+   InitStdio();
+   ParseOptions(argc, argv);
+ 
++  if (unveil(s_infile.c_str(), "r") != 0)
++    err(1, "unveil: %s", s_infile.c_str());
++  if (!s_outfile.empty() && unveil(s_outfile.c_str(), "wc") != 0)
++    err(1, "unveil: %s", s_outfile.c_str());
++  if (pledge("stdio rpath wpath cpath", NULL) != 0)
++    err(1, "pledge");
++  
+   std::vector<uint8_t> file_data;
+   result = ReadFile(s_infile.c_str(), &file_data);
+   if (Succeeded(result)) {
blob - /dev/null
file + lang/wabt/patches/patch-src_tools_wast2json_cc
--- /dev/null
+++ lang/wabt/patches/patch-src_tools_wast2json_cc
@@ -0,0 +1,25 @@
+$OpenBSD$
+
+Index: src/tools/wast2json.cc
+--- src/tools/wast2json.cc.orig
++++ src/tools/wast2json.cc
+@@ -21,6 +21,9 @@
+ #include <cstdio>
+ #include <string>
+ 
++#include <err.h>
++#include <unistd.h>
++
+ #include "config.h"
+ 
+ #include "src/binary-writer.h"
+@@ -102,6 +105,9 @@ int ProgramMain(int argc, char** argv) {
+ 
+   ParseOptions(argc, argv);
+ 
++  if (pledge("stdio rpath wpath cpath", NULL) != 0)
++    err(1, "pledge");
++  
+   std::vector<uint8_t> file_data;
+   Result result = ReadFile(s_infile, &file_data);
+   std::unique_ptr<WastLexer> lexer = WastLexer::CreateBufferLexer(
blob - /dev/null
file + lang/wabt/patches/patch-src_tools_wat-desugar_cc
--- /dev/null
+++ lang/wabt/patches/patch-src_tools_wat-desugar_cc
@@ -0,0 +1,29 @@
+$OpenBSD$
+
+Index: src/tools/wat-desugar.cc
+--- src/tools/wat-desugar.cc.orig
++++ src/tools/wat-desugar.cc
+@@ -20,6 +20,9 @@
+ #include <cstdio>
+ #include <cstdlib>
+ 
++#include <err.h>
++#include <unistd.h>
++
+ #include "config.h"
+ 
+ #include "src/apply-names.h"
+@@ -83,6 +86,13 @@ static void ParseOptions(int argc, char** argv) {
+ int ProgramMain(int argc, char** argv) {
+   InitStdio();
+   ParseOptions(argc, argv);
++
++  if (unveil(s_infile, "r") != 0)
++    err(1, "unveil: %s", s_infile);
++  if (s_outfile != NULL && unveil(s_outfile, "wc") != 0)
++    err(1, "unveil: %s", s_outfile);
++  if (pledge("stdio rpath wpath cpath", NULL) != 0)
++    err(1, "pledge");
+ 
+   std::vector<uint8_t> file_data;
+   Result result = ReadFile(s_infile, &file_data);
blob - /dev/null
file + lang/wabt/patches/patch-src_tools_wat2wasm_cc
--- /dev/null
+++ lang/wabt/patches/patch-src_tools_wat2wasm_cc
@@ -0,0 +1,29 @@
+$OpenBSD$
+
+Index: src/tools/wat2wasm.cc
+--- src/tools/wat2wasm.cc.orig
++++ src/tools/wat2wasm.cc
+@@ -21,6 +21,9 @@
+ #include <cstdio>
+ #include <string>
+ 
++#include <err.h>
++#include <unistd.h>
++
+ #include "config.h"
+ 
+ #include "src/binary-writer.h"
+@@ -125,6 +128,13 @@ int ProgramMain(int argc, char** argv) {
+   InitStdio();
+ 
+   ParseOptions(argc, argv);
++
++  if (unveil(s_infile, "r") != 0)
++    err(1, "unveil: %s", s_infile);
++  if (!s_outfile.empty() && unveil(s_outfile.c_str(), "wc") != 0)
++    err(1, "unveil: %s", s_outfile.c_str());
++  if (pledge("stdio rpath wpath cpath", NULL) != 0)
++    err(1, "pledge");
+ 
+   std::vector<uint8_t> file_data;
+   Result result = ReadFile(s_infile, &file_data);
blob - 855d16f9ebf6655c68b3db4ec73025a449b2e360
file + lang/wabt/pkg/DESCR
--- lang/wabt/pkg/DESCR
+++ lang/wabt/pkg/DESCR
@@ -14,6 +14,9 @@ wasm-objdump:
 wasm-interp:
    decode and run a WebAssembly binary file using a stack-based interpreter
 
+wasm-decompile:
+   decompile a wasm binary into readable C-like syntax
+
 wat-desugar:
    parse .wat text form as supported by the spec interpreter
    (s-expressions, flat syntax, or mixed) and print "canonical" flat format
blob - 400b3e9b625f5b6ff617d5a2c527e91ab6373cda
file + lang/wabt/pkg/PLIST
--- lang/wabt/pkg/PLIST
+++ lang/wabt/pkg/PLIST
@@ -1,5 +1,6 @@
 @comment $OpenBSD: PLIST,v 1.2 2019/02/04 14:13:04 rapha Exp $
 @bin bin/spectest-interp
+@bin bin/wasm-decompile
 @bin bin/wasm-interp
 @bin bin/wasm-objdump
 @bin bin/wasm-opcodecnt
@@ -10,7 +11,11 @@
 @bin bin/wast2json
 @bin bin/wat-desugar
 @bin bin/wat2wasm
+include/wasm-rt-impl.h
+include/wasm-rt.h
+@static-lib lib/libwasm-rt-impl.a
 @man man/man1/spectest-interp.1
+@man man/man1/wasm-decompile.1
 @man man/man1/wasm-interp.1
 @man man/man1/wasm-objdump.1
 @man man/man1/wasm-opcodecnt.1

Reply via email to