diff --git a/Executables/MacOS via Automator and Script/INSTRUCTIONS-signingCode.txt b/Executables/MacOS via Automator and Script/INSTRUCTIONS-signingCode.txt new file mode 100644 index 000000000..a93547065 --- /dev/null +++ b/Executables/MacOS via Automator and Script/INSTRUCTIONS-signingCode.txt @@ -0,0 +1,75 @@ +For Apple Java executables: + +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Info.plist +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/MacOS/Mesquite +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Resources/Java/Mesquite.jar +codesign --force -s "Developer ID Application: Wayne Maddison" Mesquite.app +codesign -d --verbose=4 Mesquite.app +spctl --assess --verbose=4 --type execute Mesquite.app +====== + +For Oracle Java Executables 1.7: (used as of January 2018) +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Info.plist +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/MacOS/JavaAppLauncher +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Java/mesquite.jar +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Resources/Mesquite.icns +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/PkgInfo +codesign --force -s "Developer ID Application: Wayne Maddison" Mesquite.app +codesign -d --verbose=4 Mesquite.app +spctl --assess --verbose=4 --type execute Mesquite.app + +====== + +For Oracle Java Executables 1.8: +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Info.plist +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/MacOS/Mesquite +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/MacOS/libpackager.dylib +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Java/Mesquite.jar +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Java/Mesquite.cfg +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Resources/Mesquite.icns +codesign --force -s "Developer ID Application: Wayne Maddison" Mesquite.app +codesign -d --verbose=4 Mesquite.app +spctl --assess --verbose=4 --type execute Mesquite.app + +===== +Mesquite (1GB).app +Mesquite (2GB).app +Mesquite (500MB).app + +FROM http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html + +Sign your app using the codesign(1) tool, as shown in the following example: + +% codesign -s "Developer ID Application: CommonNameFromCertificate" ExampleApp.app +To verify that the app is signed, the following command provides information about the signing status of the app: + +% codesign -d --verbose=4 ExampleApp.app +To check whether an application can be launched when Gatekeeper is enabled, use the spctl command: + +% spctl --assess --verbose=4 --type execute ExampleApp.app + +======= +Then codesign + +codesign --force --sign "Developer ID Application: Wayne Maddison" + + +If you leave off the --verbose tag, and it does not print any output, indicates 'success'. + +==== +If certificate is expired +Open the Keychain Access app which can be found in Applications → Utilities. +Select Keychain Access → Certificate Assistant → Create a Certificate from the menubar. +For Name, enter mac-dev-env. +For Identity Type, leave Self-Signed Root. +For Certificate Type, select Code Signing. +Leave Let me override defaults unchecked. +Create the certificate and follow through until the window is closed. +Next, select the certificate in the login keychain and press ⌘-I. +Expand the Trust section. +Select Always Trust for Code Signing, close and save. + +then on commandline +sudo xcodebuild -license + +then try to sign again diff --git a/Executables/MacOS via Automator and Script/INSTRUCTIONS-signingNotarizingCode.txt b/Executables/MacOS via Automator and Script/INSTRUCTIONS-signingNotarizingCode.txt new file mode 100644 index 000000000..af4faba7b --- /dev/null +++ b/Executables/MacOS via Automator and Script/INSTRUCTIONS-signingNotarizingCode.txt @@ -0,0 +1,172 @@ +For Apple Java executables: + +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Info.plist +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/MacOS/Mesquite +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Resources/Java/Mesquite.jar +codesign --force -s "Developer ID Application: Wayne Maddison" Mesquite.app +codesign -d --verbose=4 Mesquite.app +spctl --assess --verbose=4 --type execute Mesquite.app +====== + +For Oracle Java Executables 1.7: (used as of January 2018) +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Info.plist +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/MacOS/JavaAppLauncher +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Java/mesquite.jar +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Resources/Mesquite.icns +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/PkgInfo +codesign --force -s "Developer ID Application: Wayne Maddison" Mesquite.app +codesign -d --verbose=4 Mesquite.app +spctl --assess --verbose=4 --type execute Mesquite.app + +====== + +For Oracle Java Executables 1.8: +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Info.plist +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/MacOS/Mesquite +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/MacOS/libpackager.dylib +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Java/Mesquite.jar +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Java/Mesquite.cfg +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Resources/Mesquite.icns +codesign --force -s "Developer ID Application: Wayne Maddison" Mesquite.app +codesign -d --verbose=4 Mesquite.app +spctl --assess --verbose=4 --type execute Mesquite.app + +===== + +For Oracle Java Executables JDK14: +EITHER +codesign --options=runtime -s "Developer ID Application: Wayne Maddison" Mesquite.app +codesign -d --verbose=4 Mesquite.app +spctl --assess --verbose=4 --type execute Mesquite.app + + +codesign --force --options=runtime -s "Developer ID Application: Wayne Maddison" Mesquite.app +codesign -d --verbose=4 Mesquite.app +spctl --assess --verbose=4 --type execute Mesquite.app + + +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/app/mesquite.jar +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/app/Mesquite.cfg +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/Info.plist +codesign --options=runtime -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/MacOS/Mesquite +codesign -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/MacOS/libapplauncher.dylib +codesign --verbose=4 --deep --force -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/runtime/Contents/MacOS/libjli.dylib +codesign --force --deep --options=runtime -s "Developer ID Application: Wayne Maddison" Mesquite.app +codesign -d --verbose=4 Mesquite.app +spctl --assess --verbose=4 --type execute Mesquite.app + + +OR: + +for f in $(find Mesquite.app/Contents); +do + codesign -s "Developer ID Application: Wayne Maddison" $f; +done +codesign --verbose=4 --deep --force -s "Developer ID Application: Wayne Maddison" Mesquite.app/Contents/runtime/Contents/MacOS/libjli.dylib +codesign --force --deep --options=runtime -s "Developer ID Application: Wayne Maddison" Mesquite.app +codesign -d --verbose=4 Mesquite.app +spctl --assess --verbose=4 --type execute Mesquite.app + +(all of this is done by signBundle.sh) +===== +Mesquite (1GB).app +Mesquite (2GB).app +Mesquite (500MB).app + +FROM http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html + +Sign your app using the codesign(1) tool, as shown in the following example: + +% codesign -s "Developer ID Application: CommonNameFromCertificate" ExampleApp.app +To verify that the app is signed, the following command provides information about the signing status of the app: + +% codesign -d --verbose=4 ExampleApp.app +To check whether an application can be launched when Gatekeeper is enabled, use the spctl command: + +% spctl --assess --verbose=4 --type execute ExampleApp.app + +==== +If certificate is expired +NEW: +Use XCode, Preferences, accounts: +https://help.apple.com/xcode/mac/current/#/dev154b28f09 + +==================================================== +NOTARIZING +Sign app, as above +Zip using + /usr/bin/ditto -c -k --keepParent Mesquite.app Mesquite.zip +Submit for notarization using + xcrun altool --eval-app --primary-bundle-id org.mesquiteproject -u wmaddisn@zoology.ubc.ca -f Mesquite.zip + +Give not Apple-id password, but rather app-specific PASSWORD. (https://support.apple.com/en-us/HT204397) + +For regular Mesquite.app: hjbt-fpiw-yhus-tukk + +Will respond with a RequestUUID. To check status, enter (replace strange request uu id) + + xcrun altool --eval-info -u wmaddisn@zoology.ubc.ca + xcrun altool --eval-info 62e0a34a-d94e-451a-8f1a-b2cf23a5e8aa -u wmaddisn@zoology.ubc.ca + +To get more details use the URL given + +Somethow this might help also??? +xcrun altool --notarization-info -u wmaddisn@zoology.ubc.ca + + +Once it's approved, run + xcrun stapler staple Mesquite.app + + +======== +xcrun altool --eval-info 5a7b3743-39e3-4362-8204-404f9bdac65a -u wmaddisn@zoology.ubc.ca + +xcrun altool --notarization-info 6000f74f-fe6f-463a-bf41-4595dfd8d1a3 -u wmaddisn@zoology.ubc.ca + +==================================================== +Then codesign and notarize the APP + +codesign --force --sign "Developer ID Application: Wayne Maddison" MesquiteDMG.dmg + +If you leave off the --verbose tag, and it does not print any output, indicates 'success'. + +Then sign and notarize the dmg +xattr -cr MesquiteDMG.dmg +codesign --force --sign "Developer ID Application: Wayne Maddison" MesquiteDMG.dmg +xcrun altool --eval-app --primary-bundle-id org.mesquiteproject -u wmaddisn@zoology.ubc.ca -f MesquiteDMG.dmg +(wait and it will give you the request UUID) + +App specific password for MesquiteDMG: ondx-llog-pdue-mxoo + +To check status: +xcrun altool --eval-info 25beae4a-dbc9-4fca-b922-a35bd3e47974 -u wmaddisn@zoology.ubc.ca +(where the weird thing is replaced by the request UUID) + +xcrun stapler staple MesquiteDMG.dmg + + +https://stackoverflow.com/questions/52911791/hardened-runtime-for-java-and-mojave +https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow +https://github.com/AdoptOpenJDK/openjdk-support/issues/97 +https://stackoverflow.com/questions/56890749/macos-notarize-in-script + + + + +----------------- +OLD +Open the Keychain Access app which can be found in Applications → Utilities. +Select Keychain Access → Certificate Assistant → Create a Certificate from the menubar. +For Name, enter mac-dev-env. +For Identity Type, leave Self-Signed Root. +For Certificate Type, select Code Signing. +Leave Let me override defaults unchecked. +Create the certificate and follow through until the window is closed. +Next, select the certificate in the login keychain and press ⌘-I. +Expand the Trust section. +Select Always Trust for Code Signing, close and save. + +then on commandline +sudo xcodebuild -license + +then try to sign again diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/CodeResources b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/CodeResources new file mode 100644 index 000000000..3014ddc34 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/CodeResources differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Info.plist b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Info.plist new file mode 100644 index 000000000..696b8c3c8 --- /dev/null +++ b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Info.plist @@ -0,0 +1,109 @@ + + + + + AMIsApplet + + AMStayOpen + + BuildMachineOSBuild + 17A405001 + CFBundleAllowMixedLocalizations + + CFBundleDevelopmentRegion + English + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + * + + CFBundleTypeName + Automator workflow file + CFBundleTypeOSTypes + + **** + + CFBundleTypeRole + Viewer + + + CFBundleExecutable + Application Stub + CFBundleIconFile + Mesquite.icns + CFBundleIdentifier + com.apple.automator.Mesquite_Starter_Flex-01AutomatorOrig-2021superFlex + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Mesquite_Starter_Flex-01AutomatorOrig-2021superFlex + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.3 + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleURLTypes + + CFBundleVersion + 444.42 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 10P70r + DTPlatformName + macosx + DTPlatformVersion + 10.14 + DTSDKBuild + 18F82 + DTSDKName + macosx10.14internal + DTXcode + 1020 + DTXcodeBuild + 10P70r + LSMinimumSystemVersion + 10.6 + LSUIElement + + NSAppleEventsUsageDescription + This workflow needs to control other applications to run. + NSAppleMusicUsageDescription + This workflow needs access to your music to run. + NSAppleScriptEnabled + YES + NSCalendarsUsageDescription + This workflow needs access to your calendars to run. + NSCameraUsageDescription + This workflow needs access to your camera to run. + NSContactsUsageDescription + This workflow needs access to your contacts to run. + NSHomeKitUsageDescription + This workflow needs access to your HomeKit Home to run. + NSMicrophoneUsageDescription + This workflow needs access to your microphone to run. + NSPhotoLibraryUsageDescription + This workflow needs access to your photos to run. + NSPrincipalClass + NSApplication + NSRemindersUsageDescription + This workflow needs access to your reminders to run. + NSServices + + NSSiriUsageDescription + This workflow needs access to Siri to run. + NSSystemAdministrationUsageDescription + This workflow needs access to administer this system in order to run. + UTExportedTypeDeclarations + + UTImportedTypeDeclarations + + + diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/MacOS/Application Stub b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/MacOS/Application Stub new file mode 100755 index 000000000..01ccd6d98 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/MacOS/Application Stub differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/AutomatorApplet.icns b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/AutomatorApplet.icns new file mode 100644 index 000000000..1e1593e8a Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/AutomatorApplet.icns differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/Mesquite.icns b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/Mesquite.icns new file mode 100644 index 000000000..280d8334a Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/Mesquite.icns differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ar.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ar.lproj/InfoPlist.strings new file mode 100644 index 000000000..29ccabb6f Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ar.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ca.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ca.lproj/InfoPlist.strings new file mode 100644 index 000000000..c0a6ad741 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ca.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/cs.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/cs.lproj/InfoPlist.strings new file mode 100644 index 000000000..99fb87ef5 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/cs.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/da.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/da.lproj/InfoPlist.strings new file mode 100644 index 000000000..7c79f432a Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/da.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/de.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/de.lproj/InfoPlist.strings new file mode 100644 index 000000000..e5b0ee989 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/de.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/el.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/el.lproj/InfoPlist.strings new file mode 100644 index 000000000..426f98c99 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/el.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/en.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/en.lproj/InfoPlist.strings new file mode 100644 index 000000000..5cd22716f Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/en.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/en_AU.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/en_AU.lproj/InfoPlist.strings new file mode 100644 index 000000000..5cd22716f Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/en_AU.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/en_GB.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/en_GB.lproj/InfoPlist.strings new file mode 100644 index 000000000..5cd22716f Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/en_GB.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/es.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/es.lproj/InfoPlist.strings new file mode 100644 index 000000000..d3f3e8cb7 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/es.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/es_419.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/es_419.lproj/InfoPlist.strings new file mode 100644 index 000000000..caabfa4f9 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/es_419.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/fi.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/fi.lproj/InfoPlist.strings new file mode 100644 index 000000000..de8cd969e Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/fi.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/fr.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/fr.lproj/InfoPlist.strings new file mode 100644 index 000000000..9e505c078 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/fr.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/fr_CA.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/fr_CA.lproj/InfoPlist.strings new file mode 100644 index 000000000..67c036c60 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/fr_CA.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/he.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/he.lproj/InfoPlist.strings new file mode 100644 index 000000000..a501d8722 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/he.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/hi.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/hi.lproj/InfoPlist.strings new file mode 100644 index 000000000..af2bf6ae8 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/hi.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/hr.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/hr.lproj/InfoPlist.strings new file mode 100644 index 000000000..02ad1cf10 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/hr.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/hu.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/hu.lproj/InfoPlist.strings new file mode 100644 index 000000000..4433c6c8b Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/hu.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/id.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/id.lproj/InfoPlist.strings new file mode 100644 index 000000000..03bfb4457 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/id.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/it.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/it.lproj/InfoPlist.strings new file mode 100644 index 000000000..e92bc171d Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/it.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ja.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ja.lproj/InfoPlist.strings new file mode 100644 index 000000000..1471dd9ac Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ja.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ko.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ko.lproj/InfoPlist.strings new file mode 100644 index 000000000..48fd5013d Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ko.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ms.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ms.lproj/InfoPlist.strings new file mode 100644 index 000000000..445f9dbd9 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ms.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/nl.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/nl.lproj/InfoPlist.strings new file mode 100644 index 000000000..9236f993f Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/nl.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/no.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/no.lproj/InfoPlist.strings new file mode 100644 index 000000000..5c7648711 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/no.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/pl.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/pl.lproj/InfoPlist.strings new file mode 100644 index 000000000..c07d0403a Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/pl.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/pt.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/pt.lproj/InfoPlist.strings new file mode 100644 index 000000000..d5f6f3e8f Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/pt.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/pt_PT.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/pt_PT.lproj/InfoPlist.strings new file mode 100644 index 000000000..dc78336df Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/pt_PT.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ro.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ro.lproj/InfoPlist.strings new file mode 100644 index 000000000..9f61eee1a Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ro.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ru.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ru.lproj/InfoPlist.strings new file mode 100644 index 000000000..af639b991 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/ru.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/sk.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/sk.lproj/InfoPlist.strings new file mode 100644 index 000000000..0bc28954e Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/sk.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/sv.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/sv.lproj/InfoPlist.strings new file mode 100644 index 000000000..30d5503ba Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/sv.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/th.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/th.lproj/InfoPlist.strings new file mode 100644 index 000000000..eb56aa89d Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/th.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/tr.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/tr.lproj/InfoPlist.strings new file mode 100644 index 000000000..70682302e Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/tr.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/uk.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/uk.lproj/InfoPlist.strings new file mode 100644 index 000000000..e10476e87 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/uk.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/vi.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/vi.lproj/InfoPlist.strings new file mode 100644 index 000000000..c2429b995 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/vi.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/zh_CN.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/zh_CN.lproj/InfoPlist.strings new file mode 100644 index 000000000..25c067721 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/zh_CN.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/zh_HK.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/zh_HK.lproj/InfoPlist.strings new file mode 100644 index 000000000..087d7bca2 Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/zh_HK.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/zh_TW.lproj/InfoPlist.strings b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/zh_TW.lproj/InfoPlist.strings new file mode 100644 index 000000000..048fdb10f Binary files /dev/null and b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/Resources/zh_TW.lproj/InfoPlist.strings differ diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/_CodeSignature/CodeResources b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/_CodeSignature/CodeResources new file mode 100755 index 000000000..f44c35cdf --- /dev/null +++ b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/_CodeSignature/CodeResources @@ -0,0 +1,1014 @@ + + + + + files + + Resources/AutomatorApplet.icns + + Bf3MfmC8pA7tbY/7qNv1733LS9M= + + Resources/Mesquite.icns + + mqnGaSRzbpi8l2W1di+4pqXeH9s= + + Resources/ar.lproj/InfoPlist.strings + + hash + + u9+EEibpu0BrIFYR2invkDVL5Qw= + + optional + + + Resources/ca.lproj/InfoPlist.strings + + hash + + UN/lCgd4Jb3Po/OAFkPE77PGKYc= + + optional + + + Resources/cs.lproj/InfoPlist.strings + + hash + + nFzts31xjMimebMAl/xMUCfSWlI= + + optional + + + Resources/da.lproj/InfoPlist.strings + + hash + + kC89jIYYEtCpqn7Oghqw+DJidtA= + + optional + + + Resources/de.lproj/InfoPlist.strings + + hash + + zS3TSEWqlRmN631+LnqFqrfMec4= + + optional + + + Resources/el.lproj/InfoPlist.strings + + hash + + 4LMDCNN+h+uW9RVdmCBmEBtFSrA= + + optional + + + Resources/en.lproj/InfoPlist.strings + + hash + + 9lu2Zf97rfoBBL0iqFvwwsS5nqE= + + optional + + + Resources/en_AU.lproj/InfoPlist.strings + + hash + + 9lu2Zf97rfoBBL0iqFvwwsS5nqE= + + optional + + + Resources/en_GB.lproj/InfoPlist.strings + + hash + + 9lu2Zf97rfoBBL0iqFvwwsS5nqE= + + optional + + + Resources/es.lproj/InfoPlist.strings + + hash + + /O6iOXTUC3XLeaMH6vMyolZTy4Q= + + optional + + + Resources/es_419.lproj/InfoPlist.strings + + hash + + VuZXrr3xJzFqOKFVyjkpZTsB/TQ= + + optional + + + Resources/fi.lproj/InfoPlist.strings + + hash + + GB95RPvIrzmANg/R07v8mRYKBmE= + + optional + + + Resources/fr.lproj/InfoPlist.strings + + hash + + 1MZOZBFmHHx8cfoiOTzeB3YGaow= + + optional + + + Resources/fr_CA.lproj/InfoPlist.strings + + hash + + ajLB3I2PPBK7tO9QXsgyXqAf/9M= + + optional + + + Resources/he.lproj/InfoPlist.strings + + hash + + uTZrY/J9p3EN6EJ8a3S17R1r0CM= + + optional + + + Resources/hi.lproj/InfoPlist.strings + + hash + + sNYXxR2VmtqiBHAUpoAN+9rIWf4= + + optional + + + Resources/hr.lproj/InfoPlist.strings + + hash + + yAywN2fEB6aQ+c6qiZT9Qs3kijQ= + + optional + + + Resources/hu.lproj/InfoPlist.strings + + hash + + ZvlxFpjHYeMF4UoIEi0XiV+Cu2k= + + optional + + + Resources/id.lproj/InfoPlist.strings + + hash + + QBulAupJ7ftckk0U37Ac9sWMS5M= + + optional + + + Resources/it.lproj/InfoPlist.strings + + hash + + mgQ0UML3kWca0h3kEPj8EktYUtc= + + optional + + + Resources/ja.lproj/InfoPlist.strings + + hash + + TF/qrX5qN9RbA4w9+eIGJ3tZpMY= + + optional + + + Resources/ko.lproj/InfoPlist.strings + + hash + + h3smpMq48j3PfDI5NP1MBlhRGCs= + + optional + + + Resources/ms.lproj/InfoPlist.strings + + hash + + ntabgb8xKYBu9Wlwq+KBRWOj4cc= + + optional + + + Resources/nl.lproj/InfoPlist.strings + + hash + + 2hYNY8l8KIruwpSGc8EamEoEKcg= + + optional + + + Resources/no.lproj/InfoPlist.strings + + hash + + sWq0bWEW/L78MON56Ox3NkhumFA= + + optional + + + Resources/pl.lproj/InfoPlist.strings + + hash + + Lu1vNwIyPPAUeTFv1BmLsjEYfUg= + + optional + + + Resources/pt.lproj/InfoPlist.strings + + hash + + f594YB7NaxbAZEaTTeyWcBLeufw= + + optional + + + Resources/pt_PT.lproj/InfoPlist.strings + + hash + + e8DE5RLCITxNquNMMZMMwBXNS50= + + optional + + + Resources/ro.lproj/InfoPlist.strings + + hash + + dHII27C+Yqo2aMpDdvKWrJr/A4o= + + optional + + + Resources/ru.lproj/InfoPlist.strings + + hash + + mkEcXq7nvi+4PlDkkO7mSIYquBc= + + optional + + + Resources/sk.lproj/InfoPlist.strings + + hash + + XhaqfsZtXa19Lxt/2KihVyZQOzk= + + optional + + + Resources/sv.lproj/InfoPlist.strings + + hash + + BYdlnFufmWzlpJrheClmCN7Chh8= + + optional + + + Resources/th.lproj/InfoPlist.strings + + hash + + WIGfPimaJmK19pVXalyb5HWi1z4= + + optional + + + Resources/tr.lproj/InfoPlist.strings + + hash + + 8awq/XTYFfDJOcYOx3DRl7satYs= + + optional + + + Resources/uk.lproj/InfoPlist.strings + + hash + + ZB/a+LXCJydku2nxRhXdFc2jyIU= + + optional + + + Resources/vi.lproj/InfoPlist.strings + + hash + + fBGaXOAYxdQjDvwTk+IeRKLDudQ= + + optional + + + Resources/zh_CN.lproj/InfoPlist.strings + + hash + + GuwX6bfgJVWZ2iL/nf7G2D7m91I= + + optional + + + Resources/zh_HK.lproj/InfoPlist.strings + + hash + + ztyIfPb4/CLzceG3nbbonph9qRA= + + optional + + + Resources/zh_TW.lproj/InfoPlist.strings + + hash + + t259jw346xKzUgPwGqw0PCLXjGc= + + optional + + + + files2 + + Resources/AutomatorApplet.icns + + hash + + Bf3MfmC8pA7tbY/7qNv1733LS9M= + + hash2 + + 9KuKTSCyJH4fZHTpLe+S9JklfIuBlI0KZ728hivx8RE= + + + Resources/Mesquite.icns + + hash + + mqnGaSRzbpi8l2W1di+4pqXeH9s= + + hash2 + + i5EC+dPX7zdVv0gkr98Ez5XSpVYjE3Zym2KoGfXHfAk= + + + Resources/ar.lproj/InfoPlist.strings + + hash + + u9+EEibpu0BrIFYR2invkDVL5Qw= + + hash2 + + +tI+tYErnJQFGuCaaVBqzMTzTSaUG8n9n8CBpv4m0z8= + + optional + + + Resources/ca.lproj/InfoPlist.strings + + hash + + UN/lCgd4Jb3Po/OAFkPE77PGKYc= + + hash2 + + veR595pze+/T7s2rHZub1XoyOsM6SyoixC0yJE/WMUw= + + optional + + + Resources/cs.lproj/InfoPlist.strings + + hash + + nFzts31xjMimebMAl/xMUCfSWlI= + + hash2 + + E3ybF6xwZRLT1tqRFDT7gRQDo0nPGSDOFQ121aiBXXo= + + optional + + + Resources/da.lproj/InfoPlist.strings + + hash + + kC89jIYYEtCpqn7Oghqw+DJidtA= + + hash2 + + c/q6KvcFDZk5ZA7KkZdfPfDci7HCFBFNciRLHLhegiI= + + optional + + + Resources/de.lproj/InfoPlist.strings + + hash + + zS3TSEWqlRmN631+LnqFqrfMec4= + + hash2 + + aw6NGRf3dsquEVTvmFjFvf1R5jTmzclRlnTCcY4xJCE= + + optional + + + Resources/el.lproj/InfoPlist.strings + + hash + + 4LMDCNN+h+uW9RVdmCBmEBtFSrA= + + hash2 + + ExoHd5+gNhryyKtpjZceSTr5OtY6O3ZqbErSrbH4laQ= + + optional + + + Resources/en.lproj/InfoPlist.strings + + hash + + 9lu2Zf97rfoBBL0iqFvwwsS5nqE= + + hash2 + + qvV1gfidvmYmxHBuN5E1f2FqfndHiE8lmk0rRUN3+ZU= + + optional + + + Resources/en_AU.lproj/InfoPlist.strings + + hash + + 9lu2Zf97rfoBBL0iqFvwwsS5nqE= + + hash2 + + qvV1gfidvmYmxHBuN5E1f2FqfndHiE8lmk0rRUN3+ZU= + + optional + + + Resources/en_GB.lproj/InfoPlist.strings + + hash + + 9lu2Zf97rfoBBL0iqFvwwsS5nqE= + + hash2 + + qvV1gfidvmYmxHBuN5E1f2FqfndHiE8lmk0rRUN3+ZU= + + optional + + + Resources/es.lproj/InfoPlist.strings + + hash + + /O6iOXTUC3XLeaMH6vMyolZTy4Q= + + hash2 + + L75F9A65jaKeL9TOGRL/FuUE9pGX4jQOz6U8WMfY/R4= + + optional + + + Resources/es_419.lproj/InfoPlist.strings + + hash + + VuZXrr3xJzFqOKFVyjkpZTsB/TQ= + + hash2 + + +Ou08o/WkBG7DLbifUPqxpKzYHHnvtkGNSghOiLtRs0= + + optional + + + Resources/fi.lproj/InfoPlist.strings + + hash + + GB95RPvIrzmANg/R07v8mRYKBmE= + + hash2 + + wDMWeaZx0SCZLn+4uypY+ymJP6z3z2+scf1TBuBNjSE= + + optional + + + Resources/fr.lproj/InfoPlist.strings + + hash + + 1MZOZBFmHHx8cfoiOTzeB3YGaow= + + hash2 + + ZwlKi2JA1Feh2MCGP2NG9x4RObPAlf3rzIx8DE+68dk= + + optional + + + Resources/fr_CA.lproj/InfoPlist.strings + + hash + + ajLB3I2PPBK7tO9QXsgyXqAf/9M= + + hash2 + + Dil8fGVtECGmAhs8Fkb91YHOh0QKwC/1BpYRLj4wVRQ= + + optional + + + Resources/he.lproj/InfoPlist.strings + + hash + + uTZrY/J9p3EN6EJ8a3S17R1r0CM= + + hash2 + + unpjYEYOdNuTgfG1thg/49idnRK8INJm3N7DB17H/MY= + + optional + + + Resources/hi.lproj/InfoPlist.strings + + hash + + sNYXxR2VmtqiBHAUpoAN+9rIWf4= + + hash2 + + Nc99LpVV9Rfq+07LT9OhNTkj1tMyC0UwHTwDOJaGnGc= + + optional + + + Resources/hr.lproj/InfoPlist.strings + + hash + + yAywN2fEB6aQ+c6qiZT9Qs3kijQ= + + hash2 + + 5LRJGUk8z6Y2cMVXg/m/e5ggUHRBxtC0tnuvhBucWhM= + + optional + + + Resources/hu.lproj/InfoPlist.strings + + hash + + ZvlxFpjHYeMF4UoIEi0XiV+Cu2k= + + hash2 + + 870ULoLi3vtI/g9KWFPPR18/QR3uaVPIHvNAPVft/jQ= + + optional + + + Resources/id.lproj/InfoPlist.strings + + hash + + QBulAupJ7ftckk0U37Ac9sWMS5M= + + hash2 + + GMea+kUIEH7biYvR67oKqMEnuFy3j8Lb74BpcXrSYD8= + + optional + + + Resources/it.lproj/InfoPlist.strings + + hash + + mgQ0UML3kWca0h3kEPj8EktYUtc= + + hash2 + + QhD/kYsPPkZkAEjPmaqkLYhHNP50lYs2Q6RunJ9HbyA= + + optional + + + Resources/ja.lproj/InfoPlist.strings + + hash + + TF/qrX5qN9RbA4w9+eIGJ3tZpMY= + + hash2 + + 7G0LXrq5M8ki1QKwtoIsWXAqRXqaFdkMnDEn+TDi+Og= + + optional + + + Resources/ko.lproj/InfoPlist.strings + + hash + + h3smpMq48j3PfDI5NP1MBlhRGCs= + + hash2 + + JanQ/AXxepGqrhtWd34VtED+2Ikh6AR47OTSGKkOORg= + + optional + + + Resources/ms.lproj/InfoPlist.strings + + hash + + ntabgb8xKYBu9Wlwq+KBRWOj4cc= + + hash2 + + BbFAHik61RbsHA6viuMQ1C48oudMZ7kjpUjfqJ3Ai/M= + + optional + + + Resources/nl.lproj/InfoPlist.strings + + hash + + 2hYNY8l8KIruwpSGc8EamEoEKcg= + + hash2 + + IpW+ymYJd45P8RxueJCinY5kGYdpEigiwPOMsP7+kFs= + + optional + + + Resources/no.lproj/InfoPlist.strings + + hash + + sWq0bWEW/L78MON56Ox3NkhumFA= + + hash2 + + q69yUDZL7gQDZm2Uv8iIE/BwqseJ4h+1Ytlze80Gyzo= + + optional + + + Resources/pl.lproj/InfoPlist.strings + + hash + + Lu1vNwIyPPAUeTFv1BmLsjEYfUg= + + hash2 + + TMyg7YWH2Q/Q21k6gIn8c5+P1D/eQ56EJEyLlNxrZog= + + optional + + + Resources/pt.lproj/InfoPlist.strings + + hash + + f594YB7NaxbAZEaTTeyWcBLeufw= + + hash2 + + T9ui1WaJ3ZJYcMbpDqHmSCqpbCyAT3G17x6TiAgSWhw= + + optional + + + Resources/pt_PT.lproj/InfoPlist.strings + + hash + + e8DE5RLCITxNquNMMZMMwBXNS50= + + hash2 + + 3L7jJy8V6bntI/yPfZZ7m/KbUUJiJC3PeGliBvhaYmc= + + optional + + + Resources/ro.lproj/InfoPlist.strings + + hash + + dHII27C+Yqo2aMpDdvKWrJr/A4o= + + hash2 + + yLDNGiF16vVl9Fsb1Rbtttp29nAdDvHJa/uICWU6xWw= + + optional + + + Resources/ru.lproj/InfoPlist.strings + + hash + + mkEcXq7nvi+4PlDkkO7mSIYquBc= + + hash2 + + 0n7LviusI+ZgRMt7E6DT4SuLVbEvb478SN/Phh6nGrM= + + optional + + + Resources/sk.lproj/InfoPlist.strings + + hash + + XhaqfsZtXa19Lxt/2KihVyZQOzk= + + hash2 + + dqkOqhirv9LBWpRS3Ln9Ls/ErbADeyYmW0UwFzpdrb4= + + optional + + + Resources/sv.lproj/InfoPlist.strings + + hash + + BYdlnFufmWzlpJrheClmCN7Chh8= + + hash2 + + lGH0nxdIuHpjAn5hcBey2jNrEndUjZ35l0dFJCRxeZw= + + optional + + + Resources/th.lproj/InfoPlist.strings + + hash + + WIGfPimaJmK19pVXalyb5HWi1z4= + + hash2 + + 4UuVy5dxfjjz7kWQ6hh4pUP1UVT5/3yqCHTuRRZNvVg= + + optional + + + Resources/tr.lproj/InfoPlist.strings + + hash + + 8awq/XTYFfDJOcYOx3DRl7satYs= + + hash2 + + ZHHJWbfyNzyM3cFSQVravPaezQUP2y/ETgwAwy9YXE4= + + optional + + + Resources/uk.lproj/InfoPlist.strings + + hash + + ZB/a+LXCJydku2nxRhXdFc2jyIU= + + hash2 + + ZZUVLWrSJ9hOa0N8n+/WK7KD9pLekOedwqP2S22wr1k= + + optional + + + Resources/vi.lproj/InfoPlist.strings + + hash + + fBGaXOAYxdQjDvwTk+IeRKLDudQ= + + hash2 + + db2kptf+W9FaSJWqpCb6AYqxPtIkQQJnWO7MPSvb4UQ= + + optional + + + Resources/zh_CN.lproj/InfoPlist.strings + + hash + + GuwX6bfgJVWZ2iL/nf7G2D7m91I= + + hash2 + + Y1Nn88Cu12QEmWMRHQte9A3VlvDUu1kcJBDdS/gy0dI= + + optional + + + Resources/zh_HK.lproj/InfoPlist.strings + + hash + + ztyIfPb4/CLzceG3nbbonph9qRA= + + hash2 + + 6YOzSEI4f/EYeBn6PbSyjKgmrykbnSNRPeBUPsz3IEg= + + optional + + + Resources/zh_TW.lproj/InfoPlist.strings + + hash + + t259jw346xKzUgPwGqw0PCLXjGc= + + hash2 + + YbaT7Ysm60XBG26Mvp8AU2SI9oT85wbUYdGbxQOHxDg= + + optional + + + document.wflow + + cdhash + + SpVgndlS1DB6I2zxWGn+U077PQI= + + requirement + identifier document and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "8LT29UFQPL" + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/document.wflow b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/document.wflow new file mode 100644 index 000000000..eac06a7de --- /dev/null +++ b/Executables/MacOS via Automator and Script/Mesquite_Starter_Flex.app/Contents/document.wflow @@ -0,0 +1,706 @@ + + + + + AMApplicationBuild + 444.42 + AMApplicationVersion + 2.9 + AMDocumentVersion + 2 + actions + + + action + + AMAccepts + + Container + List + Optional + + Types + + * + + + AMActionVersion + v.1.0.2 + AMApplication + + Automator + + AMParameterProperties + + variableUUID + + isPathPopUp + + selectedVariableUUID + B5724CA0-32E6-41E6-A92D-05F05ECF423A + + + AMProvides + + Container + List + Types + + * + + + AMRequiredResources + + ActionBundlePath + /System/Library/Automator/Set Value of Variable.action + ActionName + Set Value of Variable + ActionParameters + + variableUUID + B5724CA0-32E6-41E6-A92D-05F05ECF423A + + BundleIdentifier + com.apple.Automator.SetValueofVariable + CFBundleVersion + 1.0.2 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + Set_Value_of_Variable + InputUUID + 43FB1F79-4EA6-4AA7-A306-B9BCE6E21896 + Keywords + + variable + binding + input + output + storage + + OutputUUID + E791B933-EFA9-43EE-B7B4-F8F6C5EE0E4A + UUID + 4B07F06B-F2E4-49D5-8009-9C558FB1CD61 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + + name + variableUUID + required + 0 + type + 0 + uuid + 0 + + + isViewVisible + + location + 619.500000:111.000000 + nibPath + /System/Library/Automator/Set Value of Variable.action/Contents/Resources/Base.lproj/main.nib + + isViewVisible + + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.path + + + AMActionVersion + 1.2.2 + AMApplication + + Finder + + AMParameterProperties + + newName + + tokenizedValue + + Mesquite_Support_Files + + + targetLocation + + isPathPopUp + + variableUUIDsInMenu + + + + AMProvides + + Container + List + Types + + public.folder + + + ActionBundlePath + /System/Library/Automator/New Folder.action + ActionName + New Folder + ActionParameters + + newName + Mesquite_Support_Files + targetLocation + ~ + + BundleIdentifier + com.apple.Automator.MakeNewFolder + CFBundleVersion + 1.2.2 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryFilesAndFolders + + Class Name + NewFolderAction + IgnoresInput + + InputUUID + 7F253106-A965-4ABC-97FD-1FD2D52366A4 + Keywords + + Folder + Create + Make + New + + OutputUUID + 8EA1A9AF-B3C7-46F2-B605-CDBB38797DA9 + UUID + 2528247D-5A8D-4ADD-9481-A0BC58FA668F + UnlocalizedApplications + + Finder + + arguments + + 0 + + default value + + name + newName + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + ~/Desktop + name + targetLocation + required + 0 + type + 0 + uuid + 1 + + + isViewVisible + + location + 619.500000:152.000000 + nibPath + /System/Library/Automator/New Folder.action/Contents/Resources/Base.lproj/main.nib + + isViewVisible + + + + action + + AMAccepts + + Container + List + Optional + + Types + + * + + + AMActionVersion + v.1.0.2 + AMApplication + + Automator + + AMParameterProperties + + variableUUID + + isPathPopUp + + selectedVariableUUID + B5724CA0-32E6-41E6-A92D-05F05ECF423A + + + AMProvides + + Container + List + Types + + * + + + AMRequiredResources + + ActionBundlePath + /System/Library/Automator/Get Value of Variable.action + ActionName + Get Value of Variable + ActionParameters + + variableUUID + B5724CA0-32E6-41E6-A92D-05F05ECF423A + + BundleIdentifier + com.apple.Automator.GetValueofVariable + CFBundleVersion + 1.0.2 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + Get_Value_of_Variable + IgnoresInput + + InputUUID + B3699B55-670C-4E04-8062-7A25776314F6 + Keywords + + variable + binding + input + output + storage + + OutputUUID + 342F6FBC-A8B4-4AB8-8488-094942236BD7 + UUID + 4F14C189-CB3E-41E7-989A-E209FB44368B + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + + name + variableUUID + required + 0 + type + 0 + uuid + 0 + + + isViewVisible + + location + 619.500000:193.000000 + nibPath + /System/Library/Automator/Get Value of Variable.action/Contents/Resources/Base.lproj/main.nib + + isViewVisible + + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.applescript.object + + + AMActionVersion + 1.0.2 + AMApplication + + Automator + + AMParameterProperties + + source + + + AMProvides + + Container + List + Types + + com.apple.applescript.object + + + ActionBundlePath + /System/Library/Automator/Run AppleScript.action + ActionName + Run AppleScript + ActionParameters + + source + on getPath(this_text, stripLast) set AppleScript's text item delimiters to the ":" set the item_list to every text item of this_text set num to the number of items in item_list if stripLast then set lasti to num - 2 else set lasti to num end if set the item_list to items 2 through lasti of item_list set AppleScript's text item delimiters to the "/" set this_text to the item_list as string set AppleScript's text item delimiters to "" set this_text to "/" & this_text return this_text end getPath on run {input, parameters} set whereAmI to getPath((path to me as text), true) set javaLocFile to whereAmI & "/RunningOptionsForFlex/Mesquite-JavaToUse.txt" set javaLoc to "java" try set lns to paragraphs of (read POSIX file javaLocFile) set javaLoc to first item in lns end try set memoryFile to whereAmI & "/RunningOptionsForFlex/Mesquite-MemoryToUse.txt" set memory to 1 try set lns to paragraphs of (read POSIX file memoryFile) set memory to first item in lns end try set flagsFile to whereAmI & "/RunningOptionsForFlex/Mesquite-FlagsToUse.txt" set flags to "" try set lns to paragraphs of (read POSIX file flagsFile) set flags to first item in lns end try #display dialog memory as text set results to whereAmI try if input is not equal to {} then set droppedFiles to getPath(input as text, false) set results to results & ":" & droppedFiles end if end try set results to javaLoc & ":" & flags & ":" &memory & ":" & results return results end run + + BundleIdentifier + com.apple.Automator.RunScript + CFBundleVersion + 1.0.2 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunScriptAction + InputUUID + 11F3EFA2-BE3D-4DD3-A24A-AFC7373B06F3 + Keywords + + Run + + OutputUUID + F42FD833-E0EE-4550-88BA-39A54F93799B + UUID + 35565B5A-57E2-4F76-B8E4-02CE4A8CD9B2 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + on run {input, parameters} + + (* Your script goes here *) + + return input +end run + name + source + required + 0 + type + 0 + uuid + 0 + + + isViewVisible + + location + 619.500000:438.000000 + nibPath + /System/Library/Automator/Run AppleScript.action/Contents/Resources/Base.lproj/main.nib + + isViewVisible + + + + action + + AMAccepts + + Container + List + Optional + + Types + + com.apple.cocoa.string + + + AMActionVersion + 2.0.3 + AMApplication + + Automator + + AMParameterProperties + + COMMAND_STRING + + CheckedForUserDefaultShell + + inputMethod + + shell + + source + + + AMProvides + + Container + List + Types + + com.apple.cocoa.string + + + ActionBundlePath + /System/Library/Automator/Run Shell Script.action + ActionName + Run Shell Script + ActionParameters + + COMMAND_STRING + read whereAndWhat #where is Mesquite Folder, and what are dropped files +echo $whereAndWhat > Mesquite_Support_Files/Mesquite_Flex_INSTRUCTIONS.txt +IFS=':' read -r -a arr <<< "$whereAndWhat" +JAVALOC=${arr[0]} +FLAGS=${arr[1]} +MEMORY=${arr[2]} +whereAmI=${arr[3]} +if [[ ${#myvar} <1 ]]; #no flags passed in +then + if [[ ${#arr[@]} > 4 ]]; + then + droppedFiles=${arr[4]} #this gets just first file + "${JAVALOC}" --add-exports java.desktop/com.apple.eawt=ALL-UNNAMED -Xmx${MEMORY}000M -Xss8m -Djava.library.path=lib -Djri.ignore.ule="yes" -jar "$whereAmI/Mesquite.jar" "$droppedFiles" -mqflex > Mesquite_Support_Files/Mesquite_Flex_stdout.txt || "${JAVALOC}" -Xmx${MEMORY}000M -Xss8m -Djava.library.path=lib -Djri.ignore.ule="yes" -jar "$whereAmI/Mesquite.jar" "$droppedFiles" -mqflex > Mesquite_Support_Files/Mesquite_Flex_stdout.txt + else + "${JAVALOC}" --add-exports java.desktop/com.apple.eawt=ALL-UNNAMED -Xmx${MEMORY}000M -Xss8m -Djava.library.path=lib -Djri.ignore.ule="yes" -jar "$whereAmI/Mesquite.jar" -mqflex > Mesquite_Support_Files/Mesquite_Flex_stdout.txt || "${JAVALOC}" -Xmx${MEMORY}000M -Xss8m -Djava.library.path=lib -Djri.ignore.ule="yes" -jar "$whereAmI/Mesquite.jar" -mqflex > Mesquite_Support_Files/Mesquite_Flex_stdout.txt + fi +else #flags passed in; use those + if [[ ${#arr[@]} > 4 ]]; + then + droppedFiles=${arr[4]} #this gets just first file + "${JAVALOC}" ${FLAGS} -Xmx${MEMORY}000M -Xss8m -Djava.library.path=lib -Djri.ignore.ule="yes" -jar "$whereAmI/Mesquite.jar" "$droppedFiles" -mqflex > Mesquite_Support_Files/Mesquite_Flex_stdout.txt + else + "${JAVALOC}" ${FLAGS} -Xmx${MEMORY}000M -Xss8m -Djava.library.path=lib -Djri.ignore.ule="yes" -jar "$whereAmI/Mesquite.jar" -mqflex > Mesquite_Support_Files/Mesquite_Flex_stdout.txt + fi +fi + CheckedForUserDefaultShell + + inputMethod + 0 + shell + /bin/bash + source + + + BundleIdentifier + com.apple.RunShellScript + CFBundleVersion + 2.0.3 + CanShowSelectedItemsWhenRun + + CanShowWhenRun + + Category + + AMCategoryUtilities + + Class Name + RunShellScriptAction + InputUUID + 7EFF0B18-2D72-45C5-9ED5-1550681238D5 + Keywords + + Shell + Script + Command + Run + Unix + + OutputUUID + B0EFEE58-F461-4027-8168-126B947DC10A + UUID + 59BCA6EA-60BF-47F5-8C7B-221B6D2C77B9 + UnlocalizedApplications + + Automator + + arguments + + 0 + + default value + 0 + name + inputMethod + required + 0 + type + 0 + uuid + 0 + + 1 + + default value + + name + source + required + 0 + type + 0 + uuid + 1 + + 2 + + default value + + name + CheckedForUserDefaultShell + required + 0 + type + 0 + uuid + 2 + + 3 + + default value + + name + COMMAND_STRING + required + 0 + type + 0 + uuid + 3 + + 4 + + default value + /bin/sh + name + shell + required + 0 + type + 0 + uuid + 4 + + + isViewVisible + + location + 619.500000:1122.000000 + nibPath + /System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib + + isViewVisible + + + + connectors + + 399C77FB-0C53-4532-9B28-DBA63F886CE7 + + from + 35565B5A-57E2-4F76-B8E4-02CE4A8CD9B2 - 35565B5A-57E2-4F76-B8E4-02CE4A8CD9B2 + to + 59BCA6EA-60BF-47F5-8C7B-221B6D2C77B9 - 59BCA6EA-60BF-47F5-8C7B-221B6D2C77B9 + + 8135E9E8-5924-4DFA-A6FD-BDBC382D5D95 + + from + 2528247D-5A8D-4ADD-9481-A0BC58FA668F - 2528247D-5A8D-4ADD-9481-A0BC58FA668F + to + 4F14C189-CB3E-41E7-989A-E209FB44368B - 4F14C189-CB3E-41E7-989A-E209FB44368B + + E3C6E533-95E6-4726-B169-396BD2EE9AF2 + + from + 4F14C189-CB3E-41E7-989A-E209FB44368B - 4F14C189-CB3E-41E7-989A-E209FB44368B + to + 35565B5A-57E2-4F76-B8E4-02CE4A8CD9B2 - 35565B5A-57E2-4F76-B8E4-02CE4A8CD9B2 + + F8046E3E-C18C-4186-8DD4-A5B45DD64886 + + from + 4B07F06B-F2E4-49D5-8009-9C558FB1CD61 - 4B07F06B-F2E4-49D5-8009-9C558FB1CD61 + to + 2528247D-5A8D-4ADD-9481-A0BC58FA668F - 2528247D-5A8D-4ADD-9481-A0BC58FA668F + + + variables + + + UUID + B5724CA0-32E6-41E6-A92D-05F05ECF423A + identifier + com.apple.Automator.Variable.Text + name + DroppedFiles + value + + + + workflowMetaData + + workflowTypeIdentifier + com.apple.Automator.application + + + diff --git a/Source/mesquite/Mesquite.java b/Source/mesquite/Mesquite.java index ee3816663..d2a43983f 100644 --- a/Source/mesquite/Mesquite.java +++ b/Source/mesquite/Mesquite.java @@ -37,20 +37,20 @@ public class Mesquite extends MesquiteTrunk { /*.................................................................................................................*/ public String getCitation() { - return "Maddison, W.P. & D.R. Maddison. 2023. Mesquite: A modular system for evolutionary analysis. Version 3.80. http://www.mesquiteproject.org"; + return "Maddison, W.P. & D.R. Maddison. 2023. Mesquite: A modular system for evolutionary analysis. Version " + getVersion() + ". https://www.mesquiteproject.org"; } /*.................................................................................................................*/ public String getVersion() { - return "3.80"; + return "3.81"; } /*.................................................................................................................*/ public int getVersionInt() { - return 380; + return 381; } /*.................................................................................................................*/ public double getMesquiteVersionNumber(){ - return 3.80; + return 3.81; } /*.................................................................................................................*/ public String getDateReleased() { diff --git a/Source/mesquite/bayesian/lib/ExportForBEASTLib.java b/Source/mesquite/bayesian/lib/ExportForBEASTLib.java index 224c79392..7ce644fc6 100644 --- a/Source/mesquite/bayesian/lib/ExportForBEASTLib.java +++ b/Source/mesquite/bayesian/lib/ExportForBEASTLib.java @@ -119,29 +119,9 @@ String nexusStringForSpecsSet(TaxaSelectionSet taxaSet, Taxa taxa, MesquiteFile int lastWritten = -1; for (int ic=0; ic0) { - if (lastWritten != ic-1) { - sT += " " + getTaxonName(taxa,ic-1); - lastWritten = ic-1; - } - else - lastWritten = -1; - continuing = 0; - } - } - if (continuing>1) - sT += " " + getTaxonName(taxa, taxa.getNumTaxa()-1); if (!StringUtil.blank(sT)) { s+= "\tTAXSET " ; String set1 = s; @@ -156,7 +136,7 @@ else if (continuing>0) { return s; } /*.................................................................................................................*/ - public String getNexusCommands(MesquiteFile file, String blockName){ + String getLocalNexusCommands(MesquiteFile file, String blockName){ String s= ""; String specSet =""; for (int ids = 0; ids=0) + return getStateSymbol(ic, state); + return ""; + } + /*.......................................... CategoricalData ..................................................*/ /** appends to buffer string describing the state(s) specified in the long array s. The first element in s is presumed (for the sake of state symbols * and state names) to correspond to character ic. */ public void statesIntoStringBufferCore(int ic, long[] s, StringBuffer sb, boolean forDisplay, boolean includeInapplicable, boolean includeUnassigned){ diff --git a/Source/mesquite/dmanager/FlipTaxonLocus/FlipTaxonLocus.java b/Source/mesquite/dmanager/FlipTaxonLocus/FlipTaxonLocus.java index 145f89fe7..71452ed9f 100644 --- a/Source/mesquite/dmanager/FlipTaxonLocus/FlipTaxonLocus.java +++ b/Source/mesquite/dmanager/FlipTaxonLocus/FlipTaxonLocus.java @@ -16,6 +16,7 @@ import java.io.File; +import mesquite.externalCommunication.lib.PythonUtil; import mesquite.lib.*; import mesquite.lib.duties.GeneralFileMaker; @@ -31,35 +32,35 @@ public boolean startJob(String arguments, Object condition, boolean hiredByName) /*.................................................................................................................*/ public void processDirectory(String directoryPath) { + if (!PythonUtil.pythonAvailable()) + PythonUtil.pythonSettings(this); + if (!PythonUtil.pythonAvailable()) + return; boolean success = false; - MesquiteTimer timer = new MesquiteTimer(); - timer.start(); - ProgressIndicator progressIndicator = new ProgressIndicator(getProject(), "Python script in progress"); progressIndicator.start(); - String pythonCodeFilePath = StringUtil.protectFilePathForCommandLine(getPath()+"flipTaxonLocustoLocusTaxon.py"); -// String pythonCodeFilePath = getPath()+"flipTaxonLocustoLocusTaxon.py"; - - String pythonProgram = "python"; + String pythonCommand = PythonUtil.python3Path; + String pythonOptions = StringUtil.protectFilePathForCommandLine(getPath()+"flipTaxonLocustoLocusTaxon.py"); - externalRunner = new ExternalProcessManager(this, directoryPath, pythonProgram, pythonCodeFilePath, getName(), null, null, null, true); + if (!PythonUtil.python3Available()) { + pythonCommand = PythonUtil.python2Path; + pythonOptions = StringUtil.protectFilePathForCommandLine(getPath()+"flipTaxonLocustoLocusTaxon2.py"); + } + + externalRunner = new ExternalProcessManager(this, directoryPath, pythonCommand, pythonOptions, getName(), null, null, null, true, true); externalRunner.setStdOutFileName(ShellScriptRunner.stOutFileName); - externalRunner.setRemoveQuotes(true); success = externalRunner.executeInShell(); if (success) success = externalRunner.monitorAndCleanUpShell(progressIndicator); - - if (progressIndicator.isAborted()){ + if (progressIndicator.isAborted()) logln("Aborted by user\n"); - } progressIndicator.goAway(); } /*.................................................................................................................*/ public MesquiteProject establishProject(String arguments) { - boolean success= false; String directoryPath = MesquiteFile.chooseDirectory("Choose directory containing data files:", null); if (StringUtil.blank(directoryPath)) return null; @@ -76,13 +77,25 @@ public MesquiteProject establishProject(String arguments) { /*.................................................................................................................*/ public boolean loadModule() { - return false; + return true; } /*.................................................................................................................*/ public boolean isPrerelease() { + return false; + } + /*.................................................................................................................*/ + public boolean isSubstantive() { return true; } /*.................................................................................................................*/ + /** returns the version number at which this module was first released. If 0, then no version number is claimed. If a POSITIVE integer + * then the number refers to the Mesquite version. This should be used only by modules part of the core release of Mesquite. + * If a NEGATIVE integer, then the number refers to the local version of the package, e.g. a third party package*/ + public int getVersionOfFirstRelease(){ + return 381; + } + +/*.................................................................................................................*/ public String getName() { return "Flip Taxon x Locus to Locus x Taxon"; } diff --git a/Source/mesquite/externalCommunication/lib/PythonUtil.java b/Source/mesquite/externalCommunication/lib/PythonUtil.java new file mode 100644 index 000000000..0b135783e --- /dev/null +++ b/Source/mesquite/externalCommunication/lib/PythonUtil.java @@ -0,0 +1,82 @@ +package mesquite.externalCommunication.lib; + +import mesquite.lib.*; + +public class PythonUtil { + public static String python2Path = ""; + public static String python3Path = ""; + public static int pythonPreference = 3; + public static int NOPYTHONPREFERENCE = 0; + + public static boolean pythonSettings(MesquiteModule ownerModule) { + MesquiteInteger buttonPressed = new MesquiteInteger(ExtensibleDialog.defaultCANCEL); + ExtensibleDialog dialog = new ExtensibleDialog(ownerModule.containerOfModule(), "Python Settings",buttonPressed); //MesquiteTrunk.mesquiteTrunk.containerOfModule() + String s = "To find the path to Python 2, go in to the Terminal or Command Line, and type \"python2 -h\" and hit return. " + + "The response should include a line that begins with \"usage: \", then shows the full path to Python 2, then " + + "has \"[options]\"; the path is the text between \"usage\" and \"[options]\". Copy that text and paste it into the " + + "Python 2 path field. Then do the same for Python 3, this time using the command \"python3 -h\". "; + dialog.appendToHelpString(s); + + dialog.addHorizontalLine(1); + + SingleLineTextField python2PathField = dialog.addTextField("Python 2 path", python2Path, 50); + SingleLineTextField python3PathField = dialog.addTextField("Python 3 path", python3Path, 50); + + + dialog.completeAndShowDialog(true); + boolean success=(buttonPressed.getValue()== dialog.defaultOK); + if (success) { + python2Path = StringUtil.stripBoundingWhitespace(python2PathField.getText()); + python3Path = StringUtil.stripBoundingWhitespace(python3PathField.getText()); + MesquiteTrunk.mesquiteTrunk.storePreferences(); + } + dialog.dispose(); + return success; + + } + + public static String pythonVersion(MesquiteModule ownerModule, int version) { + if (version==2 || (version==0 && pythonPreference==2)) + return ExternalProcessManager.executeAndGetStandardErr(ownerModule, getPythonPath(2), "-V"); + else + return ExternalProcessManager.executeAndGetStandardOut(ownerModule, getPythonPath(3), "-V"); + // String pythonVersionStOut= ExternalProcessManager.executeAndGetStandardErr(this, "python", "-V"); + /* String raxmlng= ExternalProcessManager.executeAndGetStandardOut(this, "/usr/local/bin/raxml-ng", "-v"); + logln("\nraxml-ng version: " + raxmlng); + String iqTreeV= ExternalProcessManager.executeAndGetStandardOut(this, "/usr/local/bin/iqtree2", "-V"); + logln("\niq-tree version: " + iqTreeV); + */ + + + + /* scriptRunner = new ShellScriptRunner(scriptPath, runningFilePath, null, true, getName(), outputFilePaths, this, this, true); //scriptPath, runningFilePath, null, true, name, outputFilePaths, outputFileProcessor, watcher, true + success = scriptRunner.executeInShell(); + if (success) + success = scriptRunner.monitorAndCleanUpShell(progressIndicator); + */ + + } + + public static boolean python2Available() { + return StringUtil.notEmpty(python2Path); + } + + + public static boolean python3Available() { + return StringUtil.notEmpty(python3Path); + } + + public static boolean pythonAvailable() { + return python2Available() || python3Available(); + } + + public static String getPythonPath(int version) { + if (version==3 || (version==0 && pythonPreference==3)) + return python3Path; + else if (version==2 || (version==0 && pythonPreference==2)) + return python2Path; + else + return python3Path; + } + +} diff --git a/Source/mesquite/genomic/ExportTiledBaits/ExportTiledBaits.java b/Source/mesquite/genomic/ExportTiledBaits/ExportTiledBaits.java new file mode 100644 index 000000000..7b59b80e9 --- /dev/null +++ b/Source/mesquite/genomic/ExportTiledBaits/ExportTiledBaits.java @@ -0,0 +1,318 @@ +package mesquite.genomic.ExportTiledBaits; + +import java.awt.Checkbox; + +import mesquite.categ.lib.*; +import mesquite.lib.*; +import mesquite.lib.characters.CharacterData; +import mesquite.lib.duties.FileInterpreterI; +import mesquite.molec.lib.MolecUtil; + +public class ExportTiledBaits extends FileInterpreterI { + + + public void getEmployeeNeeds(){ //This gets called on startup to harvest information; override this and inside, call registerEmployeeNeed + // EmployeeNeed e = registerEmployeeNeed(VoucherInfoCoord.class, "Voucher information is needed for FASTA export for Genbank submissions.", + // "This is activated automatically when you choose this exporter."); + } + /*.................................................................................................................*/ + public boolean startJob(String arguments, Object condition, boolean hiredByName) { + loadPreferences(); + return true; + } + public void readFile(MesquiteProject mf, MesquiteFile mNF, String arguments) { + + } + + /*.................................................................................................................*/ + public boolean canImport() { + return false; + } + public boolean canImport(String arguments){ + return false; + } + /** returns whether module is able ever to export.*/ + public boolean canExportEver(){ + return true; + } + /** returns whether module has something it can export in the project. Should be overridden*/ + public boolean canExportProject(MesquiteProject project){ + return project.getNumberCharMatrices(DNAState.class) > 0; // + } + + /** returns whether module can export a character data matrix of the given type. Should be overridden*/ + public boolean canExportData(Class dataClass){ + if (dataClass==null) return false; + return ((DNAState.class).isAssignableFrom(dataClass)); + } + + protected int taxonNameLengthLimit() { + return 50; + } + + /* ============================ exporting ============================*/ + int baitLength = 120; + int tileAmount = 60; + boolean includeShortBaits = false; + +// boolean getEndBaitIfShiftedEnough = false; +// int shiftThresholdForEndBait = 30; + + boolean arbitrarilyResolveAmbiguity = false; + boolean randomlyChooseStateAsFallback = true; + boolean avoidStopCodons = true; + + boolean preferencesSet=false; + + /*.................................................................................................................*/ + public void processSingleXMLPreference(String tag, String content) { + if ("baitLength".equalsIgnoreCase(tag)) + baitLength = MesquiteInteger.fromString(content); + if ("tileAmount".equalsIgnoreCase(tag)) + tileAmount = MesquiteInteger.fromString(content); + + if ("arbitrarilyResolveAmbiguity".equalsIgnoreCase(tag)) + arbitrarilyResolveAmbiguity = MesquiteBoolean.fromTrueFalseString(content); + if ("randomlyChooseStateAsFallback".equalsIgnoreCase(tag)) + randomlyChooseStateAsFallback = MesquiteBoolean.fromTrueFalseString(content); + if ("avoidStopCodons".equalsIgnoreCase(tag)) + avoidStopCodons = MesquiteBoolean.fromTrueFalseString(content); + + preferencesSet = true; + } + + /*.................................................................................................................*/ + public String preparePreferencesForXML() { + StringBuffer buffer = new StringBuffer(200); + StringUtil.appendXMLTag(buffer, 2, "baitLength", baitLength); + StringUtil.appendXMLTag(buffer, 2, "tileAmount", tileAmount); + + StringUtil.appendXMLTag(buffer, 2, "arbitrarilyResolveAmbiguity", arbitrarilyResolveAmbiguity); + StringUtil.appendXMLTag(buffer, 2, "randomlyChooseStateAsFallback", randomlyChooseStateAsFallback); + StringUtil.appendXMLTag(buffer, 2, "avoidStopCodons", avoidStopCodons); + + preferencesSet = true; + return buffer.toString(); + } + + /*.................................................................................................................*/ + public boolean getExportOptions(boolean dataSelected, boolean taxaSelected){ + MesquiteInteger buttonPressed = new MesquiteInteger(1); + ExporterDialog exportDialog = new ExporterDialog(this,containerOfModule(), "Export Tiled Baits", buttonPressed); + exportDialog.setSuppressLineEndQuery(true); + exportDialog.setDefaultButton(null); + exportDialog.appendToHelpString("This will export a FASTA file containing sequences obtained from all matrices for all taxa (or only the selected taxa, if that option is chosen). " + + "For each sequence in the matrix, one more more sequences will be written into the FASTA file. If the sequence in the matrix is, say, 310 bases long, and the bait length is" + + " set to 120, with a tile amount of 60, then the first 120 nucleotides will be written as one sequence, then nucleotides 61-180, then 121-240, then 181-300. If " + + " \"include baits shorter than the specified bait length\" is chosen, then there will also be addition sequences written for sites 241-310, and 301-310. " + + " If there are ambiguous nucleotides contained in the file, these can be arbitrarily resolved. This feature is equivalent to the Resolve DNA Ambiguity feature in the Alter menu."); + + + + IntegerField baitLengthField= exportDialog.addIntegerField("Bait length", baitLength, 8); + IntegerField tileAmountField= exportDialog.addIntegerField("Tile amount", tileAmount, 8); + Checkbox includeShortBaitsBox= exportDialog.addCheckBox("Include baits shorter than the specified bait length", includeShortBaits); + + exportDialog.addHorizontalLine(1); + + Checkbox arbitrarilyResolveAmbiguityBox = exportDialog.addCheckBox("Arbitrarily resolve ambiguities based upon other taxa's states", arbitrarilyResolveAmbiguity); + Checkbox randomlyChooseStateAsFallbackBox = exportDialog.addCheckBox("Randomly choose a contained state as fallback", randomlyChooseStateAsFallback); + Checkbox avoidStopCodonsBox = exportDialog.addCheckBox("Do not choose a state that would yield a stop codon", avoidStopCodons); + + exportDialog.completeAndShowDialog(dataSelected, taxaSelected); + + boolean ok = (exportDialog.query(dataSelected, taxaSelected)==0); + + if (ok) { + if (baitLengthField.getValue()>10) + baitLength = baitLengthField.getValue(); + if (tileAmountField.getValue()>10) + tileAmount = tileAmountField.getValue(); + includeShortBaits = includeShortBaitsBox.getState(); + randomlyChooseStateAsFallback = randomlyChooseStateAsFallbackBox.getState(); + avoidStopCodons = avoidStopCodonsBox.getState(); + arbitrarilyResolveAmbiguity = arbitrarilyResolveAmbiguityBox.getState(); + storePreferences(); + } + + exportDialog.dispose(); + return ok; + } + /*.................................................................................................................*/ + public String preferredDataFileExtension() { + return "fas"; + } + + /*.................................................................................................................*/ + public String getFileName(Taxa taxa, int it, CharacterData data, int index, String identifierString) { + String fileName = ""; + fileName=StringUtil.cleanseStringOfFancyChars(taxa.getName(it),false,true); + + fileName += ".fas"; + + return fileName; + } + + + /*.................................................................................................................*/ + public String getSequenceName(DNAData data, Taxa taxa, int it) { + String s = data.getName() + ": " + taxa.getTaxonName(it); + return s; + } + /*.................................................................................................................*/ + public String getTiledBaitAsFasta(DNAData data, Taxa taxa, int it, int icStart, int siteNumber, MesquiteInteger nextStart) { + int numTaxa = taxa.getNumTaxa(); + int numChars = data.getNumChars(); + StringBuffer outputBuffer = new StringBuffer(numTaxa*(20 + numChars)); + outputBuffer.append(">"+ getSequenceName(data,taxa, it) + " " + siteNumber + "-"); + StringBuffer dataBuffer = new StringBuffer(120); + int count = 0; + int ic =0; + boolean nextStartSet = false; + DNAState charState = new DNAState(); + for (ic = icStart; ic=tileAmount && !nextStartSet) { + nextStart.setValue(ic); + nextStartSet = true; + } + } + } + if (!nextStartSet) // must mean we didn't actually have enough for the next tile + nextStart.setValue(numChars); + outputBuffer.append((siteNumber+count-1)); + outputBuffer.append(StringUtil.lineEnding()); + outputBuffer.append(dataBuffer); + outputBuffer.append(StringUtil.lineEnding()); + if (count>=baitLength || includeShortBaits) + return outputBuffer.toString(); + else + return ""; + } + /*.................................................................................................................*/ + public String getTiledBaitsAsFasta(DNAData data, Taxa taxa, int it) { + if (data.hasDataForTaxon(it)) { + int numTaxa = taxa.getNumTaxa(); + int numChars = data.getNumChars(); + StringBuffer outputBuffer = new StringBuffer(numTaxa*(20 + numChars)); + int numSites = data.numNotInapplicableNotUnassigned(it); + int siteCounter=1; + int count = 0; + if (numSites>=baitLength || includeShortBaits) { + int icStart = 0; + MesquiteInteger nextStart = new MesquiteInteger(0); + while (icStart < numChars) { + if (!(includeShortBaits || icStart=1 && pos<=3) { - codon[pos-1]=DNAState.makeSet(candidateState); - int aminoAcid = CategoricalState.getOnlyElement(data.getAminoAcid(codon, genCode)); - if (aminoAcid==ProteinData.TER) - return false; - } - } - return true; - } + /*.................................................................................................................*/ public void alterCell(CharacterData ddata, int ic, int it){ - DNAData data = (DNAData)ddata; - if (data.isMultistateOrUncertainty(ic, it) || data.isUnassigned(ic, it)) { - long state = data.getState(ic, it); - int[] freq = new int[DNAState.maxDNAState+1]; - for (int i=0; i<=DNAState.maxDNAState; i++) - freq[i]=0; - Taxa taxa = data.getTaxa(); - - for (int otherTaxa=0; otherTaxa=0) { // not multistate, not unassigned - if (onlyState<=DNAState.maxDNAState && acceptableState(data,ic,it,onlyState,state)) - freq[onlyState]++; - } - } - } - int maxFreq =0; - int maxFreqState = -1; - for (int i=0; i<=DNAState.maxDNAState; i++) { - if (freq[i]>maxFreq && acceptableState(data,ic,it,i,state)) { // check to see if is in original state set - maxFreq=freq[i]; - maxFreqState = i; - } - } - int stateToAssign = maxFreqState; - - - - if (maxFreqState<0 && randomlyChooseStateAsFallback) { // we didn't find it one of the states in the other taxa, so let's choose randomly - int card = CategoricalState.cardinality(state); - int resolve = (int)Math.round(Math.random()*card+0.5); - int count=0; - for (int e=0; e<=DNAState.maxDNAState; e++) { - if (CategoricalState.isElement(state, e)) { - count++; - if (count>=resolve) { - stateToAssign = e; - break; - } - } - } - } - - if (stateToAssign>=0 && acceptableState(data,ic,it,stateToAssign,state)) { - long newState = 0; - newState = CategoricalState.addToSet(newState,stateToAssign); - newState = charState.setUncertainty(newState, false); - DNAState specifiedState = new DNAState(newState); - data.setState(ic, it, specifiedState); - if (!MesquiteLong.isCombinable(numCellsAltered)) - numCellsAltered=0; - numCellsAltered++; - } else - logln("Warning! Ambiguity not resolved for taxon " + it + " and character " + ic); - - + if (MolecUtil.resolveAndAssignDNAAmbiguity(this, ddata, ic, it, charState, avoidStopCodons, randomlyChooseStateAsFallback, true)) { + if (!MesquiteLong.isCombinable(numCellsAltered)) + numCellsAltered=0; + numCellsAltered++; } } diff --git a/Source/mesquite/molec/lib/MolecUtil.java b/Source/mesquite/molec/lib/MolecUtil.java new file mode 100644 index 000000000..a251cb88e --- /dev/null +++ b/Source/mesquite/molec/lib/MolecUtil.java @@ -0,0 +1,102 @@ +package mesquite.molec.lib; + +import mesquite.categ.lib.CategoricalState; +import mesquite.categ.lib.DNAData; +import mesquite.categ.lib.DNAState; +import mesquite.categ.lib.ProteinData; +import mesquite.lib.MesquiteModule; +import mesquite.lib.Taxa; +import mesquite.lib.characters.CharacterData; + +public class MolecUtil { + /*.................................................................................................................*/ + static boolean acceptableState(DNAData data, int ic, int it, int candidateState, long originalState, boolean avoidStopCodons) { + boolean inOriginalSet = CategoricalState.isElement(originalState, candidateState) || data.isUnassigned(ic, it); + if (!inOriginalSet) + return false; + if (avoidStopCodons && data.isCoding(ic)) { + GeneticCode genCode =data.getGeneticCode(ic); + int[] triplet = data.getCodonTriplet(ic); + long[] codon = data.getCodon(triplet,it); + int pos = data.getCodonPosition(ic); + if (pos>=1 && pos<=3) { + codon[pos-1]=DNAState.makeSet(candidateState); + int aminoAcid = CategoricalState.getOnlyElement(data.getAminoAcid(codon, genCode)); + if (aminoAcid==ProteinData.TER) + return false; + } + } + return true; + } + + /*.................................................................................................................*/ + public static int resolveDNAAmbiguity(MesquiteModule ownerModule, CharacterData ddata, int ic, int it, DNAState charState, boolean avoidStopCodons, boolean randomlyChooseStateAsFallback, boolean warn){ + DNAData data = (DNAData)ddata; + if (data.isMultistateOrUncertainty(ic, it) || data.isUnassigned(ic, it)) { + long state = data.getState(ic, it); + int[] freq = new int[DNAState.maxDNAState+1]; + for (int i=0; i<=DNAState.maxDNAState; i++) + freq[i]=0; + Taxa taxa = data.getTaxa(); + + for (int otherTaxa=0; otherTaxa=0) { // not multistate, not unassigned + if (onlyState<=DNAState.maxDNAState && acceptableState(data,ic,it,onlyState,state, avoidStopCodons)) + freq[onlyState]++; + } + } + } + int maxFreq =0; + int maxFreqState = -1; + for (int i=0; i<=DNAState.maxDNAState; i++) { + if (freq[i]>maxFreq && acceptableState(data,ic,it,i,state, avoidStopCodons)) { // check to see if is in original state set + maxFreq=freq[i]; + maxFreqState = i; + } + } + int stateToAssign = maxFreqState; + + + + if (maxFreqState<0 && randomlyChooseStateAsFallback) { // we didn't find it one of the states in the other taxa, so let's choose randomly + int card = CategoricalState.cardinality(state); + int resolve = (int)Math.round(Math.random()*card+0.5); + int count=0; + for (int e=0; e<=DNAState.maxDNAState; e++) { + if (CategoricalState.isElement(state, e)) { + count++; + if (count>=resolve) { + stateToAssign = e; + break; + } + } + } + } + + if (stateToAssign>=0 && acceptableState(data,ic,it,stateToAssign,state, avoidStopCodons)) { + return stateToAssign; + } else if (warn) + ownerModule.logln("Warning! Ambiguity not resolved for taxon " + it + " and character " + ic); + + + } + return -1; + } + /*.................................................................................................................*/ + public static boolean resolveAndAssignDNAAmbiguity(MesquiteModule ownerModule, CharacterData ddata, int ic, int it, DNAState charState, boolean avoidStopCodons, boolean randomlyChooseStateAsFallback, boolean warn){ + int stateToAssign = resolveDNAAmbiguity(ownerModule, ddata, ic, it, charState,avoidStopCodons,randomlyChooseStateAsFallback, warn); + if (stateToAssign>=0) { + long newState = 0; + newState = CategoricalState.addToSet(newState,stateToAssign); + newState = charState.setUncertainty(newState, false); + DNAState specifiedState = new DNAState(newState); + ddata.setState(ic, it, specifiedState); + return true; + } + return false; + } + +} diff --git a/docs/Acknowledgements.html b/docs/Acknowledgements.html index bcb9a8d1c..88a6486f9 100644 --- a/docs/Acknowledgements.html +++ b/docs/Acknowledgements.html @@ -41,7 +41,7 @@ Mesquite
Acknowledgements
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Additional Mesquite Packages.html b/docs/Additional Mesquite Packages.html index 3245ac534..4b927fa08 100644 --- a/docs/Additional Mesquite Packages.html +++ b/docs/Additional Mesquite Packages.html @@ -41,7 +41,7 @@ Mesquite
Additional Packages
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Align.html b/docs/Align.html index 173d27cbc..5f6f2356e 100644 --- a/docs/Align.html +++ b/docs/Align.html @@ -41,7 +41,7 @@ Mesquite
Sequence Alignment
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Analyzing Continuous Characters.html b/docs/Analyzing Continuous Characters.html index eb80a9dba..afafa5902 100644 --- a/docs/Analyzing Continuous Characters.html +++ b/docs/Analyzing Continuous Characters.html @@ -41,7 +41,7 @@ Mesquite
Continuous characters
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Analyzing Molecular Data.html b/docs/Analyzing Molecular Data.html index 03aa6fee1..9968167c3 100644 --- a/docs/Analyzing Molecular Data.html +++ b/docs/Analyzing Molecular Data.html @@ -41,7 +41,7 @@ Mesquite
Molecular Data
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Ancestral States.html b/docs/Ancestral States.html index 949e0df7d..a80980f38 100644 --- a/docs/Ancestral States.html +++ b/docs/Ancestral States.html @@ -41,7 +41,7 @@ Mesquite
Ancestral States
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Are strepsipterans related to flies.html b/docs/Are strepsipterans related to flies.html index 9b20bb6e5..7a0774928 100644 --- a/docs/Are strepsipterans related to flies.html +++ b/docs/Are strepsipterans related to flies.html @@ -41,7 +41,7 @@ Mesquite
Hypothesis testing
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Beginning Mesquite.html b/docs/Beginning Mesquite.html index 267a38e96..97189a582 100644 --- a/docs/Beginning Mesquite.html +++ b/docs/Beginning Mesquite.html @@ -41,7 +41,7 @@ Mesquite
Beginning Mesquite
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Bugs and Troubleshooting.html b/docs/Bugs and Troubleshooting.html index 08d4018d7..257c9b0df 100644 --- a/docs/Bugs and Troubleshooting.html +++ b/docs/Bugs and Troubleshooting.html @@ -41,7 +41,7 @@ Mesquite
Bugs and Troubleshooting
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Character Evolution.html b/docs/Character Evolution.html index d18fae6a0..322df905b 100644 --- a/docs/Character Evolution.html +++ b/docs/Character Evolution.html @@ -41,7 +41,7 @@ Mesquite
Character Evolution
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Characters & Matrices.html b/docs/Characters & Matrices.html index 90538a349..65db32b68 100644 --- a/docs/Characters & Matrices.html +++ b/docs/Characters & Matrices.html @@ -41,7 +41,7 @@ Mesquite
Characters & Matrices
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Charts.html b/docs/Charts.html index f039ec56b..5993037de 100644 --- a/docs/Charts.html +++ b/docs/Charts.html @@ -41,7 +41,7 @@ Mesquite
Charts
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Contact Us.html b/docs/Contact Us.html index 01a636aad..39beffd22 100644 --- a/docs/Contact Us.html +++ b/docs/Contact Us.html @@ -41,7 +41,7 @@ Mesquite
Contact Us
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Developers Documentation.html b/docs/Developers Documentation.html index e2f1e552d..7fdaabc0d 100644 --- a/docs/Developers Documentation.html +++ b/docs/Developers Documentation.html @@ -41,7 +41,7 @@ Mesquite
Developer's Documentation
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Developers Reference.html b/docs/Developers Reference.html index ae32a57f9..cde5a95a1 100644 --- a/docs/Developers Reference.html +++ b/docs/Developers Reference.html @@ -41,7 +41,7 @@ Mesquite
Developer's Reference
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Development Team.html b/docs/Development Team.html index 8fee6ba86..c019b6e99 100644 --- a/docs/Development Team.html +++ b/docs/Development Team.html @@ -41,7 +41,7 @@ Mesquite
Development Team
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Diversification.html b/docs/Diversification.html index 1338aad46..8c63d075d 100644 --- a/docs/Diversification.html +++ b/docs/Diversification.html @@ -41,7 +41,7 @@ Mesquite
Diversification
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Documenting Your Work.html b/docs/Documenting Your Work.html index 8e1e6c4e8..5e6551ece 100644 --- a/docs/Documenting Your Work.html +++ b/docs/Documenting Your Work.html @@ -41,7 +41,7 @@ Mesquite
Documenting Your Work
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Example Files.html b/docs/Example Files.html index cb792ab91..e559cc2f0 100644 --- a/docs/Example Files.html +++ b/docs/Example Files.html @@ -41,7 +41,7 @@ Mesquite
Example Files
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/FAQ.html b/docs/FAQ.html index 6c03b350c..a475fa9ba 100644 --- a/docs/FAQ.html +++ b/docs/FAQ.html @@ -41,7 +41,7 @@ Mesquite
FAQ
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Files.html b/docs/Files.html index 03ff775bf..7e1a4ff34 100644 --- a/docs/Files.html +++ b/docs/Files.html @@ -41,7 +41,7 @@ Mesquite
Files
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Gene Trees.html b/docs/Gene Trees.html index ced026670..288f8eee1 100644 --- a/docs/Gene Trees.html +++ b/docs/Gene Trees.html @@ -41,7 +41,7 @@ Mesquite
Gene Trees
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Getting Help.html b/docs/Getting Help.html index b0b39290a..ee0c4f5c0 100644 --- a/docs/Getting Help.html +++ b/docs/Getting Help.html @@ -41,7 +41,7 @@ Mesquite
Getting Help
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/Glossary.html b/docs/Glossary.html index 371cd7b27..9af3ae4ad 100644 --- a/docs/Glossary.html +++ b/docs/Glossary.html @@ -41,7 +41,7 @@ Mesquite
Glossary
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/History of Mesquite.html b/docs/History of Mesquite.html index 77dcf09f6..5bd83ec17 100644 --- a/docs/History of Mesquite.html +++ b/docs/History of Mesquite.html @@ -41,7 +41,7 @@ Mesquite
History of Mesquite
  - Version 3.80
