[devel] *.pc -devel

Alexey Tourbin at на altlinux.ru
Чт Сен 20 02:22:21 MSD 2007


On Tue, Sep 18, 2007 at 02:44:39PM +0300, Michael Shigorin wrote:
> On Mon, Sep 17, 2007 at 09:36:31AM +0400, Alexey Tourbin wrote:
> > > > > ДАННОЕ ИЗМЕНЕНИЕ, и не одно оно, ОКОНЧАТЕЛЬНО ПЕРЕВОДИТ *.pc ФАЙЛЫ
> > > > > В СТАТУС "ДЛЯ *-devel ПАКЕТОВ".  Уважаемые товарищи maintaner'ы!
> > > > > Кладите *.pc файл в *-devel подпакет, либо не пакуйте его вообще,
> > > > > до тех пор, пока он кому-нибудь не понадобится.
> > > > Вот это бы хорошо в sisyphus_check, для начала как warning.
> > > +1
> > Чево плюс один, берите и делайте.
> 
> Тоже мне бином Ньютона.  Заодно добавил tests/:
> http://git.altlinux.org/people/mike/packages/?p=sisyphus_check.git;a=commitdiff;h=560f46b205749c2963231330a32eb20c895f12f1
> 
> PS: спасибо led@ за возвратное снимание меня с ручника 
> по части теста на -devel. :)

Ох.  Я наверное всё-таки поспешил сделать вывод, что все *.pc файлы
нужно вынести в -devel пакеты.  Это не всегда решает проблему.
А проблема в неопределенной семантике pkgconfig зависимостей.
То есть там нет расслоения на BuildRequires, Requires: lib%name.so.0
и Requires: lib%name-devel.  Я об этом писал.

То есть сейчас появляется искушение решить некоторый класс
псевдо-проблем, не до конца поняв суть дела.

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

Переформулирую критерий включений *.pc файлов в пакеты.
Файлы *.pc, как правило, должны входить в -devel пакеты.
Это соответствует превалирующей семантике lib%name-devel.

С другой стороны, pkgconfig зависимости иногда "снижаются"
вниз по топологии пакетов до уровня /usr/bin.  Если *.pc файл находится
в таком не-devel пакете, то ТРЕБУЕТСЯ, чтобы зависимости этого *.pc
файла, в том числе транзитивные, не содержали каких-либо -devel пакетов.
*.pc файл без зависимостей заведомо удовлетворяет этому требованию.
Зависимости *.pc файлов можно подчистить вручную, если они
альтернативным образом хорошо обнаруживаются (при помощи find-requires).

Зависимости же с семантикой BuildRequires нужно вычищать в безусловном
порядке.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.org/pipermail/devel/attachments/20070920/71f61348/attachment.bin 


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