http://bugs.winehq.org/show_bug.cgi?id=31655
Bug #: 31655 Summary: SlingPlayer 1.5 fails to show video if Wine is upgraded Product: Wine Version: 1.5.12 Platform: x86-64 URL: http://download.slingmedia.com/player/pc/SlingPlayer-S etup-EU-1.5.1.343.exe OS/Version: Linux Status: NEW Keywords: download Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: kennybobs@o2.co.uk Classification: Unclassified
Created attachment 41616 --> http://bugs.winehq.org/attachment.cgi?id=41616 Wine 1.5.6 console output
SlingPlayer 1.5 fails to show video if Wine is upgraded. Sound works fine.
I have tested this over and over and it is the act of upgrading Wine that appears to be causing the problem.
Native quartz, qcap and gdiplus needed to get this far.
Tested: 1.4.1 --> 1.5.6 1.5.6 --> 1.5.12 1.5.12 --> wine-1.5.12-157-gbdf9a9f
Following the upgrade there is some new output in the console: err:ddraw:ddraw7_QueryInterface (0x1ee6f8)->({aca12120-3356-11d1-8fcf-00c04fc29b4e}, 0x16d554): No interface found
And this line disappears: err:ole:CoGetClassObject class {7d8aa343-6e63-4663-be90-6b80f66540a3} not registered
7d8aa343-6e63-4663-be90-6b80f66540a3 is related to quartz.dll (http://mikolajapp.appspot.com/uuid/query?q=%7B7d8aa343-6e63-4663-be90-6b80f6...) and this somehow becomes registered during the transition, and stops video from being shown in the SlingPlayer.
I cannot understand what would cause this.
Attempting to unregister fails: Failed to unregister DLL c:\windows\system32\quartz.dll
No known workaround: I have to reinstall SlingPlayer every time, or lock the upgrades on my system.
http://bugs.winehq.org/show_bug.cgi?id=31655
--- Comment #1 from Ken Sharp kennybobs@o2.co.uk 2012-09-09 10:37:05 CDT --- Created attachment 41617 --> http://bugs.winehq.org/attachment.cgi?id=41617 Wine 1.5.12 console output
I have tried creating a .diff but the format was horrible.
http://bugs.winehq.org/show_bug.cgi?id=31655
--- Comment #2 from Ken Sharp kennybobs@o2.co.uk 2012-09-10 11:57:20 CDT --- Created attachment 41637 --> http://bugs.winehq.org/attachment.cgi?id=41637 diff -u sling15_1.5.6.log sling15_1.5.12.log (snipped)
http://bugs.winehq.org/show_bug.cgi?id=31655
--- Comment #3 from Ken Sharp kennybobs@o2.co.uk 2012-09-30 13:59:36 CDT --- Created attachment 41896 --> http://bugs.winehq.org/attachment.cgi?id=41896 Registry diff, upgrade from 1.5.12 to 1.5.14
I installed SlingPlayer 1.5 in a clean wineprefix with Wine 1.5.12, then updated the wineprefix to Wine 1.5.14, after creating a copy of the original. The result being the same as above: the SlingPlayer no longer works.
I made a diff -Nru of the two wineprefixes but the only interesting changes were in the registry (diff attached).
The attached shows some expected changes, some expected deletions (due to new commits) but a load of completely unexpected deletions.
For some reason Wine removes a lot of the registry entries that the SlingPlayer installer has created.
Some of the removals can, in theory, be replaced with a "regsvr32 *.dll", but others cannot without a complete reinstall.
The question now is: why is Wine doing this and how can it be stopped?
http://bugs.winehq.org/show_bug.cgi?id=31655
--- Comment #4 from Ken Sharp kennybobs@o2.co.uk 2012-09-30 16:31:15 CDT --- Found a workaround:
This FAILS: 1. Install SlingPlayer. 2. Upgrade Wine. 3. Run SlingPlayer.
This SUCCEEDS: 1. Install SlingPlayer. 2. Upgrade Wine. 3. Run wineboot. 4. Run SlingPlayer.
A +wineboot trace simply reports that it has nothing to do, but something is different.
http://bugs.winehq.org/show_bug.cgi?id=31655
--- Comment #5 from Austin English austinenglish@gmail.com 2012-10-01 13:25:44 CDT --- (In reply to comment #3)
The question now is: why is Wine doing this and how can it be stopped?
$ echo 'disable' > $WINEPREFIX/.update-timestamp
http://bugs.winehq.org/show_bug.cgi?id=31655
Ken Sharp kennybobs@o2.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |minor
--- Comment #6 from Ken Sharp kennybobs@o2.co.uk 2012-10-01 15:49:05 CDT --- Nice. That works.
Why is Wine deleting all the registry entries though? And why does running wineboot first stop it from doing so?
http://bugs.winehq.org/show_bug.cgi?id=31655
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|SlingPlayer 1.5 fails to |Upgrading Wine destroys |show video if Wine is |registry entries |upgraded |
https://bugs.winehq.org/show_bug.cgi?id=31655
--- Comment #7 from Ken Sharp imwellcushtymelike@gmail.com --- No change in wine-2.2-33-g60c98ca.
https://bugs.winehq.org/show_bug.cgi?id=31655
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Ubuntu
--- Comment #8 from Ken Sharp imwellcushtymelike@gmail.com --- No change in Wine 3.0-rc2 and Staging 2.21.
https://bugs.winehq.org/show_bug.cgi?id=31655
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #41616|0 |1 is obsolete| | Attachment #41617|0 |1 is obsolete| | Attachment #41637|0 |1 is obsolete| | Attachment #41896|0 |1 is obsolete| |
--- Comment #9 from Ken Sharp imwellcushtymelike@gmail.com --- Created attachment 59993 --> https://bugs.winehq.org/attachment.cgi?id=59993 system.reg diff
Right... this is actually really easy to recreate. Remember "fgrep VMR ~/.wine/system.reg" as it indicates that a (substantial) change to the registry has taken place.
1. "winetricks quartz" 2. "wineboot" 3. "fgrep VMR ~/.wine/system.reg" = nothing 4. "wineboot -u" (or upgrade Wine) 5. fgrep VMR ~/.wine/system.reg" =
@="VMR Mixer" @="VMR Allocator Presenter 9" @="VMR Allocator Presenter DDXcl Mode" @="VMR ImageSync" @="VMR Allocator Presenter" @="VMR Mixer 9" @="VMR ImageSync 9"
So it is the presence of a native quartz.dll which is causing the registry to change to the point in which Slingplayer (for example) will no longer function correctly.
I am assuming that this shouldn't occur, but updating Wine occurs more frequently than updating Windows versions.
All in one go:
$ winetricks -q quartz; wineserver -w; fgrep VMR ~/.wine/system.reg; wineboot -u; wineserver -w; fgrep VMR ~/.wine/system.reg
"wineboot" ("wineboot --init") runs the same update_wineprefix() function as "wineboot -u", but the -u forces the update.
case 'u': update = TRUE; break;
if (init || update) update_wineprefix( update );
https://source.winehq.org/source/programs/wineboot/wineboot.c#0989
Anyway...
During this "update" process a whole bunch of registry entries are added (or modified). I cannot find a source for these entries so I can only assume it to have something to do with quartz.dll interacting with... ? I tried "wine regsvr32 quartz.dll" which succeeds but this doesn't seem to have the same effect on the registry.
I couldn't find any useful traces but I assume a +relay would tell me. I'm hoping that somebody knows how this all works, though.
Attached is a registry diff with a lot of repetitive stuff clipped out. You can see a lot of quartz related stuff has been added.
Slingplayer can't be the only application affected by this, it just can't...
https://bugs.winehq.org/show_bug.cgi?id=31655
--- Comment #10 from Ken Sharp imwellcushtymelike@gmail.com --- Created attachment 59994 --> https://bugs.winehq.org/attachment.cgi?id=59994 inotifywait -mr ~/.wine
I recorded what files were accessed and changed during the "upgrade" but it's probably too noisy to be useful.