From 7c86e5e39ac738f37bda6cb889b6038a4a3b8b71 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 24 Apr 2025 15:53:17 +0200 Subject: [PATCH 01/55] update pom to use JDK 24 --- .idea/misc.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 09accc25b..cbe05c79b 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,7 +8,7 @@ - + \ No newline at end of file diff --git a/pom.xml b/pom.xml index ebaafa15c..174bb1306 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ UTF-8 - 23 + 24 From 79b32740742749c77136fa3b6a4497cfa8b2f1cc Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 24 Apr 2025 15:56:02 +0200 Subject: [PATCH 02/55] migrate to wix6 * drop custom dialogs in installer --- dist/win/resources/customWizard.wxi | 109 -------------- dist/win/resources/main.wxs | 220 +++++++++++++--------------- dist/win/resources/overrides.wxi | 2 +- dist/win/resources/ui.wxf | 16 -- 4 files changed, 106 insertions(+), 241 deletions(-) delete mode 100644 dist/win/resources/customWizard.wxi delete mode 100644 dist/win/resources/ui.wxf diff --git a/dist/win/resources/customWizard.wxi b/dist/win/resources/customWizard.wxi deleted file mode 100644 index ab25702ce..000000000 --- a/dist/win/resources/customWizard.wxi +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - 1 - "1"]]> - - - 1 - 1 - - NOT Installed - Installed AND PATCH - - 1 - LicenseAccepted = "1" - - 1 - 1 - NOT WIXUI_DONTVALIDATEPATH - "1"]]> - WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1" - 1 - 1 - - NOT Installed - Installed AND NOT PATCH - Installed AND PATCH - - 1 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - We recommend for the best user experience to download and install the following third party Windows driver: - - - Homepage)]]> - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dist/win/resources/main.wxs b/dist/win/resources/main.wxs index 335dd3511..5616193a7 100644 --- a/dist/win/resources/main.wxs +++ b/dist/win/resources/main.wxs @@ -1,6 +1,5 @@ - + @@ -30,174 +29,165 @@ - + - + + - - - - - + + + + - + - + - - + + + - - - + + + - - - + - - - - - = 17134)]]> - + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - + + + + - - + + - - - - + + + + - + - + - + - + - - + + - + - - + Target="$(var.CloseApplicationTarget)" + Id="Close$(var.JpAppName)" + CloseMessage="no" + RebootPrompt="no" + PromptToContinue="yes" + Description="A running instance of $(var.JpAppName) is found, using files marked for update. Please close it to continue." + Property="FOUNDRUNNINGAPP" + /> + - - + + - + - - Not Installed - Not Installed - Not Installed - Not Installed + + + + + - Not Installed + - Not Installed + - Not Installed + - JP_UPGRADABLE_FOUND + - JP_DOWNGRADABLE_FOUND + - + - - FOUNDRUNNINGAPP + + - + + + + + - NOT Installed OR REINSTALL - + + + - - - - - - - - - + + + + diff --git a/dist/win/resources/overrides.wxi b/dist/win/resources/overrides.wxi index c4c946868..a5580e5f0 100644 --- a/dist/win/resources/overrides.wxi +++ b/dist/win/resources/overrides.wxi @@ -47,4 +47,4 @@ Legacy Installation settings: - SkipCryptomatorLegacyCheck Should be defined to disable checking for the inno setup installation of Cryptomator and undefined, to enable it. --> - + diff --git a/dist/win/resources/ui.wxf b/dist/win/resources/ui.wxf deleted file mode 100644 index 0aadc0b05..000000000 --- a/dist/win/resources/ui.wxf +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - 1 - 1 - NOT Installed - - - - - \ No newline at end of file From bf2db55d0020ba7bbf19b0f3351b0abbd326d4f2 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Fri, 2 May 2025 13:49:32 +0200 Subject: [PATCH 03/55] switch to ubuntu 22.04 (jammy) when deploying to launchpad --- dist/linux/debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/linux/debian/changelog b/dist/linux/debian/changelog index 84a9756f9..b4f3c295b 100644 --- a/dist/linux/debian/changelog +++ b/dist/linux/debian/changelog @@ -1,4 +1,4 @@ -cryptomator (${PPA_VERSION}) focal; urgency=low +cryptomator (${PPA_VERSION}) jammy; urgency=low * Full changelog can be found on https://github.com/cryptomator/cryptomator/releases From 19a711d12b8426b241bf86e96dcd9a3c1fc384e6 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 6 May 2025 15:55:45 +0200 Subject: [PATCH 04/55] migrate wix burn bundle to wix 6 --- dist/win/build.ps1 | 37 +++-- dist/win/bundle/bundleWithWinfsp.wxs | 88 ++++-------- dist/win/bundle/customBootstrapperTheme.wxl | 64 --------- dist/win/bundle/customBootstrapperTheme.xml | 91 ------------ .../resources/customBootstrapperTheme.wxl | 68 +++++++++ .../resources/customBootstrapperTheme.xml | 133 ++++++++++++++++++ 6 files changed, 260 insertions(+), 221 deletions(-) delete mode 100644 dist/win/bundle/customBootstrapperTheme.wxl delete mode 100644 dist/win/bundle/customBootstrapperTheme.xml create mode 100644 dist/win/bundle/resources/customBootstrapperTheme.wxl create mode 100644 dist/win/bundle/resources/customBootstrapperTheme.xml diff --git a/dist/win/build.ps1 b/dist/win/build.ps1 index 9864d6306..b12086b39 100644 --- a/dist/win/build.ps1 +++ b/dist/win/build.ps1 @@ -26,6 +26,24 @@ if ((Get-Command "mvn" -ErrorAction SilentlyContinue) -eq $null) Write-Host "Unable to find mvn.cmd in your PATH (try: choco install maven)" exit 1 } +if ((Get-Command 'wix' -ErrorAction SilentlyContinue) -eq $null) +{ + Write-Error 'Unable to find wix in your PATH (try: dotnet tool install --global wix --version 6.0.0)' + exit 1 +} +$wixExtensions = & wix.exe extension list --global | Out-String +if ($wixExtensions -notmatch 'WixToolset.UI.wixext') { + Write-Error 'UI wix extension missing. Please install it with: wix.exe extension add WixToolset.UI.wixext/6.0.0 --global)' + exit 1 +} +if ($wixExtensions -notmatch 'WixToolset.Util.wixext') { + Write-Error 'Util wix extension missing. Please install it with: wix.exe extension add WixToolset.Util.wixext/6.0.0 --global)' + exit 1 +} +if ($wixExtensions -notmatch 'WixToolset.BootstrapperApplications.wixext') { + Write-Error 'Util wix extension missing. Please install it with: wix.exe extension add WixToolset.BootstrapperApplications.wixext/6.0.0 --global)' + exit 1 +} $buildDir = Split-Path -Parent $PSCommandPath $version = $(mvn -f $buildDir/../../pom.xml help:evaluate -Dexpression="project.version" -q -DforceStdout) @@ -190,11 +208,14 @@ Invoke-WebRequest $winfspUninstaller -OutFile ".\bundle\resources\winfsp-uninsta Copy-Item ".\installer\$AppName-*.msi" -Destination ".\bundle\resources\$AppName.msi" # create bundle including winfsp -& "$env:WIX\bin\candle.exe" .\bundle\bundleWithWinfsp.wxs -ext WixBalExtension -ext WixUtilextension -out bundle\ ` - -dBundleVersion="$semVerNo.$revisionNo" ` - -dBundleVendor="$Vendor" ` - -dBundleCopyright="$copyright" ` - -dAboutUrl="$AboutUrl" ` - -dHelpUrl="$HelpUrl" ` - -dUpdateUrl="$UpdateUrl" -& "$env:WIX\bin\light.exe" -b . .\bundle\BundlewithWinfsp.wixobj -ext WixBalExtension -ext WixUtilextension -out installer\$AppName-Installer.exe \ No newline at end of file +& wix build ` + -define BundleVersion="$semVerNo.$revisionNo" ` + -define BundleVendor="$Vendor" ` + -define BundleCopyright="$copyright" ` + -define AboutUrl="$AboutUrl" ` + -define HelpUrl="$HelpUrl" ` + -define UpdateUrl="$UpdateUrl" ` + -ext "WixToolset.Util.wixext" ` + -ext "WixToolset.BootstrapperApplications.wixext" ` + .\bundle\bundleWithWinfsp.wxs ` + -out "installer\$AppName-Installer.exe" \ No newline at end of file diff --git a/dist/win/bundle/bundleWithWinfsp.wxs b/dist/win/bundle/bundleWithWinfsp.wxs index 8e009526e..bf18a8e4e 100644 --- a/dist/win/bundle/bundleWithWinfsp.wxs +++ b/dist/win/bundle/bundleWithWinfsp.wxs @@ -1,66 +1,38 @@ - - - - - - - - + + + - + - - - + - - - + + + - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/win/bundle/customBootstrapperTheme.wxl b/dist/win/bundle/customBootstrapperTheme.wxl deleted file mode 100644 index cc464ce9c..000000000 --- a/dist/win/bundle/customBootstrapperTheme.wxl +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - [WixBundleName] Setup - [WixBundleName] - Welcome - This Setup will install [WixBundleName] and additional dependencies on your computer. - Version [WixBundleVersion] - Are you sure you want to cancel? - Previous version - Setup Help - /install | /repair | /uninstall | /layout [directory] - installs, repairs, uninstalls or - creates a complete local copy of the bundle in directory. Install is the default. - -/passive | /quiet - displays minimal UI with no prompts or displays no UI and - no prompts. By default UI and all prompts are displayed. - -/norestart - suppress any attempts to restart. By default UI will prompt before restart. -/log log.txt - logs to a specific file. By default a log file is created in %TEMP%. - &Close - [WixBundleName] <a href="#">license terms</a>. - I &agree to the license terms and conditions - &Options - &Install - &Close - Setup Options - Install location: - &Browse - &OK - &Cancel - Setup Progress - Processing: - Initializing... - &Cancel - Modify Setup - &Repair - &Uninstall - &Close - Repair Successfully Completed - Uninstall Successfully Completed - Installation Successfully Completed - Setup Successful - &Launch - You must restart your computer before you can use the software. - &Restart - &Close - Setup Failed - Setup Failed - Uninstall Failed - Repair Failed - One or more issues caused the setup to fail. Please fix the issues and then retry setup. For more information see the <a href="#">log file</a>. - You must restart your computer to complete the rollback of the software. - &Restart - &Close - Files In Use - The following applications are using files that need to be updated: - Close the &applications and attempt to restart them. - &Do not close applications. A reboot will be required. - &OK - &Cancel - No action was taken as a system reboot is required. - diff --git a/dist/win/bundle/customBootstrapperTheme.xml b/dist/win/bundle/customBootstrapperTheme.xml deleted file mode 100644 index ef986bd27..000000000 --- a/dist/win/bundle/customBootstrapperTheme.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - #(loc.Caption) - Segoe UI - Segoe UI - Segoe UI - Segoe UI - Segoe UI - Segoe UI - - - #(loc.Title) - - - - #(loc.Title) - #(loc.HelpHeader) - #(loc.HelpText) - - - - #(loc.Title) - - #(loc.InstallHeader) - #(loc.InstallMessage) - - #(loc.InstallAcceptCheckbox) - #(loc.InstallVersion) - - - - - - #(loc.Title) - #(loc.FilesInUseHeader) - #(loc.FilesInUseLabel) - A - - - - - - - - - #(loc.Title) - - #(loc.ProgressHeader) - #(loc.ProgressLabel) - #(loc.OverallProgressPackageText) - - - - - - #(loc.Title) - #(loc.ModifyHeader) - - - - - - #(loc.Title) - - #(loc.SuccessHeader) - #(loc.SuccessInstallHeader) - #(loc.SuccessRepairHeader) - #(loc.SuccessUninstallHeader) - - #(loc.SuccessRestartText) - - - - - #(loc.Title) - - #(loc.FailureHeader) - #(loc.FailureInstallHeader) - #(loc.FailureUninstallHeader) - #(loc.FailureRepairHeader) - #(loc.FailureHyperlinkLogText) - - #(loc.FailureRestartText) - - - - diff --git a/dist/win/bundle/resources/customBootstrapperTheme.wxl b/dist/win/bundle/resources/customBootstrapperTheme.wxl new file mode 100644 index 000000000..f292f6833 --- /dev/null +++ b/dist/win/bundle/resources/customBootstrapperTheme.wxl @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dist/win/bundle/resources/customBootstrapperTheme.xml b/dist/win/bundle/resources/customBootstrapperTheme.xml new file mode 100644 index 000000000..9a76faa44 --- /dev/null +++ b/dist/win/bundle/resources/customBootstrapperTheme.xml @@ -0,0 +1,133 @@ + + + + + + Segoe UI + Segoe UI + Segoe UI + Segoe UI + + + + + + + + + + + + + + + + + #(loc.InstallAcceptCheckbox) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #(loc.FailureHyperlinkLogText) + + + + + + + + From d47ab43fcf2afe1447ed7022290640c0c6f525a4 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 6 May 2025 17:01:13 +0200 Subject: [PATCH 05/55] add launch feature to exe installer --- dist/win/build.ps1 | 1 + dist/win/bundle/bundleWithWinfsp.wxs | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dist/win/build.ps1 b/dist/win/build.ps1 index b12086b39..28036e6f8 100644 --- a/dist/win/build.ps1 +++ b/dist/win/build.ps1 @@ -209,6 +209,7 @@ Copy-Item ".\installer\$AppName-*.msi" -Destination ".\bundle\resources\$AppName # create bundle including winfsp & wix build ` + -define BundleName="$AppName" ` -define BundleVersion="$semVerNo.$revisionNo" ` -define BundleVendor="$Vendor" ` -define BundleCopyright="$copyright" ` diff --git a/dist/win/bundle/bundleWithWinfsp.wxs b/dist/win/bundle/bundleWithWinfsp.wxs index bf18a8e4e..2c8d160a6 100644 --- a/dist/win/bundle/bundleWithWinfsp.wxs +++ b/dist/win/bundle/bundleWithWinfsp.wxs @@ -1,6 +1,6 @@  - + @@ -13,7 +13,8 @@ ThemeFile="bundle\resources\customBootstrapperTheme.xml" LocalizationFile="bundle\resources\customBootstrapperTheme.wxl" LogoSideFile="bundle\resources\logoSide.png" - LogoFile="bundle\resources\logo.png" /> + LogoFile="bundle\resources\logo.png" + LaunchTarget="[ProgramFiles64Folder]\$(var.BundleName)\$(var.BundleName).exe" /> From 0d5e518af3f598534887545ee0501de9042cbdaf Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 7 May 2025 12:10:40 +0200 Subject: [PATCH 06/55] adjust jlink to JEP 493 --- .github/workflows/appimage.yml | 10 +++++++++- .github/workflows/mac-dmg-x64.yml | 10 +++++++++- .github/workflows/mac-dmg.yml | 10 +++++++++- .github/workflows/win-exe.yml | 10 +++++++++- dist/linux/appimage/build.sh | 10 ++++++++-- dist/mac/dmg/build.sh | 10 ++++++++-- dist/win/build.ps1 | 8 +++++++- 7 files changed, 59 insertions(+), 9 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index c80be8844..29939fb26 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -73,13 +73,21 @@ jobs: run: | cp LICENSE.txt target cp target/cryptomator-*.jar target/mods + - name: Run jlink with help option + id: jep-493-check + run: | + JMOD_PATHS="openjfx-jmods" + if $(${JAVA_HOME}/bin/jlink --help | grep -o "Linking from run-time image enabled"); then + JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" + fi + echo "jmod_paths=${JMOD_PATHS}" >> "$GITHUB_OUTPUT" - name: Run jlink #Remark: no compression is applied for improved build compression later (here appimage) run: > ${JAVA_HOME}/bin/jlink --verbose --output runtime - --module-path "${JAVA_HOME}/jmods:openjfx-jmods" + --module-path "${{ steps.jep-493-check.outputs.jmod_paths }}" --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.security.auth,jdk.accessibility,jdk.management.jfr,jdk.net,java.compiler --strip-native-commands --no-header-files diff --git a/.github/workflows/mac-dmg-x64.yml b/.github/workflows/mac-dmg-x64.yml index a26e32565..761072e75 100644 --- a/.github/workflows/mac-dmg-x64.yml +++ b/.github/workflows/mac-dmg-x64.yml @@ -75,13 +75,21 @@ jobs: run: | cp LICENSE.txt target cp target/cryptomator-*.jar target/mods + - name: Run jlink with help option + id: jep-493-check + run: | + JMOD_PATHS="openjfx-jmods" + if $(${JAVA_HOME}/bin/jlink --help | grep -o "Linking from run-time image enabled"); then + JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" + fi + echo "jmod_paths=${JMOD_PATHS}" >> "$GITHUB_OUTPUT" - name: Run jlink #Remark: no compression is applied for improved build compression later (here dmg) run: > ${JAVA_HOME}/bin/jlink --verbose --output runtime - --module-path "${JAVA_HOME}/jmods:openjfx-jmods" + --module-path "${{ steps.jep-493-check.outputs.jmod_paths }}" --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.accessibility,jdk.management.jfr,java.compiler --strip-native-commands --no-header-files diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index 27dd8cfdc..d21a2b3cd 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -76,13 +76,21 @@ jobs: run: | cp LICENSE.txt target cp target/cryptomator-*.jar target/mods + - name: Run jlink with help option + id: jep-493-check + run: | + JMOD_PATHS="openjfx-jmods" + if $(${JAVA_HOME}/bin/jlink --help | grep -o "Linking from run-time image enabled"); then + JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" + fi + echo "jmod_paths=${JMOD_PATHS}" >> "$GITHUB_OUTPUT" - name: Run jlink #Remark: no compression is applied for improved build compression later (here dmg) run: > ${JAVA_HOME}/bin/jlink --verbose --output runtime - --module-path "${JAVA_HOME}/jmods:openjfx-jmods" + --module-path "${{ steps.jep-493-check.outputs.jmod_paths }}" --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.accessibility,jdk.management.jfr,java.compiler --strip-native-commands --no-header-files diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index e42c8486b..bb740bb3f 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -82,13 +82,21 @@ jobs: run: | cp LICENSE.txt target cp target/cryptomator-*.jar target/mods + - name: Run jlink with help option + id: jep-493-check + run: | + JMOD_PATHS="openjfx-jmods" + if $(${JAVA_HOME}/bin/jlink --help | grep -o "Linking from run-time image enabled"); then + JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" + fi + echo "jmod_paths=${JMOD_PATHS}" >> "$GITHUB_OUTPUT" - name: Run jlink #Remark: no compression is applied for improved build compression later (here msi) run: > ${JAVA_HOME}/bin/jlink --verbose --output runtime - --module-path "jfxjmods;${JAVA_HOME}/jmods" + --module-path "${{ steps.jep-493-check.outputs.jmod_paths }}" --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.crypto.mscapi,jdk.unsupported,jdk.accessibility,jdk.management.jfr,java.compiler --strip-native-commands --no-header-files diff --git a/dist/linux/appimage/build.sh b/dist/linux/appimage/build.sh index e18054ae6..6bfdbd5c7 100755 --- a/dist/linux/appimage/build.sh +++ b/dist/linux/appimage/build.sh @@ -51,11 +51,17 @@ if [ $POM_JFX_VERSION -ne $JMOD_VERSION ]; then fi -# add runtime +# create runtime +## check for JEP 493 +JMOD_PATHS="openjfx-jmods" +if $(${JAVA_HOME}/bin/jlink --help | grep -o "Linking from run-time image enabled"); then + JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" +fi +## create runtime image ${JAVA_HOME}/bin/jlink \ --verbose \ --output runtime \ - --module-path "${JAVA_HOME}/jmods:openjfx-jmods" \ + --module-path "${JMOD_PATHS}" \ --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.security.auth,jdk.accessibility,jdk.management.jfr,jdk.net,java.compiler \ --strip-native-commands \ --no-header-files \ diff --git a/dist/mac/dmg/build.sh b/dist/mac/dmg/build.sh index e1bc3a125..e7fabb1be 100755 --- a/dist/mac/dmg/build.sh +++ b/dist/mac/dmg/build.sh @@ -75,10 +75,16 @@ mvn -B -Djavafx.platform=mac -f../../../pom.xml clean package -DskipTests -Pmac cp ../../../LICENSE.txt ../../../target cp ../../../target/${MAIN_JAR_GLOB} ../../../target/mods -# add runtime +# create runtime +## check for JEP 493 +JMOD_PATHS="openjfx-jmods" +if $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then + JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" +fi +## create custom runtime ${JAVA_HOME}/bin/jlink \ --output runtime \ - --module-path "${JAVA_HOME}/jmods:openjfx-jmods" \ + --module-path "${JMOD_PATHS}" \ --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.security.auth,jdk.accessibility,jdk.management.jfr,java.compiler \ --strip-native-commands \ --no-header-files \ diff --git a/dist/win/build.ps1 b/dist/win/build.ps1 index 28036e6f8..dc820d0eb 100644 --- a/dist/win/build.ps1 +++ b/dist/win/build.ps1 @@ -89,10 +89,16 @@ Remove-Item -Recurse -Force -Path ".\resources\javafx-jmods" -ErrorAction Ignore Move-Item -Force -Path ".\resources\javafx-jmods-*" -Destination ".\resources\javafx-jmods" -ErrorAction Stop ## create custom runtime +### check for JEP 493 +$jmodPaths="$buildDir/resources/javafx-jmods"; +if ((& "$Env:JAVA_HOME\bin\jlink" --help | Select-String -Pattern "Linking from run-time image enabled" -SimpleMatch | Measure-Object).Count -gt 0 ) { + $jmodPaths="$Env:JAVA_HOME/jmods;" + $jmodPaths; +} +### create runtime & "$Env:JAVA_HOME\bin\jlink" ` --verbose ` --output runtime ` - --module-path "$Env:JAVA_HOME/jmods;$buildDir/resources/javafx-jmods" ` + --module-path $jmodPaths ` --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.accessibility,jdk.management.jfr,jdk.crypto.mscapi,java.compiler,javafx.base,javafx.graphics,javafx.controls,javafx.fxml ` --strip-native-commands ` --no-header-files ` From 0a4684133d19661c3643e460455b44f57f95dc46 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 7 May 2025 12:17:27 +0200 Subject: [PATCH 07/55] update ci to JDK 24 --- .github/workflows/appimage.yml | 2 +- .github/workflows/build.yml | 2 +- .github/workflows/debian.yml | 2 +- .github/workflows/mac-dmg-x64.yml | 2 +- .github/workflows/mac-dmg.yml | 2 +- .github/workflows/win-exe.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 29939fb26..f4595e876 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -11,7 +11,7 @@ on: env: JAVA_DIST: 'temurin' - JAVA_VERSION: '23.0.2' + JAVA_VERSION: '24.0.1+9' jobs: get-version: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 545513129..fc95c2d93 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ on: env: JAVA_DIST: 'temurin' - JAVA_VERSION: 23 + JAVA_VERSION: 24 defaults: run: diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index 197aaf7dc..7dbb6537a 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -17,7 +17,7 @@ on: env: JAVA_DIST: 'temurin' - JAVA_VERSION: '23.0.2+7' + JAVA_VERSION: '24.0.1+9' COFFEELIBS_JDK: 23 COFFEELIBS_JDK_VERSION: '23.0.2+7-0ppa1' OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/23.0.2/openjfx-23.0.2_linux-x64_bin-jmods.zip' diff --git a/.github/workflows/mac-dmg-x64.yml b/.github/workflows/mac-dmg-x64.yml index 761072e75..e35b86438 100644 --- a/.github/workflows/mac-dmg-x64.yml +++ b/.github/workflows/mac-dmg-x64.yml @@ -15,7 +15,7 @@ on: env: JAVA_DIST: 'temurin' - JAVA_VERSION: '23.0.2+7' + JAVA_VERSION: '24.0.1+9' jobs: get-version: diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index d21a2b3cd..397952f50 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -16,7 +16,7 @@ on: env: JAVA_DIST: 'temurin' - JAVA_VERSION: '23.0.2+7' + JAVA_VERSION: '24.0.1+9' jobs: get-version: diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index bb740bb3f..ab6961dff 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -16,7 +16,7 @@ on: env: JAVA_DIST: 'zulu' - JAVA_VERSION: '23.0.2+7' + JAVA_VERSION: '24.0.1+9' OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/23.0.1/openjfx-23.0.1_windows-x64_bin-jmods.zip' OPENJFX_JMODS_AMD64_HASH: 'ee176dcee3bd78bde7910735bd67f67c792882f5b89626796ae06f7a1c0119d3' WINFSP_MSI: 'https://github.com/winfsp/winfsp/releases/download/v2.0/winfsp-2.0.23075.msi' From fdb4a2fb5c419844dbd753db2d289e078509fe81 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 7 May 2025 12:17:43 +0200 Subject: [PATCH 08/55] remove wix version pinning --- .github/workflows/win-exe.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index ab6961dff..0906d156c 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -40,9 +40,6 @@ jobs: LOOPBACK_ALIAS: 'cryptomator-vault' WIN_CONSOLE_FLAG: '' steps: - - name: Upgrade WIX to latest version - run: choco install wixtoolset --version 3.14.1 - shell: pwsh - uses: actions/checkout@v4 - name: Setup Java uses: actions/setup-java@v4 From bbb663f9d25378001e5f7b64a3e1c2f939f99a87 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 7 May 2025 12:47:48 +0200 Subject: [PATCH 09/55] update windows ci workflow to wix 6 --- .github/workflows/win-exe.yml | 50 ++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index 0906d156c..949d915b3 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -48,6 +48,11 @@ jobs: java-version: ${{ env.JAVA_VERSION }} check-latest: true cache: 'maven' + - name: Install wix and extensions + run: | + dotnet tool install --global wix --version 6.0.0 + wix.exe extension add WixToolset.UI.wixext/6.0.0 --global + wix.exe extension add WixToolset.Util.wixext/6.0.0 --global - name: Download and extract JavaFX jmods from Gluon #In the last step we move all jmods files a dir level up because jmods are placed inside a directory in the zip run: | @@ -269,6 +274,11 @@ jobs: needs: [get-version, build-msi] steps: - uses: actions/checkout@v4 + - name: Install wix and extensions + run: | + dotnet tool install --global wix --version 6.0.0 + wix.exe extension add WixToolset.BootstrapperApplications.wixext/6.0.0 --global + wix.exe extension add WixToolset.Util.wixext/6.0.0 --global - name: Download .msi uses: actions/download-artifact@v4 with: @@ -301,29 +311,23 @@ jobs: run: | curl --output dist/win/bundle/resources/winfsp-uninstaller.exe -L ${{ env.WINFSP_UNINSTALLER }} shell: pwsh - - name: Compile to wixObj file + - name: Create Wix Burn bundle run: > - "${WIX}/bin/candle.exe" dist/win/bundle/bundleWithWinfsp.wxs - -ext WixBalExtension - -ext WixUtilExtension - -out dist/win/bundle/ - -dBundleVersion="${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}" - -dBundleVendor="Skymatic GmbH" - -dBundleCopyright="(C) 2016 - 2025 Skymatic GmbH" - -dAboutUrl="https://cryptomator.org" - -dHelpUrl="https://cryptomator.org/contact" - -dUpdateUrl="https://cryptomator.org/downloads/" - - name: Create executable with linker - run: > - "${WIX}/bin/light.exe" -b dist/win/ dist/win/bundle/bundleWithWinfsp.wixobj - -ext WixBalExtension - -ext WixUtilExtension - -out installer/unsigned/Cryptomator-Installer.exe + wix build + -define BundleName="Cryptomator" + -define BundleVersion="${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum}}" + -define BundleVendor="Skymatic GmbH" + -define BundleCopyright="(C) 2016 - 2025 Skymatic GmbH" + -define AboutUrl="https://cryptomator.org" + -define HelpUrl="https://cryptomator.org/contact" + -define UpdateUrl="https://cryptomator.org/downloads/" + -ext "WixToolset.Util.wixext" + -ext "WixToolset.BootstrapperApplications.wixext" + ./dist/win/bundle/bundleWithWinfsp.wxs + -out "installer/unsigned/Cryptomator-Installer.exe" - name: Detach burn engine in preparation to sign run: > - "${WIX}/bin/insignia.exe" - -ib installer/unsigned/Cryptomator-Installer.exe - -o tmp/engine.exe + wix burn detach installer/unsigned/Cryptomator-Installer.exe -engine tmp/engine.exe - name: Codesign burn engine uses: skymatic/code-sign-action@v3 with: @@ -334,10 +338,8 @@ jobs: timestampUrl: 'http://timestamp.digicert.com' folder: tmp - name: Reattach signed burn engine to installer - run : > - "${WIX}/bin/insignia.exe" - -ab tmp/engine.exe installer/unsigned/Cryptomator-Installer.exe - -o installer/Cryptomator-Installer.exe + run: > + wix burn reattach installer/unsigned/Cryptomator-Installer.exe -engine tmp/engine.exe -o installer/Cryptomator-Installer.exe - name: Codesign EXE uses: skymatic/code-sign-action@v3 with: From 7c44c4f1944fd98758414fe42951324da59c07ac Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 7 May 2025 16:59:36 +0200 Subject: [PATCH 10/55] fix wrong logic in build scripts --- .github/workflows/appimage.yml | 2 +- .github/workflows/mac-dmg-x64.yml | 2 +- .github/workflows/mac-dmg.yml | 2 +- .github/workflows/win-exe.yml | 14 +++++++------- dist/linux/appimage/build.sh | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index f4595e876..fbb28ab65 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -77,7 +77,7 @@ jobs: id: jep-493-check run: | JMOD_PATHS="openjfx-jmods" - if $(${JAVA_HOME}/bin/jlink --help | grep -o "Linking from run-time image enabled"); then + if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" fi echo "jmod_paths=${JMOD_PATHS}" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/mac-dmg-x64.yml b/.github/workflows/mac-dmg-x64.yml index e35b86438..49289fda2 100644 --- a/.github/workflows/mac-dmg-x64.yml +++ b/.github/workflows/mac-dmg-x64.yml @@ -79,7 +79,7 @@ jobs: id: jep-493-check run: | JMOD_PATHS="openjfx-jmods" - if $(${JAVA_HOME}/bin/jlink --help | grep -o "Linking from run-time image enabled"); then + if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" fi echo "jmod_paths=${JMOD_PATHS}" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index 397952f50..091418f4d 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -80,7 +80,7 @@ jobs: id: jep-493-check run: | JMOD_PATHS="openjfx-jmods" - if $(${JAVA_HOME}/bin/jlink --help | grep -o "Linking from run-time image enabled"); then + if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" fi echo "jmod_paths=${JMOD_PATHS}" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index 949d915b3..0ad1a25b0 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -56,16 +56,16 @@ jobs: - name: Download and extract JavaFX jmods from Gluon #In the last step we move all jmods files a dir level up because jmods are placed inside a directory in the zip run: | - curl --output jfxjmods.zip -L "${{ env.OPENJFX_JMODS_AMD64 }}" - if(!(Get-FileHash -Path jfxjmods.zip -Algorithm SHA256).Hash.ToLower().equals("${{ env.OPENJFX_JMODS_AMD64_HASH }}")) { + curl --output openjfx-jmods.zip -L "${{ env.OPENJFX_JMODS_AMD64 }}" + if(!(Get-FileHash -Path openjfx-jmods.zip -Algorithm SHA256).Hash.ToLower().equals("${{ env.OPENJFX_JMODS_AMD64_HASH }}")) { throw "Wrong checksum of JMOD archive downloaded from ${{ env.OPENJFX_JMODS_AMD64 }}."; } - Expand-Archive -Path jfxjmods.zip -DestinationPath jfxjmods - Get-ChildItem -Path jfxjmods -Recurse -Filter "*.jmod" | ForEach-Object { Move-Item -Path $_ -Destination $_.Directory.Parent} + Expand-Archive -Path openjfx-jmods.zip -DestinationPath openjfx-jmods + Get-ChildItem -Path openjfx-jmods -Recurse -Filter "*.jmod" | ForEach-Object { Move-Item -Path $_ -Destination $_.Directory.Parent} shell: pwsh - name: Ensure major jfx version in pom and in jmods is the same run: | - JMOD_VERSION_AMD64=$(jmod describe jfxjmods/javafx.base.jmod | head -1) + JMOD_VERSION_AMD64=$(jmod describe openjfx-jmods/javafx.base.jmod | head -1) JMOD_VERSION_AMD64=${JMOD_VERSION_AMD64#*@} JMOD_VERSION_AMD64=${JMOD_VERSION_AMD64%%.*} POM_JFX_VERSION=$(mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) @@ -88,8 +88,8 @@ jobs: id: jep-493-check run: | JMOD_PATHS="openjfx-jmods" - if $(${JAVA_HOME}/bin/jlink --help | grep -o "Linking from run-time image enabled"); then - JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" + if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then + JMOD_PATHS="${JAVA_HOME}/jmods;${JMOD_PATHS}" fi echo "jmod_paths=${JMOD_PATHS}" >> "$GITHUB_OUTPUT" - name: Run jlink diff --git a/dist/linux/appimage/build.sh b/dist/linux/appimage/build.sh index 6bfdbd5c7..4523e1481 100755 --- a/dist/linux/appimage/build.sh +++ b/dist/linux/appimage/build.sh @@ -54,7 +54,7 @@ fi # create runtime ## check for JEP 493 JMOD_PATHS="openjfx-jmods" -if $(${JAVA_HOME}/bin/jlink --help | grep -o "Linking from run-time image enabled"); then +if $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" fi ## create runtime image From 2f32fc5c1690443e9e2f6b1e47bba0c12ea5c66e Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 7 May 2025 17:23:52 +0200 Subject: [PATCH 11/55] [skip ci] use different working directory for building the exe --- .github/workflows/win-exe.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index 0ad1a25b0..49bacc987 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -312,6 +312,7 @@ jobs: curl --output dist/win/bundle/resources/winfsp-uninstaller.exe -L ${{ env.WINFSP_UNINSTALLER }} shell: pwsh - name: Create Wix Burn bundle + working-directory: dist/win run: > wix build -define BundleName="Cryptomator" @@ -323,8 +324,8 @@ jobs: -define UpdateUrl="https://cryptomator.org/downloads/" -ext "WixToolset.Util.wixext" -ext "WixToolset.BootstrapperApplications.wixext" - ./dist/win/bundle/bundleWithWinfsp.wxs - -out "installer/unsigned/Cryptomator-Installer.exe" + ./bundle/bundleWithWinfsp.wxs + -out "../../installer/unsigned/Cryptomator-Installer.exe" - name: Detach burn engine in preparation to sign run: > wix burn detach installer/unsigned/Cryptomator-Installer.exe -engine tmp/engine.exe From 8322633b141a550fa5290536e6c7cec895d9bce4 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 8 May 2025 11:04:59 +0200 Subject: [PATCH 12/55] apply workaround for wix burn bug --- dist/win/bundle/bundleWithWinfsp.wxs | 2 ++ dist/win/bundle/resources/customBootstrapperTheme.xml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dist/win/bundle/bundleWithWinfsp.wxs b/dist/win/bundle/bundleWithWinfsp.wxs index 2c8d160a6..00d9b9ccb 100644 --- a/dist/win/bundle/bundleWithWinfsp.wxs +++ b/dist/win/bundle/bundleWithWinfsp.wxs @@ -16,6 +16,8 @@ LogoFile="bundle\resources\logo.png" LaunchTarget="[ProgramFiles64Folder]\$(var.BundleName)\$(var.BundleName).exe" /> + + diff --git a/dist/win/bundle/resources/customBootstrapperTheme.xml b/dist/win/bundle/resources/customBootstrapperTheme.xml index 9a76faa44..0bf669420 100644 --- a/dist/win/bundle/resources/customBootstrapperTheme.xml +++ b/dist/win/bundle/resources/customBootstrapperTheme.xml @@ -8,7 +8,7 @@ Segoe UI Segoe UI - + From 119d18d699f62f94f7a2d4baef463080b37041fc Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 8 May 2025 11:07:37 +0200 Subject: [PATCH 13/55] [skip ci] cleanup --- dist/win/build.ps1 | 14 ++++++++++---- dist/win/bundle/bundleWithWinfsp.wxs | 11 +++++++++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/dist/win/build.ps1 b/dist/win/build.ps1 index dc820d0eb..cf5c0a043 100644 --- a/dist/win/build.ps1 +++ b/dist/win/build.ps1 @@ -18,12 +18,12 @@ $ProgressPreference = 'SilentlyContinue' # disables Invoke-WebRequest's progress # check preconditions if ((Get-Command "git" -ErrorAction SilentlyContinue) -eq $null) { - Write-Host "Unable to find git.exe in your PATH (try: choco install git)" + Write-Error "Unable to find git.exe in your PATH (try: choco install git)" exit 1 } if ((Get-Command "mvn" -ErrorAction SilentlyContinue) -eq $null) { - Write-Host "Unable to find mvn.cmd in your PATH (try: choco install maven)" + Write-Error "Unable to find mvn.cmd in your PATH (try: choco install maven)" exit 1 } if ((Get-Command 'wix' -ErrorAction SilentlyContinue) -eq $null) @@ -104,7 +104,7 @@ if ((& "$Env:JAVA_HOME\bin\jlink" --help | Select-String -Pattern "Linking from --no-header-files ` --no-man-pages ` --strip-debug ` - --compress "zip-0" #do not compress to have improved msi compression + --compress "zip-0" #do not compress and use msi compression $appPath = ".\$AppName" if ($clean -and (Test-Path -Path $appPath)) { @@ -190,6 +190,12 @@ $Env:JP_WIXHELPER_DIR = "." --about-url $AboutUrl ` --file-associations resources/FAvaultFile.properties +if ($LASTEXITCODE -ne 0) { + Write-Error "jpackage MSI failed with exit code $LASTEXITCODE" + return 1; +} + + #Create RTF license for bundle &mvn -B -f $buildDir/../../pom.xml license:add-third-party "-Djavafx.platform=win" ` "-Dlicense.thirdPartyFilename=license.rtf" ` @@ -211,7 +217,7 @@ Write-Output "Downloading ${winfspUninstaller}..." Invoke-WebRequest $winfspUninstaller -OutFile ".\bundle\resources\winfsp-uninstaller.exe" # redirects are followed by default # copy MSI to bundle resources -Copy-Item ".\installer\$AppName-*.msi" -Destination ".\bundle\resources\$AppName.msi" +Copy-Item ".\installer\$AppName-*.msi" -Destination ".\bundle\resources\$AppName.msi" -Force # create bundle including winfsp & wix build ` diff --git a/dist/win/bundle/bundleWithWinfsp.wxs b/dist/win/bundle/bundleWithWinfsp.wxs index 00d9b9ccb..1c9e7da20 100644 --- a/dist/win/bundle/bundleWithWinfsp.wxs +++ b/dist/win/bundle/bundleWithWinfsp.wxs @@ -1,12 +1,19 @@  - + - Date: Thu, 8 May 2025 11:14:10 +0200 Subject: [PATCH 14/55] fix minWidth and minHeight --- src/main/java/org/cryptomator/ui/error/ErrorComponent.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/error/ErrorComponent.java b/src/main/java/org/cryptomator/ui/error/ErrorComponent.java index 47798c920..5d287942d 100644 --- a/src/main/java/org/cryptomator/ui/error/ErrorComponent.java +++ b/src/main/java/org/cryptomator/ui/error/ErrorComponent.java @@ -20,8 +20,8 @@ public interface ErrorComponent { default Stage show() { Stage stage = window(); stage.setScene(scene()); - stage.setMinWidth(420); - stage.setMinHeight(300); + stage.setMinWidth(450); + stage.setMinHeight(450); stage.show(); return stage; } From ef54b685f63f39744a0ff83e3e7a68f7bd99f16c Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 8 May 2025 16:50:52 +0200 Subject: [PATCH 15/55] [skip ci] fix wrong logic to determine linkable runtime image in local build scripts --- dist/linux/appimage/build.sh | 2 +- dist/mac/dmg/build.sh | 2 +- dist/win/build.ps1 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/linux/appimage/build.sh b/dist/linux/appimage/build.sh index 4523e1481..840c98de0 100755 --- a/dist/linux/appimage/build.sh +++ b/dist/linux/appimage/build.sh @@ -54,7 +54,7 @@ fi # create runtime ## check for JEP 493 JMOD_PATHS="openjfx-jmods" -if $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then +if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" fi ## create runtime image diff --git a/dist/mac/dmg/build.sh b/dist/mac/dmg/build.sh index e7fabb1be..59c31ba78 100755 --- a/dist/mac/dmg/build.sh +++ b/dist/mac/dmg/build.sh @@ -78,7 +78,7 @@ cp ../../../target/${MAIN_JAR_GLOB} ../../../target/mods # create runtime ## check for JEP 493 JMOD_PATHS="openjfx-jmods" -if $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then +if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" fi ## create custom runtime diff --git a/dist/win/build.ps1 b/dist/win/build.ps1 index cf5c0a043..587324ab8 100644 --- a/dist/win/build.ps1 +++ b/dist/win/build.ps1 @@ -91,7 +91,7 @@ Move-Item -Force -Path ".\resources\javafx-jmods-*" -Destination ".\resources\ja ## create custom runtime ### check for JEP 493 $jmodPaths="$buildDir/resources/javafx-jmods"; -if ((& "$Env:JAVA_HOME\bin\jlink" --help | Select-String -Pattern "Linking from run-time image enabled" -SimpleMatch | Measure-Object).Count -gt 0 ) { +if ((& "$Env:JAVA_HOME\bin\jlink" --help | Select-String -Pattern "Linking from run-time image enabled" -SimpleMatch | Measure-Object).Count -eq 0 ) { $jmodPaths="$Env:JAVA_HOME/jmods;" + $jmodPaths; } ### create runtime From e27e303c019dc169ebaa8c29c67ebbf9ffc5bbe1 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 13 May 2025 14:01:53 +0200 Subject: [PATCH 16/55] [skip ci] use JDK 24 also for deb build --- .github/workflows/debian.yml | 4 ++-- dist/linux/debian/control | 2 +- dist/linux/debian/rules | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index 7dbb6537a..c77dbe27b 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -18,8 +18,8 @@ on: env: JAVA_DIST: 'temurin' JAVA_VERSION: '24.0.1+9' - COFFEELIBS_JDK: 23 - COFFEELIBS_JDK_VERSION: '23.0.2+7-0ppa1' + COFFEELIBS_JDK: 24 + COFFEELIBS_JDK_VERSION: '24.0.1+9-0ppa2' OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/23.0.2/openjfx-23.0.2_linux-x64_bin-jmods.zip' OPENJFX_JMODS_AMD64_HASH: '063baebc6922e4a89c94b9dfb7a4f53e59e8d6fec400d4e670b31bc2ab324dec' OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/23.0.2/openjfx-23.0.2_linux-aarch64_bin-jmods.zip' diff --git a/dist/linux/debian/control b/dist/linux/debian/control index 15626ba26..c8ca0f889 100644 --- a/dist/linux/debian/control +++ b/dist/linux/debian/control @@ -2,7 +2,7 @@ Source: cryptomator Maintainer: Cryptobot Section: utils Priority: optional -Build-Depends: debhelper (>=10), coffeelibs-jdk-23 (>= 23.0.2+7-0ppa1), libgtk-3-0, libxxf86vm1, libgl1 +Build-Depends: debhelper (>=10), coffeelibs-jdk-24 (>= 24.0.1+9-0ppa1), libgtk-3-0, libxxf86vm1, libgl1 Standards-Version: 4.5.0 Homepage: https://cryptomator.org Vcs-Git: https://github.com/cryptomator/cryptomator.git diff --git a/dist/linux/debian/rules b/dist/linux/debian/rules index a899dba68..bea3d2688 100755 --- a/dist/linux/debian/rules +++ b/dist/linux/debian/rules @@ -4,7 +4,7 @@ # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 -JAVA_HOME = /usr/lib/jvm/java-23-coffeelibs +JAVA_HOME = /usr/lib/jvm/java-24-coffeelibs DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) ifeq ($(DEB_BUILD_ARCH),amd64) JMODS_PATH = jmods/amd64:${JAVA_HOME}/jmods From 0a0dde3f47fb7da602de9b1535fa7ab8fdb11e5c Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 13 May 2025 15:22:29 +0200 Subject: [PATCH 17/55] [skip ci] coffeelibs jdk is built with JEP 493 --- dist/linux/debian/rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/linux/debian/rules b/dist/linux/debian/rules index bea3d2688..6decccddf 100755 --- a/dist/linux/debian/rules +++ b/dist/linux/debian/rules @@ -7,9 +7,9 @@ JAVA_HOME = /usr/lib/jvm/java-24-coffeelibs DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) ifeq ($(DEB_BUILD_ARCH),amd64) -JMODS_PATH = jmods/amd64:${JAVA_HOME}/jmods +JMODS_PATH = jmods/amd64 else ifeq ($(DEB_BUILD_ARCH),arm64) -JMODS_PATH = jmods/aarch64:${JAVA_HOME}/jmods +JMODS_PATH = jmods/aarch64 endif %: From 6f9b3e31e75c98b795c474042fbebfdc54f84960 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 15 May 2025 00:27:16 +0200 Subject: [PATCH 18/55] [skip ci] prevent gpg from pruning the key cache --- .github/workflows/debian.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index c77dbe27b..1f185f87c 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -118,6 +118,7 @@ jobs: GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }} - name: debuild run: | + (sleep 8m; gpg --batch --quiet --pinentry-mode loopback -u 615D449FE6E6A235 --dry-run --sign README.md) & debuild -S -sa -d debuild -b -sa -d env: From 7260d7f9f8aa3853c3cc49db90733d11c21e310d Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 19 May 2025 12:20:04 +0200 Subject: [PATCH 19/55] fixes #3847 --- .../cryptomator/common/vaults/VaultListManager.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/cryptomator/common/vaults/VaultListManager.java b/src/main/java/org/cryptomator/common/vaults/VaultListManager.java index c362ca0c0..f66f976dc 100644 --- a/src/main/java/org/cryptomator/common/vaults/VaultListManager.java +++ b/src/main/java/org/cryptomator/common/vaults/VaultListManager.java @@ -9,6 +9,7 @@ package org.cryptomator.common.vaults; import org.apache.commons.lang3.SystemUtils; +import org.cryptomator.common.Constants; import org.cryptomator.common.settings.Settings; import org.cryptomator.common.settings.VaultSettings; import org.cryptomator.cryptofs.CryptoFileSystemProvider; @@ -35,6 +36,7 @@ import static org.cryptomator.common.Constants.MASTERKEY_FILENAME; import static org.cryptomator.common.Constants.VAULTCONFIG_FILENAME; import static org.cryptomator.common.vaults.VaultState.Value.ERROR; import static org.cryptomator.common.vaults.VaultState.Value.LOCKED; +import static org.cryptomator.common.vaults.VaultState.Value.NEEDS_MIGRATION; @Singleton public class VaultListManager { @@ -115,13 +117,15 @@ public class VaultListManager { private Vault create(VaultSettings vaultSettings) { var wrapper = new VaultConfigCache(vaultSettings); try { - if (Objects.isNull(vaultSettings.lastKnownKeyLoader.get())) { - var keyIdScheme = wrapper.get().getKeyId().getScheme(); - vaultSettings.lastKnownKeyLoader.set(keyIdScheme); - } var vaultState = determineVaultState(vaultSettings.path.get()); if (vaultState == LOCKED) { //for legacy reasons: pre v8 vault do not have a config, but they are in the NEEDS_MIGRATION state wrapper.reloadConfig(); + if (Objects.isNull(vaultSettings.lastKnownKeyLoader.get())) { + var keyIdScheme = wrapper.get().getKeyId().getScheme(); + vaultSettings.lastKnownKeyLoader.set(keyIdScheme); + } + } else if (vaultState == NEEDS_MIGRATION) { + vaultSettings.lastKnownKeyLoader.set(Constants.DEFAULT_KEY_ID.toString()); } return vaultComponentFactory.create(vaultSettings, wrapper, vaultState, null).vault(); } catch (IOException e) { From d6bbcfbbc1bb309f5c2ef7aaba2850daab241e7d Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 21 May 2025 11:50:55 +0200 Subject: [PATCH 20/55] Revert "[skip ci] coffeelibs jdk is built with JEP 493" This reverts commit 0a0dde3f47fb7da602de9b1535fa7ab8fdb11e5c. --- dist/linux/debian/rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/linux/debian/rules b/dist/linux/debian/rules index 6decccddf..bea3d2688 100755 --- a/dist/linux/debian/rules +++ b/dist/linux/debian/rules @@ -7,9 +7,9 @@ JAVA_HOME = /usr/lib/jvm/java-24-coffeelibs DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) ifeq ($(DEB_BUILD_ARCH),amd64) -JMODS_PATH = jmods/amd64 +JMODS_PATH = jmods/amd64:${JAVA_HOME}/jmods else ifeq ($(DEB_BUILD_ARCH),arm64) -JMODS_PATH = jmods/aarch64 +JMODS_PATH = jmods/aarch64:${JAVA_HOME}/jmods endif %: From 59dddd3f4c910694a7b608ad9664c0bfb5acc940 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 21 May 2025 11:58:07 +0200 Subject: [PATCH 21/55] [skip ci] increase the required build version for coffeelibs to ppa3 build --- .github/workflows/debian.yml | 2 +- dist/linux/debian/control | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index 1f185f87c..32944b0b2 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -19,7 +19,7 @@ env: JAVA_DIST: 'temurin' JAVA_VERSION: '24.0.1+9' COFFEELIBS_JDK: 24 - COFFEELIBS_JDK_VERSION: '24.0.1+9-0ppa2' + COFFEELIBS_JDK_VERSION: '24.0.1+9-0ppa3' OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/23.0.2/openjfx-23.0.2_linux-x64_bin-jmods.zip' OPENJFX_JMODS_AMD64_HASH: '063baebc6922e4a89c94b9dfb7a4f53e59e8d6fec400d4e670b31bc2ab324dec' OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/23.0.2/openjfx-23.0.2_linux-aarch64_bin-jmods.zip' diff --git a/dist/linux/debian/control b/dist/linux/debian/control index c8ca0f889..b0c2c6725 100644 --- a/dist/linux/debian/control +++ b/dist/linux/debian/control @@ -2,7 +2,7 @@ Source: cryptomator Maintainer: Cryptobot Section: utils Priority: optional -Build-Depends: debhelper (>=10), coffeelibs-jdk-24 (>= 24.0.1+9-0ppa1), libgtk-3-0, libxxf86vm1, libgl1 +Build-Depends: debhelper (>=10), coffeelibs-jdk-24 (>= 24.0.1+9-0ppa3), libgtk-3-0, libxxf86vm1, libgl1 Standards-Version: 4.5.0 Homepage: https://cryptomator.org Vcs-Git: https://github.com/cryptomator/cryptomator.git From 6e085b783da874927aeed41c8691bfa7f2a8e34e Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 21 May 2025 13:01:33 +0200 Subject: [PATCH 22/55] use correct bash syntax to check exit code --- .github/workflows/appimage.yml | 2 +- .github/workflows/mac-dmg-x64.yml | 2 +- .github/workflows/mac-dmg.yml | 2 +- dist/linux/appimage/build.sh | 2 +- dist/mac/dmg/build.sh | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index fbb28ab65..9c4c9ec3c 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -77,7 +77,7 @@ jobs: id: jep-493-check run: | JMOD_PATHS="openjfx-jmods" - if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then + if ! ${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"; then JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" fi echo "jmod_paths=${JMOD_PATHS}" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/mac-dmg-x64.yml b/.github/workflows/mac-dmg-x64.yml index 49289fda2..28aa29f13 100644 --- a/.github/workflows/mac-dmg-x64.yml +++ b/.github/workflows/mac-dmg-x64.yml @@ -79,7 +79,7 @@ jobs: id: jep-493-check run: | JMOD_PATHS="openjfx-jmods" - if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then + if ! ${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"; then JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" fi echo "jmod_paths=${JMOD_PATHS}" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index 091418f4d..115e7ccc1 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -80,7 +80,7 @@ jobs: id: jep-493-check run: | JMOD_PATHS="openjfx-jmods" - if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then + if ! ${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"; then JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" fi echo "jmod_paths=${JMOD_PATHS}" >> "$GITHUB_OUTPUT" diff --git a/dist/linux/appimage/build.sh b/dist/linux/appimage/build.sh index 840c98de0..952c3bcd1 100755 --- a/dist/linux/appimage/build.sh +++ b/dist/linux/appimage/build.sh @@ -54,7 +54,7 @@ fi # create runtime ## check for JEP 493 JMOD_PATHS="openjfx-jmods" -if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then +if ! ${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"; then JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" fi ## create runtime image diff --git a/dist/mac/dmg/build.sh b/dist/mac/dmg/build.sh index 59c31ba78..ebf62749f 100755 --- a/dist/mac/dmg/build.sh +++ b/dist/mac/dmg/build.sh @@ -78,7 +78,7 @@ cp ../../../target/${MAIN_JAR_GLOB} ../../../target/mods # create runtime ## check for JEP 493 JMOD_PATHS="openjfx-jmods" -if ! $(${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"); then +if ! ${JAVA_HOME}/bin/jlink --help | grep -q "Linking from run-time image enabled"; then JMOD_PATHS="${JAVA_HOME}/jmods:${JMOD_PATHS}" fi ## create custom runtime From 1f8df6fead753c7e37d5caf78f098302b2c6fa40 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 21 May 2025 13:01:54 +0200 Subject: [PATCH 23/55] fix comparsion to undefined variable --- .github/workflows/appimage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 9c4c9ec3c..0d52b973c 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -61,7 +61,7 @@ jobs: POM_JFX_VERSION=${POM_JFX_VERSION#*@} POM_JFX_VERSION=${POM_JFX_VERSION%%.*} - if [ $POM_JFX_VERSION -ne $JMOD_VERSION_AMD64 ]; then + if [ $POM_JFX_VERSION -ne $JMOD_VERSION ]; then >&2 echo "Major JavaFX version in pom.xml (${POM_JFX_VERSION}) != amd64 jmod version (${JMOD_VERSION})" exit 1 fi From 322907bbcd89aa6c4e73d329469a84a7416bbc75 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 21 May 2025 13:05:59 +0200 Subject: [PATCH 24/55] bump minimal ubuntu version Cryptomator is build on --- dist/linux/debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/linux/debian/changelog b/dist/linux/debian/changelog index 84a9756f9..b4f3c295b 100644 --- a/dist/linux/debian/changelog +++ b/dist/linux/debian/changelog @@ -1,4 +1,4 @@ -cryptomator (${PPA_VERSION}) focal; urgency=low +cryptomator (${PPA_VERSION}) jammy; urgency=low * Full changelog can be found on https://github.com/cryptomator/cryptomator/releases From 41336cca13890c6c6106a7cabf5ca60d97d1c1f4 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 21 May 2025 13:08:55 +0200 Subject: [PATCH 25/55] bump to JDK 24 in all java workflows --- .github/workflows/check-jdk-updates.yml | 2 +- .github/workflows/dependency-check.yml | 2 +- .github/workflows/get-version.yml | 2 +- .github/workflows/pullrequest.yml | 3 +-- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/check-jdk-updates.yml b/.github/workflows/check-jdk-updates.yml index 64456baae..bf8d19e15 100644 --- a/.github/workflows/check-jdk-updates.yml +++ b/.github/workflows/check-jdk-updates.yml @@ -6,7 +6,7 @@ on: workflow_dispatch: env: - JDK_VERSION: '23.0.1+11' + JDK_VERSION: '24.0.1+9' JDK_VENDOR: temurin RUNTIME_VERSION_HELPER: > public class Test { diff --git a/.github/workflows/dependency-check.yml b/.github/workflows/dependency-check.yml index 00e30c984..b44604490 100644 --- a/.github/workflows/dependency-check.yml +++ b/.github/workflows/dependency-check.yml @@ -11,7 +11,7 @@ jobs: with: runner-os: 'ubuntu-latest' java-distribution: 'temurin' - java-version: 23 + java-version: 24 check-command: 'mvn -B validate -Pdependency-check -Djavafx.platform=linux' secrets: nvd-api-key: ${{ secrets.NVD_API_KEY }} diff --git a/.github/workflows/get-version.yml b/.github/workflows/get-version.yml index 5a5ab09b0..4ee423386 100644 --- a/.github/workflows/get-version.yml +++ b/.github/workflows/get-version.yml @@ -23,7 +23,7 @@ on: env: JAVA_DIST: 'temurin' - JAVA_VERSION: 23 + JAVA_VERSION: 24 jobs: determine-version: diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index 5b0cb5111..28ab593cd 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -5,7 +5,7 @@ on: env: JAVA_DIST: 'temurin' - JAVA_VERSION: 23 + JAVA_VERSION: 24 defaults: run: @@ -15,7 +15,6 @@ jobs: test: name: Compile and Test runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 From 72fdc8f536204cf9ea667b82842074dcd74935c7 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 21 May 2025 14:40:28 +0200 Subject: [PATCH 26/55] [skip ci] allow manual trigger for building macOS x64 dmg --- .github/workflows/mac-dmg-x64.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/mac-dmg-x64.yml b/.github/workflows/mac-dmg-x64.yml index a26e32565..8e0393e55 100644 --- a/.github/workflows/mac-dmg-x64.yml +++ b/.github/workflows/mac-dmg-x64.yml @@ -2,16 +2,25 @@ name: Build macOS .dmg for x64 ####################################### # STOP! DO NOT EDIT THIS FILE! -# +# # It is a copy of mac-dmg.yml with tiny adjustements (mainly lines 42 to 47) # It was made necessary, since Github does not offer free macos intel runners for macos 15 and above. -# This workflow can only be triggered by a release. -# +# ####################################### on: release: types: [published] + workflow_dispatch: + inputs: + version: + description: 'Version' + required: false + notarize: + description: 'Notarize' + required: true + default: false + type: boolean env: JAVA_DIST: 'temurin' From 7d2c4992af21b36c76d330060801bc95c0414ca6 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 2 Jun 2025 10:28:52 +0200 Subject: [PATCH 27/55] update pom and adjust classes to new keychain api. (#3877) --- pom.xml | 8 +++--- .../common/keychain/KeychainManager.java | 16 +----------- .../GeneralPreferencesController.java | 25 +++---------------- .../common/keychain/MapKeychainAccess.java | 7 +----- 4 files changed, 9 insertions(+), 47 deletions(-) diff --git a/pom.xml b/pom.xml index 5e4641944..ab40f06b9 100644 --- a/pom.xml +++ b/pom.xml @@ -34,10 +34,10 @@ 2.9.0 - 1.5.1 - 1.3.0 - 1.3.2 - 1.5.3 + 1.6.0 + 1.5.0 + 1.4.0 + 1.6.0 5.0.5 2.0.10 diff --git a/src/main/java/org/cryptomator/common/keychain/KeychainManager.java b/src/main/java/org/cryptomator/common/keychain/KeychainManager.java index 04a46e742..2ac356f9e 100644 --- a/src/main/java/org/cryptomator/common/keychain/KeychainManager.java +++ b/src/main/java/org/cryptomator/common/keychain/KeychainManager.java @@ -42,25 +42,11 @@ public class KeychainManager implements KeychainAccessProvider { return result; } - @Override - public String displayName() { - return getClass().getName(); - } - @Override public void storePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException { - storePassphrase(key, displayName, passphrase, true); - } - - //TODO: remove ignored parameter once the API is fixed - @Override - public void storePassphrase(String key, String displayName, CharSequence passphrase, boolean ignored) throws KeychainAccessException { try { lock.writeLock().lock(); - var kc = getKeychainOrFail(); - //this is the only keychain actually using the parameter - var usesOSAuth = (kc.getClass().getName().equals("org.cryptomator.macos.keychain.TouchIdKeychainAccess")); - kc.storePassphrase(key, displayName, passphrase, usesOSAuth); + getKeychainOrFail().storePassphrase(key, displayName, passphrase); } finally { lock.writeLock().unlock(); } diff --git a/src/main/java/org/cryptomator/ui/preferences/GeneralPreferencesController.java b/src/main/java/org/cryptomator/ui/preferences/GeneralPreferencesController.java index 4505f412d..584749920 100644 --- a/src/main/java/org/cryptomator/ui/preferences/GeneralPreferencesController.java +++ b/src/main/java/org/cryptomator/ui/preferences/GeneralPreferencesController.java @@ -85,7 +85,7 @@ public class GeneralPreferencesController implements FxController { var keychainSettingsConverter = new ServiceToSettingsConverter<>(keychainAccessProviders); keychainBackendChoiceBox.getItems().addAll(keychainAccessProviders); keychainBackendChoiceBox.setValue(keychainSettingsConverter.fromString(settings.keychainProvider.get())); - keychainBackendChoiceBox.setConverter(new KeychainProviderDisplayNameConverter()); + keychainBackendChoiceBox.setConverter(new NamedServiceConverter<>()); Bindings.bindBidirectional(settings.keychainProvider, keychainBackendChoiceBox.valueProperty(), keychainSettingsConverter); useKeychainCheckbox.selectedProperty().bindBidirectional(settings.useKeychain); keychainBackendChoiceBox.disableProperty().bind(useKeychainCheckbox.selectedProperty().not()); @@ -106,13 +106,13 @@ public class GeneralPreferencesController implements FxController { var idsAndNames = settings.directories.stream().collect(Collectors.toMap(vs -> vs.id, vs -> vs.displayName.getValue())); if (!idsAndNames.isEmpty()) { if (LOG.isDebugEnabled()) { - LOG.debug("Migrating keychain entries {} from {} to {}", idsAndNames.keySet(), oldProvider.displayName(), newProvider.displayName()); + LOG.debug("Migrating keychain entries {} from {} to {}", idsAndNames.keySet(), oldProvider.getName(), newProvider.getName()); } keychainMigrations = keychainMigrations.thenRunAsync(() -> { try { KeychainManager.migrate(oldProvider, newProvider, idsAndNames); } catch (KeychainAccessException e) { - LOG.warn("Failed to migrate all entries from {} to {}", oldProvider.displayName(), newProvider.displayName(), e); + LOG.warn("Failed to migrate all entries from {} to {}", oldProvider.getName(), newProvider.getName(), e); } }, backgroundExecutor); } @@ -151,25 +151,6 @@ public class GeneralPreferencesController implements FxController { } /* Helper classes */ - - private static class KeychainProviderDisplayNameConverter extends StringConverter { - - @Override - public String toString(KeychainAccessProvider provider) { - if (provider == null) { - return null; - } else { - return provider.displayName(); - } - } - - @Override - public KeychainAccessProvider fromString(String string) { - throw new UnsupportedOperationException(); - } - - } - private static class NamedServiceConverter extends StringConverter { @Override diff --git a/src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java b/src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java index 73c8da522..c2d171c3b 100644 --- a/src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java +++ b/src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java @@ -16,12 +16,7 @@ class MapKeychainAccess implements KeychainAccessProvider { private final Map map = new HashMap<>(); @Override - public String displayName() { - return getClass().getName(); - } - - @Override - public void storePassphrase(String key, String displayName,CharSequence passphrase, boolean ignored) { + public void storePassphrase(String key, String displayName,CharSequence passphrase) { char[] pw = new char[passphrase.length()]; for (int i = 0; i < passphrase.length(); i++) { pw[i] = passphrase.charAt(i); From cd6b1cf1290703ce909a1854bfda0a9a91841600 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 2 Jun 2025 12:08:24 +0200 Subject: [PATCH 28/55] Update README.md bump JDK build dependency to 24 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d2bf39f29..9b57f3696 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ For more information on the security details visit [cryptomator.org](https://doc ### Dependencies -* JDK 23 (e.g. temurin, zulu) +* JDK 24 (e.g. temurin, zulu) * Maven 3 ### Run Maven From a699a794a9489a5a0589d38533f61920e0996bc8 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 2 Jun 2025 16:57:30 +0200 Subject: [PATCH 29/55] CI: Trigger the appropiate build workflows based on changed files (#3880) --- .github/workflows/appimage.yml | 8 +++++- .github/workflows/build.yml | 4 +++ .github/workflows/debian.yml | 45 ++++++++++++++++++++-------------- .github/workflows/mac-dmg.yml | 4 +++ .github/workflows/win-exe.yml | 4 +++ 5 files changed, 46 insertions(+), 19 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 0d52b973c..7524c96c9 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -8,6 +8,12 @@ on: version: description: 'Version' required: false + push: + paths: + - '.github/workflows/appimage.yml' + - 'dist/linux/appimage/**' + - 'dist/linux/common/**' + - 'dist/linux/resources/**' env: JAVA_DIST: 'temurin' @@ -17,7 +23,7 @@ jobs: get-version: uses: ./.github/workflows/get-version.yml with: - version: ${{ inputs.version }} + version: ${{ inputs.version }} #okay if not defined build: name: Build AppImage diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fc95c2d93..7dae2755c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,6 +2,10 @@ name: Build on: push: + paths: + - '.github/workflows/build.yml' + - 'pom.xml' + - 'src/**' pull_request_target: types: [labeled] diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index 32944b0b2..b82249e18 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -5,15 +5,19 @@ on: inputs: semver: description: 'SemVer String (e.g. 1.7.0-beta1)' - required: true ppaver: description: 'Base PPA Version String (e.g. 1.6.16+1.7.0~beta1) without -0ppa1' - required: true dput: description: 'Upload to PPA' required: true default: false type: boolean + push: + paths: + - '.github/workflows/debian.yml' + - 'dist/linux/debian/**' + - 'dist/linux/common/**' + - 'dist/linux/resources/**' env: JAVA_DIST: 'temurin' @@ -26,20 +30,25 @@ env: OPENJFX_JMODS_AARCH64_HASH: '9bbedaeae1590b69e2b22237bda310936df33e344dbc243bea2e86acaab3a0d8' jobs: + get-version: + uses: ./.github/workflows/get-version.yml + with: + version: ${{ inputs.semver }} #okay if not defined + build: name: Build Debian Package runs-on: ubuntu-22.04 + needs: [get-version] steps: - uses: actions/checkout@v4 - - id: versions - name: Get version information + - id: deb-version + name: Determine deb-version run: | - SEM_VER_STR="${{ inputs.semver }}" - SEM_VER_NUM=`echo ${SEM_VER_STR} | sed -E 's/([0-9]+\.[0-9]+\.[0-9]+).*/\1/'` - REVCOUNT=`git rev-list --count HEAD` - echo "semVerStr=${SEM_VER_STR}" >> $GITHUB_OUTPUT - echo "semVerNum=${SEM_VER_NUM}" >> $GITHUB_OUTPUT - echo "revNum=${REVCOUNT}" >> $GITHUB_OUTPUT + if [ -n "${{inputs.ppaver}}" ]; then + echo "debVersion=${{inputs.ppaver }}" >> "$GITHUB_OUTPUT" + else + echo "debVersion=${{needs.get-version.outputs.semVerStr}}" >> "$GITHUB_OUTPUT" + fi - name: Install build tools run: | sudo add-apt-repository ppa:coffeelibs/openjdk @@ -94,7 +103,7 @@ jobs: cp -r jmods pkgdir cp -r dist/linux/common/ pkgdir cp target/cryptomator-*.jar pkgdir/mods - tar -cJf cryptomator_${{ inputs.ppaver }}.orig.tar.xz -C pkgdir . + tar -cJf cryptomator_${{ steps.deb-version.outputs.debVersion }}.orig.tar.xz -C pkgdir . - name: Patch and rename pkgdir run: | cp -r dist/linux/debian/ pkgdir @@ -103,12 +112,12 @@ jobs: envsubst '${SEMVER_STR} ${VERSION_NUM} ${REVISION_NUM} ${DISABLE_UPDATE_CHECK}' < dist/linux/debian/rules > pkgdir/debian/rules envsubst '${PPA_VERSION} ${RFC2822_TIMESTAMP}' < dist/linux/debian/changelog > pkgdir/debian/changelog find . -name "*.jar" >> pkgdir/debian/source/include-binaries - mv pkgdir cryptomator_${{ inputs.ppaver }} + mv pkgdir cryptomator_${{ steps.deb-version.outputs.debVersion }} env: - SEMVER_STR: ${{ steps.versions.outputs.semVerStr }} - VERSION_NUM: ${{ steps.versions.outputs.semVerNum }} - REVISION_NUM: ${{ steps.versions.outputs.revNum }} - PPA_VERSION: ${{ inputs.ppaver }}-0ppa1 + SEMVER_STR: ${{ needs.get-version.outputs.semVerStr }} + VERSION_NUM: ${{ needs.get-version.outputs.semVerNum }} + REVISION_NUM: ${{ needs.get-version.outputs.revNum }} + PPA_VERSION: ${{ steps.deb-version.outputs.debVersion }}-0ppa1 - name: Prepare GPG-Agent for signing with key 615D449FE6E6A235 run: | echo "${GPG_PRIVATE_KEY}" | gpg --batch --quiet --import @@ -124,7 +133,7 @@ jobs: env: DEBSIGN_PROGRAM: gpg --batch --pinentry-mode loopback DEBSIGN_KEYID: 615D449FE6E6A235 - working-directory: cryptomator_${{ inputs.ppaver }} + working-directory: cryptomator_${{ steps.deb-version.outputs.debVersion }} - name: Create detached GPG signatures run: | gpg --batch --quiet --passphrase-fd 0 --pinentry-mode loopback -u 615D449FE6E6A235 --detach-sign -a cryptomator_*_amd64.deb @@ -141,7 +150,7 @@ jobs: cryptomator_*_amd64.deb cryptomator_*.asc - name: Publish on PPA - if: inputs.dput + if: inputs.dput && inputs.ppaver != '' run: dput ppa:sebastian-stenzel/cryptomator-beta cryptomator_*_source.changes # If ref is a tag, also upload to GitHub Releases: - name: Publish Debian package on GitHub Releases diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index 115e7ccc1..fc316373a 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -13,6 +13,10 @@ on: required: true default: false type: boolean + push: + paths: + - '.github/workflows/mac-dmg.yml' + - 'dist/mac/**' env: JAVA_DIST: 'temurin' diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index 49bacc987..da5b4b140 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -12,6 +12,10 @@ on: description: 'Build debug version with console output' type: boolean default: false + push: + paths: + - '.github/workflows/win-exe.yml' + - 'dist/win/**' env: From 27ea29ab9d3e0cc4ba149f01957c59b7004681b6 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 3 Jun 2025 13:57:08 +0200 Subject: [PATCH 30/55] fix IllegalArguemntException do not try to convert a path which is already an OS path --- .../org/cryptomator/ui/eventview/EventListCellController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/eventview/EventListCellController.java b/src/main/java/org/cryptomator/ui/eventview/EventListCellController.java index 487049d4c..3157f9f40 100644 --- a/src/main/java/org/cryptomator/ui/eventview/EventListCellController.java +++ b/src/main/java/org/cryptomator/ui/eventview/EventListCellController.java @@ -133,9 +133,9 @@ public class EventListCellController implements FxController { eventMessage.setValue(resourceBundle.getString("eventView.entry.brokenFileNode.message")); eventDescription.setValue(bfe.ciphertextPath().getFileName().toString()); if (revealService != null) { - addAction("eventView.entry.brokenFileNode.showEncrypted", () -> reveal(revealService, convertVaultPathToSystemPath(bfe.ciphertextPath()))); + addAction("eventView.entry.brokenFileNode.showEncrypted", () -> reveal(revealService, bfe.ciphertextPath())); } else { - addAction("eventView.entry.brokenFileNode.copyEncrypted", () -> copyToClipboard(convertVaultPathToSystemPath(bfe.ciphertextPath()).toString())); + addAction("eventView.entry.brokenFileNode.copyEncrypted", () -> copyToClipboard(bfe.ciphertextPath().toString())); } addAction("eventView.entry.brokenFileNode.copyDecrypted", () -> copyToClipboard(convertVaultPathToSystemPath(bfe.cleartextPath()).toString())); } From dd1af8cd783589e8c8b06e7c4881195e10a67815 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 3 Jun 2025 15:49:40 +0200 Subject: [PATCH 31/55] add migration for renamed SecretServiceKeychainAccess references #3877 --- .../java/org/cryptomator/common/settings/Settings.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/cryptomator/common/settings/Settings.java b/src/main/java/org/cryptomator/common/settings/Settings.java index 907d99885..0f043b963 100644 --- a/src/main/java/org/cryptomator/common/settings/Settings.java +++ b/src/main/java/org/cryptomator/common/settings/Settings.java @@ -44,7 +44,7 @@ public class Settings { @Deprecated // to be changed to "whatever is available" eventually static final String DEFAULT_KEYCHAIN_PROVIDER = SystemUtils.IS_OS_WINDOWS ? "org.cryptomator.windows.keychain.WindowsProtectedKeychainAccess" : // SystemUtils.IS_OS_MAC ? "org.cryptomator.macos.keychain.MacSystemKeychainAccess" : // - "org.cryptomator.linux.keychain.SecretServiceKeychainAccess"; + "org.cryptomator.linux.keychain.GnomeKeyringKeychainAccess"; static final String DEFAULT_QUICKACCESS_SERVICE = SystemUtils.IS_OS_WINDOWS ? "org.cryptomator.windows.quickaccess.ExplorerQuickAccessService" : // SystemUtils.IS_OS_LINUX ? "org.cryptomator.linux.quickaccess.NautilusBookmarks" : null; @@ -147,6 +147,11 @@ public class Settings { @SuppressWarnings("deprecation") private void migrateLegacySettings(SettingsJson json) { + // migrate renamed keychainAccess + if(this.keychainProvider.getValueSafe().equals("org.cryptomator.linux.SecretServiceKeychainAccess")) { + this.keychainProvider.setValue("org.cryptomator.linux.GnomeKeyringKeychainAccess"); + } + // implicit migration of 1.6.x legacy setting "preferredVolumeImpl": if (this.mountService.get() == null && json.preferredVolumeImpl != null) { this.mountService.set(switch (json.preferredVolumeImpl) { From 941b4e36529a5d9dc62aa81e2ebd3e353d7827ea Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 3 Jun 2025 15:51:37 +0200 Subject: [PATCH 32/55] Feature: JavaFX 24 (#3882) --- .github/workflows/appimage.yml | 10 +++++----- .github/workflows/debian.yml | 8 ++++---- .github/workflows/mac-dmg-x64.yml | 6 +++--- .github/workflows/mac-dmg.yml | 6 +++--- .github/workflows/win-exe.yml | 6 +++--- .idea/runConfigurations/Cryptomator_Linux.xml | 2 +- .idea/runConfigurations/Cryptomator_Linux_Dev.xml | 2 +- .idea/runConfigurations/Cryptomator_Windows.xml | 2 +- .idea/runConfigurations/Cryptomator_Windows_Dev.xml | 2 +- .idea/runConfigurations/Cryptomator_macOS.xml | 2 +- .idea/runConfigurations/Cryptomator_macOS_Dev.xml | 2 +- dist/linux/appimage/build.sh | 8 ++++---- dist/linux/debian/rules | 2 +- dist/mac/dmg/build.sh | 8 ++++---- dist/win/build.ps1 | 6 +++--- pom.xml | 2 +- 16 files changed, 37 insertions(+), 37 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 7524c96c9..0c297eee2 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -35,12 +35,12 @@ jobs: include: - os: ubuntu-latest appimage-suffix: x86_64 - openjfx-url: 'https://download2.gluonhq.com/openjfx/23.0.2/openjfx-23.0.2_linux-x64_bin-jmods.zip' - openjfx-sha: '063baebc6922e4a89c94b9dfb7a4f53e59e8d6fec400d4e670b31bc2ab324dec' + openjfx-url: 'https://download2.gluonhq.com/openjfx/24.0.1/openjfx-24.0.1_linux-x64_bin-jmods.zip' + openjfx-sha: '425fac742b9fbd095b2ce868cff82d1024620f747c94a7144d0a4879e756146c' - os: ubuntu-24.04-arm appimage-suffix: aarch64 - openjfx-url: 'https://download2.gluonhq.com/openjfx/23.0.2/openjfx-23.0.2_linux-aarch64_bin-jmods.zip' - openjfx-sha: '9bbedaeae1590b69e2b22237bda310936df33e344dbc243bea2e86acaab3a0d8' + openjfx-url: 'https://download2.gluonhq.com/openjfx/24.0.1/openjfx-24.0.1_linux-aarch64_bin-jmods.zip' + openjfx-sha: '7e02edd0f4ee5527a27c94b0bbba66fcaaff41009119e45d0eca0f96ddfb6e7b' steps: - uses: actions/checkout@v4 - name: Setup Java @@ -115,7 +115,7 @@ jobs: --copyright "(C) 2016 - 2025 Skymatic GmbH" --app-version "${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}" --java-options "--enable-preview" - --java-options "--enable-native-access=org.cryptomator.jfuse.linux.amd64,org.cryptomator.jfuse.linux.aarch64,org.purejava.appindicator" + --java-options "--enable-native-access=javafx.graphics,org.cryptomator.jfuse.linux.amd64,org.cryptomator.jfuse.linux.aarch64,org.purejava.appindicator" --java-options "-Xss5m" --java-options "-Xmx256m" --java-options "-Dcryptomator.appVersion=\"${{ needs.get-version.outputs.semVerStr }}\"" diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index b82249e18..73b7abf30 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -24,10 +24,10 @@ env: JAVA_VERSION: '24.0.1+9' COFFEELIBS_JDK: 24 COFFEELIBS_JDK_VERSION: '24.0.1+9-0ppa3' - OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/23.0.2/openjfx-23.0.2_linux-x64_bin-jmods.zip' - OPENJFX_JMODS_AMD64_HASH: '063baebc6922e4a89c94b9dfb7a4f53e59e8d6fec400d4e670b31bc2ab324dec' - OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/23.0.2/openjfx-23.0.2_linux-aarch64_bin-jmods.zip' - OPENJFX_JMODS_AARCH64_HASH: '9bbedaeae1590b69e2b22237bda310936df33e344dbc243bea2e86acaab3a0d8' + OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/24.0.1/openjfx-24.0.1_linux-x64_bin-jmods.zip' + OPENJFX_JMODS_AMD64_HASH: '425fac742b9fbd095b2ce868cff82d1024620f747c94a7144d0a4879e756146c' + OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/24.0.1/openjfx-24.0.1_linux-aarch64_bin-jmods.zip' + OPENJFX_JMODS_AARCH64_HASH: '7e02edd0f4ee5527a27c94b0bbba66fcaaff41009119e45d0eca0f96ddfb6e7b' jobs: get-version: diff --git a/.github/workflows/mac-dmg-x64.yml b/.github/workflows/mac-dmg-x64.yml index 69c15a29e..7e4c5ce7a 100644 --- a/.github/workflows/mac-dmg-x64.yml +++ b/.github/workflows/mac-dmg-x64.yml @@ -44,8 +44,8 @@ jobs: architecture: x64 output-suffix: x64 fuse-lib: macFUSE - openjfx-url: 'https://download2.gluonhq.com/openjfx/23.0.2/openjfx-23.0.2_osx-x64_bin-jmods.zip' - openjfx-sha: '5e6c65c065eea22430c0eab36f37a5985eb8ad99e19e8772262021740d338f68' + openjfx-url: 'https://download2.gluonhq.com/openjfx/24.0.1/openjfx-24.0.1_osx-x64_bin-jmods.zip' + openjfx-sha: '6e62a426d43c168a488521f904a523f3dd6ee2cf103e08136f2fd465c828a105' steps: - uses: actions/checkout@v4 - name: Setup Java @@ -120,7 +120,7 @@ jobs: --copyright "(C) 2016 - 2025 Skymatic GmbH" --app-version "${{ needs.get-version.outputs.semVerNum }}" --java-options "--enable-preview" - --java-options "--enable-native-access=org.cryptomator.jfuse.mac" + --java-options "--enable-native-access=javafx.graphics,org.cryptomator.jfuse.mac" --java-options "-Xss5m" --java-options "-Xmx256m" --java-options "-Dfile.encoding=\"utf-8\"" diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index fc316373a..59200df31 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -40,8 +40,8 @@ jobs: architecture: aarch64 output-suffix: arm64 fuse-lib: FUSE-T - openjfx-url: 'https://download2.gluonhq.com/openjfx/23.0.2/openjfx-23.0.2_osx-aarch64_bin-jmods.zip' - openjfx-sha: 'c690cc642a3924cf56622951f478ba57aec9ce09063761f800c3319331bed3fc' + openjfx-url: 'https://download2.gluonhq.com/openjfx/24.0.1/openjfx-24.0.1_osx-aarch64_bin-jmods.zip' + openjfx-sha: 'b5a94a13077507003fa852512bfa33f4fb680bc8076d8002e4227a84c85171d4' steps: - uses: actions/checkout@v4 - name: Setup Java @@ -116,7 +116,7 @@ jobs: --copyright "(C) 2016 - 2025 Skymatic GmbH" --app-version "${{ needs.get-version.outputs.semVerNum }}" --java-options "--enable-preview" - --java-options "--enable-native-access=org.cryptomator.jfuse.mac" + --java-options "--enable-native-access=javafx.graphics,org.cryptomator.jfuse.mac" --java-options "-Xss5m" --java-options "-Xmx256m" --java-options "-Dfile.encoding=\"utf-8\"" diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index da5b4b140..8bbce5a27 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -21,8 +21,8 @@ on: env: JAVA_DIST: 'zulu' JAVA_VERSION: '24.0.1+9' - OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/23.0.1/openjfx-23.0.1_windows-x64_bin-jmods.zip' - OPENJFX_JMODS_AMD64_HASH: 'ee176dcee3bd78bde7910735bd67f67c792882f5b89626796ae06f7a1c0119d3' + OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/24.0.1/openjfx-24.0.1_windows-x64_bin-jmods.zip' + OPENJFX_JMODS_AMD64_HASH: 'f13d17c7caf88654fc835f1b4e75a9b0f34a888eb8abef381796c0002e63b03f' WINFSP_MSI: 'https://github.com/winfsp/winfsp/releases/download/v2.0/winfsp-2.0.23075.msi' WINFSP_UNINSTALLER: 'https://github.com/cryptomator/winfsp-uninstaller/releases/latest/download/winfsp-uninstaller.exe' @@ -127,7 +127,7 @@ jobs: --copyright "(C) 2016 - 2025 Skymatic GmbH" --app-version "${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}" --java-options "--enable-preview" - --java-options "--enable-native-access=org.cryptomator.jfuse.win,org.cryptomator.integrations.win" + --java-options "--enable-native-access=javafx.graphics,org.cryptomator.jfuse.win,org.cryptomator.integrations.win" --java-options "-Xss5m" --java-options "-Xmx256m" --java-options "-Dcryptomator.appVersion=\"${{ needs.get-version.outputs.semVerStr }}\"" diff --git a/.idea/runConfigurations/Cryptomator_Linux.xml b/.idea/runConfigurations/Cryptomator_Linux.xml index 1a1b394b5..e9ecf3a50 100644 --- a/.idea/runConfigurations/Cryptomator_Linux.xml +++ b/.idea/runConfigurations/Cryptomator_Linux.xml @@ -2,7 +2,7 @@