[devel] versioned set-versions; was: Re: Qt5 и поломанные плагины

Vladimir D. Seleznev vseleznv на altlinux.org
Сб Дек 30 15:26:02 MSK 2017


On Fri, Dec 29, 2017 at 04:38:38PM +0300, Ivan Zakharyaschev wrote:
> Hi!
> 
> On Mon, 23 Oct 2017, Vladimir D. Seleznev wrote:
> 
> > После вчерашнего обновления Qt5 сломалась работоспособность uim-qt5,
> > который должен был работать как плагин к Qt5, но с новым релизом
> > последнего не подключается с такой диагностикой:
> >
> >
> > Got keys from plugin meta data ("uim")
> > QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforminputcontexts" ...
> > Cannot load library /usr/lib64/qt5/plugins/platforminputcontexts/libuimplatforminputcontextplugin.so:
> > (/usr/lib64/qt5/plugins/platforminputcontexts/libuimplatforminputcontextplugin.so: symbol _ZTI21QPlatformInputContext,
> > version Qt_5 not defined in file libQt5Gui.so.5 with link time reference)
> > QLibraryPrivate::loadPlugin failed on
> > "/usr/lib64/qt5/plugins/platforminputcontexts/libuimplatforminputcontextplugin.so"
> > : "Cannot load library
> > /usr/lib64/qt5/plugins/platforminputcontexts/libuimplatforminputcontextplugin.so:
> > (/usr/lib64/qt5/plugins/platforminputcontexts/libuimplatforminputcontextplugin.so:
> > symbol _ZTI21QPlatformInputContext, version Qt_5 not defined in file
> > libQt5Gui.so.5 with link time reference)"
> >
> >
> > По setversion всё в порядке, но видно, что символ
> > _ZTI21QPlatformInputContext в libQt5Gui.so.5 переехал с Qt_5 на
> > Qt_5_PRIVATE_API.
> >
> > Это чинится пересборкой uim'а с новым Qt5, но если бы я не использовал
> > uim-qt5, то и не заметил бы поломки, пока кто-нибудь из пользователей не
> > пожаловался бы, т.е. отслеживание работоспособности плагинов остаётся на
> > пользователях.
> >
> > Есть ли механизмы, с помощью которых можно было бы отслеживать подобные
> > поломки?  Если нет, то может у кого-нибудь есть идеи, как их можно было
> > бы отслеживать и добавить их в инфраструктуру сборочницы?
> 
> Вспомнилось, что мы думали о разделении set на несколько множеств -- по 
> версионированию. (Раз мы версионированию upstream-ов вообще не доверяем и 
> имеем механизм set-versions.)
> 
> Следов того обсуждения я сходу не нашёл.
> 
> Отдельно требовалось продумать переходный период. Иметь Provides и со всем 
> суммарным множеством (как сейчас), и разделённые. В случае наличия 
> разделённых, генерировать Requires на разделённые.
> 
> Во время перехода длина затронутых Provides возрастёт не больше, чем в два 
> раза. После перехода общая длина будет примерно такая же, как сейчас.
> 
> Володя, может быть, ты это уже пробовал реализовывать?

Пока нет, я думал посмотреть на это в январские праздники.

-- 
   С уважением,
   Владимир Селезнев


Подробная информация о списке рассылки Devel