[Fontconfig] fontconfig priority management
Nicolas Mailhot
nicolas.mailhot at laposte.net
Wed Oct 17 13:03:10 UTC 2018
Le 2018-10-17 13:43, Akira TAGOH a écrit :
> Hi,
>
> On Wed, Oct 17, 2018 at 6:16 AM Nicolas Mailhot
> <nicolas.mailhot at laposte.net> wrote:
>> If I may give my opinion (CC-ing the fontconfig ML since I don't think
>> any of this is Fedora-specific). Probably more than what you asked,
>> but
>> such is life ;)
>
> Sure. well, this should eventually be merged and maintained in
> fontconfig upstream though, I have to research what the sort of config
> other distros uses and can be templated in general. so just thought
> starting on Fedora as pilot program would be good start, but anyway.
> more feedbacks from the wider audience would be great.
You seem to be thinking about generating current fontconfig syntax from
templates in rpm macros. I definitively don't want to go there in Fedora
font packages. Such generators are quite brittle and hell to
debug/maintain. They're sort of ok for third party tools that try to
coax fontconfig on doing things, they're not ok as distro core
infrastructure. If you want to generate from rpm macros, you need to
define something that can be generated simply (and current fontconfig
syntax is not that).
If we agree on some form of simplified syntax, sufficient for the needs
of the average font packager, I want the result to be read by fontconfig
natively without intermediary generation. Even if it's in an
experimental config namespace only activated on Fedora, that we agree
can be dropped later if the experiment fails.
> For individuals, majority requirements should be satisfied by a tool
> such as fonts-tweak-tool. for system-wide and complicated scenarios,
> we need a handy way to get things done. for Fedora specific thing, I
> eventually want to integrate this into rpm macro and prepare an
> environment to have config files without any knowledge or minimal.
> that would helps a lot for packagers.
Well I wrote down what I though minimal knowledge could be: identifying
the generic (that's definitely something a human can do better than
fontconfig), listing down font families that the font family can serve
as substitute for/can be substituted with (fontconfig can not have any
opinion on fonts families not present on system) and listing down all
the font family name variations that should be merged, if fontconfig is
not smart enough to identify them itself.
The merging part is hugely important from a usability POW, because the
OFL has created a situation where forks lead to renames, and because
font designers suck at font naming.
They will rename every possible variation of their fonts so they can
wash their hands on metric compatibility, or just for marketing purposes
(acmefont new better), or to enable subsetting, or to sell a pro
version, but the average user is not going the have every possible font
variation on his system.
So it's much better to present all the variations on acmefont as a
single acmefont font family, and have fontconfig manage internally those
variants, than have fontconfig fallback to an unrelated font, because
the original document didn't use the same variant as the current system.
These days displaying all acmefont family names in selectors is about as
useful as displaying the font version embedded in the font files. Sure
it allows disambiguation. But who except the original font designer
cares about this? If you have the exact match on-system for one of the
font other names, by all means have fontconfig return data from this
file, but don't force users to do the untangling manually. They don't
care enough to do it. They will just (rightly) say fontconfig font
selection sucks.
--
Nicolas Mailhot
More information about the Fontconfig
mailing list