Package: gnuplot-nox Version: 5.0.4+dfsg1-3 Severity: minor Hi there,
I believe the patch 05_default_gd_font.diff that is applied to the Debian gnuplot package is not necessary (anymore?). In turn, I believe it is even quite counter-productive. Let's have a look at the code that the patch changes: if (external_default) png_state.ttffont = gp_strdup(external_default); else /* Might as well try some plausible font; it's no orse than failing immediately */ png_state.ttffont = gp_strdup("arial"); free(png_state.default_ttffont); png_state.default_ttffont = gp_strdup(png_state.ttffont); if (png_state.default_ttfsize == 0) png_state.default_ttfsize = 2 * term->h_char - 2; /* First try the old GDFONTPATH mechanism for locating fonts */ (void)gdUseFontConfig(0); err = gdImageStringFT(NULL, &brect[0], 0, png_state.ttffont, (double)png_state.default_ttfsize*png_state.fontscale, 0.0, 0, 0, "test"); /* If that didn't work, try again using fontconfig mechanism */ if (err && gdUseFontConfig(1)) { err = gdImageStringFT(NULL, &brect[0], 0, png_state.ttffont, (double)png_state.default_ttfsize*png_state.fontscale, 0.0, 0, 0, "test"); } In the first paragraph, if the external_default variable isn't set, the png_state.ttffont pointer is set to point to the string "arial". This is the string that is replaced by the patch in question by the actual path name of the Sans Liberation Regular TTF font file. Let's ignore the second paragraph. The third paragraph attempts to locate a font by that name *without* using fontconfig. This is probably about to fail for "arial" as well as for most other fonts, as the number of font names recognized by the gd library itself is rather limited. This paragraph is probably only interesting if the external_default variable is set. In the fourth paragraph the font location is attempted again, this time using fontconfig. This is the most interesting part of the code. As the gd library in Debian is configured with fontconfig support, it will try to find the font that matches the search pattern "arial" as good as possible. On most systems which have fonts-liberation installed, it will most probably return Liberation Sans Regular, which is exactly what the patch attempts to achieve. But if you have the actual Arial font from the msttcorefonts package installed, it will find and use this. And if you have neither the original Arial nor the Liberation Sans replacement installed, it will find another font that matches Arial as closely as possible, because it has dozens of rules to determine which font is a good replacement for what. This is where the patch becomes counter-productive: By passing the full path to the Liberation font to fontconfig, you take away its ability to substitute this font for something similar and force it to fall back to the default font if the requested one is not found. TL;DR: Please consider disabling this patch. Fontconfig already does what this patch wants to achieve and acts more reasonable if the font that is hard-coded by the patch cannot be found. Thanks, Fabian -- System Information: Debian Release: stretch/sid APT prefers testing APT policy: (990, 'testing'), (500, 'experimental'), (500, 'unstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) -- debian-science-maintainers mailing list debian-science-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-science-maintainers