<?xml version="1.0" encoding="UTF-8"?>
-<install4j version="8.0.10" transformSequenceNumber="8">
- <directoryPresets config="../.." />
+<install4j version="8.0.11" transformSequenceNumber="8">
+ <directoryPresets config="bin/jalview" />
<application name="${compiler:JALVIEW_APPLICATION_NAME}" applicationId="${compiler:WINDOWS_APPLICATION_ID}" mediaDir="${compiler:BUILD_DIR}" lzmaCompression="true" shortName="${compiler:INTERNAL_ID}" publisher="University of Dundee" publisherWeb="https://www.jalview.org/" version="${compiler:JALVIEW_VERSION}" allPathsRelative="true" macVolumeId="5aac4968c304f65" javaMinVersion="${compiler:JAVA_MIN_VERSION}" javaMaxVersion="9999999999${compiler:JAVA_MAX_VERSION}" allowBetaVM="true" jdkMode="jdk" jdkName="JDK 11.0">
<searchSequence>
<directory location="${compiler:JRE_DIR}" />
<variable name="BUNDLE_ID" value="org.jalview.jalview-desktop" />
<variable name="INTERNAL_ID" value="Jalview" />
<variable name="WINDOWS_APPLICATION_ID" value="6595-2347-1923-0725" />
- <variable name="MACOS_DMG_DS_STORE" value="DS_Store" />
- <variable name="MACOS_DMG_BG_IMAGE" />
+ <variable name="MACOS_DMG_DS_STORE" value="jalview_dmg_DS_Store" />
+ <variable name="MACOS_DMG_BG_IMAGE" value="jalview_dmg_background-72dpi.png" />
+ <variable name="WRAPPER_LINK" value="jalview" />
+ <variable name="BASH_WRAPPER_SCRIPT" value="jalview.sh" />
+ <variable name="WRAPPER_SCRIPT_BIN_DIR" value="bin" />
<variable name="INSTALLER_NAME" value="Jalview Installer" />
<variable name="INSTALL4J_UTILS_DIR" value="utils/install4j" />
<variable name="GETDOWN_WEBSITE_DIR" value="getdown/website" />
<fileset name="Mac OS X JRE" id="880" />
<fileset name="Windows JRE" id="882" />
<fileset name="Jalview application" id="1873" />
- <fileset name="MacOS Old Jalview Uninstaller" id="2105" />
</filesets>
<roots>
<root id="735" fileset="734" />
<root id="881" fileset="880" />
<root id="883" fileset="882" />
<root id="1874" fileset="1873" />
- <root id="2106" fileset="2105" />
</roots>
<mountPoints>
<mountPoint id="454" />
<mountPoint id="884" root="881" />
<mountPoint id="885" root="883" />
<mountPoint id="1875" root="1874" />
- <mountPoint id="2107" root="2106" />
</mountPoints>
<entries>
<dirEntry mountPoint="454" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_FILES_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files" />
- <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_WEBSITE_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files" />
+ <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_WEBSITE_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files">
+ <exclude>
+ <entry location="${compiler:WRAPPER_SCRIPT_BIN_DIR}" />
+ </exclude>
+ </dirEntry>
<dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/examples" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="examples" />
+ <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_WEBSITE_DIR}/${compiler:JAVA_VERSION}/${compiler:WRAPPER_SCRIPT_BIN_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:WRAPPER_SCRIPT_BIN_DIR}" overrideDirMode="true" />
<dirEntry mountPoint="884" file="${compiler:MACOS_JAVA_VM_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
<dirEntry mountPoint="885" file="${compiler:WINDOWS_JAVA_VM_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
<dirEntry mountPoint="1875" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_WEBSITE_DIR}/${compiler:JAVA_VERSION}/${compiler:GETDOWN_DIST_DIR}" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:GETDOWN_DIST_DIR}" overrideDirMode="true" />
- <dirEntry mountPoint="2107" file="Uninstall Old Jalview.app" fileMode="755" overrideFileMode="true" entryMode="subdir" subDirectory="Uninstall Old Jalview.app" overrideDirMode="true" />
</entries>
<components>
<component name="jalview_getdown" id="1031">
<entry filesetId="1873" />
</include>
</component>
- <component name="macos_old_jalview_uninstaller" id="2110">
- <include>
- <entry filesetId="2105" />
- </include>
- </component>
</components>
</files>
<launchers>
<property name="obtainIfAdminWin" type="boolean" value="false" />
</serializedBean>
</action>
+ <action name="Set unixUserBinDir (Linux or Unix)" id="2738" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="script">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string">String userHome = (String)context.getVariable("sys.userHome");
+
+String[] tryPaths = new String[] {
+ "bin",
+ ".local" + File.separator + "bin",
+ "local" + File.separator + "bin",
+ "opt" + File.separator + "bin"
+};
+
+for (int i = 0; i < tryPaths.length; i++) {
+ String tryPath = tryPaths[i];
+ File unixUserBinDir = new File(userHome + File.separator + tryPath);
+ if (unixUserBinDir.exists()) {
+ return tryPath;
+ }
+}
+
+return null;
+</property>
+ </object>
+ </property>
+ <property name="variableName" type="string">unixUserBinDir</property>
+ </serializedBean>
+ <condition>Util.isLinux() || Util.isUnixInstaller()</condition>
+ </action>
</actions>
</screen>
</startup>
</action>
<action id="2542" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
<serializedBean>
- <property name="statusMessage" type="string">Creating file associations</property>
+ <property name="statusMessage" type="string">Finished creating file associations</property>
<property name="useDetail" type="boolean" value="true" />
<property name="useStatus" type="boolean" value="true" />
</serializedBean>
</serializedBean>
<condition>context.getBooleanVariable("addToDockAction")</condition>
</action>
+ <action name="Linux/Unix symlink" id="2733" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>!Util.isWindows()</condition>
+ </action>
+ <action name="Add Jalview bin to the user's path (Windows)" id="2740" beanClass="com.install4j.runtime.beans.actions.misc.ModifyEnvironmentVariableAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not add "${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}" to the Path environment variable">
+ <serializedBean>
+ <property name="type" type="enum" class="com.install4j.runtime.beans.actions.misc.ModifyStringType" value="APPEND" />
+ <property name="value" type="string">${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}</property>
+ <property name="variableName" type="string">Path</property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("appendToPathAction")</condition>
+ </action>
+ <action name="Create symbolic link to jalview.sh in user's local bin" id="2739" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixUserBinDir}">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:sys.contentDir}/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${installer:sys.userHome}/${installer:unixUserBinDir}/${compiler:WRAPPER_LINK}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("makeSymbolicLink") && ( Util.isLinux() || Util.isUnixInstaller() ) && ( context.getVariable("unixUserBinDir") != null )</condition>
+ </action>
</actions>
<formComponents>
<formComponent id="21" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
</serializedBean>
<visibilityScript>Util.isMacOS()</visibilityScript>
</formComponent>
+ <formComponent name="Add jalview bin to the user's Path environment variable (Windows)" id="2734" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">Add ${compiler:JALVIEW_APPLICATION_NAME}'s bin folder to the Path environment variable</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">appendToPathAction</property>
+ </serializedBean>
+ <visibilityScript>Util.isWindows()</visibilityScript>
+ </formComponent>
+ <formComponent name="Make a symbolic link to jalview.sh bash script in the user's local bin (Linux or Unix)" id="2736" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">Make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixUserBinDir}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">makeSymbolicLink</property>
+ </serializedBean>
+ <visibilityScript>( Util.isLinux() || Util.isUnixInstaller() ) && ( context.getVariable("unixUserBinDir") != null )</visibilityScript>
+ </formComponent>
</formComponents>
</screen>
</screens>
</action>
<action id="1525" beanClass="com.install4j.runtime.beans.actions.files.DeleteFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
<serializedBean>
- <property name="files" type="array" class="java.io.File" length="36">
+ <property name="files" type="array" class="java.io.File" length="40">
<element index="0">
<object class="java.io.File">
<string>jre</string>
<string>build_*</string>
</object>
</element>
+ <element index="36">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}</string>
+ </object>
+ </element>
+ <element index="37">
+ <object class="java.io.File">
+ <string>bin</string>
+ </object>
+ </element>
+ <element index="38">
+ <object class="java.io.File">
+ <string>channel.props</string>
+ </object>
+ </element>
+ <element index="39">
+ <object class="java.io.File">
+ <string>channel.propsv</string>
+ </object>
+ </element>
</property>
<property name="recursive" type="boolean" value="true" />
</serializedBean>
<component id="1156" />
<component id="1276" />
<component id="1881" />
- <component id="2110" />
</excludedComponents>
<exclude>
<entry defaultFileset="true" />
<file name=".DS_Store" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_DS_STORE}" />
<file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/Jalview-File.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-File.icns" />
<file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/Jalview-Launch.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-Launch.icns" />
- <symlink name="Uninstall Old Jalview (optional).app" target="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/app/Uninstall Old Jalview.app" />
+ <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/MacOS/${compiler:WRAPPER_LINK}" target="../Resources/app/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}" />
</topLevelFiles>
</macosArchive>
<unixInstaller name="Linux x64 Shell Installer" id="1595" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-linux_x64-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
<component id="1156" />
<component id="1276" />
<component id="1881" />
- <component id="2110" />
</excludedComponents>
<exclude>
<entry defaultFileset="true" />
<component id="1156" />
<component id="1276" />
<component id="1881" />
- <component id="2110" />
</excludedComponents>
<exclude>
<entry defaultFileset="true" />
<component id="1156" />
<component id="1276" />
<component id="1881" />
- <component id="2110" />
</excludedComponents>
<exclude>
<entry defaultFileset="true" />