https://bugs.winehq.org/show_bug.cgi?id=45972
Bug ID: 45972 Summary: Lego Mindstorms EV3 1.3.1 installer crashes Product: Wine Version: 3.17 Hardware: x86 URL: https://le-www-live-s.legocdn.com/downloads/LMS-EV3/LM S-EV3_Full-setup_1.3.1_en-US_WIN32.exe OS: Linux Status: NEW Keywords: download, Installer Severity: normal Priority: P2 Component: msi Assignee: wine-bugs@winehq.org Reporter: dmitry@baikal.ru Distribution: ---
Warning: winetricks has a recipe to install Lego Mindstorms EV3 as 'ev3' however it installs a lot of unnecessary things like vcrun2005, ie8 and dotnet40 and after that it downloads an old version of the software.
In order to reproduce this bug just download the installer specified in URL field and run it. After initial unpacking and pressing "Next" the installer crashes, and shows its own crash handler window with a backtrace.
Fortunately after the installer has crashed it leaves in the %TEMP% directory full installation tree under "LEGO MINDSTORMS EV3 Home Edition" sub-directory. In order to reproduce further crashes and make the investigation of the bug easier just locate in that directory tree MetaUninstaller.msi under Products/MetaUninstaller/MU and run 'wine msiexec /i MetaUninstaller.msi'.
To make long story short: the crash is caused by silently failing "NIPaths" custom action due to a failed MsiViewModify() call. MsiViewModify() failure happens because of the check https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/msi/msiquery.c#l696 696 if ( mode == MSIMODIFY_UPDATE && rec->query != query ) 697 return ERROR_FUNCTION_FAILED; since for the remote MSIRECORD structures rec->query field always stays not initialized (NULL). Commenting out this check makes both the MetaUninstaller and Lego Mindstorms EV3 installations work, however this breaks the tests.
Probably one of our MSI experts has an idea how to fix this issue properly.