GP-3710: GhidraDev no longer allows selecting Ghidra source repos as a

Ghidra installation
This commit is contained in:
Ryan Kurtz 2023-09-15 09:39:07 -04:00
parent 7bffc47b81
commit 69fb466b0a
3 changed files with 35 additions and 12 deletions

View File

@ -163,36 +163,39 @@
<setEntry value="ch.qos.logback.classic@default:default"/> <setEntry value="ch.qos.logback.classic@default:default"/>
<setEntry value="ch.qos.logback.core@default:default"/> <setEntry value="ch.qos.logback.core@default:default"/>
<setEntry value="com.google.gson@default:default"/> <setEntry value="com.google.gson@default:default"/>
<setEntry value="com.google.guava*30.1.0.v20221112-0806@default:default"/>
<setEntry value="com.google.guava*32.1.2.jre@default:default"/>
<setEntry value="com.google.guava.failureaccess@default:default"/> <setEntry value="com.google.guava.failureaccess@default:default"/>
<setEntry value="com.google.guava@default:default"/>
<setEntry value="com.ibm.icu@default:default"/> <setEntry value="com.ibm.icu@default:default"/>
<setEntry value="com.python.pydev.analysis@default:default"/> <setEntry value="com.python.pydev.analysis@default:default"/>
<setEntry value="com.python.pydev.debug@default:default"/> <setEntry value="com.python.pydev.debug@default:default"/>
<setEntry value="com.python.pydev.refactoring@default:default"/> <setEntry value="com.python.pydev.refactoring@default:default"/>
<setEntry value="com.sun.jna.platform@default:default"/> <setEntry value="com.sun.jna.platform@default:default"/>
<setEntry value="com.sun.jna@default:default"/> <setEntry value="com.sun.jna@default:default"/>
<setEntry value="jakarta.servlet-api@default:default"/> <setEntry value="jakarta.servlet-api*4.0.0@default:default"/>
<setEntry value="jakarta.servlet-api*5.0.0@default:default"/>
<setEntry value="javax.annotation@default:default"/> <setEntry value="javax.annotation@default:default"/>
<setEntry value="javax.inject@default:default"/> <setEntry value="javax.inject@default:default"/>
<setEntry value="javax.xml@default:default"/> <setEntry value="javax.xml@default:default"/>
<setEntry value="jaxen@default:default"/>
<setEntry value="org.apache.aries.spifly.dynamic.bundle@default:default"/>
<setEntry value="org.apache.batik.constants@default:default"/> <setEntry value="org.apache.batik.constants@default:default"/>
<setEntry value="org.apache.batik.css@default:default"/> <setEntry value="org.apache.batik.css@default:default"/>
<setEntry value="org.apache.batik.i18n@default:default"/> <setEntry value="org.apache.batik.i18n@default:default"/>
<setEntry value="org.apache.batik.util@default:default"/> <setEntry value="org.apache.batik.util@default:default"/>
<setEntry value="org.apache.commons.cli@default:default"/> <setEntry value="org.apache.commons.cli@default:default"/>
<setEntry value="org.apache.commons.codec@default:default"/> <setEntry value="org.apache.commons.codec@default:default"/>
<setEntry value="org.apache.commons.io@default:default"/> <setEntry value="org.apache.commons.commons-codec@default:default"/>
<setEntry value="org.apache.commons.commons-io@default:default"/>
<setEntry value="org.apache.commons.jxpath@default:default"/> <setEntry value="org.apache.commons.jxpath@default:default"/>
<setEntry value="org.apache.commons.logging@default:default"/> <setEntry value="org.apache.commons.logging@default:default"/>
<setEntry value="org.apache.felix.gogo.command@default:default"/> <setEntry value="org.apache.felix.gogo.command@default:default"/>
<setEntry value="org.apache.felix.gogo.runtime@default:default"/> <setEntry value="org.apache.felix.gogo.runtime@default:default"/>
<setEntry value="org.apache.felix.gogo.shell@default:default"/> <setEntry value="org.apache.felix.gogo.shell@default:default"/>
<setEntry value="org.apache.felix.scr@1:true"/> <setEntry value="org.apache.felix.scr@1:true"/>
<setEntry value="org.apache.lucene.analysis-common*9.4.2.v20221211-0752@default:default"/> <setEntry value="org.apache.lucene.analysis-common@default:default"/>
<setEntry value="org.apache.lucene.analysis-common*9.5.0.v20230521-0510@default:default"/>
<setEntry value="org.apache.lucene.analysis-smartcn@default:default"/> <setEntry value="org.apache.lucene.analysis-smartcn@default:default"/>
<setEntry value="org.apache.lucene.core*9.4.2.v20221211-0752@default:default"/> <setEntry value="org.apache.lucene.core@default:default"/>
<setEntry value="org.apache.lucene.core*9.5.0.v20230521-0510@default:default"/>
<setEntry value="org.apache.xerces@default:default"/> <setEntry value="org.apache.xerces@default:default"/>
<setEntry value="org.apache.xml.resolver@default:default"/> <setEntry value="org.apache.xml.resolver@default:default"/>
<setEntry value="org.apache.xml.serializer@default:default"/> <setEntry value="org.apache.xml.serializer@default:default"/>
@ -321,7 +324,10 @@
<setEntry value="org.eclipse.jface@default:default"/> <setEntry value="org.eclipse.jface@default:default"/>
<setEntry value="org.eclipse.ltk.core.refactoring@default:default"/> <setEntry value="org.eclipse.ltk.core.refactoring@default:default"/>
<setEntry value="org.eclipse.ltk.ui.refactoring@default:default"/> <setEntry value="org.eclipse.ltk.ui.refactoring@default:default"/>
<setEntry value="org.eclipse.m2e.archetype.catalog@default:default"/>
<setEntry value="org.eclipse.m2e.archetype.common@default:default"/> <setEntry value="org.eclipse.m2e.archetype.common@default:default"/>
<setEntry value="org.eclipse.m2e.archetype.descriptor@default:default"/>
<setEntry value="org.eclipse.m2e.archetype.maven-artifact-transfer@default:default"/>
<setEntry value="org.eclipse.m2e.core.ui@default:default"/> <setEntry value="org.eclipse.m2e.core.ui@default:default"/>
<setEntry value="org.eclipse.m2e.core@default:default"/> <setEntry value="org.eclipse.m2e.core@default:default"/>
<setEntry value="org.eclipse.m2e.logback@default:false"/> <setEntry value="org.eclipse.m2e.logback@default:false"/>
@ -374,7 +380,14 @@
<setEntry value="org.eclipse.xsd@default:default"/> <setEntry value="org.eclipse.xsd@default:default"/>
<setEntry value="org.gradle.toolingapi@default:default"/> <setEntry value="org.gradle.toolingapi@default:default"/>
<setEntry value="org.hamcrest.core@default:default"/> <setEntry value="org.hamcrest.core@default:default"/>
<setEntry value="org.hamcrest@default:default"/>
<setEntry value="org.jdom2@default:default"/>
<setEntry value="org.junit@default:default"/> <setEntry value="org.junit@default:default"/>
<setEntry value="org.objectweb.asm.commons@default:default"/>
<setEntry value="org.objectweb.asm.tree.analysis@default:default"/>
<setEntry value="org.objectweb.asm.tree@default:default"/>
<setEntry value="org.objectweb.asm.util@default:default"/>
<setEntry value="org.objectweb.asm@default:default"/>
<setEntry value="org.osgi.service.cm@default:default"/> <setEntry value="org.osgi.service.cm@default:default"/>
<setEntry value="org.osgi.service.component.annotations@default:default"/> <setEntry value="org.osgi.service.component.annotations@default:default"/>
<setEntry value="org.osgi.service.component@default:default"/> <setEntry value="org.osgi.service.component@default:default"/>
@ -407,14 +420,12 @@
<setEntry value="org.python.pydev@default:default"/> <setEntry value="org.python.pydev@default:default"/>
<setEntry value="org.sat4j.core@default:default"/> <setEntry value="org.sat4j.core@default:default"/>
<setEntry value="org.sat4j.pb@default:default"/> <setEntry value="org.sat4j.pb@default:default"/>
<setEntry value="org.slf4j.api@default:default"/>
<setEntry value="org.tukaani.xz@default:default"/> <setEntry value="org.tukaani.xz@default:default"/>
<setEntry value="org.w3c.css.sac@default:default"/> <setEntry value="org.w3c.css.sac@default:default"/>
<setEntry value="org.w3c.dom.events@default:default"/> <setEntry value="org.w3c.dom.events@default:default"/>
<setEntry value="org.w3c.dom.smil@default:default"/> <setEntry value="org.w3c.dom.smil@default:default"/>
<setEntry value="org.w3c.dom.svg@default:default"/> <setEntry value="org.w3c.dom.svg@default:default"/>
<setEntry value="slf4j.api@default:default"/> <setEntry value="slf4j.api@default:default"/>
<setEntry value="slf4j.nop@default:default"/>
</setAttribute> </setAttribute>
<setAttribute key="selected_workspace_bundles"> <setAttribute key="selected_workspace_bundles">
<setEntry value="ghidra.ghidradev@default:default"/> <setEntry value="ghidra.ghidradev@default:default"/>

