[devel] rpm-build 4.0.4-alt78+ RC

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Вт Сен 25 02:24:40 MSD 2007


On Tue, Sep 25, 2007 at 02:01:14AM +0400, Alexey Tourbin wrote:
> On Tue, Sep 25, 2007 at 01:30:02AM +0400, Dmitry V. Levin wrote:
> > > 1) pkgconfiglib.req: это упомянуто в changelog'е.  Зависимости *-devel
> > > пакетов (c *.pc файлом) будут жестко цементироваться по (сборочной)
> > > хост-среде (т.е. по хешеровскому чруту).  Пока это скорее хорошо,
> > > чем плохо: зависимости между *-devel пакетами не должны быть слишком
> > > "виртуальными".  А именно, например, -ldb-4 должно давать зависимость
> > > на libdb4.4-devel, а не libdb4-devel.
> > 
> > Зачем?  В своё время я даже buildreq substitution rules реализовал для
> > того, чтобы добиться обратного эффекта.  Чем зависимость на libdb4.4-devel
> > лучше зависимости на libdb4-devel?
> 
> Приведи контр-пример, когда зависимость на lib%name-devel нежелательна,
> а желателен ее "более виртуальный" аналог.
> 
> Подвижность BuildRequires зависимостей нужна для того, чтобы осуществить
> возможность as-is пересборки src.rpm пакета в "контрлируемо"-другой
> среде.  В частности, BuildRequires зависимость на libdb4-devel выражает
> надежду, что данный src.rpm пакет удастся собрать с любым другим
> libdb4.?-devel пакетом (вероятно, наиболее свежим).

Да.

> Когда пакет собрался, то надежды уступают место действительности.
> Например, мы собирали пакет libfoo.src.rpm.  Одноименный пакет
> libfoo.i586.rpm получит реальную зависимость на libdb-4.4.so.
> Теперь встает вопрос, какую зависимость должен получить
> libfoo-devel.i586.rpm пакет, если у него в *.pc файле указано
> "-ldb-4".  Я считаю, что эта зависимость должна быть конкретной:
> libdb4.4-devel.  То есть соответствовать содержимому чрута, в котором
> что-то ещё слинковалось с libdb-4.4.so.

Логично.  Те немногие варианты, который в этой ситуации приводят к излишне
жёсткой зависимости -- это когда -ldb-4 находится в Libs.private (тогда и
libdb4-devel будет избыточным) или просто является лишней библиотекой,
которую вычищает --as-needed.  Вероятно Libs.private лучше обрабатывать
только в случае если в пакет упаковывается соответствующая статическая
библиотека, а избыточный -ldb-4 можно считать заботой мантейнера.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20070925/b7b81402/attachment-0002.bin>


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