diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml
index 5d0dc2d5b..6ae61a2b2 100644
--- a/.github/workflows/appimage.yml
+++ b/.github/workflows/appimage.yml
@@ -68,7 +68,7 @@ jobs:
- name: Set version
run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }}
- name: Run maven
- run: mvn -B clean package -Plinux -DskipTests
+ run: mvn -B clean package -Plinux -DskipTests -Djavafx.platform=linux
- name: Patch target dir
run: |
cp LICENSE.txt target
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c38bb49e3..7e86b61ea 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -33,7 +33,7 @@ jobs:
- name: Build and Test
run: >
xvfb-run
- mvn -B verify
+ mvn -B verify -Djavafx.platform=linux
jacoco:report
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Pcoverage
diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml
index 9c220843b..f5ce875d9 100644
--- a/.github/workflows/debian.yml
+++ b/.github/workflows/debian.yml
@@ -53,7 +53,7 @@ jobs:
check-latest: true
cache: 'maven'
- name: Run maven
- run: mvn -B clean package -Plinux -DskipTests
+ run: mvn -B clean package -Plinux -Djavafx.platform=linux -DskipTests
- name: Download OpenJFX jmods
id: download-jmods
run: |
diff --git a/.github/workflows/dependency-check.yml b/.github/workflows/dependency-check.yml
index 02633a334..40dfe97fa 100644
--- a/.github/workflows/dependency-check.yml
+++ b/.github/workflows/dependency-check.yml
@@ -12,6 +12,7 @@ jobs:
runner-os: 'ubuntu-latest'
java-distribution: 'temurin'
java-version: 22
+ check-command: 'mvn -B validate -Pdependency-check -Djavafx.platform=linux'
secrets:
nvd-api-key: ${{ secrets.NVD_API_KEY }}
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml
index 7e6bde81b..40d6c8497 100644
--- a/.github/workflows/mac-dmg.yml
+++ b/.github/workflows/mac-dmg.yml
@@ -79,7 +79,7 @@ jobs:
- name: Set version
run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }}
- name: Run maven
- run: mvn -B clean package -Pmac -DskipTests
+ run: mvn -B -Djavafx.platform=mac clean package -Pmac -DskipTests
- name: Patch target dir
run: |
cp LICENSE.txt target
@@ -142,7 +142,7 @@ jobs:
REVISION_NO: ${{ needs.get-version.outputs.revNum }}
- name: Generate license for dmg
run: >
- mvn -B license:add-third-party
+ mvn -B -Djavafx.platform=mac license:add-third-party
-Dlicense.thirdPartyFilename=license.rtf
-Dlicense.outputDirectory=dist/mac/dmg/resources
-Dlicense.fileTemplate=dist/mac/dmg/resources/licenseTemplate.ftl
diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml
index 4db444da5..e6512a52e 100644
--- a/.github/workflows/pullrequest.yml
+++ b/.github/workflows/pullrequest.yml
@@ -24,4 +24,4 @@ jobs:
java-version: ${{ env.JAVA_VERSION }}
cache: 'maven'
- name: Build and Test
- run: xvfb-run mvn -B clean install jacoco:report -Pcoverage
\ No newline at end of file
+ run: xvfb-run mvn -B clean install jacoco:report -Pcoverage -Djavafx.platform=linux
\ No newline at end of file
diff --git a/.github/workflows/release-check.yml b/.github/workflows/release-check.yml
index 160da33e9..0454dc08d 100644
--- a/.github/workflows/release-check.yml
+++ b/.github/workflows/release-check.yml
@@ -60,6 +60,6 @@ jobs:
- name: Run org.owasp:dependency-check plugin
id: dependency-check
continue-on-error: true
- run: mvn -B verify -Pdependency-check -DskipTests
+ run: mvn -B verify -Pdependency-check -DskipTests -Djavafx.platform=linux
env:
NVD_API_KEY: ${{ secrets.NVD_API_KEY }}
\ No newline at end of file
diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml
index b6abcf0ec..bf14d3448 100644
--- a/.github/workflows/win-exe.yml
+++ b/.github/workflows/win-exe.yml
@@ -77,7 +77,7 @@ jobs:
- name: Set version
run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }}
- name: Run maven
- run: mvn -B clean package -Pwin -DskipTests
+ run: mvn -B clean package -Pwin -DskipTests -Djavafx.platform=win
- name: Patch target dir
run: |
cp LICENSE.txt target
@@ -199,7 +199,7 @@ jobs:
}
- name: Generate license for MSI
run: >
- mvn -B license:add-third-party
+ mvn -B license:add-third-party -Djavafx.platform=win
"-Dlicense.thirdPartyFilename=license.rtf"
"-Dlicense.outputDirectory=dist/win/resources"
"-Dlicense.fileTemplate=dist/win/resources/licenseTemplate.ftl"
@@ -279,7 +279,7 @@ jobs:
cache: 'maven'
- name: Generate license for exe
run: >
- mvn -B license:add-third-party
+ mvn -B license:add-third-party -Djavafx.platform=win
"-Dlicense.thirdPartyFilename=license.rtf"
"-Dlicense.fileTemplate=dist/win/bundle/resources/licenseTemplate.ftl"
"-Dlicense.outputDirectory=dist/win/bundle/resources"
diff --git a/dist/linux/appimage/.gitignore b/dist/linux/appimage/.gitignore
index 1ed40c771..3e0cd2a39 100644
--- a/dist/linux/appimage/.gitignore
+++ b/dist/linux/appimage/.gitignore
@@ -1,4 +1,6 @@
-# created during build
+# downloaded/created during build
+openjfx-jmods.zip
+*.jmod
Cryptomator.AppDir
*.AppImage
*.AppImage.zsync
\ No newline at end of file
diff --git a/dist/linux/appimage/build.sh b/dist/linux/appimage/build.sh
index 091e66c00..1adfdc010 100755
--- a/dist/linux/appimage/build.sh
+++ b/dist/linux/appimage/build.sh
@@ -19,7 +19,7 @@ if [[ ! "${MACHINE_TYPE}" =~ x86_64|aarch64 ]]; then echo "Platform ${MACHINE_TY
mvn -f ../../../pom.xml versions:set -DnewVersion=${SEMVER_STR}
# compile
-mvn -B -f ../../../pom.xml clean package -Plinux -DskipTests
+mvn -B -f ../../../pom.xml clean package -Plinux -DskipTests -Djavafx.platform=linux
cp ../../../LICENSE.txt ../../../target
cp ../../../target/cryptomator-*.jar ../../../target/mods
diff --git a/dist/mac/dmg/.gitignore b/dist/mac/dmg/.gitignore
index cdc73d89b..ebc5e2c5e 100644
--- a/dist/mac/dmg/.gitignore
+++ b/dist/mac/dmg/.gitignore
@@ -1,6 +1,8 @@
-# created during build
+# downloaded/created during build
Cryptomator.app/
runtime/
dmg/
*.dmg
-license.rtf
\ No newline at end of file
+license.rtf
+openjfx-jmods.zip
+*.jmod
\ No newline at end of file
diff --git a/dist/mac/dmg/build.sh b/dist/mac/dmg/build.sh
index ce2380289..11375cddb 100755
--- a/dist/mac/dmg/build.sh
+++ b/dist/mac/dmg/build.sh
@@ -63,7 +63,7 @@ if [ "${POM_JFX_VERSION}" -ne "${JMOD_VERSION}" ]; then
fi
# compile
-mvn -B -f../../../pom.xml clean package -DskipTests -Pmac
+mvn -B -Djavafx.platform=mac -f../../../pom.xml clean package -DskipTests -Pmac
cp ../../../LICENSE.txt ../../../target
cp ../../../target/${MAIN_JAR_GLOB} ../../../target/mods
@@ -118,7 +118,7 @@ sed -i '' "s|###BUNDLE_SHORT_VERSION_STRING###|${VERSION_NO}|g" ${APP_NAME}.app/
sed -i '' "s|###BUNDLE_VERSION###|${REVISION_NO}|g" ${APP_NAME}.app/Contents/Info.plist
# generate license
-mvn -B -f../../../pom.xml license:add-third-party \
+mvn -B -Djavafx.platform=mac -f../../../pom.xml license:add-third-party \
-Dlicense.thirdPartyFilename=license.rtf \
-Dlicense.outputDirectory=dist/mac/dmg/resources \
-Dlicense.fileTemplate=resources/licenseTemplate.ftl \
diff --git a/dist/win/.gitignore b/dist/win/.gitignore
index 32316fd59..7b2faa4b5 100644
--- a/dist/win/.gitignore
+++ b/dist/win/.gitignore
@@ -6,4 +6,5 @@ installer
*.msi
*.exe
*.jmod
+resources/jfxJmods.zip
license.rtf
\ No newline at end of file
diff --git a/dist/win/build.ps1 b/dist/win/build.ps1
index 117c0afb8..18b243121 100644
--- a/dist/win/build.ps1
+++ b/dist/win/build.ps1
@@ -41,7 +41,7 @@ Write-Output "`$Env:JAVA_HOME=$Env:JAVA_HOME"
$copyright = "(C) $CopyrightStartYear - $((Get-Date).Year) $Vendor"
# compile
-&mvn -B -f $buildDir/../../pom.xml clean package -DskipTests -Pwin
+&mvn -B -f $buildDir/../../pom.xml clean package -DskipTests -Pwin -Djavafx.platform=win
Copy-Item "$buildDir\..\..\target\$MainJarGlob.jar" -Destination "$buildDir\..\..\target\mods"
# add runtime
@@ -121,7 +121,7 @@ if ($clean -and (Test-Path -Path $appPath)) {
--icon resources/$AppName.ico
#Create RTF license for msi
-&mvn -B -f $buildDir/../../pom.xml license:add-third-party `
+&mvn -B -f $buildDir/../../pom.xml license:add-third-party -Djavafx.platform=win `
"-Dlicense.thirdPartyFilename=license.rtf" `
"-Dlicense.fileTemplate=$buildDir\resources\licenseTemplate.ftl" `
"-Dlicense.outputDirectory=$buildDir\resources\" `
@@ -166,7 +166,7 @@ $Env:JP_WIXHELPER_DIR = "."
--file-associations resources/FAvaultFile.properties
#Create RTF license for bundle
-&mvn -B -f $buildDir/../../pom.xml license:add-third-party `
+&mvn -B -f $buildDir/../../pom.xml license:add-third-party -Djavafx.platform=win `
"-Dlicense.thirdPartyFilename=license.rtf" `
"-Dlicense.fileTemplate=$buildDir\bundle\resources\licenseTemplate.ftl" `
"-Dlicense.outputDirectory=$buildDir\bundle\resources\" `
diff --git a/dist/win/contrib/version170-migrate-settings.bat b/dist/win/contrib/version170-migrate-settings.bat
deleted file mode 100644
index d94e062a1..000000000
--- a/dist/win/contrib/version170-migrate-settings.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-:: see comments in file ./version170-migrate-settings.ps1
-
-cd %~dp0
-powershell -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command .\version170-migrate-settings.ps1
diff --git a/dist/win/contrib/version170-migrate-settings.ps1 b/dist/win/contrib/version170-migrate-settings.ps1
deleted file mode 100644
index 8e019fe66..000000000
--- a/dist/win/contrib/version170-migrate-settings.ps1
+++ /dev/null
@@ -1,35 +0,0 @@
-# This script migrates Cryptomator settings for all local users on Windows in case the users uses custom directories as mountpoint
-# See also https://github.com/cryptomator/cryptomator/pull/2654.
-#
-# TODO: This script should be evaluated in a yearly interval if it is still needed and if not, should be removed
-#
-#Requires -RunAsAdministrator
-
-#Get all active, local user profiles
-$profileList = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList'
-Get-ChildItem $profileList | ForEach-Object {
- $profilePath = $_.GetValue("ProfileImagePath")
- $settingsPath = "$profilePath\AppData\Roaming\Cryptomator\settings.json"
- if(!(Test-Path -Path $settingsPath -PathType Leaf)) {
- #No settings file, nothing to do.
- return;
- }
- $settings = Get-Content -Path $settingsPath | ConvertFrom-Json
- if($settings.preferredVolumeImpl -ne "FUSE") {
- #Fuse not used, nothing to do
- return;
- }
-
- #check if customMountPoints are used
- $atLeastOneCustomPath = $false;
- foreach ($vault in $settings.directories){
- $atLeastOneCustomPath = $atLeastOneCustomPath -or ($vault.useCustomMountPath -eq "True")
- }
-
- #if so, use WinFsp Local Drive
- if( $atLeastOneCustomPath ) {
- Add-Member -Force -InputObject $settings -Name "mountService" -Value "org.cryptomator.frontend.fuse.mount.WinFspMountProvider" -MemberType NoteProperty
- $newSettings = $settings | Select-Object * -ExcludeProperty "preferredVolumeImpl"
- ConvertTo-Json $newSettings | Set-Content -Path $settingsPath
- }
-}
diff --git a/dist/win/resources/main.wxs b/dist/win/resources/main.wxs
index 2fe2eb348..335dd3511 100644
--- a/dist/win/resources/main.wxs
+++ b/dist/win/resources/main.wxs
@@ -139,11 +139,6 @@
Sequence="execute" Before="PatchWebDAV" />
-
-
-
-
NOT Installed OR REINSTALL
- NOT Installed OR REINSTALL
diff --git a/pom.xml b/pom.xml
index 2771115f2..e9cb5cc7c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,17 +43,17 @@
3.14.0
- 2.51
+ 2.51.1
2.2
- 33.0.0-jre
- 2.16.2
+ 33.2.1-jre
+ 2.17.1
21.0.1
4.4.0
9.37.3
- 1.5.3
- 2.0.12
+ 1.5.6
+ 2.0.13
0.8.0
- 1.8.2
+ 1.9.0
5.10.2
@@ -62,7 +62,7 @@
24.1.0
- 9.1.0
+ 9.2.0
0.8.12
2.4.0
1.2.1
@@ -70,7 +70,7 @@
3.3.1
3.6.1
3.2.5
- 3.3.0
+ 3.4.1
diff --git a/src/main/java/org/cryptomator/common/SubstitutingProperties.java b/src/main/java/org/cryptomator/common/SubstitutingProperties.java
index 8ba98a2b6..0536e3554 100644
--- a/src/main/java/org/cryptomator/common/SubstitutingProperties.java
+++ b/src/main/java/org/cryptomator/common/SubstitutingProperties.java
@@ -5,6 +5,7 @@ import org.slf4j.LoggerFactory;
import java.util.Map;
import java.util.Properties;
+import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SubstitutingProperties extends PropertiesDecorator {
@@ -58,7 +59,7 @@ public class SubstitutingProperties extends PropertiesDecorator {
LoggerFactory.getLogger(SubstitutingProperties.class).warn("Variable {} used for substitution not found in {}. Replaced with empty string.", key, src);
return "";
} else {
- return val.replace("\\", "\\\\");
+ return Matcher.quoteReplacement(val);
}
}