Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

System.InvalidOperationException: Default font family name can't be null or empty #4427

Open
elestedt opened this issue Aug 2, 2020 · 86 comments · Fixed by #12817
Open

System.InvalidOperationException: Default font family name can't be null or empty #4427

elestedt opened this issue Aug 2, 2020 · 86 comments · Fixed by #12817

Comments

@elestedt
Copy link

elestedt commented Aug 2, 2020

Version: 0.10-preview2

I upgraded project IPOCS.JMRI.CONTROL, located at https://github.com/GMJS/ipocs.jmri, to preview2 (not committed and pushed yet) and made a build for linux-arm using dotnet publish IPOCS.JMRI.CONTROL -c Release -r linux-arm. Upon trying to run this on a raspberry pi I'm getting the exception:

Unhandled exception. System.InvalidOperationException: Default font family name can't be null or empty.
   at Avalonia.Media.FontManager..ctor(IFontManagerImpl platformImpl)
   at Avalonia.Media.FontManager.get_Current()
   at Avalonia.Rendering.RendererBase..ctor(Boolean useManualFpsCounting)
   at Avalonia.Rendering.DeferredRenderer..ctor(IRenderRoot root, IRenderLoop renderLoop, ISceneBuilder sceneBuilder, IDispatcher dispatcher, IDeferredRendererLock rendererLock)
   at Avalonia.X11.X11Window.CreateRenderer(IRenderRoot root)
   at Avalonia.Controls.TopLevel..ctor(ITopLevelImpl impl, IAvaloniaDependencyResolver dependencyResolver)
   at Avalonia.Controls.WindowBase..ctor(IWindowBaseImpl impl, IAvaloniaDependencyResolver dependencyResolver)
   at Avalonia.Controls.WindowBase..ctor(IWindowBaseImpl impl)
   at Avalonia.Controls.Window..ctor(IWindowImpl impl)
   at Avalonia.Controls.Window..ctor()
   at IPOCS.JMRI.CONTROL.Views.MainWindow..ctor() in <path>\ipocs.jmri\IPOCS.JMRI.CONTROL\Views\MainWindow.axaml.cs:line 9
   at IPOCS.JMRI.CONTROL.App.OnFrameworkInitializationCompleted() in <path>t\ipocs.jmri\IPOCS.JMRI.CONTROL\App.axaml.cs:line 20
   at Avalonia.Controls.AppBuilderBase`1.Setup()
   at Avalonia.Controls.AppBuilderBase`1.SetupWithLifetime(IApplicationLifetime lifetime)
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode)
   at IPOCS.JMRI.CONTROL.Program.Main(String[] args) in <path>\ipocs.jmri\IPOCS.JMRI.CONTROL\Program.cs:line 13
@elestedt
Copy link
Author

elestedt commented Aug 2, 2020

@Gillibald As Dan suggested I've put an issue on this here.

@elestedt
Copy link
Author

elestedt commented Aug 2, 2020

Just tried swapping to the Fluent theme, same error.

@Gillibald
Copy link
Contributor

You most likely need to install libfontconfig

@elestedt
Copy link
Author

elestedt commented Aug 2, 2020

libfontconfig1 is already the newest version (2.11.0-6.7).

@Gillibald
Copy link
Contributor

How does your fonts.conf look like?

@elestedt
Copy link
Author

elestedt commented Aug 3, 2020

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/fonts.conf file to configure system font access -->
<fontconfig>

<!--
        DO NOT EDIT THIS FILE.
        IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.
        LOCAL CHANGES BELONG IN 'local.conf'.

        The intent of this standard configuration file is to be adequate for
        most environments.  If you have a reasonably normal environment and
        have found problems with this configuration, they are probably
        things that others will also want fixed.  Please submit any
        problems to the fontconfig bugzilla system located at fontconfig.org

        Note that the normal 'make install' procedure for fontconfig is to
        replace any existing fonts.conf file with the new version.  Place
        any local customizations in local.conf which this file references.

        Keith Packard
-->

<!-- Font directory list -->

        <dir>/usr/share/fonts</dir>
        <dir>/usr/X11R6/lib/X11/fonts</dir> <dir>/usr/local/share/fonts</dir>
        <dir prefix="xdg">fonts</dir>
        <!-- the following element will be removed in the future -->
        <dir>~/.fonts</dir>

<!--
  Accept deprecated 'mono' alias, replacing it with 'monospace'
-->
        <match target="pattern">
                <test qual="any" name="family">
                        <string>mono</string>
                </test>
                <edit name="family" mode="assign" binding="same">
                        <string>monospace</string>
                </edit>
        </match>

<!--
  Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
-->
        <match target="pattern">
                <test qual="any" name="family">
                        <string>sans serif</string>
                </test>
                <edit name="family" mode="assign" binding="same">
                        <string>sans-serif</string>
                </edit>
        </match>

<!--
  Accept deprecated 'sans' alias, replacing it with 'sans-serif'
-->
        <match target="pattern">
                <test qual="any" name="family">
                        <string>sans</string>
                </test>
                <edit name="family" mode="assign" binding="same">
                        <string>sans-serif</string>
                </edit>
        </match>

<!--
  Ignore dpkg temporary files created in fonts directories
-->
        <selectfont>
                <rejectfont>
                        <glob>*.dpkg-tmp</glob>
                </rejectfont>
        </selectfont>
        <selectfont>
                <rejectfont>
                        <glob>*.dpkg-new</glob>
                </rejectfont>
        </selectfont>

<!--
  Load local system customization file
-->
        <include ignore_missing="yes">conf.d</include>

<!-- Font cache directory list -->

        <cachedir>/var/cache/fontconfig</cachedir>
        <cachedir prefix="xdg">fontconfig</cachedir>
        <!-- the following element will be removed in the future -->
        <cachedir>~/.fontconfig</cachedir>

        <config>
