ghidra-11.4.ebuild

This commit is contained in:
Anton Bolshakov 2025-06-26 08:28:40 +08:00
parent cd6ce2893b
commit 1369ba5c26
No known key found for this signature in database
GPG key ID: 32BDCED870788F04
3 changed files with 8 additions and 185 deletions

View file

@ -2,6 +2,7 @@ DIST AXMLPrinter2.jar 24552 BLAKE2B 3ff09da948c2962919927ad35f8d38a13391c763a839
DIST Ghidra_11.2.1_build.tar.gz 70356567 BLAKE2B 32c4bcc7e6b4f0d124fe76895ab9326e98eccf5723ee4fc693252da4c3a1a69da3fe9ebb60806ec109b8801e34782f1d914cbaa7ccbac81062bce4b724eccca7 SHA512 27046a76f69e7d1ddaf4a958e2419798b721cf4f9f11481c9a3b284c93962af1e759ac9f336199252b6faabedf60599ef491f3bef0afdb70592db646f4bb7555
DIST Ghidra_11.3.1_build.tar.gz 69609047 BLAKE2B 6aeb19ffb58f4b0cfe267c0b0e0e14ed2cf39d8d66c906fd99f1c0a93c9e0967da9f484db6a170883c64ea8cf6b7a245e66c1f83dd61e74f8c28ad4c171f9c23 SHA512 229eef186b08e9fb5ff7f2ba2e27f8c20a42d64f35912fe0d2b80001d73c2fba861aa9932877da640b7d52f27ee710fe15b8a350931f11e683896313a2d0e136
DIST Ghidra_11.3.2_build.tar.gz 69612146 BLAKE2B 738c7f510cdbb7947f67337bf939f80b4d3b8c22608d61f5474dcd1037469332b5d92f140573a8114bdfcbb81792d61375f747772be6fb27a9c30ef3ccd3fc1f SHA512 d86dc44214bb269732c56da8fdf4e13439e1d4927354f8b8b3d3c9bc364ff56e77a53f1355b8a12e93e1916942d6fe43c08a37d371f91533085904506d733a4c
DIST Ghidra_11.4_build.tar.gz 74462395 BLAKE2B 23f4e834ddb36ae8a04e1a73d6de2a67d719045f094bd4157178984773a690ba60b58b11c981cd537d177c795716e94c3e8b99374e35a4a8aa665b613c8053b8 SHA512 75801613a6368f7b5355e061c66ab120e329f5849787fec6d8123afb44253eb463eb458163a35e6ddd825b9704a66f0ef2b9a526301904f0fd1e6179dc5312bc
DIST PyDev-6.3.1.zip 24756333 BLAKE2B e9a942e0ff90b9eafbd1fa0df5429f2ff227ed140b7352a1003be04ffbc043e17bf19bd622d7fe9b958286a75ff4897c03088c1627ee62ea7b6e832752cb427e SHA512 411ed78d1057f5e9780e44169935fb8a0da17e97ce26e9a7a9fa9a251d4d3c1118e9b47dd9f7af03bde1f47180bde0d456039b65687f600026a148055311ecfa
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
@ -12,6 +13,7 @@ DIST dex-tools-v2.4.zip 19105975 BLAKE2B bbda5e123bdf500ff736fb38424002d41162ed1
DIST dex2jar-2.1.zip 5641797 BLAKE2B 364374d37b453b8b7514e4770845ab1a13e95264901bb0e433037ea797fda09b5c5629bfc7ab0daed3c86e0d1cc77796bd850f209bf781f8db5a34eebe6a8305 SHA512 44b4a51043ef608158e16f70d9a448ae0a37896da19bd9837e1124e197b7b41a7c37f074386b0cc03edd4f385066bf5ef04c553f6dec0b0cc2a11ecbf299b16f
DIST ghidra-dependencies-20240928.tar.gz 94929808 BLAKE2B 4e0576b1773c9ba47bd384c8977259c206e2b8d933a979a0c8cd238c0ceb7ba828a00592e03619338bcc3451eddd2d94d7ae7ae33de04b3616a170b612a0d9cd SHA512 aa902e329948dde8ef8f37a0a22971a4de618c87a11303335be603454b3ef7ba0f70a01696f5e8aefca3ef3052bbdcb04383bc7dcb743118a01bb3d2afba0cf6
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
DIST postgresql-15.10.tar.gz 30424979 BLAKE2B 926015ad5e76e84f71db77b3ba3235d71bbffe6c39047cd34d95b987c10eb316017a9aa857f5dde4e8ad7f7e6acdafabae0fa69ee07c3776e67fec0ea14e539a SHA512 92906d4c6bb958b4dccfe7e978a21a8a6459616650c74013fe5662ac97fdea105ee009e38b9145716bcb07d160f8d4d793be4fb3651d40930bbfe04cef352403

