A mystery uncovered by Fedora 32 changing my default font
I upgraded my home machine to Fedora 32 earlier this week. Everything went smoothly, except that afterward various web pages looked just a little bit different in my Firefox. After poking around and finding a handy Firefox font related thing, I discovered that Fedora 32 had changed what the standard system 'serif', 'sans-serif' and 'monospace' font names mapped to from DejaVu (in Fedora 31) to Bitstream Vera (in Fedora 32). The two fonts are very close (DejaVu is a modification of Bitstream Vera), but apparently just far enough apart that I can tell the difference.
In theory this could all be controlled through Fontconfig. In practice my simple brute force fix was to remove the Bitstream Vera fonts on the grounds that I didn't need them and they aren't there on a standard Fedora 32 install. But afterward I started poking around the Fontconfig files in /etc/fonts/conf.d to see if I could spot why the change happened, and wound up more confused than before.
My office workstation is still on Fedora 31 and it is definitely
using the DejaVu fonts (you can tell with '
fc-match serif' and
so on). However, it has Bitstream Vera fonts installed, and both
my Fedora 31 and 32 machines have an /etc/fonts/conf.d/60-latin.conf
file that appears to specify that the Bitstream Vera fonts should
be preferred over the DejaVu versions:
<description>Set preferable fonts for Latin</description> <alias> <family>serif</family> <prefer> <family>Bitstream Vera Serif</family> <family>DejaVu Serif</family> <family>Times New Roman</family> <family>Thorndale AMT</family> [...]
Setting the magic
$FC_DEBUG environment variable on my Fedora
31 machine (documented in fonts.conf) did
not provide any enlightenment; it may provide debugging, but it
doesn't make fc-match explain its decisions. Fedora 31 and 32 have
essentially the same version of Fontconfig (2.13.92-3.fc31 and
2.13.92-9.fc32 respectively), so that isn't a smoking gun either.
So, as has happened before, I started with a surprising change and have wound up with a mystery of why my Fedora 31 machines worked (and work) the way they did. As far as I can tell, the system fonts should have mapped to Bitstream Vera even on Fedora 31.
(I'm also left with the puzzle about why Fedora even seems to prefer Bitstream Vera over DejaVu, given that DejaVu was created to improve on Bitstream Vera and long ago Fedora switched to them. Bitstream Vera isn't even installed on normal from-scratch Fedora installs and hasn't been for some time, which may be part of why this bit of configuration has lingered on.)