| Summary: | rpm-build: в сгенерированных debuginfo пакетах не хватает obsoletes/conflicts/provides | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Aleksei Nikiforov <darktemplaralt> |
| Component: | rpm-build | Assignee: | placeholder <placeholder> |
| Status: | CLOSED WONTFIX | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P3 | CC: | arseny, glebfm, imz, ldv, placeholder, vt |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
Не должно быть никакого libucil2, верните уже libucil на место! (В ответ на комментарий №1)
> Не должно быть никакого libucil2, верните уже libucil на место!
Тогда будет обратная проблема, libucil2 не будет заменяться на libucil при аналогичных условиях, и только. Предлагаю всё-таки дополнить генерацию obsoletes/conflicts/provides для пакетов debuginfo.
(In reply to comment #2) > (В ответ на комментарий №1) > > Не должно быть никакого libucil2, верните уже libucil на место! > > Тогда будет обратная проблема, libucil2 не будет заменяться на libucil при > аналогичных условиях, и только. Предлагаю всё-таки дополнить генерацию > obsoletes/conflicts/provides для пакетов debuginfo. Корень проблемы - в переименованиях пакетов, которых не должно происходить. |
Воспроизведение: 1) Установить Сизиф, с репозиторием из архива за 2019/04/25, включая debuginfo-репозиторий 2) Установить blender и blender-debuginfo В результате, помимо прочих пакетов, должны установиться пакеты libucil и libucil-debuginfo в качестве зависимостей. 3) Переключить репозиторий, на текущий Сизиф или на архив за 2019/05/22 4) Сделать apt-get update ; apt-get dist-upgrade Ожидаемый результат: Из репозитория удалены пакеты libucil и libucil-debuginfo, вместо них есть пакеты libucil2 и libucil2-debuginfo. Ожидается, что и из системы удалятся пакеты libucil и libucil-debuginfo, и вместо них установятся libucil2 и libucil2-debuginfo. Результат: В системе остаются пакеты libucil и libucil-debuginfo. Дополнительно: Если удалить libucil-debuginfo, то apt-get dist-upgrade успешно заменяет libucil на libucil2-debuginfo. В качестве обхода бага перед dist-upgrade можно удалять все *-debuginfo пакеты, а после dist-upgrade ставить их заново. Информация о пакетах libucil2 и libucil2-debuginfo: $ rpm -qp --provides /mnt/repo_private/sisyphus/date/2019/05/22/x86_64/RPMS.classic/libucil2-0.9.10-alt2_12.x86_64.rpm libucil.so.2()(64bit) = set:kdUpyxT9RGraWwcWpEFaQva4wIw0uFAI9ZsZL2J5cleMqqGWHf1cnF591quVLP5n5oZvQtbY0Zt64qh0zBZhdIPRQDun4xbTbktt17taUrjThNyZJ2LmTvWO3A6KCqAwwbrk2TwJZFao15cwOx3yZB99smTrgRbjC3XOzht3 libucil2 = 0.9.10-alt2_12:sisyphus+228414.100.1.1 $ rpm -qp --conflicts /mnt/repo_private/sisyphus/date/2019/05/22/x86_64/RPMS.classic/libucil2-0.9.10-alt2_12.x86_64.rpm libunicap < 0.9.12 libucil < 0.9.12 $ rpm -qp --obsoletes /mnt/repo_private/sisyphus/date/2019/05/22/x86_64/RPMS.classic/libucil2-0.9.10-alt2_12.x86_64.rpm libucil < 0.9.12 $ rpm -qp --provides /mnt/repo_private/sisyphus/date/2019/05/22/x86_64/RPMS.debuginfo/libucil2-debuginfo-0.9.10-alt2_12.x86_64.rpm debug64(libucil.so.2) libucil2-debuginfo = 0.9.10-alt2_12:sisyphus+228414.100.1.1 $ rpm -qp --conflicts /mnt/repo_private/sisyphus/date/2019/05/22/x86_64/RPMS.debuginfo/libucil2-debuginfo-0.9.10-alt2_12.x86_64.rpm $ rpm -qp --obsoletes /mnt/repo_private/sisyphus/date/2019/05/22/x86_64/RPMS.debuginfo/libucil2-debuginfo-0.9.10-alt2_12.x86_64.rpm Можно заметить, что у пакета libucil2 есть obsoletes 'libucil < 0.9.12', а у libucil2-debuginfo никаких obsoletes нет, и в связи с этим apt не может заменить пакет libucil-debuginfo на libucil2-debuginfo, а из-за libucil-debuginfo не может заменить libucil на libucil2. Если сгенерировать на основе obsoletes основного пакета obsoletes вида 'libucil-debuginfo < 0.9.12' для libucil2-debuginfo, то apt скорее всего сможет выполнить соответствующий dist-upgrade без проблем. Также аналогично можно сконвертировать имеющиеся provides и conflicts.