http://bugs.winehq.org/show_bug.cgi?id=29354
Bug #: 29354 Summary: Microsoft Virtual PC 2007 SP1 installer fails to get past the "Product Key" dialog Product: Wine Version: 1.3.34 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: msi AssignedTo: wine-bugs@winehq.org ReportedBy: focht@gmx.net Classification: Unclassified
Hello,
split off bug mentioned in http://bugs.winehq.org/show_bug.cgi?id=17512#c3 to track what is most likely a regression ...
--- quote --- Tested in 1.3.19 Didn't crash but I couldn't get past the "Product Key" screen. The "Next" button didn't seem to do anything. --- quote ---
The problem in Microsoft Virtual PC 2007 SP1 installer is the "ValidateProductID" standard action.
Dump using ORCA:
--- snip --- CustomerInformationDialog NextButton NewDialog ReadyToInstallDialog PIDRET = 0 4 CustomerInformationDialog NextButton DoAction CA_ValidatePID NOT ProductID AND PIDKEY AND PIDKEY<>" " 1 CustomerInformationDialog NextButton DoAction CA_InstallForAllUsers NOT VPC2004INSTALLED 2 CustomerInformationDialog NextButton DoAction CA_SetTargetPathOnUpgrade VPC2004INSTALLED 3 --- snip ---
First condition, if true -> CA_ValidatePID gets executed.
--- snip --- 0023:trace:msi:MSI_EvaluateConditionW L"NOT ProductID AND PIDKEY AND PIDKEY<>" "" ... 0023:trace:msi:msi_get_property returning L"PWCVDGDPM7P23VYG6QM4R8Y8T" for property L"ProductID" ... 0023:trace:msi:msi_get_property returning L"PWCVDGDPM7P23VYG6QM4R8Y8T" for property L"PIDKEY" ... 0023:trace:msi:MSI_EvaluateConditionW 0 <- L"NOT ProductID AND PIDKEY AND PIDKEY<>" "" --- snip ---
(not fulfilled)
Another condition to reach "ReadyToInstallDialog" is "PIDRET = 0".
--- snip --- 0023:trace:msi:MSI_ProcessMessage (nil) (nil) (nil) 0 10 L"Action start 18:26:06: ValidateProductID." 0023:trace:msi:msi_get_property returning L"74216<````=````=````=````=`````>@@@@@" for property L"PIDTemplate" 0023:fixme:msi:ACTION_ValidateProductID partial stub: template L"74216<````=````=````=````=`````>@@@@@" key L"PWCVDGDPM7P23VYG6QM4R8Y8T" 0023:trace:msi:msi_set_property 0x13ce60 L"ProductID" L"PWCVDGDPM7P23VYG6QM4R8Y8T" 0023:trace:msi:MSI_ProcessMessage (nil) (nil) (nil) 0 10 L"Action ended 18:26:06: ValidateProductID. Return value 0." ... 0023:trace:msi:MSI_EvaluateConditionW L"PIDRET = 0" 0023:trace:msi:msi_get_property property L"PIDRET" not found 0023:trace:msi:MSI_EvaluateConditionW 0 <- L"PIDRET = 0" --- snip ---
The "PIDRET" property never exists hence the installation is stuck in "CustomerInformationDialog".
If you google for "Adding PIDRET property" you will find many similar looking msi logs, suggesting that this property is added during ValidatePID custom action:
--- snip --- MSI (c) (DC:20) [17:55:05:750]: Doing action: ValidatePID MSI (c) (DC:20) [17:55:05:750]: Note: 1: 2205 2: 3: ActionText Action 17:55:05: ValidatePID. Action start 17:55:05: ValidatePID. ... MSI (c) (DC!3C) [17:55:05:875]: PROPERTY CHANGE: Adding PID property. Its value is '58730-000-0000007-05734'. MSI (c) (DC!3C) [17:55:05:875]: PROPERTY CHANGE: Adding ProductID property. Its value is '58730-000-0000007-05734'. ... MSI (c) (DC!3C) [17:55:05:875]: PROPERTY CHANGE: Adding PIDRET property. Its value is '0'. Action ended 17:55:05: ValidatePID. Return value 1. --- snip ---
Because ProductID was set earlier during ValidateProductID standard action, CA_ValidatePID is never executed.
http://source.winehq.org/git/wine.git/blob/8cc5561fbf9f3250fbd2d986390e4013e...
If you remove line 6891 the installer executes the custom action which allows to proceed and let the installation finally succeed.
You need 'winetricks mfc42' for CA_ValidatePID.
Regards