+ Version 3.81
April 2023
diff --git a/docs/History of New Features.html b/docs/History of New Features.html index dbbf2eaba..0c8ff7112 100644 --- a/docs/History of New Features.html +++ b/docs/History of New Features.html @@ -41,7 +41,7 @@ Mesquite
History of New Features
  - Version 3.80
+ Version 3.81
April 2023
@@ -206,8 +206,25 @@

release dates.

Features to come in the next release version of Mesquite are listed on this web page. These new features and bug fixes are already contained in latest source code in the development branch of the MesquiteProject/MesquiteCore repository on GitHub.

+

Next Release

+

New Features

+

Bug Fixes, Workarounds, and Improvements

 

- +
+

Version 3.81

+

New Features

+
    +
  • Added Highlight Multistate Cells module (in the Display > Color Matrix Cells menu when the matrix is being displayed). This feature colors multistate cells (e.g., R or Y for DNA data) bright red and makes all non-multistate cells pale.
  • +
  • Added Export Tiled Baits option (available in File > Export... for DNA data), which will export to a FASTA file tiled baits for probe sets for hybrid capture.
  • +
  • Added Flip Locus X Taxon to Taxon X Locus to convert a directory of fasta files, each for a single taxon and listing all of its loci, to a directory of fasta files, each for a single lcous and listing the sequences for all of the taxa. This is useful for some genomic workflows, in combination with the exporter added to version 3.80, FASTA File for each taxon, with sequences from each matrix.
  • +
