Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Wine/Spider Monkey Panel/Script bugs on Linux (Read 12785 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Wine/Spider Monkey Panel/Script bugs on Linux

Hi,

this thread should be an overview and troubleshooting of Wine/Spider Monkey Panel/Script bugs on Linux.
Most reported bugs are scattered in various threads which is not ideal. If you find a bug or a fix please report it here, thanks!

Bugs:
https://theqwertiest.github.io/foo_spider_monkey_panel/docs/faq/wine
https://github.com/TT-ReBORN/Georgia-ReBORN/issues/2



Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #1
Drag and drop bug for all themes using TheQwertiest playlist script e.g CatRox/Georgia/Georgia-ReBORN etc...
( Drag and drop works in the window if you use Files -> Add files/folder ).

Wine bug reported here.

----------------------------------------------------------------------------------------------------------------------

WilB's library and biography script bugs:

Library options menu and Library right click search context menu crashes foobar.

Biography does not download and save ( to HDD ) artist images ( last.fm and allmusic ) and
Biography options plus Biography right click context menu crashes foobar.

----------------------------------------------------------------------------------------------------------------------

WilB's comment:

Quote
Regarding saving images, as noted above, the first part of the process is to call windows cscript that's run through ActiveXObject('WScript.Shell').
This in turn calls an external .vbs file that streams and saves the images. To do this, the .vbs file uses a number of further objects:

Code: [Select]
Createobject("Scripting.FileSystemObject")

CreateObject("MSXML2.XMLHTTP")

CreateObject("ADODB.Stream")

I guess as these are in an external file they're normally run by windows & may be independent of SMP.

I think it would need someone with coding skills running Linux (which I don't have & so can't test anything) to debug exactly where it's failing and to see if it's possible to work around it.
Otherwise SMP may need to be updated with new methods.

Right-click error is due to: doc.parentWindow.clipboardData.getData, where doc is ActiveXObject('htmlfile').
So the error seems to be due to some issue with that ActiveXObject method in Linux .
It's used to paste from clipboard. So another way of accessing the clipboard may be needed, or comment out usage.

Options uses the SMP ShowHtmlDialog. ShowHtmlDialog v2 is in SMP current tasks and plans.

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #2
Bugs reported and tested with Wine 6.02 stable and SMP 1.5.2.

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #3
so i've checked, these activecx controls should-be in wine by default.

( windows scriptintg: https://github.com/wine-mirror/wine/tree/master/dlls/scrrun , xmlhttp & htmlfile : https://github.com/wine-mirror/wine/tree/master/dlls/mshtml / https://github.com/wine-mirror/wine/tree/master/dlls/msxtml1 .. 6, adodb: https://github.com/wine-mirror/wine/tree/master/dlls/msado15 )

so they shoud be under the wineroot's system32.

i'm thinking that maybe the activex compoments were not registered , you you coule try manually regitistering?
https://www.lifewire.com/regsvr32-what-it-is-how-to-register-dlls-2623958)

basically it's like a:
> cd windows/system32  (for b32bits w 32bits foobar, or windows/sysWOW64 (if wine has it) for 64bits)
> regsvr32 filename.dll

or maybe loading the into the fb process  process with ui_hacks.? (i think that whats this "portability" thing is for at least)

X

also: some googling reveleaded this, so could be disabled on wine (win too)
https://nakedsecurity.sophos.com/2021/09/08/windows-zero-day-mshtml-attack-how-not-to-get-booby-trapped/


++ eeither way ++ if you could capture the fb2k console log, or some other logfile, that would be of great help.


Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #4
Hi @razielanarki,

registering the dll's does not help...

It seems there is a problem with vbscript and mshtml, here is a log from the konsole:

Code: [Select]
[media@xero-pc foobar2k]$ WINEPREFIX=~/AppImages/foobar2k/wine-files ./wine ~/AppImages/foobar2k/foobar20
00/foobar2000.exe
006c:err:vulkan:get_vulkan_driver Wine was built without Vulkan support.
0024:fixme:msvcrt:_set_abort_behavior _WRITE_CALL_REPORTFAULT unhandled
0024:fixme:heap:RtlSetHeapInformation 04070000 0 04049034 4 stub
0024:fixme:mmdevapi:AEV_RegisterControlChangeNotify stub
0024:fixme:mmdevapi:AEV_GetMasterVolumeLevelScalar stub
0024:fixme:mmdevapi:MMDevice_Activate IID_IDeviceTopology unsupported
0024:fixme:pulse:AudioSessionManager_RegisterDuckNotification (0xb89d60)->(0x4074614) - stub
0024:fixme:win:RegisterShellHookWindow (00010050): stub
0024:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0134:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFA, 0DDAFF08
0138:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFA, 0E0DFF08
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:win:LockWindowUpdate (00010066), partial stub!
0024:fixme:win:LockWindowUpdate (00000000), partial stub!
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0160:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x24529460, context 0x170480a8, init_noti
fy 0, handle 0xf3ffdf0): stub
0024:fixme:imm:ImmGetDescriptionW (04090409, 00000000, 0): semi stub
0024:fixme:imm:ImmGetDescriptionW (04090409, 171C5FA8, 9): semi stub
0024:fixme:msctf:InputProcessorProfileMgr_GetActiveProfile (22160FC8)->({34745c63-b2f0-4784-8b67-5e12c870
1a31} 0031E474)
0024:fixme:file:NtLockFile I/O completion on lock not implemented yet
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:mlang:fnIMultiLanguage3_DetectInputCodepage 
0024:fixme:msxml:BindStatusCallback_QueryInterface Unsupported riid = {79eac9e1-baf9-11ce-8c82-00aa004ba9
0b}
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
01a4:fixme:ntdll:NtCreatePowerRequest (0x2d7bf938, 0x2d7bf93c): stub
01a4:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Audio",2D7BFB84): stub
01a8:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Audio",2D8CFF08): stub
01b4:fixme:ver:GetCurrentPackageId (2DD9FF30 00000000): stub
0024:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0031CD8C 1 C) semi-stub
0024:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0031CAA4 1 C) semi-stub
01a4:fixme:avrt:AvRevertMmThreadCharacteristics (12345678): stub
01a8:fixme:avrt:AvRevertMmThreadCharacteristics (12345678): stub
01a4:fixme:ntdll:NtCreatePowerRequest (0x2d7bf938, 0x2d7bf93c): stub
01a4:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Audio",2D7BFB84): stub
0210:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Audio",20DFFF08): stub
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
029c:fixme:wmvcore:WMSyncReader_OpenStream (22280770)->(17D45D30): stub!
029c:fixme:wmvcore:WMSyncReader_QueryInterface (22280770)->({96406bdb-2b2b-11d3-b36b-00c04f6108ff} 378FFA
D4)
029c:fixme:wmvcore:WMSyncReader_Close (22280770): stub!
02a0:fixme:wmvcore:WMSyncReader_OpenStream (0DDF72E0)->(17D45D30): stub!
02a0:fixme:wmvcore:WMSyncReader_QueryInterface (0DDF72E0)->({96406bdb-2b2b-11d3-b36b-00c04f6108ff} 377EFA
D4)
02a0:fixme:wmvcore:WMSyncReader_Close (0DDF72E0): stub!
02a4:fixme:wmvcore:WMSyncReader_OpenStream (0DDF72E0)->(17550730): stub!
02a4:fixme:wmvcore:WMSyncReader_QueryInterface (0DDF72E0)->({96406bdb-2b2b-11d3-b36b-00c04f6108ff} 378FFA
D4)
02a4:fixme:wmvcore:WMSyncReader_Close (0DDF72E0): stub!
02a8:fixme:wmvcore:WMSyncReader_OpenStream (0DDF72E0)->(17550730): stub!
02a8:fixme:wmvcore:WMSyncReader_QueryInterface (0DDF72E0)->({96406bdb-2b2b-11d3-b36b-00c04f6108ff} 377EFA
D4)
02a8:fixme:wmvcore:WMSyncReader_Close (0DDF72E0): stub!
02ac:fixme:wmvcore:WMSyncReader_OpenStream (0DDF72E0)->(17550730): stub!
02ac:fixme:wmvcore:WMSyncReader_QueryInterface (0DDF72E0)->({96406bdb-2b2b-11d3-b36b-00c04f6108ff} 378FFA
D4)
02ac:fixme:wmvcore:WMSyncReader_Close (0DDF72E0): stub!
02b0:fixme:wmvcore:WMSyncReader_OpenStream (0DDF72E0)->(17550730): stub!
02b0:fixme:wmvcore:WMSyncReader_QueryInterface (0DDF72E0)->({96406bdb-2b2b-11d3-b36b-00c04f6108ff} 377EFA
D4)
02b0:fixme:wmvcore:WMSyncReader_Close (0DDF72E0): stub!
02b4:fixme:wmvcore:WMSyncReader_OpenStream (0DDF72E0)->(17550730): stub!
02b4:fixme:wmvcore:WMSyncReader_QueryInterface (0DDF72E0)->({96406bdb-2b2b-11d3-b36b-00c04f6108ff} 378FFA
D4)
02b4:fixme:wmvcore:WMSyncReader_Close (0DDF72E0): stub!
02b8:fixme:wmvcore:WMSyncReader_OpenStream (0DDF72E0)->(17550730): stub!
02b8:fixme:wmvcore:WMSyncReader_QueryInterface (0DDF72E0)->({96406bdb-2b2b-11d3-b36b-00c04f6108ff} 377EFA
D4)
02b8:fixme:wmvcore:WMSyncReader_Close (0DDF72E0): stub!
02bc:fixme:wmvcore:WMSyncReader_OpenStream (0DDF72E0)->(17B579A8): stub!
02bc:fixme:wmvcore:WMSyncReader_QueryInterface (0DDF72E0)->({96406bdb-2b2b-11d3-b36b-00c04f6108ff} 378FFA
D4)
02bc:fixme:wmvcore:WMSyncReader_Close (0DDF72E0): stub!
02c0:fixme:wmvcore:WMSyncReader_OpenStream (0DDF72E0)->(17550730): stub!
02c0:fixme:wmvcore:WMSyncReader_QueryInterface (0DDF72E0)->({96406bdb-2b2b-11d3-b36b-00c04f6108ff} 377EFA
D4)
02c0:fixme:wmvcore:WMSyncReader_Close (0DDF72E0): stub!
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0148:fixme:wininet:set_cookie secure not handled
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
019c:fixme:wininet:set_cookie secure not handled
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0148:fixme:wininet:set_cookie secure not handled
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0148:fixme:wininet:set_cookie secure not handled
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
019c:fixme:wininet:set_cookie secure not handled
0024:fixme:mshtml:InternetProtocol_Abort (22209570)->(80004004 00000000)
0024:err:mshtml:read_stream_data OnDataAvailable failed: 804b0002
0024:err:mshtml:on_stop_nsrequest RemoveRequest failed: 80004005
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:mshtml:InternetProtocol_Abort (2222FA58)->(80004004 00000000)
0024:err:mshtml:read_stream_data OnDataAvailable failed: 804b0002
0024:err:mshtml:on_stop_nsrequest RemoveRequest failed: 80004005
0330:fixme:wscript:set_host_properties ignored L"nologo" switch
0024:fixme:mshtml:InternetProtocol_Abort (222C84A0)->(80004004 00000000)
0024:err:mshtml:read_stream_data OnDataAvailable failed: 804b0002
0024:err:mshtml:on_stop_nsrequest RemoveRequest failed: 80004005
0024:fixme:mshtml:InternetProtocol_Abort (222C86D8)->(80004004 00000000)
0024:err:mshtml:read_stream_data OnDataAvailable failed: 804b0002
0024:err:mshtml:on_stop_nsrequest RemoveRequest failed: 80004005
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0330:fixme:msxml:ClassFactory_QueryInterface interface {342d1ea0-ae25-11d1-89c5-006008c3fbfc} not impleme
nted
0330:err:vbscript:create_ax_site Could not get IServiceProvider iface: 80004002
0330:fixme:wscript:ActiveScriptSite_OnScriptError ()
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:mshtml:InternetProtocol_Abort (22510F40)->(80004004 00000000)
0024:err:mshtml:read_stream_data OnDataAvailable failed: 804b0002
0024:err:mshtml:on_stop_nsrequest RemoveRequest failed: 80004005
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0338:fixme:wscript:set_host_properties ignored L"nologo" switch
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0338:fixme:msxml:ClassFactory_QueryInterface interface {342d1ea0-ae25-11d1-89c5-006008c3fbfc} not impleme
nted
0338:err:vbscript:create_ax_site Could not get IServiceProvider iface: 80004002
0338:fixme:wscript:ActiveScriptSite_OnScriptError ()
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0340:fixme:wscript:set_host_properties ignored L"nologo" switch
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0148:fixme:secur32:schannel_get_cipher_algid unknown algorithm 23
0148:fixme:secur32:schannel_get_mac_algid unknown algorithm 200, cipher 23
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0340:fixme:msxml:ClassFactory_QueryInterface interface {342d1ea0-ae25-11d1-89c5-006008c3fbfc} not impleme
nted
0340:err:vbscript:create_ax_site Could not get IServiceProvider iface: 80004002
0340:fixme:wscript:ActiveScriptSite_OnScriptError ()
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0348:fixme:wscript:set_host_properties ignored L"nologo" switch
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0348:fixme:msxml:ClassFactory_QueryInterface interface {342d1ea0-ae25-11d1-89c5-006008c3fbfc} not impleme
nted
0348:err:vbscript:create_ax_site Could not get IServiceProvider iface: 80004002
0348:fixme:wscript:ActiveScriptSite_OnScriptError ()
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0350:fixme:wscript:set_host_properties ignored L"nologo" switch
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0350:fixme:msxml:ClassFactory_QueryInterface interface {342d1ea0-ae25-11d1-89c5-006008c3fbfc} not impleme
nted
0350:err:vbscript:create_ax_site Could not get IServiceProvider iface: 80004002
0350:fixme:wscript:ActiveScriptSite_OnScriptError ()
0148:fixme:secur32:schannel_get_cipher_algid unknown algorithm 23
0148:fixme:secur32:schannel_get_mac_algid unknown algorithm 200, cipher 23
0024:fixme:mshtml:nsChannel_IsNoCacheResponse (2217FDD0)->(0031E7CF)
0024:fixme:mshtml:nsChannel_GetContentLength (2217FDD0)->(0031E720)
0024:fixme:mshtml:nsChannel_IsNoCacheResponse (22269A08)->(0031E7CF)
0024:fixme:mshtml:nsChannel_GetContentLength (22269A08)->(0031E720)
0024:fixme:mshtml:nsChannel_IsNoCacheResponse (2226A7B0)->(0031E7CF)
0024:fixme:mshtml:nsChannel_GetContentLength (2226A7B0)->(0031E720)
0024:fixme:ntdll:EtwRegisterTraceGuidsW (24333F90, E6555338, {509962e0-406b-46f4-99ba-5a009f8d2225}, 3, 1
74AB908, (null), (null), E6555368): stub
0024:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {a3da04e0-57d7-482a-a1c1-61da5f95bacb}
0024:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {917b96b1-ecad-4dab-a760-8d49027748ae}
0024:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {26d1e091-0ae7-4f49-a554-4214445c505c}
0024:fixme:mshtml:nsChannel_IsNoCacheResponse (222A1A58)->(0031EA4F)
0024:fixme:mshtml:nsChannel_GetContentLength (222A1A58)->(0031E9A0)
0024:fixme:mshtml:nsChannel_IsNoCacheResponse (222A1F10)->(0031EA4F)
0024:fixme:mshtml:nsChannel_GetContentLength (222A1F10)->(0031E9A0)
0024:fixme:mshtml:nsChannel_IsNoCacheResponse (222A2880)->(0031EA4F)
0024:fixme:mshtml:nsChannel_GetContentLength (222A2880)->(0031E9A0)
0024:fixme:mshtml:nsChannel_IsNoCacheResponse (222A23C0)->(0031EA4F)
0024:fixme:mshtml:nsChannel_GetContentLength (222A23C0)->(0031E9A0)
0024:fixme:mshtml:nsChannel_IsNoCacheResponse (222A2D40)->(0031EA4F)
0024:fixme:mshtml:nsChannel_GetContentLength (222A2D40)->(0031E9A0)
0024:fixme:mshtml:nsChannel_IsNoCacheResponse (222A3200)->(0031EA4F)
0024:err:mshtml:on_stop_nsrequest RemoveRequest failed: 80004005
0024:fixme:mshtml:nsChannel_GetContentLength (224120F0)->(0031E9A0)
0024:err:mshtml:on_stop_nsrequest RemoveRequest failed: 80004005
0024:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20


