- Fonts Policy
- История
- Предварительные сведения
- Разбивка на бинарные пакеты
- Соглашения по размещению
- fontconfig
- core X font subsystem
- Дополнение для локалезависимых bitmap-шрифтов
- Requires, BuildRequires
- fonts.scale, fonts.dir
- Макросы
- Ресурсы
- Установка шрифтов
- Системные
- Пользовательские
- Обновление кэша шрифтов
- Установка шрифтов
- Системные
- Пользовательские
- Обновление кэша шрифтов
- Установка шрифтов MicroSoft TTF Fonts в ОС AltLinux
Fonts Policy
Политика действует, начиная со стабильного бранча 6.0 и выше.
История
Fonts Policy 1.0 Vitaly Lipatov
Fonts Policy 2.0 (policy since p6) Igor Vlasenko
Предварительные сведения
В дистрибутиве есть 2 подсистемы шрифтов: новая, Fontconfig, и устаревшая, core X font subsystem. Большинство приложений используют Fontconfig.
- шрифты должны быть установлены для использования в Fontconfig.
- в core X font subsystem используется ограниченный набор шрифтов,для обеспечения работы старых приложений, не использующих fontconfig.
- не рекомендуется устанавливать новые шрифты, особенно otf и ttf шрифты, в core X font subsystem во избежание проблем со стабильностью.
Разбивка на бинарные пакеты
Рекомендуется разбивать пакеты по семействам шрифтов. Например, есть набор шрифтов у которых factory (производитель) шрифтов является Forest. Тогда Forest Fox.ttf , Forest Fox Bold.ttf , Forest Fox Oblique.ttf — это одно семейство, а Forest Rabbit.ttf , Forest Rabbit Italic.ttf — другое.
Соглашения по размещению
fontconfig
Пакеты со шрифтами в ALT Linux устанавливают содержимое в подкаталоги каталога %_datadir/fonts/ (/usr/share/fonts/), fontconfig по умолчанию настроен именно на этот каталог.
Подкаталог первого уровня определяется типом шрифта и выбирается из:
- type1 — Type 1;
- ttf — TrueType;
- otf — OpenType;
- bitmap — растровые;
- speedo — растровые в формате Speedo (давно не используются и сборка соответствующего модуля в xorg-server отключена).
Подкаталог второго уровня — сообразно имени шрифта (%fname). Этого достаточно для установки шрифтов под fontconfig. При необходимости можно использовать подкаталоги третьего уровня.
core X font subsystem
У core X font subsystem своя схема загрузки шрифтов, не связанная с fontconfig, по умолчанию использующая каталог %_sysconfdir/X11/fontpath.d/, в который помещаются символические ссылки на подкаталог второго уровня. Имена символических ссылок имеют вид %type-%fname[:unscaled]:pri=XX Для того, чтобы X-сервер мог загрузить шрифты, в каталоге со шрифтами должен находиться служебный файл fonts.dir. См. Fonts_Policy#fonts.scale, fonts.dir.
Примеры создания таких ссылок в spec-файлах:
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-шрифтов
Локалезависимые bitmap-шрифты обычно имеют подкаталоги третьего уровня (%cname), примером может служить пакет fonts-bitmap-cyrillic: %_datadir/fonts/bitmap/%fname/%cname
Символическая ссылка в /etc/X11/fontpath.d будет иметь имя bitmap-%fname-%cname:unscaled:pri=10
Requires, BuildRequires
- bitmap — xorg-x11-font-utils
- type1 — mkfontscale
- ttf — mkfontscale
- otf — mkfontscale
Requires: fontconfig >= 2.4.2
fonts.scale, fonts.dir
Для bitmap-шрифтов fonts.dir обычно идет в комплекте или создается Makefile’ом, а fonts.scale не требуется.
Для type1-, ttf-, otf-шрифтов fonts.scale создается с помощью mkfontscale, а fonts.dir — это жесткая (не символьная) ссылка на fonts.scale:
mkfontscale %buildroot%_fontsdir/%fname ln %buildroot%_fontsdir/%fname/fonts.scale %buildroot%_fontsdir/%fname/fonts.dir
Символьные ссылки в этом месте запрещены, так как файл fonts.dir открывается X-сервером с соответствующими правами.
Макросы
Для упрощения упаковки на ряд типовых каталогов и действий в пакете rpm-macros-fonts заведены макросы:
Для обозначения каталогов с типами шрифтов:
%_bitmapfontsdir %_fontsdir/bitmap %_type1fontsdir %_fontsdir/type1 %_ttffontsdir %_fontsdir/ttf %_otffontsdir %_fontsdir/otf
Для обозначения каталога fontpath.d:
%_fontpathdir %_sysconfdir/X11/fontpath.d
Для установки шрифтов в core X font subsystem
Для установки шрифтов только под fontconfig макросы *_fonts_install не нужны, достаточно распаковать их в соответствующий каталог.
С использованием пакета rpm-build-fonts спек для шрифтов ttf начинает выглядеть примерно так:
%define fname somefont Name: fonts-ttf-%fname . BuildRequires: rpm-build-fonts >= 0.3 PreReq: fontconfig >= 2.4.2 Provides: %fname-fonts-ttf Obsoletes: %fname-fonts-ttf . %install %ttf_fonts_install %fname %files -f %fname.files %doc .
Примеры спеков можно посмотреть здесь для TrueType, OTF и Type1 шрифтов.
Ранее до выхода p6/t6 в %post/%postun скриптах использовались макросы
эти макросы устарели и больше не должны использоваться. Их функциональность заменена filetrigger’ом из пакета fontconfig.
Ресурсы
- X Logical Font Description Conventions
- http://lists.altlinux.org/pipermail/devel/2011-August/191583.html
- http://fedoraproject.org/wiki/Packaging:FontsPolicy
- http://markmail.org/message/4nwmisamzgkoklnp
- Bug#623235: x11-utils: font utilities crash X
- 4231879 ON X86: X server crashes w/Thai font
- http://vim.1045645.n5.nabble.com/Font-names-hint-td1148764.html
- https://wiki.archlinux.org/index.php/Font_Configuration
Установка шрифтов
Пользовательские шрифты можно расположить в двух местах. В системном каталоге, из которого шрифты будут доступны всем, или в домашний каталог пользователя, из которого шрифты будут доступны конкретному пользователю, который их установил.
Системные
Если Вы хотите скопировать в системный каталог, из которого шрифты будут доступны всем пользователям, который находится в /usr/share/fonts/ttf/, выполним следующие действия.
- скопируйте шрифты (*.ttf) в конкреную папку, например /home/user/fonts4add
- например, у Вас имя пользователя ‘user’
- домашняя папка /home/user/ — у Вас имя пользователя может быть другим и путь, соответственно будет тоже другим
- создадим папку fonts4add — имя папки может быть произвольное
- /home/user/fonts4add — путь к папке
- в эту папку скопируйте файлы шрифтов с форматом *.ttf
- Перейдите в режим суперпользователя
Примечание: Чтобы указать папку, Вы можете кликнуть по ней ПКМ>копировать, в консоли ввести cd+пробел и нажать ПКМ>Вставить
Пользовательские
Если Вы хотите установить шрифт для конкретного пользователя, то просто с помощью файлового менеджера скопируйте шрифты в домашнюю папку в каталог
Обновление кэша шрифтов
После того как все шрифты были скопированы нужно обновить кэш шрифтов системы:
$ fc-cache -f -v $ su - # fc-cache -f -v
Установка шрифтов
Пользовательские шрифты можно расположить в двух местах. В системном каталоге, из которого шрифты будут доступны всем, или в домашний каталог пользователя, из которого шрифты будут доступны конкретному пользователю, который их установил.
Системные
Если Вы хотите скопировать в системный каталог, из которого шрифты будут доступны всем пользователям, который находится в /usr/share/fonts/ttf/, выполним следующие действия.
- скопируйте шрифты (*.ttf) в конкреную папку, например /home/user/fonts4add
- например, у Вас имя пользователя ‘user’
- домашняя папка /home/user/ — у Вас имя пользователя может быть другим и путь, соответственно будет тоже другим
- создадим папку fonts4add — имя папки может быть произвольное
- /home/user/fonts4add — путь к папке
- в эту папку скопируйте файлы шрифтов с форматом *.ttf
- Перейдите в режим суперпользователя
Примечание: Чтобы указать папку, Вы можете кликнуть по ней ПКМ>копировать, в консоли ввести cd+пробел и нажать ПКМ>Вставить
Пользовательские
Если Вы хотите установить шрифт для конкретного пользователя, то просто с помощью файлового менеджера скопируйте шрифты в домашнюю папку в каталог
Обновление кэша шрифтов
После того как все шрифты были скопированы нужно обновить кэш шрифтов системы:
$ fc-cache -f -v $ su - # fc-cache -f -v
Установка шрифтов MicroSoft TTF Fonts в ОС AltLinux
Шрифты от корпорации MicroSoft в составе: Arial, Times New Roman, Monotype Corsiva, Verdana, Tahoma для целей лучшей совместимости документов свободных офисов (LibreOffice), а также коммерческих, но входящих в Реестр отечественного программого обеспечени (Р-7 офис, Мой офис), с документами, созданными в MS Office, в ОС AltLinux устанавливается одной строкой с правами администратора:
apt-get update && apt-get install fonts-ttf-ms
Получить пакет со шрифтами возможно по ссылке из репозитория Sisyphus компании BaseAlt. В дальшейшем, будучи скаченным, он устанавливается как любой другой пакет в ОС AltLinux: или средствами терминальных команд, или через графический установщик системы.
Однако, если смотреть на проблему вышеперечисленных шрифтов, то они являются проприетарными. А это значит, что они находятся под действием лицензии и ее держателем является американская компания Monotype. Разработчики ОС Astra Linux хотели приобрести несводобные шрифты у компании Monotype, но получили отказ из-за санкционных ограничений. Для бОльшей совместимости документов, созданных в Microsoft Office и использующих проприетарные шрифты, с документами свободных офисов (LibreOffice, например) были разработаны почти полноценные заменители шрифтов Arial и Times New Roman: PT Astra Sans и PT Astra Serif.
И хотя стопроцентной замены не получается, т.к. начертание шрифта и является объектом лицензирования, но в качестве метрических (подстановочных) шрифтов отечественная разработка подходит весьма. По крайней мере шрифты от разрабочика ОС Astra Linux занимают такое место и имеют такой же размер, что и проприетарные от компании Monotype. Отечественные аналоги находятся на многих сайтах в сети Интернет и доступны для скачивания без каких-либо ограничений.