Netflix Desktop requires ttf-mscorefonts-installer

Bug #1083852 reported by Erich E. Hoover
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Netflix Desktop
Triaged
Low
Erich E. Hoover
Wine
Unknown
Medium

Bug Description

Without MS fonts the Netflix viewer fails with an error 1001 when loading. This kind of work around should not be necessary, likely there is a font substitution missing somewhere.

Revision history for this message
In , Erich E. Hoover (ehoover) wrote :

Without MS true type fonts (specifically, either Arial or Verdana) the Netflix Silverlight player will fail to load with "Error Code: 1001". By adding either one of these fonts (or installing all the MS TTF) then the player will load properly.

Changed in wine:
importance: Unknown → Medium
status: Unknown → Confirmed
Revision history for this message
In , Focht (focht) wrote :

Hello folks,

also required for Evolve client, a .NET 4.0 application.

'winetricks corefonts' or running 'arial32.exe' from winetricks cache works around.

--- snip ---
fixme:shell:URL_ParseUrl failed to parse L"PresentationFramework.Aero"
fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime"): stub
fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x00000401,(nil),0x0001,0x00000000,0x3296b8,(nil)): stub
err:eventlog:ReportEventW L"Application: Updater.exe\nFramework Version: v4.0.30319\nDescription: The application requested process termination through System.Environment.FailFast(string message).\nMessage: Unrecoverable system error.\nStack:\n at System.Environment.FailFast(System.String)\n at MS.Internal.Invariant.FailFas"...
fixme:advapi:DeregisterEventSource (0xcafe4242) stub
--- snip ---

Prerequisite: 'winetricks -q dotnet40' (32-bit WINEPREFIX)
Optional (the client will download/install on its own): 'winetricks -q msxml6'

Download: https://www.evolvehq.com/client

$ wine --version
wine-1.5.19-152-g7f88250

Regards

Changed in netflix-desktop:
status: New → Triaged
Revision history for this message
In , Focht (focht) wrote :

Hello folks,

also needed for Visual Studio 2010 (Express Edition).
Refining summary.

If your .NET 4.x apps exit with "System.Environment.FailFast" message it's most likely this bug.

$ wine --version
wine-1.5.20

Regards

Revision history for this message
In , Erich E. Hoover (ehoover) wrote :

Interesting note: Surprisingly, adding a font substitute (HKLM/Software/Microsoft/Windows NT/Current Version/FontSubstitutes) _does not_ work around this issue.

Revision history for this message
In , Focht (focht) wrote :

Hello folks,

refining summary as this also applies to .NET Framework 3.x WPF applications.

Example WPF 3.5 app: "Adobe Digital Editions 2.0" (bug 33523)

'winetricks corefonts' or running 'arial32.exe' from winetricks cache works
around.

$ wine --version
wine-1.5.29-122-g865d53d

Regards

Revision history for this message
In , Focht (focht) wrote :

*** Bug 33527 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Erich E. Hoover (ehoover) wrote :

Hi Anastasius,

Would you mind trying this patch?:
https://raw.github.com/compholio/wine-compholio-daily/master/patches/10-Missing_Fonts/0001-fonts-Add-Liberation-Sans-SIL-Open-Font-License-as-a.patch

It has to be applied using "git apply" or "git am" unless you download the ttf file separately and put it in the wine "fonts" folder:
https://github.com/compholio/wine-compholio-daily/raw/master/patches/10-Missing_Fonts/arial.ttf

Revision history for this message
In , Focht (focht) wrote :

Hello Erich,

thanks, the patch definitely helps .NET 3.x/4.x apps (.NET runtime failure is gone).

I have to enable subpixel font smoothing though, otherwise text looks pretty ugly ('winetricks fontsmooth=rgb').

Regards

Revision history for this message
In , Erich E. Hoover (ehoover) wrote :

