GP-3240 InstallationGuide update and minimum python version 3.9.

This commit is contained in:
ghidra1 2024-05-16 11:37:37 -04:00
parent 420f2f06fa
commit 18508736c2
3 changed files with 44 additions and 23 deletions

View File

@ -34,7 +34,7 @@ public class OSFileNotFoundException extends FileNotFoundException {
* @param fileName The file name associated with this exception, from the given module
*/
public OSFileNotFoundException(Platform platform, String moduleName, String fileName) {
super(String.format("%sos/%s/%s does not exist", moduleName != null ? moduleName + "/" : "",
super(String.format("%sos/%s/%s does not exist (see InstallationGuide.html, 'Building Native Components')", moduleName != null ? moduleName + "/" : "",
platform.getDirectoryName(), fileName));
this.platform = platform;
}

View File

@ -3,14 +3,15 @@
<head>
<title>Ghidra Installation Guide</title>
<style name="text/css">
li { font-family:times new roman; font-size:14pt; margin-bottom: 12px; }
li { font-family:times new roman; font-size:14pt; margin-bottom: 6px; }
h1 { color:#000080; font-family:times new roman; font-size:36pt; font-style:italic; font-weight:bold; text-align:center; }
h2 { padding-top:30px; color:#984c4c; font-family:times new roman; font-size:18pt; font-weight:bold; }
h2 { color:#984c4c; font-family:times new roman; font-size:18pt; font-weight:bold; color:#984c4c; }
h3 { color:#0000ff; font-family:times new roman; font-size:14pt; font-weight:bold; color:#0000ff; }
p { font-family:times new roman; font-size:14pt; }
td { font-family:times new roman; font-size:14pt; padding-left:10px; padding-right:10px; vertical-align: top; }
th { font-family:times new roman; font-size:14pt; font-weight:bold; padding-left:10px; padding-right:10px; }
th { font-family:times new roman; font-size:14pt; font-weight:bold; padding-left:10px; padding-right:10px; }
pre { font-size:12pt }
</style>
</head>
@ -31,7 +32,7 @@ future releases.
<li><a href="#JavaNotes">Java Notes</a></li>
</ul>
<li><a href="#Layout">Ghidra Installation Directory Layout</a></li>
<li><a href="#Build">Building Ghidra Native Components</a></li>
<li><a href="#Build">Building Native Components</a></li>
<li><a href="#DebuggerPython">Installing the Debuggers' Python Dependencies</a></li>
<li><a href="#Run">Running Ghidra</a></li>
<ul>
@ -67,7 +68,7 @@ future releases.
<h2><a name="Platforms"></a>Platforms Supported</h2>
<ul>
<li>Windows 7 or later (64-bit)</li>
<li>Windows 10 or later (x86 64-bit)</li>
<li>Linux (64-bit)</li>
<li>macOS 10.13 or later</li>
</ul>
@ -97,9 +98,11 @@ Ghidra team if you have a specific need.</p></blockquote>
</li>
</ul>
</ul>
<li>Python 3.9 or later (for Debugger support)</li>
<li>Python3 (3.9 to 3.12; for Debugger support)</li>
<ul>
<li>This is available from <a href="https://python.org">Python.org</a> or most operating system's app stores or software repositories.</li>
<li>This is available from <a href="https://python.org">Python.org</a> or most operating system's
app stores or software repositories. For Linux it is recommended that the system's package
repository be used to install a suitable version of Python.</li>
</ul>
</ul>
<p>(<a href="#top">Back to Top</a>)</p>
@ -308,11 +311,13 @@ is complete.</p>
</table>
<p>(<a href="#top">Back to Top</a>)</p>
<h2><a name="Build"></a>Building Ghidra Native Components</h2>
<h2><a name="Build"></a>Building Native Components</h2>
<p>Ghidra requires several native binaries to be present in order to successfully run. An official
Ghidra release includes native binaries for the following platforms:</p>
public Ghidra release includes native binaries for the following platforms.
</p>
<p>NOTE: For some non-public Ghidra releases macOS natives may be omitted.</p>
<ul>
<li>Windows x86 64-bit</li>
<li>Windows 10 or later, x86 64-bit</li>
<li>Linux x86 64-bit</li>
<li>macOS x86 64-bit</li>
<li>macOS ARM 64-bit</li>
@ -324,22 +329,38 @@ Ghidra release includes native binaries for the following platforms:</p>
<li>FreeBSD x86 64-bit (no debugger support)</li>
<li>FreeBSD ARM 64-bit (no debugger support)</li>
</ul>
<p>In order to build native binaries for your platform, you will need the following installed on your
<p>For supported systems where native binaries have not been supplied, or those that are supplied
fail to run properly, it may be neccessary to build the native Ghidra binaries.
In order to build native binaries for your platform, you will need the following installed on your
system:</p>
<ul>
<li>A <a href="#Requirements">supported</a> version of a Java Development Kit</li>
<li><a href="https://gradle.org/releases/">Gradle 7.3+</a></li>
<li>make, gcc, and g++ (Linux/macOS/FreeBSD-only)</li>
<li>
<a href="https://visualstudio.microsoft.com/vs/community/">Microsoft Visual Studio</a>
2017 or later, or <a href="https://visualstudio.microsoft.com/visual-cpp-build-tools/">
Microsoft C++ Build Tools</a> with the following components installed (Windows-only):
<li>Software C/C++ build tools and library packages</li>
<ul>
<li>macOS: <I>Xcode</I> or the abbreviated <I>Command Line Tools for Xcode</I> will supply the
necessary build tools. Assuming you are connected to the Internet, <I>Xcode</I>
(which includes the command tools) may be installed directly from the App Store
while <I>Command Line Tools for Xcode</I> may be installed using the following command:
<pre> xcode-select --install</pre></li>
<li>Linux/FreeBSD: the 64-bit versions of the following packages should installed:
<ul>
<li>MSVC</li>
<li>Windows SDK</li>
<li>C++ ATL</li>
<li>gcc 8.5 or later</li>
<li>gcc-c++ / g++ 8.5 or later</li>
<li>make</li>
</ul>
</li>
</li>
<li>Windows:
<a href="https://visualstudio.microsoft.com/vs/community/">Microsoft Visual Studio</a>
2017 or later, or <a href="https://visualstudio.microsoft.com/visual-cpp-build-tools/">
Microsoft C++ Build Tools</a> with the following components installed:
<ul>
<li>MSVC</li>
<li>Windows SDK</li>
<li>C++ ATL</li>
</ul>
</li>
</ul>
</ul>
<p>To build the native binaries for your current platform, execute the following script:</p>
<pre><blockquote><i>&lt;GhidraInstallDir&gt;</i>/support/buildNatives(.bat)</i></blockquote></pre>

View File

@ -48,7 +48,7 @@ if ("32".equals(System.getProperty("sun.arch.data.model"))) {
/***************************************************************************************
* Identify supported Python command
***************************************************************************************/
project.ext.SUPPORTED_PY_VERSIONS = ['3.12', '3.11', '3.10', '3.9', '3.8', '3.7']
project.ext.SUPPORTED_PY_VERSIONS = ['3.12', '3.11', '3.10', '3.9']
project.ext.PYTHON3 = findPython3()
/*********************************************************************************
@ -213,10 +213,10 @@ def findPython3() {
}
}
// Don't fail until task execution. Just let "python3" fail.
// Force use of non-existent python3.7 instead of unsupported python version
// Force use of non-existent python3.9 instead of unsupported python version
// which should fail if a python build is performed.
println("Warning: Python3 command not found (required for build)")
return 'python3.7'
return 'python3.9'
}
/******************************************************************************************