https://bugs.winehq.org/show_bug.cgi?id=44419
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |vbscript Status|NEW |RESOLVED Resolution|--- |DUPLICATE Summary|Hog4PC doesn't install |Hog4PC 3.x fails to | |install, VBScript custom | |action needs | |vbscript:Global_Replace | |implementation CC| |focht@gmx.net
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming, it's a dupe of bug 38070
Some VBScript custom action needs vbscript:Global_Replace implementation.
--- snip --- $ WINEDEBUG=+seh,+pid,+relay,+msi,+vbscript wine msiexec -i ./Hog4PC_3-6-1-1440.msi >>log.txt 2>&1 ... 0059:005a:trace:msi:ACTION_CustomAction Handling custom action L"SA_FixLib_Unpack" (c06 L"SA_Script" L"SA_fixtureLibrary") ... 0059:005a:trace:msi:msi_get_property returning L"C:\Program Files\Hog4PC\" for property L"SA_FixLib_Unpack" 0059:005a:trace:msi:msi_set_property 0x13c918 L"CustomActionData" L"C:\Program Files\Hog4PC\" -1 ... 0059:005a:trace:msi:HANDLE_CustomType5_6 L"SA_Script" L"SA_fixtureLibrary" ... 0059:0070:Starting thread proc 0x7ec81f1c (arg=0xa464ac) 0059:0070:trace:msi:ScriptThread custom action (70) started 0059:0070:trace:msi:ACTION_CallScript function L"SA_fixtureLibrary", script L"' This script is used to extract the fixture libraries as well\r\n' as the DP8K files for Hog 4PC. \r\n\r\n'Author: Patrick Hutchinson\r\n'Date : 11/11/2010\r\n\r\n'create global objects\r\nSet shell = CreateObject("WScript.Shell")\r\nSet fso = CreateObject("Scripting.FileSystemObject")\r\n\r\n'h"... ... 0059:0070:trace:vbscript:interp_icall 0059:0070:trace:vbscript:interp_assign_member L"CurrentDirectory" 0059:0070:trace:vbscript:disp_get_id using IDispatch ... 0059:0070:trace:vbscript:disp_propput using IDispatch ... 0059:0070:Call KERNEL32.SetCurrentDirectoryW(00a83ed4 L"C:\Program Files\Hog4PC\Flying Pig Systems\Hog4PC\image\dp8000") ret=f6f941a2 0059:0070:Ret KERNEL32.SetCurrentDirectoryW() retval=00000001 ret=f6f941a2 ... 0059:0070:trace:vbscript:interp_icall 0059:0070:trace:vbscript:interp_string 0059:0070:Call oleaut32.SysAllocString(00a61a5c L".hog4lib") ret=f6fd160e ... 0059:0070:trace:vbscript:DispatchEx_QueryInterface (0xa59b68)->(IID_IDispatchEx 0xcaf9c0) 0059:0070:trace:vbscript:DispatchEx_AddRef (0xa59b68) ref=2 0059:0070:trace:vbscript:DispatchEx_InvokeEx (0xa59b68)->(ba 0 3 0xcafa6c 0xcafad0 0xcaf9a0 (nil)) 0059:0070:fixme:vbscript:Global_Replace 0059:0070:trace:vbscript:DispatchEx_Release (0xa59b68) ref=1 0059:0070:warn:vbscript:exec_script Failed 800a01bd ... 0059:0070:trace:msi:MsiActiveScriptSite_OnLeaveScript (0xa44c60) 0059:0070:trace:vbscript:ScriptDisp_Release (0xa4b978) ref=1 ... 0059:0070:trace:msi:ACTION_CallScript script returned 1603 0059:0070:trace:msi:MsiCloseHandle 1 0059:0070:trace:msi:ScriptThread custom action (70) returned 1603 0059:0070:trace:msi:MsiCloseAllHandles ... --- snip ---
The relevant part of VBScript code executed in script action, extracted from .msi:
--- snip --- ' This script is used to extract the fixture libraries as well ' as the DP8K files for Hog 4PC.
'Author: Patrick Hutchinson 'Date : 11/11/2010
'create global objects Set shell = CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject")
'handle errors encountered On Error Resume Next
' =================================================== Stand Alone Fixture Library Unpack Section =================================================== ' This function is used for stand alone Hog 4PC. It is ' used to unpack the fixture libraries during install. Function SA_fixtureLibrary() ' local variables Dim FPSCommonAppData_Dir, TargetDir, FixtureLib, FixtureLibDir
' location of the fixture library Const CommonAppData = &H23& ' the second & denotes a long integer ' Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(CommonAppData) Set objFolderItem = objFolder.Self FPSCommonAppData_Dir = objFolderItem.Path & "\Flying Pig Systems\Hog 4PC\fixtureLibrary"
' location of the 7za.exe application TargetDir = Session.Property("CustomActionData") & "Flying Pig Systems\Hog4PC\image\dp8000"
' Change dir to where the 7za.exe app is located shell.CurrentDirectory = TargetDir
' Fixture Library with path FixtureLib = FPSCommonAppData_Dir + "\fixturelib_v4.hog4lib"
' Fixture Library Directory FixtureLibDir = Replace( FixtureLib, ".hog4lib", "" )
'Verify the existance of the 7za app before trying to run it If ( fso.FileExists( "7za.exe" ) ) Then
' Change dir to where the fixture library is located shell.CurrentDirectory = FPSCommonAppData_Dir
' remove any previous libraries if they exist If ( fso.FolderExists( FixtureLibDir ) ) Then fso.DeleteFolder( FixtureLibDir ) End If
' do the first unpack unpack1 = shell.Run("""" & TargetDir & "\7za.exe"" x -y " & """" & FixtureLib & """" & " -o""" & FixtureLibDir & """", 0, True) If ( unpack1 = 0 ) Then ' do the second unpack unpack1 = shell.Run("""" & TargetDir & "\7za.exe"" x -y " & """" & FixtureLibDir & "[Content]""" & " -o""" & FixtureLibDir & """", 0, True) If ( unpack1 = 0 ) Then fso.DeleteFile( FixtureLibDir & "[Content]" ) fso.DeleteFile( FixtureLib ) SA_fixtureLibrary = 1 'Success Else SA_fixtureLibrary = 3 'Failed End If
Else SA_fixtureLibrary = 3 'Failed End If
Else SA_fixtureLibrary = 3 'Failed End If
'clean up FPSCommonAppData_Dir = empty TargetDir = empty FixtureLib = empty FixtureLibDir = empty
End Function
...
--- snip ---
Use 'winetricks -q wsh57' to work around.
$ du -sh Hog4PC_3-6-1-1440.msi 214M Hog4PC_3-6-1-1440.msi
$ sha1sum Hog4PC_3-6-1-1440.msi 61e3361e181f41eccef330de4b9179e88ca1add3 Hog4PC_3-6-1-1440.msi
$ wine --version wine-3.0-168-gf54a661767
Regards
*** This bug has been marked as a duplicate of bug 38070 ***