[devel] non-strict deps

Dmitry V. Levin ldv на altlinux.org
Сб Янв 26 18:17:00 MSK 2013


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
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20130126/ad1752f4/attachment.bin>


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