[devel] chkfontpath

Alexey Rusakov =?iso-8859-1?q?ktirf_=CE=C1_altlinux=2Eorg?=
Чт Авг 30 12:23:50 MSD 2007


On Thu, 30 Aug 2007 09:44:10 +0400
Valery V. Inozemtsev wrote:

> > Вряд ли вы не представляете объём знаний (причём различных на
> > разных этапах развития системы), который требуется для того,
> > чтобы упаковать шрифтовой пакет. Значит просто прикидываетесь.
> > Ручную пересборку затевать приходится только из-за того, что
> > рутинный труд по упаковке шрифтов не был минимизирован ранее с
> > помощью макросов.
> 
> макросы это зло, почему я уже объяснил выше
Это было объяснение не того, что макросы зло, а того, что макросы должны
определяться в пакетах с минимально необходимым для их использования
набором зависимостей. Например, в rpm-build-*

> > Ну кто не будет, а кто будет.
> > Я вообще против триггеров в пакетах, посколько их редко
> > используют и соответственно их редко создают без ошибок.
+1

> поэтому я и предлагаю дать мне NMU на все шрифтовые пакеты
Я пока не готов дать NMU на fonts-ttf-dejavu для подобного изменения.
Семеро одного не ждут, и менять все шрифтовые пакеты из-за того, что не
хочется изменить два, являющиеся источником перемен, я считаю
нецелесообразным.

> > Чем плоха возможность вызова chkfontpath или аналога, который
> > будет производить необходимые изменения.
> 
> во первых лишняя сущность, во вторых аналога нет
freedesktop2menu тоже лишняя сущность. До сих пор, по-моему, в каких-то
пакетах вызывается. Никто из-за этого не дёргается.

Между прочим, меня попросили придумать способ обойтись без триггеров и
пообещали поблагодарить за это. То есть понимание того, что триггеры - зло
(имхо, гораздо бОльшее чем макросы, но это имхо), вроде бы есть. Я
придумал этот способ, но вместо благодарности вижу неприятие. shrek@, для
вас триггеры меньшее зло, чем макросы?

-- end-of-flame

Давайте от эмоций перейдём к конструктиву. Начнём с общего, надеюсь,
очевидного тезиса: пакет, содержащий новый /etc/X11/fs/config
(xorg-x11-xfs?), должен содержать конфликт на (старый) chkfontpath. Если
есть возражения против этого, высказывайте.
Коль скоро это так, наличие старого chkfontpath в системе автоматически
означает, что /etc/X11/fs/config _нужно_ обновлять по старинке.

Дальше имеем несколько способов решения одной и той же проблемы. 

1. Пропатчить chkfontpath (патч будет) на предмет поддержки нового
синтаксиса. Убрать или сделать опциональным вызов chkfontpath
из rpm-build-fonts и шрифтовых пакетов, использующих его явно.
Достоинства - сохраняется старый интерфейс добавления/удаления шрифтов в
системе. Это же является и недостатком - в системе остаётся привидение в
виде больше-не-нужного chkfontpath, которое застрянет в репозитории на
неопределённое время.
2. Пересобрать шрифтовые пакеты и rpm-build-fonts, убрав оттуда вызов
chkfontpath, добавить триггер, охраняющий /etc/X11/fs/config нового
образца (куда добавить и каким образом он будет охранять этот файл?),
позже убрать chkfontpath из репозитория. Достоинство - при наличии всех
необходимых ингредиентов переход репозитория (не пользователей) на новые
рельсы произойдёт быстро. Недостатки - использование триггера (который,
так же как и chkfontpath в первом варианте, остаётся в репозитории на
неопределённое время), необходимость массовой пересборки пакетов;
проблемы для пользователей, поскольку chkfontpath больше нет, а
установленные у них шрифтовые пакеты по-прежнему требуют его наличия.
3. Сделать опциональным (либо через 'test -x', либо через '|| :') вызов
chkfontpath в макросах %post_fonts и %postun_fonts, убрать либо сделать
опциональным вызов chkfontpath из тех шрифтовых пакетов, которые не
используют rpm-build-fonts. Пересобрать все шрифтовые пакеты. После этого
убрать сам chkfontpath из репозитория. Достоинство - пользователи ничего
не заметят. Недостаток - необходимость массовой пересборки пакетов,
проблемы для пользователей, аналогичные предыдущему пункту.

Прошу прощения за многословность. Поправьте меня, если я ошибся в
формулировках решений. Приведённый список не претендует на полноту,
хочется найти действительно хорошее решение.

-- 
  Alexey "Ktirf" Rusakov
  GNOME Project
  ALT Linux Team



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