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 хорошо видно, что топология зависимостей и иерархия фс не всегда хорошо согласуются друг с другом.