<!--
  These are the default Unicode chars that are expected to be blank
  in fonts.  All other blank chars are assumed to be broken and
  won't appear in the resulting charsets
 -->
                <blank>
                        <int>0x0020</int>       <!-- SPACE -->
                        <int>0x00A0</int>       <!-- NO-BREAK SPACE -->
                        <int>0x00AD</int>       <!-- SOFT HYPHEN -->
                        <int>0x034F</int>       <!-- COMBINING GRAPHEME JOINER -->
                        <int>0x0600</int>       <!-- ARABIC NUMBER SIGN -->
                        <int>0x0601</int>       <!-- ARABIC SIGN SANAH -->
                        <int>0x0602</int>       <!-- ARABIC FOOTNOTE MARKER -->
                        <int>0x0603</int>       <!-- ARABIC SIGN SAFHA -->
                        <int>0x06DD</int>       <!-- ARABIC END OF AYAH -->
                        <int>0x070F</int>       <!-- SYRIAC ABBREVIATION MARK -->
                        <int>0x115F</int>       <!-- HANGUL CHOSEONG FILLER -->
                        <int>0x1160</int>       <!-- HANGUL JUNGSEONG FILLER -->
                        <int>0x1680</int>       <!-- OGHAM SPACE MARK -->
                        <int>0x17B4</int>       <!-- KHMER VOWEL INHERENT AQ -->
                        <int>0x17B5</int>       <!-- KHMER VOWEL INHERENT AA -->
                        <int>0x180E</int>       <!-- MONGOLIAN VOWEL SEPARATOR -->
                        <int>0x2000</int>       <!-- EN QUAD -->
                        <int>0x2001</int>       <!-- EM QUAD -->
                        <int>0x2002</int>       <!-- EN SPACE -->
                        <int>0x2003</int>       <!-- EM SPACE -->
                        <int>0x2004</int>       <!-- THREE-PER-EM SPACE -->
                        <int>0x2005</int>       <!-- FOUR-PER-EM SPACE -->
                        <int>0x2006</int>       <!-- SIX-PER-EM SPACE -->
                        <int>0x2007</int>       <!-- FIGURE SPACE -->
                        <int>0x2008</int>       <!-- PUNCTUATION SPACE -->
                        <int>0x2009</int>       <!-- THIN SPACE -->
                        <int>0x200A</int>       <!-- HAIR SPACE -->
                        <int>0x200B</int>       <!-- ZERO WIDTH SPACE -->
                        <int>0x200C</int>       <!-- ZERO WIDTH NON-JOINER -->
                        <int>0x200D</int>       <!-- ZERO WIDTH JOINER -->
                        <int>0x200E</int>       <!-- LEFT-TO-RIGHT MARK -->
                        <int>0x200F</int>       <!-- RIGHT-TO-LEFT MARK -->
                        <int>0x2028</int>       <!-- LINE SEPARATOR -->
                        <int>0x2029</int>       <!-- PARAGRAPH SEPARATOR -->
                        <int>0x202A</int>       <!-- LEFT-TO-RIGHT EMBEDDING -->
                        <int>0x202B</int>       <!-- RIGHT-TO-LEFT EMBEDDING -->
                        <int>0x202C</int>       <!-- POP DIRECTIONAL FORMATTING -->
                        <int>0x202D</int>       <!-- LEFT-TO-RIGHT OVERRIDE -->
                        <int>0x202E</int>       <!-- RIGHT-TO-LEFT OVERRIDE -->
                        <int>0x202F</int>       <!-- NARROW NO-BREAK SPACE -->
                        <int>0x205F</int>       <!-- MEDIUM MATHEMATICAL SPACE -->
                        <int>0x2060</int>       <!-- WORD JOINER -->
                        <int>0x2061</int>       <!-- FUNCTION APPLICATION -->
                        <int>0x2062</int>       <!-- INVISIBLE TIMES -->
                        <int>0x2063</int>       <!-- INVISIBLE SEPARATOR -->
                        <int>0x206A</int>       <!-- INHIBIT SYMMETRIC SWAPPING -->
                        <int>0x206B</int>       <!-- ACTIVATE SYMMETRIC SWAPPING -->
                        <int>0x206C</int>       <!-- INHIBIT ARABIC FORM SHAPING -->
                        <int>0x206D</int>       <!-- ACTIVATE ARABIC FORM SHAPING -->
                        <int>0x206E</int>       <!-- NATIONAL DIGIT SHAPES -->
                        <int>0x206F</int>       <!-- NOMINAL DIGIT SHAPES -->
                        <int>0x2800</int>       <!-- BRAILLE PATTERN BLANK -->
                        <int>0x3000</int>       <!-- IDEOGRAPHIC SPACE -->
                        <int>0x3164</int>       <!-- HANGUL FILLER -->
                        <int>0xFEFF</int>       <!-- ZERO WIDTH NO-BREAK SPACE -->
                        <int>0xFFA0</int>       <!-- HALFWIDTH HANGUL FILLER -->
                        <int>0xFFF9</int>       <!-- INTERLINEAR ANNOTATION ANCHOR -->
                        <int>0xFFFA</int>       <!-- INTERLINEAR ANNOTATION SEPARATOR -->
                        <int>0xFFFB</int>       <!-- INTERLINEAR ANNOTATION TERMINATOR -->
                </blank>
<!--
  Rescan configuration every 30 seconds when FcFontSetList is called
 -->
                <rescan>
                        <int>30</int>
                </rescan>
        </config>

</fontconfig>

Running fc-list yields a fairly long list of fonts. I tried using one of them as FontFamily on MainWindow - didn't make a difference.

@Gillibald
Copy link
Contributor

What does fc-match yield for you?

@elestedt
Copy link
Author

elestedt commented Aug 3, 2020

$ fc-match
DejaVuSans.ttf: "Verdana" "Book"
$

@Gillibald
Copy link
Contributor

That looks okay. Next, we have to try out what could be failing on the Skia side.

What do these yield for you?
SKTypeface.Default.FamilyName
SKFontManager.Default.MatchFamily(null)
SKFontManager.Default.MatchFamily(string.Empty)
SKFontManager.Default.MatchFamily("sans")

@elestedt
Copy link
Author

elestedt commented Aug 3, 2020

  public class App : Application
  {
    public override void Initialize()
    {
      System.Console.WriteLine("1st printout");
      System.Console.Write("SkiaSharp.SKTypeface.Default.FamilyName=");
      System.Console.WriteLine(SkiaSharp.SKTypeface.Default.FamilyName);
      System.Console.Write("SkiaSharp.SKFontManager.Default.MatchFamily(null)=");
      System.Console.WriteLine(SkiaSharp.SKFontManager.Default.MatchFamily(null));
      System.Console.Write("SkiaSharp.SKFontManager.Default.MatchFamily(string.Empty)=");
      System.Console.WriteLine(SkiaSharp.SKFontManager.Default.MatchFamily(string.Empty));
      System.Console.Write("SkiaSharp.SKFontManager.Default.MatchFamily(\"sans\")=");
      System.Console.WriteLine(SkiaSharp.SKFontManager.Default.MatchFamily("sans"));
      System.Console.WriteLine("1st printout - done");

      AvaloniaXamlLoader.Load(this);

      System.Console.WriteLine("2st printout");
      System.Console.Write("SkiaSharp.SKTypeface.Default.FamilyName=");
      System.Console.WriteLine(SkiaSharp.SKTypeface.Default.FamilyName);
      System.Console.Write("SkiaSharp.SKFontManager.Default.MatchFamily(null)=");
      System.Console.WriteLine(SkiaSharp.SKFontManager.Default.MatchFamily(null));
      System.Console.Write("SkiaSharp.SKFontManager.Default.MatchFamily(string.Empty)=");
      System.Console.WriteLine(SkiaSharp.SKFontManager.Default.MatchFamily(string.Empty));
      System.Console.Write("SkiaSharp.SKFontManager.Default.MatchFamily(\"sans\")=");
      System.Console.WriteLine(SkiaSharp.SKFontManager.Default.MatchFamily("sans"));
      System.Console.WriteLine("2st printout - done");
    }

    public override void OnFrameworkInitializationCompleted()
    {
      System.Console.WriteLine("3st printout");
      System.Console.Write("SkiaSharp.SKTypeface.Default.FamilyName=");
      System.Console.WriteLine(SkiaSharp.SKTypeface.Default.FamilyName);
      System.Console.Write("SkiaSharp.SKFontManager.Default.MatchFamily(null)=");
      System.Console.WriteLine(SkiaSharp.SKFontManager.Default.MatchFamily(null));
      System.Console.Write("SkiaSharp.SKFontManager.Default.MatchFamily(string.Empty)=");
      System.Console.WriteLine(SkiaSharp.SKFontManager.Default.MatchFamily(string.Empty));
      System.Console.Write("SkiaSharp.SKFontManager.Default.MatchFamily(\"sans\")=");
      System.Console.WriteLine(SkiaSharp.SKFontManager.Default.MatchFamily("sans"));
      System.Console.WriteLine("3st printout - done");

      if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
      {
        desktop.MainWindow = new MainWindow
        {
          DataContext = new MainWindowViewModel(),
        };
      }

      base.OnFrameworkInitializationCompleted();
    }
  }

