=x11-libs/pango-1.44 dropped support for old bitmap fonts. We can convert fonts from the legacy .bdf and .pcf formats into the OTB wrapper format
using x11-apps/fonttosfnt.
This commit adds FONT_CONVERT_SFNT which packages installing bitmap fonts
can set to opt-in to conversion.
Note that the font conversion isn't perfect -- it's good enough
in many cases, but in some cases they may require tweaking
via fontconfig to get pixel size right, antialiasing settings, ...
Adds IUSE=+convert-sfnt to any ebuilds which set FONT_CONVERT_SFNT;
enabled by default given discoverability of this issue may be difficult
and presumably any font package enabling FONT_CONVERT_SFNT will be
useless without it anyway.
See also
https://fedoraproject.org/wiki/BitmapFontConversion.
Bug:
https://bugs.gentoo.org/698922
Thanks-to: Kerin Millar <
[email protected]>
Signed-off-by: Sam James <
[email protected]>
---
eclass/font.eclass | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/eclass/font.eclass b/eclass/font.eclass
index 83636ac3fed5..4b7021ee0599 100644
--- a/eclass/font.eclass
+++ b/eclass/font.eclass
@@ -46,6 +46,12 @@ FONTDIR=${FONTDIR:-/usr/share/fonts/${FONT_PN}}
# Array containing fontconfig conf files to install.
FONT_CONF=( "" )
+# @ECLASS_VARIABLE: FONT_CONVERT_SFNT
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Determines whether detected BDF and PCF font files should be converted
+# to an SFNT wrapper, for use with newer Pango.
+
if [[ ${CATEGORY}/${PN} != media-fonts/encodings ]]; then
IUSE="X"
BDEPEND="X? (
@@ -54,6 +60,31 @@ if [[ ${CATEGORY}/${PN} != media-fonts/encodings ]]; then
)"
fi
+if [[ -n ${FONT_CONVERT_SFNT} ]] ; then
+ IUSE+=" +convert-sfnt"
+ BDEPEND+=" convert-sfnt? ( x11-apps/fonttosfnt )"
+fi
+
+# @FUNCTION: font_convert_sfnt
+# @DESCRIPTION:
+# Converts .bdf and .pcf fonts detected within ${ED} to the OTB