Bug 28439 - non-strict inter-package dependencies
Summary: non-strict inter-package dependencies
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: avahi (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Sergey Bolshakov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-24 05:29 MSK by Dmitry V. Levin
Modified: 2013-01-28 07:39 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dmitry V. Levin 2013-01-24 05:29:40 MSK
warning: avahi-bookmarks: non-strict dependency on python-module-avahi
warning: avahi-ui: non-strict dependency on libavahi-glib
warning: avahi-ui: non-strict dependency on libavahi-ui-gtk3
warning: avahi-ui: non-strict dependency on python-module-avahi
warning: libavahi-qt3-devel: non-strict dependency on libavahi-qt3
warning: libavahi-qt4-devel: non-strict dependency on libavahi-qt4
warning: libavahi-tqt-devel: non-strict dependency on libavahi-tqt
warning: libavahi-ui-sharp: non-strict dependency on libavahi-sharp
Comment 1 Sergey V Turchin 2013-01-24 15:22:58 MSK
(В ответ на комментарий №0)
> warning: libavahi-qt4-devel: non-strict dependency on libavahi-qt4
Подобное, надеюсь, не является проблемой?
Comment 2 Dmitry V. Levin 2013-01-24 15:35:26 MSK
(In reply to comment #1)
> (В ответ на комментарий №0)
> > warning: libavahi-qt4-devel: non-strict dependency on libavahi-qt4
> Подобное, надеюсь, не является проблемой?

Это давно является проблемой, а теперь я поднял warning до error.
Comment 3 Sergey V Turchin 2013-01-24 15:49:15 MSK
(В ответ на комментарий №2)
> (In reply to comment #1)
> > (В ответ на комментарий №0)
> > > warning: libavahi-qt4-devel: non-strict dependency on libavahi-qt4
> > Подобное, надеюсь, не является проблемой?
> Это давно является проблемой, а теперь я поднял warning до error.
А в чем проблема? Там strict dependency через цепочку пакетов.
libavahi-qt4-devel requires libavahi-devel = 0.6.31-alt3
libavahi-devel requires libavahi = 0.6.31-alt3
libavahi-qt4 requires libavahi = 0.6.31-alt3
Comment 4 Dmitry V. Levin 2013-01-24 15:57:16 MSK
(In reply to comment #3)
> (В ответ на комментарий №2)
> > (In reply to comment #1)
> > > (В ответ на комментарий №0)
> > > > warning: libavahi-qt4-devel: non-strict dependency on libavahi-qt4
> > > Подобное, надеюсь, не является проблемой?
> > Это давно является проблемой, а теперь я поднял warning до error.
> А в чем проблема? Там strict dependency через цепочку пакетов.
> libavahi-qt4-devel requires libavahi-devel = 0.6.31-alt3
> libavahi-devel requires libavahi = 0.6.31-alt3
> libavahi-qt4 requires libavahi = 0.6.31-alt3

$ rpmquery -pR libavahi-qt4-devel-0.6.31-alt3.i586.rpm |grep ^libavahi
libavahi-devel = 0.6.31-alt3
libavahi-qt4 = 0.6.31
$ rpmquery -pR libavahi-devel-0.6.31-alt3.i586.rpm |grep ^libavahi
libavahi = 0.6.31-alt3

Т.е. цепочка получилась ненадежная, потому что не только libavahi-qt4 = 0.6.31-alt3 подходит.  И в остальных твоих пакетах цепочки тоже бракованные, в каждом случае при желании можно построить контрпример.
Comment 5 Sergey V Turchin 2013-01-24 16:10:54 MSK
(В ответ на комментарий №4)
> Т.е. цепочка получилась ненадежная
Из-за отсутствия Epoch в зависимостях?
Comment 6 Dmitry V. Levin 2013-01-24 16:27:50 MSK
(In reply to comment #5)
> (В ответ на комментарий №4)
> > Т.е. цепочка получилась ненадежная
> Из-за отсутствия Epoch в зависимостях?

В данном случае из-за отсутствия %release.
Comment 7 Sergey V Turchin 2013-01-24 16:49:05 MSK
libavahi-qt4-devel requires libavahi-devel = 0.6.31-alt3
libavahi-devel requires libavahi = 0.6.31-alt3
libavahi-qt4 requires libavahi = 0.6.31-alt3
Где в этой цепочке между libavahi-qt4-devel и libavahi-qt4 отсутствие %release ?
Comment 8 Dmitry V. Levin 2013-01-24 18:45:03 MSK
(In reply to comment #7)
> libavahi-qt4-devel requires libavahi-devel = 0.6.31-alt3
> libavahi-devel requires libavahi = 0.6.31-alt3
> libavahi-qt4 requires libavahi = 0.6.31-alt3
> Где в этой цепочке между libavahi-qt4-devel и libavahi-qt4 отсутствие %release
> ?

Это не цепочка: из того, что
libavahi-qt4-devel -> libavahi-devel -> libavahi, и
libavahi-qt4 -> libavahi,
еще не следует, что libavahi-qt4-devel -> libavahi-qt4.

Зависимость у libavahi-qt4-devel на libavahi-qt4 есть, но она недостаточно
строгая.
Comment 9 Sergey V Turchin 2013-01-24 18:54:36 MSK
(В ответ на комментарий №8)
> Это не цепочка
Цепочка
ibavahi-qt4-devel -> libavahi-devel -> libavahi -> libavahi-qt4

> : из того, что
> libavahi-qt4-devel -> libavahi-devel -> libavahi, и
> libavahi-qt4 -> libavahi,
> еще не следует, что libavahi-qt4-devel -> libavahi-qt4.
В конкретной сборке конкретного пакета - следует. Это четко написано в зависимостях.
 
> Зависимость у libavahi-qt4-devel на libavahi-qt4 есть, но она недостаточно
> строгая.
Точно такая же строгая, как если бы
"libavahi-qt4-devel requires libavahi-qt4 = 0.6.31-alt3"
Comment 10 Sergey V Turchin 2013-01-24 18:55:54 MSK
(В ответ на комментарий №9)
> (В ответ на комментарий №8)
> > Это не цепочка
> Цепочка
> libavahi-qt4-devel -> libavahi-devel -> libavahi -> libavahi-qt4
Хорошо, колье ;-)
libavahi-qt4-devel -> libavahi-devel -> libavahi <- libavahi-qt4
Comment 11 Sergey V Turchin 2013-01-24 18:59:20 MSK
(В ответ на комментарий №8)
> не следует, что libavahi-qt4-devel -> libavahi-qt4.
Каким образом? Где рвется %release?
Comment 12 Dmitry V. Levin 2013-01-24 19:12:35 MSK
(In reply to comment #11)
> (В ответ на комментарий №8)
> > не следует, что libavahi-qt4-devel -> libavahi-qt4.
> Каким образом? Где рвется %release?

$ rpmquery -pR libavahi-qt4-devel-0.6.31-alt3.i586.rpm |grep ^libavahi-qt4
libavahi-qt4 = 0.6.31

Поскольку -alt3 в зависимости нет, то подойдет любой релиз, в том числе и отличный от текущего релиза alt3.  А какие зависимости у абстрактного libavahi-qt4-0.6.31, неизвестно.  Поэтому гарантии того, что в качестве libavahi-qt4-0.6.31 будет именно libavahi-qt4-0.6.31-alt3, нет.
Comment 13 Sergey V Turchin 2013-01-24 19:22:55 MSK
(В ответ на комментарий №12)
> (In reply to comment #11)
> > (В ответ на комментарий №8)
> > > не следует, что libavahi-qt4-devel -> libavahi-qt4.
> > Каким образом? Где рвется %release?
> 
> $ rpmquery -pR libavahi-qt4-devel-0.6.31-alt3.i586.rpm |grep ^libavahi-qt4
> libavahi-qt4 = 0.6.31
Это другая цепочка. Где рвется %release в той, о которой я?
Comment 14 Dmitry V. Levin 2013-01-24 19:32:08 MSK
(In reply to comment #13)
> (В ответ на комментарий №12)
> > (In reply to comment #11)
> > > (В ответ на комментарий №8)
> > > > не следует, что libavahi-qt4-devel -> libavahi-qt4.
> > > Каким образом? Где рвется %release?
> > 
> > $ rpmquery -pR libavahi-qt4-devel-0.6.31-alt3.i586.rpm |grep ^libavahi-qt4
> > libavahi-qt4 = 0.6.31
> Это другая цепочка. Где рвется %release в той, о которой я?

То, о чем ты писал, не является цепочкой зависимостей:
из того, что у libavahi-qt4-0.6.31-alt3 и libavahi-devel-0.6.31-alt3 по отдельности зависимости правильные, еще не следует, что у них вместе зависимости правильные.  Нет способа доказать, что libavahi-qt4 и libavahi-devel, будучи установленными, всегда окажутся с одной и той же версии и релиза.
Но если для libavahi-devel это не проблема, то для libavahi-qt4-devel это уже плохо.
Comment 15 Sergey V Turchin 2013-01-24 19:40:08 MSK
(В ответ на комментарий №14)
> Нет способа доказать, что libavahi-qt4 и libavahi-devel, будучи установленными,
> всегда окажутся с одной и той же версии
> и релиза.
> Но если для libavahi-devel это не проблема, то для libavahi-qt4-devel это уже
> плохо.
Т.е. apt или rpm просто возьмет и наплюет на зависимости. Того, кто наплюет и нужно исправлять.
Comment 16 Dmitry V. Levin 2013-01-24 19:52:07 MSK
(In reply to comment #15)
> (В ответ на комментарий №14)
> > Нет способа доказать, что libavahi-qt4 и libavahi-devel, будучи установленными,
> > всегда окажутся с одной и той же версии
> > и релиза.
> > Но если для libavahi-devel это не проблема, то для libavahi-qt4-devel это уже
> > плохо.
> Т.е. apt или rpm просто возьмет и наплюет на зависимости. Того, кто наплюет и
> нужно исправлять.

Нет, ты совсем не понял.  rpmbuild не имеет права строить прогнозы относительно зависимостей в других релизах собираемых пакетов.
Comment 17 Zerg 2013-01-24 20:47:52 MSK
(В ответ на комментарий №16)
> rpmbuild не имеет права строить прогнозы относительно
> зависимостей в других релизах собираемых пакетов.
Не совсем понял какие другие релизы могут быть в собираемых пакетах одного подпакета, но пусть сам тогда дополняет зависимость до нужной ему кондиции.

Вручную отслеживать это уж слишком геморно. kde4pim, например.
Comment 18 Dmitry V. Levin 2013-01-25 02:12:11 MSK
(In reply to comment #17)
> (В ответ на комментарий №16)
> > rpmbuild не имеет права строить прогнозы относительно
> > зависимостей в других релизах собираемых пакетов.
> Не совсем понял какие другие релизы могут быть в собираемых пакетах одного
> подпакета, но пусть сам тогда дополняет зависимость до нужной ему кондиции.

Это не rpmbuild'у нужно, а нам, чтобы внутрипакетные зависимости были настолько жесткими, чтобы установить одновременно подпакеты разных релизов было нельзя.

> Вручную отслеживать это уж слишком геморно. kde4pim, например.

Ну так rpmbuild это уже почти 2 года отслеживает.  Но теперь это уже не warning а error, так что просто проигнорировать уже не удастся.
Comment 19 Zerg 2013-01-25 11:55:54 MSK
(В ответ на комментарий №18)
> Это не rpmbuild'у нужно, а нам
Как-минимум, мне это точно не нужно.

>, чтобы внутрипакетные зависимости были настолько
> жесткими, чтобы установить одновременно подпакеты разных релизов было нельзя.
У меня сейчас так, но rpmbuild ложно сообщает об ошибке.

> > Вручную отслеживать это уж слишком геморно. kde4pim, например.
> Ну так rpmbuild это уже почти 2 года отслеживает.
Значит, он и исправить может при сборке, если ему нужны зависимости более удобные для него и _очень_ неудобные для меня.

>  Но теперь это уже не warning а error,
> так что просто проигнорировать уже не удастся.
Я против исправления отсутствующих ошибок.
Comment 20 Sergey V Turchin 2013-01-25 15:18:21 MSK
http://git.altlinux.org/tasks/88500/logs/events.5.1.log
> error: strigi: non-strict dependency on libstrigi
set-зависимости теперь тоже ерунда на палочке?
Comment 21 Repository Robot 2013-01-28 07:39:16 MSK
avahi-0.6.31-alt4 -> sisyphus:

* Mon Jan 28 2013 Dmitry V. Levin <ldv@altlinux> 0.6.31-alt4
- Fixed interpackage dependencies (closes: #28439).