[Bug 29354] Microsoft Virtual PC 2007 SP1 installer fails to get past the "Product Key" dialog
wine-bugs at winehq.org
wine-bugs at winehq.org
Fri Dec 16 14:19:21 CST 2011
http://bugs.winehq.org/show_bug.cgi?id=29354
--- Comment #3 from Anastasius Focht <focht at 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.txt
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
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list