+

Bug Fixes, Workarounds, and Improvements

+
    +
  • Major problem that prevented Mesquite from starting up on various MacOS systems.
  • +
  • Bug from version 3.80 whereby TAXSETS were inappropriately replicated has been fixed
  • +
+

 

+

Version 3.80

New Features

    diff --git a/docs/How Mesquite Works.html b/docs/How Mesquite Works.html index 88136075d..233c05c0f 100644 --- a/docs/How Mesquite Works.html +++ b/docs/How Mesquite Works.html @@ -41,7 +41,7 @@ Mesquite
    How Mesquite Works
      - Version 3.80
    + Version 3.81
    April 2023
    diff --git a/docs/How to Cite Mesquite.html b/docs/How to Cite Mesquite.html index 0826f3c00..db4506bc4 100644 --- a/docs/How to Cite Mesquite.html +++ b/docs/How to Cite Mesquite.html @@ -41,7 +41,7 @@ Mesquite
    How to Cite Mesquite
      - Version 3.80
    + Version 3.81
    April 2023
    @@ -214,7 +214,7 @@

    Maddison, W. P. and D.R. Maddison. 2023. Mesquite: a modular system for - evolutionary analysis. Version 3.80 http://www.mesquiteproject.org + evolutionary analysis. Version 3.81 http://www.mesquiteproject.org (The version number listed above might not be up to date. Check the Mesquite Startup window or the Project and Files window when Mesquite is running to find the version you have.)

    @@ -260,7 +260,7 @@

    < version 3.5.   Maddison, W. P. and D.R. Maddison. 2023. Mesquite: a modular system for - evolutionary analysis. Version 3.80. http://www.mesquiteproject.org. + evolutionary analysis. Version 3.81. http://www.mesquiteproject.org.   Za, T. 2014. SimSpeciation: a package of modules to simulate evolutionary trees. Version 3.14159. diff --git a/docs/Installation on Linux.html b/docs/Installation on Linux.html index 736057077..33ad1d652 100644 --- a/docs/Installation on Linux.html +++ b/docs/Installation on Linux.html @@ -41,7 +41,7 @@ Mesquite
    Installation on Linux
      - Version 3.80
    + Version 3.81
    April 2023
    diff --git a/docs/Installation on MacOS X.html b/docs/Installation on MacOS X.html index b0a06c49d..c57fce473 100644 --- a/docs/Installation on MacOS X.html +++ b/docs/Installation on MacOS X.html @@ -41,7 +41,7 @@ Mesquite
    Installation on MacOS X
      - Version 3.80
    + Version 3.81
    April 2023
    @@ -207,11 +207,11 @@

    Mesquite installat
  • Download the latest version of Mesquite from the Mesquite Github repository.

  • -
  • If the downloaded file doesn't mount into a disk image automatically, double click it to mount. You will see a Mesquite_Folder. Drag this Mesquite_Folder to your hard drive (e.g., your Applications folder). Its contents should be approximately as follows:
  • +
  • If the downloaded file doesn't mount into a disk image automatically, double click it to mount. You will see a Mesquite_Folder. Drag this Mesquite_Folder to your hard drive (e.g., your Applications folder). (It may not work correctly if you leave it on the dmg disk image.) Its contents should be approximately as follows:
      • Mesquite_Folder
        • com/
        • corejava
        • documentation.html
        • edu/
        • examples/
        • images/
        • jars/
        • lesser.txt
        • lib/
        • mesquite/
        • -
        • Mesquite_Starter.app [There will be several different versions of this, with slightly different names]
        • Mesquite_Starter_INSTRUCTIONS-macOS.txt
        • +
        • Mesquite_Starter.app [There may be several different versions of this, with slightly different names]
        • Mesquite_Starter_INSTRUCTIONS-macOS.txt
        • mesquite.jar
        • org/
        • RunningOptionsForFlex/
        • settings/
        • diff --git a/docs/Installation on Windows.html b/docs/Installation on Windows.html index 4f65c1643..dc59ae9fb 100644 --- a/docs/Installation on Windows.html +++ b/docs/Installation on Windows.html @@ -41,7 +41,7 @@ Mesquite
          Installation on Windows
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Installation.html b/docs/Installation.html index cf0f4a77e..2be52fc8e 100644 --- a/docs/Installation.html +++ b/docs/Installation.html @@ -41,7 +41,7 @@ Mesquite
          Installation
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Installing Mesquite Packages.html b/docs/Installing Mesquite Packages.html index 39db6ce7b..f8750fe85 100644 --- a/docs/Installing Mesquite Packages.html +++ b/docs/Installing Mesquite Packages.html @@ -41,7 +41,7 @@ Mesquite
          Installing Mesquite Packages
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Interactions with Other Programs.html b/docs/Interactions with Other Programs.html index d8a7ce6fa..6b3d4ea96 100644 --- a/docs/Interactions with Other Programs.html +++ b/docs/Interactions with Other Programs.html @@ -41,7 +41,7 @@ Mesquite
          Interactions with Other Programs
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Learning how to use Mesquite.html b/docs/Learning how to use Mesquite.html index 91859b818..e54965f25 100644 --- a/docs/Learning how to use Mesquite.html +++ b/docs/Learning how to use Mesquite.html @@ -41,7 +41,7 @@ Mesquite
          Learning Mesquite
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Managing Continuous Data.html b/docs/Managing Continuous Data.html index 413a83c83..7ab9d32b2 100644 --- a/docs/Managing Continuous Data.html +++ b/docs/Managing Continuous Data.html @@ -41,7 +41,7 @@ Mesquite
          Managing Continuous Data
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Managing Molecular Data.html b/docs/Managing Molecular Data.html index e191a1c50..1850cfc6b 100644 --- a/docs/Managing Molecular Data.html +++ b/docs/Managing Molecular Data.html @@ -41,7 +41,7 @@ Mesquite
          Managing Molecular Data
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Menus.html b/docs/Menus.html index fdc21a58d..f73bde5a8 100644 --- a/docs/Menus.html +++ b/docs/Menus.html @@ -41,7 +41,7 @@ Mesquite
          Menus
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/MesquiteLogSupport.html b/docs/MesquiteLogSupport.html index 55971a3bc..4e82e8107 100644 --- a/docs/MesquiteLogSupport.html +++ b/docs/MesquiteLogSupport.html @@ -41,7 +41,7 @@ Mesquite
          Log & Support Files
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Mesquites Features.html b/docs/Mesquites Features.html index eee28516f..7994ca15d 100644 --- a/docs/Mesquites Features.html +++ b/docs/Mesquites Features.html @@ -41,7 +41,7 @@ Mesquite
          Mesquite's Features
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Module Index.html b/docs/Module Index.html index cf49340b2..5e2d7cb47 100644 --- a/docs/Module Index.html +++ b/docs/Module Index.html @@ -41,7 +41,7 @@ Mesquite
          Module Index
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Modules.html b/docs/Modules.html index ffe983761..dba8cbc86 100644 --- a/docs/Modules.html +++ b/docs/Modules.html @@ -41,7 +41,7 @@ Mesquite
          Modules
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Pagel Correlation Method.html b/docs/Pagel Correlation Method.html index 8ca0a3531..0c0933de3 100644 --- a/docs/Pagel Correlation Method.html +++ b/docs/Pagel Correlation Method.html @@ -41,7 +41,7 @@ Mesquite
          Pagel Correlation Method
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Processes of Character Evolution.html b/docs/Processes of Character Evolution.html index 8579c807a..c1f73ea00 100644 --- a/docs/Processes of Character Evolution.html +++ b/docs/Processes of Character Evolution.html @@ -41,7 +41,7 @@ Mesquite
          Processes of Character Evolution
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Publication Quality Trees.html b/docs/Publication Quality Trees.html index 5c7abe579..077deb8e4 100644 --- a/docs/Publication Quality Trees.html +++ b/docs/Publication Quality Trees.html @@ -41,7 +41,7 @@ Mesquite
          Publication Quality Trees
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Publishing Results.html b/docs/Publishing Results.html index 4768208ff..c03a3bdc3 100644 --- a/docs/Publishing Results.html +++ b/docs/Publishing Results.html @@ -41,7 +41,7 @@ Mesquite
          Publishing Results
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Release Dates.html b/docs/Release Dates.html index 2569437b2..df0388e8d 100644 --- a/docs/Release Dates.html +++ b/docs/Release Dates.html @@ -41,7 +41,7 @@ Mesquite
          Release Dates
            - Version 3.80
          + Version 3.81
          April 2023
          @@ -217,6 +217,17 @@

          Mesquite
          Scripts & Macros
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Selection.html b/docs/Selection.html index 333fb6260..f3b84538a 100644 --- a/docs/Selection.html +++ b/docs/Selection.html @@ -41,7 +41,7 @@ Mesquite
          Selection
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Simplifying the Interface.html b/docs/Simplifying the Interface.html index b18f43479..aae8bd108 100644 --- a/docs/Simplifying the Interface.html +++ b/docs/Simplifying the Interface.html @@ -41,7 +41,7 @@ Mesquite
          Simplifying the Interface
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Simulating Characters.html b/docs/Simulating Characters.html index a36c35900..ac0866600 100644 --- a/docs/Simulating Characters.html +++ b/docs/Simulating Characters.html @@ -41,7 +41,7 @@ Mesquite
          Simulating Characters
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Simulating DNA Evolution.html b/docs/Simulating DNA Evolution.html index e58ddb711..7b59cb815 100644 --- a/docs/Simulating DNA Evolution.html +++ b/docs/Simulating DNA Evolution.html @@ -41,7 +41,7 @@ Mesquite
          Simulating DNA Evolution
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Simulations & Randomizations.html b/docs/Simulations & Randomizations.html index c94350cfa..2c9ab2841 100644 --- a/docs/Simulations & Randomizations.html +++ b/docs/Simulations & Randomizations.html @@ -41,7 +41,7 @@ Mesquite
          Simulations & Randomizations
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Slatkin and Maddison.html b/docs/Slatkin and Maddison.html index 0d35cd4d1..0edaf1247 100644 --- a/docs/Slatkin and Maddison.html +++ b/docs/Slatkin and Maddison.html @@ -41,7 +41,7 @@ Mesquite
          Slatkin and Maddison
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Source Code.html b/docs/Source Code.html index 27e119d16..d39bf0de6 100644 --- a/docs/Source Code.html +++ b/docs/Source Code.html @@ -41,7 +41,7 @@ Mesquite
          Source Code
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Studies of Tree Topology.html b/docs/Studies of Tree Topology.html index f22a4df2e..1b63c10f3 100644 --- a/docs/Studies of Tree Topology.html +++ b/docs/Studies of Tree Topology.html @@ -41,7 +41,7 @@ Mesquite
          Studies of Tree Topology
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Suggesting New Features.html b/docs/Suggesting New Features.html index d49e7f0bb..6d04fc9b1 100644 --- a/docs/Suggesting New Features.html +++ b/docs/Suggesting New Features.html @@ -41,7 +41,7 @@ Mesquite
          Suggesting New Features
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Taxa.html b/docs/Taxa.html index 3f43ffb34..e40035c40 100644 --- a/docs/Taxa.html +++ b/docs/Taxa.html @@ -41,7 +41,7 @@ Mesquite
          Taxa
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Templates/MesquiteTemplate.dwt b/docs/Templates/MesquiteTemplate.dwt index 3c58eed8e..8c55892dd 100644 --- a/docs/Templates/MesquiteTemplate.dwt +++ b/docs/Templates/MesquiteTemplate.dwt @@ -41,7 +41,7 @@ Mesquite
          subtitle
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Testing monophyly of a group of beetles.html b/docs/Testing monophyly of a group of beetles.html index 21e10b196..06c8f5936 100644 --- a/docs/Testing monophyly of a group of beetles.html +++ b/docs/Testing monophyly of a group of beetles.html @@ -41,7 +41,7 @@ Mesquite
          Example: Testing monophyly
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Tree Simulations.html b/docs/Tree Simulations.html index e8313401f..00ae1dd98 100644 --- a/docs/Tree Simulations.html +++ b/docs/Tree Simulations.html @@ -41,7 +41,7 @@ Mesquite
          Tree Simulations
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Trees.html b/docs/Trees.html index 63e2d446a..3c8fdb0e8 100644 --- a/docs/Trees.html +++ b/docs/Trees.html @@ -41,7 +41,7 @@ Mesquite
          Trees
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/What Mesquite does.html b/docs/What Mesquite does.html index 17dc38d86..cae0f1cc9 100644 --- a/docs/What Mesquite does.html +++ b/docs/What Mesquite does.html @@ -41,7 +41,7 @@ Mesquite
          Introduction to Mesquite
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/Windows.html b/docs/Windows.html index 710d66e45..0764998da 100644 --- a/docs/Windows.html +++ b/docs/Windows.html @@ -41,7 +41,7 @@ Mesquite
          Windows
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/home.html b/docs/home.html index 9327bedbc..d53ce9aa2 100644 --- a/docs/home.html +++ b/docs/home.html @@ -41,7 +41,7 @@ Mesquite
            - Version 3.80
          + Version 3.81
          April 2023
          @@ -198,7 +198,7 @@

           



          Mesquite: A modular system for evolutionary analysis

          -

          Version: 3.80

          +

          Version: 3.81


          Mesquite is modular, extendible software for evolutionary biology, designed to help biologists organize and analyze comparative data about organisms. Its emphasis is on phylogenetic analysis, but some of its modules concern population genetics, while others do non-phylogenetic multivariate analysis. Because it is modular, the analyses available depend on the modules installed.

          diff --git a/docs/index.html b/docs/index.html index 7fdb9acf6..825cef391 100644 --- a/docs/index.html +++ b/docs/index.html @@ -41,7 +41,7 @@ Mesquite
          Home
            - Version 3.80
          + Version 3.81
          April 2023
          @@ -201,7 +201,7 @@

           

          If you're looking for Mesquite Software, Inc. or its CSIM toolkit for building simulation models, go here

          Mesquite: A modular system for evolutionary analysis

          -

          Current release version: 3.80 [download]

          +

          Current release version: 3.81 [download]

          If you have a previous version, please update because of bug fixes and new features.

          Mesquite is modular, extendible software for evolutionary biology, designed to help biologists organize and analyze comparative data about organisms. Its emphasis is on phylogenetic analysis, but some of its modules concern population genetics, while others do non-phylogenetic multivariate analysis. Because it is modular, the analyses available depend on the modules installed.

          diff --git a/docs/noticesAndUpdates/notices.xml b/docs/noticesAndUpdates/notices.xml index 769b1f01b..59ec26259 100644 --- a/docs/noticesAndUpdates/notices.xml +++ b/docs/noticesAndUpdates/notices.xml @@ -1,77 +1,104 @@ - 24 + 28 1 - 3.61 - 927 - 361 + 3.81 + 955 + 381 http://www.mesquiteproject.org/Installation.html + + 380 + 28 + alert + here]]> + + + 370 + 28 + alert + here]]> + + + 361 + 28 + alert + here]]> + 360 - 25 + 28 alert - here]]> 351 - 25 + 28 alert - here]]> 350 - 25 + 28 alert - here]]> 340 - 25 + 28 alert - the website. We urge that you update to the new version by downloading it from here]]> 331 - 25 + 28 alert - the website. We urge that you update to the new version by downloading it from here]]> 330 - 25 + 28 alert - the website. We urge that you update to the new version by downloading it from here]]> 330 - 25 + 28 alert - the website. We strongly urge that you update to the new version by downloading it from here]]> 201 - 25 + 28 alert This notice is to inform you that Mesquite now checks its web site for notices to users (such as this one) when it starts up. This should not cause a delay (if it does, please inform us). We anticipate notices will be given rarely, when there is an update available or an important bug to tell you about. diff --git a/docs/space.menu.html b/docs/space.menu.html index 36d6e1e5a..14f548721 100644 --- a/docs/space.menu.html +++ b/docs/space.menu.html @@ -41,7 +41,7 @@ Mesquite
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/docs/whyMesquite.html b/docs/whyMesquite.html index 43fedc01f..fe6f67d24 100644 --- a/docs/whyMesquite.html +++ b/docs/whyMesquite.html @@ -41,7 +41,7 @@ Mesquite
          Why Mesquite?
            - Version 3.80
          + Version 3.81
          April 2023
          diff --git a/noticesAndUpdates/notices.xml b/noticesAndUpdates/notices.xml deleted file mode 100644 index 556ff1bf6..000000000 --- a/noticesAndUpdates/notices.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - 26 - - 1 - - 3.70 - 940 - 370 - http://www.mesquiteproject.org/Installation.html - - - 370 - 27 - alert - here]]> - - - 361 - 27 - alert - here]]> - - - 360 - 27 - alert - here]]> - - - 351 - 27 - alert - here]]> - - - 350 - 27 - alert - here]]> - - - 340 - 27 - alert - the website. - We urge that you update to the new version by downloading it from - here]]> - - - 331 - 27 - alert - the website. - We urge that you update to the new version by downloading it from - here]]> - - - 330 - 27 - alert - the website. - We urge that you update to the new version by downloading it from - here]]> - - - 330 - 27 - alert - the website. - We strongly urge that you update to the new version by downloading it from - here]]> - - - 201 - 27 - alert - This notice is to inform you that Mesquite now checks its web site for notices to users (such as this one) when it starts up. This should not cause a delay (if it does, please inform us). We anticipate notices will be given rarely, when there is an update available or an important bug to tell you about. - - - - diff --git a/noticesAndUpdates/noticesPrerelease.xml b/noticesAndUpdates/noticesPrerelease.xml deleted file mode 100644 index e8f2892a5..000000000 --- a/noticesAndUpdates/noticesPrerelease.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - 26 - - 1 - - 3.80 - 950 - 380 - http://www.mesquiteproject.org/Installation.html - - - 341 - 27 - alert - the website. - We urge that you update to the new version by downloading it from - here]]> - - - - diff --git a/noticesAndUpdates/updates.xml b/noticesAndUpdates/updates.xml deleted file mode 100644 index d48c1ef20..000000000 --- a/noticesAndUpdates/updates.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - 1 - - - 260 - 486 - 1 - update - Opal - 002 - Opal v. 2.1 - -

          - Opal does multiple sequence alignment. This download will install Opal as well as Opalescent, a package of Mesquite modules to access Opal's functions. For more information about the features of Opal available - in Mesquite, see the Opalescent web page. -

          In downloading you are agreeing to Opal's terms of use, as follows:

          - Opal is free for noncommercial use, and comes with neither warranty nor guarantee.

          -Opal cannot be redistributed in any form. If you wish to use Opal for commercial purpose, you must first obtain the permission from all authors.

          -All noteworthy uses of Opal should cite the related paper (see Opal website for details) - ]]> - - - mesquite - opal - http://mesquiteproject.org/packages/opalescent/install/opalMesquite.zip - unzip - 002 - - - mesquite - opalescent - http://mesquiteproject.org/packages/opalescent/install/opalescent.zip - unzip - 002 - - - - - -