Пакеты со шрифтами в ALT Linux устанавливают содержимое в подкаталоги %_datadir/fonts, fontconfig настроен именно на этот каталог.
Подкаталог первого уровня определяется типом шрифта и выбирается из:
type1 — Type 1;
ttf — TrueType;
otf — OpenType;
bitmap — растровые;
speedo — растровые в формате Speedo (давно не используются и соответствующий модуль в xorg-server не собирается).
Подкаталог второго уровня — сообразно имени шрифта (fname).
X сервер не использует fontconfig, у него своя схема загрузки шрифтов, использующая каталог %_sysconfdir/X11/fontpath.d, в который кладутся
симлинки на подкаталог второго уровня, имена симлинков "%type-%fname[:unscaled]:pri=XX",
примеры:
ln -s ../../..%_datadir/fonts/bitmap/misc %buildroot%_sysconfdir/X11/fontpath.d/bitmap-misc:unscaled:pri=20
ln -s ../../..%_datadir/fonts/type1/urw %buildroot%_sysconfdir/X11/fontpath.d/type1-urw:pri=40
ln -s ../../..%_datadir/fonts/ttf/dejavu %buildroot%_sysconfdir/X11/fontpath.d/ttf-dejavu:pri=50
«:pri=XX» это приоритет загрузки шрифтов, зависит от типа шрифта:
bitmap – 20;
type1 – 40;
ttf – 50;
otf – 50
Симлинки должны быть запакованы в пакет наравне с другими файлами.
Локалезависимые bitmap шрифты обычно имеют подкаталоги третьего уровня (cname), примером может служить fonts-bitmap-cyrillic:
%_datadir/fonts/bitmap/%fname/%cname
Симлинк в /etc/X11/fontpath.d будет иметь следующее имя:
bitmap-%fname-%cname:unscaled:pri=10
BuildRequires:
bitmap – xorg-x11-font-utils
type1 – mkfontscale
ttf – mkfontscale
otf – mkfontscale
Requires:
fontconfig >= 2.4.2
Для bitmap шрифтов fonts.dir обычно идет в комплекте или создается Makefile'м, fonts.scale для bitmap шрифтов не нежен.
Для type1, ttf, otf шрифтов fonts.scale создается с помощью mkfontscale, fonts.dir – симлинк на fonts.scale:
post/postun для всех шрифтов одинаков:
%triggerun — %name <= %oldversion-%oldrelease
if [ -x %_sbindir/chkfontpath -a -f %_sysconfdir/X11/fs/config ]; then
%_sbindir/chkfontpath -q -r %_fontsdir/%fname[-%cname][:unscaled] ||:
fi