SONAME libGLEW.so.1.11 перебежал из пакета libGLEW в пакет libGLEW1.11. В пакете libGLEW теперь другой SONAME.
И в чём собственно ошибка? Библиотека обновилась, обновился и 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 теперь есть. Багу можно закрывать или что-то ещё надо сделать?
Да.