https://bugs.winehq.org/show_bug.cgi?id=48879
Bug ID: 48879 Summary: PhysX-9.12.1031-SystemSoftware.msi error at install Product: Wine Version: 5.5 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: animegirl@stronzi.org Distribution: ---
Created attachment 66817 --> https://bugs.winehq.org/attachment.cgi?id=66817 wine log
Latest wine.
https://bugs.winehq.org/show_bug.cgi?id=48879
Anya animegirl@stronzi.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |animegirl@stronzi.org
--- Comment #1 from Anya animegirl@stronzi.org --- Created attachment 66818 --> https://bugs.winehq.org/attachment.cgi?id=66818 error screenshot
https://bugs.winehq.org/show_bug.cgi?id=48879
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Component|-unknown |wmi&wbemprox Ever confirmed|0 |1 URL| |https://web.archive.org/web | |/20130226024356/http://us.d | |ownload.nvidia.com/Windows/ | |9.12.1031/PhysX-9.12.1031-S | |ystemSoftware.msi Keywords| |download, Installer Status|UNCONFIRMED |NEW Summary|PhysX-9.12.1031-SystemSoftw |NVIDIA PhysX System |are.msi error at install |Software 9.12.1031 | |installer fails (VBScript | |action can't create | |'WbemScripting.SWbemNamedVa | |lueSet' object)
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks,
refining some fields and confirming.
Mentioned in bug 33668 -> https://bugs.winehq.org/show_bug.cgi?id=33668#c3
--- quote --- Please attach +vbscript log running builtin vbscript and open a new bug for wbemdisp part: --- quote ---
Apparently this was never done.
--- snip --- $ WINEDEBUG=+seh,+relay,+msi,+vbscript wine msiexec -i PhysX-9.12.1031-SystemSoftware.msi >>log.txt 2>&1 ... 002b:trace:msi:ACTION_CustomAction Handling custom action L"Add64Bit_Reg" (406 L"myScriptVBS" L"Run") ... 002c:trace:vbscript:VBScriptParse_ParseScriptText (01BB9AC8)->(L"Const HKEY_LOCAL_MACHINE = &H80000002 \r\n\r\nFunction Run() \r\n sPath = WriteRegStr (HKEY_LOCAL_MACHINE, "SOFTWARE\AGEIA Technologies", "HwSelection", "GPU", 64) \r\n sPath = WriteRegDWORD (HKEY_LOCAL_MACHINE, "SOFTWARE\AGEIA Technologies", "PhysX BuildCL", "1", 64) "... (null) 00000000 (null) 0 0 0 00000000 00000000) ... 002c:fixme:msi:AutomationObject_GetIDsOfNames Unknown member L"HKEY_LOCAL_MACHINE", clsid {000c109e-0000-0000-c000-000000000046} ... 002c:trace:msi:call_script Calling function L"Run" 002c:trace:vbscript:VBScript_GetScriptDispatch (01BB9AC8)->((null) 01F6FEC4) 002c:trace:vbscript:ScriptDisp_AddRef (01A4A7A8) ref=2 002c:trace:vbscript:ScriptDisp_GetIDsOfNames (01A4A7A8)->({00000000-0000-0000-0000-000000000000} 01F6FF20 1 1024 01F6FECC) ... 002c:trace:vbscript:exec_script , 01A691A0 {VT_BSTR: L"SOFTWARE\AGEIA Technologies"} ret=01fa010e ... 002c:Call oleaut32.SysAllocString(01a91b1c L"WbemScripting.SWbemNamedValueSet") ret=01fa5a7a ... 002c:trace:vbscript:do_icall L"CreateObject" 1 ... 002c:trace:vbscript:Global_CreateObject (01F6FA70 {VT_BSTR: L"WbemScripting.SWbemNamedValueSet"}) 002c:Call ole32.CLSIDFromProgID(01b4721c L"WbemScripting.SWbemNamedValueSet",01f6fa14) ret=01f9afe1 ... 002c:Ret ole32.CLSIDFromProgID() retval=800401f3 ret=01f9afe1 ... 002c:err:msi:MsiActiveScriptSite_OnScriptError script error: L"ActiveX component can't create object" ... 002b:err:msi:ITERATE_Actions Execution halted, action L"ExecuteAction" returned 1603 --- snip ---
Part of VBScript for reproduce:
--- snip --- Const HKEY_LOCAL_MACHINE = &H80000002
sPath = WriteRegStr (HKEY_LOCAL_MACHINE, "SOFTWARE\AGEIA Technologies", "HwSelection", "GPU", 64)
Function WriteRegStr (RootKey, Key, Name, Value, RegType) Dim oCtx, oLocator, oReg, oInParams, oOutParams
Set oCtx = CreateObject("WbemScripting.SWbemNamedValueSet") oCtx.Add "__ProviderArchitecture", RegType
Set oLocator = CreateObject("Wbemscripting.SWbemLocator") Set oReg = oLocator.ConnectServer("", "root\default", "", "", , , , oCtx).Get("StdRegProv")
Set oInParams = oReg.Methods_("CreateKey").InParameters oInParams.hDefKey = RootKey oInParams.sSubKeyName = Key
Set oOutParams = oReg.ExecMethod_("CreateKey", oInParams, , oCtx)
Set oInParams = oReg.Methods_("SetStringValue").InParameters oInParams.hDefKey = RootKey oInParams.sSubKeyName = Key oInParams.sValueName = Name oInParams.sValue = Value
Set oOutParams = oReg.ExecMethod_("SetStringValue", oInParams, , oCtx) End Function --- snip ---
$ sha1sum PhysX-9.12.1031-SystemSoftware.msi eedc94c949d9ca41281bf550be8cd450fa028252 PhysX-9.12.1031-SystemSoftware.msi
$ du -sh PhysX-9.12.1031-SystemSoftware.msi 26M PhysX-9.12.1031-SystemSoftware.msi
$ wine --version wine-5.5-242-g7096ab4544
Regards
https://bugs.winehq.org/show_bug.cgi?id=48879
Gabriel Ivăncescu gabrielopcode@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gabrielopcode@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=48879
--- Comment #3 from Gabriel Ivăncescu gabrielopcode@gmail.com --- Well looking at this, it seems the SWbemNamedValueSet isn't implemented at all, so it's not really vbscript's fault here. I am unfortunately unfamiliar with the wbem APIs and code and have no idea how long it would take to implement it.
https://bugs.winehq.org/show_bug.cgi?id=48879
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello Gabriel,
--- quote --- Well looking at this, it seems the SWbemNamedValueSet isn't implemented at all, so it's not really vbscript's fault here. --- quote ---
well, nowhere I said it's a VBScript problem. I admit the summary can be interpreted in different ways. In this case it mentions the user-visible problem, not the root cause. The quote from my comment #2:
--- quote --- Please attach +vbscript log running builtin vbscript and open a new bug for wbemdisp part: --- quote ---
This ticket is the _wbemdisp_ part (= continuation) of bug 33668. See also component.
Regards
https://bugs.winehq.org/show_bug.cgi?id=48879
Brendan Shanks bshanks@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bshanks@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=48879
--- Comment #5 from Brendan Shanks bshanks@codeweavers.com --- The script is using the __ProviderArchitecture flag with the registry provider to access the 64-bit registry.
There's a couple pieces that will be needed for this:
- implement IWbemContext - ensure the context arg is passed down to the provider - implement the __ProviderArchitecture/__RequiredArchitecture behavior in the registry provider - implement SWbemNamedValueSet and map it to IWbemContext
https://bugs.winehq.org/show_bug.cgi?id=48879
Neros contact@neros.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |contact@neros.fr
https://bugs.winehq.org/show_bug.cgi?id=48879
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|NVIDIA PhysX System |NVIDIA PhysX System |Software 9.12.1031 |Software 9.12.1031 |installer fails (VBScript |installer fails |action can't create |('Add64Bit_Reg' VBScript |'WbemScripting.SWbemNamedVa |action needs minimal |lueSet' object) |'WbemScripting.SWbemNamedVa | |lueSet' implementation)
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello folks,
progress has been made with commits:
* https://source.winehq.org/git/wine.git/commitdiff/1922298fe3a0a0ebca78890554... ("wbemdisp: Add SWbemNamedValueSet stub.")
* https://source.winehq.org/git/wine.git/commitdiff/0eaccbb15e737aa2532d84d63b... ("wbemprox: Implement WbemContext stub.")
Thanks Nikolay
--- snip --- ... 0108:trace:vbscript:Global_CreateObject (0157FA40 {VT_BSTR: L"WbemScripting.SWbemNamedValueSet"}) ... 0108:trace:vbscript:create_object GUID {9aed384e-ce8b-11d1-8b05-00600806d9b6} 0108:Call combase.CoGetClassObject(0157f9e4,00000005,00000000,01919bb0,0157f9dc) ret=018eb4f8 ... 0108:fixme:wbemdisp:namedvalueset_QueryInterface interface {fc4801a3-2ba9-11cf-a229-00aa003d7352} not implemented ... 0108:trace:vbscript:interp_icall ... 0108:trace:vbscript:do_icall L"oCtx" 0 0108:Call ucrtbase._wcsicmp(016e35c4 L"oCtx",001e9d94 L"WriteRegStr") ret=018f71e2 ... 0108:trace:vbscript:interp_mcallv 0108:fixme:wbemdisp:namedvalueset_QueryInterface interface {a6ef9860-c720-11d0-9337-00a0c90dcaa9} not implemented 0108:trace:vbscript:disp_get_id using IDispatch 0108:Call oleaut32.LoadRegTypeLib(0194a440,00000001,00000002,00000800,0157fb04) ret=01941d71 ... 0108:fixme:wbemdisp:namedvalueset_QueryInterface interface {a6ef9860-c720-11d0-9337-00a0c90dcaa9} not implemented 0108:trace:vbscript:disp_call using IDispatch ... 0108:fixme:wbemdisp:namedvalueset_Add ... 0108:trace:msi:MsiActiveScriptSite_OnScriptError (015B1568)->(016D0B40) 0108:trace:vbscript:VBScriptError_GetExceptionInfo (016D0B40)->(0157FCC0) 0108:Call oleaut32.SysAllocString(016d0e94 L"Microsoft VBScript runtime error") ret=01908890 ... 0108:trace:msi:ACTION_CallScript script returned 1603 0108:trace:msi:MsiCloseHandle 1 0108:trace:msi:ScriptThread custom action (108) returned 1603 --- snip ---
Wine source:
https://source.winehq.org/git/wine.git/blob/1649389edca12d2998f72a159b2bbbf2...
--- snip --- 2623 static HRESULT WINAPI namedvalueset_Add( 2624 ISWbemNamedValueSet *iface, 2625 BSTR name, 2626 VARIANT *value, 2627 LONG flags, 2628 ISWbemNamedValue **namedvalue ) 2629 { 2630 FIXME("\n"); 2631 2632 return E_NOTIMPL; 2633 } --- snip ---
I've refined the summary to target a minimal 'SWbemNamedValueSet' implementation to be sufficient for the script action. I think in this case it doesn't make much sense to create a separate bug for each stub method.
Or do you think it's worth to split out into separate continuation bugs? Then I will do so.
$ wine --version wine-6.2-360-g1649389edca
Regards
https://bugs.winehq.org/show_bug.cgi?id=48879
--- Comment #7 from Nikolay Sivov bunglehead@gmail.com --- Up to you, I don't mind collecting all of that here or having more reports. Add() method is not enough by the way, next issue is oReg.Methods_ statement to return methods collection, then getting signature as a scripting object.
https://bugs.winehq.org/show_bug.cgi?id=48879
--- Comment #8 from Nikolay Sivov bunglehead@gmail.com --- I believe this should work now as of 7fa74fa78e2f8fedeea6fa3c796f0f2eb202825e. Remaining issue is unsupported __ProviderArchitecture property, I sent some patches for that.
https://bugs.winehq.org/show_bug.cgi?id=48879
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |8ea157aca6bfc2c73b1887e4640 | |258d7c9b4e0b8 Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #9 from Anastasius Focht focht@gmx.net --- Hello Nikolay,
thanks, the installer finishes successfully now. I've tested with the small VBS snippet from my comment #2 as well. The registry key is created with the string value set.
Selecting one of the last commits of the series for resolution here:
https://source.winehq.org/git/wine.git/commitdiff/8ea157aca6bfc2c73b1887e464... ("wbemdisp: Pass context value to ExecMethod().").
--- snip --- $ git log --oneline wine-6.2... -- dlls/wbemdisp
8ea157aca6b wbemdisp: Pass context value to ExecMethod(). 93858d787d0 wbemdisp: Pass context value to ConnectServer(). 65ed5d9cc6e wbemdisp: Coerce property value before setting it in ISWbemObject::Invoke(). 63a9e7e88e2 wbemdisp: Keep property member types. 501a99f2a97 wbemdisp: Iterate properties and methods once when collecting supported member names. c64b6419c6a wbemdisp: Use --prefer_native instead of DLL_WINE_PREATTACH. 33e123db37d wbemdisp: Partially implement ExecMethod(). c86ad936d05 wbemdisp: Forward ExecMethod_() to Services object. 2a7f02bc416 wbemdisp: Reference Services object in objects it's created. 5b836d17255 wbemdisp: Handle DISPATCH_PROPERTYPUT in scripting object Invoke(). 28dc9e1e0a3 wbemdisp: Implement InParameters() property for a method object. 01d2ca19972 wbemdisp: Add a stub implementation of a method object. 0946bf18f4d wbemdisp: Add Methods() collection stub. 7709d9b8706 wbemdisp: Use context object internally for named value set. 1922298fe3a wbemdisp: Add SWbemNamedValueSet stub. ---snip ---
$ wine --version wine-6.3-94-g7fa74fa78e2
Regards
https://bugs.winehq.org/show_bug.cgi?id=48879
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 6.4.