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

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:48:27 MSK
warning: liblastfm-devel: non-strict dependency on liblastfm
warning: liblastfm-devel: non-strict dependency on liblastfm-fingerprint
warning: liblastfm-fingerprint: non-strict dependency on liblastfm
Comment 1 Sergey V Turchin 2013-01-24 15:26:56 MSK
Они имеют strict dependency через
Requires: liblastfm-common1 = %version-%release
Comment 2 Dmitry V. Levin 2013-01-24 15:41:18 MSK
rpmbuild считает иначе, и он по определению не ошибается.
Comment 3 Sergey V Turchin 2013-01-24 17:42:14 MSK
Он, кстати, обновился
Теперь liblastfm-devel и liblastfm - разные пакеты.
Comment 4 Sergey V Turchin 2013-01-24 19:35:13 MSK
liblastfm-1.0.3-alt1
http://git.altlinux.org/tasks/archive/done/current/88368/build/200/i586/log
Где здесь что-то рвется?
Из-за зависимости на %libdir/liblastfm.so.1 ?
Если так, то исправить нужно того, кто ее ставит.
Например, чтоб к такой зависимости добавлял зависимость на
%name = %epoch:%version-%release соответствующего подпакета.
Comment 5 Dmitry V. Levin 2013-01-24 19:45:18 MSK
(In reply to comment #4)
> liblastfm-1.0.3-alt1
> http://git.altlinux.org/tasks/archive/done/current/88368/build/200/i586/log
> Где здесь что-то рвется?
> Из-за зависимости на %libdir/liblastfm.so.1 ?

Симлинки имеют свойство порождать зависимости.

> Если так, то исправить нужно того, кто ее ставит.
> Например, чтоб к такой зависимости добавлял зависимость на
> %name = %epoch:%version-%release соответствующего подпакета.

Ты фактически сейчас сказал, что rpmbuild имеет право и должен все нестрогие зависимости автоматически превращать в строгие.  Но тогда точно сломаются все схемы с альтернативными провайдерами.  Нет уж, лучше ты сам добавь недостающие зависимости.
Comment 6 Sergey V Turchin 2013-01-25 14:50:44 MSK
(В ответ на комментарий №5)
> (In reply to comment #4)
> > liblastfm-1.0.3-alt1
> > http://git.altlinux.org/tasks/archive/done/current/88368/build/200/i586/log
> > Где здесь что-то рвется?
> > Из-за зависимости на %libdir/liblastfm.so.1 ?
> Симлинки имеют свойство порождать зависимости.
Пусть порождают корректно, чтоб не было подобных ошибок.
 
> Ты фактически сейчас сказал, что rpmbuild имеет право и должен
> все нестрогие зависимости автоматически превращать в строгие.
Не все, а только те, которые указывают на подпакеты собираемого пакета.

>  Но тогда точно сломаются все
> схемы с альтернативными провайдерами.
Сломаются только те, провайдеры которые находятся в подпакетах собираемого пакета.
Есть пример такого?

> Нет уж, лучше ты сам добавь недостающие зависимости.
Как это сделать автоматически?
Comment 7 Sergey V Turchin 2013-01-25 14:58:02 MSK
Кстати, как вариант, сделать выключенный по умолчанию переключатель типа
_solve_nonstrict_dependecies
Думаю, меня устроит.
Comment 8 Sergey V Turchin 2013-01-25 15:19:59 MSK
(В ответ на комментарий №7)
> Кстати, как вариант, сделать выключенный по умолчанию переключатель типа
> _solve_nonstrict_dependecies
> Думаю, меня устроит.
Кроме, как-минимум случая, когда set-зависимости не считаются жесткими.
Comment 9 Dmitry V. Levin 2013-01-26 22:57:08 MSK
Для исправления кривых зависимостей необходимо (и достаточно) пересобрать liblastfm и liblastfm0 rpmbuild'ом версии >= 4.0.4-alt100.63

Эффект будет примерно следующий:
для liblastfm:
Adding to liblastfm_fingerprint1 a strict dependency on liblastfm1
Adding to liblastfm-devel a strict dependency on liblastfm1
Adding to liblastfm-devel a strict dependency on liblastfm_fingerprint1
Adding to liblastfm_fingerprint1-debuginfo a strict dependency on liblastfm1-debuginfo
Removing 10 sources from liblastfm_fingerprint1-debuginfo and adding dependency on liblastfm1-debuginfo
Removing 1 extra deps from liblastfm_fingerprint1 due to dependency on liblastfm1
Removing 1 extra deps from liblastfm-devel due to dependency on liblastfm1
Removing 1 extra deps from liblastfm-devel due to dependency on liblastfm_fingerprint1
Removing 1 extra deps from liblastfm_fingerprint1-debuginfo due to dependency on liblastfm1-debuginfo
Removing 9 extra deps from liblastfm_fingerprint1 due to repentancy on liblastfm1
Removing 1 extra deps from liblastfm-devel due to repentancy on liblastfm1
Removing 1 extra deps from liblastfm-devel due to repentancy on liblastfm_fingerprint1
Removing 5 extra deps from liblastfm_fingerprint1-debuginfo due to repentancy on liblastfm1-debuginfo

для liblastfm0:
Adding to liblastfm-fingerprint a strict dependency on liblastfm
Adding to liblastfm0-devel a strict dependency on liblastfm
Adding to liblastfm0-devel a strict dependency on liblastfm-fingerprint
Adding to liblastfm-fingerprint-debuginfo a strict dependency on liblastfm-debuginfo
Removing 7 sources from liblastfm-fingerprint-debuginfo and adding dependency on liblastfm-debuginfo
Removing 1 extra deps from liblastfm-fingerprint due to dependency on liblastfm
Removing 1 extra deps from liblastfm0-devel due to dependency on liblastfm
Removing 1 extra deps from liblastfm0-devel due to dependency on liblastfm-fingerprint
Removing 1 extra deps from liblastfm-fingerprint-debuginfo due to dependency on liblastfm-debuginfo
Removing 10 extra deps from liblastfm-fingerprint due to repentancy on liblastfm
Removing 1 extra deps from liblastfm0-devel due to repentancy on liblastfm
Removing 1 extra deps from liblastfm0-devel due to repentancy on liblastfm-fingerprint
Removing 6 extra deps from liblastfm-fingerprint-debuginfo due to repentancy on liblastfm-debuginfo
Comment 10 Repository Robot 2013-01-28 16:03:01 MSK
liblastfm-1.0.3-alt2 -> sisyphus:

* Mon Jan 28 2013 Sergey V Turchin <zerg@altlinux> 1.0.3-alt2
- rebuilt with new rpm (ALT#28443)