Lower freetype version requirement
Bundled builds are not an option and symbols could be `cfg`'d incrementally based on something like that https://github.com/alacritty/crossfont/blob/master/build.rs#L5 and `cfg`.
You can even wrap such symbols over time with something that tells you whether the call was supported or not if user relies on it(you `cfg` inside the symbol or inside the wrapper for that symbol).
The bundled freetype doesn't handle a lot of features(emojis), and the list of what it can not handle will likely just grow over time.
I've seen https://github.com/PistonDevelopers/freetype-sys/pull/134 , but distros don't like tons of bundling like that, since fixing any security issues in such cases with layers of indirection is really time consuming.
Alternatively, you can add a set of _feature sets_ for specific freetype versions(they'll be all additive), so app could enable them on demand/etc.
if you're fine with the proposal, I can work on it, since it'll be really nice to have it in alacritty, otherwise we'll have a lot of users without emojis on ubuntu 22.04, because we decided to update freetype-sys, because servofontconfig died out.
1 条评论