diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index c80be8844..0d52b973c 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: @@ -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 @@ -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 -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 #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/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/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/debian.yml b/.github/workflows/debian.yml index 197aaf7dc..32944b0b2 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -17,9 +17,9 @@ on: env: JAVA_DIST: 'temurin' - JAVA_VERSION: '23.0.2+7' - COFFEELIBS_JDK: 23 - COFFEELIBS_JDK_VERSION: '23.0.2+7-0ppa1' + 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' @@ -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: 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/mac-dmg-x64.yml b/.github/workflows/mac-dmg-x64.yml index 8e0393e55..69c15a29e 100644 --- a/.github/workflows/mac-dmg-x64.yml +++ b/.github/workflows/mac-dmg-x64.yml @@ -24,7 +24,7 @@ on: env: JAVA_DIST: 'temurin' - JAVA_VERSION: '23.0.2+7' + JAVA_VERSION: '24.0.1+9' jobs: get-version: @@ -84,13 +84,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 -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 #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..115e7ccc1 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: @@ -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 -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 #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/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 diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index ed525a7f6..49bacc987 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' @@ -48,19 +48,24 @@ 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: | - 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) @@ -79,13 +84,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 -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 #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 @@ -261,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: @@ -293,29 +311,24 @@ 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 + working-directory: dist/win 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" + ./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: @@ -326,10 +339,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: 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/dist/linux/appimage/build.sh b/dist/linux/appimage/build.sh index e18054ae6..952c3bcd1 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 -q "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/linux/debian/control b/dist/linux/debian/control index 15626ba26..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-23 (>= 23.0.2+7-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 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 diff --git a/dist/mac/dmg/build.sh b/dist/mac/dmg/build.sh index e1bc3a125..ebf62749f 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 9864d6306..587324ab8 100644 --- a/dist/win/build.ps1 +++ b/dist/win/build.ps1 @@ -18,14 +18,32 @@ $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) +{ + 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) @@ -71,16 +89,22 @@ 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 -eq 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 ` --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)) { @@ -166,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" ` @@ -187,14 +217,18 @@ 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 -& "$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 BundleName="$AppName" ` + -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..1c9e7da20 100644 --- a/dist/win/bundle/bundleWithWinfsp.wxs +++ b/dist/win/bundle/bundleWithWinfsp.wxs @@ -1,66 +1,48 @@ - - - - - - - - + + + - + - - - - - - - + + + + + + - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + \ 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..0bf669420 --- /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) + + + + + + + + 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 diff --git a/pom.xml b/pom.xml index 9f212e239..5e4641944 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ UTF-8 - 23 + 24