[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