yields

1st printout
SkiaSharp.SKTypeface.Default.FamilyName=
SkiaSharp.SKFontManager.Default.MatchFamily(null)=
SkiaSharp.SKFontManager.Default.MatchFamily(string.Empty)=
SkiaSharp.SKFontManager.Default.MatchFamily("sans")=
1st printout - done
2st printout
SkiaSharp.SKTypeface.Default.FamilyName=
SkiaSharp.SKFontManager.Default.MatchFamily(null)=
SkiaSharp.SKFontManager.Default.MatchFamily(string.Empty)=
SkiaSharp.SKFontManager.Default.MatchFamily("sans")=
2st printout - done
3st printout
SkiaSharp.SKTypeface.Default.FamilyName=
SkiaSharp.SKFontManager.Default.MatchFamily(null)=
SkiaSharp.SKFontManager.Default.MatchFamily(string.Empty)=
SkiaSharp.SKFontManager.Default.MatchFamily("sans")=
3st printout - done
Unhandled exception. System.InvalidOperationException: Default font family name can't be null or empty.
   at Avalonia.Media.FontManager..ctor(IFontManagerImpl platformImpl)
   at Avalonia.Media.FontManager.get_Current()
   at Avalonia.Rendering.RendererBase..ctor(Boolean useManualFpsCounting)
   at Avalonia.Rendering.DeferredRenderer..ctor(IRenderRoot root, IRenderLoop renderLoop, ISceneBuilder sceneBuilder, IDispatcher dispatcher, IDeferredRendererLock rendererLock)
   at Avalonia.X11.X11Window.CreateRenderer(IRenderRoot root)
   at Avalonia.Controls.TopLevel..ctor(ITopLevelImpl impl, IAvaloniaDependencyResolver dependencyResolver)
   at Avalonia.Controls.WindowBase..ctor(IWindowBaseImpl impl, IAvaloniaDependencyResolver dependencyResolver)
   at Avalonia.Controls.WindowBase..ctor(IWindowBaseImpl impl)
   at Avalonia.Controls.Window..ctor(IWindowImpl impl)
   at Avalonia.Controls.Window..ctor()
   at IPOCS.JMRI.CONTROL.Views.MainWindow..ctor() in C:\Users\Fredrik\git\ipocs.jmri\IPOCS.JMRI.CONTROL\Views\MainWindow.axaml.cs:line 9
   at IPOCS.JMRI.CONTROL.App.OnFrameworkInitializationCompleted() in C:\Users\Fredrik\git\ipocs.jmri\IPOCS.JMRI.CONTROL\App.axaml.cs:line 53
   at Avalonia.Controls.AppBuilderBase`1.Setup()
   at Avalonia.Controls.AppBuilderBase`1.SetupWithLifetime(IApplicationLifetime lifetime)
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode)
   at IPOCS.JMRI.CONTROL.Program.Main(String[] args) in C:\Users\Fredrik\git\ipocs.jmri\IPOCS.JMRI.CONTROL\Program.cs:line 13

@Gillibald
Copy link
Contributor

So the font manager doesn't work at all

@Gillibald
Copy link
Contributor

You could try out this custom implementation. You need to adjust it to your needs. Make sure you include the fonts as AvaloniaResource. You can choose whatever font you like: https://github.com/AvaloniaUI/Avalonia/blob/master/tests/Avalonia.Skia.UnitTests/Media/CustomFontManagerImpl.cs

Then override this:https://github.com/AvaloniaUI/Avalonia/blob/master/src/Skia/Avalonia.Skia/SkiaPlatform.cs#L23
Just make sure to register the font manager before you attempt to show a window.

Will figure out what we can do about the font manager issue. Probably need some debug build.

@elestedt
Copy link
Author

elestedt commented Aug 3, 2020

You are free to use my project to try and find the cause if you want to. Not sure if it can be reproduced on anything but a raspberry pi though

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

@elestedt
Copy link
Author

elestedt commented Aug 3, 2020

I started trying, but unfortunately it's more than I have time to get working right now. Tried to get it to force load the Roboto font that seems to be bundled with the Fluent theme.

@elestedt
Copy link
Author

elestedt commented Aug 3, 2020

I installed sudo apt-get install ttf-mscorefonts-installer as suggested in #1072 and then the FontManager detected a font...
Probably should be a requirement in some document somewhere that it needs to be installed.

@elestedt
Copy link
Author

elestedt commented Aug 3, 2020

Thanks for taking the time to look at it

@Gillibald
Copy link
Contributor

I wonder what exactly gets installed. Skia should not require specific fonts to be able to match any font.

@elestedt
Copy link
Author

elestedt commented Aug 3, 2020

Unfortunately all I can give you right now is in Swedish, but I'll post the install log here for you :)

$ sudo apt-get install ttf-mscorefonts-installer
Läser paketlistor… Färdig
Bygger beroendeträd
Läser tillståndsinformation… Färdig
The following additional packages will be installed:
  cabextract libmspack0
Följande NYA paket kommer att installeras:
  cabextract libmspack0 ttf-mscorefonts-installer
0 att uppgradera, 3 att nyinstallera, 0 att ta bort och 0 att inte uppgradera.
Behöver hämta 108 kB arkiv.
Efter denna åtgärd kommer ytterligare 268 kB utrymme användas på disken.
Vill du fortsätta? [J/n]
Läs:1 http://raspbian.playstar.se/raspbian stretch/main armhf libmspack0 armhf 0.5-1+deb9u3 [40,8 kB]
Läs:2 http://raspbian.playstar.se/raspbian stretch/main armhf cabextract armhf 1.6-1 [29,8 kB]
Läs:3 http://raspbian.playstar.se/raspbian stretch/contrib armhf ttf-mscorefonts-installer all 3.6 [37,4 kB]
Hämtade 108 kB på 0s (203 kB/s)
Förkonfigurerar paket ...
Väljer tidigare ej valt paket libmspack0:armhf.
(Läser databasen ... 124293 filer och kataloger installerade.)
Förbereder att packa upp .../libmspack0_0.5-1+deb9u3_armhf.deb ...
Packar upp libmspack0:armhf (0.5-1+deb9u3) ...
Väljer tidigare ej valt paket cabextract.
Förbereder att packa upp .../cabextract_1.6-1_armhf.deb ...
Packar upp cabextract (1.6-1) ...
Väljer tidigare ej valt paket ttf-mscorefonts-installer.
Förbereder att packa upp .../ttf-mscorefonts-installer_3.6_all.deb ...
Packar upp ttf-mscorefonts-installer (3.6) ...
Ställer in libmspack0:armhf (0.5-1+deb9u3) ...
Ställer in cabextract (1.6-1) ...
Hanterar utlösare för libc-bin (2.24-11+deb9u4) ...
Hanterar utlösare för man-db (2.7.6.1-2) ...
Ställer in ttf-mscorefonts-installer (3.6) ...

