Files
haikuports/dev-util/radare2/radare2-5.9.8.recipe
2024-11-25 09:36:42 +01:00

325 lines
10 KiB
Bash

SUMMARY="UNIX-like reverse engineering framework and commandline tools"
DESCRIPTION="Forensics tool, scriptable commandline hexadecimal editor, \
able to open disk files, analyzing binaries in several common and less common \
formats, disassemble code for several CPU architectures, debug programs, \
attach to remote GDB servers, and much more."
HOMEPAGE="https://radare.org/"
COPYRIGHT="2007-2023 pancake
2007-2015 Skia
2012-2015 pof
2008-2015 nibble
2007-2015 ret2libc
2009-2016 defragger
2005-2006 Matt Mackall
2009-2015 earada
2009-2015 Jody Frankowski
2009-2015 Anton Kochkov
2011-2015 RoValles
2009-2015 dso
2013-2016 condret
2012-2015 Fedor Sakharov
2012-2015 Bhootravi
2013-2015 th0rpe
2015 julien (jvoisin) voisin
2014-2015 jn
2009-2015 montekki
2009-2015 ninjahacker
2015 riq
2015 qnix
2015 danielps
2015 dkreuter
2015 ampotos
2008 Anant Narayanan
2008-2015 inisider
2015 nodepad
2008-2013 xvilka
2013-2015 sghctoma
2013-2014 batchdrake
2010-2015 Adam Pridgen
2010-2013 eloi
2014 jfrankowski
2009-2015 The Lemon Man
2013-2015 fenugrec
2004 Philippe Biondi
2015 aaronpuchert
2010-2015 dark_k3y
2015 Felix Held
2012-2013 Alexander
2014 Jonathan Neuschöfer
2016 bobby.smiles
2015-2016 oddcoder
2009-2016 Alexandru Caciulescu
2015-2016 javierprtd
2016 SkUaTeR
2009-2016 madprogrammer
2016 moritz
2016 n4x0r
2016 soez
2013 Daniel Holden
2010 Bean Lee
2014-2016 defragger
2014-2016 madprogrammer
1986-2016 Free Software Foundation, Inc.
2005 QNX Software Systems.
2001-2004 Fabrice Bellard
2009 Intel Corporation
1988-2004 Keith Packard
1988-2004 Bart Massey
2007-2015 dso
2002-2013 Vivek Thampi
1999-2013 Dieter Baron and Thomas Klausner
1995-2013 Jean-loup Gailly
2012 Alexander Demin
2005 Jan Wilmans
2002-2009 Bas Wijnen
2014-2016 condret
2016 unlogic
2012 Karl Hobley
2007 Vanya A. Sergeev
2007-2012 Synopsys Inc
1994-1995 Myricom, Inc.
1986-1995 Ian F. Darwin
2003 Christos Zoulas
1992-1994 Henry Spencer
2011 Remy Oukaour
2000-2001 Markus Friedl
2008 Nadia Heninger
2008 J. Alex Halderman
2003-2010 University of Illinois at Urbana-Champaign
1987-1994 The Regents of the University of California
2000-2001 Aaron D. Gifford
1991-1992 RSA Data Security, Inc.
2012 Yann Collet
1995-1999 Cryptography Research, Inc. All
1997-1998 Andrew Tridgell
2002-2003 Steve French
2010-2016 Sebastian Reichel"
LICENSE="GNU GPL v3
GNU LGPL v3"
REVISION="1"
SOURCE_URI="https://github.com/radare/radare2/archive/$portVersion.tar.gz"
CHECKSUM_SHA256="e45e4fd342f04b2e00363bc1b68cc375c1cf36041085d3d59caa7a3b7be43836"
SOURCE_FILENAME="radare2-$portVersion.tar.gz"
srcGitRev_2="87ab82cc96e83e02f044c0c4111ade2a65576c60"
SOURCE_URI_2="https://github.com/radareorg/radare2-testbins/archive/$srcGitRev_2.tar.gz"
CHECKSUM_SHA256_2="f32a2607b52b838030c22946d7a0c61cb56ac67d32496f0524fa5aa889d39152"
SOURCE_DIR_2="radare2-testbins-$srcGitRev_2"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
commandBinDir=$binDir
commandSuffix=$secondaryArchSuffix
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandBinDir=$prefix/bin
commandSuffix=
fi
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
radare2$secondaryArchSuffix = $portVersion
cmd:r2$commandSuffix = $portVersion
cmd:r2agent$commandSuffix = $portVersion
cmd:r2p$commandSuffix = $portVersion
cmd:r2pm$commandSuffix = $portVersion
cmd:r2pm.sh$commandSuffix = $portVersion
cmd:r2r$commandSuffix = $portVersion
cmd:rabin2$commandSuffix = $portVersion
cmd:radare2$commandSuffix = $portVersion
cmd:radiff2$commandSuffix = $portVersion
cmd:rafind2$commandSuffix = $portVersion
cmd:ragg2$commandSuffix = $portVersion
cmd:ragg2_cc$commandSuffix = $portVersion
cmd:rahash2$commandSuffix = $portVersion
cmd:rasign2$commandSuffix = $portVersion
cmd:rarun2$commandSuffix = $portVersion
cmd:rasm2$commandSuffix = $portVersion
cmd:ravc2$commandSuffix = $portVersion
cmd:rax2$commandSuffix = $portVersion
lib:libr_anal$secondaryArchSuffix = $libVersionCompat
lib:libr_arch$secondaryArchSuffix = $libVersionCompat
lib:libr_asm$secondaryArchSuffix = $libVersionCompat
lib:libr_bin$secondaryArchSuffix = $libVersionCompat
lib:libr_bp$secondaryArchSuffix = $libVersionCompat
lib:libr_config$secondaryArchSuffix = $libVersionCompat
lib:libr_cons$secondaryArchSuffix = $libVersionCompat
lib:libr_core$secondaryArchSuffix = $libVersionCompat
lib:libr_crypto$secondaryArchSuffix = $libVersionCompat
lib:libr_debug$secondaryArchSuffix = $libVersionCompat
lib:libr_egg$secondaryArchSuffix = $libVersionCompat
lib:libr_esil$secondaryArchSuffix = $libVersionCompat
lib:libr_flag$secondaryArchSuffix = $libVersionCompat
lib:libr_fs$secondaryArchSuffix = $libVersionCompat
lib:libr_io$secondaryArchSuffix = $libVersionCompat
lib:libr_lang$secondaryArchSuffix = $libVersionCompat
lib:libr_magic$secondaryArchSuffix = $libVersionCompat
lib:libr_main$secondaryArchSuffix = $libVersionCompat
lib:libr_reg$secondaryArchSuffix = $libVersionCompat
lib:libr_search$secondaryArchSuffix = $libVersionCompat
lib:libr_socket$secondaryArchSuffix = $libVersionCompat
lib:libr_syscall$secondaryArchSuffix = $libVersionCompat
lib:libr_util$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libcapstone$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
lib:liblz4$secondaryArchSuffix
lib:libgmp$secondaryArchSuffix
lib:libmagic$secondaryArchSuffix
lib:libxxhash$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libzip$secondaryArchSuffix
"
PROVIDES_devel="
radare2${secondaryArchSuffix}_devel = $portVersion
devel:libr_anal$secondaryArchSuffix = $libVersionCompat
devel:libr_arch$secondaryArchSuffix = $libVersionCompat
devel:libr_asm$secondaryArchSuffix = $libVersionCompat
devel:libr_bin$secondaryArchSuffix = $libVersionCompat
devel:libr_bp$secondaryArchSuffix = $libVersionCompat
devel:libr_config$secondaryArchSuffix = $libVersionCompat
devel:libr_cons$secondaryArchSuffix = $libVersionCompat
devel:libr_core$secondaryArchSuffix = $libVersionCompat
devel:libr_crypto$secondaryArchSuffix = $libVersionCompat
devel:libr_debug$secondaryArchSuffix = $libVersionCompat
devel:libr_egg$secondaryArchSuffix = $libVersionCompat
devel:libr_esil$secondaryArchSuffix = $libVersionCompat
devel:libr_flag$secondaryArchSuffix = $libVersionCompat
devel:libr_fs$secondaryArchSuffix = $libVersionCompat
devel:libr_io$secondaryArchSuffix = $libVersionCompat
devel:libr_lang$secondaryArchSuffix = $libVersionCompat
devel:libr_magic$secondaryArchSuffix = $libVersionCompat
devel:libr_main$secondaryArchSuffix = $libVersionCompat
devel:libr_reg$secondaryArchSuffix = $libVersionCompat
devel:libr_search$secondaryArchSuffix = $libVersionCompat
devel:libr_socket$secondaryArchSuffix = $libVersionCompat
devel:libr_syscall$secondaryArchSuffix = $libVersionCompat
devel:libr_util$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
radare2${secondaryArchSuffix} == $portVersion base
devel:libcapstone$secondaryArchSuffix >= 5.0
devel:liblz4$secondaryArchSuffix
devel:libxxhash$secondaryArchSuffix
devel:libz$secondaryArchSuffix
devel:libzip$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libcapstone$secondaryArchSuffix >= 5.0
devel:libexecinfo$secondaryArchSuffix
devel:liblz4$secondaryArchSuffix
devel:libgmp$secondaryArchSuffix
devel:libmagic$secondaryArchSuffix
devel:libssl$secondaryArchSuffix >= 3
devel:libxxhash$secondaryArchSuffix
devel:libz$secondaryArchSuffix
devel:libzip$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:meson
cmd:ninja
cmd:pkg_config$secondaryArchSuffix
cmd:python3
"
# What happend with libr2.so?
defineDebugInfoPackage radare2$secondaryArchSuffix \
"$commandBinDir"/r2agent \
"$commandBinDir"/rabin2 \
"$commandBinDir"/radare2 \
"$commandBinDir"/radiff2 \
"$commandBinDir"/rafind2 \
"$commandBinDir"/ragg2 \
"$commandBinDir"/rahash2 \
"$commandBinDir"/rarun2 \
"$commandBinDir"/rasm2 \
"$commandBinDir"/ravc2\
"$commandBinDir"/rax2 \
"$libDir"/libr_anal.so.$libVersion \
"$libDir"/libr_arch.so.$libVersion \
"$libDir"/libr_asm.so.$libVersion \
"$libDir"/libr_bin.so.$libVersion \
"$libDir"/libr_bp.so.$libVersion \
"$libDir"/libr_config.so.$libVersion \
"$libDir"/libr_cons.so.$libVersion \
"$libDir"/libr_core.so.$libVersion \
"$libDir"/libr_crypto.so.$libVersion \
"$libDir"/libr_debug.so.$libVersion \
"$libDir"/libr_egg.so.$libVersion \
"$libDir"/libr_esil.so.$libVersion \
"$libDir"/libr_flag.so.$libVersion \
"$libDir"/libr_fs.so.$libVersion \
"$libDir"/libr_io.so.$libVersion \
"$libDir"/libr_lang.so.$libVersion \
"$libDir"/libr_magic.so.$libVersion \
"$libDir"/libr_main.so.$libVersion \
"$libDir"/libr_reg.so.$libVersion \
"$libDir"/libr_search.so.$libVersion \
"$libDir"/libr_socket.so.$libVersion \
"$libDir"/libr_syscall.so.$libVersion \
"$libDir"/libr_util.so.$libVersion
BUILD()
{
mkdir -p test/bins
cp -r $sourceDir2/* test/bins
# no need for these here, using system packages
rm -rf shlr/zip/{zip,zlib,include}
rm -rf shlr/lz4/{deps.mk,LICENSE,lz4.*,Makefile,README.md}
rm -f libr/hash/xxhash.c libr/hash/xxhash.h
meson build --buildtype=release \
--prefix=$prefix \
--bindir=$commandBinDir \
--libdir=$libDir \
--includedir=$includeDir \
-Duse_sys_capstone=true \
-Duse_sys_lz4=true \
-Duse_sys_magic=true \
-Duse_sys_magic=true \
-Duse_sys_openssl=true \
-Duse_sys_zip=true \
-Duse_sys_zlib=true \
-Denable_tests=true \
-Duse_webui=false --reconfigure
ninja -C build $jobArgs
}
TEST_REQUIRES="
cmd:radare2
# cmd:pip3
"
INSTALL()
{
ninja -C build install
prepareInstalledDevelLibs libr_anal libr_arch libr_asm libr_bin \
libr_bp libr_config libr_cons libr_core libr_crypto libr_debug libr_egg \
libr_esil libr_flag libr_fs libr_io libr_lang libr_magic libr_main \
libr_reg libr_search libr_socket libr_syscall libr_util
fixPkgconfig
packageEntries devel \
$developDir
}
TEST()
{
# pip3 install --user r2pipe
# all tests passed
unset meson
meson test --no-rebuild --print-errorlogs -C build
# pip3 uninstall r2pipe -y
}