[Bug 43864] Games for Windows - Live 3.5 installer fails in 64-bit WINEPREFIX ( 64-bit msi package needs relegation to 64-bit msi server when run from 32-bit client process )
wine-bugs at winehq.org
wine-bugs at winehq.org
Mon Oct 9 06:45:20 CDT 2017
https://bugs.winehq.org/show_bug.cgi?id=43864
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
URL| |https://www.microsoft.com/e
| |n-us/download/details.aspx?
| |id=5549
Keywords| |download, Installer
Component|-unknown |msi
Summary|Crash when installing Games |Games for Windows - Live
|for Windows - Live 3.5 from |3.5 installer fails in
|stand-alone installer |64-bit WINEPREFIX (64-bit
| |msi package needs
| |relegation to 64-bit msi
| |server when run from 32-bit
| |client process)
CC| |focht at gmx.net
--- Comment #7 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
likely a dupe of already existing 32/64-bit MSI server + 32/64-bit custom
action server bugs (such as bug 30713).
--- snip ---
$ cabextract -l gfwlivesetup.exe
Viewing cabinet: gfwlivesetup.exe
File size | Date Time | Name
-----------+---------------------+-------------
642712 | 11.04.2011 13:03:54 | gfwlivesetup.exe
3371008 | 11.04.2011 13:03:54 | GFWLClient.msi
21598208 | 11.04.2011 13:03:56 | xLiveRedist.msi
4649472 | 18.03.2011 15:51:26 | wllogin_32.msi
6575616 | 18.03.2011 15:51:26 | wllogin_64.msi
43000680 | 18.03.2011 15:51:24 | dotNetFx40_Client_x86_x64.exe
All done, no errors.
--- snip ---
You used a 64-bit WINEPREFIX for installation.
Template summary property for 'wllogin_64.msi' 64-bit package:
--- snip ---
$ wine MsiInfo.Exe wllogin_64.msi
MsiInfo V 5.0
Copyright (c) Microsoft Corporation. All Rights Reserved
Class Id for the MSI storage is {000C1084-0000-0000-C000-000000000046}
[ 1][/c] Codepage = 1252
[ 2][/t] Title = Installation Database
[ 3][/j] Subject = Windows Live ID Sign-in Assistant
[ 4][/a] Author = Microsoft Corporation
[ 5][/k] Keywords = Installer,MSI,Database,Windows Live, Login, Passport
[ 6][/o] Comments = Windows Live ID Sign-in Assistant
[ 7][/p] Template(MSI CPU,LangIDs) = x64;1033
[ 9][/v] Revision = {AFAEFABE-FB0E-48F0-8262-9D5F91A9EEF1}
[12][/r] Created = 2009/08/18 14:54:44
[13][/q] LastSaved = 2009/08/18 14:54:44
[14][/g] Pages(MSI Version Used) = 200
[15][/w] Words(MSI Source and Elevation Prompt Type) = 2
[18][/n] Application = Windows Installer XML v2.0.4701.0 (candle/light)
[19][/u] Security = 2
--- snip ---
But that doesn't matter in end - packages are always to be processed as 32-bit
by default, even if marked as 64-bit.
Each element which is destined for 64-bit has to have explicit
'msidbComponentAttributes64bit' set.
Dump of 'Component' table using 'ORCA':
--- snip ---
Component ComponentId Directory_ Attributes Condition KeyPath
s72 S38 s72 i2 S255 S72
..
CP_WLIDPROV.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
{31D594C9-E4D8-485D-9341-DD87AD6ACB49}
DIR_WLIDSSP2.1312FADD_90E2_487F_B4BC_5B3F1469FB3C 320 (VersionNT64>=601)
PPCRL_WLIDPROV.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
CP_WLIDSVC.EXE.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
{AEFCEE37-526B-4956-96F2-C6E2330E2AC7}
DIR_WLIDSSP2.1312FADD_90E2_487F_B4BC_5B3F1469FB3C 256
PPCRL_WLIDSVC.EXE.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
CP_LIVESSP.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
{FDD48C03-DF03-4713-88F2-D03E041EC765}
System64Folder.1312FADD_90E2_487F_B4BC_5B3F1469FB3C 320
(VersionNT64>=601) PPCRL_LIVESSP.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
CP_PPCRLCONFIG.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
{39CD30BA-09D5-4023-9D08-88ACF3FEE453}
DIR_PRODUCTION.1312FADD_90E2_487F_B4BC_5B3F1469FB3C 264
(SDKINSTALL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C<>"1") AND
((PERUSER.1312FADD_90E2_487F_B4BC_5B3F1469FB3C="0") OR
(PERUSER.1312FADD_90E2_487F_B4BC_5B3F1469FB3C=""))
SDKCOMPONENTS_PPCRL_PPCRLCONFIG.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
CP_PPCRLUI.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
{D55F471E-4BC7-439C-AEF0-2EE43E5939CB}
DIR_PRODUCTION.1312FADD_90E2_487F_B4BC_5B3F1469FB3C 264
SDKCOMPONENTS_PPCRL_WLIDUI.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
CP_MSIDCRL40.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
{DD2F03D8-C746-496C-8F0C-BB0815BA24EA}
DIR_PPCRL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C 256
SDKCOMPONENTS_PPCRL_MSIDCRL40.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
CP_WLLOGIN.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
{320678B6-5709-4ADC-8373-6B9E088B5E09}
DIR_PPCRL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C 256
SDKCOMPONENTS_PPCRL_IDBHO.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C
...
--- snip ---
msidbComponentAttributes64bit -> 256
Good information resource:
http://csi-windows.com/blog/all/27-csi-news-general/263-how-windows-installer-processes-packages-on-64-bit-windows
("How Windows Installer Processes Packages on 64-bit Windows")
32-bit client app process (bootstrapper):
--- snip ---
...
00b3:Call KERNEL32.CreateProcessA(00000000,0100b0c0
"c:\\4115ea1d1742d1914fda\\gfwlivesetup.exe",00000000,00000000,00000000,00000020,00000000,0014bbf0
"c:\\4115ea1d1742d1914fda",0033fe40,0033fe0c) ret=01005856
...
00b3:trace:process:create_process_impl starting
L"c:\\4115ea1d1742d1914fda\\gfwlivesetup.exe" as Win32 binary
(0x1000000-0x10a0000, arch 014c)
...
00b6:Call KERNEL32.__wine_kernel_init() ret=7bc69c56
00b6:trace:process:init_current_directory starting in
L"c:\\4115ea1d1742d1914fda\\" 0x20
00b6:trace:process:__wine_kernel_init starting process
name=L"c:\\4115ea1d1742d1914fda\\gfwlivesetup.exe"
argv[0]=L"c:\\4115ea1d1742d1914fda\\gfwlivesetup.exe"
00b3:trace:process:create_process_impl started process pid 00b5 tid 00b6
00b3:Ret KERNEL32.CreateProcessA() retval=00000001 ret=01005856
...
00bc:Call msi.MsiInstallProductW(0036e144
L"c:\\4115ea1d1742d1914fda\\wllogin_64.msi",0036c918
L"REBOOT=\"ReallySuppress\" ") ret=0103b6a4
00bc:trace:msi:MsiInstallProductW L"c:\\4115ea1d1742d1914fda\\wllogin_64.msi"
L"REBOOT=\"ReallySuppress\" "
00bc:trace:msi:MSI_OpenPackageW L"c:\\4115ea1d1742d1914fda\\wllogin_64.msi"
0xe4cae0
...
00bc:trace:msi:msi_get_property returning
L"c:\\4115ea1d1742d1914fda\\wllogin_64.msi" for property L"OriginalDatabase"
...
00bc:trace:msi:cabinet_copy_file extracting
L"SDKCOMPONENTS_PPCRL_IDBHO.DLL.1312FADD_90E2_487F_B4BC_5B3F1469FB3C" ->
L"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows
Live\\WindowsLiveLogin.dll"
00bc:Call KERNEL32.CreateFileW(01127818 L"C:\\Program Files (x86)\\Common
Files\\Microsoft Shared\\Windows
Live\\WindowsLiveLogin.dll",c0000000,00000000,00000000,00000002,00000080,00000000)
ret=7e15d4c1
00bc:Ret KERNEL32.CreateFileW() retval=000000d0 ret=7e15d4c1
...
00bc:trace:msi:ITERATE_SelfRegModules Registering L"C:\\Program Files
(x86)\\Common Files\\Microsoft Shared\\Windows Live\\WindowsLiveLogin.dll"
...
00bc:Call KERNEL32.CreateProcessW(00000000,0110b940 L"regsvr32.exe
\"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows
Live\\WindowsLiveLogin.dll\"",00000000,00000000,00000000,00000000,00000000,00000000,00e4c408,00e4c44c)
ret=7e12553d
00bc:trace:process:create_process_impl app (null) cmdline L"regsvr32.exe
\"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows
Live\\WindowsLiveLogin.dll\""
00bc:trace:process:find_exe_file looking for L"regsvr32.exe"
00bc:trace:process:find_exe_file Trying native exe
L"C:\\windows\\system32\\regsvr32.exe"
00bc:trace:process:create_process_impl starting
L"C:\\windows\\system32\\regsvr32.exe" as Win32 binary (0x10000000-0x1000b000,
arch 014c, fakedll)
...
00c4:Call KERNEL32.__wine_kernel_init() ret=7bc69c56
00c4:trace:process:init_current_directory starting in
L"c:\\4115ea1d1742d1914fda\\" 0x20
00c4:trace:process:__wine_kernel_init starting process
name=L"C:\\windows\\system32\\regsvr32.exe" argv[0]=L"regsvr32.exe"
...
00bc:trace:process:create_process_impl started process pid 00c3 tid 00c4
...
00c4:Call KERNEL32.LoadLibraryExW(001158e6 L"C:\\Program Files (x86)\\Common
Files\\Microsoft Shared\\Windows Live\\WindowsLiveLogin.dll",00000000,00000008)
ret=7eff5b70
...
00c4:Ret KERNEL32.LoadLibraryExW() retval=00000000 ret=7eff5b70
...
regsvr32: Failed to load DLL 'C:\Program Files (x86)\Common Files\Microsoft
Shared\Windows Live\WindowsLiveLogin.dll'
00bc:Ret KERNEL32.CreateProcessW() retval=00000001 ret=7e12553d
...
--- snip ---
-> product install for 64-bit package incorrectly handled on 32-bit client side
Same for custom actions:
--- snip ---
...
00bc:trace:msi:ACTION_CustomAction Handling custom action
L"RgWLIDProv.D7E3D3D4_C059_4F60_8B26_AED871BD74F7" (c22
L"SystemFolder.D7E3D3D4_C059_4F60_8B26_AED871BD74F7" L"regsvr32.exe /s
\"[#PPCRL_WLIDPROV_32.DLL.D7E3D3D4_C059_4F60_8B26_AED871BD74F7]\"")
00bc:warn:msi:ACTION_CustomAction msidbCustomActionTypeNoImpersonate not
handled
00bc:trace:msi:msi_get_property 0x1dcb30
L"RgWLIDProv.D7E3D3D4_C059_4F60_8B26_AED871BD74F7" (nil) 0xe4c3b4
...
00bc:trace:msi:HANDLE_CustomType34 cmd L"regsvr32.exe /s \"C:\\Program Files
(x86)\\Common Files\\Microsoft Shared\\Windows Live\\WLIDPROV.DLL\"" dir
L"C:\\windows\\syswow64\\"
00bc:Call KERNEL32.CreateProcessW(00000000,01108ef8 L"regsvr32.exe /s
\"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows
Live\\WLIDPROV.DLL\"",00000000,00000000,00000000,00000000,00000000,01103ae8
L"C:\\windows\\syswow64\\",00e4c2fc,00e4c2ec) ret=7e13e601
00bc:trace:process:create_process_impl app (null) cmdline L"regsvr32.exe /s
\"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\Windows
Live\\WLIDPROV.DLL\""
...
00bc:trace:process:create_process_impl starting
L"C:\\windows\\system32\\regsvr32.exe" as Win32 binary (0x10000000-0x1000b000,
arch 014c, fakedll)
...
00eb:Call KERNEL32.__wine_kernel_init() ret=7bc69c56
00eb:trace:process:init_current_directory starting in
L"C:\\windows\\syswow64\\" 0x20
00eb:trace:process:__wine_kernel_init starting process
name=L"C:\\windows\\system32\\regsvr32.exe" argv[0]=L"regsvr32.exe"
00bc:trace:process:create_process_impl started process pid 00ea tid 00eb
00bc:Ret KERNEL32.CreateProcessW() retval=00000001 ret=7e13e601
...
00bc:err:msi:execute_script Execution of script 0 halted; action
L"RgWLIDProv.D7E3D3D4_C059_4F60_8B26_AED871BD74F7" returned 1627
...
--- snip ---
The 64-bit package install should be handed over from 32-bit app/client process
to 64-bit msi server process (which in turn also uses 64-bit CA server).
You can work around by using a 32-bit WINEPREFIX (WINEARCH=win32) unless
whatever game you need to install forces you to use 64-bit.
$ sha1sum gfwlivesetup.exe
dcac0e121b2ddf97e0720b470257cd7bf38ac120 gfwlivesetup.exe
$ du -sh gfwlivesetup.exe
71M gfwlivesetup.exe
$ wine --version
wine-2.18-97-gfb8226f639
Regards
--
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