commit:     c177d1212996d8cf74d5fc8b1b613fdb1dd4e7c9
Author:     John Helmert III <ajak <AT> gentoo <DOT> org>
AuthorDate: Thu Jan  6 18:52:29 2022 +0000
Commit:     John Helmert III <ajak <AT> gentoo <DOT> org>
CommitDate: Thu Jan  6 19:07:27 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c177d121

dev-util/rizin: workaround build failure with tree-sitter[-ts-cli] and nodejs

Closes: https://bugs.gentoo.org/830068
Signed-off-by: John Helmert III <ajak <AT> gentoo.org>

 .../files/rizin-0.3.2-never-rebuild-parser.patch   | 36 ++++++++++++++++++++++
 dev-util/rizin/rizin-0.3.2.ebuild                  |  3 +-
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/dev-util/rizin/files/rizin-0.3.2-never-rebuild-parser.patch 
b/dev-util/rizin/files/rizin-0.3.2-never-rebuild-parser.patch
new file mode 100644
index 000000000000..5231da0c7eaf
--- /dev/null
+++ b/dev-util/rizin/files/rizin-0.3.2-never-rebuild-parser.patch
@@ -0,0 +1,36 @@
+commit 9bcfa2a6d3eaa5df00ae728c44811faf08effbd3
+Author: John Helmert III <jchelme...@posteo.net>
+Date:   Thu Jan 6 11:12:58 2022 -0600
+
+    shlr/rizin-shell-parser/src: Never rebuild parser.c
+    
+    This requires dev-libs/tree-sitter[ts-cli] and net-libs/nodejs, both
+    of which would be heavy new dependencies. However, these are only
+    needed to rebuild the already-existing tree-sitter parser, which
+    doesn't do much for us (if anything) since it already exists. In this
+    case, it's better to just reduce fragility by unconditionally
+    disabling this.
+    
+    Bug: https://bugs.gentoo.org/830068
+    Signed-off-by: John Helmert III <a...@gentoo.org>
+
+diff --git a/shlr/rizin-shell-parser/src/meson.build 
b/shlr/rizin-shell-parser/src/meson.build
+index 0171183ae0..81dcc13b33 100644
+--- a/shlr/rizin-shell-parser/src/meson.build
++++ b/shlr/rizin-shell-parser/src/meson.build
+@@ -1,14 +1,4 @@
+-tree_sitter_bin = find_program('tree-sitter', required: false)
+-node_bin = find_program('node', required: false)
+-if tree_sitter_bin.found() and node_bin.found() and 
tree_sitter_dep.type_name() != 'internal'
+-  parser_c = custom_target('parser_src_c',
+-    command: [tree_sitter_wrap_py, tree_sitter_bin, '@OUTDIR@/..', '@INPUT@'],
+-    input: [grammar_js],
+-    output: 'parser.c',
+-  )
+-else
+-  parser_c = files('parser.c')
+-endif
++parser_c = files('parser.c')
+ 
+ shell_parser_files = [files('scanner.c'), parser_c]
+ shell_parser_inc = [platform_inc, include_directories('tree_sitter')]

diff --git a/dev-util/rizin/rizin-0.3.2.ebuild 
b/dev-util/rizin/rizin-0.3.2.ebuild
index be6e33690c5a..f0f118bdd3dc 100644
--- a/dev-util/rizin/rizin-0.3.2.ebuild
+++ b/dev-util/rizin/rizin-0.3.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -40,6 +40,7 @@ BDEPEND="${PYTHON_DEPS}"
 
 PATCHES=(
        "${FILESDIR}/${PN}-0.3.0-typedb-prefix.patch"
+       "${FILESDIR}/${PN}-0.3.2-never-rebuild-parser.patch"
 )
 
 S="${WORKDIR}/${PN}-v${PV}"

Reply via email to