[devel] virtual deps between subpackages (was: packages/rpm: tags/4.0.4-alt81)

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Ноя 27 18:31:18 MSK 2007


On Tue, Nov 27, 2007 at 03:50:47PM +0300, Dmitry V. Levin wrote:
> > > > Прошу отправить на сборку.  Его желательно собрать два раза, второй раз
> > > > самим собой, чтобы у rpm-build появились зависимости на /usr/lib/rpm(...).
> > > 
> > > Зачем они нужны rpm-build'у, там же есть жёсткие межпакетные зависимости.
> > 
> > То есть в таком случае встаёт более общий вопрос: нужны ли
> > дополнительные виртуальные зависимости между подпакетами,
> > если эти подпакеты жестко связаны между собой?  Например,
> > нужны ли в rpm-build зависимости на librpm*-4.0.4.so?
> 
> Скорее всего нет, хотя есть ещё эти ()(64bit).

Отвечаю в devel на .

В общем, у меня сейчас есть идея включить поиск всех симлинков
на межпакетные зависимости.  Это защищает от неупаковки таргетов.
Т.е. проверка типа [ -e "$RPM_BUILD_ROOT$f" ] это такая лавочка,
что файл вроде бы должен "где-то" быть, но нет никакой гарантии,
что его потом вообще куда-нибудь запакуют.  Эту лавочку желательно
закрыть.  Будут появляться зависимости на файлы, и rpm сможет
оптимизировать/удалить эти зависимости в пределах одного подпакета
(речь идёт о подходе который реализован в 4.0.4-alt81-6-g6e73a89).
С другой стороны, это как минимум означает, что у каждого lib*-devel
пакета из-за симлнка /usr/lib/lib*.so -> /usr/lib/lib*.so.X.Y появится
"файловая" зависимость на /usr/lib/lib*.so.X.Y.

То есть, с одной стороны, дополнительные зависимости между
подпакетами защищают от ошибок упаковки.  С другой стороны, если всё
упаковано правильно, то дополнительные виртуальные зависимости
становятся излишними и их можно каким-то образом оптимизировать.
Сейчас есть возможность начать делать первую часть (ставить
дополнительные виртуальные зависимости), но пока нет хорошей идеи
как делать вторую часть (удалять совпадающие виртуальные зависимости
при жесткой связи между подпакетами).

С третьей стороны, полная оптимизация совпадающих зависимостей
при жесткой связи между подпакетами -- для меня это ломка стереотипов.
То есть если rpm перестанет явно зависеть от librpm-4.0.4.so (вследствие
жесткой зависимости на librpm = %version-%release) то мне придётся
к этому какое-то время привыкать.  То есть это очень сильная
оптимизация, которая сейчас может противоречить привычной интуиции.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20071127/d1583a0b/attachment-0002.bin>


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