On Sat, Jan 26, 2013 at 05:30:40PM +0400, Sergey Vlasov wrote: > On Fri, Jan 25, 2013 at 04:32:49PM +0400, Dmitry V. Levin wrote: > > On Fri, Jan 25, 2013 at 04:13:23PM +0400, Alexey Gladkov wrote: > > > 25.01.2013 14:53, Dmitry V. Levin wrote: > > > > Проанализировав множество нестрогих внутрипакетных зависимостей, которые > > > > диагностирует rpm-build, я пришел к выводу, что среди них выделяется > > > > только один класс зависимостей, которые нужно сохранить, > > > > а все остальные следует сделать строгими. > > > > > > Можно ли рассказать подробнее т.к. меня это касается? > > > > Тестируется следующий алгоритм: подпакет A исходного пакета S > > автоматически получает строгую зависимость на подпакет B исходного > > пакета S, если у подпакета A есть такая зависимость X, что подпакет B > > является единственным подпакетом исходного пакета S, удовлетворяющим > > эту зависимость X. > > Насколько я понимаю, описанный выше алгоритм преобразования > зависимостей сработает в следующей ситуации: > > %package -n A > Requires: X > > %package -n B > Provides: X > > (и нет других подпакетов с Provides: X) > > В результате подпакет A вместо зависимости на виртуальный пакет X > должен получить зависимость вида B = %EVR ? Да. > На мой взгляд, это неправильно - если в зависимости явно указано имя > виртуального пакета, скорее всего, это сделано намеренно, и такую > зависимость необходимо оставлять в том виде, как она есть. А если неявно? Если это find-requires нашел зависимость на soname, ее ведь надо превращать в строгую зависимость на пакет. Другими словами, предлагается модифицировать алгоритм, чтобы он работал следующим образом: подпакет A исходного пакета S автоматически получает строгую зависимость от подпакета B исходного пакета S, если выполнено любое из следующих условий: - у A есть зависимость от B; - у A есть такая зависимость X с атрибутом RPMSENSE_FIND_REQUIRES, что B является единственным подпакетом S, удовлетворяющим эту зависимость X. > А вот > зависимость вида Requires: B, где B - имя реального подпакета, > действительно стоит автоматически дополнять "= %EVR" (естественно, > учитывая, что у подпакета может присутствовать собственный тег > Version: или Release:). Разумеется, в каждом случае используется EVR того подпакета, на который выставляется строгая зависимость. > Пример реально существующего в Сизифе пакета, который сломается при > введении предлагаемого алгоритма - xboard, где в основном пакете > указано Requires: xboard-theme, а также собирается единственный > подпакет xboard-theme-default, имеющий Provides: xboard-theme, но при > этом в репозитории присутствуют и несколько отдельных пакетов > xboard-theme-*, также предоставляющих xboard-theme. Принято. -- ldv