The interesting part:

Code: [Select]
0024:err:mshtml:read_stream_data OnDataAvailable failed: 804b0002
0024:err:mshtml:on_stop_nsrequest RemoveRequest failed: 80004005
0330:err:vbscript:create_ax_site Could not get IServiceProvider iface: 80004002

foobar console does not show anything...
I've also tried to change the dll's in Winecfg from Native to builtin <> Builtin to native without any difference.

-TT

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #5
 You need a 32bit WINE prefix and install the XP version of IE8, and various other scripting bits via WINETRICKS. The subject has been done to death on these forums. I was doing it for WSH panel mod scripts 10+ years ago and nothing has changed with regards to getting the same ActiveX objects working with SMP. AFAIK, everything offline works. I'm not aware of anything that doesn't. Clipboard access certainly works.

I'm not even going to start on fetching online stuff. I've repeated myself dozens of times on this subject and no one ever takes any notice of what I say and I'm not doing it again.

edit: before anyone grumbles about needing 64bit or IE8 breaking things, setup multiple prefixes. It really is that simple.

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #6
Just because I like to prove a point, everything offline working...



I had to edit my own script which reads the DPI from the registry (the ActiveX object works fine - it's just that the expected registry key does not exist by default in WINE)

JS Smooth playlist required no edits - it just works (edit just realised the rating stars aren't showing due to a missing font, nothing that can't be easily fixed i've already installed FontAwesome which is required for the buttons on the bottom right)

The only edit to Library Tree was a playlist lock detection bug that also affects windows users and has nothing to do with running in WINE.

edit: this is using WINE v5 that ships with Ubuntu as default. I didn't bother with getting the latest.

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #7
Well thats the point of this thread. No matter how many times those tips are repeated, unless there is a clear place collecting all steps for users (wiki) this will continue on the future repeating itself (agree with TT on this).

If there are fixes for most of these reports, they should be included once they are compiled on the FAQ TT linked. Even a thread here is a bad place as a final documentation since it will be lost on a few weeks. That's why there is an official github for SMP with a linux FAQ.

For sure we can not expect that a regular user must know that a DPI variable have to be edited or that internet things doesn't work just because it's a "known thing" for developers while the FAQ omits that info.

I could help creating a pdf with latex if TheQwertiest prefers to go that route though.

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #8
You can configure the panel and copy paste works but there is no data downlaoded from internet so it only could be a workaround to configure UI.

in order to have a working prefix you can't use the ie8 verb so the problem are still there.

Current workarounds are configure the panel with the 32 prefix (one time solution,), comment out the copy paste line to avoid right click crash in the everyday use prefix and add the DPI to the registry.

There is not workaround to download images (as far as I know)

So any effort to make it works will be welcome with joy.






Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #10
Wine has progressed a lot. In the past I had to install a lot of things with winetricks, now I'm using a clean prefix.

Some things in foobar's scripts are still tricky but is a great improvement in relation to the past.

Also thanks to the foobar and component developers that take care of us linux refugees  :))


Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #11
Hi @marc2k3,

