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
http://bugs.winehq.org/show_bug.cgi?id=29354
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, Installer, | |regression URL| |http://www.microsoft.com/do | |wnloads/details.aspx?Family | |Id=28C97D22-6EB8-4A09-A7F7- | |F6C7A1F000B5&displaylang=en Regression SHA1| |068cb1291b11965b69464b5621b | |d5e36cd1af8d6
--- Comment #1 from Anastasius Focht focht@gmx.net 2011-12-15 13:18:26 CST --- Hello,
filling some fields. Also adding regression info as this problem was initially not present with installer (bug 17512).
http://source.winehq.org/git/wine.git/commitdiff/068cb1291b11965b69464b5621b...
is most likely the culprit.
Regards
http://bugs.winehq.org/show_bug.cgi?id=29354
--- Comment #2 from Hans Leidekker hans@meelstraat.net 2011-12-16 05:10:59 CST --- (In reply to comment #0)
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.
ValidateProductID must set ProductID of course (removing that line would break the tests). I wonder if CA_ValidatePID should be run before ValidateProductID.
http://bugs.winehq.org/show_bug.cgi?id=29354
--- Comment #3 from Anastasius Focht focht@gmx.net 2011-12-16 14:19:21 CST --- Hello Hans,
I looked again with ORCA and it seems in silent mode "CA_ValidatePID" custom action is explicitly referenced.
Dump of "InstallExecuteSequence" table, ordered by "id":
--- snip --- SystemFolder.3D2F911E_A60A_4C07_8F7D_5306DC073E9A 1 WindowsFolder.3D2F911E_A60A_4C07_8F7D_5306DC073E9A 1 AppSearch 50 LaunchConditions 100 CA_CheckForVMMService.3D2F911E_A60A_4C07_8F7D_5306DC073E9A 1 101 VMMImmediateRebootRequired.3D2F911E_A60A_4C07_8F7D_5306DC073E9A VMM_RebootNecessary.3D2F911E_A60A_4C07_8F7D_5306DC073E9A=1 And $VMMDriver.3D2F911E_A60A_4C07_8F7D_5306DC073E9A = 3 102 CA_CheckOldInstallForAllUsers Not Installed AND (UILevel="2" OR UILevel="3" OR UILevel="4") AND Not PATCH 198 CA_ValidatePID PATCH OR (Not INSTALLED AND (UILevel="2" OR UILevel="3" OR UILevel="4")) 199 FindRelatedProducts 200 Error_FutureBuildInstalled Not Installed And (FUTUREBUILDINSTALLED) 201 ValidateProductID 700 CostInitialize 800 FileCost 900 --- snip --
"CA_ValidatePID" -> id = 199 "ValidateProductID" -> id = 700
Install works:
--- snip --- $ wine msiexec -i Virtual_PC_2007_Install.msi /q --- snip ---
Dumping "InstallUISequence", ordered by id:
--- snip --- SetupCompleteErrorDialog -3 SetupInterruptedDialog -2 SetupCompleteSuccessDialog -1 SystemFolder.3D2F911E_A60A_4C07_8F7D_5306DC073E9A 1 WindowsFolder.3D2F911E_A60A_4C07_8F7D_5306DC073E9A 1 AppSearch 50 CA_CheckOldInstallForAllUsers Not Installed 199 FindRelatedProducts 200 Error_FutureBuildInstalled FUTUREBUILDINSTALLED 201 ValidateProductID 700 CostInitialize 800 FileCost 900 CostFinalize 1000 InstallWelcomeDialog Not Installed 1001 ErrorAdminPrivilegeDialog Not AdminUser 1002 ErrorMustUninstallDialog ERROR_MUST_UNINSTALL 1003 ErrorMustUninstallTrialDialog ERROR_MUST_UNINSTALL_TRIAL 1004 ErrorMustUninstallVPC52Dialog ERROR_MUST_UNINSTALL_VPC52 1005 ErrorMustUninstallVSPreviewDialog ERROR_MUST_UNINSTALL_VS_PREVIEW 1006 ErrorUnsupportedOSDialog ERROR_UNSUPP_OS 1007 WarningUnsupportedInstallationDialog Not Installed AND ERROR_UNSUPP_INS 1008 LicenseAgreementDialog Not Installed 1009 RemoveWelcomeDialog Installed AND Not PATCH 1010 SetupProgressDialog 1011 MigrateFeatureStates 1200 --- snip ---
"ValidateProductID" -> id = 700
When you google using '+"Adding PIDRET property" +CustomerInformationDialog' keywords you find msi verbose log of someone who installed VPC 2007 on Windows:
(unicode log):
http://attachments.techguy.org/attachments/132724d1212217445/vpcinstalllog.t...
Interesting parts (compare with UI sequence tabled dumped with ORCA):
--- snip --- MSI (c) (D0:6C) [23:32:15:552]: UI Sequence table 'InstallUISequence' is present and populated. MSI (c) (D0:6C) [23:32:15:552]: Running UISequence MSI (c) (D0:6C) [23:32:15:552]: PROPERTY CHANGE: Adding EXECUTEACTION property. Its value is 'INSTALL'. ... MSI (c) (D0:6C) [23:32:15:553]: Doing action: AppSearch ... MSI (c) (D0:6C) [23:32:15:555]: Doing action: CA_CheckOldInstallForAllUsers ... MSI (c) (D0:6C) [23:32:15:586]: Doing action: FindRelatedProducts ... MSI (c) (D0:6C) [23:32:15:586]: Skipping action: Error_FutureBuildInstalled (condition is false) ... MSI (c) (D0:6C) [23:32:15:586]: Doing action: ValidateProductID Action 23:32:15: ValidateProductID. Action start 23:32:15: ValidateProductID. Action ended 23:32:15: ValidateProductID. Return value 1. MSI (c) (D0:6C) [23:32:15:587]: Doing action: CostInitialize ... MSI (c) (D0:6C) [23:32:15:589]: Doing action: CostFinalize ... MSI (c) (D0:6C) [23:32:15:592]: Doing action: InstallWelcomeDialog ... MSI (c) (D0:48) [23:32:17:093]: Doing action: CA_CheckIfWeCanInstall ... MSI (c) (D0:6C) [23:32:17:104]: Doing action: LicenseAgreementDialog ... Action 23:32:17: LicenseAgreementDialog. Dialog created MSI (c) (D0:48) [23:32:18:597]: PROPERTY CHANGE: Modifying AgreeToLicense property. Its current value is 'No'. Its new value: 'Yes'. Action 23:32:22: CustomerInformationDialog. Dialog created MSI (c) (D0:48) [23:32:23:485]: Doing action: CA_ValidatePID Action 23:32:23: CA_ValidatePID. Validating the product key Action start 23:32:23: CA_ValidatePID. MSI (c) (D0:EC) [23:32:23:486]: Invoking remote custom action. DLL: C:\Users\JOELST~1\AppData\Local\Temp\MSIF7AD.tmp, Entrypoint: ValidateProductID ... MSI (c) (D0!30) [23:32:23:629]: PROPERTY CHANGE: Adding PID property. Its value is '74216-270-1903431-41429'. MSI (c) (D0!30) [23:32:23:629]: PROPERTY CHANGE: Adding ProductID property. Its value is '74216-270-1903431-41429'. MSI (c) (D0!30) [23:32:23:629]: PROPERTY CHANGE: Adding DPID property. Its value is 'xxx'. MSI (c) (D0!30) [23:32:23:629]: PROPERTY CHANGE: Adding DigitalProductID property. Its value is 'xxx'. MSI (c) (D0!30) [23:32:23:630]: PROPERTY CHANGE: Adding PIDRET property. Its value is '0'. ... Action ended 23:32:23: CA_ValidatePID. Return value 1. MSI (c) (D0:48) [23:32:23:630]: Doing action: CA_InstallForAllUsers ... --- snip ---
That log shows that:
1) in UI install "ValidateProductID" is called before "CA_ValidatePID" due to explicit sequence entry.
2) "CA_ValidatePID" is called immediately after "CustomerInformationDialog" dialog is created.
ORCA table dump of "ControlEvent" table for "CustomerInformationDialog" shows that "CA_ValidatePID" can't be called unless the expression 'NOT ProductID AND PIDKEY AND PIDKEY<>" "' evaluates to true.
Googling further I found a hint in the following mailing list post (Wix installer):
http://sourceforge.net/mailarchive/message.php?msg_id=28023449
--- quote --- Server ValidateProductID sets ProductID respondingly:
MSI (s) (0C:E4) [15:28:07:917]: Doing action: ValidateProductID Action 15:28:07: ValidateProductID. Action start 15:28:07: ValidateProductID. MSI (s) (0C:E4) [15:28:07:918]: PROPERTY CHANGE: Adding ProductID property. Its value is 'TES-TTES-1234'. Action ended 15:28:07: ValidateProductID. Return value 1. --- quote ---
The comment explicitly mentions "Server side" and the log indeed shows "MSI (s)"
It seems there is a distinction made between MSI client vs. MSI server side.
"ValidateProductID" on server side -> "ProductID" property globally added? "ValidateProductID" on client side -> "ProductID" property not added?
Could that be the culprit?
Regards
http://bugs.winehq.org/show_bug.cgi?id=29354
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Microsoft Virtual PC 2007 |Multiple Microsoft product |SP1 installer fails to get |installers fail due to |past the "Product Key" |ProductID being set during |dialog |client side | |"ValidateProductID" | |standard action (Microsoft | |Virtual PC 2007, Visual | |Studio 2008 Prof)
--- Comment #4 from Anastasius Focht focht@gmx.net 2012-02-12 11:11:16 CST --- Hello,
the "Visual Studio 2008 Professional" installer also suffers from this (and possibly others).
Prerequisite: clean WINEPREFIX, 'winetricks -q dotnet30'
When the main installer processes the "Visual Studio 2008" component there is a custom action "CA_SetPidProps_x86_deu" -> "SetPidProps" failing (also happens with eng. version).
--- snip --- 0033:trace:msi:ACTION_CustomAction Handling custom action L"CA_SetPidProps_x86_deu" (1 L"BIN_File_301630_x86_deu" L"SetPidProps") ... 0033:Ret PE DLL (proc=0x3b1b85b6,module=0x3b1b0000 L"msi2361.tmp",reason=PROCESS_ATTACH,res=(nil)) retval=1 ... 0033:trace:msi:HANDLE_CustomType1 Calling function L"SetPidProps" from L"C:\users\focht\Temp\msi2361.tmp" ... 0062:trace:msi:ACTION_CallDllFunction calling L"SetPidProps" ... 0062:trace:msi:msi_get_property returning L"1031" for property L"ProductLanguage" ... 0062:Call msi.MsiRecordSetStringW(00000004,00000000,155fdd90 L"02/11/12 22:22:28 DDSet_Status: LANGID: [2]") ret=3b1b3e5c ... 0062:trace:msi:MSI_ProcessMessage (nil) 0x39e65180 0x39e64ac4 1f9f 10 L"1: 0 2: 1031 3: 4: 5: 6: 7: 8: 9: 10: " ... 0062:Call msi.MsiRecordSetStringW(00000004,00000000,155fdd90 L"02/11/12 22:22:28 DDSet_Entry: SetPidProps started") ret=3b1b3d72 ... 0062:Call msi.MsiGetPropertyW(00000003,3b1b3600 L"PIDSEQ",155fe808,155fdd80) ret=3b1b67af ... 0062:Call msi.MsiRecordSetStringW(00000004,00000000,155fdd90 L"02/11/12 22:22:28 DDSet_Status: \t\tPIDSEQ: [2]") ret=3b1b3e03 ... 0062:trace:msi:MSI_ProcessMessage (nil) 0x39e65180 0x39e64ac4 1f9f 10 L"1: 0 2: 3: 4: 5: 6: 7: 8: 9: 10: " ... 0062:Call msi.MsiGetPropertyW(00000003,3b1b362c L"PIDRET",155fe828,155fdd80) ret=3b1b67f9 ... 0062:Call msi.MsiRecordSetStringW(00000004,00000000,155fdd90 L"02/11/12 22:22:28 DDSet_Status: \t\tPIDRET: [2]") ret=3b1b3e03 ... 0062:trace:msi:MSI_ProcessMessage (nil) 0x39e65180 0x39e64ac4 1f9f 10 L"1: 0 2: 0 3: 4: 5: 6: 7: 8: 9: 10: " ... 0062:Call msi.MsiGetPropertyW(00000003,3b1b3658 L"EDITIONTYPE",155fe7e8,155fdd80) ret=3b1b6846 ... 0062:Call msi.MsiRecordSetStringW(00000004,00000000,155fdd90 L"02/11/12 22:22:28 DDSet_Status: \t\tEDITIONTYPE: [2]") ret=3b1b3e03 ... 0062:trace:msi:MSI_ProcessMessage (nil) 0x39e65180 0x39e64ac4 1f9f 10 L"1: 0 2: pro 3: 4: 5: 6: 7: 8: 9: 10: " ... 0062:Call msi.MsiGetPropertyW(00000003,15ab0e60 L"PIDTemplate",155fdafc,155fdaf4) ret=3b1b5ebc ... 0062:Call msi.MsiRecordSetStringW(00000004,00000000,155fdd90 L"02/11/12 22:22:28 DDSet_Status: \t\tszMPC: [2]") ret=3b1b3e03 ... 0062:trace:msi:MSI_ProcessMessage (nil) 0x39e65180 0x39e64ac4 1f9f 10 L"1: 0 2: 91988 3: 4: 5: 6: 7: 8: 9: 10: " ... 0062:Call msi.MsiRecordSetStringW(00000004,00000000,155fdd90 L"02/11/12 22:22:28 DDSet_Error: You have entered an invalid Product Key. Please enter a valid Product Key to continue.\nThe Product Key may be found on the CD case or the Certificate of Authenticity.") ret=3b1b3db6 ... 0062:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,155fcc08) ret=3b1bdbe6 0062:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b83924f ip=7b83924f tid=0062 0062:trace:seh:raise_exception info[0]=19930520 0062:trace:seh:raise_exception info[1]=155fdc3c 0062:trace:seh:raise_exception info[2]=3b1c506c 0062:trace:seh:raise_exception eax=7b826289 ebx=7b8a96a8 ecx=19930520 edx=155fcb14 esi=155fcbf4 edi=155fcb70 0062:trace:seh:raise_exception ebp=155fcb58 esp=155fcaf4 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00000287 0062:trace:seh:call_stack_handlers calling handler at 0x3b1c4883 code=e06d7363 flags=1 ... 0062:Call msi.MsiRecordSetStringW(00000004,00000000,155fdd90 L"02/11/12 22:22:28 DDSet_Error: SetPidProps failed.") ret=3b1b3d72 ... 0062:Call msi.MsiRecordSetStringW(00000004,00000000,15ab0e60 L"02/11/12 22:22:28 DDSet_CARetVal: 1603") ret=3b1c2c5d ... 0062:Call msi.MsiRecordSetStringW(00000004,00000000,155fdd90 L"02/11/12 22:22:28 DDSet_Status: \t\t SetPidProps Return Value: [2]") ret=3b1b3e5c ... 0062:trace:msi:MSI_ProcessMessage (nil) 0x39e65180 0x39e64ac4 1f9f 10 L"1: 0 2: 1603 3: 4: 5: 6: 7: 8: 9: 10: " ... 0062:Call msi.MsiRecordSetStringW(00000004,00000000,155fdd90 L"02/11/12 22:22:28 DDSet_Status: \t\tSetPidProps Returned PID: [2]") ret=3b1b3e03 ... 0062:trace:msi:MSI_ProcessMessage (nil) 0x39e65180 0x39e64ac4 1f9f 10 L"1: 0 2: 0 3: 4: 5: 6: 7: 8: 9: 10: " ... 0062:Call msi.MsiRecordSetStringW(00000004,00000000,155fdd90 L"02/11/12 22:22:28 DDSet_Exit: SetPidProps ended") ret=3b1b3d72 ... 0062:trace:msi:DllThread custom action (62) returned 1603 ... 0033:err:msi:ITERATE_Actions Execution halted, action L"CA_SetPidProps_x86_deu" returned 1603 --- snip ---
The custom action first reads the "PIDSEQ", "PIDRET" and "EDITIONTYPE" properties. If "PIDRET" != 0 the installer complains "CA_GeneratePID failed before this CA was called". The custom action then reads the "PIDTemplate" property and extracts PID and MPC.
The first five characters of the PID indicate the Microsoft Product Code (MPC). The three characters after the MPC indicate the channel ID.
The "PIDSEQ" property value is converted to a number and internally used in validation process. The MPC is converted to some kind of SKU and verified with some tables.
I found a Windows MSI log for this kind of custom action here:
ftp://ftp.geoplan.ufl.edu/pub/santafe/AnooshBackup/Fac_expert_web/Backup-05-06/Microsoft%20Visual%20Studio%209.0/Microsoft%20Visual%20Studio%202008%20Professional%20Edition%20-%20ENU/Logs/VSMsiLog65CF.txt
--- snip --- MSI (s) (78:40) [15:41:19:484]: Doing action: CA_SetPidProps_x86_enu Action ended 15:41:19: CA_SetEditionType_x86_enu. Return value 1. MSI (s) (78:24) [15:41:19:515]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI1DB.tmp, Entrypoint: SetPidProps Action start 15:41:19: CA_SetPidProps_x86_enu. 02/24/09 15:41:19 DDSet_Status: LANGID: 1033 02/24/09 15:41:19 DDSet_Entry: SetPidProps started 02/24/09 15:41:19 DDSet_Status: PIDSEQ: 270000001 02/24/09 15:41:19 DDSet_Status: PIDRET: 0 02/24/09 15:41:19 DDSet_Status: EDITIONTYPE: pro MSI (s) (78!80) [15:41:19:765]: PROPERTY CHANGE: Adding PID_Installed property. Its value is 'xxx'. MSI (s) (78!80) [15:41:19:765]: PROPERTY CHANGE: Adding PID_Length property. Its value is 'xxx'. MSI (s) (78!80) [15:41:19:765]: PROPERTY CHANGE: Adding PID_Mpc property. Its value is '91605'. MSI (s) (78!80) [15:41:19:765]: PROPERTY CHANGE: Adding PID_Range property. Its value is 'xxx'. 02/24/09 15:41:19 DDSet_Status: szMPC: 91605 02/24/09 15:41:19 DDSet_CARetVal: 0 02/24/09 15:41:19 DDSet_Status: SetPidProps Return Value: 0 02/24/09 15:41:19 DDSet_Status: SetPidProps Returned PID: 0 02/24/09 15:41:19 DDSet_Exit: SetPidProps ended --- snip ---
As you can see from Windows MSI log, the "PIDSEQ" property has value "270000001", Wine -> not set/empty.
I searched all temp binaries extracted during MSI run and found the property name/string in a binary which contained "ValidateProductID" custom action.
Looking at the trace log for that custom action:
--- snip --- 0033:trace:msi:ACTION_CustomAction Handling custom action L"CA_GeneratePID_x86_deu" (41 L"BIN_File_60348_x86_deu" L"ValidateProductID") ... 0061:Call KERNEL32.LoadLibraryW(0291dbac L"C:\users\focht\Temp\msi63d1.tmp") ret=7d56a792 0061:Ret KERNEL32.LoadLibraryW() retval=007d0000 ret=7d56a792 ... 0061:trace:msi:ACTION_CallDllFunction calling L"ValidateProductID" ... 0061:Call msi.MsiGetPropertyA(00000003,007d1190 "PID",15aae7dc,15aae1b4) ret=007d15a8 ... 0061:Call KERNEL32.WideCharToMultiByte(00000000,00000000,029230d0 L"",ffffffff,00000000,00000000,00000000,00000000) ret=7d589847 0061:Ret KERNEL32.WideCharToMultiByte() retval=00000001 ret=7d589847 ... 0061:Call msi.MsiGetPropertyA(00000003,007d1184 "ProductID",15aae7dc,15aae1b4) ret=007d16f7 ... 0061:Call KERNEL32.WideCharToMultiByte(00000000,00000000,029230d8 L"xxxxxxxxxxxxxxxxxxxxxxxxx",ffffffff,00000000,00000000,00000000,00000000) ret=7d589847 0061:Ret KERNEL32.WideCharToMultiByte() retval=0000001a ret=7d589847 ... 0061:Call KERNEL32.lstrcmpA(15aae7dc "xxxxxxxxxxxxxxxxxxxxxxxxx",007d117c "None") ret=007d1714 0061:Ret KERNEL32.lstrcmpA() retval=00000001 ret=007d1714 ... 0061:Call msi.MsiSetPropertyA(00000003,007d10f0 "PIDRET",15aae76c "0") ret=007d1ddb ... 0061:trace:msi:DllThread custom action (61) returned 0 --- snip ---
(xxxxxxxxxxxxxxxxxxxxxxxxx = product key)
No sign of "PIDSEQ".
What's not visible and can only be found during debugging/analysis: this CA is basically short circuited because "ProductID" property value is already set.
Only if "ProductID" property is not set a full evaluation happens by reading "PIDTemplate" property and triggering setting of various additional properties -> PIDSEQ.
Current source: http://source.winehq.org/git/wine.git/blob/bca0fd6a5522933c1dcc5dd87c495091a...
--- snip --- 6859 UINT msi_validate_product_id( MSIPACKAGE *package ) 6860 { 6861 LPWSTR key, template, id; 6862 UINT r = ERROR_SUCCESS; 6863 6864 id = msi_dup_property( package->db, szProductID ); 6865 if (id) 6866 { 6867 msi_free( id ); 6868 return ERROR_SUCCESS; 6869 } 6870 template = msi_dup_property( package->db, szPIDTemplate ); 6871 key = msi_dup_property( package->db, szPIDKEY ); 6872 if (key && template) 6873 { 6874 FIXME( "partial stub: template %s key %s\n", debugstr_w(template), debugstr_w(key) ); 6875 r = msi_set_property( package->db, szProductID, key ); 6876 } 6877 msi_free( template ); 6878 msi_free( key ); 6879 return r; 6880 } --- snip ---
Like the other installers, commenting out line 6875 lets the VS 2008 installer succeed.
"ValidateProductID" custom action without "ProductID" set:
--- snip --- ... 0044:trace:msi:ACTION_CustomAction Handling custom action L"CA_GeneratePID_x86_deu" (41 L"BIN_File_60348_x86_deu" L"ValidateProductID") ... 0019:trace:msi:ACTION_CallDllFunction calling L"ValidateProductID" ... 0019:Call msi.MsiGetPropertyA(00000003,007b1190 "PID",0e5fe7dc,0e5fe1b4) ret=007b15a8 ... 0019:Call KERNEL32.WideCharToMultiByte(00000000,00000000,02a20940 L"",ffffffff,00000000,00000000,00000000,00000000) ret=7d58c81f ... 0019:Call msi.MsiGetPropertyA(00000003,007b1184 "ProductID",0e5fe7dc,0e5fe1b4) ret=007b16f7 ... 0019:Call KERNEL32.WideCharToMultiByte(00000000,00000000,02a20940 L"",ffffffff,00000000,00000000,00000000,00000000) ret=7d58c81f ... 0019:Call msi.MsiGetPropertyA(00000003,007b1154 "PIDTemplate",0e5fe6c4,0e5fe1b4) ret=007b1742 ... 0019:Call KERNEL32.WideCharToMultiByte(00000000,00000000,02a20940 L"xxxxx<````=````=````=````=`````>@@@@@",ffffffff,00000000,00000000,00000000,00000000) ret=7d58c81f ... 0019:Call msi.MsiGetPropertyA(00000003,007b1148 "OEMRelease",0e5fe804,0e5fe1b4) ret=007b179c ... 0019:Call msi.MsiGetPropertyA(00000003,007b113c "OEMID",0e5fe850,0e5fe1b4) ret=007b17e5 ... 0019:Call msi.MsiGetPropertyA(00000003,007b1134 "PIDSKU",0e5fe814,0e5fe1b4) ret=007b1805 ... 0019:Call msi.MsiGetPropertyA(00000003,007b1120 "PIDKEY",0e5fe7dc,0e5fe1b4) ret=007b196b ... 0019:Call msi.MsiSetPropertyA(00000003,007b1128 "CCPTrigger",0e5fe1ac "1") ret=007b1be4 ... 0019:Call msi.MsiSetPropertyA(00000003,007b1118 "PKU",0e5fe1ac "0") ret=007b1c29 ... 0019:Call msi.MsiSetPropertyA(00000003,007b1110 "PIDSEQ",0e5fe77c "270000001") ret=007b1c6b ... 0019:Call msi.MsiSetPropertyA(00000003,007b1190 "PID",0e5fe828 "xxxxx-xxx-xxxxxxx-xxxxx") ret=007b1d7c ... 0019:Call msi.MsiSetPropertyA(00000003,007b1184 "ProductID",0e5fe828 "xxxxx-xxx-xxxxxxx-xxxxx") ret=007b1d8b ... 0019:Call msi.MsiSetPropertyA(00000003,007b1174 "DPID",0e5fe3c0 "#xxxxxxxxxx ....xxxxx"...) ret=007b1d9d ... 0019:Call msi.MsiSetPropertyA(00000003,007b1160 "DigitalProductID",0e5fe3c0 "#xxxxxxxxxx...xxxxx"...) ret=007b1daf ... 0019:Call msi.MsiSetPropertyA(00000003,007b10f0 "PIDRET",0e5fe76c "0") ret=007b1ddb ... 0019:trace:msi:DllThread custom action (19) returned 0 --- snip ---
Several properties are set that are required at later verification stage. The custom action "CA_SetPidProps_x86_deu" succeeds with these set.
If that bug is fixed the installer runs into bug 10601
--- snip --- fixme:ntdll:server_ioctl_file Unsupported ioctl 900a4 (device=9 access=0 func=29 method=0) err:msi:msi_install_assembly Failed to install assembly L"C:\users\focht\Temp\msi26f.tmp\WcfSvcHost.exe" (0x80070032) err:msi:ACTION_InstallFiles Failed to install assembly err:msi:ITERATE_Actions Execution halted, action L"InstallFiles" returned 1603 --- snip ---
Regards
http://bugs.winehq.org/show_bug.cgi?id=29354
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |29905
http://bugs.winehq.org/show_bug.cgi?id=29354
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- See Also| |http://bugs.winehq.org/show | |_bug.cgi?id=17212
http://bugs.winehq.org/show_bug.cgi?id=29354
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- See Also| |http://bugs.winehq.org/show | |_bug.cgi?id=18070
http://bugs.winehq.org/show_bug.cgi?id=29354
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Depends on| |18070
http://bugs.winehq.org/show_bug.cgi?id=29354
--- Comment #5 from Anastasius Focht focht@gmx.net 2013-05-03 04:46:15 CDT --- Hello folks,
obviously still present.
$ wine --version wine-1.5.29-107-gb94cfaf
Regards
http://bugs.winehq.org/show_bug.cgi?id=29354
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |17212
https://bugs.winehq.org/show_bug.cgi?id=29354
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Multiple Microsoft product |Multiple Microsoft product |installers fail due to |installers fail due to |ProductID being set during |ProductID being set during |client side |client side |"ValidateProductID" |"ValidateProductID" |standard action (Microsoft |standard action (Microsoft |Virtual PC 2007, Visual |Virtual PC 2007, Visual |Studio 2008 Prof) |Studio 2008)
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello folks,
still present.
Visual Studio 2008 trial is also affected: http://download.microsoft.com/download/8/1/d/81d3f35e-fa03-485b-953b-ff952e4...
--- snip --- fixme:msi:msi_validate_product_id partial stub: template L"91605<````=````=````=````=`````>@@@@@" key L"XPWKC7X98VKQDGM3QWYVGFD3W" err:msi:ITERATE_Actions Execution halted, action L"CA_SetPidProps_x86_enu" returned 1603 --- snip ---
$ sha1sum VS2008ProEdition90dayTrialENUX1435622.iso bf671c81c0d097f4261b232c80b38bd9549294b0 VS2008ProEdition90dayTrialENUX1435622.iso
$ du -sh VS2008ProEdition90dayTrialENUX1435622.iso 3.4G VS2008ProEdition90dayTrialENUX1435622.iso
$ wine --version wine-1.7.31-99-g5ecea72
Regards
https://bugs.winehq.org/show_bug.cgi?id=29354
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #7 from super_man@post.com --- still present and the fix is still valid
1.7.54
https://bugs.winehq.org/show_bug.cgi?id=29354
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wylda@volny.cz
--- Comment #8 from Wylda wylda@volny.cz --- Still present in wine-2.0-rc1. MS Virtual PC 2007 installation is stuck in "CustomerInformationDialog".
https://bugs.winehq.org/show_bug.cgi?id=29354 Bug 29354 depends on bug 18070, which changed state.
Bug 18070 Summary: Multiple apps need separate msi custom action server process due to COM/MTA and/or isolation issues (Adobe CS3/CS4, Flash, Windows SDK 2008, Strawberry Perl, MS Office 2010) https://bugs.winehq.org/show_bug.cgi?id=18070
What |Removed |Added ---------------------------------------------------------------------------- Status|STAGED |RESOLVED Resolution|--- |FIXED
https://bugs.winehq.org/show_bug.cgi?id=29354
Oleg Dubinskiy oleg.dubinskij2013@yandex.ua changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |oleg.dubinskij2013@yandex.u | |a
--- Comment #9 from Oleg Dubinskiy oleg.dubinskij2013@yandex.ua --- The same issue is still persists with Microsoft Virtual PC 2004 (and 2007) SP1 in ReactOS: https://jira.reactos.org/browse/CORE-14710.
https://bugs.winehq.org/show_bug.cgi?id=29354
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Multiple Microsoft product |Multiple Microsoft product |installers fail due to |installers fail due to |ProductID being set during |ProductID being set during |client side |client side |"ValidateProductID" |"ValidateProductID" |standard action (Microsoft |standard action (Microsoft |Virtual PC 2007, Visual |Virtual PC 2004, 2007, |Studio 2008) |Visual Studio 2008) URL|http://www.microsoft.com/do |https://download.microsoft. |wnloads/details.aspx?Family |com/download/2/5/3/253e22d9 |Id=28C97D22-6EB8-4A09-A7F7- |-b8a4-4219-9596-ee30c83699b |F6C7A1F000B5&displaylang=en |f/Virtual%20PC%202004%20SP1 | |.zip
--- Comment #10 from Anastasius Focht focht@gmx.net --- Privet Oleg,
thanks for the information. Cheers to the ReactOS team.
I will add your link for 'Microsoft Virtual PC 2004 SP1' installer here as the original link for 2007 SP1 is broken. Microsoft tends to hide/erase embarrassing things from the past :-)
https://download.microsoft.com/download/2/5/3/253e22d9-b8a4-4219-9596-ee30c8...
Tidbit: needs 32-bit WINEPREFIX (WINEARCH=win32)
This might be one of those bugs that hangs around forever, probably reaching double digit age _oO_
$ sha1sum Virtual\ PC\ 2004\ SP1.zip 80c7facb79aba0120f649ec8bcdf4f49ea650703 Virtual PC 2004 SP1.zip
$ du -sh Virtual\ PC\ 2004\ SP1.zip 19M Virtual PC 2004 SP1.zip
$ wine --version wine-3.18-151-ge52a20f5bf
Regards
https://bugs.winehq.org/show_bug.cgi?id=29354
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|https://download.microsoft. |https://web.archive.org/web |com/download/2/5/3/253e22d9 |/20061105053540/http://down |-b8a4-4219-9596-ee30c83699b |load.microsoft.com/download |f/Virtual%20PC%202004%20SP1 |/2/5/3/253e22d9-b8a4-4219-9 |.zip |596-ee30c83699bf/Virtual%20 | |PC%202004%20SP1.zip
--- Comment #11 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting, still present.
Adding stable links via Internet Archive:
https://web.archive.org/web/20061105053540/http://download.microsoft.com/dow...
https://web.archive.org/web/20100118161255/http://download.microsoft.com/dow...
$ wine --version wine-5.5
Regards
https://bugs.winehq.org/show_bug.cgi?id=29354
--- Comment #12 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting, still present.
$ wine --version wine-6.0
Regards
https://bugs.winehq.org/show_bug.cgi?id=29354
Jeff Muizelaar jrmuizel@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jrmuizel@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=29354
--- Comment #13 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting, still present.
$ wine --version wine-7.0-rc3-34-gb6dc8399087
Regards
https://bugs.winehq.org/show_bug.cgi?id=29354
SusanCragin susancragin@earthlink.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |susancragin@earthlink.net