diff options
author | John Helmert III <ajak@gentoo.org> | 2023-01-22 21:38:19 -0600 |
---|---|---|
committer | John Helmert III <ajak@gentoo.org> | 2023-01-22 22:32:34 -0600 |
commit | 309640e8da12494bdc227e238bdbd7435cb415f9 (patch) | |
tree | 52bbe1905b2b2315c7adda8652a2e39df839ebeb | |
parent | media-sound/mixxx: disable building shared libs (diff) | |
download | gentoo-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/Manifest | 5 | ||||
-rw-r--r-- | dev-util/radare2/files/radare2-5.8.2-bundled-capstone.patch | 21 | ||||
-rw-r--r-- | dev-util/radare2/files/radare2-5.8.2-vector35.patch | 24 | ||||
-rw-r--r-- | dev-util/radare2/radare2-5.8.2.ebuild | 125 |
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 +} |