thanks for your help and effort!

I created this new topic for linux users, so all known problems are gathered here with updated troubleshooting and for better overview, like regor already pointed out...

I'm using AppImage for pure Wine32 with Mono/Gecko and only 1 MB GDI+ from archive.org.
My whole package with foobar is only around 960 MB unpacked and 560 MB zipped, which is great, instead of slowly downloading bloatware and useless runtimes/libs.

Can you please tell me which required dll's I need, to be able to get ONLY the library/biography options with clipboard working?
Or can you just list all components you've installed with winetricks?
I.e in terminal:
Code: [Select]
winetricks list-installed
It seems you only need ie8 for the library/biography options and for the clipboard func to work properly?

@paregistrase
Quote
in order to have a working prefix you can't use the ie8 verb so the problem are still there.
Can you eloborate a bit more on this?


I'm not up to date where the real problem lies with the biography image fetching. Can you please explain it once more @marc2k3?
Quote
Just trying the wine development version and it seems to have newer root certificates meaning connections to https websites now work properly. I'm quite surprised tbh.
It seems this is a Wine problem, not SMP? I can also forward this to the Wine dev...


I will write it in the FAQ's and @TheQwertiest can also update his at:
https://theqwertiest.github.io/foo_spider_monkey_panel/docs/faq/wine

