Summary: | SONAME перебежал в другой пакет | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey V Turchin <zerg> |
Component: | libGLEW | Assignee: | Денис Назаров <nenderus> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | evg, glebfm |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 28944 |
Description
Sergey V Turchin
2015-03-02 16:12:39 MSK
И в чём собственно ошибка? Библиотека обновилась, обновился и SONAME. (В ответ на комментарий №1)
> И в чём собственно ошибка?
В том, что SONAME перебежал в другой пакет.
Смотрите по теме баги: 28941 29594 29633 29816 30786 ( 28944 ).
Например, 28941 не исправлена до сих пор!
Так вроде по всем правилам же оставлена legacy library - http://www.altlinux.org/Shared_Libs_Policy#.D0.9F.D0.B5.D1.80.D0.B5.D0.B5.D0.B7.D0.B4_.D1.81.D0.BE_.D1.81.D1.82.D0.B0.D1.80.D0.BE.D0.B3.D0.BE_.D0.B8.D0.BC.D0.B5.D0.BD.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F (В ответ на комментарий №3) > Так вроде по всем правилам же оставлена legacy library - Совсем не по правилам. По правилам новый пакет libGLEW1.11 должен Provides/Obsoletes libGLEW. Судя по инфомации на вики http://www.altlinux.org/Shared_Libs_Policy#.D0.9F.D0.B5.D1.80.D0.B5.D0.B5.D0.B7.D0.B4_.D1.81.D0.BE_.D1.81.D1.82.D0.B0.D1.80.D0.BE.D0.B3.D0.BE_.D0.B8.D0.BC.D0.B5.D0.BD.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F нужен только Provides и он у пакета libGLEW1.11 как раз есть. Ведь если же добавить ещё и Obsoletes, то разве при обновлении тогда не будет предлагаться удалить пакет libGLEW? (В ответ на комментарий №5)
> Ведь если же добавить ещё и Obsoletes, то разве при обновлении тогда не будет
> предлагаться удалить пакет libGLEW?
Не будет, если сделать правильный пакет libGLEW1.12 .
А сейчас вы создали ситуацию, которую исправлять гораздо сложнее, чем предотвратить. Можете спросить у Глеба, т.к. он более-менее просто исправил этот баг в libwebpN . Может тогда стоит просто пересобрать все пакеты, которые зависят от libGLEW (что бы слинковались с новой версией) и пакет libGLEW1.11 удалить из репозитория? Да. По древним правилам так надо было и сделать. Правильно -- сделать пакет libGLEW1.12 . Вы ведь не гарантируете всем пересборку любых всех каких-только теоретически возможных установленных пакетов? Пакет libGLEW1.12 эту проблему решает. У пользователя тогда просто останется отсутствующий в репозитории пакет libGLEW и обновление ничего не снесет. Его уже нельзя переименовывать. (In reply to comment #10) > Его уже нельзя переименовывать. Есть люди, у которых стоит старый libGLEW, если новый переименовать, им приедет и libGLEW1.11 и libGLEW1.12 и это будет файловый конфликт. Не уверен, что тут пожно писать Obsoletes: где-то. (In reply to comment #7) > Можете спросить у Глеба, т.к. он более-менее просто исправил > этот баг в libwebpN . И сломал голову, пока придумывал. (В ответ на комментарий №10) > Его уже нельзя переименовывать. Коментарий #7. Можно примерно так, как ты исправлял libwebpN в баге#29816 . В libGLEW1.12 Provides: libGLEW = %version-%release Obsoletes: libGLEW = 1.12.0-alt2 Obsoletes: libGLEW = 1.12.0-alt1 В libGLEW1.11 Provides: libGLEW = %version-%release Obsoletes: libGLEW < 1.12 Если попадет в бранчи, будет несколько сложнее. (В ответ на комментарий №11) > И сломал голову, пока придумывал. Я рад, что еще один человек прочуствовал глубину проблемы. ;-) (In reply to comment #13) > (В ответ на комментарий №11) > > И сломал голову, пока придумывал. > Я рад, что еще один человек прочуствовал глубину проблемы. ;-) На самом деле, вот это стало результатом и слегка сглаживает некоторые проблемы: http://git.altlinux.org/people/glebfm/packages/apt.git?p=apt.git;a=commit;h=e2184306b28908f208869b791d1bb0550c659674 Разве Provides: libGLEW = %version-%release Obsoletes: libGLEW = 1.12.0-alt2 Obsoletes: libGLEW = 1.12.0-alt1 надо писать в головную часть спека, а не в подпакеты libGLEW1.12 и libGLEWmx1.12? В данном же случае получается, что Provides/Obsoletes относится к глобальному пакету GLEW, который даже не создаётся из спека. (In reply to comment #15) > Разве > > Provides: libGLEW = %version-%release > Obsoletes: libGLEW = 1.12.0-alt2 > Obsoletes: libGLEW = 1.12.0-alt1 > > надо писать в головную часть спека, а не в подпакеты libGLEW1.12 и > libGLEWmx1.12? > > В данном же случае получается, что Provides/Obsoletes относится к глобальному > пакету GLEW, который даже не создаётся из спека. Прошу прощения, это я что-то задумался в этот момент. :) В обоих пакетах Provides/Obsoletes теперь есть. Багу можно закрывать или что-то ещё надо сделать? Да. |