These fonts were provided by Microsoft "in the interest of cross-
platform compatibility".  This is no longer the case, but they are
still available from third parties.

You are free to download these fonts and use them for your own use,
but you may not redistribute them in modified form, including changes
to the file name or packaging format.

--2020-08-03 21:37:31--  http://downloads.sourceforge.net/corefonts/andale32.exe
Slår upp downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80... ansluten.
HTTP-begäran skickad, väntar på svar... 301 Moved Permanently
Adress: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe [följer]
--2020-08-03 21:37:31--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe
Återanvänder befintlig anslutning till downloads.sourceforge.net:80.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://jztkft.dl.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe [följer]
--2020-08-03 21:37:31--  https://jztkft.dl.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe
Slår upp jztkft.dl.sourceforge.net (jztkft.dl.sourceforge.net)... 45.67.159.245
Ansluter till jztkft.dl.sourceforge.net (jztkft.dl.sourceforge.net)|45.67.159.245|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 302 Moved Temporarily
Adress: https://downloads.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe?download&failedmirror=jztkft.dl.sourceforge.net [följer]
--2020-08-03 21:37:32--  https://downloads.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe?download&failedmirror=jztkft.dl.sourceforge.net
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://kumisystems.dl.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe [följer]
--2020-08-03 21:37:33--  https://kumisystems.dl.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe
Slår upp kumisystems.dl.sourceforge.net (kumisystems.dl.sourceforge.net)... 148.251.120.111, 2a01:4f8:210:1057::2
Ansluter till kumisystems.dl.sourceforge.net (kumisystems.dl.sourceforge.net)|148.251.120.111|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 200 OK
Längd: 198384 (194K) [application/octet-stream]
Sparar till: "./andale32.exe"

     0K .......... .......... .......... .......... .......... 25% 1,16M 0s
    50K .......... .......... .......... .......... .......... 51% 1,38M 0s
   100K .......... .......... .......... .......... .......... 77% 3,87M 0s
   150K .......... .......... .......... .......... ...       100%  291K=0,2s

2020-08-03 21:37:33 (805 KB/s) - "./andale32.exe" sparades [198384/198384]

--2020-08-03 21:37:33--  http://downloads.sourceforge.net/corefonts/arialb32.exe
Slår upp downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80... ansluten.
HTTP-begäran skickad, väntar på svar... 301 Moved Permanently
Adress: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/arialb32.exe [följer]
--2020-08-03 21:37:34--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/arialb32.exe
Återanvänder befintlig anslutning till downloads.sourceforge.net:80.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://netix.dl.sourceforge.net/project/corefonts/the%20fonts/final/arialb32.exe [följer]
--2020-08-03 21:37:34--  https://netix.dl.sourceforge.net/project/corefonts/the%20fonts/final/arialb32.exe
Slår upp netix.dl.sourceforge.net (netix.dl.sourceforge.net)... 87.121.121.2
Ansluter till netix.dl.sourceforge.net (netix.dl.sourceforge.net)|87.121.121.2|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 200 OK
Längd: 168176 (164K) [application/octet-stream]
Sparar till: "./arialb32.exe"

     0K .......... .......... .......... .......... .......... 30%  397K 0s
    50K .......... .......... .......... .......... .......... 60%  857K 0s
   100K .......... .......... .......... .......... .......... 91% 3,99M 0s
   150K .......... ....                                       100% 9,28M=0,2s

2020-08-03 21:37:34 (830 KB/s) - "./arialb32.exe" sparades [168176/168176]

--2020-08-03 21:37:34--  http://downloads.sourceforge.net/corefonts/arial32.exe
Slår upp downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80... ansluten.
HTTP-begäran skickad, väntar på svar... 301 Moved Permanently
Adress: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/arial32.exe [följer]
--2020-08-03 21:37:35--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/arial32.exe
Återanvänder befintlig anslutning till downloads.sourceforge.net:80.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://kumisystems.dl.sourceforge.net/project/corefonts/the%20fonts/final/arial32.exe [följer]
--2020-08-03 21:37:35--  https://kumisystems.dl.sourceforge.net/project/corefonts/the%20fonts/final/arial32.exe
Slår upp kumisystems.dl.sourceforge.net (kumisystems.dl.sourceforge.net)... 148.251.120.111, 2a01:4f8:210:1057::2
Ansluter till kumisystems.dl.sourceforge.net (kumisystems.dl.sourceforge.net)|148.251.120.111|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 200 OK
Längd: 554208 (541K) [application/octet-stream]
Sparar till: "./arial32.exe"

     0K .......... .......... .......... .......... ..........  9% 1,46M 0s
    50K .......... .......... .......... .......... .......... 18% 1,40M 0s
   100K .......... .......... .......... .......... .......... 27% 3,86M 0s
   150K .......... .......... .......... .......... .......... 36%  704K 0s
   200K .......... .......... .......... .......... .......... 46% 3,94M 0s
   250K .......... .......... .......... .......... .......... 55% 4,01M 0s
   300K .......... .......... .......... .......... .......... 64% 3,92M 0s
   350K .......... .......... .......... .......... .......... 73% 2,97M 0s
   400K .......... .......... .......... .......... .......... 83% 3,92M 0s
   450K .......... .......... .......... .......... .......... 92% 2,67M 0s
   500K .......... .......... .......... .......... .         100% 4,96M=0,2s

2020-08-03 21:37:36 (2,16 MB/s) - "./arial32.exe" sparades [554208/554208]