@regor It would be also nice to have a pdf, maybe other linux users will distribute it over the net :)

Thanks

-TT



 

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #12
@paregistrase
Quote
in order to have a working prefix you can't use the ie8 verb so the problem are still there.
Can you eloborate a bit more on this?
Thanks

-TT


It doesn't download any data, allways gives this error

Code: [Select]
Biography Server: last.fm album cover: Killer / Alice Cooper: not found Status error: 12157
Biography Server: allmusic album review / biography: Killer / Alice Cooper: not found Status error: 12157
Biography Server: last.fm album review: Killer / Alice Cooper: not found Status error: 12157

Also you need to install msxml3 verb with ie8 to avoid the bio panel to crash.

Usefull to configure the bio but not for normal use.


Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #14
I've submitted a PR on github to fix the issues with the included "complete" samples. Specifically the DPI registry issue and handle when the clipboard is unavailable. It's better to use try/catch rather than nuke the functionality for the 99.9% of people who will be on windows.

https://github.com/TheQwertiest/smp_2003/pull/9/files

I'll list the required winetricks packages for everything else later.

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #15
Quote
@regor It would be also nice to have a pdf, maybe other linux users will distribute it over the net :)

Thanks

-TT
Yes sure.
marc2k3 fixes cover most common uses I think. I also use a helper to restore things from recycle bin (_restoreFile) and anyway I always wrap all file ops. from fso and and app calls with try/catchs. Attached files in case anyone cares.

