[Bug 46812] New: PS4 Remote Play installer 2.8.x fails, claims ' You need the Media Feature Pack' ( MsiGetDatabaseState is called from a custom action)
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun Mar 10 07:35:28 CDT 2019
https://bugs.winehq.org/show_bug.cgi?id=46812
Bug ID: 46812
Summary: PS4 Remote Play installer 2.8.x fails, claims 'You
need the Media Feature Pack' (MsiGetDatabaseState is
called from a custom action)
Product: Wine
Version: 4.3
Hardware: x86-64
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: msi
Assignee: wine-bugs at winehq.org
Reporter: focht at gmx.net
Distribution: ---
Hello folks,
stumbled across this while looking at bug 46809
The installer works with Wine-Staging 4.3 but not with plain Wine 4.3
Prerequisite: WinVer set to 'Windows 8.1' or higher (launch condition).
--- snip ---
$ WINEDEBUG=+seh,+relay,+msi,+wmp,+wmvcore wine ./RemotePlayInstaller.exe
>>log.txt 2>&1
...
003f:Ret KERNEL32.LoadLibraryW() retval=10000000 ret=7e90cf1d
003f:Call KERNEL32.GetProcAddress(10000000,00162238 "DoAppSearchEx")
ret=7e90cfca
003f:Ret KERNEL32.GetProcAddress() retval=10010e52 ret=7e90cfca
003f:Call KERNEL32.GetEnvironmentVariableA(7e98d055
"MsiBreak",0055fba0,00000104) ret=7e90cc78
003f:Ret KERNEL32.GetEnvironmentVariableA() retval=00000000 ret=7e90cc78
...
003f:Call msi.MsiGetDatabaseState(00000001) ret=1001bd46
003f:trace:msi:MsiGetDatabaseState 1
003f:warn:msi:MsiGetDatabaseState MsiGetDatabaseState not allowed during a
custom action!
003f:Ret msi.MsiGetDatabaseState() retval=00000000 ret=1001bd46
...
003f:Call msi.MsiDatabaseOpenViewW(00000001,001707f0 L"SELECT
`Description`,`Template` FROM `ActionText` WHERE `Action` = 'AppSearch'
",0055fa68) ret=1001c4bf
003f:trace:msi:MsiDatabaseOpenViewW L"SELECT `Description`,`Template` FROM
`ActionText` WHERE `Action` = 'AppSearch' " 0x55fa68
...
003f:Call msi.MsiGetDatabaseState(00000001) ret=1001bd46
003f:trace:msi:MsiGetDatabaseState 1
003f:warn:msi:MsiGetDatabaseState MsiGetDatabaseState not allowed during a
custom action!
003f:Ret msi.MsiGetDatabaseState() retval=00000000 ret=1001bd46
...
002f:Call KERNEL32.WideCharToMultiByte(00000000,00000000,003af710 L"Action
ended 12:47:48: AI_AppSearchEx. Return value
1.",ffffffff,003b0320,00000037,00000000,00000000) ret=7f29e5f7e516
002f:Ret KERNEL32.WideCharToMultiByte() retval=00000037 ret=7f29e5f7e516
...
002f:trace:msi:MSI_DatabaseOpenViewW L"SELECT * FROM ControlEvent WHERE
`Dialog_` = 'WelcomeDlg' AND `Control_` = 'Next' ORDER BY `Ordering`" 0x22e2f0
...
002f:trace:msi:MSI_EvaluateConditionW L"AI_INSTALL AND ( (IS_INSTALL_WMP64 <> 1
AND IS_INSTALL_WMP7 <> 1) )"
...
002f:trace:msi:MSI_EvaluateConditionW 1 <- L"AI_INSTALL AND ( (IS_INSTALL_WMP64
<> 1 AND IS_INSTALL_WMP7 <> 1) )"
...
002f:trace:msi:dialog_event_handler handling event L"DoAction"
002f:trace:msi:ACTION_PerformAction Performing action (L"AI_DATA_SETTER_3")
...
002f:trace:msi:ACTION_CustomAction Handling custom action L"AI_DATA_SETTER_3"
(33 L"CustomActionData"
L"[SCE.MsgTxtMfpErr]\r\\n\r\\nhttps://remoteplay.dl.playstation.net/remoteplay/mediaFeaturePack.html
|[ProductName]
|MB_OKCANCEL,MB_ICONINFORMATION,MB_DEFBUTTON1|BTN_PRESSED|[CLIENTPROCESSID]")
...
002f:trace:msi:MSI_EvaluateConditionW L"AI_INSTALL AND ( (IS_INSTALL_WMP64 <> 1
AND IS_INSTALL_WMP7 <> 1) )"
...
002f:trace:msi:MSI_EvaluateConditionW 1 <- L"AI_INSTALL AND ( (IS_INSTALL_WMP64
<> 1 AND IS_INSTALL_WMP7 <> 1) )"
002f:trace:msi:msi_dialog_send_event Sending control event L"DoAction"
L"MsgBoxMfpWin"
...
002f:trace:msi:ACTION_CustomAction Handling custom action L"MsgBoxMfpWin" (1
L"aicustact.dll" L"MsgBox")
002f:trace:msi:HANDLE_CustomType1 Calling function L"MsgBox" from
L"C:\\users\\focht\\Temp\\msic7ec.tmp"
...
0043:Call user32.MessageBoxW(00000000,00171980 L"You need the Media Feature
Pack from Microsoft(R) to use PS4 Remote Play.\nClick [OK] to open your web
browser and download the Media Feature Pack from the
website.\r\n\r\nhttps://remoteplay.dl.playstation.net/remoteplay/mediaFeaturePack.html
",00171e90 L"PS4 Remote Play ",00000041) ret=10007c7e
...
--- snip ---
The 'IS_INSTALL_WMP64' and 'IS_INSTALL_WMP7' properties ought to be set by
'AI_AppSearchEx' custom action.
Extracted 'RemotePlayInstaller_2.8.0.03041_Win32.msi' and export of
'AI_AppSearchEx' table via ORCA:
--- snip ---
Property Type SearchString Order Condition VerMin VerMax
Platform RefContent
s72 I4 s0 i4 S0 S0 S0 I2 S0
AI_AppSearchEx Property Type SearchString
PreReqSearch_D564007E3BBE4F85950A09B470A7CA65 2
HKLM\SOFTWARE\Microsoft\DevDiv\VC\Servicing\12.0\RuntimeMinimum\Version 1
12.0.21005 0
IS_INSTALL_WMP64 9 HKLM\SOFTWARE\Microsoft\Active Setup\Installed
Components\{22d6f312-b0f6-11d0-94ab-0080c74c7e95}\IsInstalled 2
0 M1
IS_INSTALL_WMP7 9 HKLM\SOFTWARE\Microsoft\Active Setup\Installed
Components\{6BF52A52-394A-11d3-B153-00C04F79FAA6}\IsInstalled 3
0 M1
--- snip ---
'ControlEvent' table:
--- snip ---
Dialog_ Control_ Event Argument Condition Ordering
s72 s50 s50 s255 S255 I2
ControlEvent Dialog_ Control_ Event Argument Condition
...
WelcomeDlg Cancel SpawnDialog CancelDlg 1 100
WelcomeDlg Next EndDialog Exit AI_INSTALL AND ( IS_INSTALL_WMP64 <>
1 AND IS_INSTALL_WMP7 <> 1 ) 14
WelcomeDlg Next NewDialog LicenseAgreementDlg AI_INSTALL AND (
IS_INSTALL_WMP64 = 1 OR IS_INSTALL_WMP7 = 1 ) 15
WelcomeDlg Next DoAction MsgBoxMfpWin AI_INSTALL AND (
(IS_INSTALL_WMP64 <> 1 AND IS_INSTALL_WMP7 <> 1) ) 5
WelcomeDlg Next DoAction AI_DATA_SETTER_3 AI_INSTALL AND (
(IS_INSTALL_WMP64 <> 1 AND IS_INSTALL_WMP7 <> 1) ) 4
WelcomeDlg Next DoAction OpenUrlMfpWin AI_INSTALL AND (
(IS_INSTALL_WMP64 <> 1 AND IS_INSTALL_WMP7 <> 1) AND (BTN_PRESSED = "IDOK") )
11
--- snip ---
https://github.com/wine-staging/wine-staging/tree/master/patches/msi-MsiGetDatabaseState
Which points to bug 43093 which was closed as dupe of bug 34989
https://bugs.winehq.org/show_bug.cgi?id=43093#c6
--- quote ---
Since the presence or absence of the associated staging patch does not actually
affect this bug anymore, and since it is likely that none of the problems
specific to this installer were blocking, I have marked this as a duplicate of
#34989.
--- quote ---
Well, this patch seems still relevant. If it's no longer relevant for bug 43093
the reference in description shall be removed or updated to this bug.
With
https://github.com/wine-staging/wine-staging/blob/master/patches/msi-MsiGetDatabaseState/0001-msi-Always-return-MSIDBSTATE_ERROR-when-MsiGetDataba.patch
applied, the installer detects WMP6/7 properly via registry.
I've created a snapshot via Internet archive to preserve the exact version in
case it gets updated:
https://web.archive.org/web/20190310123055/https://remoteplay.dl.playstation.net/remoteplay/module/win/RemotePlayInstaller.exe
$ sha1sum RemotePlayInstaller.exe
d7e56a826e82689383687dfc63fe2a035b987604 RemotePlayInstaller.exe
$ du -sh RemotePlayInstaller.exe
19M RemotePlayInstaller.exe
$ wine --version
wine-4.3-229-g6d82b2f1ad
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