View file

@ -1,181 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit java-pkg-2 desktop
GRADLE_DEP_VER="20240928"
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.1/dex2jar-2.1.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.3/postgresql-15.3.tar.gz
https://archive.eclipse.org/tools/cdt/releases/8.6/cdt-8.6.0.zip
https://downloads.sourceforge.net/pydev/pydev/PyDev%206.3.1/PyDev%206.3.1.zip -> PyDev-6.3.1.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
#java-pkg-2 sets java based on RDEPEND so the java slot in rdepend is used to build
RDEPEND=">=virtual/jre-21:*"
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 dex2jar-2.1.zip
cp dex-tools-2.1/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-6.3.1.zip "${WORKDIR}/${PLUGIN_DEP_PATH}/PyDev 6.3.1.zip" || die "(9) cp failed"
cp "${DISTDIR}"/cdt-8.6.0.zip "${WORKDIR}/${PLUGIN_DEP_PATH}/" || die "(10) cp failed"
cp "${DISTDIR}"/postgresql-15.3.tar.gz "${WORKDIR}/${PLUGIN_DEP_PATH}/" || die "(10) cp failed"
cd "${S}"
mv ../dependencies .
mkdir ./dependencies/fidb || die "failed to create fidb dir"
cp "${DISTDIR}/${FIDB_FILES}" ./dependencies/fidb/
#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/
cp "${DISTDIR}"/psutil-5.9.8.tar.gz ./dependencies/Debugger-rmi-trace/
cp "${DISTDIR}"/setuptools-68.0.0-py3-none-any.whl ./dependencies/Debugger-rmi-trace/
cp "${DISTDIR}"/wheel-0.37.1-py2.py3-none-any.whl ./dependencies/Debugger-rmi-trace/
cp "${DISTDIR}"/Pybag-2.2.12-py3-none-any.whl ./dependencies/Debugger-agent-dbgeng/
cp "${DISTDIR}"/capstone-5.0.1-py3-none-win_amd64.whl ./dependencies/Debugger-agent-dbgeng/
cp "${DISTDIR}"/comtypes-1.4.1-py3-none-any.whl ./dependencies/Debugger-agent-dbgeng/
cp "${DISTDIR}"/pywin32-306-cp312-cp312-win_amd64.whl ./dependencies/Debugger-agent-dbgeng/
}
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
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
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"
}

View file

@ -5,9 +5,10 @@ EAPI=8
PYTHON_COMPAT=( python3_{11..13} )
inherit java-pkg-2 desktop python-single-r1
GRADLE_DEP_VER="20250212"
GRADLE_DEP_VER="20250625"
# Ghidra/application.properties
GRADLE_VER="8.5"
RELEASE_VERSION="11.2" #${PV}
RELEASE_VERSION="11.4" #${PV}
DESCRIPTION="A software reverse engineering framework"
HOMEPAGE="https://ghidra-sre.org/"
@ -17,7 +18,8 @@ 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://github.com/NationalSecurityAgency/ghidra/archive/refs/tags/Ghidra_11.4_build.tar.gz
SRC_URI="https://github.com/NationalSecurityAgency/${PN}/archive/refs/tags/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
@ -48,7 +50,7 @@ done
S="${WORKDIR}/ghidra-Ghidra_${PV}_build"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
KEYWORDS="amd64"
#FIXME:
# * QA Notice: Files built without respecting CFLAGS have been detected