Also this may come useful
Code: [Select]
// Linux features
console.log(getSoFeatures());

function getSoFeatures() {
const soFeat = {gecko: true, clipboard: true, dpi: true, recycle: true, gdiplus: true}
const WshShell = new ActiveXObject('WScript.Shell');
const app = new ActiveXObject('Shell.Application');
let doc;
try {doc = new ActiveXObject('htmlfile');} catch (e) {soFeat.gecko = false;}
if (typeof doc !== 'undefined' && soFeat.gecko) {
try {doc.parentWindow.clipboardData.setData('Text', doc.parentWindow.clipboardData.getData('Text'));} catch (e) {soFeat.clipboard = false;}
} else {soFeat.clipboard = false;}
if (typeof WshShell !== 'undefined') {
try {WshShell.RegRead('HKCU\\Control Panel\\Desktop\\WindowMetrics\\AppliedDPI');} catch (e) {soFeat.dpi = false;}
} else {soFeat.dpi = false;}
if (typeof app !== 'undefined') {
try {app.NameSpace(10).MoveHere(null);} catch (e) {soFeat.recycle = false;}
} else {soFeat.recycle = false;}
if (!utils.CheckFont('Segoe UI') && !utils.CheckFont('Arial')) {
soFeat.gdiplus = false;
}
return soFeat;
}

It can be checked once at startup and then modify the helpers to use or not those features (instead of relaying only on try/catch which is slower). It may also be used to point users to fixes directly via popups which would cover the documentation problem at the endpoint.

Code: [Select]
if (!getSoFeatures().gecko) {fb.ShowPopupMessage('Found an issue on current installation:\nActiveXObject_Constructor failed:\nFailed to create ActiveXObject object via CLSID: htmlfile\n\nFix: install Gecko package.\nhttps://wiki.winehq.org/Gecko', 'SO features');}

Once all issues are documented, we can simply create a popup for every one of them, add the check to our main helper(s) and done.

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #16
Ok, this is great @mark2k3  8)

How did you fix the biography image fetching?
Also thanks for the DPI fix, other linux users will appreciate it. I have wrote my own auto-install bash script that automatically adds the registry based on FULL HD or 4K res.
Once it's perfect and everything works as it should, I can also share it here. I think people will be interested.

Also @regor, this is really useful. I really like the popup idea! This will also help a lot of users!

Thanks a lot guys!
We're making progress!

-TT

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #17
So you only need 2 packages to get image downloads working. Assuming you already have winetricks installed...

Code: [Select]
sh winetricks wsh57 mdac28

and that's it. All other scripting objects seem to be native when using WINE 6.22. xmlhttp, fso etc all work without those packages but they are definitely needed to for executing the external vbscript that downloads from last.fm.

I've only tested my own scripts and there doesn't seem to be any way to get recycling files working so I just catch errors and report a console message.