--2020-08-03 21:37:36--  http://downloads.sourceforge.net/corefonts/comic32.exe
Slår upp downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80... ansluten.
HTTP-begäran skickad, väntar på svar... 301 Moved Permanently
Adress: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/comic32.exe [följer]
--2020-08-03 21:37:36--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/comic32.exe
Återanvänder befintlig anslutning till downloads.sourceforge.net:80.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://jztkft.dl.sourceforge.net/project/corefonts/the%20fonts/final/comic32.exe [följer]
--2020-08-03 21:37:36--  https://jztkft.dl.sourceforge.net/project/corefonts/the%20fonts/final/comic32.exe
Slår upp jztkft.dl.sourceforge.net (jztkft.dl.sourceforge.net)... 45.67.159.245
Ansluter till jztkft.dl.sourceforge.net (jztkft.dl.sourceforge.net)|45.67.159.245|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 302 Moved Temporarily
Adress: https://downloads.sourceforge.net/project/corefonts/the%20fonts/final/comic32.exe?download&failedmirror=jztkft.dl.sourceforge.net [följer]
--2020-08-03 21:37:36--  https://downloads.sourceforge.net/project/corefonts/the%20fonts/final/comic32.exe?download&failedmirror=jztkft.dl.sourceforge.net
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://netcologne.dl.sourceforge.net/project/corefonts/the%20fonts/final/comic32.exe [följer]
--2020-08-03 21:37:37--  https://netcologne.dl.sourceforge.net/project/corefonts/the%20fonts/final/comic32.exe
Slår upp netcologne.dl.sourceforge.net (netcologne.dl.sourceforge.net)... 78.35.24.46, 2001:4dd0:1234:6::5f
Ansluter till netcologne.dl.sourceforge.net (netcologne.dl.sourceforge.net)|78.35.24.46|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 200 OK
Längd: 246008 (240K) [application/octet-stream]
Sparar till: "./comic32.exe"

     0K .......... .......... .......... .......... .......... 20% 1,39M 0s
    50K .......... .......... .......... .......... .......... 41% 1,70M 0s
   100K .......... .......... .......... .......... .......... 62% 4,55M 0s
   150K .......... .......... .......... .......... .......... 83% 1,38M 0s
   200K .......... .......... .......... ..........           100% 5,30M=0,1s

2020-08-03 21:37:38 (2,00 MB/s) - "./comic32.exe" sparades [246008/246008]

--2020-08-03 21:37:38--  http://downloads.sourceforge.net/corefonts/courie32.exe
Slår upp downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80... ansluten.
HTTP-begäran skickad, väntar på svar... 301 Moved Permanently
Adress: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/courie32.exe [följer]
--2020-08-03 21:37:38--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/courie32.exe
Återanvänder befintlig anslutning till downloads.sourceforge.net:80.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://kumisystems.dl.sourceforge.net/project/corefonts/the%20fonts/final/courie32.exe [följer]
--2020-08-03 21:37:38--  https://kumisystems.dl.sourceforge.net/project/corefonts/the%20fonts/final/courie32.exe
Slår upp kumisystems.dl.sourceforge.net (kumisystems.dl.sourceforge.net)... 148.251.120.111, 2a01:4f8:210:1057::2
Ansluter till kumisystems.dl.sourceforge.net (kumisystems.dl.sourceforge.net)|148.251.120.111|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 200 OK
Längd: 646368 (631K) [application/octet-stream]
Sparar till: "./courie32.exe"

     0K .......... .......... .......... .......... ..........  7% 1,15M 0s
    50K .......... .......... .......... .......... .......... 15% 1,39M 0s
   100K .......... .......... .......... .......... .......... 23% 3,87M 0s
   150K .......... .......... .......... .......... .......... 31%  712K 0s
   200K .......... .......... .......... .......... .......... 39% 4,01M 0s
   250K .......... .......... .......... .......... .......... 47% 4,06M 0s
   300K .......... .......... .......... .......... .......... 55% 3,95M 0s
   350K .......... .......... .......... .......... .......... 63% 3,04M 0s
   400K .......... .......... .......... .......... .......... 71% 3,95M 0s
   450K .......... .......... .......... .......... .......... 79% 3,31M 0s
   500K .......... .......... .......... .......... .......... 87% 4,01M 0s
   550K .......... .......... .......... .......... .......... 95% 1,81M 0s
   600K .......... .......... .......... .                    100% 5,06M=0,3s

2020-08-03 21:37:39 (2,16 MB/s) - "./courie32.exe" sparades [646368/646368]

--2020-08-03 21:37:39--  http://downloads.sourceforge.net/corefonts/georgi32.exe
Slår upp downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80... ansluten.
HTTP-begäran skickad, väntar på svar... 301 Moved Permanently
Adress: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/georgi32.exe [följer]
--2020-08-03 21:37:39--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/georgi32.exe
Återanvänder befintlig anslutning till downloads.sourceforge.net:80.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://deac-riga.dl.sourceforge.net/project/corefonts/the%20fonts/final/georgi32.exe [följer]
--2020-08-03 21:37:39--  https://deac-riga.dl.sourceforge.net/project/corefonts/the%20fonts/final/georgi32.exe
Slår upp deac-riga.dl.sourceforge.net (deac-riga.dl.sourceforge.net)... 89.111.52.100
Ansluter till deac-riga.dl.sourceforge.net (deac-riga.dl.sourceforge.net)|89.111.52.100|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 302 Moved Temporarily
Adress: https://downloads.sourceforge.net/project/corefonts/the%20fonts/final/georgi32.exe?download&failedmirror=deac-riga.dl.sourceforge.net [följer]
--2020-08-03 21:37:40--  https://downloads.sourceforge.net/project/corefonts/the%20fonts/final/georgi32.exe?download&failedmirror=deac-riga.dl.sourceforge.net
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://kumisystems.dl.sourceforge.net/project/corefonts/the%20fonts/final/georgi32.exe [följer]
--2020-08-03 21:37:41--  https://kumisystems.dl.sourceforge.net/project/corefonts/the%20fonts/final/georgi32.exe
Slår upp kumisystems.dl.sourceforge.net (kumisystems.dl.sourceforge.net)... 148.251.120.111, 2a01:4f8:210:1057::2
Ansluter till kumisystems.dl.sourceforge.net (kumisystems.dl.sourceforge.net)|148.251.120.111|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 200 OK
Längd: 392440 (383K) [application/octet-stream]
Sparar till: "./georgi32.exe"

     0K .......... .......... .......... .......... .......... 13% 1,15M 0s
    50K .......... .......... .......... .......... .......... 26% 1,39M 0s
   100K .......... .......... .......... .......... .......... 39% 3,95M 0s
   150K .......... .......... .......... .......... .......... 52%  718K 0s
   200K .......... .......... .......... .......... .......... 65% 3,98M 0s
   250K .......... .......... .......... .......... .......... 78% 4,01M 0s
   300K .......... .......... .......... .......... .......... 91% 4,05M 0s
   350K .......... .......... .......... ...                  100% 4,06M=0,2s

2020-08-03 21:37:41 (1,83 MB/s) - "./georgi32.exe" sparades [392440/392440]

--2020-08-03 21:37:41--  http://downloads.sourceforge.net/corefonts/impact32.exe
Slår upp downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80... ansluten.
HTTP-begäran skickad, väntar på svar... 301 Moved Permanently
Adress: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/impact32.exe [följer]
--2020-08-03 21:37:41--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/impact32.exe
Återanvänder befintlig anslutning till downloads.sourceforge.net:80.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://netix.dl.sourceforge.net/project/corefonts/the%20fonts/final/impact32.exe [följer]
--2020-08-03 21:37:42--  https://netix.dl.sourceforge.net/project/corefonts/the%20fonts/final/impact32.exe
Slår upp netix.dl.sourceforge.net (netix.dl.sourceforge.net)... 87.121.121.2
Ansluter till netix.dl.sourceforge.net (netix.dl.sourceforge.net)|87.121.121.2|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 200 OK
Längd: 173288 (169K) [application/octet-stream]
Sparar till: "./impact32.exe"

     0K .......... .......... .......... .......... .......... 29%  399K 0s
    50K .......... .......... .......... .......... .......... 59%  860K 0s
   100K .......... .......... .......... .......... .......... 88% 3,51M 0s
   150K .......... .........                                  100% 4,84M=0,2s

