[devel] chkfontpath

Valery V. Inozemtsev =?iso-8859-1?q?shrek_=CE=C1_altlinux=2Eru?=
Чт Авг 30 20:23:19 MSD 2007


...

поясняю еще раз по порядку

на данный момент /etc/X11/fs/config, chkfontpath и иже с ними являются крайне неудобным решением,
т.к. при установке шрифта надо править конфиг и эти шрифты мы получим только после рестарта иксов.
/etc/X11/fs/config вообще находится в пакете никак не относящемуся ни к иксам ни к шрифтам

теперь собственно по обновлению всего этого хозяйства
1. пересборка всех пакетов со шрифтами в которых будет следующее (для примера взят fonts-ttf-liberation.spec):
...
PreReq: fontconfig >= 2.4.2
...
BuildRequires: mkfontscale
...
%install
%__mkdir_p %buildroot%_fontsdir/%fname
%__install -m644 *.ttf %buildroot%_fontsdir/%fname
%_bindir/mkfontscale %buildroot%_fontsdir/%fname
%__ln_s fonts.scale %buildroot%_fontsdir/%fname/fonts.dir

%__mkdir_p %buildroot%_sysconfdir/X11/fontpath.d
%__ln_s ../../..%_fontsdir/%fname %buildroot%_sysconfdir/X11/fontpath.d/ttf-%fname:pri=50

имена симлинков в /etc/X11/fontpath.d следующие:
для ttf шрифтов ttf-%name:pri=50
для otf - otf-%name:pri=50
для type1 - type1-%name:pri=40
для bitmap - bitmap-%name:pri=20 если шрифты не зависят от локали и bitmap-%name:pri=10 для зависимых
от локали.
":pri=" это порядок в котором шрифты будет выбираться


далее триггер (только для пакетов у которых не меняется имя, изменяется только %version или %release):
%triggerin -- %name <= 0.2-alt1
[ ! -x %_sbindir/chkfontpath -a ! -f %_sysconfdir/X11/fs/config ] || \
        %_sbindir/chkfontpath -q -r %_fontsdir/%fname ||:

выполнен он будет соответственно только один раз. проверки нужны потому что точно не знаем
есть у нас на данный момент chkfontpath или /etc/X11/fs/config (как там apt будет их сносить/устанавливать
доподлинно не известно).

2. конфликт на chkfontpath будет в xorg-x11-xfs после того как будет произведена
пересборка всех шрифтовых пакетов (или не будет, семеро одного не ждут) и будет новый setup

далее по спеку:
%post
%_bindir/fc-cache %_fontsdir/%fname ||:

%files
%doc License.txt
%_sysconfdir/X11/fontpath.d/*
%_fontsdir/%fname

что тут заворачивать в макросы мне не понятно. спек для примера во вложении

-- 
Valery V. Inozemtsev
----------- следующая часть -----------
%define fname liberation
%define _fontsdir %_datadir/fonts/ttf

Name: fonts-ttf-%fname
Version: 0.2
Release: alt2

Summary: Fonts to replace commonly used Microsoft Windows Fonts

License: GPL+exception
Group: System/Fonts/True type
Url: https://www.redhat.com/promo/fonts/

Packager: Valery Inozemtsev <shrek на altlinux.ru>

PreReq: fontconfig >= 2.4.2

Source: https://www.redhat.com/f/fonts/liberation-fonts-ttf-3.tar.gz

BuildArch: noarch
BuildRequires: mkfontscale

%description
The Liberation Fonts are intended to be replacements for the three
most commonly used fonts on Microsoft systems: Times New Roman,
Arial, and Courier New.

%prep
%setup -q -n %fname-fonts-%version

%install
%__mkdir_p %buildroot%_fontsdir/%fname
%__install -m644 *.ttf %buildroot%_fontsdir/%fname
%_bindir/mkfontscale %buildroot%_fontsdir/%fname
%__ln_s fonts.scale %buildroot%_fontsdir/%fname/fonts.dir

%__mkdir_p %buildroot%_sysconfdir/X11/fontpath.d
%__ln_s ../../..%_fontsdir/%fname %buildroot%_sysconfdir/X11/fontpath.d/ttf-%fname:pri=50

%triggerin -- %name <= 0.2-alt1
[ ! -x %_sbindir/chkfontpath -a ! -f %_sysconfdir/X11/fs/config ] || \
	%_sbindir/chkfontpath -q -r %_fontsdir/%fname ||:

%post
%_bindir/fc-cache %_fontsdir/%fname ||:

%files
%doc License.txt
%_sysconfdir/X11/fontpath.d/*
%_fontsdir/%fname

%changelog
* Tue Aug 28 2007 Valery Inzemtsev <shrek на altlinux.ru> 0.2-alt2
- used %_sysconfdir/X11/fontpath.d, adieu chkfontpath

* Mon Aug 06 2007 Valery Inzemtsev <shrek на altlinux.ru> 0.2-alt1
- 0.2

* Sun May 13 2007 Vitaly Lipatov <lav на altlinux.ru> 0.1-alt1
- initial build for ALT Linux Sisyphus
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: This is a digitally signed message part.
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20070830/396ec533/attachment-0001.bin>


Подробная информация о списке рассылки Devel