[devel] non-strict deps

Sergey Vlasov vsu на altlinux.ru
Сб Янв 26 20:19:45 MSK 2013


On Sat, Jan 26, 2013 at 06:17:00PM +0400, Dmitry V. Levin wrote:
> On Sat, Jan 26, 2013 at 05:30:40PM +0400, Sergey Vlasov wrote:
[...]
> > На мой взгляд, это неправильно - если в зависимости явно указано имя
> > виртуального пакета, скорее всего, это сделано намеренно, и такую
> > зависимость необходимо оставлять в том виде, как она есть.
> 
> А если неявно?  Если это find-requires нашел зависимость на soname,
> ее ведь надо превращать в строгую зависимость на пакет.

Да, действительно (причём это как раз наиболее опасные нестрогие
зависимости, поскольку компоненты, собираемые из одного пакета, с
наибольшей вероятностью могут использовать недокументированные ABI и
особенности реализации компонентов, вынесенных в соседние подпакеты).
Но для явно указанных в spec-файле зависимостей, выраженных через
виртуальные пакеты, не нужно усиливать их автоматически.

Правда, можно представить такую ситуацию, когда мантейнер переименовал
один из подпакетов, добавив туда соответствующие Provides и Obsoletes,
но забыл обновить зависимость на этот подпакет - в этом случае такая
зависимость превратится в явную зависимость на виртуальный пакет и не
будет усилена автоматически.  Можно попробовать отлавливать подобные
ошибки по наличию Obsoletes для указанного в зависимостях имени
пакета.

> Другими словами, предлагается модифицировать алгоритм, чтобы он работал
> следующим образом: подпакет A исходного пакета S автоматически получает
> строгую зависимость от подпакета B исходного пакета S, если выполнено любое
> из следующих условий:
> - у A есть зависимость от B;
> - у A есть такая зависимость X с атрибутом RPMSENSE_FIND_REQUIRES, что B
>   является единственным подпакетом S, удовлетворяющим эту зависимость X.

Это уже похоже на правильный вариант (в случае, если мантейнер по
каким-то причинам хочет разрешить смешивать подпакеты разных версий,
ему достаточно сделать для этих подпакетов виртуальные пакеты с
зависимостями нужной строгости - например, с чем-то типа %abi_version
в версии таких виртуальных пакетов).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20130126/bf72480e/attachment.bin>


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