On Sat, Jan 26, 2013 at 08:19:45PM +0400, Sergey Vlasov wrote: > 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: [...] > Правда, можно представить такую ситуацию, когда мантейнер переименовал > один из подпакетов, добавив туда соответствующие Provides и Obsoletes, > но забыл обновить зависимость на этот подпакет - в этом случае такая > зависимость превратится в явную зависимость на виртуальный пакет и не > будет усилена автоматически. Можно попробовать отлавливать подобные > ошибки по наличию Obsoletes для указанного в зависимостях имени > пакета. Можно предположить и другую ситуацию, когда мантейнер переименовал один из подпакетов с целью создания альтернатив, и не забыл поменять зависимость. На примере того же xboard это легко моделируется, достаточно добавить в xboard-theme-default Obsoletes на xboard-theme. Есть ли какой-нибудь способ различать эти две разные ситуации? > > Другими словами, предлагается модифицировать алгоритм, чтобы он работал > > следующим образом: подпакет A исходного пакета S автоматически получает > > строгую зависимость от подпакета B исходного пакета S, если выполнено любое > > из следующих условий: > > - у A есть зависимость от B; > > - у A есть такая зависимость X с атрибутом RPMSENSE_FIND_REQUIRES, что B > > является единственным подпакетом S, удовлетворяющим эту зависимость X. > > Это уже похоже на правильный вариант (в случае, если мантейнер по > каким-то причинам хочет разрешить смешивать подпакеты разных версий, > ему достаточно сделать для этих подпакетов виртуальные пакеты с > зависимостями нужной строгости - например, с чем-то типа %abi_version > в версии таких виртуальных пакетов). Этот вариант (librpmbuild-4.0.4-alt100.63) ушел в Сизиф. -- ldv