From 511dbe355a6d4d7e68bbf0838f3b9fa2795fd938 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 4 Jul 2023 12:41:06 +0200 Subject: [PATCH 1/5] Fixes #2982 --- .github/workflows/win-exe.yml | 6 +++--- dist/win/build.ps1 | 6 +++--- src/main/java/org/cryptomator/common/Environment.java | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index 23dcae7c5..8a66e524b 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -114,15 +114,15 @@ jobs: --java-options "-Dfile.encoding=\"utf-8\"" --java-options "-Dcryptomator.logDir=\"@{localappdata}/Cryptomator\"" --java-options "-Dcryptomator.pluginDir=\"@{appdata}/Cryptomator/Plugins\"" - --java-options "-Dcryptomator.settingsPath=\"@{appdata}/Cryptomator/settings.json:@{userhome}/AppData/Roaming/Cryptomator/settings.json\"" - --java-options "-Dcryptomator.p12Path=\"@{appdata}/Cryptomator/key.p12:@{userhome}/AppData/Roaming/Cryptomator/key.p12\"" + --java-options "-Dcryptomator.settingsPath=\"@{appdata}/Cryptomator/settings.json;@{userhome}/AppData/Roaming/Cryptomator/settings.json\"" + --java-options "-Dcryptomator.p12Path=\"@{appdata}/Cryptomator/key.p12;@{userhome}/AppData/Roaming/Cryptomator/key.p12\"" --java-options "-Dcryptomator.ipcSocketPath=\"@{localappdata}/Cryptomator/ipc.socket\"" --java-options "-Dcryptomator.mountPointsDir=\"@{userhome}/Cryptomator\"" --java-options "-Dcryptomator.loopbackAlias=\"${{ env.LOOPBACK_ALIAS }}\"" --java-options "-Dcryptomator.showTrayIcon=true" --java-options "-Dcryptomator.buildNumber=\"msi-${{ needs.get-version.outputs.revNum }}\"" --java-options "-Dcryptomator.integrationsWin.autoStartShellLinkName=\"Cryptomator\"" - --java-options "-Dcryptomator.integrationsWin.keychainPaths=\"@{appdata}/Cryptomator/keychain.json:@{userhome}/AppData/Roaming/Cryptomator/keychain.json\"" + --java-options "-Dcryptomator.integrationsWin.keychainPaths=\"@{appdata}/Cryptomator/keychain.json;@{userhome}/AppData/Roaming/Cryptomator/keychain.json\"" --java-options "-Djavafx.verbose=${{ inputs.isDebug }}" --resource-dir dist/win/resources --icon dist/win/resources/Cryptomator.ico diff --git a/dist/win/build.ps1 b/dist/win/build.ps1 index b8394bf3f..2e3d3b83d 100644 --- a/dist/win/build.ps1 +++ b/dist/win/build.ps1 @@ -84,13 +84,13 @@ if ($clean -and (Test-Path -Path $appPath)) { --java-options "-Dfile.encoding=`"utf-8`"" ` --java-options "-Dcryptomator.logDir=`"@{localappdata}/$AppName`"" ` --java-options "-Dcryptomator.pluginDir=`"@{appdata}/$AppName/Plugins`"" ` - --java-options "-Dcryptomator.settingsPath=`"@{appdata}/$AppName/settings.json:@{userhome}/AppData/Roaming/$AppName/settings.json`"" ` + --java-options "-Dcryptomator.settingsPath=`"@{appdata}/$AppName/settings.json;@{userhome}/AppData/Roaming/$AppName/settings.json`"" ` --java-options "-Dcryptomator.ipcSocketPath=`"@{localappdata}/$AppName/ipc.socket`"" ` - --java-options "-Dcryptomator.p12Path=`"@{appdata}/$AppName/key.p12:@{userhome}/AppData/Roaming/$AppName/key.p12`"" ` + --java-options "-Dcryptomator.p12Path=`"@{appdata}/$AppName/key.p12;@{userhome}/AppData/Roaming/$AppName/key.p12`"" ` --java-options "-Dcryptomator.mountPointsDir=`"@{userhome}/$AppName`"" ` --java-options "-Dcryptomator.loopbackAlias=`"$LoopbackAlias`"" ` --java-options "-Dcryptomator.integrationsWin.autoStartShellLinkName=`"$AppName`"" ` - --java-options "-Dcryptomator.integrationsWin.keychainPaths=`"@{appdata}/$AppName/keychain.json:@{userhome}/AppData/Roaming/$AppName/keychain.json`"" ` + --java-options "-Dcryptomator.integrationsWin.keychainPaths=`"@{appdata}/$AppName/keychain.json;@{userhome}/AppData/Roaming/$AppName/keychain.json`"" ` --java-options "-Dcryptomator.showTrayIcon=true" ` --java-options "-Dcryptomator.buildNumber=`"msi-$revisionNo`"" ` --resource-dir resources ` diff --git a/src/main/java/org/cryptomator/common/Environment.java b/src/main/java/org/cryptomator/common/Environment.java index 66374fc17..70625caa2 100644 --- a/src/main/java/org/cryptomator/common/Environment.java +++ b/src/main/java/org/cryptomator/common/Environment.java @@ -5,6 +5,7 @@ import com.google.common.base.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -18,7 +19,6 @@ import java.util.stream.StreamSupport; public class Environment { private static final Logger LOG = LoggerFactory.getLogger(Environment.class); - private static final char PATH_LIST_SEP = ':'; private static final int DEFAULT_MIN_PW_LENGTH = 8; private static final String SETTINGS_PATH_PROP_NAME = "cryptomator.settingsPath"; private static final String IPC_SOCKET_PATH_PROP_NAME = "cryptomator.ipcSocketPath"; @@ -131,7 +131,7 @@ public class Environment { // visible for testing Stream getPaths(String propertyName) { - Stream rawSettingsPaths = getRawList(propertyName, PATH_LIST_SEP); + Stream rawSettingsPaths = getRawList(propertyName, File.pathSeparatorChar); return rawSettingsPaths.filter(Predicate.not(Strings::isNullOrEmpty)).map(Path::of); } From 9d81b2312fb231d34df1cb492aed2228e8abfa7b Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 4 Jul 2023 12:41:58 +0200 Subject: [PATCH 2/5] fix local build script to parse two digit verison nums correctly --- dist/win/build.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/win/build.ps1 b/dist/win/build.ps1 index 2e3d3b83d..19b04673d 100644 --- a/dist/win/build.ps1 +++ b/dist/win/build.ps1 @@ -26,7 +26,7 @@ if ((Get-Command "mvn" -ErrorAction SilentlyContinue) -eq $null) $buildDir = Split-Path -Parent $PSCommandPath $version = $(mvn -f $buildDir/../../pom.xml help:evaluate -Dexpression="project.version" -q -DforceStdout) -$semVerNo = $version -replace '(\d\.\d\.\d).*','$1' +$semVerNo = $version -replace '(\d+\.\d+\.\d+).*','$1' $revisionNo = $(git rev-list --count HEAD) Write-Output "`$version=$version" From e92b80bdf4a3af3f6e5c7e108ea35613a54a7955 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 4 Jul 2023 12:42:55 +0200 Subject: [PATCH 3/5] fix local win build script to download jfxmods --- dist/win/build.ps1 | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/dist/win/build.ps1 b/dist/win/build.ps1 index 19b04673d..c630fffdd 100644 --- a/dist/win/build.ps1 +++ b/dist/win/build.ps1 @@ -12,6 +12,9 @@ Param( [bool] $clean ) +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +$ProgressPreference = 'SilentlyContinue' # disables Invoke-WebRequest's progress bar, which slows down downloads to a few bytes/s + # check preconditions if ((Get-Command "git" -ErrorAction SilentlyContinue) -eq $null) { @@ -47,11 +50,28 @@ if ($clean -and (Test-Path -Path $runtimeImagePath)) { Remove-Item -Path $runtimeImagePath -Force -Recurse } +## download jfx jmods +$jfxJmodsChecksum = 'd00767334c43b8832b5cf10267d34ca8f563d187c4655b73eb6020dd79c054b5' +$jfxJmodsZip = '.\resources\jfxJmods.zip' +if( !(Test-Path -Path $jfxJmodsZip) ) { + $jmodsUrl = "https://download2.gluonhq.com/openjfx/20.0.1/openjfx-20.0.1_windows-x64_bin-jmods.zip" + Write-Output "Downloading ${jmodsUrl}..." + Invoke-WebRequest $jmodsUrl -OutFile $jfxJmodsZip # redirects are followed by default +} + +$jmodsChecksumActual = $(Get-FileHash -Path $jfxJmodsZip -Algorithm SHA256).Hash +if( $jmodsChecksumActual -ne $jfxJmodsChecksum ) { + Write-Error "Checksum mismatch for jfxJmods.zip. Expected: $jfxJmodsChecksum, actual: $jmodsChecksumActual" + exit 1; +} +Expand-Archive -Force -Path $jfxJmodsZip -DestinationPath ".\resources\" + + & "$Env:JAVA_HOME\bin\jlink" ` --verbose ` --output runtime ` - --module-path "$Env:JAVA_HOME/jmods" ` - --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr ` + --module-path "$Env:JAVA_HOME/jmods;$buildDir/resources/javafx-jmods-20.0.1" ` + --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr,javafx.base,javafx.graphics,javafx.controls,javafx.fxml ` --strip-native-commands ` --no-header-files ` --no-man-pages ` @@ -151,8 +171,6 @@ $Env:JP_WIXWIZARD_RESOURCES = "$buildDir\resources" "-Dlicense.licenseMergesUrl=file:///$buildDir/../../license/merges" # download Winfsp -[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -$ProgressPreference = 'SilentlyContinue' # disables Invoke-WebRequest's progress bar, which slows down downloads to a few bytes/s $winfspMsiUrl= (Select-String -Path ".\bundle\resources\winFspMetaData.wxi" -Pattern '<\?define BundledWinFspDownloadLink="(.+)".*?>').Matches.Groups[1].Value Write-Output "Downloading ${winfspMsiUrl}..." Invoke-WebRequest $winfspMsiUrl -OutFile ".\bundle\resources\winfsp.msi" # redirects are followed by default From 11a0136cb9b968e2a44c71e8bc3c7ec079fbabef Mon Sep 17 00:00:00 2001 From: JaniruTEC <52893617+JaniruTEC@users.noreply.github.com> Date: Tue, 4 Jul 2023 13:54:24 +0200 Subject: [PATCH 4/5] Fixed run configurations See: #2982 --- .idea/runConfigurations/Cryptomator_Windows.xml | 2 +- .idea/runConfigurations/Cryptomator_Windows_Dev.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.idea/runConfigurations/Cryptomator_Windows.xml b/.idea/runConfigurations/Cryptomator_Windows.xml index 36d1e4e14..b1f7c11b3 100644 --- a/.idea/runConfigurations/Cryptomator_Windows.xml +++ b/.idea/runConfigurations/Cryptomator_Windows.xml @@ -2,7 +2,7 @@