2020-08-03 21:37:42 (840 KB/s) - "./impact32.exe" sparades [173288/173288]

--2020-08-03 21:37:42--  http://downloads.sourceforge.net/corefonts/times32.exe
Slår upp downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80... ansluten.
HTTP-begäran skickad, väntar på svar... 301 Moved Permanently
Adress: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/times32.exe [följer]
--2020-08-03 21:37:43--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/times32.exe
Återanvänder befintlig anslutning till downloads.sourceforge.net:80.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://netcologne.dl.sourceforge.net/project/corefonts/the%20fonts/final/times32.exe [följer]
--2020-08-03 21:37:43--  https://netcologne.dl.sourceforge.net/project/corefonts/the%20fonts/final/times32.exe
Slår upp netcologne.dl.sourceforge.net (netcologne.dl.sourceforge.net)... 78.35.24.46, 2001:4dd0:1234:6::5f
Ansluter till netcologne.dl.sourceforge.net (netcologne.dl.sourceforge.net)|78.35.24.46|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 200 OK
Längd: 661728 (646K) [application/octet-stream]
Sparar till: "./times32.exe"

     0K .......... .......... .......... .......... ..........  7% 1,41M 0s
    50K .......... .......... .......... .......... .......... 15% 1,69M 0s
   100K .......... .......... .......... .......... .......... 23% 4,32M 0s
   150K .......... .......... .......... .......... .......... 30% 1,46M 0s
   200K .......... .......... .......... .......... .......... 38% 4,08M 0s
   250K .......... .......... .......... .......... .......... 46% 3,35M 0s
   300K .......... .......... .......... .......... .......... 54% 2,01M 0s
   350K .......... .......... .......... .......... .......... 61% 2,96M 0s
   400K .......... .......... .......... .......... .......... 69% 2,10M 0s
   450K .......... .......... .......... .......... .......... 77% 4,15M 0s
   500K .......... .......... .......... .......... .......... 85% 1,96M 0s
   550K .......... .......... .......... .......... .......... 92% 2,15M 0s
   600K .......... .......... .......... .......... ......    100% 3,89M=0,3s

2020-08-03 21:37:43 (2,34 MB/s) - "./times32.exe" sparades [661728/661728]

--2020-08-03 21:37:43--  http://downloads.sourceforge.net/corefonts/trebuc32.exe
Slår upp downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80... ansluten.
HTTP-begäran skickad, väntar på svar... 301 Moved Permanently
Adress: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/trebuc32.exe [följer]
--2020-08-03 21:37:44--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/trebuc32.exe
Återanvänder befintlig anslutning till downloads.sourceforge.net:80.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://netix.dl.sourceforge.net/project/corefonts/the%20fonts/final/trebuc32.exe [följer]
--2020-08-03 21:37:44--  https://netix.dl.sourceforge.net/project/corefonts/the%20fonts/final/trebuc32.exe
Slår upp netix.dl.sourceforge.net (netix.dl.sourceforge.net)... 87.121.121.2
Ansluter till netix.dl.sourceforge.net (netix.dl.sourceforge.net)|87.121.121.2|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 200 OK
Längd: 357200 (349K) [application/octet-stream]
Sparar till: "./trebuc32.exe"

     0K .......... .......... .......... .......... .......... 14%  400K 1s
    50K .......... .......... .......... .......... .......... 28%  849K 0s
   100K .......... .......... .......... .......... .......... 43% 3,62M 0s
   150K .......... .......... .......... .......... .......... 57% 1,21M 0s
   200K .......... .......... .......... .......... .......... 71% 3,64M 0s
   250K .......... .......... .......... .......... .......... 86% 3,77M 0s
   300K .......... .......... .......... .......... ........  100%  949K=0,3s

2020-08-03 21:37:45 (1,08 MB/s) - "./trebuc32.exe" sparades [357200/357200]

--2020-08-03 21:37:45--  http://downloads.sourceforge.net/corefonts/verdan32.exe
Slår upp downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80... ansluten.
HTTP-begäran skickad, väntar på svar... 301 Moved Permanently
Adress: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/verdan32.exe [följer]
--2020-08-03 21:37:45--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/verdan32.exe
Återanvänder befintlig anslutning till downloads.sourceforge.net:80.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://netix.dl.sourceforge.net/project/corefonts/the%20fonts/final/verdan32.exe [följer]
--2020-08-03 21:37:45--  https://netix.dl.sourceforge.net/project/corefonts/the%20fonts/final/verdan32.exe
Slår upp netix.dl.sourceforge.net (netix.dl.sourceforge.net)... 87.121.121.2
Ansluter till netix.dl.sourceforge.net (netix.dl.sourceforge.net)|87.121.121.2|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 200 OK
Längd: 351992 (344K) [application/octet-stream]
Sparar till: "./verdan32.exe"

     0K .......... .......... .......... .......... .......... 14%  397K 1s
    50K .......... .......... .......... .......... .......... 29%  861K 0s
   100K .......... .......... .......... .......... .......... 43% 3,65M 0s
   150K .......... .......... .......... .......... .......... 58% 1,19M 0s
   200K .......... .......... .......... .......... .......... 72% 3,29M 0s
   250K .......... .......... .......... .......... .......... 87%  791K 0s
   300K .......... .......... .......... .......... ...       100% 4,11M=0,3s

2020-08-03 21:37:46 (1,03 MB/s) - "./verdan32.exe" sparades [351992/351992]

--2020-08-03 21:37:46--  http://downloads.sourceforge.net/corefonts/webdin32.exe
Slår upp downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13
Ansluter till downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80... ansluten.
HTTP-begäran skickad, väntar på svar... 301 Moved Permanently
Adress: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/webdin32.exe [följer]
--2020-08-03 21:37:46--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/webdin32.exe
Återanvänder befintlig anslutning till downloads.sourceforge.net:80.
HTTP-begäran skickad, väntar på svar... 302 Found
Adress: https://netix.dl.sourceforge.net/project/corefonts/the%20fonts/final/webdin32.exe [följer]
--2020-08-03 21:37:47--  https://netix.dl.sourceforge.net/project/corefonts/the%20fonts/final/webdin32.exe
Slår upp netix.dl.sourceforge.net (netix.dl.sourceforge.net)... 87.121.121.2
Ansluter till netix.dl.sourceforge.net (netix.dl.sourceforge.net)|87.121.121.2|:443... ansluten.
HTTP-begäran skickad, väntar på svar... 200 OK
Längd: 185072 (181K) [application/octet-stream]
Sparar till: "./webdin32.exe"

     0K .......... .......... .......... .......... .......... 27%  399K 0s
    50K .......... .......... .......... .......... .......... 55%  859K 0s
   100K .......... .......... .......... .......... .......... 82% 3,82M 0s
   150K .......... .......... ..........                      100% 4,38M=0,2s

2020-08-03 21:37:47 (890 KB/s) - "./webdin32.exe" sparades [185072/185072]

