From 7f602a45222b064120693fdc6597d21d21e2811b Mon Sep 17 00:00:00 2001 From: Anton Bolshakov Date: Fri, 5 Dec 2025 10:50:54 +0800 Subject: [PATCH] ghidra-11.4.3.ebuild --- dev-util/ghidra/Manifest | 3 +- dev-util/ghidra/ghidra-11.3.2.ebuild | 195 ------------------ ...dra-11.4.2.ebuild => ghidra-11.4.3.ebuild} | 20 +- .../base/package.accept_keywords/dev-java | 5 +- 4 files changed, 20 insertions(+), 203 deletions(-) delete mode 100644 dev-util/ghidra/ghidra-11.3.2.ebuild rename dev-util/ghidra/{ghidra-11.4.2.ebuild => ghidra-11.4.3.ebuild} (94%) diff --git a/dev-util/ghidra/Manifest b/dev-util/ghidra/Manifest index 9032fcae6..df73cf760 100644 --- a/dev-util/ghidra/Manifest +++ b/dev-util/ghidra/Manifest @@ -1,13 +1,12 @@ DIST AXMLPrinter2.jar 24552 BLAKE2B 3ff09da948c2962919927ad35f8d38a13391c763a83962f8fdce90ec4720430b00be891f68fc149f62180ddf5f5e818af4e6b6a153d1a55e871f181e930d2b7b SHA512 c1168ec913f1fbb0675915d4fd865ec9a8e8573f6c8aedcb6e68166f61f11aeaececc7548d54d78134843c0102c57d6350973f6d3027d0ffdae52a5c57a7f601 -DIST Ghidra_11.3.2_build.tar.gz 69612146 BLAKE2B 738c7f510cdbb7947f67337bf939f80b4d3b8c22608d61f5474dcd1037469332b5d92f140573a8114bdfcbb81792d61375f747772be6fb27a9c30ef3ccd3fc1f SHA512 d86dc44214bb269732c56da8fdf4e13439e1d4927354f8b8b3d3c9bc364ff56e77a53f1355b8a12e93e1916942d6fe43c08a37d371f91533085904506d733a4c DIST Ghidra_11.4.2_build.tar.gz 74473431 BLAKE2B 006f2bbbbc4eaef6719d607841fa683247b52fbbd79248df50b96af54374d1a05adb4cecb9c2e1fe34c3746df1ab670ecc4396611a3ab7a1ef7e734cde123a7b SHA512 c7a5fb9eae00418f2efcd03c43640e061750ee3324fc247299531670ebb54474719536c1e8789e1e4758ff3f193a6725f3743b3d52ab97cfdde9c7b9e9310062 +DIST Ghidra_11.4.3_build.tar.gz 74475006 BLAKE2B 489985502b464854f0a72c87e3c6380044e45f7f734b244326ea79f159ae2f1e796bf9df9718913a4a559a917a15c83f21fd07d58556740d15c1b296a75430eb SHA512 f711d45e235e1df65d928fd67dafca36809caea6f6e4bb831500441f4e894466749260d9fceed7a234f8472ed4e6b7279db099c14932bb7822d789bbde6ad41f DIST PyDev-9.3.0.zip 29897762 BLAKE2B 426867e2322988be23eaa6c0662049be7c34d9b019a17847fd7a4f875b971229db1c3ffb65e676dfe8d3a6b0683c0c514c9408092a7cf0afc652641f57ae31ca SHA512 5d13c012e5c0e25a1a3f43dce7b797f612d5e59b7985b30aa7588f98942a50e5723ee8d311203e9c1209a488be088a8cfb97d490095ceaef01a07e51a8c495b4 DIST Pybag-2.2.12-py3-none-any.whl 298073 BLAKE2B 664879d7c4a58f86bfdea5663637fb9a8c08631c8ba37da1d51a3632e9cfa8b0255cc8fe41e8b880375e6c7fd2725977b5910b7cc206b225ab9570e5558f6c05 SHA512 308ff5ae3adb3995ec0cbf125e866002368f634208425301f86d4b95a1d40972fa976213d08b2aa6c88b0eaed2b7a90a83ca609f659492511ba9aac25c41f102 DIST capstone-5.0.1-py3-none-win_amd64.whl 1272594 BLAKE2B 37bdd905b5c2a684c129de309d424dc3b408ebc2eabf8b609728f9547e94a29f8da18bc18a5a67e7f54bdc41bbe32f07d4c449c5ac6314e25003d18eeeb85ad1 SHA512 500baa5fc0f5b0adf22480f28d430ead8c8a85b3fe374131d61bf03b1bf960ac9192ea4cc739f62b8550f59f6d506cad80d24aba34d5d19a1ec10ea17be43572 DIST cdt-8.6.0.zip 76639241 BLAKE2B 32c724b1f6ff43132f09c544bac8b35ed3f4f5866c844810abba3a52f82a3585ae7a57430fcf5603afecbeec1f46461a831339e442ca628b77f78c319bd9fc26 SHA512 2b8bb498146aa29995e807c5b4e9d5dab0f6afe89a5ce256978b7b2c478677a0cb5a0f15913a32bd99cb7b4bb31230521f70b9c26cdef1cb983dfcea599737c0 DIST comtypes-1.4.1-py3-none-any.whl 197917 BLAKE2B 227edcd95cc36318431d132a5ef5bf8055c030b1bc4be214a7b6a884801fa4df17b9d7df08505d2fab6e80a31f0c6fc41826f720545babecc22915e46869c2ce SHA512 2179ef65afa59fefcae5624008ff768af6ae8b73d4efd4172648ebaddd35bb65b8d78765eb80ff5abe20445117fe6a26579e127d024bfe16a27c2643224b8026 DIST dex-tools-v2.4.zip 19105975 BLAKE2B bbda5e123bdf500ff736fb38424002d41162ed1e5be34116e5722723ef13ea908ede4d8a3079bc1a376b1e47c985b0cd54ea5927edf774d1414d300de616a571 SHA512 8c1381920293195fba5ec4f9934d1cb0254cf94ef1dfb420519cf3da364c7e25fed7da7736692f36d3d068bdbbb46884d890ff43626b1b521823206f4666fc4f -DIST ghidra-dependencies-20250212.tar.gz 99308217 BLAKE2B 69f53a45b6ea3c3ffbdf4b196434409050e2e4853789a190018f1ff23ae7b1804fc7ae94349ad1bb1157a3a3d11986f046a4c797803aaad8ad5fe5b54b085acd SHA512 2a72517ce1f641717c1c059cbd5d87f82e9e036703e11f753ad40f6d20469562a07d0764e962cb0389d1c402f6615ed8cb57471b74aba89647e6f72a143a2f27 DIST ghidra-dependencies-20250625.tar.gz 101631250 BLAKE2B a03e215ef986e61a8204e792f8e92f8afb3cc764d9e7d55e39c840339ace2aa4f35d5dc3826ee04ccc5a701d5b890999f5cc2a7de0536978976887d950b948d6 SHA512 aee1af9e60975511884148e4e820e2d61e086a00ac2d19cd6e06a6b8929753d8e63043fce16d5b00f189a5936665d18a9044fd1cf75cea96a8461ce34a027cdd DIST hfsexplorer-0_21-bin.zip 1473278 BLAKE2B e9d2a3fae4da8046a17ce5e6828b4d1ff27da6384aac4be3864fe2c16f83bb95cb728eaeec9a42c3e1febaef98ba9357bfc3744b4950deb4b783d36e723d6cc0 SHA512 b85b4316115695acc78cc7c675c673058c05a238451562be0c6a48b2d11a28e5645a42cb62cdf063be015369df26201dfab6cf2e60f39e6468d1d53b23f94415 DIST java-sarif-2.1-modified.jar 227352 BLAKE2B d768865f09f2aa4ec6b965347df13d7e1bcda38e2401cdcdad7eaabd68dba901e29525c1632b8d4ea3529ed894193abe09a38293f21d3155bba4c55b7c90ed8e SHA512 04d1f895f87a8f0a653ee5c2b18ed0b6d158f1b7de4e16de2e50ed5a3087b1e83ca01f6c4c8c53d1788942e29d2f41528c910f224c41e27098cb5c2838a8ddf3 diff --git a/dev-util/ghidra/ghidra-11.3.2.ebuild b/dev-util/ghidra/ghidra-11.3.2.ebuild deleted file mode 100644 index f5f3a126e..000000000 --- a/dev-util/ghidra/ghidra-11.3.2.ebuild +++ /dev/null @@ -1,195 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -PYTHON_COMPAT=( python3_{12..14} ) -inherit java-pkg-2 desktop python-single-r1 - -GRADLE_DEP_VER="20250212" -GRADLE_VER="8.5" -RELEASE_VERSION="11.2" #${PV} - -DESCRIPTION="A software reverse engineering framework" -HOMEPAGE="https://ghidra-sre.org/" - -# ./gradle/support/fetchDependencies.gradle -FIDB_FILES="vs2012_x86.fidb vs2012_x64.fidb vs2015_x86.fidb vs2015_x64.fidb \ -vs2017_x86.fidb vs2017_x64.fidb vs2019_x86.fidb vs2019_x64.fidb vsOlder_x86.fidb vsOlder_x64.fidb" - -# ./gradle/support/fetchDependencies.gradle -SRC_URI="https://github.com/NationalSecurityAgency/${PN}/archive/Ghidra_${PV}_build.tar.gz - https://dev.pentoo.ch/~blshkv/distfiles/${PN}-dependencies-${GRADLE_DEP_VER}.tar.gz - https://github.com/pxb1988/dex2jar/releases/download/v2.4/dex-tools-v2.4.zip - https://github.com/digitalsleuth/AXMLPrinter2/raw/691036a3caf84950fbb0df6f1fa98d7eaa92f2a0/AXMLPrinter2.jar - https://github.com/unsound/hfsexplorer/releases/download/hfsexplorer-0.21/hfsexplorer-0_21-bin.zip - https://downloads.sourceforge.net/yajsw/yajsw/yajsw-stable-13.12.zip - https://ftp.postgresql.org/pub/source/v15.10/postgresql-15.10.tar.gz - https://archive.eclipse.org/tools/cdt/releases/8.6/cdt-8.6.0.zip - https://sourceforge.net/projects/pydev/files/pydev/PyDev%209.3.0/PyDev%209.3.0.zip -> PyDev-9.3.0.zip - https://github.com/NationalSecurityAgency/ghidra-data/raw/Ghidra_${RELEASE_VERSION}/lib/java-sarif-2.1-modified.jar -" -for FIDB in ${FIDB_FILES}; do - SRC_URI+=" https://github.com/NationalSecurityAgency/ghidra-data/raw/Ghidra_${RELEASE_VERSION}/FunctionID/${FIDB}" -done - - SRC_URI+=" https://files.pythonhosted.org/packages/8d/14/619e24a4c70df2901e1f4dbc50a6291eb63a759172558df326347dce1f0d/protobuf-3.20.3-py2.py3-none-any.whl - https://files.pythonhosted.org/packages/90/c7/6dc0a455d111f68ee43f27793971cf03fe29b6ef972042549db29eec39a2/psutil-5.9.8.tar.gz - https://files.pythonhosted.org/packages/c7/42/be1c7bbdd83e1bfb160c94b9cafd8e25efc7400346cf7ccdbdb452c467fa/setuptools-68.0.0-py3-none-any.whl - https://files.pythonhosted.org/packages/27/d6/003e593296a85fd6ed616ed962795b2f87709c3eee2bca4f6d0fe55c6d00/wheel-0.37.1-py2.py3-none-any.whl - https://files.pythonhosted.org/packages/ce/78/91db67e7fe1546dc8b02c38591b7732980373d2d252372f7358054031dd4/Pybag-2.2.12-py3-none-any.whl - https://files.pythonhosted.org/packages/d0/dd/b28df50316ca193dd1275a4c47115a720796d9e1501c1888c4bfa5dc2260/capstone-5.0.1-py3-none-win_amd64.whl - https://files.pythonhosted.org/packages/50/8f/518a37381e55a8857a638afa86143efa5508434613541402d20611a1b322/comtypes-1.4.1-py3-none-any.whl - https://files.pythonhosted.org/packages/83/1c/25b79fc3ec99b19b0a0730cc47356f7e2959863bf9f3cd314332bddb4f68/pywin32-306-cp312-cp312-win_amd64.whl" - -# run: "pentoo/scripts/gradle_dependencies.py buildGhidra" from "${S}" directory to generate dependencies -# https://www.eclipse.org/downloads/download.php?r=1&protocol=https&file=/tools/cdt/releases/8.6/cdt-8.6.0.zip -# https://sourceforge.net/projects/yajsw/files/yajsw/yajsw-stable-13.05/yajsw-stable-13.05.zip/download - -S="${WORKDIR}/ghidra-Ghidra_${PV}_build" -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64" - -#FIXME: -# * QA Notice: Files built without respecting CFLAGS have been detected -# * QA Notice: Files built without respecting LDFLAGS have been detected -# * Please include the following list of files in your report: -# * /usr/share/ghidra/GPL/DemanglerGnu/os/linux_x86_64/demangler_gnu_v2_24 -# * /usr/share/ghidra/GPL/DemanglerGnu/os/linux_x86_64/demangler_gnu_v2_41 -# * /usr/share/ghidra/Ghidra/Features/Decompiler/os/linux_x86_64/decompile -# * /usr/share/ghidra/Ghidra/Features/Decompiler/os/linux_x86_64/sleigh -# * /usr/share/ghidra/Ghidra/Features/FileFormats/data/sevenzipnativelibs/Linux-amd64/lib7-Zip-JBinding.so -# * /usr/share/ghidra/Ghidra/Features/FileFormats/os/linux_x86_64/lzfse - -REQUIRED_USE=${PYTHON_REQUIRED_USE} -#java-pkg-2 sets java based on RDEPEND so the java slot in rdepend is used to build -RDEPEND=">=virtual/jre-21:* - ${PYTHON_DEPS}" -DEPEND="${RDEPEND} - >=virtual/jdk-21:* - sys-devel/bison - dev-java/jflex - app-arch/unzip" -BDEPEND=">=dev-java/gradle-bin-${GRADLE_VER}:* - dev-python/pip" - -check_gradle_binary() { - gradle_link_target=$(readlink -n /usr/bin/gradle) - currentver="${gradle_link_target/gradle-bin-/}" - requiredver="${GRADLE_VER}" - einfo "Gradle version ${currentver} currently set." - if [ "$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head -n1)" = "$requiredver" ]; then - einfo "Gradle version ${currentver} is >= ${requiredver}, proceeding with build..." - else - eerror "Gradle version ${requiredver} or higher must be eselected before building ${PN}." - die "Please run 'eselect gradle set gradle-bin-XX' when XX is a version of gradle higher than ${requiredver}" - fi -} - -src_unpack() { - # https://github.com/NationalSecurityAgency/ghidra/blob/master/DevGuide.md - # alternative: - # gradle -I gradle/support/fetchDependencies.gradle init - # gradle -g dependencies/gradle prepdev - # build: gradle -g dependencies/gradle buildGhidra - unpack ${A} - mkdir -p "${S}/.gradle/flatRepo" || die "(1) mkdir failed" - cd "${S}/.gradle" - - unpack dex-tools-v2.4.zip - cp dex-tools-v2.4/lib/dex-*.jar ./flatRepo || die "(2) cp failed" - - cp "${DISTDIR}/AXMLPrinter2.jar" ./flatRepo || die "(3) cp failed" - cp "${DISTDIR}/java-sarif-2.1-modified.jar" ./flatRepo || die "(4) cp failed" - - unpack hfsexplorer-0_21-bin.zip - cp lib/*.jar ./flatRepo || die "(5) cp failed" - - mkdir -p "${WORKDIR}"/ghidra.bin/Ghidra/Features/GhidraServer/ || die "(6) mkdir failed" - cp "${DISTDIR}"/yajsw-stable-13.12.zip "${WORKDIR}"/ghidra.bin/Ghidra/Features/GhidraServer/ || die "(7) cp failed" - - PLUGIN_DEP_PATH="ghidra.bin/GhidraBuild/EclipsePlugins/GhidraDev/buildDependencies" - mkdir -p "${WORKDIR}/${PLUGIN_DEP_PATH}/" || die "(8) mkdir failed" - cp "${DISTDIR}"/PyDev-9.3.0.zip "${WORKDIR}/${PLUGIN_DEP_PATH}/PyDev 9.3.0.zip" || die "(9) cp failed" - cp "${DISTDIR}"/cdt-8.6.0.zip "${WORKDIR}/${PLUGIN_DEP_PATH}/" || die "(10) cp failed" - cp "${DISTDIR}"/postgresql-15.10.tar.gz "${WORKDIR}/${PLUGIN_DEP_PATH}/" || die "(10) cp failed" - - cd "${S}" - mv ../dependencies . - - mkdir ./dependencies/fidb || die "failed to create fidb dir" - for FIDB in ${FIDB_FILES}; do - cp "${DISTDIR}/${FIDB}" ./dependencies/fidb/ || die - done - - #copy whl - mkdir -p ./dependencies/{Debugger-rmi-trace,Debugger-agent-dbgeng} || die "failed to create Debugger dir" - cp "${DISTDIR}"/protobuf-3.20.3-py2.py3-none-any.whl ./dependencies/Debugger-rmi-trace/ || die - cp "${DISTDIR}"/psutil-5.9.8.tar.gz ./dependencies/Debugger-rmi-trace/ || die - cp "${DISTDIR}"/setuptools-68.0.0-py3-none-any.whl ./dependencies/Debugger-rmi-trace/ || die - cp "${DISTDIR}"/wheel-0.37.1-py2.py3-none-any.whl ./dependencies/Debugger-rmi-trace/ || die - - cp "${DISTDIR}"/Pybag-2.2.12-py3-none-any.whl ./dependencies/Debugger-agent-dbgeng/ || die - cp "${DISTDIR}"/capstone-5.0.1-py3-none-win_amd64.whl ./dependencies/Debugger-agent-dbgeng/ || die - cp "${DISTDIR}"/comtypes-1.4.1-py3-none-any.whl ./dependencies/Debugger-agent-dbgeng/ || die - cp "${DISTDIR}"/pywin32-306-cp312-cp312-win_amd64.whl ./dependencies/Debugger-agent-dbgeng/ || die - -} - -src_prepare() { - mkdir -p ".gradle/init.d" || die "(10) mkdir failed" - cp "${FILESDIR}"/repos.gradle .gradle/init.d || die "(11) cp failed" - sed -i "s|S_DIR|${S}|g" .gradle/init.d/repos.gradle || die "(12) sed failed" - #remove build date so we can unpack dist.zip later - sed -i "s|_\${rootProject.BUILD_DATE_SHORT}||g" gradle/root/distribution.gradle || die "(13) sed failed" - #10.0 workaround - ln -s ../.gradle/flatRepo ./dependencies/flatRepo - - # First attempt at disabling pip - #sed -i 's#pip#echo#' Ghidra/Features/PyGhidra/build.gradle || die - - # Use the correct python version - # https://github.com/pentoo/pentoo-overlay/issues/2243 - #sed -i "s/findPython3\(true\)/\"${EPYTHON}\"/" build.gradle || die - sed -i "s/findPython3(true)/\"${EPYTHON}\"/" build.gradle || die - - eapply_user -} - -src_compile() { - check_gradle_binary - export _JAVA_OPTIONS="$_JAVA_OPTIONS -Duser.home=$HOME -Djava.io.tmpdir=${T}" - - GRADLE="gradle --gradle-user-home .gradle --console rich --no-daemon" - GRADLE="${GRADLE} --offline --parallel --max-workers $(nproc)" - unset TERM - ${GRADLE} prepDev -x check -x test || die - ${GRADLE} assembleAll -x check -x test --parallel || die - -#build without eclipse plugin -# ${GRADLE} yajswDevUnpack -x check -x test || die -# ${GRADLE} buildNatives_linux64 -x check -x test || die -# ${GRADLE} sleighCompile -x check -x test || die -} - -src_install() { - # remove zip files which aren't needed at runtime - find build/dist/ghidra_${PV}_DEV/ -type f -name '*.zip' -exec rm -f {} + - #FIXME: add doc flag - rm -r build/dist/ghidra_${PV}_DEV/docs/ || die "rm failed" - - insinto /usr/share/ghidra - doins -r build/dist/ghidra_${PV}_DEV/* - fperms +x /usr/share/ghidra/ghidraRun - fperms +x /usr/share/ghidra/support/launch.sh - fperms +x /usr/share/ghidra/GPL/DemanglerGnu/os/linux_x86_64/demangler_gnu_v2_41 - fperms +x /usr/share/ghidra/Ghidra/Features/Decompiler/os/linux_x86_64/decompile - chmod +x "${D}"/usr/share/ghidra/Ghidra/Debug/Debugger-*/data/{debugger-launchers,support}/*.sh || die - - dosym -r /usr/share/ghidra/ghidraRun /usr/bin/ghidra - - # icon - doicon GhidraDocs/GhidraClass/Beginner/Images/GhidraLogo64.png - # desktop entry - make_desktop_entry ${PN} "Ghidra" /usr/share/pixmaps/GhidraLogo64.png "Utility" -} diff --git a/dev-util/ghidra/ghidra-11.4.2.ebuild b/dev-util/ghidra/ghidra-11.4.3.ebuild similarity index 94% rename from dev-util/ghidra/ghidra-11.4.2.ebuild rename to dev-util/ghidra/ghidra-11.4.3.ebuild index 04ef62f44..fac812370 100644 --- a/dev-util/ghidra/ghidra-11.4.2.ebuild +++ b/dev-util/ghidra/ghidra-11.4.3.ebuild @@ -8,6 +8,7 @@ inherit java-pkg-2 desktop python-single-r1 GRADLE_DEP_VER="20250625" # Ghidra/application.properties GRADLE_VER="8.5" + RELEASE_VERSION="11.4" #${PV} DESCRIPTION="A software reverse engineering framework" @@ -63,16 +64,24 @@ KEYWORDS="amd64" # * /usr/share/ghidra/Ghidra/Features/FileFormats/data/sevenzipnativelibs/Linux-amd64/lib7-Zip-JBinding.so # * /usr/share/ghidra/Ghidra/Features/FileFormats/os/linux_x86_64/lzfse +# FIXME: +# build fails with system-vm jdk-25, see: +# https://github.com/gradle/gradle/issues/35111 +# java-pkg-2 does not set it for some reason +JAVA_PKG_WANT_SOURCE="21" +JAVA_PKG_WANT_TARGET="21" + REQUIRED_USE=${PYTHON_REQUIRED_USE} #java-pkg-2 sets java based on RDEPEND so the java slot in rdepend is used to build -RDEPEND=">=virtual/jre-21:* +#>=virtual/jdk-21:* +RDEPEND="virtual/jre:21 ${PYTHON_DEPS}" DEPEND="${RDEPEND} - >=virtual/jdk-21:* + virtual/jdk:21 sys-devel/bison dev-java/jflex app-arch/unzip" -BDEPEND=">=dev-java/gradle-bin-${GRADLE_VER}:* +BDEPEND=">=dev-java/gradle-bin-${GRADLE_VER}:*