Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#12404 closed Bug Report - General (Fixed)

Mythfrontend segfaults due to libQtGui.so.4 with Qt 5.4

Reported by: yiannividalis@… Owned by:
Priority: minor Milestone: 0.28
Component: Qt5 issues Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Hi, after #12399 was fixed, I compiled mythtv successfully, but the frontend segfaults without showing on screen.

I recompiled with debug symbols and I have the gdb.txt result. It seems that /usr/lib/libQtGui.so.4 is to blame.

I can however run mythtv-setup.

I am attaching gdb.txt and mythfrontend.log with --loglevel debug.

Attachments (3)

gdb.txt (21.1 KB) - added by yiannividalis@… 5 years ago.
mythfrontend.20150307075401.9298.log (11.0 KB) - added by yiannividalis@… 5 years ago.
log with loglevel debug
mythtv-plugins-linked to qt4 instead of qt5.txt (13.8 KB) - added by yiannividalis@… 5 years ago.

Download all attachments as: .zip

Change History (14)

Changed 5 years ago by yiannividalis@…

Attachment: gdb.txt added

Changed 5 years ago by yiannividalis@…

log with loglevel debug

comment:1 Changed 5 years ago by stuartm

Did you recompile the plugins for QT5? Try manually deleting all the plugin .so files from /usr/[local/]lib/mythtv/plugins/

comment:2 Changed 5 years ago by stuartm

Status: newinfoneeded_new

comment:3 Changed 5 years ago by yiannividalis@…

I removed the whole /usr/lib/mythtv folder and recompiled without success. There's no /usr/local/lib/mythtv folder, I install it under /usr/lib.

comment:4 Changed 5 years ago by stuartm

It's somehow managed to link the QT4 libs instead of the QT5 libs

comment:5 Changed 5 years ago by yiannividalis@…

If it's of any help, here's a list of all the qt4 libs the plugins are linked against. I cleaned up the false positive '4' in the 0x values.

yianni@eagle1:~> ldd /usr/lib/mythtv/plugins/libmytharchive.so | grep -i qt | grep 4
        libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0xb44fc000)
        libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xb44b7000)
        libQtOpenGL.so.4 => /usr/lib/libQtOpenGL.so.4 (0xb43b8000)
        libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb38ed000)
        libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb37ab000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb34bd000)
yianni@eagle1:~> ldd /usr/lib/mythtv/plugins/libmythbrowser.so | grep -i qt | grep 4
        libQtWebKit.so.4 => /usr/lib/libQtWebKit.so.4 (0xb28bc000)
        libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0xb287b000)
        libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xb2836000)
        libQtOpenGL.so.4 => /usr/lib/libQtOpenGL.so.4 (0xb2737000)
        libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb1c6d000)
        libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb1b2a000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb183c000)
yianni@eagle1:~> ldd /usr/lib/mythtv/plugins/libmythgallery.so | grep -i qt | grep 4
        libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0xb5093000)
        libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xb504e000)
        libQtOpenGL.so.4 => /usr/lib/libQtOpenGL.so.4 (0xb4f4f000)
        libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb4485000)
        libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb4343000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb4054000)
yianni@eagle1:~> ldd /usr/lib/mythtv/plugins/libmythgame.so | grep -i qt | grep 4
        libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0xb5097000)
        libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xb5051000)
        libQtOpenGL.so.4 => /usr/lib/libQtOpenGL.so.4 (0xb4f52000)
        libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb4488000)
        libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb4346000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb4058000)
yianni@eagle1:~> ldd /usr/lib/mythtv/plugins/libmythmusic.so | grep -i qt | grep 4
        libQtWebKit.so.4 => /usr/lib/libQtWebKit.so.4 (0xb2f96000)
        libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0xb2f55000)
        libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xb2f0f000)
        libQtOpenGL.so.4 => /usr/lib/libQtOpenGL.so.4 (0xb2e10000)
        libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb2346000)
        libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb2204000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb1f16000)
  yianni@eagle1:~> ldd /usr/lib/mythtv/plugins/libmythnetvision.so | grep -i qt | grep 4
        libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0xb4f77000)
        libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xb4f32000)
        libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb4468000)
        libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb4326000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb4038000)
yianni@eagle1:~> ldd /usr/lib/mythtv/plugins/libmythnews.so | grep -i qt | grep 4
        libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0xb5143000)
        libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xb50fd000)
        libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb4633000)
        libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb44f1000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb4203000)
yianni@eagle1:~> ldd /usr/lib/mythtv/plugins/libmythweather.so | grep -i qt | grep 4
        libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0xb511c000)
        libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xb50d6000)
        libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb460c000)
        libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb44ca000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb41dc000)
yianni@eagle1:~> ldd /usr/lib/mythtv/plugins/libmythzoneminder.so | grep -i qt | grep 4
        libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0xb483a000)
        libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xb47f4000)
        libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb3d2a000)
        libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb3be8000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb38fa000)

Please let me know if I can provide any more debugging info.

comment:6 Changed 5 years ago by stuartm

From that it's clear that the plugins are being built against QT4, not QT5 - did you specify --qmake= to the plugins configure?

comment:7 Changed 5 years ago by yiannividalis@…

Nothing I declared explicitly:

yianni@eagle1:~/mythtv-git/mythplugins> ./configure --previous
Options:  --prefix=/usr --enable-mythgallery 

Configuration settings: 
 
        qmake          /usr/bin/qmake-qt5
 
        MythArchive    plugin will be built
        MythBrowser    plugin will be built
        MythGallery    plugin will be built
        MythGame       plugin will be built
        MythMusic      plugin will be built
        MythNetvision  plugin will be built
        MythNews       plugin will be built
        MythWeather    plugin will be built
        MythZoneMinder plugin will be built
        OpenGL         support will be included in MythGallery
        EXIF           support will be included in MythGallery
        Dcraw          support will be included in MythGallery
        libcdio        support will be included in MythMusic
        FFTW v.3       support will be included in MythMusic


comment:8 Changed 5 years ago by yiannividalis@…

In comment 5, by prunning the results that had 4 in the 0x values, it hid that the plugins are linked against qt5 libs, too. I am attaching a file with the full results to keep the comment short.

Changed 5 years ago by yiannividalis@…

comment:9 Changed 5 years ago by yiannividalis@…

Ok, after some digging I realised that it's the "qmake mythplugins.pro" command included in the built script I use that was building the plugins against the qt4 libraries. I'm sorry I didn't look earlier but I've been using it for years. Also, the command is in the installation instructions for the mythplugins in github. Maybe it should be changed to avoid similar problems by others?

I can now build the plugins and run mythtv without problem, so please close this ticket as fixed.

comment:10 Changed 5 years ago by Stuart Auchterlonie

Milestone: unknown0.28
Resolution: Fixed
Status: infoneeded_newclosed

Thanks for the update. Closing now.

comment:11 Changed 5 years ago by Stuart Auchterlonie

Component: MythTV - GeneralQt5 issues
Note: See TracTickets for help on using tickets.