Clipboard access can be made to work by installing ie8 via winetricks and of course ie8 is required if you want WilB's fancy html settings dialogs.

BTW, that script checking for Segoe UI won't find it. Pretty sure it's copyrighted and can't be legally distributed. Of course there's nothing stopping you copying it from a windows machine but it's not a good step for instructing others.

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #18
Arial alone would do then? Have no access to a linux pc right now, if someone can offer a list of native fonts installed by wine it would be great. The function above should be modified with those.

So this is the current list (?)
Quote
- Registry missing 'HKCU\\Control Panel\\Desktop\\WindowMetrics\\AppliedDPI' entry: set DPI to 96 by default when its not found or recreate reg. entry.
- Clipboard not working: Install IE8 with Winetricks. https://wiki.winehq.org/Winetricks
- HTML Popup not working: Install IE8 with Winetricks. https://wiki.winehq.org/Winetricks
- Bio image download (and possibly other vbs scripts): Install 'wsh57' and 'mdac28' with Winetricks. sh winetricks wsh57 mdac28
- HTML activeX error: Install Gecko package. https://wiki.winehq.org/Gecko
- Fonts are not being found (native ones): Install 'gdiplus' with Winetricks. sh winetricks gdiplus

 

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #19
Very cool @marc2k3

According with my test:

In wine 5 (default in ubuntu)

In order to use the "fancy html settings"  8) of biography you need to make 32 wine prefix and install ie8 and msxml3 verbs with winetricks. Doing that makes the panel to fail when try to download data with error: 12157. So this profile only can be use to make the initial configuration.

To operates normally makes a new 32 prefix, install wsh57,mdac28 and gdiplus. Download fron internet Segoeui fonts (symbols too) and put then in /home/user./local/share/fonts or /home/user/.fonts

With the modifications of included samples there's no more dpi error and rigth click works. The thumbs sample doesn't download image in automatic but if you makes download now it works.

Biography panel download artist images in auto. The rev_img are never downloaded and the cover file in album folder sometimes is writed sometimes not. Maybe this could be a misconfiguration in my panel.

The right click in bio crash but this is normal because the new modification are not in bio yet. Can be avoid comenting out the funtcion of copy-paste (parentWindow.clipboardData.getData) for now

In wine 6.22, last devel and stagging, the same as wine 5 with the exception that you doesn't need gdiplus verb to show segoeui.

To be perfect the only thing left is using the configuration ui without making a prefix with ie8 but anyway this is not a thing you do everyday. Ah and the copy-paste.

Very thanks people.

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #20
Let me know if I missed anything:

Code: [Select]
// Linux features
const soFeat = getSoFeatures();
CheckSoFeatures(soFeat);

function getSoFeatures() {
const soFeat = {gecko: true, clipboard: true, dpi: true, recycle: true, gdiplus: true, segoe: true, bio: true}
const WshShell = new ActiveXObject('WScript.Shell');
const app = new ActiveXObject('Shell.Application');
let doc;
// Internals
try {doc = new ActiveXObject('htmlfile');} catch (e) {soFeat.gecko = false;}
if (typeof doc !== 'undefined' && soFeat.gecko) {
let clText = 'test';
try {doc.parentWindow.clipboardData.setData('Text', clText); clText = doc.parentWindow.clipboardData.getData('Text');} catch (e) {soFeat.clipboard = false;}
if (clText !== 'test') {soFeat.clipboard = false;}
} else {soFeat.clipboard = false;}
// File system
if (typeof app !== 'undefined') {
try {app.NameSpace(10).MoveHere(null);} catch (e) {soFeat.recycle = false;}
} else {soFeat.recycle = false;}
// Scripting
if (utils.IsFile && utils.IsFile(fb.ProfilePath + 'yttm\\foo_lastfm_img.vbs')) {
try {
new ActiveXObject("Scripting.FileSystemObject");
new ActiveXObject("MSXML2.XMLHTTP");
new ActiveXObject("ADODB.Stream");
} catch (e) {soFeat.bio = false;}
}
// UI
if (typeof WshShell !== 'undefined') {
try {WshShell.RegRead('HKCU\\Control Panel\\Desktop\\WindowMetrics\\AppliedDPI');} catch (e) {soFeat.dpi = false;}
} else {soFeat.dpi = false;}
if (!utils.CheckFont('Arial')) {
soFeat.gdiplus = false;
}
if (!utils.CheckFont('Segoe UI')) {
soFeat.segoe = false;
}
return soFeat;
}