View File

@ -53,9 +53,18 @@ change with future releases.</p>
</ul> </ul>
<h2><a name="ChangeHistory"></a>Change History</h2> <h2><a name="ChangeHistory"></a>Change History</h2>
<p><u><b>3.0.1</b>:</u> Exporting a Ghidra Module Extension produces an intermediate <i>build</i> <p><u><b>3.0.1</b>:</u>
directory within the project. This <i>build</i> directory now gets automatically cleaned up to avoid <ul>
Ghidra runtime/debugging issues.</p> <li>
Exporting a Ghidra Module Extension produces an intermediate <i>build</i> directory within the
project. This <i>build</i> directory now gets automatically cleaned up to avoid Ghidra
runtime/debugging issues.
</li>
<li>
GhidraDev now prevents unsupported Ghidra source repositories from being added as a Ghidra
installations.
</li>
</ul>
<p><u><b>3.0.0</b>:</u> <p><u><b>3.0.0</b>:</u>
<ul> <ul>
<li> <li>

View File

@ -212,6 +212,9 @@ implements IWorkbenchPreferencePage {
catch (IOException e) { catch (IOException e) {
throw new IOException("Not a valid Ghidra installation."); throw new IOException("Not a valid Ghidra installation.");
} }
if (new File(ghidraInstallDir, "certification.local.manifest").isFile()) {
throw new IOException("Ghidra source repositories are not supported.");
}
ApplicationProperties applicationProperties = layout.getApplicationProperties(); ApplicationProperties applicationProperties = layout.getApplicationProperties();
ApplicationVersion version; ApplicationVersion version;
try { try {