[devel] Qt5 и поломанные приложения

Vladimir D. Seleznev vseleznv на altlinux.org
Пн Окт 23 19:31:50 MSK 2017


On Mon, Oct 23, 2017 at 07:28:40PM +0300, Vladimir D. Seleznev wrote:
> On Mon, Oct 23, 2017 at 06:08:31PM +0300, Mikhail Efremov wrote:
> > On Mon, 23 Oct 2017 14:49:15 +0300 Vladimir D. Seleznev wrote:
> > > Есть ли механизмы, с помощью которых можно было бы отслеживать
> > > подобные поломки?  Если нет, то может у кого-нибудь есть идеи, как их
> > > можно было бы отслеживать и добавить их в инфраструктуру сборочницы?
> >
> > Ну, например, при сборке NM, чтобы убедиться, что плагинам хватает символов,
> > используется такой трюк:
> > LD_BIND_NOW=1 LD_PRELOAD=$${LD_PRELOAD}:$(1) $(builddir)/src/NetworkManager --version >/dev/null
> > где $(1) - плагин.
> > Но не знаю насколько возможно сделать такую проверку в общем случае, для
> > любых плагинов к любой программе.
> 
> Я был не совсем прав: этот плагин слинкован с библиотеками Qt5, и он
> падает при
> 
> $ ldd -r
> /usr/lib64/qt5/plugins/platforminputcontexts/libuimplatforminputcontextplugin.so | grep symbol | head -n 3
> symbol _ZTI21QPlatformInputContext, version Qt_5 not defined in file libQt5Gui.so.5 with link time reference (/usr/lib64/qt5/plugins/platforminputcontexts/libuimplatforminputcontextplugin.so)
> symbol _ZNK21QPlatformInputContext13hasCapabilityENS_10CapabilityE, version Qt_5 not defined in file libQt5Gui.so.5 with link time reference (/usr/lib64/qt5/plugins/platforminputcontexts/libuimplatforminputcontextplugin.so)
> symbol _ZN21QPlatformInputContext16staticMetaObjectE, version Qt_5 not defined in file libQt5Gui.so.5 with link time reference (/usr/lib64/qt5/plugins/platforminputcontexts/libuimplatforminputcontextplugin.so)
> 
> это потому что некое множество символов сменило вершонинг с Qt_5 на
> Qt_5_PRIVATE_API, при этом по setversion все зависимости остались
> удовлетворёнными.
> 
> Из этого можно сделать печальное предположение, что сейчас в Сизифе
> вероятно находится немало нерабочих Qt5-приложений.

Точнее, subj должен теперь быть такой.

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


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