andale32.exe: OK
Extracting cabinet: andale32.exe
  extracting fontinst.inf
  extracting andale.inf
  extracting fontinst.exe
  extracting AndaleMo.TTF
  extracting ADVPACK.DLL
  extracting W95INF32.DLL
  extracting W95INF16.DLL

All done, no errors.
arialb32.exe: OK
Extracting cabinet: arialb32.exe
  extracting fontinst.exe
  extracting fontinst.inf
  extracting AriBlk.TTF

All done, no errors.
arial32.exe: OK
Extracting cabinet: arial32.exe
  extracting FONTINST.EXE
  extracting fontinst.inf
  extracting Ariali.TTF
  extracting Arialbd.TTF
  extracting Arialbi.TTF
  extracting Arial.TTF

All done, no errors.
comic32.exe: OK
Extracting cabinet: comic32.exe
  extracting fontinst.inf
  extracting Comicbd.TTF
  extracting Comic.TTF
  extracting fontinst.exe

All done, no errors.
courie32.exe: OK
Extracting cabinet: courie32.exe
  extracting cour.ttf
  extracting courbd.ttf
  extracting courbi.ttf
  extracting fontinst.inf
  extracting couri.ttf
  extracting fontinst.exe

All done, no errors.
georgi32.exe: OK
Extracting cabinet: georgi32.exe
  extracting fontinst.inf
  extracting Georgiaz.TTF
  extracting Georgiab.TTF
  extracting Georgiai.TTF
  extracting Georgia.TTF
  extracting fontinst.exe

All done, no errors.
impact32.exe: OK
Extracting cabinet: impact32.exe
  extracting fontinst.exe
  extracting Impact.TTF
  extracting fontinst.inf

All done, no errors.
times32.exe: OK
Extracting cabinet: times32.exe
  extracting fontinst.inf
  extracting Times.TTF
  extracting Timesbd.TTF
  extracting Timesbi.TTF
  extracting Timesi.TTF
  extracting FONTINST.EXE

All done, no errors.
trebuc32.exe: OK
Extracting cabinet: trebuc32.exe
  extracting FONTINST.EXE
  extracting trebuc.ttf
  extracting Trebucbd.ttf
  extracting trebucbi.ttf
  extracting trebucit.ttf
  extracting fontinst.inf

All done, no errors.
verdan32.exe: OK
Extracting cabinet: verdan32.exe
  extracting fontinst.exe
  extracting fontinst.inf
  extracting Verdanab.TTF
  extracting Verdanai.TTF
  extracting Verdanaz.TTF
  extracting Verdana.TTF

All done, no errors.
webdin32.exe: OK
Extracting cabinet: webdin32.exe
  extracting fontinst.exe
  extracting Webdings.TTF
  extracting fontinst.inf
  extracting Licen.TXT

All done, no errors.
Hanterar utlösare för fontconfig (2.11.0-6.7) ...

@vddCore
Copy link

vddCore commented Aug 5, 2020

i use arch btw ArchLinux here, same issue. Fixed by installing this package and running fc-cache --force.

All that package contains are fonts and licenses, and the fonts installed are as follows:

AndaleMo.TTF  Arialbd.TTF   Comic.TTF     Georgiab.TTF
Impact.TTF    Timesbi.TTF   Verdana.TTF   Verdanaz.TTF
courbd.ttf    trebuc.ttf    AriBlk.TTF    Arialbi.TTF  
Comicbd.TTF   Georgiai.TTF  Times.TTF     Timesi.TTF    
Verdanab.TTF  Webdings.TTF  courbi.ttf    trebucbi.ttf
Arial.TTF     Ariali.TTF    Georgia.TTF   Georgiaz.TTF  
Timesbd.TTF   Trebucbd.ttf  Verdanai.TTF  cour.ttf  
couri.ttf     trebucit.ttf

After further testing it looks like something in the font management chain really likes Verdana font for whatever reason, and if Verdana (all of its variants) goes missing it tries to look for any available variants of the Arial font, furthermore - when Arial is removed the previously mentioned InvalidOperationException is thrown.

@jermaine007
Copy link

Ciao guys
I've suffered the same problem and could not resolve it, though I've tried to resintall ttf-mscorefonts-installer.
Any new suggestions to handle this issue?
Thanks very much.

@timschneeb
Copy link
Contributor

timschneeb commented Jan 15, 2021

This issue is also happening when the system language is set to Korean or Japanese and probably any other language with non-Latin characters as well. (tested on a fresh Ubuntu 20.10 VM x86_64)

I can fix this font loading issue by launching my app with a modified locale environment variable:

LC_ALL=C ./YourAvaloniaExecutable

@kekekeks
Copy link
Member

Apparently also happens with Chinese locale.

@nopara73
Copy link
Contributor

If someone would like to fix it we'd offer a 0.03 BTC bounty.

@Gillibald
Copy link
Contributor

There is a temporary workaround. You can register a custom font manager in your AppBuilder https://github.com/AvaloniaUI/Avalonia/blob/master/tests/Avalonia.Skia.UnitTests/Media/CustomFontManagerImpl.cs

That font manager defines an embedded font as the default.

@1Joy
Copy link

1Joy commented Jan 29, 2021

I also have this problem on a computer with Galaxy Kylin operating system arm architecture. I solved this problem in the following way.
The solution to this problem is known through the test examples and source code provided by avalonia.

  • First step: Use fonts as resources of the Avalonia project and set them as embedded resources.
    AvaloniaApplication1.csproj:
<ItemGroup>
    <EmbeddedResource Include="Assets\Fonts\msyh.ttc" />
    <EmbeddedResource Include="Assets\Fonts\msyhbd.ttc" />
    <EmbeddedResource Include="Assets\Fonts\msyhl.ttc" />
  </ItemGroup>
  • Second step: Create a new class as a custom font manager.
