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.