function CheckSoFeatures(soFeat) {
let bPass = true;
// Internals
if (!soFeat.gecko) {
fb.ShowPopupMessage('Found an issue on current installation:\nActiveXObject_Constructor failed:\nFailed to create ActiveXObject object via CLSID: htmlfile.\n\nFix: install \'Gecko\' package.\n' + 'https://wiki.winehq.org/Gecko', 'SO features');
bPass = false;
} else  if (!soFeat.clipboard) {
fb.ShowPopupMessage('Found an issue on current installation:\nclipboardData failed.\n\nFix: Install IE8 with Winetricks.\n' + 'https://wiki.winehq.org/Winetricks' + '\n' + 'https://askubuntu.com/questions/1194126/problem-in-installing-internet-explorer-8', 'SO features');
bPass = false;
}
// File system
if (!soFeat.recycle) {
// Not sure if there is an alternative (?)
bPass = false;
}
// Scripting
if (!soFeat.bio) {
fb.ShowPopupMessage('Found an issue on current installation:\nMissing scripting components for vbs integration (BIO panel).\nFix:  Install \'wsh57\' and \'mdac28\' with Winetricks.\n' + 'https://wiki.winehq.org/Winetricks' + 'sh winetricks wsh57 mdac28', 'SO features');
bPass = false;
}
// UI
if (!soFeat.dpi) {
fb.ShowPopupMessage('Found an issue on current installation:\nRegistry entry not found:\nHKCU\\Control Panel\\Desktop\\WindowMetrics\\AppliedDPI\n\nFix: add entry to registry.\n' + 'HKCU\\Control Panel\\Desktop\\WindowMetrics\\AppliedDPI          --->     96', 'SO features');
bPass = false;
}
if (!soFeat.gdiplus) {
fb.ShowPopupMessage('Found an issue on current installation:\nFonts are not found via utils.CheckFont() and gdi.Font().\n\nFix: install install \'gdiplus\' package with winetricks.\n' + 'https://wiki.winehq.org/Winetricks' + '\n' + 'sh winetricks gdiplus', 'SO features');
bPass = false;
} else if (!soFeat.segoe) {
fb.ShowPopupMessage('Found an issue on current installation:\nSegoe UI font is missing.\n\nFix: install missing font.\n' + 'https://github.com/mrbvrz/segoe-ui-linux', 'SO features');
bPass = false;
}
return bPass;
}
Some notes:
- The clipboard thing works according to @marc2k3 with ie8, but you say the opposite @paregistrase (?).
- I included segoe as a requisite since it's being used by some scripts, although not related to gdiplus now.
- I added a link to IE8 installation since most posts I found were about it not working, could someone confirm they are the actual steps you followed?
- The recycle bin bug has no fix known, is that right? We may consider changing the recycle funcs to use standard move func to a configurable path when using wine.

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #21
- The clipboard thing works according to @marc2k3 with ie8, but you say the opposite @paregistrase (?).

With ie8 the clipboard and the configuration html UI woks but the script gives and error when download data (error: 12157). That why i said that this trick is only for a initial configuration.

If you recommend the installation of ie8 to make work the clipboard it will end in a user without possibility of download any data because ie8 installation breaks internet data download.

Is important to said that i can't managed to install ie8 in wine stable (version 6), devel or staging. Only works (at least for me) with wine 5. In 2022 wine will release wine 7 so is posible that many distros will update wine base package to 6 or even 7 and the possibility of install ie8 verb will go away. This is very possible, recent changes in kernel to include futex to help wine gaming and valve new console and proton will force distros to update his wine version in order to satisfy the gamer market.

In my opinion the best will be to instruct  users to make a 32 wine prefix with wsh57,mdac28 and gdipuls deppending of the wine version, inform them that the ui and clipboard doesn't work (and if is possible disable them if wine is detected to avoid crashes) and tell them that they can configure the scripts with normal dialogues and configuration files.

And like a plus tell them that exists an option to configure the scripts with the UI but it breaks https data download and need a separate profile only to do that and doesn't work with modern wine versions after ancient ubuntu wine 5




Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #22
Sorry, probably read too fast to marc and thought otherwise. If the choice is between having the script working or the config working, and there is no way to have both, then html popups are still a problem... makes no sense to install ie8 to then have BIO not downloading anything until you create another profile.

Also I already shared a full working framework to create config windows within the same panel than the script, so HTML popups are clearly not needed at all if developers try an alternative.
https://hydrogenaud.io/index.php?topic=116669.msg1000465#msg1000465
https://hydrogenaud.io/index.php?topic=116669.msg1000638#msg1000638

It may be wisest to instruct users to install the packages to get the scripts working by default since that's the main aim... Then at a further doc file (pdf), explain that HTML popups may be made to work with another profile + ie8. But that's just a plus, since as you noted the config files may be directly edited.

Reworked with such warning. May be checked once per script/panel at first startup with a simple property boolean and done.
Code: [Select]
// Linux features
const soFeat = getSoFeatures();
CheckSoFeatures(soFeat);

