mirror of
https://github.com/containers/podman.git
synced 2025-08-06 19:44:14 +08:00
Avoid rebooting on Windows when upgrading and WSL isn't installed
When building an installer from main branch, and using it to upgrade the latest Podman release on Windows, a reboot is triggered if WSL is not installed. This is a regression caused by an update of the condition to execute `ForceReboot`. This commit fixes the condition and updates some defaults to make it even more unlikely that reboot happens withtout a specific user request for it. It doesn't fix the v5.3.1 to v5.3.2 upgrade though. v5.3.1 has been released already and this commit doesn't avoid that it triggers a reboot when updated. Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
This commit is contained in:
@ -72,14 +72,14 @@
|
||||
<CustomAction Id="CheckHyperV" Execute="firstSequence" DllEntry="CheckHyperV" BinaryRef="PodmanHooks" />
|
||||
<util:BroadcastEnvironmentChange />
|
||||
<ComponentGroup Id="WSLFeature" Directory="INSTALLDIR">
|
||||
<Component Id="WSLFeatureComponent" Guid="F6A693BC-186C-4E64-8015-C3073013B3A8" Condition="(NOT WIX_UPGRADE_DETECTED) AND (WSL_INSTALL = 1)">
|
||||
<Component Id="WSLFeatureComponent" Guid="F6A693BC-186C-4E64-8015-C3073013B3A8" Condition="(NOT Installed) AND (WSL_INSTALL = 1)">
|
||||
<CreateFolder />
|
||||
<PanelSW:Dism EnableFeature="VirtualMachinePlatform" ErrorHandling="prompt" />
|
||||
<PanelSW:Dism EnableFeature="Microsoft-Windows-Subsystem-Linux" ErrorHandling="prompt" />
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
<ComponentGroup Id="HyperVFeature" Directory="INSTALLDIR">
|
||||
<Component Id="HyperVFeatureComponent" Guid="F7B2D4C9-6C89-46BB-B4EA-FF39424972F3" Condition="(NOT WIX_UPGRADE_DETECTED) AND (HYPERV_INSTALL = 1)">
|
||||
<Component Id="HyperVFeatureComponent" Guid="F7B2D4C9-6C89-46BB-B4EA-FF39424972F3" Condition="(NOT Installed) AND (HYPERV_INSTALL = 1)">
|
||||
<CreateFolder />
|
||||
<PanelSW:Dism EnableFeature="Microsoft-Hyper-V" ErrorHandling="prompt" />
|
||||
</Component>
|
||||
@ -110,13 +110,13 @@
|
||||
<WixVariable Id="WixUIDialogBmp" Value="resources\podman-dialog.png" />
|
||||
<UIRef Id="PodmanUI" />
|
||||
<UI>
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="OpenGuide" Condition="(WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1) AND (NOT WIX_UPGRADE_DETECTED)" />
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="OpenGuide" Condition="(WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1) AND (NOT Installed) AND (NOT UpdateStarted)" />
|
||||
</UI>
|
||||
|
||||
<InstallExecuteSequence>
|
||||
<Custom Action="CheckWSL" Before="SetWSL_INSTALL" />
|
||||
<Custom Action="CheckHyperV" Before="SetHYPERV_INSTALL" />
|
||||
<ForceReboot Before="StopServices" Condition="(NOT WIX_UPGRADE_DETECTED) AND (NOT BURNMSIUNINSTALL) AND ((WSL_INSTALL = 1) OR (HYPERV_INSTALL = 1)) AND (NOT AFTERREBOOT)" />
|
||||
<ForceReboot Before="StopServices" Condition="(NOT Installed) AND (NOT UpdateStarted) AND (NOT BURNMSIUNINSTALL) AND ((WSL_INSTALL = 1) OR (HYPERV_INSTALL = 1)) AND (NOT AFTERREBOOT)" />
|
||||
</InstallExecuteSequence>
|
||||
<Binary Id="PodmanHooks" SourceFile="artifacts/podman-msihooks.dll" />
|
||||
|
||||
|
@ -1,6 +1,11 @@
|
||||
#!/usr/bin/env pwsh
|
||||
|
||||
# Example usage:
|
||||
# Usage examples:
|
||||
#
|
||||
# 1) Build a v9.9.9 installer and run `update-without-user-chages`
|
||||
# scenario without specifying the previous setup exe (it will download from
|
||||
# GitHub):
|
||||
#
|
||||
# rm .\contrib\win-installer\*.log &&
|
||||
# rm .\contrib\win-installer\*.exe &&
|
||||
# rm .\contrib\win-installer\*.wixpdb &&
|
||||
@ -92,10 +97,10 @@ function Install-Podman-With-Defaults {
|
||||
$ret = Start-Process -Wait `
|
||||
-PassThru "$setupExePath" `
|
||||
-ArgumentList "/install /quiet `
|
||||
/log $PSScriptRoot\podman-setup.log"
|
||||
/log $PSScriptRoot\podman-setup-default.log"
|
||||
if ($ret.ExitCode -ne 0) {
|
||||
Write-Host "Install failed, dumping log"
|
||||
Get-Content $PSScriptRoot\podman-setup.log
|
||||
Get-Content $PSScriptRoot\podman-setup-default.log
|
||||
throw "Exit code is $($ret.ExitCode)"
|
||||
}
|
||||
Write-Host "Installation completed successfully!`n"
|
||||
|
Reference in New Issue
Block a user