View Raw Ebuild
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CRATES="
adler2@2.0.1
aho-corasick@1.1.4
arrayvec@0.7.8
bitflags@2.13.0
block-buffer@0.12.1
bumpalo@3.20.3
cfg-if@1.0.4
const-oid@0.10.2
cpp_demangle@0.5.1
cpufeatures@0.3.1
crc32fast@1.5.0
crypto-common@0.2.2
digest@0.11.3
equivalent@1.0.2
errno@0.3.14
fallible-iterator@0.2.0
fastrand@2.5.0
flate2@1.1.9
foldhash@0.2.0
futures-core@0.3.32
futures-task@0.3.32
futures-util@0.3.32
getrandom@0.4.3
gimli@0.33.0
hashbrown@0.17.1
hybrid-array@0.4.15
indexmap@2.14.0
itoa@1.0.18
js-sys@0.3.103
libc@0.2.189
linux-raw-sys@0.12.1
memchr@2.8.2
miniz_oxide@0.8.9
msvc-demangler@0.11.0
nonmax@0.5.5
object@0.39.1
once_cell@1.21.4
pdb@0.8.0
pin-project-lite@0.2.17
proc-macro2@1.0.106
quote@1.0.45
r-efi@6.0.0
regex@1.12.4
regex-automata@0.4.14
regex-syntax@0.8.11
rustc-demangle@0.1.27
rustix@1.1.5
rustversion@1.0.22
scroll@0.11.0
serde@1.0.229
serde_core@1.0.229
serde_derive@1.0.229
serde_json@1.0.151
serde_spanned@1.1.1
sha2@0.11.0
simd-adler32@0.3.9
slab@0.4.12
slotmap@1.1.1
smallvec@1.15.1
stable_deref_trait@1.2.1
syn@2.0.117
syn@3.0.6
tempfile@3.27.0
thiserror@1.0.69
thiserror@2.0.18
thiserror-impl@1.0.69
thiserror-impl@2.0.18
toml@1.1.6+spec-1.1.0
toml_datetime@1.1.1+spec-1.1.0
toml_parser@1.1.3+spec-1.1.0
toml_writer@1.1.2+spec-1.1.0
typenum@1.20.1
undname@2.1.2
unicode-ident@1.0.24
uuid@1.23.4
version_check@0.9.5
wasm-bindgen@0.2.126
wasm-bindgen-macro@0.2.126
wasm-bindgen-macro-support@0.2.126
wasm-bindgen-shared@0.2.126
windows-link@0.2.1
windows-sys@0.61.2
winnow@1.0.4
zmij@1.0.23
"
RUST_MIN_VER="1.90"
inherit cargo
DESCRIPTION="Agent-first decompiler, a Rust port of Ghidra"
HOMEPAGE="https://kuna.noelo.org/ https://github.com/Noelo-Lab/kuna"
SRC_URI="
${CARGO_CRATE_URIS}
https://github.com/Noelo-Lab/kuna/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
"
LICENSE="Apache-2.0"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions BSD-2 LGPL-2.1+ MIT Unlicense"
SLOT="0"
KEYWORDS="amd64"
RESTRICT="test"
DOCS=(
NOTICE
README.md
docs/
)
src_configure() {
# Bake the compiled SLEIGH tree into the binary, like upstream releases do
myfeatures=( embed-specs )
cargo_src_configure
}
src_compile() {
# option_env!() at compile time, so --version reports the release version
local -x KUNA_VERSION="${PV}"
cd "${S}/decompiler" || die
# The SLEIGH compiler compiles the vendored .slaspec tree that the
# embed-specs feature of the CLI then bakes in.
cargo_env "${CARGO}" build $(usex debug "" --release) -p kuna-slacomp || die
"$(cargo_target_dir)/slacomp" -a "${S}/specs" || die
cargo_src_compile -p kuna-cli
}
src_install() {
local -x KUNA_VERSION="${PV}"
(
cd "${S}/decompiler/crates/kuna-cli" || die
cargo_src_install
)
dodoc -r "${DOCS[@]}"
}