http://bugs.winehq.org/show_bug.cgi?id=24189
Summary: msi: set "System64Folder" standard property in x64 environment (64bit installer of .NET Framework 2.0) Product: Wine Version: 1.3.1 Platform: x86-64 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: msi AssignedTo: wine-bugs@winehq.org ReportedBy: focht@gmx.net
Hello,
continuation of bug 24187 Check for x64 IE5.01 fails.
--- snip ---- 001a:trace:msi:msi_set_property 0x7ffff72baca0 L"SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8" L"C:\windows\system32\" ... 001a:trace:msi:ACTION_AppSearchDr L"SearchForIE501_ENU_A64.3643236F_FC70_11D3_A536_0090278A1BB8" ... 001a:trace:msi:msi_get_property property L"SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8" not found ... 001a:trace:msi:MSI_EvaluateConditionW 1 <- L"( NOT IE501FOUND.3643236F_FC70_11D3_A536_0090278A1BB8 ) AND ( NOT IE501FOUND.3643236F_FC70_11D3_A536_0090278A1BB8 )" ... 001a:trace:msi:ACTION_PerformAction Performing action (L"CA_CheckIE501.3643236F_FC70_11D3_A536_0090278A1BB8") ... 001a:trace:msi:ACTION_CustomAction Handling custom action L"CA_CheckIE501.3643236F_FC70_11D3_A536_0090278A1BB8" (113 (null) L"IE5.01 or higher version is required prior to installing Microsoft .NET Framework") 001a:trace:msidb:MSI_RecordSetStringW 0x7fffec3adb40 0 L"IE5.01 or higher version is required prior to installing Microsoft .NET Framework" ... 001a:err:msi:ITERATE_Actions Execution halted, action L"CA_CheckIE501.3643236F_FC70_11D3_A536_0090278A1BB8" returned 1603 --- snip ----
SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8 property is the culprit
--- snip orca --- SearchForIE501_____X86.3643236F_FC70_11D3_A536_0090278A1BB8 [DD_SystemFolder_X86.3643236F_FC70_11D3_A536_0090278A1BB8] 1 SearchForIE501_ENU_X86.3643236F_FC70_11D3_A536_0090278A1BB8 [DD_SystemFolder_X86.3643236F_FC70_11D3_A536_0090278A1BB8] 1 SearchForIE501_____A64.3643236F_FC70_11D3_A536_0090278A1BB8 [SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8] 1 SearchForIE501_ENU_A64.3643236F_FC70_11D3_A536_0090278A1BB8 [SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8] 1 --- snip orca ---
Although the property is initially set:
--- snip --- 001a:trace:msi:msi_get_property returning L"C:\windows\system32\" for property L"SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8" --- snip ---
It is later reset due to custom action:
--- snip --- 001a:trace:msi:ACTION_CustomAction Handling custom action L"CA_SetSystem64Folder.3643236F_FC70_11D3_A536_0090278A1BB8" (33 L"SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8" L"[System64Folder]") 001a:trace:msidb:MSI_CreateRecord 1 001a:trace:msidb:MSI_RecordSetStringW 0x7fffec3b3010 0 L"[System64Folder]" 001a:trace:msi:MSI_FormatRecordW 0x7fffe3c06490 0x7fffec3b3010 (nil) 0x7fffecf4ddfc 001a:trace:msidb:MSI_RecordIsNull 0x7fffec3b3010 0 001a:trace:msidb:MSI_RecordGetStringW 0x7fffec3b3010 0 (nil) 0x7fffecf4dcbc 001a:trace:msidb:MSI_RecordGetStringW 0x7fffec3b3010 0 0x7fffec3ad750 0x7fffecf4dcbc 001a:trace:msi:MSI_FormatRecordW (L"[System64Folder]") 001a:trace:msidb:MSI_CreateRecord 1 001a:trace:msidb:MSI_RecordSetStringW 0x7fffec3ad040 1 L"System64Folder" 001a:trace:msi:MSI_DatabaseOpenViewW L"SELECT `Value` FROM `_Property` WHERE `_Property`=?" 0x7fffecf4dc38 001a:trace:msidb:TABLE_CreateView 0x7ffff72da890 L"_Property" 0x7fffecf4db68 001a:trace:msidb:TABLE_CreateView table 0x7fffe3c068e0 found with 2 columns 001a:trace:msidb:TABLE_CreateView L"_Property" one row is 4 bytes 001a:trace:msidb:WHERE_CreateView 0x7fffec3b3400 ... 001a:trace:msi:msi_get_property property L"System64Folder" not found 001a:trace:msi:msiobj_release object 0x7fffec3b3010 destroyed 001a:trace:msi:msi_set_property 0x7ffff72da890 L"SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8" L"" 001a:trace:msidb:MSI_CreateRecord 1 001a:trace:msidb:MSI_RecordSetStringW 0x7fffec3b3010 1 L"SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8" --- snip ---
The standard property "System64Folder" must be set in x64 environments. Adding this in dlls/msi/package.c:set_installer_properties() with proper value will succeed the check and get the installer further
Regards