summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Helmert III <ajak@gentoo.org>2023-01-22 21:38:19 -0600
committerJohn Helmert III <ajak@gentoo.org>2023-01-22 22:32:34 -0600
commit309640e8da12494bdc227e238bdbd7435cb415f9 (patch)
tree52bbe1905b2b2315c7adda8652a2e39df839ebeb
parentmedia-sound/mixxx: disable building shared libs (diff)
downloadgentoo-309640e8da12494bdc227e238bdbd7435cb415f9.tar.gz
gentoo-309640e8da12494bdc227e238bdbd7435cb415f9.tar.bz2
gentoo-309640e8da12494bdc227e238bdbd7435cb415f9.zip
dev-util/radare2: add 5.8.2
Unbundle capstone to avoid upstream requirement of capstone-5 patches which are not shipped in Gentoo's capstone package. Bug: https://bugs.gentoo.org/885395 Bug: https://bugs.gentoo.org/889026 Bug: https://bugs.gentoo.org/891805 Closes: https://github.com/gentoo/gentoo/pull/29223 Signed-off-by: John Helmert III <ajak@gentoo.org>
-rw-r--r--dev-util/radare2/Manifest5
-rw-r--r--dev-util/radare2/files/radare2-5.8.2-bundled-capstone.patch21
-rw-r--r--dev-util/radare2/files/radare2-5.8.2-vector35.patch24
-rw-r--r--dev-util/radare2/radare2-5.8.2.ebuild125
4 files changed, 175 insertions, 0 deletions
diff --git a/dev-util/radare2/Manifest b/dev-util/radare2/Manifest
index 8929834b2409..942e4cb4793e 100644
--- a/dev-util/radare2/Manifest
+++ b/dev-util/radare2/Manifest
@@ -7,5 +7,10 @@ DIST radare2-5.7.6.tar.gz 10071795 BLAKE2B e0bd54fcf4a56b34ec6f3b87ab6a20a8be235
DIST radare2-5.7.8-vector35-arm64.tar.gz 1050960 BLAKE2B 12faa86a4cdfd9cdc8e307c16d8f797ae3ee800b72e76c6ace84cb7cb5108198dbfbc9a00df6b70448628dc869c94bf8cf9794460d05be99e5a08ee5a3ed40de SHA512 478f06c3fe09232152bbb63e500a440ca8546cc11fe59f9d489a25d327469b1869fe80b4e2e2cfad8a2b96261857cf74b6708628ac30ec8dabc5da05d04c1cfd
DIST radare2-5.7.8-vector35-armv7.tar.gz 255288 BLAKE2B ca96b3f68381a0987c4efa10dcb798194486019762e89d1eb19a3fd24f6983535eea792099c60e4c1a9d2bdb5baab119fe2e9a7a889fad5a14023e5f984959b8 SHA512 e9eb6cee02bbbb265914b1f9118c7a143ed76a201c085af5516855475bf7f3ad5f9c82d1548e85a0339fbc33e029ef0e4be9d8cef68d212ae16ce1a7f18453ff
DIST radare2-5.7.8.tar.gz 10324020 BLAKE2B 628b0c146a8e797f34f43f8d76166fb8c5e945a45232c2e4d63b2c2ce89aef96a20349c519ceb62921bad75ce5faaa8ea51ab1dac79156e00eef8f9ef06f5a45 SHA512 7c819a052f5e4b3da72b945915fca92a747c52dc2e2fa8483a8c2d8e71479ce374efbbe2bc02b1b4af26db6a891b6e44cdbb9e062de2f13b22a258cceab561f6
+DIST radare2-5.8.2-capstone-4.0.2.tar.gz 3439542 BLAKE2B 435729a8fef2dce6495635352101b3befe563c8404efdbb0dccabecbe2bded332221665bacdbcd9043dda72b652b6f29c0e1a548cefb8c64d5b6b9dc174ed3d9 SHA512 7f93534517307b737422a8825b66b2a1f3e1cca2049465d60ab12595940154aaf843ba40ed348fce58de58b990c19a0caef289060eb72898cb008a88c470970e
+DIST radare2-5.8.2-vector35-arm64.tar.gz 1021315 BLAKE2B 8741de83cddda878536627c0ff6be1f7d4842cf0fefeae2895fe751e39768134f6048167d5aa265169bc22b229a8b66ce37f4ef4df3abc2b3e304dc1f1fe17d1 SHA512 9b0fcf9119304e90b3fbed5e0509a819a0a561953681f5e5f408b55db3b0c962dca59c48553cffef21a56772db7871a3987f0f7c07b5538fd4b7d1af005ccdb0
+DIST radare2-5.8.2-vector35-armv7.tar.gz 255278 BLAKE2B 8b5191c48fad2e7602dc2f7053f9c9ea8cca8e9bc5d68a0cdb7ccff9ecc65c5d1ff6a434e28488dbd6fb71fc7482fce08a0a69c358e5c3d6c017ac1e4cee3b21 SHA512 40c048b29856f48300d4539bc7bda38e6ceae1e8d4d9d131c4a7546b6e26b2fb96309c483b67e2c2290b06cea5fc52a7beb30557d54e89296e7734cc1ab06d10
+DIST radare2-5.8.2.tar.gz 11017554 BLAKE2B 712941ac5871f2201ba806dc7b68ae1825c8dbe896b11aaa6b086651ff28a6d3b7e54b55621e7cc143748d7760ea7007f4dc70232ef16dfe5523a0ab87f0f266 SHA512 3c09d89172ac9a5cee6e52294f10b144237acb31b3d470521a7c8650511a58d1732c73004f2dbb1e6e3c43829e3e310b89d6a8abd5f1fb4fdfd3fea8779a72ec
+DIST radare2-testbins-1f0ea409f2af83fc4d0b685855de9d3b0f9eee41.tar.gz 125596301 BLAKE2B 55b876b09150e780359e753d26143640d410c1c15ace2e29bc06d2163657af2089c5044847f107e20256875c7ea5e7cc72460010df0c662c9da933a0388a3f0e SHA512 44662f0217871a51b856f66e876eb57b2006f6350e6bcfae6629b800197b6f30196caf2474d52881a398fd1d65c68364d870b7de692c9e9a2bd1fab493afe3d0
DIST radare2-testbins-2fdb78f7f754b3aea90377588d45b774ccb41086.tar.gz 120580683 BLAKE2B ba16206f3c44f43c36fbc3079e43d29cd5b6266f8bd31602d7ec218a2b14601173c9022be9329975bd28de948933deeecc052f56c2acd9d6dfeb5576049ec32f SHA512 2c66c8f68df7c51a52a73b33e854b095a4f5435c60eab2a1456f366376aac0f7c39836699e09eae2918f31e75b7c6562994f0916f45de53ae6a480506da95dcb
DIST radare2-testbins-602471f72caa60d6ece43c3fa483c43decf7052c.tar.gz 124090448 BLAKE2B 446f4b730095dc263f31bbd886b350fbf3cbde0cd3bc6f5ed0c5d65a90a66b4d97a7397798c0f6fb7596722d827a3805c6d4d810d06837cf46e8798cedb1fea4 SHA512 b490ec951813827bed940ca4fc772691f8e446ce14cf2f0cc7fe2027a481c91939e6212ce94237f71091c18ac8428c9a4a4f35fc58f41ba076c1da75835d0ff4
diff --git a/dev-util/radare2/files/radare2-5.8.2-bundled-capstone.patch b/dev-util/radare2/files/radare2-5.8.2-bundled-capstone.patch
new file mode 100644
index 000000000000..31de9b72bb37
--- /dev/null
+++ b/dev-util/radare2/files/radare2-5.8.2-bundled-capstone.patch
@@ -0,0 +1,21 @@
+Need to unbundle capstone due to broken capstone-5 compatibility:
+
+https://github.com/radareorg/radare2/issues/21204
+https://bugs.gentoo.org/891805
+
+diff --git a/shlr/Makefile b/shlr/Makefile
+index 5626a061ff..5e8af3b99b 100644
+--- a/shlr/Makefile
++++ b/shlr/Makefile
+@@ -225,10 +225,7 @@ capstone-sync: capstone
+ capstone-clean:
+ -$(MAKE) -C capstone clean
+
+-capstone: capstone-$(CS_VER).tar.gz
+- tar xzvf capstone-$(CS_VER).tar.gz
+- rm -rf capstone
+- mv capstone-$(CS_VER) capstone
++capstone:
+ $(MAKE) patch-capstone
+
+ # already implemented in capstone.sh
diff --git a/dev-util/radare2/files/radare2-5.8.2-vector35.patch b/dev-util/radare2/files/radare2-5.8.2-vector35.patch
new file mode 100644
index 000000000000..6b67f39b40c4
--- /dev/null
+++ b/dev-util/radare2/files/radare2-5.8.2-vector35.patch
@@ -0,0 +1,24 @@
+diff --git a/libr/arch/p/arm/v35/Makefile b/libr/arch/p/arm/v35/Makefile
+index a7a40ddb97..1ef40746ac 100644
+--- a/libr/arch/p/arm/v35/Makefile
++++ b/libr/arch/p/arm/v35/Makefile
+@@ -30,8 +30,7 @@ $(ALIBS): arch-arm64 arch-armv7
+
+ ## ARM64
+ arch-arm64:
+- git clone -q https://github.com/radareorg/vector35-arch-arm64 arch-arm64
+- cd arch-arm64 && git checkout -q radare2-wip > /dev/null && git reset --hard $(ARCH_ARM64_COMMIT)
++ cd arch-arm64
+
+ $(V35ARM64_HOME)/arm64dis.a arm64dis.a: $(ALIBS)
+ rm -f arm64dis.$(EXT_AR)
+@@ -40,8 +39,7 @@ $(V35ARM64_HOME)/arm64dis.a arm64dis.a: $(ALIBS)
+
+ ## ARMV7
+ arch-armv7:
+- git clone -q https://github.com/radareorg/vector35-arch-armv7 arch-armv7
+- cd arch-armv7 && git checkout -q radare2 > /dev/null && git reset --hard $(ARCH_ARMV7_COMMIT)
++ cd arch-armv7
+
+ $(V35ARMV7_HOME)/armv7dis.a armv7dis.a: $(ALIBS)
+ rm -f armv7dis.$(EXT_AR)
diff --git a/dev-util/radare2/radare2-5.8.2.ebuild b/dev-util/radare2/radare2-5.8.2.ebuild
new file mode 100644
index 000000000000..e54517f249a2
--- /dev/null
+++ b/dev-util/radare2/radare2-5.8.2.ebuild
@@ -0,0 +1,125 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1 toolchain-funcs
+
+DESCRIPTION="unix-like reverse engineering framework and commandline tools"
+HOMEPAGE="https://www.radare.org"
+
+ARM64_COMMIT=c9e7242972837ac11fc94db05fabcb801a8269c9
+ARMV7_COMMIT=f270a6cc99644cb8e76055b6fa632b25abd26024
+BINS_COMMIT=1f0ea409f2af83fc4d0b685855de9d3b0f9eee41
+CAPSTONE_VER=4.0.2
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/radareorg/radare2"
+else
+ SRC_URI="mirror+https://github.com/radareorg/radare2/archive/${PV}.tar.gz -> ${P}.tar.gz
+ mirror+https://github.com/radareorg/vector35-arch-arm64/archive/${ARM64_COMMIT}.tar.gz -> ${P}-vector35-arm64.tar.gz
+ mirror+https://github.com/radareorg/vector35-arch-armv7/archive/${ARMV7_COMMIT}.tar.gz -> ${P}-vector35-armv7.tar.gz
+ mirror+https://codeload.github.com/capstone-engine/capstone/tar.gz/${CAPSTONE_VER} -> ${P}-capstone-${CAPSTONE_VER}.tar.gz
+ test? ( https://github.com/radareorg/radare2-testbins/archive/${BINS_COMMIT}.tar.gz -> radare2-testbins-${BINS_COMMIT}.tar.gz )
+ "
+
+ KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="ssl test"
+
+# Need to audit licenses of the binaries used for testing
+RESTRICT="fetch !test? ( test )"
+
+RDEPEND="
+ dev-libs/libzip:=
+ dev-libs/xxhash
+ sys-apps/file
+ sys-libs/zlib
+ ssl? ( dev-libs/openssl:0= )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-util/gperf
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-5.8.2-vector35.patch"
+ # Maybe temporary, https://bugs.gentoo.org/891805
+ "${FILESDIR}/${PN}-5.8.2-bundled-capstone.patch"
+)
+
+src_prepare() {
+ default
+
+ mv "${WORKDIR}/capstone-${CAPSTONE_VER}" shlr/capstone || die
+
+ # Hack for vector35 arm plugins
+ mv "${WORKDIR}/vector35-arch-arm64-${ARM64_COMMIT}" libr/arch/p/arm/v35/arch-arm64 || die
+ mv "${WORKDIR}/vector35-arch-armv7-${ARMV7_COMMIT}" libr/arch/p/arm/v35/arch-armv7 || die
+
+ if use test; then
+ cp -r "${WORKDIR}/radare2-testbins-${BINS_COMMIT}" "${S}/test/bins" || die
+ cp -r "${WORKDIR}/radare2-testbins-${BINS_COMMIT}" "${S}" || die
+ fi
+
+ # Fix hardcoded docdir for fortunes
+ sed -i -e "/^#define R2_FORTUNES/s/radare2/$PF/" \
+ libr/include/r_userconf.h.acr || die
+}
+
+src_configure() {
+ # Ideally these should be set by ./configure
+ tc-export CC AR LD OBJCOPY RANLIB
+ export HOST_CC=${CC}
+
+ econf \
+ --without-libuv \
+ --with-sysmagic \
+ --with-sysxxhash \
+ --with-syszip \
+ $(use_with ssl openssl)
+}
+
+src_test() {
+ ln -fs "${S}/binr/radare2/radare2" "${S}/binr/radare2/r2" || die
+ LDFLAGS=""
+ for i in "${S}"/libr/*; do
+ if [[ -d ${i} ]]; then
+ LDFLAGS+="-R${i} -L${i} "
+ LD_LIBRARY_PATH+=":${i}"
+ fi
+ done
+ export LDFLAGS LD_LIBRARY_PATH
+ export PKG_CONFIG_PATH="${S}/pkgcfg"
+ PATH="${S}/binr/radare2:${PATH}" emake -C test -k unit-tests || die
+}
+
+src_install() {
+ default
+
+ insinto /usr/share/zsh/site-functions
+ doins doc/zsh/_*
+
+ newbashcomp doc/bash_autocompletion.sh "${PN}"
+ bashcomp_alias "${PN}" rafind2 r2 rabin2 rasm2 radiff2
+
+ # a workaround for unstable $(INSTALL) call, bug #574866
+ local d
+ for d in doc/*; do
+ if [[ -d ${d} ]]; then
+ rm -rfv "${d}" || die "failed to delete '${d}'"
+ fi
+ done
+
+ # These are not really docs. radare assumes
+ # uncompressed files: bug #761250
+ docompress -x /usr/share/doc/${PF}/fortunes.{creepy,fun,nsfw,tips}
+
+ # Create plugins directory although it's currently unsupported by radare2
+ keepdir "/usr/$(get_libdir)/radare2/${PV}" || die
+}