diff --git a/packaging/windows/product.wxs.template b/packaging/windows/product.wxs.template
index 66d28a7a65..20a3b8b921 100755
--- a/packaging/windows/product.wxs.template
+++ b/packaging/windows/product.wxs.template
@@ -55,7 +55,7 @@
-
+
NOT UPGRADINGPRODUCTCODE AND NOT WIX_UPGRADE_DETECTED
diff --git a/pkg/crc/cache/cache.go b/pkg/crc/cache/cache.go
index 8e3070160e..9bb9fd8cac 100644
--- a/pkg/crc/cache/cache.go
+++ b/pkg/crc/cache/cache.go
@@ -17,10 +17,11 @@ import (
)
type Cache struct {
- executablePath string
- archiveURL string
- version string
- getVersion func(string) (string, error)
+ executablePath string
+ archiveURL string
+ version string
+ ignoreNameMismatch bool
+ getVersion func(string) (string, error)
}
type VersionMismatchError struct {
@@ -127,14 +128,14 @@ func (c *Cache) cacheExecutable() error {
}
} else {
extractedFiles = append(extractedFiles, assetTmpFile)
- if filepath.Base(assetTmpFile) != c.GetExecutableName() {
+ if filepath.Base(assetTmpFile) != c.GetExecutableName() && !c.ignoreNameMismatch {
logging.Warnf("Executable name is %s but extracted file name is %s", c.GetExecutableName(), filepath.Base(assetTmpFile))
}
}
// Copy the requested asset into its final destination
for _, extractedFilePath := range extractedFiles {
- finalExecutablePath := filepath.Join(constants.CrcBinDir, filepath.Base(extractedFilePath))
+ finalExecutablePath := filepath.Join(constants.CrcBinDir, c.GetExecutableName())
// If the file exists then remove it (ignore error) first before copy because with `0500` permission
// it is not possible to overwrite the file.
os.Remove(finalExecutablePath)
diff --git a/pkg/crc/cache/cache_windows.go b/pkg/crc/cache/cache_windows.go
index 95fc566b20..49b75bdb8f 100644
--- a/pkg/crc/cache/cache_windows.go
+++ b/pkg/crc/cache/cache_windows.go
@@ -12,7 +12,7 @@ import (
func NewWin32BackgroundLauncherCache() *Cache {
url := constants.GetWin32BackgroundLauncherDownloadURL()
version := version.GetWin32BackgroundLauncherVersion()
- return newCache(constants.Win32BackgroundLauncherPath(),
+ cache := newCache(constants.Win32BackgroundLauncherPath(),
url,
version,
func(executable string) (string, error) {
@@ -23,4 +23,8 @@ func NewWin32BackgroundLauncherCache() *Cache {
return strings.TrimSpace(stdOut), nil
},
)
+ // upstream binary name is win32-background-launcher.exe
+ // but we want to name it as crc-background-launcher.exe
+ cache.ignoreNameMismatch = true
+ return cache
}
diff --git a/pkg/crc/constants/constants.go b/pkg/crc/constants/constants.go
index 7a3a9f0947..486d9e3d63 100644
--- a/pkg/crc/constants/constants.go
+++ b/pkg/crc/constants/constants.go
@@ -27,7 +27,7 @@ const (
DaemonLogFile = "crcd.log"
CrcLandingPageURL = "https://console.redhat.com/openshift/create/local" // #nosec G101
DefaultAdminHelperURLBase = "https://github.com/crc-org/admin-helper/releases/download/v%s/%s"
- BackgroundLauncherURL = "https://github.com/crc-org/win32-background-launcher/releases/download/v%s/%s"
+ BackgroundLauncherURL = "https://github.com/crc-org/win32-background-launcher/releases/download/v%s/win32-background-launcher.exe"
DefaultBundleURLBase = "https://mirror.openshift.com/pub/openshift-v4/clients/crc/bundles/%s/%s/%s"
DefaultContext = "admin"
DaemonHTTPEndpoint = "http://unix/api"
@@ -49,7 +49,7 @@ const (
OpenShiftIngressHTTPPort = 80
OpenShiftIngressHTTPSPort = 443
- BackgroundLauncherExecutable = "win32-background-launcher.exe"
+ BackgroundLauncherExecutable = "crc-background-launcher.exe"
)
var adminHelperExecutableForOs = map[string]string{
@@ -196,7 +196,7 @@ func GetKubeAdminPasswordPath() string {
func GetWin32BackgroundLauncherDownloadURL() string {
return fmt.Sprintf(BackgroundLauncherURL,
- version.GetWin32BackgroundLauncherVersion(), BackgroundLauncherExecutable)
+ version.GetWin32BackgroundLauncherVersion())
}
func GetDefaultCPUs(preset crcpreset.Preset) int {