function getSoFeatures() {
const soFeat = {gecko: true, clipboard: true, dpi: true, recycle: true, gdiplus: true, segoe: true, bio: true}
const WshShell = new ActiveXObject('WScript.Shell');
const app = new ActiveXObject('Shell.Application');
let doc;
// Internals
try {doc = new ActiveXObject('htmlfile');} catch (e) {soFeat.gecko = false;}
if (typeof doc !== 'undefined' && soFeat.gecko) {
let clText = 'test';
try {doc.parentWindow.clipboardData.setData('Text', clText); clText = doc.parentWindow.clipboardData.getData('Text');} catch (e) {soFeat.clipboard = false;}
if (clText !== 'test') {soFeat.clipboard = false;}
} else {soFeat.clipboard = false;}
// File system
if (typeof app !== 'undefined') {
try {app.NameSpace(10).MoveHere(null);} catch (e) {soFeat.recycle = false;}
} else {soFeat.recycle = false;}
// Scripting
if (utils.IsFile && utils.IsFile(fb.ProfilePath + 'yttm\\foo_lastfm_img.vbs')) {
try {
new ActiveXObject("Scripting.FileSystemObject");
new ActiveXObject("MSXML2.XMLHTTP");
new ActiveXObject("ADODB.Stream");
} catch (e) {soFeat.bio = false;}
}
// UI
if (typeof WshShell !== 'undefined') {
try {WshShell.RegRead('HKCU\\Control Panel\\Desktop\\WindowMetrics\\AppliedDPI');} catch (e) {soFeat.dpi = false;}
} else {soFeat.dpi = false;}
if (!utils.CheckFont('Arial')) {
soFeat.gdiplus = false;
}
if (!utils.CheckFont('Segoe UI')) {
soFeat.segoe = false;
}
return soFeat;
}

function CheckSoFeatures(soFeat) {
let bPass = true;
// Internals
if (!soFeat.gecko) {
fb.ShowPopupMessage('Found an issue on current installation:\nActiveXObject_Constructor failed:\nFailed to create ActiveXObject object via CLSID: htmlfile.\n\nFix: install \'Gecko\' package.\n' + 'https://wiki.winehq.org/Gecko', 'SO features');
bPass = false;
} else  if (soFeat.clipboard) {
fb.ShowPopupMessage('Found an issue on current installation:\nclipboardData failed.\n\nFix: Install IE8 with Winetricks.\n' + 'https://wiki.winehq.org/Winetricks' + '\n' + 'https://askubuntu.com/questions/1194126/problem-in-installing-internet-explorer-8' + '\n\nWARNING:\nApplying this fix will break internet connection on current profile.\ni.e. Bio Script config popup will work but image downloading will be broken. It\'s therefore recommended to don\'t apply this fix on online systems.', 'SO features');
bPass = false;
}
// File system
if (!soFeat.recycle) {
// Not sure if there is an alternative (?)
bPass = false;
}
// Scripting
if (!soFeat.bio) {
fb.ShowPopupMessage('Found an issue on current installation:\nMissing scripting components for vbs integration (BIO panel).\nFix:  Install \'wsh57\' and \'mdac28\' with Winetricks.\n' + 'https://wiki.winehq.org/Winetricks' + 'sh winetricks wsh57 mdac28', 'SO features');
bPass = false;
}
// UI
if (!soFeat.dpi) {
fb.ShowPopupMessage('Found an issue on current installation:\nRegistry entry not found:\nHKCU\\Control Panel\\Desktop\\WindowMetrics\\AppliedDPI\n\nFix: add entry to registry.\n' + 'HKCU\\Control Panel\\Desktop\\WindowMetrics\\AppliedDPI          --->     96\nreg.exe ADD "HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics" /v AppliedDPI /t REG_DWORD /d 96', 'SO features');
bPass = false;
}
if (!soFeat.gdiplus) {
fb.ShowPopupMessage('Found an issue on current installation:\nFonts are not found via utils.CheckFont() and gdi.Font().\n\nFix: install install \'gdiplus\' package with winetricks.\n' + 'https://wiki.winehq.org/Winetricks' + '\n' + 'sh winetricks gdiplus', 'SO features');
bPass = false;
} else if (!soFeat.segoe) {
fb.ShowPopupMessage('Found an issue on current installation:\nSegoe UI font is missing.\n\nFix: install missing font.\n' + 'https://github.com/mrbvrz/segoe-ui-linux', 'SO features');
bPass = false;
}
return bPass;
}

EDIT: the dpi registry thing may be automatically fixed too by adding an entry using cmd, which may be done by the js script itself.
reg.exe ADD "HKCU\Control Panel\Desktop\WindowMetrics" /v AppliedDPI /t REG_DWORD /d 96 /f

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #23
Sure. If the panel leitmotiv is download internet data and getting the clipboard works requiere ie8 and that breaks data download the choice is easy at least for me, i prefer download data.

And to make your code work in Bio is enough with paste it in the script main.js or requieres deeper changes?

This inside configurations looks cool. Hope that can be used in bio.

Re: Wine/Spider Monkey Panel/Script bugs on Linux

Reply #24
Sure. If the panel leitmotiv is download internet data and getting the clipboard works requiere ie8 and that breaks data download the choice is easy at least for me, i prefer download data.

And to make your code work in Bio is enough with paste it in the script main.js or requieres deeper changes?

This inside configurations looks cool. Hope that can be used in bio.


The warning code may be added as is to any script. No more changes needed and it would work fine.... although any error found would be reported everytime foobar starts. i.e. clipboard would always report an error.

I would implement it myself to run it once only at first startup, right after installation. That requires a property on the panel, something any developer may implement in its own scripts in 2 minutes. Another possibility would be to skip clipboard checks, so that it only reports an error for things that should always be fixed (since we have noted that clipboard fixing involves IE8 which breaks other things).