(In reply to Anastasius Focht from comment #7)
> Hello Erich,
>
> thanks, the patch definitely helps .NET 3.x/4.x apps (.NET runtime failure
> is gone).
>
> I have to enable subpixel font smoothing though, otherwise text looks pretty
> ugly ('winetricks fontsmooth=rgb').
>
> Regards

Excellent, I'll see what I can do about getting it included :)

Revision history for this message
huy tran (novo2809) wrote :

you can install the fonts here

$ sudo apt-get install ttf-mscorefonts-installer --quiet
$ sudo sh -c "echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections"

from: http://namhuy.net/1867/how-to-install-netflix-on-ubuntu-linux-mint-and-fedora.html

Revision history for this message
Erich E. Hoover (ehoover) wrote :

Hi huy, we actually made an improvement recently that will allow us to drop this dependency. I'll do what I can to make sure that that gets updated in the next release.

Revision history for this message
In , Focht (focht) wrote :

*** Bug 30433 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Focht (focht) wrote :

*** Bug 36503 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Focht (focht) wrote :

*** Bug 38386 has been marked as a duplicate of this bug. ***

Changed in wine:
status: Confirmed → Unknown
Revision history for this message
In , Focht (focht) wrote :
Download full text (3.8 KiB)

Hello folks,

adding another .NET (2.0) app for testing: Fronius Solar Configurator 3.3.1

Download: http://www.fronius.com/cps/rde/xbcr/fronius_international/SE_SW_Fronius_Solar.configurator_MULTI_85521_snapshot.zip

Also reported here: https://forum.winehq.org/viewtopic.php?f=8&t=25424

Actually the user had broken host dependencies and used Wine-Mono which obviously doesn't work for other reasons.

--- snip ---
Unhandled Exception: System.ArgumentException: Font 'Arial' cannot be found.
   at System.Drawing.FontFamily.CreateFontFamily(String name, FontCollection fontCollection)
   at System.Drawing.FontFamily..ctor(String name)
   at KonfiguratorOberflaeche.SingleInverterMatrixControl.ChangeMatrixSize(Int32 InNumHor, Int32 InNumVer, Int32 AddWidth)
   at KonfiguratorOberflaeche.SingleInverterMatrixControl..ctor()
   at KonfiguratorOberflaeche.SingelInvPanel.InitializeComponent()
   at KonfiguratorOberflaeche.SingelInvPanel..ctor()
   at KonfiguratorOberflaeche.AnlageDim.InitializeComponent()
   at KonfiguratorOberflaeche.AnlageDim..ctor()
   at KonfiguratorOberflaeche.Form1.InitializeComponent()
   at KonfiguratorOberflaeche.Form1..ctor()
   at KonfiguratorOberflaeche.Form1.Main(String[] args)
wine: Unhandled exception 0xe0434f4d in thread 9 at address 0x7b845f21 (thread 0009), starting debugger...
--- snip ---

The app works fine after installing Arial font via 'winetricks -q corefonts' in 32-bit WINEPREFIX with .NET 2.0 Framework ('winetricks -q dotnet20').

--- snip ---
-=[ ProtectionID v0.6.6.7 DECEMBER]=-
(c) 2003-2015 CDKiLLER & TippeX
Build 24/12/14-22:48:13
Ready...
Scanning -> C:\Program Files\Fronius Austria\Solar.configurator\Konfigurator.exe
File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 9740288 (094A000h) Byte(s)
Compilation TimeStamp : 0x5566CB8C -> Thu 28th May 2015 08:02:20 (GMT)
[TimeStamp] 0x5566CB8C -> Thu 28th May 2015 08:02:20 (GMT) | PE Header | - | Offset: 0x00000088 | VA: 0x11000088 | -
[TimeStamp] 0x5566CB8C -> Thu 28th May 2015 08:02:20 (GMT) | DebugDirectory | - | Offset: 0x00945054 | VA: 0x11946054 | -
[File Heuristics] -> Flag #1 : 00000100000001001101000000110000 (0x0404D030)
[Entrypoint Section Entropy] : 6.58 (section #0) ".text " | Size : 0x9441E4 (9716196) byte(s)
[DllCharacteristics] -> Flag : (0x8540) -> ASLR | DEP | NOSEH | TSA
[SectionCount] 3 (0x3) | ImageSize 0x94E000 (9756672) byte(s)
[VersionInfo] Product Version : 1.0.5626.16270
[VersionInfo] File Version : 1.0.5626.16270
[VersionInfo] Original FileName : Konfigurator.exe
[VersionInfo] Internal Name : Konfigurator.exe
[Debug Info] (record 1 of 1) (file offset 0x945050)
Characteristics : 0x0 | TimeDateStamp : 0x5566CB8C (Thu 28th May 2015 08:02:20 (GMT)) | MajorVer : 0 / MinorVer : 0 -> (0.0)
Type : 2 (0x2) -> CodeView | Size : 0x11C (284)
AddressOfRawData : 0x94606C | PointerToRawData : 0x94506C
CvSig : 0x53445352 | SigGuid 4C99B39C-EE08-482F-B20BAE3FCC19B883
Age : 0x13 | Pdb : c:\Projects\solar.configurator\KonfiguratorOberflaecheV3\obj\Debug\Konfigurator.pdb
[!] [.net scan core] dotNetReactor detected!
[CompilerDetect] -> .NET
[.] .Net Info -> v 2.5 (struct version) | MSIL (/platform:anycpu (default) | Flags : 0x00000001 -> COMIMAG...

Read more...

Revision history for this message
In , mr.larch (bunglehead) wrote :

I think System.Drawing is a gdiplus wrapper, so probably substitute should do? Or did you try that too?

Revision history for this message
In , Focht (focht) wrote :

Hello Nikolay,

--- quote ---
I think System.Drawing is a gdiplus wrapper, so probably substitute should do? Or did you try that too?
--- quote ---

well, a substitute would give you bug 32342 ;-)

Regards

Revision history for this message
In , mr.larch (bunglehead) wrote :

(In reply to Anastasius Focht from comment #14)
> Hello Nikolay,
>
> --- quote ---
> I think System.Drawing is a gdiplus wrapper, so probably substitute should
> do? Or did you try that too?
> --- quote ---
>
> well, a substitute would give you bug 32342 ;-)

I see, thanks. Is it an accurate description of what happens https://bugs.winehq.org/show_bug.cgi?id=32342#c18 ? I.e. does it fail checking what API returns or does it fail while accessing font NAME data directly? It's obviously a shortcut to distribute additional fonts, preferred way would be to use system font and make it look like what application expects.

>
> Regards

Revision history for this message
In , Sebastian Lackner (slackner) wrote :

(In reply to Anastasius Focht from comment #14)
> well, a substitute would give you bug 32342 ;-)

Have you verified that? I remember that Erich explained in an email on wine-devel about a year ago his results of the analysis, and he strongly suspected that at least Netflix directly reads the font files instead of using proper API calls. Unfortunately I can't find this mail right now. Unity3D is even more strict, and will only find the fonts if they are located in C:\\Windows\\Fonts, so I suspect there is also some manual loading step involved.

Revision history for this message
In , Sebastian Lackner (slackner) wrote :

I have just verified myself that fixing or working around bug https://bugs.winehq.org/show_bug.cgi?id=32342 does not make the font substitution work with Netflix. Nevertheless it would still be nice if Erich could attach the analysis here for completeness, and to avoid mixing up the different issues / program expectations.

Revision history for this message
In , mr.larch (bunglehead) wrote :

By substitution I meant regular gdi32 substitution, not something Silverlight could possibly do. For WPF it won't work, as it doesn't support substitution, same as DirectWrite, but for latter we can at least have some workarounds in out implementation (which of course won't help if application will try to read font data directly). Regarding looking for fonts in windows/fonts, we can probably try to create some links for specific fonts on prefix update, or prefix creation. I don't know what Unity uses for font rendering, could as well not depend on system APIs.

Revision history for this message
In , Erich E. Hoover (ehoover) wrote :

(In reply to Sebastian Lackner from comment #17)
> I have just verified myself that fixing or working around bug
> https://bugs.winehq.org/show_bug.cgi?id=32342 does not make the font
> substitution work with Netflix. Nevertheless it would still be nice if Erich
> could attach the analysis here for completeness, and to avoid mixing up the
> different issues / program expectations.

I know I wrote an email or had an IRC conversation about this, but I cannot find it for the life of me. I'll have to reproduce this work, but I do not have time to do that today. My memory is that it actually uses ReadFile and reads the raw font information straight out of the file.

Revision history for this message
In , Focht (focht) wrote :

*** Bug 39748 has been marked as a duplicate of this bug. ***

Revision history for this message
In , mr.larch (bunglehead) wrote :

For Evolve client there's an easy workaround that does not require specific font:

- install dotnet40;
- flip prefix version to windows 7;
- add replacement registry entry for Arial to Wine/Fonts/Replacements;
- run the client.

This way WPF font rendering goes through dwrite, and it works fine for me in current wine. I suspect this will help other applications too, and I believe it's a preferable way to handle this issue.

I'll retest other linked bugs when I have time, but regarding Netflix/Silverlight, what are the proper steps to test this combo?

Revision history for this message
In , Michael Müller (mqchael) wrote :

This currently won't work for Silverlight/Netflix as the Playready DRM is broken if you set the windows version > XP.

Revision history for this message
In , mr.larch (bunglehead) wrote :

Ok, it will make sense to separate it from other affected applications then.

Revision history for this message
In , Xerox-xerox2000x (xerox-xerox2000x) wrote :

*** Bug 44909 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Xerox-xerox2000x (xerox-xerox2000x) wrote :

*** Bug 48728 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Focht (focht) wrote :

*** Bug 38741 has been marked as a duplicate of this bug. ***

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.