# This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # ghidra # ghidra/pkg-descr # ghidra/distinfo # ghidra/files # ghidra/files/patch-gradleScripts_distribution.gradle # ghidra/files/patch-build.gradle # ghidra/files/patch-GPL_CabExtract_build.gradle # ghidra/files/patch-GhidraBuild_Skeleton_os_freebsd64_README.txt # ghidra/files/patch-Ghidra_Framework_Utility_src_main_java_ghidra_framework_OperatingSystem.java # ghidra/files/patch-gradleScripts_ip.gradle # ghidra/files/patch-Ghidra_Features_Decompiler_src_decompile_cpp_types.h # ghidra/files/patch-GPL_nativeBuildProperties.gradle # ghidra/files/patch-Ghidra_Features_FunctionID_build.gradle # ghidra/files/patch-Ghidra_Features_Decompiler_build.gradle # ghidra/files/patch-Ghidra_RuntimeScripts_Linux_support_launch.sh # ghidra/files/patch-Ghidra_Features_Decompiler_src_decompile_cpp_loadimage__bfd.hh # ghidra/files/patch-GhidraBuild_Skeleton_certification.manifest # ghidra/files/patch-Ghidra_Framework_Generic_src_main_java_ghidra_framework_Platform.java # ghidra/files/patch-GPL_DemanglerGnu_build.gradle # ghidra/files/patch-Ghidra_Features_Decompiler_src_decompile_cpp_Makefile # ghidra/files/patch-GPL_build.gradle # ghidra/Makefile # echo c - ghidra mkdir -p ghidra > /dev/null 2>&1 echo x - ghidra/pkg-descr sed 's/^X//' >ghidra/pkg-descr << '9e695d8ab2a5479b856ecc040a523ca6' XGhidra is a software reverse engineering (SRE) framework created and maintained Xby the National Security Agency Research Directorate. This framework includes a Xsuite of full-featured, high-end software analysis tools that enable users to Xanalyze compiled code on a variety of platforms including Windows, macOS, and XLinux. Capabilities include disassembly, assembly, decompilation, graphing, and Xscripting, along with hundreds of other features. Ghidra supports a wide Xvariety of processor instruction sets and executable formats and can be run in Xboth user-interactive and automated modes. Users may also develop their own XGhidra plug-in components and/or scripts using Java or Python. X XWWW: https://ghidra-sre.org/ 9e695d8ab2a5479b856ecc040a523ca6 echo x - ghidra/distinfo sed 's/^X//' >ghidra/distinfo << 'c549c736a573b47c8eed967636cf0ac9' XTIMESTAMP = 1554744499 XSHA256 (ghidra/yajsw-stable-12.12.zip) = 1398fcb1e93abb19992c4fa06d7fe5758aabb4c45781d7ef306c6f57ca7a7321 XSIZE (ghidra/yajsw-stable-12.12.zip) = 25051676 XSHA256 (ghidra/hfsexplorer-0_21-bin.zip) = 90c9b54798abca5b12f4a678db7d0a4c970f4702cb153c11919536d0014dedbf XSIZE (ghidra/hfsexplorer-0_21-bin.zip) = 1473278 XSHA256 (ghidra/AXMLPrinter2.jar) = 00ed038eb6abaf6ddec8d202a3ed7a81b521458f4cd459948115cfd02ff59d6d XSIZE (ghidra/AXMLPrinter2.jar) = 24552 XSHA256 (ghidra/dex-tools-2.0.zip) = 7907eb4d6e9280b6e17ddce7ee0507eae2ef161ee29f70a10dbc6944fdca75bc XSIZE (ghidra/dex-tools-2.0.zip) = 2362460 XSHA256 (ghidra/NationalSecurityAgency-ghidra-9.0.2-Ghidra_9.0.2_build_GH0.tar.gz) = 2c735b12531dd86189cf73c9713c9400525423a61868711bc7b80c99831917bf XSIZE (ghidra/NationalSecurityAgency-ghidra-9.0.2-Ghidra_9.0.2_build_GH0.tar.gz) = 59223111 c549c736a573b47c8eed967636cf0ac9 echo c - ghidra/files mkdir -p ghidra/files > /dev/null 2>&1 echo x - ghidra/files/patch-gradleScripts_distribution.gradle sed 's/^X//' >ghidra/files/patch-gradleScripts_distribution.gradle << '54e2976fd50790bcf0ed3193d27cba9c' X--- gradleScripts/distribution.gradle.orig 2019-04-03 17:38:23 UTC X+++ gradleScripts/distribution.gradle X@@ -519,7 +519,7 @@ project.OS_NAMES.each { platform -> X ///////////////// X // SUPPORT SCRIPTS X ///////////////// X- if( isLinux(platform) || isMac(platform) ) { X+ if( isLinux(platform) || isMac(platform) || isFreeBSD(platform) ) { X with getMultiRepoCopySpec( "Ghidra/RuntimeScripts/Linux/support", "support" ) X } X if( isWindows(platform) ) { X@@ -529,7 +529,7 @@ project.OS_NAMES.each { platform -> X ///////////////// X // SERVER SCRIPTS X ///////////////// X- if( isLinux(platform) || isMac(platform) ) { X+ if( isLinux(platform) || isMac(platform) || isFreeBSD(platform) ) { X from (ROOT_PROJECT_DIR + "/Ghidra/RuntimeScripts/Linux/server") { X into "server" X } X@@ -543,7 +543,7 @@ project.OS_NAMES.each { platform -> X ///////////////// X // GHIDRA RUN SCRIPT X ///////////////// X- if( isLinux(platform) || isMac(platform) ) { X+ if( isLinux(platform) || isMac(platform) || isFreeBSD(platform) ) { X from (ROOT_PROJECT_DIR + "/Ghidra/RuntimeScripts/Linux") { X include "ghidraRun" X } X@@ -975,6 +975,7 @@ task createMultiPlatformInstallationZip(type: Zip) { t X dependsOn ":assemblewin64" X dependsOn ":assemblelinux64" X dependsOn ":assembleosx64" X+ dependsOn ":assemblefreebsd64" X dependsOn ":assembleSourceCommon" X X addDecompilerPdfsToZip(t) 54e2976fd50790bcf0ed3193d27cba9c echo x - ghidra/files/patch-build.gradle sed 's/^X//' >ghidra/files/patch-build.gradle << '3e156a03c16b4c8b41181b43d8b2d1ef' X--- build.gradle.orig 2019-04-03 17:38:23 UTC X+++ build.gradle X@@ -38,6 +38,18 @@ allprojects { X } X X /********************************************************************************* X+ * Set Gradle repositories X+ *********************************************************************************/ X+ext.FLATREPO = file("${projectDir}/../flatrepo").absolutePath X+allprojects { X+ repositories { X+ mavenCentral() X+ jcenter() X+ flatDir name:'flat', dirs:["${FLATREPO}"] X+ } X+} X+ X+/********************************************************************************* X * load properties from Ghidra/application.properties file X *********************************************************************************/ X X@@ -58,7 +70,7 @@ apply from: "gradleScripts/setupJacoco.gradle" // Has X * project.OS_NAMES.each {...} X ****************************************************************************/ X X-project.ext.set("OS_NAMES", ["osx64", "win32", "win64", "linux64"]) X+project.ext.set("OS_NAMES", ["osx64", "win32", "win64", "linux64", "freebsd64"]) X X /********************************************************************************* X * Imports X@@ -134,6 +146,19 @@ def isWindows(String platformName) { X } X } X X+/********************************************************************************* X+ * Returns true if the platform is a FreeBSD machine. X+ *********************************************************************************/ X+def isFreeBSD(String platformName) { X+ X+ if (platformName.startsWith("freebsd")) { X+ return true X+ } X+ else { X+ return false X+ } X+} X+ X /****************************************************************************************** X * Helper method that returns a file that is the same relative location in the bin repo X * as the given project is in its repo. X@@ -278,6 +303,11 @@ String getCurrentPlatformName() { X else if (osName.startsWith("Mac OS X")) { X if (isX86_64) { X return 'osx64' X+ } X+ } X+ else if (osName.startsWith("FreeBSD")) { X+ if (isX86_64) { X+ return 'freebsd64' X } X } X throw new GradleException("Unrecognized current platform -> osName = $osName, archName = $archName") 3e156a03c16b4c8b41181b43d8b2d1ef echo x - ghidra/files/patch-GPL_CabExtract_build.gradle sed 's/^X//' >ghidra/files/patch-GPL_CabExtract_build.gradle << '96f18d3938f77b41c39415400beafdfe' X--- GPL/CabExtract/build.gradle.orig 2019-04-03 17:38:23 UTC X+++ GPL/CabExtract/build.gradle X@@ -40,7 +40,7 @@ project.ext.cabextract = "cabextract-1.6" X * X * The cabextract tool requires that its 'configure' script is called before make. X *********************************************************************************/ X-['linux64', 'osx64'].each { platform -> X+['linux64', 'osx64', 'freebsd64'].each { platform -> X X def configureName = "${platform}CabExtractConfigure" X def makeName = "${platform}CabExtractMake" // native Make task found automatically 96f18d3938f77b41c39415400beafdfe echo x - ghidra/files/patch-GhidraBuild_Skeleton_os_freebsd64_README.txt sed 's/^X//' >ghidra/files/patch-GhidraBuild_Skeleton_os_freebsd64_README.txt << 'd6482fcf845d91a279eb251263254fed' X--- GhidraBuild/Skeleton/os/freebsd64/README.txt.orig 2019-04-08 17:58:11 UTC X+++ GhidraBuild/Skeleton/os/freebsd64/README.txt X@@ -0,0 +1,3 @@ X+The "os/freebsd64" directory is intended to hold FreeBSD native binaries X+which this module is dependent upon. This directory may be eliminated for a specific X+module if native binaries are not provided for the corresponding platform. d6482fcf845d91a279eb251263254fed echo x - ghidra/files/patch-Ghidra_Framework_Utility_src_main_java_ghidra_framework_OperatingSystem.java sed 's/^X//' >ghidra/files/patch-Ghidra_Framework_Utility_src_main_java_ghidra_framework_OperatingSystem.java << '185b81a6c47e48377fe6239034267d7b' X--- Ghidra/Framework/Utility/src/main/java/ghidra/framework/OperatingSystem.java.orig 2019-04-03 17:38:23 UTC X+++ Ghidra/Framework/Utility/src/main/java/ghidra/framework/OperatingSystem.java X@@ -20,6 +20,7 @@ public enum OperatingSystem { X WINDOWS("Windows"), X LINUX("Linux"), X MAC_OS_X("Mac OS X"), X+ FREEBSD("FreeBSD"), X UNSUPPORTED("Unsupported Operating System"); X X /** 185b81a6c47e48377fe6239034267d7b echo x - ghidra/files/patch-gradleScripts_ip.gradle sed 's/^X//' >ghidra/files/patch-gradleScripts_ip.gradle << 'd5552ab664e6cc9a6e9c384cbc2f18b4' X--- gradleScripts/ip.gradle.orig 2019-04-11 17:48:14 UTC X+++ gradleScripts/ip.gradle X@@ -125,6 +125,8 @@ def Map> getIpForModule(Project p X exclude "**/.settings/**" X exclude "**/.vs/**" X exclude "**/*.vcxproj.user" X+ exclude "**/*.orig" X+ exclude "**/*.bak" X } X tree.each { file -> X String ip = getIp(p.projectDir, file) d5552ab664e6cc9a6e9c384cbc2f18b4 echo x - ghidra/files/patch-Ghidra_Features_Decompiler_src_decompile_cpp_types.h sed 's/^X//' >ghidra/files/patch-Ghidra_Features_Decompiler_src_decompile_cpp_types.h << 'bbaf1d870a382f4125234a9928012d91' X--- Ghidra/Features/Decompiler/src/decompile/cpp/types.h.orig 2019-04-03 17:38:23 UTC X+++ Ghidra/Features/Decompiler/src/decompile/cpp/types.h X@@ -101,6 +101,36 @@ typedef char int1; X typedef uint8 uintp; X #endif X X+#if defined (__FreeBSD__) && defined (__i386__) X+#define HOST_ENDIAN 0 X+typedef unsigned long uintm; X+typedef long intm; X+typedef unsigned long long uint8; X+typedef long long int8; X+typedef unsigned int uint4; X+typedef int int4; X+typedef unsigned short uint2; X+typedef short int2; X+typedef unsigned char uint1; X+typedef char int1; X+typedef uint4 uintp; X+#endif X+ X+#if defined (__FreeBSD__) && defined (__x86_64__) X+#define HOST_ENDIAN 0 X+typedef unsigned int uintm; X+typedef int intm; X+typedef unsigned long uint8; X+typedef long int8; X+typedef unsigned int uint4; X+typedef int int4; X+typedef unsigned short uint2; X+typedef short int2; X+typedef unsigned char uint1; X+typedef char int1; X+typedef uint8 uintp; X+#endif X+ X #if defined(_WINDOWS) X X #if defined(_WIN64) bbaf1d870a382f4125234a9928012d91 echo x - ghidra/files/patch-GPL_nativeBuildProperties.gradle sed 's/^X//' >ghidra/files/patch-GPL_nativeBuildProperties.gradle << '274c2fa92be87a03a5e043f4bce5dac2' X--- GPL/nativeBuildProperties.gradle.orig 2019-04-03 17:38:23 UTC X+++ GPL/nativeBuildProperties.gradle X@@ -71,6 +71,10 @@ model { X architecture 'x86_64' X operatingSystem 'osx' X } X+ freebsd64 { X+ architecture 'x86_64' X+ operatingSystem 'freebsd' X+ } X } X } X 274c2fa92be87a03a5e043f4bce5dac2 echo x - ghidra/files/patch-Ghidra_Features_FunctionID_build.gradle sed 's/^X//' >ghidra/files/patch-Ghidra_Features_FunctionID_build.gradle << '251f093854b5e8c59b45eedf86b73228' X--- Ghidra/Features/FunctionID/build.gradle.orig 2019-04-03 17:38:23 UTC X+++ Ghidra/Features/FunctionID/build.gradle X@@ -71,7 +71,7 @@ task buildFidDocumentationPdf(type: Exec) { X cp $installPoint/topics/FunctionID/images/*.png $buildDir/images X X echo '** Building FunctionID.fo **' X- xsltproc --output $buildDir/fid_withscaling.xml --stringparam profile.condition "withscaling" /usr/share/sgml/docbook/xsl-stylesheets/profiling/profile.xsl fid.xml 2>&1 X+ xsltproc --output $buildDir/fid_withscaling.xml --stringparam profile.condition "withscaling" /usr/local/share/xsl/docbook/profiling/profile.xsl fid.xml 2>&1 X xsltproc --output $buildDir/FunctionID.fo fid_pdf.xsl $buildDir/fid_withscaling.xml 2>&1 X X echo '** Building FunctionID.pdf **' X@@ -94,9 +94,10 @@ task buildFidDocumentationPdf(type: Exec) { X // Check the OS before executing command. X doFirst { X if ( !(org.gradle.internal.os.OperatingSystem.current().isLinux() X- || org.gradle.internal.os.OperatingSystem.current().isMacOsX())) { X+ || org.gradle.internal.os.OperatingSystem.current().isMacOsX() X+ || org.gradle.internal.os.OperatingSystem.current().getName().contains("FreeBSD"))) { X throw new TaskExecutionException( it, X- new Exception( "The '$it.name' task only works on Linux or Mac Os X" )) X+ new Exception( "The '$it.name' task only works on Linux, FreeBSD or Mac Os X" )) X } X } X X@@ -138,7 +139,7 @@ task buildFidDocumentationHtml(type: Exec) { X rm -f $installPoint/topics/FunctionID/*.html X X echo '** Building html files **' X- xsltproc --output $buildDir/fid_noscaling.xml --stringparam profile.condition "noscaling" /usr/share/sgml/docbook/xsl-stylesheets/profiling/profile.xsl fid.xml 2>&1 X+ xsltproc --output $buildDir/fid_noscaling.xml --stringparam profile.condition "noscaling" /usr/local/share/xsl/docbook/profiling/profile.xsl fid.xml 2>&1 X xsltproc --stringparam base.dir ${installPoint}/topics/FunctionID/ fid_html.xsl $buildDir/fid_noscaling.xml 2>&1 X sed -i -e '/Frontpage.css/ { p; s/Frontpage.css/languages.css/; }' ${installPoint}/topics/FunctionID/*.html X 251f093854b5e8c59b45eedf86b73228 echo x - ghidra/files/patch-Ghidra_Features_Decompiler_build.gradle sed 's/^X//' >ghidra/files/patch-Ghidra_Features_Decompiler_build.gradle << '49de12a0885e0452d61f677cda2c299f' X--- Ghidra/Features/Decompiler/build.gradle.orig 2019-04-03 17:38:23 UTC X+++ Ghidra/Features/Decompiler/build.gradle X@@ -75,8 +75,9 @@ task buildDecompilerDocumentationPdfs(type: Exec) { X X // Check the OS before enabling task. X if (!(org.gradle.internal.os.OperatingSystem.current().isLinux() X- || org.gradle.internal.os.OperatingSystem.current().isMacOsX())) { X- println "The '$it.name' task only works on Linux or Mac Os X and is therefore disabled." X+ || org.gradle.internal.os.OperatingSystem.current().isMacOsX() X+ || org.gradle.internal.os.OperatingSystem.current().getName().contains("FreeBSD"))) { X+ println "The '$it.name' task only works on Linux, FreeBSD or Mac Os X and is therefore disabled." X it.enabled = false X } X X@@ -245,6 +246,7 @@ model { X targetPlatform "win64" X targetPlatform "linux64" X targetPlatform "osx64" X+ targetPlatform "freebsd64" X sources { X cpp { X source { X@@ -342,6 +344,7 @@ model { X targetPlatform "win64" X targetPlatform "linux64" X targetPlatform "osx64" X+ targetPlatform "freebsd64" X sources { X cpp { X source { 49de12a0885e0452d61f677cda2c299f echo x - ghidra/files/patch-Ghidra_RuntimeScripts_Linux_support_launch.sh sed 's/^X//' >ghidra/files/patch-Ghidra_RuntimeScripts_Linux_support_launch.sh << 'cf909eecffa5bb8837754c7ae82b4f34' X--- Ghidra/RuntimeScripts/Linux/support/launch.sh.orig 2019-04-10 09:13:14 UTC X+++ Ghidra/RuntimeScripts/Linux/support/launch.sh X@@ -88,6 +88,7 @@ else X DEBUG_LOG4J="${INSTALL_DIR}/Ghidra/RuntimeScripts/Common/support/debug.log4j.xml" X fi X X+PATH="/usr/local/openjdk12/bin:/usr/local/openjdk11:"$PATH X # Make sure some kind of java is on the path. It's required to run the LaunchSupport program. X if ! [ -x "$(command -v java)" ] ; then X echo "Java runtime not found. Please refer to the Ghidra Installation Guide's Troubleshooting section." cf909eecffa5bb8837754c7ae82b4f34 echo x - ghidra/files/patch-Ghidra_Features_Decompiler_src_decompile_cpp_loadimage__bfd.hh sed 's/^X//' >ghidra/files/patch-Ghidra_Features_Decompiler_src_decompile_cpp_loadimage__bfd.hh << '8d79286b796dbe525cd8fdec6217a6a2' X--- Ghidra/Features/Decompiler/src/decompile/cpp/loadimage_bfd.hh.orig 2019-04-03 17:38:23 UTC X+++ Ghidra/Features/Decompiler/src/decompile/cpp/loadimage_bfd.hh X@@ -21,6 +21,9 @@ X #define __LOADIMAGE_BFD__ X X #include "loadimage.hh" X+ X+#define PACKAGE X+#define PACKAGE_VERSION X #include X X struct ImportRecord { 8d79286b796dbe525cd8fdec6217a6a2 echo x - ghidra/files/patch-GhidraBuild_Skeleton_certification.manifest sed 's/^X//' >ghidra/files/patch-GhidraBuild_Skeleton_certification.manifest << '4d5f3ac96682a96e973bf69dc9c4afe8' X--- GhidraBuild/Skeleton/certification.manifest.orig 2019-04-03 17:38:23 UTC X+++ GhidraBuild/Skeleton/certification.manifest X@@ -17,6 +17,7 @@ extension.properties||GHIDRA||||END| X ghidra_scripts/README.txt||GHIDRA||||END| X lib/README.txt||GHIDRA||||END| X os/linux64/README.txt||GHIDRA||||END| X+os/freebsd64/README.txt||GHIDRA||||END| X os/osx64/README.txt||GHIDRA||||END| X os/win64/README.txt||GHIDRA||||END| X src/main/help/help/TOC_Source.xml||GHIDRA||||END| 4d5f3ac96682a96e973bf69dc9c4afe8 echo x - ghidra/files/patch-Ghidra_Framework_Generic_src_main_java_ghidra_framework_Platform.java sed 's/^X//' >ghidra/files/patch-Ghidra_Framework_Generic_src_main_java_ghidra_framework_Platform.java << '5bd77372eaf7a7dd67cbc795420e4744' X--- Ghidra/Framework/Generic/src/main/java/ghidra/framework/Platform.java.orig 2019-04-03 17:38:23 UTC X+++ Ghidra/Framework/Generic/src/main/java/ghidra/framework/Platform.java X@@ -70,7 +70,17 @@ public enum Platform { X */ X MAC_UNKNOWN(OperatingSystem.MAC_OS_X, Architecture.UNKNOWN, "osx64", ".dylib", ""), X X+ /** X+ * Identifies a FreeBSD OS. X+ */ X+ FREEBSD_32(OperatingSystem.FREEBSD, Architecture.X86, "freebsd32", ".so", ""), X+ X /** X+ * Identifies a FreeBSD OS. X+ */ X+ FREEBSD_64(OperatingSystem.FREEBSD, Architecture.X86_64, "freebsd64", ".so", ""), X+ X+ /** X * Identifies an unsupported OS. X */ X UNSUPPORTED(OperatingSystem.UNSUPPORTED, Architecture.UNKNOWN, null, null, ""); X@@ -144,6 +154,15 @@ public enum Platform { X paths.add("/usr/lib"); X paths.add("/usr/X11R6/bin"); X paths.add("/usr/X11R6/lib"); X+ } X+ else if (operatingSystem == OperatingSystem.FREEBSD) { X+ paths.add("/bin"); X+ paths.add("/lib"); X+ paths.add("/usr/bin"); X+ paths.add("/usr/lib"); X+ paths.add("/usr/local/bin"); X+ paths.add("/usr/local/lib"); X+ paths.add("/usr/local/lib/compat"); X } X else if (CURRENT_PLATFORM == WIN_64) { X String windir = System.getenv("SystemRoot"); 5bd77372eaf7a7dd67cbc795420e4744 echo x - ghidra/files/patch-GPL_DemanglerGnu_build.gradle sed 's/^X//' >ghidra/files/patch-GPL_DemanglerGnu_build.gradle << 'b831c262a900f3a9ab84332f5809f98f' X--- GPL/DemanglerGnu/build.gradle.orig 2019-04-03 17:38:23 UTC X+++ GPL/DemanglerGnu/build.gradle X@@ -24,6 +24,10 @@ model { X architecture 'x86_64' X operatingSystem 'osx' X } X+ freebsd64 { X+ architecture 'x86_64' X+ operatingSystem 'freebsd' X+ } X } X } X X@@ -64,6 +68,7 @@ model { X targetPlatform "win64" X targetPlatform "linux64" X targetPlatform "osx64" X+ targetPlatform "freebsd64" X sources { X c { X source { X@@ -80,6 +85,9 @@ model { X } X X model { X+ toolChains { X+ clang(Clang) X+ } X binaries { X all{ b -> X if (toolChain in Gcc) { b831c262a900f3a9ab84332f5809f98f echo x - ghidra/files/patch-Ghidra_Features_Decompiler_src_decompile_cpp_Makefile sed 's/^X//' >ghidra/files/patch-Ghidra_Features_Decompiler_src_decompile_cpp_Makefile << '4da3b8fad3ffece1b8f7e7dc3bccc387' X--- Ghidra/Features/Decompiler/src/decompile/cpp/Makefile.orig 2019-04-03 17:38:23 UTC X+++ Ghidra/Features/Decompiler/src/decompile/cpp/Makefile X@@ -33,8 +33,8 @@ ifeq ($(OS),Darwin) X OSDIR=osx64 X endif X X-CC=gcc X-CXX=g++ X+CC?=cc X+CXX?=c++ X X # Debug flags X DBG_CXXFLAGS=-g -Wall -Wno-sign-compare 4da3b8fad3ffece1b8f7e7dc3bccc387 echo x - ghidra/files/patch-GPL_build.gradle sed 's/^X//' >ghidra/files/patch-GPL_build.gradle << '3459edc947cd52c0392652cac5d629ad' X--- GPL/build.gradle.orig 2019-04-03 17:38:23 UTC X+++ GPL/build.gradle X@@ -1,5 +1,5 @@ X project.ext.BIN_REPO = file("${projectDir}/../../ghidra.bin").absolutePath X-project.ext.set("OS_NAMES", ["osx64", "win32", "win64", "linux64"]) X+project.ext.set("OS_NAMES", ["osx64", "win32", "win64", "linux64", "freebsd64"]) X X /********************************************************************************* X * Returns the local platform name. X@@ -28,6 +28,11 @@ String getCurrentPlatformName() { X else if (osName.startsWith("Mac OS X")) { X if (isX86_64) { X return 'osx64' X+ } X+ } X+ else if (osName.startsWith("FreeBSD")) { X+ if (isX86_64) { X+ return 'freebsd64' X } X } X throw new GradleException("Unrecognized current platform -> osName = $osName, archName = $archName") 3459edc947cd52c0392652cac5d629ad echo x - ghidra/Makefile sed 's/^X//' >ghidra/Makefile << '6bd60eb3839e8276e8295089b86ca9ff' X# $FreeBSD$ X XPORTNAME= ghidra XPORTVERSION= 9.0.2 XCATEGORIES= devel XMASTER_SITES= SF/yajsw/yajsw/yajsw-stable-12.12/:yajsw \ X SF/catacombae/HFSExplorer/0.21/:hfsexplorer \ X https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android4me/:axml2printer \ X https://github.com/pxb1988/dex2jar/releases/download/2.0/:dex2jar XDISTFILES= yajsw-stable-12.12.zip:yajsw \ X hfsexplorer-0_21-bin.zip:hfsexplorer \ X AXMLPrinter2.jar:axml2printer \ X dex-tools-2.0.zip:dex2jar XDIST_SUBDIR= ${PORTNAME} XEXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} X XMAINTAINER= sghctoma@gmail.com XCOMMENT= Software reverse engineering (SRE) framework X XLICENSE= APACHE20 XLICENSE_FILE= ${WRKSRC}/LICENSE X XONLY_FOR_ARCHS= amd64 X XEXTRACT_DEPENDS= ${UNZIP_CMD}:archivers/unzip XBUILD_DEPENDS= gradle>=5.0:devel/gradle \ X bash:shells/bash \ X flex:textproc/flex \ X fop:textproc/fop \ X ${LOCALBASE}/share/xsl/docbook/html/docbook.xsl:textproc/docbook-xsl XRUN_DEPENDS= bash:shells/bash X XUSES= bison shebangfix X XOPTIONS_RADIO= JDK XOPTIONS_RADIO_JDK= JDK11 JDK12 XOPTIONS_DEFAULT= JDK11 X XJDK11_BUILD_DEPENDS= ${LOCALBASE}/openjdk11/bin/java:java/openjdk11 XJDK11_RUN_DEPENDS= ${LOCALBASE}/openjdk11/bin/java:java/openjdk11 XJDK12_BUILD_DEPENDS= ${LOCALBASE}/openjdk12/bin/java:java/openjdk12 XJDK12_RUN_DEPENDS= ${LOCALBASE}/openjdk12/bin/java:java/openjdk12 X XSHEBANG_FILES= Ghidra/RuntimeScripts/Linux/* \ X Ghidra/RuntimeScripts/Linux/support/* \ X Ghidra/RuntimeScripts/Linux/server/* X XUSE_GITHUB= yes XGH_ACCOUNT= NationalSecurityAgency XGH_PROJECT= ghidra XGH_TAGNAME= Ghidra_${PORTVERSION}_build XGH_TUPLE= NationalSecurityAgency:ghidra:Ghidra_${PORTVERSION}_build X XGRADLE_ENV= GRADLE_USER_HOME=${WRKDIR}/gradle-home CC=${CC} CXX=${CXX} XGRADLE_RUN= ${SETENV} ${GRADLE_ENV} gradle --no-daemon X Xpost-extract: X @${MKDIR} ${WRKDIR}/flatrepo X @${CP} ${DISTDIR}/${DIST_SUBDIR}/AXMLPrinter2.jar ${WRKDIR}/flatrepo X @${UNZIP_CMD} -j -d ${WRKDIR}/flatrepo ${DISTDIR}/${DIST_SUBDIR}/hfsexplorer-0_21-bin.zip \ X lib/csframework.jar lib/hfsx_dmglib.jar lib/hfsx.jar lib/iharder-base64.jar X @${UNZIP_CMD} -j -d ${WRKDIR}/flatrepo ${DISTDIR}/${DIST_SUBDIR}/dex-tools-2.0.zip "dex2jar-2.0/lib/dex-*.jar" X @${MKDIR} ${WRKDIR}/ghidra.bin/Ghidra/Features/GhidraServer/ X @${CP} ${DISTDIR}/${DIST_SUBDIR}/yajsw-stable-12.12.zip ${WRKDIR}/ghidra.bin/Ghidra/Features/GhidraServer/ X Xpost-patch: X @${REINPLACE_CMD} -e "s|/usr/share/sgml/docbook/xsl-stylesheets|${LOCALBASE}/share/xsl/docbook/|g" \ X ${WRKSRC}/Ghidra/Features/Decompiler/src/main/doc/*.xsl \ X ${WRKSRC}/Ghidra/Features/FunctionID/src/main/doc/*.xsl X Xpost-patch-JDK11-on: X @${ECHO_CMD} "org.gradle.java.home=${LOCALBASE}/openjdk11" > ${WRKSRC}/gradle.properties X Xpost-patch-JDK12-on: X @${ECHO_CMD} "org.gradle.java.home=${LOCALBASE}/openjdk12" > ${WRKSRC}/gradle.properties X Xdo-build: X @${MKDIR} ${WRKDIR}/gradle-home X cd ${WRKSRC} && ${GRADLE_RUN} yajswDevUnpack X cd ${WRKSRC} && ${GRADLE_RUN} buildGhidra X Xdo-install: X @${UNZIP_CMD} -d ${STAGEDIR} ${WRKSRC}/build/dist/*.zip X @${MV} ${STAGEDIR}/ghidra* ${STAGEDIR}${DATADIR} X @${RLN} ${STAGEDIR}/${DATADIR}/ghidraRun ${STAGEDIR}${PREFIX}/bin/ghidra X @${RLN} ${STAGEDIR}/${DATADIR}/server/ghidraSvr ${STAGEDIR}${PREFIX}/bin/ghidra-server X @${STRIP_CMD} ${STAGEDIR}/${DATADIR}/GPL/DemanglerGnu/os/freebsd64/demangler_gnu X @${STRIP_CMD} ${STAGEDIR}/${DATADIR}/Ghidra/Features/Decompiler/os/freebsd64/decompile X @${STRIP_CMD} ${STAGEDIR}/${DATADIR}/Ghidra/Features/Decompiler/os/freebsd64/sleigh X Xpost-install: X @${FIND} ${STAGEDIR} ! -type d | \ X ${SED} 's,${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST} X @${FIND} -ds ${STAGEDIR}${DATADIR} -type d -empty | \ X ${SED} 's,${STAGEDIR}${PREFIX}/,, ; s,^,@dir ,' >> ${TMPPLIST} X X.include 6bd60eb3839e8276e8295089b86ca9ff exit