Fonts Policy: различия между версиями

Материал из ALT Linux Wiki
м Drafts/Fonts» переименована в «FontsPolicy»: -многоуровневость)
(Макросы)
Строка 71: Строка 71:
ln -s fonts.scale %buildroot%_fontsdir/%fname/fonts.dir</pre>
ln -s fonts.scale %buildroot%_fontsdir/%fname/fonts.dir</pre>


=== %post/%postun ===
=== Макросы ===
 
Для упрощения упаковки на ряд типовых каталогов и действий в пакете rpm-build-fonts заведены макросы:
 
Для обозначения каталогов с типами шрифтов:
<pre>%_bitmapfontsdir %_fontsdir/bitmap
%_type1fontsdir %_fontsdir/type1
%_ttffontsdir %_fontsdir/ttf
%_otffontsdir %_fontsdir/otf</pre>
 
Для обозначения каталога fontpath.d:
<pre>%_fontpathdir %_sysconfdir/X11/fontpath.d</pre>
 
С использованием пакета rpm-build-fonts спек для шрифтов ttf начинает выглядеть примерно так:
 
<pre>%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


Одинаковы для всех шрифтовых пакетов:
<pre>
%post
%post
%post_fonts
%post_fonts
Строка 80: Строка 105:
%postun
%postun
%postun_fonts
%postun_fonts
</pre>


Эти макросы содержатся в пакете [[Drafts/Fonts/RpmBuildFonts|rpm-build-fonts]].
%files -f %fname.files
%doc ...</pre>
 
Примеры спеков можно посмотреть здесь для [http://sisyphus.ru/srpm/fonts-ttf-gentium/spec TrueType] и [http://sisyphus.ru/srpm/fonts-type-church/spec Type1] шрифтов.

Версия от 20:57, 19 сентября 2008

Stub.png
Черновик политики Sisyphus
Автор(ы) — lav


Шрифты

Соглашения по размещению

Пакеты со шрифтами в ALT Linux устанавливают содержимое в подкаталоги каталога %_datadir/fonts/ (/usr/share/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

Примеры создания таких ссылок в 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 — 20;
  • type1 — 40;
  • ttf — 50;
  • otf — 50.

Символические ссылки должны быть запакованы в пакет вместе с каталогами, на которые они указывают.

Дополнение для локалезависимых bitmap-шрифтов

Локалезависимые bitmap-шрифты обычно имеют подкаталоги третьего уровня (%cname), примером может служить пакет fonts-bitmap-cyrillic: %_datadir/fonts/bitmap/%fname/%cname

Символическая ссылка в /etc/X11/fontpath.d будет иметь имя bitmap-%fname-%cname:unscaled:pri=10

Requires, BuildRequires

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 -s fonts.scale %buildroot%_fontsdir/%fname/fonts.dir

Макросы

Для упрощения упаковки на ряд типовых каталогов и действий в пакете rpm-build-fonts заведены макросы:

Для обозначения каталогов с типами шрифтов:

%_bitmapfontsdir %_fontsdir/bitmap
%_type1fontsdir %_fontsdir/type1
%_ttffontsdir %_fontsdir/ttf
%_otffontsdir %_fontsdir/otf

Для обозначения каталога fontpath.d:

%_fontpathdir %_sysconfdir/X11/fontpath.d

С использованием пакета 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

%post
%post_fonts

%postun
%postun_fonts

%files -f %fname.files
%doc ...

Примеры спеков можно посмотреть здесь для TrueType и Type1 шрифтов.