public class CustomFontManagerImpl : IFontManagerImpl
    {
        private readonly Typeface[] _customTypefaces;
        private readonly string _defaultFamilyName;

        //Load font resources in the project, you can load multiple font resources
        private readonly Typeface _defaultTypeface =
            new Typeface("resm:AvaloniaApplication1.Assets.Fonts.msyh#微软雅黑");

        public CustomFontManagerImpl()
        {
            _customTypefaces = new[] { _defaultTypeface };
            _defaultFamilyName = _defaultTypeface.FontFamily.FamilyNames.PrimaryFamilyName;
        }

        public string GetDefaultFontFamilyName()
        {
            return _defaultFamilyName;
        }

        public IEnumerable<string> GetInstalledFontFamilyNames(bool checkForUpdates = false)
        {
            return _customTypefaces.Select(x => x.FontFamily.Name);
        }

        private readonly string[] _bcp47 = { CultureInfo.CurrentCulture.ThreeLetterISOLanguageName, CultureInfo.CurrentCulture.TwoLetterISOLanguageName };

        public bool TryMatchCharacter(int codepoint, FontStyle fontStyle, FontWeight fontWeight, FontFamily fontFamily,
            CultureInfo culture, out Typeface typeface)
        {
            foreach (var customTypeface in _customTypefaces)
            {
                if (customTypeface.GlyphTypeface.GetGlyph((uint)codepoint) == 0)
                {
                    continue;
                }

                typeface = new Typeface(customTypeface.FontFamily.Name, fontStyle, fontWeight);

                return true;
            }

            var fallback = SKFontManager.Default.MatchCharacter(fontFamily?.Name, (SKFontStyleWeight)fontWeight,
                SKFontStyleWidth.Normal, (SKFontStyleSlant)fontStyle, _bcp47, codepoint);

            typeface = new Typeface(fallback?.FamilyName ?? _defaultFamilyName, fontStyle, fontWeight);

            return true;
        }

        public IGlyphTypefaceImpl CreateGlyphTypeface(Typeface typeface)
        {
            SKTypeface skTypeface;

            switch (typeface.FontFamily.Name)
            {
                case FontFamily.DefaultFontFamilyName:
                case "微软雅黑":  //font family name
                    skTypeface = SKTypeface.FromFamilyName(_defaultTypeface.FontFamily.Name); break;
                default:
                    skTypeface = SKTypeface.FromFamilyName(typeface.FontFamily.Name,
                        (SKFontStyleWeight)typeface.Weight, SKFontStyleWidth.Normal, (SKFontStyleSlant)typeface.Style);
                    break;
            }

            return new GlyphTypefaceImpl(skTypeface);
        }
    }
  • Third step: Override the RegisterServices() function in the App.axaml.cs file to register a custom font management object.
    App.axaml.cs:
        /// <summary>
        /// override RegisterServices register custom service
        /// </summary>
        public override void RegisterServices()
        {
            AvaloniaLocator.CurrentMutable.Bind<IFontManagerImpl>().ToConstant(new CustomFontManagerImpl());
            base.RegisterServices();
        }

Through the above three steps, I have solved this problem, I hope to help you.

@jermaine007
Copy link

Ciao guys
I've suffered the same problem and could not resolve it, though I've tried to resintall ttf-mscorefonts-installer.
Any new suggestions to handle this issue?
Thanks very much.

Finally I've got this problem resolved by installing the ubuntu-restricted-extra package. Hope this hint would help you guys

@iMonZ
Copy link

iMonZ commented Mar 5, 2021

Ciao guys
I've suffered the same problem and could not resolve it, though I've tried to resintall ttf-mscorefonts-installer.
Any new suggestions to handle this issue?
Thanks very much.

Finally I've got this problem resolved by installing the ubuntu-restricted-extra package. Hope this hint would help you guys

Hey,
I'm creating a Snap, but how can I add this to the snap?

@manfromarce
Copy link

I've had this issue on Arch and Solus OS and installing just the DejaVu fonts (ttf-dejavu on Arch, dejavu-fonts-ttf on Solus) fixed it.

@Unmeltable-Ice
Copy link

Since 11.0.0 changed access level of Avalonia.Skia.GlyphTypefaceImpl, from public to internal, none of the sample codes above of implementing Avalonia.Platform.IFontManagerImpl is available now. Sadly.
Changing locale works, but is not acceptable for us, which will result in wrong i18n.
Additional Avalonia.Media.FontManagerOptions with Avalonia.AppBuilder will break down application startup. "System.InvalidOperationException: Could not create glyphTypeface."
Any ideas? We really need some help.

@Gillibald
Copy link
Contributor

@Unmeltable-Ice #12099

@Unmeltable-Ice
Copy link

Unmeltable-Ice commented Jul 12, 2023

@Gillibald
Unfortunately it didn't work directly. We had difficulties in accessing embedded font resources.
However, it does give us a hint. Now we set default font family name explicitly by OS type.

Program.cs:

using Avalonia;
using Avalonia.Media;
using Avalonia.ReactiveUI;
using System;

namespace ExampleApp
{
    internal class Program
    {
        [STAThread]
        public static void Main(string[] args) => BuildAvaloniaApp()
                .StartWithClassicDesktopLifetime(args);

        public static AppBuilder BuildAvaloniaApp()
        {
            FontManagerOptions options = new();
            if (OperatingSystem.IsLinux())
            {
                options.DefaultFamilyName = "<Linux Default Font Family Name Here>";
            }
            else if (OperatingSystem.IsMacOS())
            {
                options.DefaultFamilyName = "<macOS Default Font Family Name Here>";
            }
            // No need to set default for Windows
            return AppBuilder.Configure<App>()
                        .UsePlatformDetect()
                        .LogToTrace()
                        .UseReactiveUI()
                        .With(options);
        }
    }
}

Thanks for the help. We really appreciate it.

@qwe88991600
Copy link

有一个临时解决方法。您可以在 AppBuilder 中注册自定义字体管理器https://github.com/AvaloniaUI/Avalonia/blob/master/tests/Avalonia.Skia.UnitTests/Media/CustomFontManagerImpl.cs

字体管理器将嵌入字体定义为默认字体。

Avalonia11 can not use it

@nopara73
Copy link
Contributor

The winner of the Bitcoin bounty is @mihnea-radulescu: #12817 (comment) 🚀

@Gillibald
Copy link
Contributor

Gillibald commented Sep 15, 2023

Technically the issue isn't fixed because the system's default font is still not used. The above PR just prevents the crash and defines an existing font as the default to make the application work.

The real fix is to avoid Skia entirely for font matching and instead use FontConfig directly.

@Gillibald Gillibald reopened this Sep 15, 2023
@BiDuang
Copy link

BiDuang commented Oct 9, 2023

Avalonia 11.0.4 still have this issue. Environment is Ubuntu 22.04.1 LTS Arm64.

@ChihHao-Su
Copy link

This also causes musescore/MuseScore#15423

@timunie
Copy link
Contributor

timunie commented Nov 14, 2023

@ChihHao-Su how? I see the error log in the ticket, but not a single Avalonia file in the source? Can you point me to that failing file? Also please let us know which Avalonia version used.

@jwmatthys
Copy link

@timunie the MuseScore error is related to Muse Hub, which is a separate application for downloading, installing, and updating MuseScore. The Muse Hub project does not appear to be open source (at least it's not on GitHub and the project page doesn't link to the code.) https://musehub.zendesk.com/

@timunie
Copy link
Contributor

timunie commented Nov 15, 2023

looks like latest nightly helps here: BiDuang/Chief#2 (comment)

I don't know if the font fallback is done correctly.

@MarkManYUN
Copy link

I also encountered this issue while using Raspberry Pi 4B, an unhandled exception. System.InvalidOperationException: Default font family name can't be null or empty.

@prkdrake
Copy link

Can confirm this is still an issue and causing crash on Ubuntu 24.04

@Mubelotix
Copy link

Issue was fixed for me

@ThePlenkov
Copy link

ThePlenkov commented Apr 10, 2024

Just caught this issue in my WSL linux with git credentials manager . BTW never had - I don't know what happened. Is it possible to know which font is missing? I have installed ttf-mscorefonts-installer but didn't help

@ajkfds
Copy link

ajkfds commented May 2, 2024

In a Japanese environment on Linux, I encountered the same issue. However, I found a workaround by changing the LANG environment variable from jp_JP.utf-8 to en_US.utf8.

@Mubelotix
Copy link

You guys should check which version you are using

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.