Compare commits

..
8 changed files with 133 additions and 142 deletions
+9 -17
View File
@@ -83,7 +83,7 @@ jobs:
- arch: x64 - arch: x64
os: windows-latest os: windows-latest
java-dist: 'zulu' #cannot use temurin, see https://github.com/cryptomator/cryptomator/issues/3824#issuecomment-2829827427 java-dist: 'zulu' #cannot use temurin, see https://github.com/cryptomator/cryptomator/issues/3824#issuecomment-2829827427
java-version: '26.0.1+8' java-version: '25.0.1+8'
java-package: 'jdk' java-package: 'jdk'
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -220,10 +220,12 @@ jobs:
} }
$jar.Dispose() $jar.Dispose()
} }
- name: Get msi helper dll for code signing - name: Extract wixhelper.dll for Codesigning #see https://github.com/cryptomator/cryptomator/issues/3130
shell: pwsh
run: | run: |
${JAVA_HOME}/bin/jpackage --type msi --win-upgrade-uuid bda45523-42b1-4cae-9354-a45475ed4775 --app-image appdir/Cryptomator --dest /tmp/ --name Test --vendor Test --copyright "None" --app-version "1.0" --temp msi-helper New-Item -Path appdir/jpackage-jmod -ItemType Directory
find ./msi-helper/ -type f -name msica.dll -exec mv {} ./appdir \; & $env:JAVA_HOME\bin\jmod.exe extract --dir jpackage-jmod "${env:JAVA_HOME}\jmods\jdk.jpackage.jmod"
Get-ChildItem -Recurse -Path "jpackage-jmod" -File wixhelper.dll | Select-Object -Last 1 | Copy-Item -Destination "appdir"
- name: Sign DLLs with Azure Trusted Signing - name: Sign DLLs with Azure Trusted Signing
if: inputs.sign || github.event_name == 'schedule' if: inputs.sign || github.event_name == 'schedule'
uses: ./.github/actions/win-sign-action uses: ./.github/actions/win-sign-action
@@ -259,16 +261,6 @@ jobs:
"-Dlicense.failOnMissing=true" "-Dlicense.failOnMissing=true"
"-Dlicense.licenseMergesUrl=file:///${{ github.workspace }}/license/merges" "-Dlicense.licenseMergesUrl=file:///${{ github.workspace }}/license/merges"
shell: pwsh shell: pwsh
- name: Create file association file from template
working-directory: dist/win
run: |
$Env:JP_WIXWIZARD_RESOURCES_PROPERTIES_FORMAT = "${Env:JP_WIXWIZARD_RESOURCES}".Replace('\', '\\');
Get-Content .\resources\FAvaultFile.template.properties `
| ForEach-Object { $ExecutionContext.InvokeCommand.ExpandString($_) } `
| Out-File -FilePath .\resources\FAvaultFile.properties
env:
JP_WIXWIZARD_RESOURCES: ${{ github.workspace }}/dist/win/resources/ # requires abs path, used in resources/main.wxs
shell: pwsh
- name: Create MSI - name: Create MSI
run: > run: >
${JAVA_HOME}/bin/jpackage ${JAVA_HOME}/bin/jpackage
@@ -284,14 +276,14 @@ jobs:
--win-menu --win-menu
--win-dir-chooser --win-dir-chooser
--win-shortcut-prompt --win-shortcut-prompt
--win-update-url "https://cryptomator.org/downloads" --win-update-url "https:\\cryptomator.org\downloads"
--win-menu-group Cryptomator --win-menu-group Cryptomator
--resource-dir dist/win/resources --resource-dir dist/win/resources
--license-file dist/win/resources/license.rtf --license-file dist/win/resources/license.rtf
--file-associations dist/win/resources/FAvaultFile.properties --file-associations dist/win/resources/FAvaultFile.properties
env: env:
JP_WIXWIZARD_RESOURCES: ${{ github.workspace }}/dist/win/resources/ # requires abs path, used in resources/main.wxs JP_WIXWIZARD_RESOURCES: ${{ github.workspace }}/dist/win/resources # requires abs path, used in resources/main.wxs
JP_WIXHELPER_DIR: ${{ github.workspace }}\appdir\ JP_WIXHELPER_DIR: ${{ github.workspace }}\appdir
- name: Sign MSI with Azure Trusted Signing - name: Sign MSI with Azure Trusted Signing
if: inputs.sign || github.event_name == 'schedule' if: inputs.sign || github.event_name == 'schedule'
uses: ./.github/actions/win-sign-action uses: ./.github/actions/win-sign-action
+9 -13
View File
@@ -1,15 +1,11 @@
#!/bin/sh #!/bin/sh
# From: https://gitlab.gnome.org/GNOME/gnome-builder/-/blob/main/build-aux/flatpak/fusermount-wrapper.sh # based on https://gitlab.gnome.org/GNOME/gnome-builder/-/blob/main/build-aux/flatpak/fusermount-wrapper.sh
#
if [ -z "$_FUSE_COMMFD" ]; then # Sandbox escape hatch to call fusermount3 on the host system
FD_ARGS= #
else # * fusermount3 is required for mount and unmount
FD_ARGS="--env=_FUSE_COMMFD=${_FUSE_COMMFD} --forward-fd=${_FUSE_COMMFD}" # * FUSE3 requires for mounting a socket for communication, its file descriptor id is given in the _FUSE_COMMFD variable
fi # * Forwarding fd 1 and fd 2 ensures to catch process output of the fuse process
# * watch-bus ensures when the flatpak exits, also this process is killed
if [ -e /proc/self/fd/3 ] && [ 3 != "$_FUSE_COMMFD" ]; then exec flatpak-spawn --host --watch-bus --forward-fd=1 --forward-fd=2 --env=_FUSE_COMMFD=${_FUSE_COMMFD} --forward-fd=${_FUSE_COMMFD} fusermount3 "$@"
FD_ARGS="$FD_ARGS --forward-fd=3"
fi
exec flatpak-spawn --host --forward-fd=1 --forward-fd=2 $FD_ARGS fusermount3 "$@"
+64 -88
View File
@@ -16,19 +16,6 @@ Param(
# Function Definitions Section # Function Definitions Section
# ============================ # ============================
function Invoke-CommandWithExitCheck {
param (
[string]$Command,
[string[]]$Arguments
)
& $Command @Arguments
if ($LASTEXITCODE -ne 0) {
Write-Error "Command '$Command' failed with exit code $LASTEXITCODE"
exit $LASTEXITCODE
}
}
function Main { function Main {
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
@@ -78,8 +65,7 @@ Write-Host "`$Env:JAVA_HOME=$Env:JAVA_HOME"
$copyright = "(C) $CopyrightStartYear - $((Get-Date).Year) $Vendor" $copyright = "(C) $CopyrightStartYear - $((Get-Date).Year) $Vendor"
# compile # compile
Invoke-CommandWithExitCheck -Command ` &mvn -B -f $buildDir/../../pom.xml clean package -DskipTests -Pwin
"mvn" -Arguments @("-B", "-f", "$buildDir/../../pom.xml", "clean", "package", "-DskipTests", "-Pwin")
Copy-Item "$buildDir\..\..\target\$MainJarGlob.jar" -Destination "$buildDir\..\..\target\mods" Copy-Item "$buildDir\..\..\target\$MainJarGlob.jar" -Destination "$buildDir\..\..\target\mods"
# add runtime # add runtime
@@ -143,18 +129,16 @@ if ((& "$Env:JAVA_HOME\bin\jlink" --help | Select-String -Pattern "Linking from
} }
### create runtime ### create runtime
Invoke-CommandWithExitCheck -Command ` & "$Env:JAVA_HOME\bin\jlink" `
"$Env:JAVA_HOME\bin\jlink" -Arguments @( --verbose `
"--verbose", --output runtime `
"--output", "runtime", --module-path $jmodPaths `
"--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.cryptoki,jdk.crypto.ec,jdk.crypto.mscapi,java.compiler,javafx.base,javafx.graphics,javafx.controls,javafx.fxml `
"--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.cryptoki,jdk.crypto.ec,jdk.crypto.mscapi,java.compiler,javafx.base,javafx.graphics,javafx.controls,javafx.fxml", --strip-native-commands `
"--strip-native-commands", --no-header-files `
"--no-header-files", --no-man-pages `
"--no-man-pages", --strip-debug `
"--strip-debug", --compress "zip-0" #do not compress and use msi compression
"--compress", "zip-0" #do not compress and use msi compression
)
$appPath = ".\$AppName" $appPath = ".\$AppName"
if ($clean -and (Test-Path -Path $appPath)) { if ($clean -and (Test-Path -Path $appPath)) {
@@ -211,15 +195,14 @@ if ($LASTEXITCODE -ne 0) {
} }
#Create RTF license for msi #Create RTF license for msi
Invoke-CommandWithExitCheck -Command ` &mvn -B -f $buildDir/../../pom.xml license:add-third-party `
"mvn" -Arguments @("-B", "-f", "$buildDir/../../pom.xml", "license:add-third-party", ` "-Dlicense.thirdPartyFilename=license.rtf" `
"-Dlicense.thirdPartyFilename=license.rtf", ` "-Dlicense.fileTemplate=$buildDir\resources\licenseTemplate.ftl" `
"-Dlicense.fileTemplate=$buildDir\resources\licenseTemplate.ftl", ` "-Dlicense.outputDirectory=$buildDir\resources\" `
"-Dlicense.outputDirectory=$buildDir\resources\", ` "-Dlicense.includedScopes=compile" `
"-Dlicense.includedScopes=compile", ` "-Dlicense.excludedGroups=^org\.cryptomator" `
"-Dlicense.excludedGroups=^org\.cryptomator", ` "-Dlicense.failOnMissing=true" `
"-Dlicense.failOnMissing=true", ` "-Dlicense.licenseMergesUrl=file:///$buildDir/../../license/merges"
"-Dlicense.licenseMergesUrl=file:///$buildDir/../../license/merges")
# patch app dir # patch app dir
Copy-Item "contrib\*" -Destination "$AppName" Copy-Item "contrib\*" -Destination "$AppName"
@@ -227,46 +210,42 @@ attrib -r "$AppName\$AppName.exe"
attrib -r "$AppName\${AppName} (Debug).exe" attrib -r "$AppName\${AppName} (Debug).exe"
# create .msi # create .msi
$Env:JP_WIXWIZARD_RESOURCES = "$buildDir\resources\" $Env:JP_WIXWIZARD_RESOURCES = "$buildDir\resources"
$Env:JP_WIXWIZARD_RESOURCES_PROPERTIES_FORMAT = "${Env:JP_WIXWIZARD_RESOURCES}".Replace('\', '\\'); $Env:JP_WIXHELPER_DIR = "."
$Env:JP_WIXHELPER_DIR = "" & "$Env:JAVA_HOME\bin\jpackage" `
--verbose `
--type msi `
--win-upgrade-uuid $UpgradeUUID `
--app-image $AppName `
--dest installer `
--name $AppName `
--vendor $Vendor `
--copyright $copyright `
--app-version "$semVerNo.$revisionNo" `
--win-menu `
--win-dir-chooser `
--win-shortcut-prompt `
--win-menu-group $AppName `
--resource-dir resources `
--license-file resources/license.rtf `
--win-update-url $UpdateUrl `
--about-url $AboutUrl `
--file-associations resources/FAvaultFile.properties
Get-Content .\resources\FAvaultFile.template.properties ` # Similar to envsubst if ($LASTEXITCODE -ne 0) {
| ForEach-Object { $ExecutionContext.InvokeCommand.ExpandString($_) } ` Write-Error "jpackage MSI failed with exit code $LASTEXITCODE"
| Out-File -FilePath .\resources\FAvaultFile.properties return 1;
}
Invoke-CommandWithExitCheck -Command `
"$Env:JAVA_HOME\bin\jpackage" -Arguments @(
"--verbose",
"--type", "msi",
"--win-upgrade-uuid", $UpgradeUUID,
"--app-image", $AppName,
"--dest", "installer",
"--name", $AppName,
"--vendor", $Vendor,
"--copyright", $copyright,
"--app-version", "$semVerNo.$revisionNo",
"--win-menu",
"--win-dir-chooser",
"--win-shortcut-prompt",
"--win-menu-group", $AppName,
"--resource-dir", "resources",
"--license-file", "resources/license.rtf",
"--win-update-url", $UpdateUrl,
"--about-url", $AboutUrl,
"--file-associations", "resources/FAvaultFile.properties"
)
#Create RTF license for bundle #Create RTF license for bundle
Invoke-CommandWithExitCheck -Command ` &mvn -B -f $buildDir/../../pom.xml license:add-third-party `
"mvn" -Arguments @("-B", "-f", "$buildDir/../../pom.xml", "license:add-third-party", ` "-Dlicense.thirdPartyFilename=license.rtf" `
"-Dlicense.thirdPartyFilename=license.rtf", ` "-Dlicense.fileTemplate=$buildDir\bundle\resources\licenseTemplate.ftl" `
"-Dlicense.fileTemplate=$buildDir\bundle\resources\licenseTemplate.ftl", ` "-Dlicense.outputDirectory=$buildDir\bundle\resources\" `
"-Dlicense.outputDirectory=$buildDir\bundle\resources\", ` "-Dlicense.includedScopes=compile" `
"-Dlicense.includedScopes=compile", ` "-Dlicense.excludedGroups=^org\.cryptomator" `
"-Dlicense.excludedGroups=^org\.cryptomator", ` "-Dlicense.failOnMissing=true" `
"-Dlicense.failOnMissing=true", ` "-Dlicense.licenseMergesUrl=file:///$buildDir/../../license/merges"
"-Dlicense.licenseMergesUrl=file:///$buildDir/../../license/merges")
# download Winfsp # download Winfsp
$winfspMsiUrl= 'https://github.com/winfsp/winfsp/releases/download/v2.1/winfsp-2.1.25156.msi' $winfspMsiUrl= 'https://github.com/winfsp/winfsp/releases/download/v2.1/winfsp-2.1.25156.msi'
@@ -292,21 +271,18 @@ Invoke-WebRequest $winfspUninstaller -OutFile ".\bundle\resources\winfsp-uninsta
Copy-Item ".\installer\$AppName-*.msi" -Destination ".\bundle\resources\$AppName.msi" -Force Copy-Item ".\installer\$AppName-*.msi" -Destination ".\bundle\resources\$AppName.msi" -Force
# create bundle including winfsp # create bundle including winfsp
Invoke-CommandWithExitCheck -Command ` & wix build `
"wix" -Arguments @( -define BundleName="$AppName" `
"build", -define BundleVersion="$semVerNo.$revisionNo" `
"-define", "BundleName=$AppName", -define BundleVendor="$Vendor" `
"-define", "BundleVersion=$semVerNo.$revisionNo", -define BundleCopyright="$copyright" `
"-define", "BundleVendor=$Vendor", -define AboutUrl="$AboutUrl" `
"-define", "BundleCopyright=$copyright", -define HelpUrl="$HelpUrl" `
"-define", "AboutUrl=$AboutUrl", -define UpdateUrl="$UpdateUrl" `
"-define", "HelpUrl=$HelpUrl", -ext "WixToolset.Util.wixext" `
"-define", "UpdateUrl=$UpdateUrl", -ext "WixToolset.BootstrapperApplications.wixext" `
"-ext", "WixToolset.Util.wixext", .\bundle\bundleWithWinfsp.wxs `
"-ext", "WixToolset.BootstrapperApplications.wixext", -out "installer\$AppName-Installer.exe"
".\bundle\bundleWithWinfsp.wxs",
"-out", ".\installer\$AppName-Installer.exe"
)
Write-Host "Created EXE installer .\installer\$AppName-Installer.exe" Write-Host "Created EXE installer .\installer\$AppName-Installer.exe"
return 0; return 0;
+4 -1
View File
@@ -4,15 +4,18 @@
:: This file must be located in the INSTALLDIR :: This file must be located in the INSTALLDIR
set "LOOPBACK_ALIAS=%1" set "LOOPBACK_ALIAS=%1"
set "ACTION=%2"
if "%ACTION%"=="" set "ACTION=install"
:: Log for debugging :: Log for debugging
echo LOOPBACK_ALIAS=%LOOPBACK_ALIAS% echo LOOPBACK_ALIAS=%LOOPBACK_ALIAS%
echo ACTION=%ACTION%
:: Change to INSTALLDIR :: Change to INSTALLDIR
cd %~dp0 cd %~dp0
:: Execute the PowerShell script :: Execute the PowerShell script
powershell -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -File .\patchWebDAV.ps1^ powershell -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -File .\patchWebDAV.ps1^
-LoopbackAlias %LOOPBACK_ALIAS% -LoopbackAlias %LOOPBACK_ALIAS% -Action %ACTION%
:: Return the exit code from PowerShell :: Return the exit code from PowerShell
exit /b %ERRORLEVEL% exit /b %ERRORLEVEL%
+36 -11
View File
@@ -1,15 +1,17 @@
#Requires -RunAsAdministrator #Requires -RunAsAdministrator
Param( Param(
[Parameter(Mandatory, HelpMessage="Please provide an alias for 127.0.0.1")][string] $LoopbackAlias [Parameter(Mandatory, HelpMessage="Please provide an alias for 127.0.0.1")][string] $LoopbackAlias,
[string] $Action = "install"
) )
New-Variable -Name "sysdir" -Value ([Environment]::SystemDirectory) -Option Constant -Scope Global
New-Variable -Name "hostsFile" -Value "$sysdir\drivers\etc\hosts" -Option Constant -Scope Global
# Adds an alias for 127.0.0.1 to the hosts file # Adds an alias for 127.0.0.1 to the hosts file
function Add-AliasToHost { function Add-AliasToHost {
param ( param (
[string]$LoopbackAlias [string]$LoopbackAlias
) )
$sysdir = [Environment]::SystemDirectory
$hostsFile = "$sysdir\drivers\etc\hosts"
$aliasLine = "127.0.0.1 $LoopbackAlias" $aliasLine = "127.0.0.1 $LoopbackAlias"
foreach ($line in Get-Content $hostsFile) { foreach ($line in Get-Content $hostsFile) {
@@ -18,9 +20,26 @@ function Add-AliasToHost {
} }
} }
Add-Content -Path $hostsFile -Encoding ascii -Value "`r`n$aliasLine" $content = Get-Content $hostsFile
$content += "`r`n$aliasLine"
$content | Set-Content "$hostsFile.tmp" -Encoding ascii
Move-Item "$hostsFile.tmp" $hostsFile -Force
} }
# Removes an alias for 127.0.0.1 from the hosts file
function Remove-AliasFromHost {
param (
[string]$LoopbackAlias
)
$aliasLine = "127.0.0.1 $LoopbackAlias"
$content = Get-Content $hostsFile
$newContent = $content | Where-Object { $_ -ne $aliasLine }
$newContent | Set-Content "$hostsFile.tmp" -Encoding ascii
Move-Item "$hostsFile.tmp" $hostsFile -Force
}
# Sets in the registry the webclient file size limit to the maximum value # Sets in the registry the webclient file size limit to the maximum value
function Set-WebDAVFileSizeLimit { function Set-WebDAVFileSizeLimit {
@@ -54,14 +73,20 @@ function Edit-ProviderOrder {
New-ItemProperty -Path $RegistryPath -Name $Name -Value $UpdatedOrder -PropertyType String -Force | Out-Null New-ItemProperty -Path $RegistryPath -Name $Name -Value $UpdatedOrder -PropertyType String -Force | Out-Null
} }
if ($Action -eq "install") {
Add-AliasToHost $LoopbackAlias
Write-Output 'Ensured alias exists in hosts file'
Add-AliasToHost $LoopbackAlias Set-WebDAVFileSizeLimit
Write-Output 'Ensured alias exists in hosts file' Write-Output 'Set WebDAV file size limit'
Set-WebDAVFileSizeLimit Edit-ProviderOrder
Write-Output 'Set WebDAV file size limit' Write-Output 'Ensured correct provider order'
} elseif ($Action -eq "uninstall") {
Edit-ProviderOrder Remove-AliasFromHost $LoopbackAlias
Write-Output 'Ensured correct provider order' Write-Output 'Ensured alias removed from hosts file'
} else {
Write-Error "Invalid action: $Action. Only 'install' or 'uninstall' are valid."
}
exit 0 exit 0
+1 -1
View File
@@ -1,4 +1,4 @@
mime-type=application/vnd.cryptomator.vault mime-type=application/vnd.cryptomator.vault
extension=cryptomator extension=cryptomator
description=Cryptomator Vault File description=Cryptomator Vault File
icon=C:\\Users\\Arbeit\\Skymatic\\cryptomator-jdk26-jpackage\\dist\\win\\resources\\Cryptomator-Vault.ico icon=resources/Cryptomator-Vault.ico
-4
View File
@@ -1,4 +0,0 @@
mime-type=application/vnd.cryptomator.vault
extension=cryptomator
description=Cryptomator Vault File
icon=${env:JP_WIXWIZARD_RESOURCES_PROPERTIES_FORMAT}Cryptomator-Vault.ico
+9 -6
View File
@@ -68,7 +68,7 @@
<?endif?> <?endif?>
<!-- TODO: how does this work again? --> <!-- TODO: how does this work again? -->
<ns0:Binary Id="JpCaDll" SourceFile="$(env.JP_WIXHELPER_DIR)msica.dll"></ns0:Binary> <ns0:Binary Id="JpCaDll" SourceFile="$(env.JP_WIXHELPER_DIR)\wixhelper.dll" />
<ns0:CustomAction Id="JpFindRelatedProducts" BinaryRef="JpCaDll" DllEntry="FindRelatedProductsEx" /> <ns0:CustomAction Id="JpFindRelatedProducts" BinaryRef="JpCaDll" DllEntry="FindRelatedProductsEx" />
<?ifndef SkipCryptomatorLegacyCheck ?> <?ifndef SkipCryptomatorLegacyCheck ?>
@@ -158,9 +158,13 @@
<ns0:CustomAction Id="DisableUserConfig" BinaryRef="Wix4UtilCA_$(sys.BUILDARCHSHORT)" DllEntry="WixQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/> <ns0:CustomAction Id="DisableUserConfig" BinaryRef="Wix4UtilCA_$(sys.BUILDARCHSHORT)" DllEntry="WixQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
<!-- WebDAV patches --> <!-- WebDAV patches -->
<ns0:SetProperty Id="PatchWebDAV" Value="&quot;[INSTALLDIR]patchWebDAV.bat&quot; &quot;$(var.LoopbackAlias)&quot;" Sequence="execute" Before="PatchWebDAV" /> <ns0:SetProperty Id="PatchWebDAV" Value="&quot;[INSTALLDIR]patchWebDAV.bat&quot; &quot;$(var.LoopbackAlias)&quot; install" Sequence="execute" Before="PatchWebDAV" />
<ns0:CustomAction Id="PatchWebDAV" BinaryRef="Wix4UtilCA_$(sys.BUILDARCHSHORT)" DllEntry="WixQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/> <ns0:CustomAction Id="PatchWebDAV" BinaryRef="Wix4UtilCA_$(sys.BUILDARCHSHORT)" DllEntry="WixQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
<!-- WebDAV patches (Uninstall) -->
<ns0:SetProperty Id="PatchWebDAVUninstall" Value="&quot;[INSTALLDIR]patchWebDAV.bat&quot; &quot;$(var.LoopbackAlias)&quot; uninstall" Sequence="execute" Before="PatchWebDAVUninstall" />
<ns0:CustomAction Id="PatchWebDAVUninstall" BinaryRef="Wix4UtilCA_$(sys.BUILDARCHSHORT)" DllEntry="WixQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
<!-- Update check configuration --> <!-- Update check configuration -->
<ns0:SetProperty Id="PatchUpdateCheck" Value="&quot;[INSTALLDIR]patchUpdateCheck.bat&quot; &quot;[DISABLEUPDATECHECK]&quot;" Sequence="execute" Before="PatchUpdateCheck" /> <ns0:SetProperty Id="PatchUpdateCheck" Value="&quot;[INSTALLDIR]patchUpdateCheck.bat&quot; &quot;[DISABLEUPDATECHECK]&quot;" Sequence="execute" Before="PatchUpdateCheck" />
<ns0:CustomAction Id="PatchUpdateCheck" BinaryRef="Wix4UtilCA_$(sys.BUILDARCHSHORT)" DllEntry="WixQuietExec64" Execute="deferred" Return="ignore" Impersonate="no"/> <ns0:CustomAction Id="PatchUpdateCheck" BinaryRef="Wix4UtilCA_$(sys.BUILDARCHSHORT)" DllEntry="WixQuietExec64" Execute="deferred" Return="ignore" Impersonate="no"/>
@@ -214,9 +218,8 @@
<ns0:RemoveExistingProducts After="InstallValidate"/> <!-- Moved from CostInitialize, due to Wix4CloseApplications_* --> <ns0:RemoveExistingProducts After="InstallValidate"/> <!-- Moved from CostInitialize, due to Wix4CloseApplications_* -->
<ns0:Custom Action="DisableUserConfig" After="InstallFiles" Condition="NOT (Installed AND (NOT REINSTALL) AND (NOT UPGRADINGPRODUCTCODE) AND REMOVE)"/> <ns0:Custom Action="DisableUserConfig" After="InstallFiles" Condition="NOT (Installed AND (NOT REINSTALL) AND (NOT UPGRADINGPRODUCTCODE) AND REMOVE)"/>
<!-- Skip action on uninstall -->
<!-- TODO: don't skip action, but remove cryptomator alias from hosts file -->
<ns0:Custom Action="PatchWebDAV" After="DisableUserConfig" Condition="NOT (Installed AND (NOT REINSTALL) AND (NOT UPGRADINGPRODUCTCODE) AND REMOVE)"/> <ns0:Custom Action="PatchWebDAV" After="DisableUserConfig" Condition="NOT (Installed AND (NOT REINSTALL) AND (NOT UPGRADINGPRODUCTCODE) AND REMOVE)"/>
<ns0:Custom Action="PatchWebDAVUninstall" Before="RemoveFiles" Condition="Installed AND (NOT REINSTALL) AND (NOT UPGRADINGPRODUCTCODE) AND REMOVE" />
<!-- Configure update check setting if property is provided --> <!-- Configure update check setting if property is provided -->
<ns0:Custom Action="PatchUpdateCheck" After="PatchWebDAV" Condition="DISABLEUPDATECHECK AND NOT (Installed AND (NOT REINSTALL) AND (NOT UPGRADINGPRODUCTCODE) AND REMOVE)"/> <ns0:Custom Action="PatchUpdateCheck" After="PatchWebDAV" Condition="DISABLEUPDATECHECK AND NOT (Installed AND (NOT REINSTALL) AND (NOT UPGRADINGPRODUCTCODE) AND REMOVE)"/>
</ns0:InstallExecuteSequence> </ns0:InstallExecuteSequence>
@@ -225,7 +228,7 @@
<ns0:Custom Action="JpFindRelatedProducts" After="FindRelatedProducts"/> <ns0:Custom Action="JpFindRelatedProducts" After="FindRelatedProducts"/>
</ns0:InstallUISequence> </ns0:InstallUISequence>
<ns0:WixVariable Id="WixUIBannerBmp" Value="$(env.JP_WIXWIZARD_RESOURCES)banner.bmp" /> <ns0:WixVariable Id="WixUIBannerBmp" Value="$(env.JP_WIXWIZARD_RESOURCES)\banner.bmp" />
<ns0:WixVariable Id="WixUIDialogBmp" Value="$(env.JP_WIXWIZARD_RESOURCES)background.bmp" /> <ns0:WixVariable Id="WixUIDialogBmp" Value="$(env.JP_WIXWIZARD_RESOURCES)\background.bmp" />
</ns0:Package> </ns0:Package>
</ns0:Wix> </ns0:Wix>