mirror of
https://github.com/containers/podman.git
synced 2025-07-04 10:10:32 +08:00
Windows Installer: switch to wix5
The chocolatey tool that was fetching us wix v3 can no longer be used to fetch wix v4+ so we had to switch to dotnet to fetch the latest wix. This commit builds the installer with wix v5. wix v5 is installed via the `dotnet` tool in the windows image itself at https://github.com/containers/automation_images/pull/354. Going forward, the `dotnet` tool will also be used to build the installer. In the process, the wix v3 files were converted to wix v4+ using `wix convert` followed by manual modifications along with switch to wixproj builds with dotnet. The GitHub Action to upload windows installer now builds the installer using winmake.ps1. Contributions from Mario Loriedo: - bundle setup update to wix5 - updates to build and release process scripts Ref: https://github.com/lsm5/podman/pull/3 - small fixes to windows installer theme Ref: https://github.com/lsm5/podman/pull/4 - Better win-installer sidebar logo Ref: https://github.com/lsm5/podman/pull/5 Resolves: RUN-2055 Co-authored-by: Mario Loriedo <mario.loriedo@gmail.com> Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
This commit is contained in:
@ -33,7 +33,7 @@ env:
|
||||
DEBIAN_NAME: "debian-13"
|
||||
|
||||
# Image identifiers
|
||||
IMAGE_SUFFIX: "c20240701t155130z-f40f39d13"
|
||||
IMAGE_SUFFIX: "c20240702t180702z-f40f39d13"
|
||||
|
||||
# EC2 images
|
||||
FEDORA_AMI: "fedora-aws-${IMAGE_SUFFIX}"
|
||||
|
31
.github/workflows/upload-win-installer.yml
vendored
31
.github/workflows/upload-win-installer.yml
vendored
@ -78,17 +78,20 @@ jobs:
|
||||
# The podman release process requires a cross-compile of the windows binaries be uploaded to
|
||||
# the release page as a hard-coded filename. If non-existent, this workflow will fail in
|
||||
# non-obvious ways with a non-obvious error message. Address that here.
|
||||
- name: Confirm upload_asset_name is non-empty
|
||||
if: ${{ steps.check.outputs.upload_asset_name == '' }}
|
||||
run: |
|
||||
Write-Output "::error::check.ps1 script failed to find manually uploaded podman-remote-release-windows_amd64.zip github release asset for version ${{steps.getversion.outputs.version}}."
|
||||
Exit 1
|
||||
# TODO: Remove this in a future PR once verified to not cause artifact issues
|
||||
#- name: Confirm upload_asset_name is non-empty
|
||||
# if: steps.check.outputs.upload_asset_name == '' && github.event_name != 'pull_request'
|
||||
# run: |
|
||||
# Write-Output "::error::check.ps1 script failed to find manually uploaded podman-remote-release-windows_amd64.zip github release asset for version ${{steps.getversion.outputs.version}}."
|
||||
# Exit 1
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
# N/B: already-exists may be an empty-string or "false", handle both cases.
|
||||
if: steps.check.outputs.already-exists != 'true' || steps.actual_dryrun.outputs.dryrun == 'true'
|
||||
with:
|
||||
go-version: stable
|
||||
- name: Set up WiX
|
||||
run: dotnet tool install --global wix
|
||||
- name: Setup Signature Tooling
|
||||
if: steps.Check.outputs.already-exists != 'true' || steps.actual_dryrun.outputs.dryrun == 'true'
|
||||
run: |
|
||||
@ -98,20 +101,18 @@ jobs:
|
||||
echo "APP_ID=${{secrets.AZ_APP_ID}}" | Out-File -FilePath $env:GITHUB_ENV -Append
|
||||
echo "TENANT_ID=${{secrets.AZ_TENANT_ID}}" | Out-File -FilePath $env:GITHUB_ENV -Append
|
||||
echo "CLIENT_SECRET=${{secrets.AZ_CLIENT_SECRET}}" | Out-File -FilePath $env:GITHUB_ENV -Append
|
||||
- name: Pandoc Setup
|
||||
uses: r-lib/actions/setup-pandoc@v2
|
||||
with:
|
||||
pandoc-version: '3.1.11'
|
||||
- name: Build
|
||||
id: build
|
||||
if: steps.check.outputs.already-exists != 'true' || steps.actual_dryrun.outputs.dryrun == 'true'
|
||||
run: |
|
||||
Push-Location contrib\win-installer
|
||||
.\build.ps1 ${{steps.getversion.outputs.version}} prod
|
||||
$code = $LASTEXITCODE
|
||||
if ($code -eq 2) {
|
||||
Write-Output "artifact-missing=true" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
|
||||
Pop-Location
|
||||
Exit 0
|
||||
}
|
||||
Pop-Location
|
||||
Exit $code
|
||||
.\winmake.ps1 podman
|
||||
.\winmake.ps1 win-gvproxy
|
||||
.\winmake.ps1 docs
|
||||
.\winmake.ps1 installer
|
||||
- name: Artifact
|
||||
if: steps.check.outputs.already-exists != 'true' || steps.actual_dryrun.outputs.dryrun == 'true'
|
||||
uses: actions/upload-artifact@v4
|
||||
|
7
.gitignore
vendored
7
.gitignore
vendored
@ -35,6 +35,7 @@ release.txt
|
||||
/test/copyimg/copyimg
|
||||
/test/goecho/goecho
|
||||
/test/version/version
|
||||
/test/version/version.exe
|
||||
/test/testvol/testvol
|
||||
/test/tools/build
|
||||
/test/e2e/ginkgo-node-*
|
||||
@ -45,12 +46,14 @@ result
|
||||
/*runner_stats.log
|
||||
.generate-bindings
|
||||
contrib/win-installer/artifacts/
|
||||
contrib/win-installer/current/
|
||||
contrib/win-installer/docs/
|
||||
contrib/win-installer/en-US/
|
||||
contrib/win-installer/fetch/
|
||||
contrib/win-installer/podman.msi
|
||||
contrib/win-installer/podman-*setup.exe
|
||||
contrib/win-installer/engine.exe
|
||||
contrib/win-installer/obj/
|
||||
contrib/win-installer/shasums
|
||||
contrib/win-installer/pages.wxs
|
||||
contrib/win-installer/*.wixobj
|
||||
contrib/win-installer/*.wixpdb
|
||||
contrib/win-installer/*.log
|
||||
|
@ -10,7 +10,7 @@ Windows.
|
||||
- [OS requirements](#os-requirements)
|
||||
- [Git and go](#git-and-go)
|
||||
- [Pandoc](#pandoc)
|
||||
- [WiX Toolset v3](#wix-toolset-v3)
|
||||
- [.NET SDK](#net-sdk)
|
||||
- [Virtualization Provider](#virtualization-provider)
|
||||
- [WSL](#wsl)
|
||||
- [Hyper-V](#hyper-v)
|
||||
@ -70,14 +70,22 @@ Pandoc can be installed from https://pandoc.org/installing.html. When performing
|
||||
the Pandoc installation one, has to choose the option "Install for all users"
|
||||
(to put the binaries into "Program Files" directory).
|
||||
|
||||
### WiX Toolset v3
|
||||
### .NET SDK
|
||||
|
||||
[WiX Toolset](https://wixtoolset.org) **v3** is used to develop and build the
|
||||
Podman Windows installer. It's not required for the Podman Windows client.
|
||||
Version 3 of the WiX Toolset can be obtained from
|
||||
https://wixtoolset.org/docs/wix3/. Installing it into a clean VM might require
|
||||
an additional installation of .NET Framework 3.5 in advance
|
||||
([instructions for adding .NET Framework 3.5 via enabling the Windows feature](https://learn.microsoft.com/en-us/dotnet/framework/install/dotnet-35-windows#enable-the-net-framework-35-in-control-panel))
|
||||
[.NET SDK](https://learn.microsoft.com/en-us/dotnet/core/sdk), version 6 or
|
||||
later, is required to develop and build the Podman Windows installer. It's not
|
||||
required for the Podman Windows client.
|
||||
|
||||
```pwsh
|
||||
winget install -e Microsoft.DotNet.SDK.8
|
||||
```
|
||||
|
||||
[WiX Toolset](https://wixtoolset.org) **v5**, distributed as a .NET SDK tool, is
|
||||
used too and can be installed using `dotnet install`:
|
||||
|
||||
```pwsh
|
||||
dotnet tool install --global wix
|
||||
```
|
||||
|
||||
### Virtualization Provider
|
||||
|
||||
@ -304,9 +312,9 @@ The `installer` target of `winmake.ps1` runs the script
|
||||
|
||||
- `build-hooks.bat`: builds `podman-wslkerninst.exe` (WSL kernel installer) and
|
||||
`podman-msihooks.dll` (helper that checks if WSL and Hyper-V are installed).
|
||||
- `build-msi.bat`: builds `podman.msi` from the WiX source files `podman.wxs`,
|
||||
- `dotnet build podman.wixproj`: builds `podman.msi` from the WiX source files `podman.wxs`,
|
||||
`pages.wxs`, `podman-ui.wxs` and `welcome-install-dlg.wxs`.
|
||||
- `build-burn.bat`: builds `podman-setup.exe` file from
|
||||
- `dotnet build podman-setup.wixproj`: builds `podman-setup.exe` file from
|
||||
[WiX Burn bundle](https://wixtoolset.org/docs/tools/burn/) `burn.wxs`.
|
||||
|
||||
### Test the Windows installer
|
||||
@ -340,21 +348,20 @@ Podman is released (it's included in the `podman-setup.exe` bundle), it can be
|
||||
faster to build and test that rather than the full bundle during the development
|
||||
phase.
|
||||
|
||||
Run the script `contrib\win-installer\build-msi.bat` to build the standalone
|
||||
`podman.msi` file:
|
||||
Run the command `dotnet build` to build the standalone `podman.msi` file:
|
||||
|
||||
```pwsh
|
||||
Push-Location .\contrib\win-installer\
|
||||
.\build-msi.bat 9.9.9
|
||||
dotnet build podman.wixproj /property:DefineConstants="VERSION=9.9.9" -o .
|
||||
Pop-Location
|
||||
```
|
||||
|
||||
It creates the file `.\contrib\win-installer\podman.msi`. Test it using the
|
||||
It creates the file `.\contrib\win-installer\en-US\podman.msi`. Test it using the
|
||||
[Microsoft Standard Installer](https://learn.microsoft.com/en-us/windows/win32/msi/standard-installer-command-line-options)
|
||||
command line tool:
|
||||
|
||||
```pwsh
|
||||
msiexec /package contrib\win-installer\podman.msi /l*v podman-msi.log
|
||||
msiexec /package contrib\win-installer\en-US\podman.msi /l*v podman-msi.log
|
||||
```
|
||||
|
||||
To run it in quiet, non-interactive mode, open the terminal **as an
|
||||
@ -364,7 +371,7 @@ of the installation, `0` otherwise) and `WITH_HYPERV` (`1` to install Hyper-V as
|
||||
part of the installation, `0` otherwise):
|
||||
|
||||
```pwsh
|
||||
msiexec /package contrib\win-installer\podman.msi /l*v podman-msi.log /quiet MACHINE_PROVIDER=wsl WITH_WSL=0 WITH_HYPERV=0
|
||||
msiexec /package contrib\win-installer\en-US\podman.msi /l*v podman-msi.log /quiet MACHINE_PROVIDER=wsl WITH_WSL=0 WITH_HYPERV=0
|
||||
```
|
||||
|
||||
:information_source: `podman.msi` GUI dialogs, defined in the file
|
||||
@ -390,12 +397,12 @@ Test-Path -Path "$ENV:PROGRAMFILES\RedHat\Podman\podman.exe"
|
||||
# Check the generation of the podman configuration file
|
||||
Test-Path -Path "$ENV:PROGRAMDATA\containers\containers.conf.d\99-podman-machine-provider.conf"
|
||||
# Check that the installer configured the right provider
|
||||
Get-Content '$ENV:PROGRAMDATA\containers\containers.conf.d\99-podman-machine-provider.conf' | Select -Skip 1 | ConvertFrom-StringData | % { $_.provider }
|
||||
Get-Content "$ENV:PROGRAMDATA\containers\containers.conf.d\99-podman-machine-provider.conf" | Select -Skip 1 | ConvertFrom-StringData | % { $_.provider }
|
||||
# Check the creation of the registry key
|
||||
Test-Path -Path "HKLM:\SOFTWARE\Red Hat\Podman"
|
||||
Get-ItemProperty "HKLM:\SOFTWARE\Red Hat\Podman" InstallDir
|
||||
# Check the podman.exe is in the $PATH
|
||||
$env:PATH | Select-String -Pattern "$ENV:PROGRAMFILES\RedHat\Podman"
|
||||
$env:PATH | Select-String -Pattern "Podman"
|
||||
```
|
||||
|
||||
:information_source: Podman CI uses script
|
||||
|
@ -8,7 +8,7 @@ if ($Env:CI -eq "true") {
|
||||
} else {
|
||||
$WIN_INST_FOLDER = "$PSScriptRoot\..\win-installer"
|
||||
$ENV:WIN_INST_VER = "9.9.9"
|
||||
$RELEASE_DIR = "$PSScriptRoot\..\.."
|
||||
$RELEASE_DIR = "$PSScriptRoot\..\..\contrib\win-installer\current"
|
||||
$ENV:CONTAINERS_MACHINE_PROVIDER = "wsl"
|
||||
}
|
||||
|
||||
@ -18,7 +18,7 @@ $WindowsPathsToTest = @("C:\Program Files\RedHat\Podman\podman.exe",
|
||||
"$ConfFilePath",
|
||||
"HKLM:\SOFTWARE\Red Hat\Podman")
|
||||
|
||||
Set-Location $WIN_INST_FOLDER
|
||||
Push-Location $WIN_INST_FOLDER
|
||||
|
||||
# Build Installer
|
||||
# Note: consumes podman-remote-release-windows_amd64.zip from repo.tbz2
|
||||
@ -30,15 +30,18 @@ $ret = Start-Process -Wait -PassThru ".\podman-${ENV:WIN_INST_VER}-dev-setup.exe
|
||||
if ($ret.ExitCode -ne 0) {
|
||||
Write-Host "Install failed, dumping log"
|
||||
Get-Content inst.log
|
||||
Pop-Location
|
||||
throw "Exit code is $($ret.ExitCode)"
|
||||
}
|
||||
$WindowsPathsToTest | ForEach-Object {
|
||||
if (! (Test-Path -Path $_) ) {
|
||||
Pop-Location
|
||||
throw "Expected $_ but it's not present after uninstall"
|
||||
}
|
||||
}
|
||||
$machineProvider = Get-Content $ConfFilePath | Select-Object -Skip 1 | ConvertFrom-StringData | ForEach-Object { $_.provider }
|
||||
if ( $machineProvider -ne "`"$ENV:CONTAINERS_MACHINE_PROVIDER`"" ) {
|
||||
Pop-Location
|
||||
throw "Expected `"$ENV:CONTAINERS_MACHINE_PROVIDER`" as default machine provider but got $machineProvider"
|
||||
}
|
||||
|
||||
@ -49,12 +52,15 @@ $ret = Start-Process -Wait -PassThru ".\podman-${ENV:WIN_INST_VER}-dev-setup.exe
|
||||
if ($ret.ExitCode -ne 0) {
|
||||
Write-Host "Uninstall failed, dumping log"
|
||||
Get-Content uninst.log
|
||||
Pop-Location
|
||||
throw "Exit code is $($ret.ExitCode)"
|
||||
}
|
||||
$WindowsPathsToTest | ForEach-Object {
|
||||
if ( Test-Path -Path $_ ) {
|
||||
Pop-Location
|
||||
throw "Path $_ is still present after uninstall"
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "Uninstaller verification successful!"
|
||||
Pop-Location
|
||||
|
@ -1,7 +0,0 @@
|
||||
@if "%1" == "" (
|
||||
@echo "usage: build-burn.bat <version>"
|
||||
@exit /b 1
|
||||
)
|
||||
|
||||
candle -ext WixUIExtension -ext WixUtilExtension -ext WixBalExtension -arch x64 -dManSource="docs" -dVERSION="%1" burn.wxs || exit /b 1
|
||||
light -ext WixUIExtension -ext WixUtilExtension -ext WixBalExtension .\burn.wixobj -out podman-setup.exe || exit /b 1
|
@ -1,8 +0,0 @@
|
||||
@if "%1" == "" (
|
||||
@echo "usage: build-msi.bat <version>"
|
||||
@exit /b 1
|
||||
)
|
||||
|
||||
heat dir docs -var var.ManSource -cg ManFiles -dr INSTALLDIR -gg -g1 -srd -out pages.wxs || exit /b 1
|
||||
candle -ext WixUIExtension -ext WixUtilExtension -ext .\artifacts\PanelSwWixExtension.dll -arch x64 -dManSource="docs" -dVERSION="%1" podman.wxs pages.wxs podman-ui.wxs welcome-install-dlg.wxs || exit /b 1
|
||||
light -ext WixUIExtension -ext WixUtilExtension -ext .\artifacts\PanelSwWixExtension.dll .\podman.wixobj .\pages.wixobj .\podman-ui.wixobj .\welcome-install-dlg.wixobj -out podman.msi || exit /b 1
|
@ -4,31 +4,6 @@ function ExitOnError() {
|
||||
}
|
||||
}
|
||||
|
||||
function FetchPanel() {
|
||||
Remove-Item -Recurse -Force -Path fetch -ErrorAction SilentlyContinue | Out-Null
|
||||
New-Item -Force -ItemType Directory fetch | Out-Null
|
||||
Push-Location fetch
|
||||
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
Invoke-WebRequest -UseBasicParsing -OutFile nuget.exe -ErrorAction Stop `
|
||||
-Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
|
||||
# 3.3.3.224 generates invalid schema with RemoveFeature defaults.
|
||||
# Lock the version to 211 until this issue is fixed (7/18/2023)
|
||||
.\nuget.exe install PanelSwWixExtension -Version 3.3.3.211
|
||||
$code = $LASTEXITCODE
|
||||
Pop-Location
|
||||
if ($code -gt 0) {
|
||||
Exit 1
|
||||
}
|
||||
$loc = Get-ChildItem -Recurse -Path fetch -Name PanelSwWixExtension.dll
|
||||
if (!$loc) {
|
||||
Write-Host "Could not locate PanelSwWixExtension.dll"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Copy-Item -Path fetch/$loc -Destination artifacts/PanelSwWixExtension.dll -ErrorAction Stop
|
||||
}
|
||||
|
||||
function SignItem() {
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@ -71,7 +46,7 @@ function CheckCommand() {
|
||||
|
||||
function CheckRequirements() {
|
||||
CheckCommand "gcc" "MingW CC"
|
||||
CheckCommand "candle" "WiX Toolset"
|
||||
CheckCommand "wix" "WiX Toolset"
|
||||
CheckCommand "go" "Golang"
|
||||
}
|
||||
|
||||
@ -99,7 +74,7 @@ if ($args.Count -lt 1 -or $args[0].Length -lt 1) {
|
||||
}
|
||||
|
||||
# Pre-set to standard locations in-case build env does not refresh paths
|
||||
$Env:Path="$Env:Path;C:\Program Files (x86)\WiX Toolset v3.14\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin;;C:\Program Files\Go\bin"
|
||||
$Env:Path="$Env:Path;C:\Users\micro\mingw64\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin;;C:\Program Files\Go\bin;C:\Program Files\dotnet"
|
||||
|
||||
CheckRequirements
|
||||
|
||||
@ -129,8 +104,6 @@ if ($ENV:INSTVER -eq "") {
|
||||
Exit 1
|
||||
}
|
||||
|
||||
FetchPanel
|
||||
|
||||
.\build-hooks.bat; ExitOnError
|
||||
SignItem @("artifacts/win-sshproxy.exe",
|
||||
"artifacts/podman.exe",
|
||||
@ -151,15 +124,18 @@ if ($gvExists) {
|
||||
# } else {
|
||||
# $env:IncludePolicyJSON = "Skip"
|
||||
# }
|
||||
.\build-msi.bat $ENV:INSTVER; ExitOnError
|
||||
SignItem @("podman.msi")
|
||||
if (Test-Path ./obj) {
|
||||
Remove-Item ./obj -Recurse -Force -Confirm:$false
|
||||
}
|
||||
dotnet build podman.wixproj /property:DefineConstants="VERSION=$ENV:INSTVER" -o .; ExitOnError
|
||||
SignItem @("en-US\podman.msi")
|
||||
|
||||
.\build-burn.bat $ENV:INSTVER; ExitOnError
|
||||
insignia -ib podman-setup.exe -o engine.exe; ExitOnError
|
||||
dotnet build podman-setup.wixproj /property:DefineConstants="VERSION=$ENV:INSTVER" -o .; ExitOnError
|
||||
wix burn detach podman-setup.exe -engine engine.exe; ExitOnError
|
||||
SignItem @("engine.exe")
|
||||
|
||||
$file = "podman-$version$suffix-setup.exe"
|
||||
insignia -ab engine.exe podman-setup.exe -o $file; ExitOnError
|
||||
wix burn reattach -engine engine.exe podman-setup.exe -o $file; ExitOnError
|
||||
SignItem @("$file")
|
||||
|
||||
if (Test-Path -Path shasums) {
|
||||
|
@ -1,50 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
|
||||
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
|
||||
<?ifndef var.VERSION?>
|
||||
<?error VERSION must be defined via command line argument?>
|
||||
<?endif?>
|
||||
<Bundle Name="Podman" Version="$(var.VERSION)" Manufacturer="Red Hat"
|
||||
UpgradeCode="f3e1f40a-a791-49b7-9bc6-050975293353" IconSourceFile="resources\podman-logo.ico"
|
||||
Compressed="yes">
|
||||
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkSidebarLicense">
|
||||
<bal:WixStandardBootstrapperApplication LicenseUrl=""
|
||||
ThemeFile="podman-theme.xml"
|
||||
LocalizationFile="podman-theme.wxl"
|
||||
LogoFile="resources\podman-banner2.png"
|
||||
LogoSideFile="resources\podman-sidebar.png"
|
||||
SuppressOptionsUI="yes"
|
||||
ShowVersion="yes"/>
|
||||
</BootstrapperApplicationRef>
|
||||
<Variable Name='InstallFolder' Type='string' Value='[ProgramFiles64Folder]RedHat\Podman' bal:Overridable="yes"/>
|
||||
<Variable Name="VERSION" Value="$(var.VERSION)"/>
|
||||
<Variable Name="MachineProvider" Type="string" Value="wsl" bal:Overridable="yes"/>
|
||||
<Variable Name="WSLCheckbox" Type="numeric" Value="1" bal:Overridable="yes"/>
|
||||
<Variable Name="HyperVCheckbox" Type="numeric" Value="0" bal:Overridable="yes"/>
|
||||
<Variable Name="AllowOldWin" Type="numeric" Value="0" bal:Overridable="yes"/>
|
||||
<Variable Name="LaunchTarget" Value="explorer.exe"/>
|
||||
<Variable Name="LaunchArguments" Value=""[InstallFolder]\podman-for-windows.html""/>
|
||||
<Variable Name="SkipConfigFileCreation" Value="0"/>
|
||||
<Bundle Name="Podman" Version="$(var.VERSION)" Manufacturer="Red Hat" UpgradeCode="f3e1f40a-a791-49b7-9bc6-050975293353" IconSourceFile="resources\podman-logo.ico" Compressed="yes">
|
||||
<BootstrapperApplication>
|
||||
<bal:WixStandardBootstrapperApplication LicenseUrl="" Theme="hyperlinkSidebarLicense" ThemeFile="podman-theme.xml" LocalizationFile="podman-theme.wxl" LogoFile="resources\podman-banner2.png" LogoSideFile="resources\podman-sidebar.png" SuppressOptionsUI="yes" ShowVersion="yes" />
|
||||
</BootstrapperApplication>
|
||||
<Variable Name="InstallFolder" Type="formatted" Value="[ProgramFiles64Folder]RedHat\Podman" bal:Overridable="yes" />
|
||||
<Variable Name="VERSION" Value="$(var.VERSION)" />
|
||||
<Variable Name="MachineProvider" Type="string" Value="wsl" bal:Overridable="yes" />
|
||||
<Variable Name="WSLCheckbox" Type="numeric" Value="1" bal:Overridable="yes" />
|
||||
<Variable Name="HyperVCheckbox" Type="numeric" Value="0" bal:Overridable="yes" />
|
||||
<Variable Name="AllowOldWin" Type="numeric" Value="0" bal:Overridable="yes" />
|
||||
<Variable Name="LaunchTarget" Value="explorer.exe" />
|
||||
<Variable Name="LaunchArguments" Value=""[InstallFolder]\podman-for-windows.html"" />
|
||||
<Variable Name="SkipConfigFileCreation" Value="0" />
|
||||
|
||||
<util:RegistrySearch Id="PreviousVersionSearch" Variable="PreviousVersion" Result="value" Root="HKLM" Key="SOFTWARE\[WixBundleManufacturer]\Updates\[WixBundleName]" Value="PackageVersion"/>
|
||||
<util:RegistrySearch Id="PreviousInstallFolderSearch" Root="HKLM" Key="SOFTWARE\[WixBundleManufacturer]\[WixBundleName]" Value="InstallDir" Variable="PreviousInstallFolder" Win64="yes"/>
|
||||
<util:RegistrySearch Id="PreviousVersionSearch" Variable="PreviousVersion" Result="value" Root="HKLM" Key="SOFTWARE\[WixBundleManufacturer]\Updates\[WixBundleName]" Value="PackageVersion" />
|
||||
<util:RegistrySearch Id="PreviousInstallFolderSearch" Root="HKLM" Key="SOFTWARE\[WixBundleManufacturer]\[WixBundleName]" Value="InstallDir" Variable="PreviousInstallFolder" Bitness="always64" />
|
||||
<util:DirectorySearch Path="[PreviousInstallFolder]" Variable="InstallFolder" After="PreviousInstallFolderSearch" Condition="PreviousInstallFolder" />
|
||||
<util:RegistrySearch Id="CurrentBuild" Variable="CBNumber" Result="value" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion" Value="CurrentBuildNumber"/>
|
||||
<bal:Condition Message="Windows 10 (19041) or later is required to run this application.">
|
||||
<![CDATA[VersionNT >= v10.0 AND (CBNumber >= 19041 OR AllowOldWin = 1)]]>
|
||||
</bal:Condition>
|
||||
<bal:Condition Message="You have an installed development, pre-release version, or alternative build identifying as the same version of this installer. You must uninstall the existing version of Podman first, before proceeding.">
|
||||
<![CDATA[WixBundleAction <> 5 OR WixBundleInstalled OR WixBundleForcedRestartPackage OR PreviousVersion <> VERSION]]>
|
||||
</bal:Condition>
|
||||
<util:RegistrySearch Id="CurrentBuild" Variable="CBNumber" Result="value" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion" Value="CurrentBuildNumber" />
|
||||
<bal:Condition Message="Windows 10 (19041) or later is required to run this application." Condition="VersionNT >= v10.0 AND (CBNumber >= 19041 OR AllowOldWin = 1)" />
|
||||
<bal:Condition Message="You have an installed development, pre-release version, or alternative build identifying as the same version of this installer. You must uninstall the existing version of Podman first, before proceeding." Condition="WixBundleInstalled OR WixBundleForcedRestartPackage OR PreviousVersion <> VERSION" />
|
||||
<Chain>
|
||||
<MsiPackage Id="Setup" SourceFile="podman.msi" Vital="yes">
|
||||
<MsiPackage Id="Setup" SourceFile="en-US\podman.msi" Vital="yes">
|
||||
<MsiProperty Name="INSTALLDIR" Value="[InstallFolder]" />
|
||||
<MsiProperty Name="MACHINE_PROVIDER" Value="[MachineProvider]"/>
|
||||
<MsiProperty Name="WITH_WSL" Value="[WSLCheckbox]"/>
|
||||
<MsiProperty Name="WITH_HYPERV" Value="[HyperVCheckbox]"/>
|
||||
<MsiProperty Name="SKIP_CONFIG_FILE_CREATION" Value="[SkipConfigFileCreation]"/>
|
||||
<MsiProperty Name="MACHINE_PROVIDER" Value="[MachineProvider]" />
|
||||
<MsiProperty Name="WITH_WSL" Value="[WSLCheckbox]" />
|
||||
<MsiProperty Name="WITH_HYPERV" Value="[HyperVCheckbox]" />
|
||||
<MsiProperty Name="SKIP_CONFIG_FILE_CREATION" Value="[SkipConfigFileCreation]" />
|
||||
</MsiPackage>
|
||||
<ExePackage DisplayName="WSL Kernel Install" InstallCondition='(MachineProvider = "wsl") AND (WSLCheckbox = 1)' SourceFile="artifacts\podman-wslkerninst.exe"/>
|
||||
<ExePackage DisplayName="WSL Kernel Install" InstallCondition="(MachineProvider = "wsl") AND (WSLCheckbox = 1)" SourceFile="artifacts\podman-wslkerninst.exe" DetectCondition="" Permanent="true" />
|
||||
</Chain>
|
||||
<OptionalUpdateRegistration/>
|
||||
<OptionalUpdateRegistration />
|
||||
</Bundle>
|
||||
</Wix>
|
||||
|
12
contrib/win-installer/podman-setup.wixproj
Normal file
12
contrib/win-installer/podman-setup.wixproj
Normal file
@ -0,0 +1,12 @@
|
||||
<Project Sdk="WixToolset.Sdk/5.0.0">
|
||||
<PropertyGroup>
|
||||
<InstallerPlatform>x64</InstallerPlatform>
|
||||
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
|
||||
<OutputType>Bundle</OutputType>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="WixToolset.BootstrapperApplications.wixext" Version="5.0.0" />
|
||||
<PackageReference Include="WixToolset.Util.wixext" Version="5.0.0" />
|
||||
<Compile Include="burn.wxs" />
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -2,67 +2,67 @@
|
||||
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. -->
|
||||
|
||||
|
||||
<WixLocalization Culture="en-us" Language="1033" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="Caption">[WixBundleName] [VERSION] Setup</String>
|
||||
<String Id="Title">[WixBundleName] [VERSION]</String>
|
||||
<String Id="InstallHeader">Welcome to [WixBundleName] Setup</String>
|
||||
<String Id="InstallMessage">Welcome to the [WixBundleName] [VERSION] setup wizard. This will install [WixBundleName] on your computer.
|
||||
<WixLocalization Culture="en-us" Language="1033" xmlns="http://wixtoolset.org/schemas/v4/wxl">
|
||||
<String Id="Caption" Value="[WixBundleName] [VERSION] Setup" />
|
||||
<String Id="Title" Value="[WixBundleName] [VERSION]" />
|
||||
<String Id="InstallHeader" Value="Welcome to [WixBundleName] Setup" />
|
||||
<String Id="InstallMessage" Value="Welcome to the [WixBundleName] [VERSION] setup wizard. This will install [WixBundleName] on your computer.
|
||||
|
||||
Additionally, you have the option to also install WSL (required by podman) if it is not already enabled. This operation requires a reboot during the installation process. Alternatively, you can deselect the WSL checkbox, and install WSL manually using the wsl --install command.
|
||||
|
||||
Finally, click install to continue, or Close to abort the installation.</String>
|
||||
<String Id="InstallVersion">Version [WixBundleVersion]</String>
|
||||
<String Id="ConfirmCancelMessage">Are you sure you want to cancel?</String>
|
||||
<String Id="ExecuteUpgradeRelatedBundleMessage">Previous version</String>
|
||||
<String Id="HelpHeader">Setup Help</String>
|
||||
<String Id="HelpText">/install | /repair | /uninstall | /layout [directory] - installs, repairs, uninstalls or
|
||||
Finally, click install to continue, or Close to abort the installation." />
|
||||
<String Id="InstallVersion" Value="Version [WixBundleVersion]" />
|
||||
<String Id="ConfirmCancelMessage" Value="Are you sure you want to cancel?" />
|
||||
<String Id="ExecuteUpgradeRelatedBundleMessage" Value="Previous version" />
|
||||
<String Id="HelpHeader" Value="Setup Help" />
|
||||
<String Id="HelpText" Value="/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%.</String>
|
||||
<String Id="HelpCloseButton">&Close</String>
|
||||
<String Id="InstallLicenseLinkText">[WixBundleName] <a href="#">license terms</a>.</String>
|
||||
<String Id="InstallAcceptCheckbox">I &agree to the license terms and conditions</String>
|
||||
<String Id="InstallOptionsButton">&Options</String>
|
||||
<String Id="InstallInstallButton">&Install</String>
|
||||
<String Id="InstallCloseButton">&Close</String>
|
||||
<String Id="OptionsHeader">Setup Options</String>
|
||||
<String Id="OptionsLocationLabel">Install location:</String>
|
||||
<String Id="OptionsBrowseButton">&Browse</String>
|
||||
<String Id="OptionsOkButton">&OK</String>
|
||||
<String Id="OptionsCancelButton">&Cancel</String>
|
||||
<String Id="ProgressHeader">Setup Progress</String>
|
||||
<String Id="ProgressLabel">Processing:</String>
|
||||
<String Id="OverallProgressPackageText">Initializing...</String>
|
||||
<String Id="ProgressCancelButton">&Cancel</String>
|
||||
<String Id="ModifyHeader">Modify Setup</String>
|
||||
<String Id="ModifyRepairButton">&Repair</String>
|
||||
<String Id="ModifyUninstallButton">&Uninstall</String>
|
||||
<String Id="ModifyCloseButton">&Close</String>
|
||||
<String Id="SuccessRepairHeader">Repair Successfully Completed</String>
|
||||
<String Id="SuccessUninstallHeader">Uninstall Successfully Completed</String>
|
||||
<String Id="SuccessInstallHeader">Installation Successfully Completed</String>
|
||||
<String Id="SuccessHeader">Setup Successful</String>
|
||||
<String Id="SuccessLaunchButton">&Open Guide && Close</String>
|
||||
<String Id="SuccessRestartText">You must restart your computer before you can use the software.</String>
|
||||
<String Id="SuccessRestartButton">&Restart</String>
|
||||
<String Id="SuccessCloseButton">&Close</String>
|
||||
<String Id="FailureHeader">Setup Failed</String>
|
||||
<String Id="FailureInstallHeader">Setup Failed</String>
|
||||
<String Id="FailureUninstallHeader">Uninstall Failed</String>
|
||||
<String Id="FailureRepairHeader">Repair Failed</String>
|
||||
<String Id="FailureHyperlinkLogText">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>.</String>
|
||||
<String Id="FailureRestartText">You must restart your computer to complete the rollback of the software.</String>
|
||||
<String Id="FailureRestartButton">&Restart</String>
|
||||
<String Id="FailureCloseButton">&Close</String>
|
||||
<String Id="FilesInUseHeader">Files In Use</String>
|
||||
<String Id="FilesInUseLabel">The following applications are using files that need to be updated:</String>
|
||||
<String Id="FilesInUseCloseRadioButton">Close the &applications and attempt to restart them.</String>
|
||||
<String Id="FilesInUseDontCloseRadioButton">&Do not close applications. A reboot will be required.</String>
|
||||
<String Id="FilesInUseOkButton">&OK</String>
|
||||
<String Id="FilesInUseCancelButton">&Cancel</String>
|
||||
<String Id="ErrorFailNoActionReboot">No action was taken as a system reboot is required.</String>
|
||||
/log log.txt - logs to a specific file. By default a log file is created in %TEMP%." />
|
||||
<String Id="HelpCloseButton" Value="&Close" />
|
||||
<String Id="InstallLicenseLinkText" Value='[WixBundleName] <a href="#">license terms</a>.' />
|
||||
<String Id="InstallAcceptCheckbox" Value="I &agree to the license terms and conditions" />
|
||||
<String Id="InstallOptionsButton" Value="&Options" />
|
||||
<String Id="InstallInstallButton" Value="&Install" />
|
||||
<String Id="InstallCancelButton" Value="&Close" />
|
||||
<String Id="OptionsHeader" Value="Setup Options" />
|
||||
<String Id="OptionsLocationLabel" Value="Install location:" />
|
||||
<String Id="OptionsBrowseButton" Value="&Browse" />
|
||||
<String Id="OptionsOkButton" Value="&OK" />
|
||||
<String Id="OptionsCancelButton" Value="&Cancel" />
|
||||
<String Id="ProgressHeader" Value="Setup Progress" />
|
||||
<String Id="ProgressLabel" Value="Processing:" />
|
||||
<String Id="OverallProgressPackageText" Value="Initializing..." />
|
||||
<String Id="ProgressCancelButton" Value="&Cancel" />
|
||||
<String Id="ModifyHeader" Value="Modify Setup" />
|
||||
<String Id="ModifyRepairButton" Value="&Repair" />
|
||||
<String Id="ModifyUninstallButton" Value="&Uninstall" />
|
||||
<String Id="ModifyCancelButton" Value="&Close" />
|
||||
<String Id="SuccessRepairHeader" Value="Repair Successfully Completed" />
|
||||
<String Id="SuccessUninstallHeader" Value="Uninstall Successfully Completed" />
|
||||
<String Id="SuccessInstallHeader" Value="Installation Successfully Completed" />
|
||||
<String Id="SuccessHeader" Value="Setup Successful" />
|
||||
<String Id="SuccessLaunchButton" Value="&Open Guide && Close" />
|
||||
<String Id="SuccessRestartText" Value="You must restart your computer before you can use the software." />
|
||||
<String Id="SuccessRestartButton" Value="&Restart" />
|
||||
<String Id="SuccessCloseButton" Value="&Close" />
|
||||
<String Id="FailureHeader" Value="Setup Failed" />
|
||||
<String Id="FailureInstallHeader" Value="Setup Failed" />
|
||||
<String Id="FailureUninstallHeader" Value="Uninstall Failed" />
|
||||
<String Id="FailureRepairHeader" Value="Repair Failed" />
|
||||
<String Id="FailureHyperlinkLogText" Value='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>.' />
|
||||
<String Id="FailureRestartText" Value="You must restart your computer to complete the rollback of the software." />
|
||||
<String Id="FailureRestartButton" Value="&Restart" />
|
||||
<String Id="FailureCloseButton" Value="&Close" />
|
||||
<String Id="FilesInUseHeader" Value="Files In Use" />
|
||||
<String Id="FilesInUseLabel" Value="The following applications are using files that need to be updated:" />
|
||||
<String Id="FilesInUseCloseRadioButton" Value="Close the &applications and attempt to restart them." />
|
||||
<String Id="FilesInUseDontCloseRadioButton" Value="&Do not close applications. A reboot will be required." />
|
||||
<String Id="FilesInUseOkButton" Value="&OK" />
|
||||
<String Id="FilesInUseCancelButton" Value="&Cancel" />
|
||||
<String Id="ErrorFailNoActionReboot" Value="No action was taken as a system reboot is required." />
|
||||
</WixLocalization>
|
||||
|
@ -1,97 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. -->
|
||||
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
|
||||
<!--
|
||||
This is a customization of WiX v5 `HyperlinkSidebarTheme.xml`:
|
||||
https://github.com/wixtoolset/wix/blob/v5.0.0/src/ext/Bal/stdbas/Resources/HyperlinkSidebarTheme.xml
|
||||
-->
|
||||
|
||||
|
||||
<Theme xmlns="http://wixtoolset.org/schemas/thmutil/2010">
|
||||
<Window Width="600" Height="450" HexStyle="100a0000" FontId="0">#(loc.Title) Setup</Window>
|
||||
<Font Id="0" Height="-12" Weight="500" Foreground="000000" Background="FFFFFF">Segoe UI</Font>
|
||||
<Font Id="1" Height="-24" Weight="500" Foreground="000000">Segoe UI</Font>
|
||||
<Font Id="2" Height="-22" Weight="500" Foreground="666666">Segoe UI</Font>
|
||||
<Font Id="3" Height="-12" Weight="500" Foreground="000000" Background="FFFFFF">Segoe UI</Font>
|
||||
<Font Id="4" Height="-12" Weight="500" Foreground="ff0000" Background="FFFFFF" Underline="yes">Segoe UI</Font>
|
||||
<Font Id="5" Height="-28" Weight="500" Foreground="666666">Segoe UI</Font>
|
||||
<Font Id="6" Height="-12" Weight="600" Foreground="000000" Background="FFFFFF">Segoe UI</Font>
|
||||
<Theme xmlns="http://wixtoolset.org/schemas/v4/thmutil">
|
||||
<Font Id="0" Height="-12" Weight="500" Foreground="windowtext" Background="window">Segoe UI</Font>
|
||||
<Font Id="1" Height="-24" Weight="500" Foreground="windowtext">Segoe UI</Font>
|
||||
<Font Id="2" Height="-22" Weight="500" Foreground="graytext">Segoe UI</Font>
|
||||
<Font Id="3" Height="-12" Weight="500" Foreground="windowtext" Background="window">Segoe UI</Font>
|
||||
<Font Id="4" Height="-12" Weight="500" Foreground="ff0000" Background="window" Underline="yes">Segoe UI</Font>
|
||||
<Font Id="5" Height="-28" Weight="500" Foreground="graytext">Segoe UI</Font>
|
||||
<Font Id="6" Height="-12" Weight="600" Foreground="windowtext" Background="window">Segoe UI</Font>
|
||||
<!-- Divider -->
|
||||
<Font Id="7" Height="-24" Weight="500" Foreground="000000" Background="E0E0E0">Segoe UI</Font>
|
||||
<Text X="11" Y="-45" Width="-11" Height="2" FontId="7" Visible="yes"></Text>
|
||||
<Font Id="7" Height="-24" Weight="500" Foreground="windowtext" Background="E0E0E0">Segoe UI</Font>
|
||||
<Window Width="600" Height="450" HexStyle="100a0000" FontId="0" Caption="#(loc.Caption)">
|
||||
<Label X="11" Y="-45" Width="-11" Height="2" FontId="7" Visible="yes"></Label>
|
||||
<Page Name="Help">
|
||||
<Image X="11" Y="11" Width="206" Height="64" ImageFile="logo.png"/>
|
||||
<Text X="11" Y="80" Width="-11" Height="32" FontId="2" DisablePrefix="yes">#(loc.HelpHeader)</Text>
|
||||
<Text X="11" Y="121" Width="-11" Height="-35" FontId="3" DisablePrefix="yes">#(loc.HelpText)</Text>
|
||||
<Button Name="HelpCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.HelpCloseButton)</Button>
|
||||
<Label X="80" Y="11" Width="-11" Height="32" FontId="1" DisablePrefix="yes">#(loc.Title)</Label>
|
||||
<ImageControl X="11" Y="11" Width="206" Height="64" ImageFile="logo.png" />
|
||||
<Label X="11" Y="80" Width="-11" Height="32" FontId="2" DisablePrefix="yes">#(loc.HelpHeader)</Label>
|
||||
<Label X="11" Y="121" Width="-11" Height="-35" FontId="3" DisablePrefix="yes">#(loc.HelpText)</Label>
|
||||
<Button Name="HelpCloseButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">
|
||||
<Text>#(loc.HelpCloseButton)</Text>
|
||||
<CloseWindowAction />
|
||||
</Button>
|
||||
</Page>
|
||||
<Page Name="Install">
|
||||
<Image X="11" Y="11" Width="165" Height="364" ImageFile="logoside.png"/>
|
||||
<Text X="185" Y="11" Width="-11" Height="40" FontId="5" DisablePrefix="yes">#(loc.InstallHeader)</Text>
|
||||
<Text X="185" Y="82" Width="-11" Height="160" FontId="3" DisablePrefix="yes">#(loc.InstallMessage)</Text><!-- HexStyle="0x800000" -->
|
||||
|
||||
<ImageControl X="11" Y="11" Width="165" Height="400" ImageFile="logoside.png"/>
|
||||
<Label X="185" Y="11" Width="-11" Height="40" FontId="5" DisablePrefix="yes">#(loc.InstallHeader)</Label>
|
||||
<Label X="185" Y="82" Width="-11" Height="160" FontId="3" DisablePrefix="yes">#(loc.InstallMessage)</Label>
|
||||
<Hypertext Name="EulaHyperlink" X="185" Y="-111" Width="-11" Height="17" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallLicenseLinkText)</Hypertext>
|
||||
<Text Name="InstallVersion" X="185" Y="-61" Width="-11" Height="17" FontId="3" DisablePrefix="yes" HideWhenDisabled="yes">#(loc.InstallVersion)</Text>
|
||||
<Label Name="InstallVersion" X="185" Y="-81" Width="-11" Height="17" FontId="3" DisablePrefix="yes" VisibleCondition="WixStdBAShowVersion">#(loc.InstallVersion)</Label>
|
||||
<Checkbox Name="WSLCheckbox" X="185" Y="250" Width="-11" Height="17" TabStop="yes" FontId="6" HideWhenDisabled="yes">Install WSL if not present</Checkbox>
|
||||
<Button Name="OptionsButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.InstallOptionsButton)</Button>
|
||||
<Button Name="OptionsButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" VisibleCondition="NOT WixStdBASuppressOptionsUI">
|
||||
<Text>#(loc.InstallOptionsButton)</Text>
|
||||
<ChangePageAction Page="Options" />
|
||||
</Button>
|
||||
<Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallInstallButton)</Button>
|
||||
<Button Name="WelcomeCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallCloseButton)</Button>
|
||||
<Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">
|
||||
<Text>#(loc.InstallCancelButton)</Text>
|
||||
<CloseWindowAction />
|
||||
</Button>
|
||||
</Page>
|
||||
<Page Name="Options">
|
||||
<Image X="11" Y="11" Width="206" Height="64" ImageFile="logo.png"/>
|
||||
<Text X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.OptionsHeader)</Text>
|
||||
<Text X="11" Y="121" Width="-11" Height="17" FontId="3">#(loc.OptionsLocationLabel)</Text>
|
||||
<Editbox Name="FolderEditbox" X="11" Y="143" Width="-91" Height="21" TabStop="yes" FontId="3" FileSystemAutoComplete="yes" />
|
||||
<Button Name="BrowseButton" X="-11" Y="142" Width="75" Height="23" TabStop="yes" FontId="3">#(loc.OptionsBrowseButton)</Button>
|
||||
|
||||
<Button Name="OptionsOkButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.OptionsOkButton)</Button>
|
||||
<Button Name="OptionsCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.OptionsCancelButton)</Button>
|
||||
</Page>
|
||||
<Page Name="FilesInUse">
|
||||
<Image X="11" Y="11" Width="206" Height="64" ImageFile="logo.png"/>
|
||||
<Text X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.FilesInUseHeader)</Text>
|
||||
<Text X="11" Y="121" Width="-11" Height="34" FontId="3" DisablePrefix="yes">#(loc.FilesInUseLabel)</Text>
|
||||
<Text Name="FilesInUseText" X="11" Y="150" Width="-11" Height="-86" FontId="3" DisablePrefix="yes" HexStyle="0x0000000C"></Text>
|
||||
|
||||
<Button Name="FilesInUseCloseRadioButton" X="11" Y="-70" Width="-11" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes" HexStyle="0x000009">#(loc.FilesInUseCloseRadioButton)</Button>
|
||||
<Button Name="FilesInUseDontCloseRadioButton" X="11" Y="-50" Width="-11" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes" HexStyle="0x000009">#(loc.FilesInUseDontCloseRadioButton)</Button>
|
||||
|
||||
<Button Name="FilesInUseOkButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.FilesInUseOkButton)</Button>
|
||||
<Button Name="FilesInUseCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.FilesInUseCancelButton)</Button>
|
||||
<ImageControl X="11" Y="11" Width="206" Height="64" ImageFile="logo.png"/>
|
||||
<Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.OptionsHeader)</Label>
|
||||
<Label X="11" Y="121" Width="-11" Height="17" FontId="3">#(loc.OptionsLocationLabel)</Label>
|
||||
<Editbox Name="InstallFolder" X="11" Y="143" Width="-91" Height="21" TabStop="yes" FontId="3" FileSystemAutoComplete="yes" />
|
||||
<Button Name="BrowseButton" X="-11" Y="142" Width="75" Height="23" TabStop="yes" FontId="3">
|
||||
<Text>#(loc.OptionsBrowseButton)</Text>
|
||||
<BrowseDirectoryAction VariableName="InstallFolder" />
|
||||
</Button>
|
||||
<Button Name="OptionsOkButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">
|
||||
<Text>#(loc.OptionsOkButton)</Text>
|
||||
<ChangePageAction Page="Install" />
|
||||
</Button>
|
||||
<Button Name="OptionsCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">
|
||||
<Text>#(loc.OptionsCancelButton)</Text>
|
||||
<ChangePageAction Page="Install" Cancel="yes" />
|
||||
</Button>
|
||||
</Page>
|
||||
<Page Name="Progress">
|
||||
<Image X="11" Y="11" Width="206" Height="64" ImageFile="logo.png"/>
|
||||
<Text X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ProgressHeader)</Text>
|
||||
<Text X="11" Y="141" Width="70" Height="17" FontId="3" DisablePrefix="yes">#(loc.ProgressLabel)</Text>
|
||||
<Text Name="OverallProgressPackageText" X="85" Y="141" Width="-11" Height="17" FontId="3" DisablePrefix="yes">#(loc.OverallProgressPackageText)</Text>
|
||||
<ImageControl X="11" Y="11" Width="206" Height="64" ImageFile="logo.png" />
|
||||
<Label X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ProgressHeader)</Label>
|
||||
<Label X="11" Y="141" Width="70" Height="17" FontId="3" DisablePrefix="yes">#(loc.ProgressLabel)</Label>
|
||||
<Label Name="OverallProgressPackageText" X="85" Y="141" Width="-11" Height="17" FontId="3" DisablePrefix="yes">#(loc.OverallProgressPackageText)</Label>
|
||||
<Progressbar Name="OverallCalculatedProgressbar" X="11" Y="163" Width="-11" Height="20" />
|
||||
<Button Name="ProgressCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ProgressCancelButton)</Button>
|
||||
</Page>
|
||||
<Page Name="Modify">
|
||||
<Text X="185" Y="11" Width="-11" Height="32" FontId="1" DisablePrefix="yes">#(loc.Title)</Text>
|
||||
<Image X="11" Y="11" Width="165" Height="364" ImageFile="logoside.png"/>
|
||||
<Text X="185" Y="50" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Text>
|
||||
<Label X="185" Y="11" Width="-11" Height="32" FontId="1" DisablePrefix="yes">#(loc.Title)</Label>
|
||||
<ImageControl X="11" Y="11" Width="165" Height="400" ImageFile="logoside.png"/>
|
||||
<Label X="185" Y="50" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ModifyHeader)</Label>
|
||||
<Button Name="RepairButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.ModifyRepairButton)</Button>
|
||||
<Button Name="UninstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ModifyUninstallButton)</Button>
|
||||
<Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ModifyCloseButton)</Button>
|
||||
<Button Name="ModifyCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">
|
||||
<Text>#(loc.ModifyCancelButton)</Text>
|
||||
<CloseWindowAction />
|
||||
</Button>
|
||||
</Page>
|
||||
<Page Name="Success">
|
||||
<Text X="185" Y="11" Width="-11" Height="32" FontId="1" DisablePrefix="yes">#(loc.Title)</Text>
|
||||
<Image X="11" Y="11" Width="165" Height="364" ImageFile="logoside.png"/>
|
||||
<Text Name="SuccessHeader" X="185" Y="50" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SuccessHeader)</Text>
|
||||
<Text Name="SuccessInstallHeader" X="185" Y="50" Width="-11" Height="100" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SuccessInstallHeader)</Text>
|
||||
<Text Name="SuccessRepairHeader" X="185" Y="50" Width="-11" Height="100" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SuccessRepairHeader)</Text>
|
||||
<Text Name="SuccessUninstallHeader" X="185" Y="50" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SuccessUninstallHeader)</Text>
|
||||
<Label X="185" Y="11" Width="-11" Height="32" FontId="1" DisablePrefix="yes">#(loc.Title)</Label>
|
||||
<ImageControl X="11" Y="11" Width="165" Height="400" ImageFile="logoside.png"/>
|
||||
<Label X="185" Y="50" Width="-11" Height="30" FontId="2" DisablePrefix="yes">
|
||||
<Text>#(loc.SuccessHeader)</Text>
|
||||
<Text Condition="WixBundleAction = 4">#(loc.SuccessUninstallHeader)</Text>
|
||||
<Text Condition="WixBundleAction = 6">#(loc.SuccessInstallHeader)</Text>
|
||||
<Text Condition="WixBundleAction = 8">#(loc.SuccessRepairHeader)</Text>
|
||||
</Label>
|
||||
<Button Name="LaunchButton" X="-91" Y="-11" Width="125" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.SuccessLaunchButton)</Button>
|
||||
<Text Name="SuccessRestartText" X="185" Y="-51" Width="400" Height="34" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SuccessRestartText)</Text>
|
||||
<Label X="185" Y="-51" Width="400" Height="34" FontId="3" DisablePrefix="yes" VisibleCondition="WixStdBARestartRequired">
|
||||
<Text>#(loc.SuccessRestartText)</Text>
|
||||
<Text Condition="WixBundleAction = 3">#(loc.SuccessUninstallRestartText)</Text>
|
||||
</Label>
|
||||
<Button Name="SuccessRestartButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.SuccessRestartButton)</Button>
|
||||
<Button Name="SuccessCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.SuccessCloseButton)</Button>
|
||||
<Button Name="SuccessCloseButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">
|
||||
<Text>#(loc.SuccessCloseButton)</Text>
|
||||
<CloseWindowAction />
|
||||
</Button>
|
||||
</Page>
|
||||
<Page Name="Failure">
|
||||
<Image X="11" Y="11" Width="165" Height="364" ImageFile="logoside.png"/>
|
||||
<Text Name="FailureHeader" X="185" Y="50" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureHeader)</Text>
|
||||
<Text Name="FailureInstallHeader" X="185" Y="50" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureInstallHeader)</Text>
|
||||
<Text Name="FailureUninstallHeader" X="185" Y="50" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureUninstallHeader)</Text>
|
||||
<Text Name="FailureRepairHeader" X="185" Y="50" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureRepairHeader)</Text>
|
||||
<ImageControl X="11" Y="11" Width="165" Height="400" ImageFile="logoside.png"/>
|
||||
<Label X="185" Y="50" Width="-11" Height="30" FontId="2" DisablePrefix="yes">
|
||||
<Text>#(loc.FailureHeader)</Text>
|
||||
<Text Condition="WixBundleAction = 4">#(loc.FailureUninstallHeader)</Text>
|
||||
<Text Condition="WixBundleAction = 6">#(loc.FailureInstallHeader)</Text>
|
||||
<Text Condition="WixBundleAction = 8">#(loc.FailureRepairHeader)</Text>
|
||||
</Label>
|
||||
<Hypertext Name="FailureLogFileLink" X="185" Y="121" Width="-11" Height="68" FontId="3" TabStop="yes" HideWhenDisabled="yes">#(loc.FailureHyperlinkLogText)</Hypertext>
|
||||
<Hypertext Name="FailureMessageText" X="185" Y="-115" Width="-11" Height="80" FontId="3" TabStop="yes" HideWhenDisabled="yes" />
|
||||
<Text Name="FailureRestartText" X="185" Y="-57" Width="-11" Height="80" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureRestartText)</Text>
|
||||
<Label X="185" Y="-57" Width="-11" Height="80" FontId="3" DisablePrefix="yes" VisibleCondition="WixStdBARestartRequired">#(loc.FailureRestartText)</Label>
|
||||
<Button Name="FailureRestartButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.FailureRestartButton)</Button>
|
||||
<Button Name="FailureCloseButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.FailureCloseButton)</Button>
|
||||
<Button Name="FailureCloseButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">
|
||||
<Text>#(loc.FailureCloseButton)</Text>
|
||||
<CloseWindowAction />
|
||||
</Button>
|
||||
</Page>
|
||||
</Window>
|
||||
</Theme>
|
||||
|
@ -1,4 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. -->
|
||||
|
||||
<!--
|
||||
@ -15,16 +14,14 @@ Patch dialog sequence:
|
||||
- WixUI_VerifyReadyDlg
|
||||
-->
|
||||
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
|
||||
<Fragment>
|
||||
<UI Id="PodmanUI">
|
||||
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
|
||||
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
|
||||
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
|
||||
|
||||
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
|
||||
<Property Id="WixUI_Mode" Value="Minimal" />
|
||||
|
||||
<DialogRef Id="ErrorDlg" />
|
||||
<DialogRef Id="FatalError" />
|
||||
<DialogRef Id="FilesInUse" />
|
||||
@ -33,30 +30,19 @@ Patch dialog sequence:
|
||||
<DialogRef Id="ProgressDlg" />
|
||||
<DialogRef Id="ResumeDlg" />
|
||||
<DialogRef Id="UserExit" />
|
||||
<DialogRef Id="WelcomeDlg" />
|
||||
<DialogRef Id="WelcomeInstallDlg" />
|
||||
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
|
||||
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
|
||||
|
||||
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
|
||||
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
|
||||
|
||||
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">Installed AND PATCH</Publish>
|
||||
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999" />
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" />
|
||||
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg" />
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg" />
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg" />
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg" />
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeInstallDlg" Order="2" Condition="Installed AND PATCH" />
|
||||
<InstallUISequence>
|
||||
<Show Dialog="WelcomeDlg" Before="WelcomeInstallDlg">Installed AND PATCH</Show>
|
||||
<Show Dialog="WelcomeInstallDlg" Before="ProgressDlg">(NOT Installed) AND NOT AFTERREBOOT</Show>
|
||||
<Show Dialog="WelcomeInstallDlg" Before="ProgressDlg" Condition="(NOT Installed) AND NOT AFTERREBOOT" />
|
||||
</InstallUISequence>
|
||||
|
||||
<Property Id="ARPNOMODIFY" Value="1" />
|
||||
</UI>
|
||||
|
||||
<UIRef Id="WixUI_Common" />
|
||||
</Fragment>
|
||||
</Wix>
|
||||
|
37
contrib/win-installer/podman.sln
Normal file
37
contrib/win-installer/podman.sln
Normal file
@ -0,0 +1,37 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.10.35004.147
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{B7DD6F7E-DEF8-4E67-B5B7-07EF123DB6F0}") = "podman", "podman.wixproj", "{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|ARM64 = Release|ARM64
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}.Debug|x64.Build.0 = Debug|x64
|
||||
{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}.Debug|x86.Build.0 = Debug|x86
|
||||
{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}.Release|x64.ActiveCfg = Release|x64
|
||||
{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}.Release|x64.Build.0 = Release|x64
|
||||
{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}.Release|x86.ActiveCfg = Release|x86
|
||||
{3EBBAB4A-A15D-4986-98FF-FEC3892997DB}.Release|x86.Build.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {0F83E058-C6D8-49C2-95BD-645730145A9D}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
21
contrib/win-installer/podman.wixproj
Normal file
21
contrib/win-installer/podman.wixproj
Normal file
@ -0,0 +1,21 @@
|
||||
<Project Sdk="WixToolset.Sdk/5.0.0">
|
||||
<PropertyGroup>
|
||||
<InstallerPlatform>x64</InstallerPlatform>
|
||||
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<HarvestDirectory Include="docs">
|
||||
<ComponentGroupName>ManFiles</ComponentGroupName>
|
||||
<DirectoryRefId>INSTALLDIR</DirectoryRefId>
|
||||
<SuppressRootDirectory>true</SuppressRootDirectory>
|
||||
</HarvestDirectory>
|
||||
<BindPath Include="docs" />
|
||||
<Compile Include="podman.wxs;podman-ui.wxs;welcome-install-dlg.wxs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="PanelSwWixExtension4" Version="5.1.1.375" />
|
||||
<PackageReference Include="WixToolset.Heat" Version="5.0.0" />
|
||||
<PackageReference Include="WixToolset.UI.wixext" Version="5.0.0" />
|
||||
<PackageReference Include="WixToolset.Util.wixext" Version="5.0.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
|
||||
xmlns:PanelSW="http://schemas.panel-sw.co.il/wix/WixExtension">
|
||||
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:PanelSW="http://schemas.panel-sw.co.il/wix/WixExtension" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
|
||||
|
||||
<?ifndef var.VERSION?>
|
||||
<?ifndef VERSION?>
|
||||
<?error VERSION must be defined via command line argument?>
|
||||
<?endif?>
|
||||
|
||||
@ -12,33 +10,30 @@
|
||||
<?define UseGVProxy = ""?>
|
||||
<?endif?>
|
||||
|
||||
|
||||
<Product Name="Podman $(var.VERSION)" Id="*" UpgradeCode="696BAB5D-CA1F-4B05-B123-320F245B8D6D" Version="$(var.VERSION)" Language="1033" Manufacturer="Red Hat Inc.">
|
||||
|
||||
<Package Id="*" Platform="x64" Keywords="Installer" Description="Red Hat's Podman $(var.VERSION) Installer" Comments="Apache 2.0 License" Manufacturer="Red Hat Inc." InstallScope="perMachine" InstallerVersion="200" Compressed="yes"/>
|
||||
|
||||
<Media Id="1" Cabinet="Podman.cab" EmbedCab="yes"/>
|
||||
<MajorUpgrade AllowDowngrades="yes"/>
|
||||
<Property Id="DiskPrompt" Value="Red Hat's Podman $(var.VERSION) Installation"/>
|
||||
<Property Id="MACHINE_PROVIDER" Value="wsl"/>
|
||||
<Package Name="podman" Manufacturer="Red Hat Inc." Version="$(VERSION)" UpgradeCode="a6a9dd9c-0732-44ba-9279-ffe22ea50671">
|
||||
<Media Id="1" Cabinet="Podman.cab" EmbedCab="yes" />
|
||||
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
|
||||
<Property Id="DiskPrompt" Value="Red Hat's Podman $(VERSION) Installation" />
|
||||
<Property Id="MACHINE_PROVIDER" Value="wsl" />
|
||||
<Property Id="MACHINE_PROVIDER_CONFIG_FILE_PATH">
|
||||
<DirectorySearch Id="CommonAppDataFolderSearch" Path="[CommonAppDataFolder]">
|
||||
<DirectorySearch Id="ContainersFolderSearch" Path="containers">
|
||||
<DirectorySearch Id="ContainersConfDFolderSearch" Path="containers.conf.d">
|
||||
<FileSearch Name="99-podman-machine-provider.conf"/>
|
||||
<FileSearch Name="99-podman-machine-provider.conf" />
|
||||
</DirectorySearch>
|
||||
</DirectorySearch>
|
||||
</DirectorySearch>
|
||||
</Property>
|
||||
<Property Id="MAIN_EXECUTABLE_FILE_PATH">
|
||||
<DirectorySearch Id="ProgramFiles64FolderSearch" Path="[ProgramFiles64Folder]">
|
||||
<DirectorySearch Id="ProgramFiles6432FolderSearch" Path="[ProgramFiles6432Folder]">
|
||||
<DirectorySearch Id="RedHatFolderSearch" Path="RedHat">
|
||||
<DirectorySearch Id="PodmanFolderSearch" Path="Podman">
|
||||
<FileSearch Name="podman.exe"/>
|
||||
<FileSearch Name="podman.exe" />
|
||||
</DirectorySearch>
|
||||
</DirectorySearch>
|
||||
</DirectorySearch>
|
||||
</Property>
|
||||
|
||||
<!--
|
||||
Property WSL_INSTALL is set at runtime and used as the condition to run the `WSLFeatureComponent` Component:
|
||||
WSL is installed only if all these conditions are met:
|
||||
@ -46,13 +41,7 @@
|
||||
- The user has set property `MACHINE_PROVIDER` to "wsl"
|
||||
- The user hasn't set property `WITH_WSL` to 0
|
||||
-->
|
||||
<SetProperty Id="WSL_INSTALL" Before="AppSearch" Value="1" Sequence="first">
|
||||
<![CDATA[
|
||||
(HAS_WSLFEATURE = 0)
|
||||
AND (MACHINE_PROVIDER = "wsl")
|
||||
AND (NOT (WITH_WSL = 0))
|
||||
]]>
|
||||
</SetProperty>
|
||||
<SetProperty Id="WSL_INSTALL" Before="AppSearch" Value="1" Sequence="first" Condition="(HAS_WSLFEATURE = 0) AND (MACHINE_PROVIDER = "wsl") AND (NOT (WITH_WSL = 0))" />
|
||||
<!--
|
||||
Property HYPERV_INSTALL is set at runtime and used as the condition to run the `HyperVFeatureComponent` Component:
|
||||
HyperV is installed only if all these conditions are met:
|
||||
@ -60,13 +49,7 @@
|
||||
- The user has set property `MACHINE_PROVIDER` to "hyperv"
|
||||
- The user hasn't set property `WITH_HYPERV` to 0
|
||||
-->
|
||||
<SetProperty Id="HYPERV_INSTALL" Before="AppSearch" Value="1" Sequence="first">
|
||||
<![CDATA[
|
||||
(HAS_HYPERVFEATURE = 0)
|
||||
AND (MACHINE_PROVIDER = "hyperv")
|
||||
AND (NOT (WITH_HYPERV = 0))
|
||||
]]>
|
||||
</SetProperty>
|
||||
<SetProperty Id="HYPERV_INSTALL" Before="AppSearch" Value="1" Sequence="first" Condition="(HAS_HYPERVFEATURE = 0) AND (MACHINE_PROVIDER = "hyperv") AND (NOT (WITH_HYPERV = 0))" />
|
||||
<!--
|
||||
Property CREATE_MACHINE_PROVIDER_CONFIG_FILE is set at runtime and used as the condition to run the `MachineProviderConfigFile` Component:
|
||||
The machine provider config file is created only if all these conditions are met:
|
||||
@ -74,13 +57,7 @@
|
||||
- The machine provider config file ($PROGRAMDATA/containers/containers.conf.d/99-podman-machine-provider.conf) doesn't exist
|
||||
- The main executable file ($PROGRAMDATA/RedHat/Podman/podman.exe) doesn't exist
|
||||
-->
|
||||
<SetProperty Id="CREATE_MACHINE_PROVIDER_CONFIG_FILE" After="AppSearch" Value="1" Sequence="first">
|
||||
<![CDATA[
|
||||
(NOT (SKIP_CONFIG_FILE_CREATION = 1))
|
||||
AND (NOT MACHINE_PROVIDER_CONFIG_FILE_PATH)
|
||||
AND (NOT MAIN_EXECUTABLE_FILE_PATH)
|
||||
]]>
|
||||
</SetProperty>
|
||||
<SetProperty Id="CREATE_MACHINE_PROVIDER_CONFIG_FILE" After="AppSearch" Value="1" Sequence="first" Condition="(NOT (SKIP_CONFIG_FILE_CREATION = 1)) AND (NOT MACHINE_PROVIDER_CONFIG_FILE_PATH) AND (NOT MAIN_EXECUTABLE_FILE_PATH)" />
|
||||
<!--
|
||||
Property HIDE_PROVIDER_CHOICE is set at runtime and used as the condition to hide the Machine Provider
|
||||
choice from the MSI GUI (the Radio Button Group and other related controls):
|
||||
@ -89,121 +66,106 @@
|
||||
- The machine provider config file ($PROGRAMDATA/containers/containers.conf.d/99-podman-machine-provider.conf) exists
|
||||
- The main executable file ($PROGRAMDATA/RedHat/Podman/podman.exe) exists
|
||||
-->
|
||||
<SetProperty Id="HIDE_PROVIDER_CHOICE" After="AppSearch" Value="1" Sequence="first">
|
||||
<![CDATA[
|
||||
(SKIP_CONFIG_FILE_CREATION = 1)
|
||||
OR (MACHINE_PROVIDER_CONFIG_FILE_PATH)
|
||||
OR (MAIN_EXECUTABLE_FILE_PATH)
|
||||
]]>
|
||||
</SetProperty>
|
||||
<SetProperty Id="HIDE_PROVIDER_CHOICE" After="AppSearch" Value="1" Sequence="first" Condition="(SKIP_CONFIG_FILE_CREATION = 1) OR (MACHINE_PROVIDER_CONFIG_FILE_PATH) OR (MAIN_EXECUTABLE_FILE_PATH)" />
|
||||
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="ProgramFiles64Folder" Name="PFiles">
|
||||
<Directory Id="RedHatPFiles" Name="RedHat">
|
||||
<Directory Id="INSTALLDIR" Name="Podman">
|
||||
<Component Id="INSTALLDIR_Component" Guid="14B310C4-9B5D-4DA5-ADF9-B9D008E4CD82" Win64="yes">
|
||||
<CreateFolder/>
|
||||
<RegistryKey Root="HKLM" Key="SOFTWARE\Red Hat\Podman">
|
||||
<RegistryValue Name="InstallDir" Value="[INSTALLDIR]" Type="string" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
<Component Id="MainExecutable" Guid="73752F94-6589-4C7B-ABED-39D655A19714" Win64="yes">
|
||||
<File Id="MainExecutableFile" Name="podman.exe" Source="artifacts/podman.exe" KeyPath="yes"/>
|
||||
</Component>
|
||||
<Component Id="WinSshProxyExecutable" Guid="0DA730AB-2F97-40E8-A8FC-356E88EAA4D2" Win64="yes">
|
||||
<File Id="WinSshProxyExecutableFile" Name="win-sshproxy.exe" Source="artifacts/win-sshproxy.exe" KeyPath="yes"/>
|
||||
</Component>
|
||||
<?if $(var.UseGVProxy) != Skip?>
|
||||
<Component Id="GvProxyExecutable" Guid="1A4A2975-AD2D-44AA-974B-9B343C098333" Win64="yes">
|
||||
<File Id="GvProxyExecutableFile" Name="gvproxy.exe" Source="artifacts/gvproxy.exe" KeyPath="yes"/>
|
||||
</Component>
|
||||
<?endif?>
|
||||
<Component Id="GuideHTMLComponent" Guid="8B23C76B-F7D4-4030-8C46-1B5729E616B5" Win64="yes">
|
||||
<File Id="GuideHTMLFile" Name="welcome-podman.html" Source="docs/podman-for-windows.html" KeyPath="yes"/>
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Directory>
|
||||
<!--
|
||||
The following code creates the `containers/containers.conf.d` folder under the system wide
|
||||
`$CommonAppDataFolder`. That's preferred to the user specific `$AppDataFolder` to avoid the
|
||||
Windows Installer ICE91 warning https://learn.microsoft.com/en-us/windows/win32/msi/ice91.
|
||||
-->
|
||||
<Directory Id="CommonAppDataFolder">
|
||||
<Directory Id="CONFIGDIR" Name="containers">
|
||||
<Directory Id="ContainersConfigSubDir" Name="containers.conf.d">
|
||||
<Component Id="MachineProviderConfigFile" Guid="C32C0040-D9AF-4155-AC7E-465B63B6BE3B">
|
||||
<CreateFolder />
|
||||
<IniFile Id="MachineProviderConfigFile" Action="createLine" Directory="ContainersConfigSubDir" Section="machine" Name="99-podman-machine-provider.conf" Key="provider" Value='"[MACHINE_PROVIDER]"' />
|
||||
<Condition>CREATE_MACHINE_PROVIDER_CONFIG_FILE</Condition>
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Directory>
|
||||
<Directory Id="EnvEntries">
|
||||
<Component Id="EnvEntriesComponent" Guid="b662ec43-0e0e-4018-8bf3-061904bb8f5b" Win64="yes">
|
||||
<CreateFolder />
|
||||
<Environment Id='UpdatePath' Name='PATH' Action='set' Permanent='no' System='yes' Part='last' Value='[INSTALLDIR]' />
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
|
||||
<CustomAction Id="OpenGuide" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
|
||||
<CustomAction Id="CheckWSL" BinaryKey="PodmanHooks" Execute="firstSequence" DllEntry="CheckWSL" />
|
||||
<CustomAction Id="CheckHyperV" BinaryKey="PodmanHooks" Execute="firstSequence" DllEntry="CheckHyperV" />
|
||||
<CustomActionRef Id="WixBroadcastEnvironmentChange" />
|
||||
<CustomAction Id="OpenGuide" DllEntry="WixShellExec" Impersonate="yes" BinaryRef="Wix4UtilCA_X86" />
|
||||
<CustomAction Id="CheckWSL" Execute="firstSequence" DllEntry="CheckWSL" BinaryRef="PodmanHooks" />
|
||||
<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 Installed) AND WSL_INSTALL = 1</Condition>
|
||||
<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"/>
|
||||
<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 Installed) AND HYPERV_INSTALL = 1</Condition>
|
||||
<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"/>
|
||||
<PanelSW:Dism EnableFeature="Microsoft-Hyper-V" ErrorHandling="prompt" />
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
<Feature Id="Complete" Level="1">
|
||||
<ComponentRef Id="INSTALLDIR_Component"/>
|
||||
<ComponentRef Id="EnvEntriesComponent"/>
|
||||
<ComponentRef Id="MainExecutable"/>
|
||||
<ComponentRef Id="WinSshProxyExecutable"/>
|
||||
<ComponentRef Id="INSTALLDIR_Component" />
|
||||
<ComponentRef Id="EnvEntriesComponent" />
|
||||
<ComponentRef Id="MainExecutable" />
|
||||
<ComponentRef Id="WinSshProxyExecutable" />
|
||||
<?if $(var.UseGVProxy) != Skip?>
|
||||
<ComponentRef Id="GvProxyExecutable"/>
|
||||
<ComponentRef Id="GvProxyExecutable" />
|
||||
<?endif?>
|
||||
<ComponentRef Id="GuideHTMLComponent"/>
|
||||
<ComponentRef Id="MachineProviderConfigFile"/>
|
||||
<ComponentGroupRef Id="ManFiles"/>
|
||||
<ComponentGroupRef Id="WSLFeature"/>
|
||||
<ComponentGroupRef Id="HyperVFeature"/>
|
||||
<ComponentRef Id="GuideHTMLComponent" />
|
||||
<ComponentRef Id="MachineProviderConfigFile" />
|
||||
<ComponentGroupRef Id="ManFiles" />
|
||||
<ComponentGroupRef Id="WSLFeature" />
|
||||
<ComponentGroupRef Id="HyperVFeature" />
|
||||
</Feature>
|
||||
|
||||
<Icon Id="podman.ico" SourceFile="resources/podman-logo.ico"/>
|
||||
<Property Id="ARPPRODUCTICON" Value="podman.ico"/>
|
||||
<Icon Id="podman.ico" SourceFile="resources/podman-logo.ico" />
|
||||
<Property Id="ARPPRODUCTICON" Value="podman.ico" />
|
||||
<Property Id="WixShellExecTarget" Value="[#GuideHTMLFile]" />
|
||||
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Show Getting Started Guide" />
|
||||
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />
|
||||
<WixVariable Id="WixUIBannerBmp" Value="resources\podman-banner.png" />
|
||||
<WixVariable Id="WixUIDialogBmp" Value="resources\podman-dialog.png" />
|
||||
<UIRef Id="PodmanUI"/>
|
||||
<UIRef Id="PodmanUI" />
|
||||
<UI>
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction"
|
||||
Value="OpenGuide">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="OpenGuide" Condition="WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed" />
|
||||
</UI>
|
||||
|
||||
<InstallExecuteSequence>
|
||||
<Custom Action="CheckWSL" Before="SetWSL_INSTALL" />
|
||||
<Custom Action="CheckHyperV" Before="SetHYPERV_INSTALL" />
|
||||
<ForceReboot Before="StopServices">
|
||||
(NOT Installed)
|
||||
AND ((WSL_INSTALL = 1) OR (HYPERV_INSTALL = 1))
|
||||
AND (NOT AFTERREBOOT)
|
||||
</ForceReboot>
|
||||
<ForceReboot Before="StopServices" Condition="(NOT Installed) AND ((WSL_INSTALL = 1) OR (HYPERV_INSTALL = 1)) AND (NOT AFTERREBOOT)" />
|
||||
</InstallExecuteSequence>
|
||||
<Binary Id="PodmanHooks" SourceFile="artifacts/podman-msihooks.dll" />
|
||||
</Product>
|
||||
|
||||
<StandardDirectory Id="ProgramFiles6432Folder">
|
||||
<Directory Id="RedHatPFiles" Name="RedHat">
|
||||
<Directory Id="INSTALLDIR" Name="Podman">
|
||||
<Component Id="INSTALLDIR_Component" Guid="14B310C4-9B5D-4DA5-ADF9-B9D008E4CD82" Bitness="always64">
|
||||
<CreateFolder />
|
||||
<RegistryKey Root="HKLM" Key="SOFTWARE\Red Hat\Podman">
|
||||
<RegistryValue Name="InstallDir" Value="[INSTALLDIR]" Type="string" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
<Component Id="MainExecutable" Guid="73752F94-6589-4C7B-ABED-39D655A19714" Bitness="always64">
|
||||
<File Id="MainExecutableFile" Name="podman.exe" Source="artifacts/podman.exe" KeyPath="yes" />
|
||||
</Component>
|
||||
<Component Id="WinSshProxyExecutable" Guid="0DA730AB-2F97-40E8-A8FC-356E88EAA4D2" Bitness="always64">
|
||||
<File Id="WinSshProxyExecutableFile" Name="win-sshproxy.exe" Source="artifacts/win-sshproxy.exe" KeyPath="yes" />
|
||||
</Component>
|
||||
<?if $(var.UseGVProxy) != Skip?>
|
||||
<Component Id="GvProxyExecutable" Guid="1A4A2975-AD2D-44AA-974B-9B343C098333" Bitness="always64">
|
||||
<File Id="GvProxyExecutableFile" Name="gvproxy.exe" Source="artifacts/gvproxy.exe" KeyPath="yes" />
|
||||
</Component>
|
||||
<?endif?>
|
||||
<Component Id="GuideHTMLComponent" Guid="8B23C76B-F7D4-4030-8C46-1B5729E616B5" Bitness="always64">
|
||||
<File Id="GuideHTMLFile" Name="welcome-podman.html" Source="docs/podman-for-windows.html" KeyPath="yes" />
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</StandardDirectory>
|
||||
<!--
|
||||
The following code creates the `containers/containers.conf.d` folder under the system wide
|
||||
`$CommonAppDataFolder`. That's preferred to the user specific `$AppDataFolder` to avoid the
|
||||
Windows Installer ICE91 warning https://learn.microsoft.com/en-us/windows/win32/msi/ice91.
|
||||
-->
|
||||
<StandardDirectory Id="CommonAppDataFolder">
|
||||
<Directory Id="CONFIGDIR" Name="containers">
|
||||
<Directory Id="ContainersConfigSubDir" Name="containers.conf.d">
|
||||
<Component Id="MachineProviderConfigFile" Guid="C32C0040-D9AF-4155-AC7E-465B63B6BE3B" Condition="CREATE_MACHINE_PROVIDER_CONFIG_FILE">
|
||||
<CreateFolder />
|
||||
<IniFile Id="MachineProviderConfigFile" Action="createLine" Directory="ContainersConfigSubDir" Section="machine" Name="99-podman-machine-provider.conf" Key="provider" Value=""[MACHINE_PROVIDER]"" />
|
||||
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</StandardDirectory>
|
||||
<Directory Id="EnvEntries">
|
||||
<Component Id="EnvEntriesComponent" Guid="b662ec43-0e0e-4018-8bf3-061904bb8f5b" Bitness="always64">
|
||||
<CreateFolder />
|
||||
<Environment Id="UpdatePath" Name="PATH" Action="set" Permanent="no" System="yes" Part="last" Value="[INSTALLDIR]" />
|
||||
</Component>
|
||||
</Directory>
|
||||
</Package>
|
||||
</Wix>
|
||||
|
@ -111,11 +111,11 @@ try {
|
||||
}
|
||||
Write-Host "Old release, zip does not include win-sshproxy.exe, fetching via msi"
|
||||
DownloadOrSkip "$base_url/releases/download/$version/podman-$version.msi" "podman.msi"
|
||||
dark -x expand ./podman.msi
|
||||
wix msi decompile -x expand ./podman.msi
|
||||
if (!$?) {
|
||||
throw "Dark command failed"
|
||||
throw "wix msi decompile command failed"
|
||||
}
|
||||
$loc = Get-ChildItem -Recurse -Path expand -Name 4A2AD125-34E7-4BD8-BE28-B2A9A5EDBEB5
|
||||
$loc = Get-ChildItem -Recurse -Path expand -Name WinSshProxyExecutableFile
|
||||
if (!$loc) {
|
||||
throw "Could not obtain win-sshproxy.exe"
|
||||
}
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 16 KiB |
@ -1,4 +1,4 @@
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
|
||||
<Fragment>
|
||||
<UI>
|
||||
<Dialog Id="WelcomeInstallDlg" Width="370" Height="270" Title="!(loc.WelcomeDlg_Title)">
|
||||
@ -6,44 +6,30 @@
|
||||
<Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgTitle)" />
|
||||
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
|
||||
<Control Id="Description" Type="Text" X="135" Y="50" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgDescription)" />
|
||||
<Control Id="ProviderChoice" Type="Text" X="135" Y="115" Width="220" Height="18" Transparent="yes" NoPrefix="yes" Text="Select the Virtualization Provider for the Podman machine:">
|
||||
<Condition Action="hide">HIDE_PROVIDER_CHOICE</Condition>
|
||||
</Control>
|
||||
<Control Type="RadioButtonGroup" Property="MACHINE_PROVIDER" Id="MachineProviderRadioButtonGroup" Width="226" Height="30" X="135" Y="135">
|
||||
<Control Id="ProviderChoice" Type="Text" X="135" Y="115" Width="220" Height="18" Transparent="yes" NoPrefix="yes" Text="Select the Virtualization Provider for the Podman machine:" HideCondition="HIDE_PROVIDER_CHOICE" />
|
||||
<Control Type="RadioButtonGroup" Property="MACHINE_PROVIDER" Id="MachineProviderRadioButtonGroup" Width="226" Height="30" X="135" Y="135" HideCondition="HIDE_PROVIDER_CHOICE">
|
||||
<RadioButtonGroup Property="MACHINE_PROVIDER">
|
||||
<RadioButton Text="Windows Linux Subsystem (WSLv2)" Height="15" Value="wsl" Width="226" X="10" Y="0" />
|
||||
<RadioButton Text="Windows Hyper-V" Height="15" Value="hyperv" Width="226" X="10" Y="15" />
|
||||
</RadioButtonGroup>
|
||||
<Condition Action="hide">HIDE_PROVIDER_CHOICE</Condition>
|
||||
</Control>
|
||||
<Control Id="WSLInstallCheckbox" Type="CheckBox" X="135" Y="190" Width="226" Height="18" CheckBoxValue="1" Property="WSL_INSTALL" Default="no" Text="Install WSL if needed (requires reboot)">
|
||||
<Condition Action="show">MACHINE_PROVIDER = "wsl"</Condition>
|
||||
<Condition Action="hide">MACHINE_PROVIDER = "hyperv" OR HIDE_PROVIDER_CHOICE</Condition>
|
||||
<Condition Action="hide">HAS_WSLFEATURE = 1</Condition>
|
||||
</Control>
|
||||
<Control Id="HyperVInstallCheckbox" Type="CheckBox" X="135" Y="190" Width="226" Height="18" CheckBoxValue="1" Property="HYPERV_INSTALL" Default="no" Text="Install Hyper-V if needed (requires reboot)">
|
||||
<Condition Action="show">MACHINE_PROVIDER = "hyperv"</Condition>
|
||||
<Condition Action="hide">MACHINE_PROVIDER = "wsl" OR HIDE_PROVIDER_CHOICE</Condition>
|
||||
<Condition Action="hide">HAS_HYPERVFEATURE = 1</Condition>
|
||||
|
||||
</Control>
|
||||
<Control Id="WSLInstallCheckbox" Type="CheckBox" X="135" Y="190" Width="226" Height="18" CheckBoxValue="1" Property="WSL_INSTALL" Default="no" Text="Install WSL if needed (requires reboot)" ShowCondition="MACHINE_PROVIDER = "wsl"" HideCondition="(MACHINE_PROVIDER = "hyperv" OR HIDE_PROVIDER_CHOICE) OR (HAS_WSLFEATURE = 1)" />
|
||||
<Control Id="HyperVInstallCheckbox" Type="CheckBox" X="135" Y="190" Width="226" Height="18" CheckBoxValue="1" Property="HYPERV_INSTALL" Default="no" Text="Install Hyper-V if needed (requires reboot)" ShowCondition="MACHINE_PROVIDER = "hyperv"" HideCondition="(MACHINE_PROVIDER = "wsl" OR HIDE_PROVIDER_CHOICE) OR (HAS_HYPERVFEATURE = 1)" />
|
||||
<Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUIBack)" />
|
||||
<Control Id="Install" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Default="yes" Text="!(loc.WelcomeEulaDlgInstall)">
|
||||
<Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg">!(wix.WixUICostingPopupOptOut) OR CostingComplete = 1</Publish>
|
||||
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
|
||||
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
|
||||
<Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg" Condition="!(wix.WixUICostingPopupOptOut) OR CostingComplete = 1" />
|
||||
<Publish Event="EndDialog" Value="Return" Condition="OutOfDiskSpace <> 1" />
|
||||
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg" Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)" />
|
||||
<Publish Event="EndDialog" Value="Return" Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"" />
|
||||
<Publish Event="EnableRollback" Value="False" Condition="OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"" />
|
||||
<Publish Event="SpawnDialog" Value="OutOfDiskDlg" Condition="(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")" />
|
||||
</Control>
|
||||
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
|
||||
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
|
||||
<Publish Event="SpawnDialog" Value="CancelDlg" />
|
||||
</Control>
|
||||
|
||||
</Dialog>
|
||||
</UI>
|
||||
|
||||
<InstallUISequence>
|
||||
<Show Dialog="WelcomeInstallDlg" Before="ProgressDlg" Overridable="yes">NOT Installed</Show>
|
||||
</InstallUISequence>
|
||||
</Fragment>
|
||||
</Wix>
|
||||
|
Reference in New Issue
Block a user