Update WiX toolset to 6.0.2 - #15060
Conversation
…t 6.0.1 Use the same WiX toolset installation on both Windows architectures Fix the broken Multiuser Installation of the WiX 3.14 support in CPack
| # This is a workaround for a SSL false positive in cmake 3.26.4 | ||
| # When downloading the manual. 3.21 is required for installing the | ||
| # ANGLE Dlls via IMPORTED_RUNTIME_ARTIFACTS |
There was a problem hiding this comment.
The comment is from here:
#12197
Can you verify that downloading the manual works with CMake 3.30
| # This is a workaround for a SSL false positive in cmake 3.26.4 | |
| # When downloading the manual. 3.21 is required for installing the | |
| # ANGLE Dlls via IMPORTED_RUNTIME_ARTIFACTS | |
| # On Windows, we need at least CMake 3.30.x for WIX toolset >= 4.0 |
There was a problem hiding this comment.
I tried this PR with my local CMake 4.1.1 which comes with VS2026 and it downloads the manual flawless:
[CMake] -- Downloading manual from https://downloads.mixxx.org/manual/2.6/mixxx-manual-2.6-en.pdf...
1> [CMake] -- [download 0% complete]
1> [CMake] -- [download 1% complete]
1> [CMake] -- [download 2% complete]
d0cb83f to
9ad7d92
Compare
9ad7d92 to
31a41a1
Compare
|
For my understanding the C# code of wixsharp is only an interface that finally creates a wix code and than to an msi file. If it is possible with wixsharp, with some luck it is also possible for wix. |
ae2a3b6 to
dc85eaa
Compare
…LL, that can be called inside of our MSI installer. FindAllRelatedMixxxInstallations detects old Mixxx installation with the illegal install scope "none"
dc85eaa to
f9b07d7
Compare
|
I think I fixed this. The C# code section pointed by @daschuer does not generate MSI code, it is code that is called by MSI as Custom Action. I implemented this functionality as C++ DLL which is called as Custom Action in the MSI to get all previous Mixxx installations.
This solves the issue with the old installations, where CPack set the invalid installation scope |
daschuer
left a comment
There was a problem hiding this comment.
Great you have found a solution. I have added some nit picks for code style, basically.
How it the DLL deployed? Does Wix care for it automatically? Maybe you can drop a comment about it.
Yes, it should deploy it automatically. But it would be good, if someone with a vanilla system could confirm that this works. |
|
Signing can't hurd. If it is only part of the signed MSI it is probably already no security risk. |
89a5a76 to
94499b8
Compare
94499b8 to
1a16de9
Compare
| // Enumerate ALL products with our UpgradeCode (scope-agnostic). | ||
| wchar_t relatedProduct[kMsiGuidBufferSize] = {}; | ||
| DWORD index = 0; | ||
| while (MsiEnumRelatedProductsW(kMixxxUpgradeCode, 0, index, relatedProduct) == ERROR_SUCCESS) { |
|
When downgrading to 2.5 from this 2.6 the user create a program folder of partially new and old files. We need to advice the users that they uninstall 2.6 manually Before installing downgrading 2.5. With the old installer, the user was not able to downgrade and was prompted to uninstall the newer version manually. Can we patch the installer for 2.5.5 based on Old Wix in the same way that a new 2.6 is found, that they can smoothy change between 2.5.5 and 2.6.0 at least? For the already released 2.5.4 we can do nothing? What do you think? |
|
ChatGPT has this explanation: Why MSI might find the EXE in your Downloads folder MSI internally tracks component keypaths and source locations. If the component identity got mixed up during upgrade: Old product instance still registered Component GUID reused KeyPath resolution runs Windows searches known source locations It finds mixxx.exe somewhere else (like your test folder) Then the advertised shortcut resolves to that. This looks insane, but it's classic MSI behavior. |
daschuer
left a comment
There was a problem hiding this comment.
The code looks good. I read a bit and while the finding with the random mixxx.exe is a severe issue. It is unlikely caused by you changes.
The question remains: do we want to add a similar patch to the 2.5 branch detecting the new installation?
I don't think we should delay 2.5.5 for this, as we discontinue support for former releases anyway. But I would mention in the 2.6 changelog, that downgrade requires manual deinstallation before installing the former release. |



Closes: #15056
Ensures for ARM64 from the begining that we generate valid installations.
This hopefully will reduce the number of failed installation attemps, because the need for Admin rights is now correctly visualized and users see that they need elevated rights to install it.
Installer is generally smaller and faster.