commit:     309640e8da12494bdc227e238bdbd7435cb415f9
Author:     John Helmert III <ajak <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 23 03:38:19 2023 +0000
Commit:     John Helmert III <ajak <AT> gentoo <DOT> org>
CommitDate: Mon Jan 23 04:32:34 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=309640e8

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 <AT> gentoo.org>

 dev-util/radare2/Manifest                          |   5 +
 .../files/radare2-5.8.2-bundled-capstone.patch     |  21 ++++
 .../radare2/files/radare2-5.8.2-vector35.patch     |  24 ++++
 dev-util/radare2/radare2-5.8.2.ebuild              | 125 +++++++++++++++++++++
 4 files changed, 175 insertions(+)

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
+}

Reply via email to