[devel] Каталоги не принадлежащие пакетам

Alexey Tourbin at на altlinux.ru
Ср Апр 1 20:35:14 MSD 2009


On Wed, Apr 01, 2009 at 04:51:47PM +0300, Eugene Ostapets wrote:
> Пакет xterm содержит файлы в каталоге /etc/X11/app-defaults, но...
> Но у него нет файловой зависимости на этот каталог, или зависимости на
> пакет xorg-xserver-common, которому принадлежит данный каталог.

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

> Подозреваю, что это далеко не единичный случай. Я могу
> проанализировать пакетную базу и скриптом развесить большую пачку
> багов, вопрос только в том - нужно ли это или проблемы пользователей
> rpm5 мантейнеров не волнуют?

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

Рассмотрим пример.  Пакет gtk-doc содержит инструметы для создания HTML
документации, которая размещается в каталоге  /usr/share/gtk-doc/html.
Он же порождает иерархию каталогов /usr/share/gtk-doc.  Пример пакета
с документацией: libxml2-doc, /usr/share/gtk-doc/html/libxml2/.

Если решить вопрос строго положительно, то получится, что пакет
libxml2-doc должен вытягивать gtk-doc.  А gtk-doc в свою очередь
вытягиват docbook, openjade, питон и еще всякий xslt stuff.  Больше
30 пакетов.

Получается несоответствие: чтобы посмотреть документацию в формате HTML,
нужно зачем-то вытягивать инструменты, при помощи которых эта
HTML-документация была сгенерирована.  Это нонсенс.

Как можно решить эту проблему, если считать вопрос решенным строго
положительно?  Можно отпилить пустой пакет gtk-doc-base, который будет
владеть каталогами /usr/share/gtk-doc и /usr/share/gtk-doc/html.
Но я сильно сомневаюсь, что это занятие имеет смысл -- отпиливать пустые
пакеты в больших количествах.

Посмотрим на это еще вот как: пакет gtk-doc относится к средствам
разработки (условно класса "devel"), а пакет libxml2-doc относится
к документации (условно класса "doc").  Неправильно, когда пакеты класса
"doc" вытягивают пакеты класса "devel" (для просмотра документаци не
нужны сборочные средства).

Это говорит о том, что существует упорядоченность пакетов по
зависимостям, и она должна подчиняться логике классов.  Нельзя, чтобы
не-devel пакет требовал devel-пакеты.  Будем называть это "топологией
зависимостей".

Кроме топологии зависимостей, есть еще иерархия вложенных каталогов фс.
На примере gtk-doc хорошо видно, что топология зависимостей и иерархия
фс не всегда хорошо согласуются друг с другом.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20090401/c74232fd/attachment.bin>


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