Bugzilla – Bug 1216285
Virtualbox stopped working with undefined symbol: _ZN11QToolButton13checkStateSetEv, version Qt_5
Last modified: 2023-10-17 18:07:11 UTC
Summary: With the latest updates from kmp backport https://download.opensuse.org/repositories/Kernel:/stable:/Backport:/KMP/standard/ virtualbox does not start anymore, but dies with undefined symbol err. msg. Reproduce: Have openSUSE Leap 15.4 installed with latest backport kernel 6.5.7-lp155.3.g9fcbf99-default, as well as latest virtualbox-7.0.10-lp155.5.12.x86_64 from openSUSE kmp backport repo and no missing dependencies claimed by zypper. Start VirtualBox. Expected behavior: VirtualBox Qt-GUI starts up. Actual behavior: VirtualBox crashes, displaying these three lines if started from the CLI ~>VirtualBox Warning: program compiled against libxml 210 using older 209 Warning: program compiled against libxml 210 using older 209 /usr/lib/virtualbox/VirtualBox6: symbol lookup error: /usr/lib/virtualbox/UICommon.so: undefined symbol: _ZN11QToolButton13checkStateSetEv, version Qt_5 ---- There are claims, that `_ZN11QToolButton13checkStateSetEv` might be symbol from the `libQt5Widgets` library. But on my system, with Qt version 5.15.2 a symbol dump provides no no evidence this for `libQt5Widgets.so`.
In the meantime, there might be some additional info to add here: The missing symbol, i.e., _ZN11QToolButton13checkStateSetEv refers to the "void QToolButton::checkStateSet()" member of the QToolButton Class. This member has only been implemented, starting with Qt 6.2 This is not the Qt version of openSUSE 15.4, which is Qt ver. 5.15.2 latest. This seems to imply, that the current backports of virtualbox have been compiled against the 'wrong' version of Qt ...? Can this please be fixed?
Ok., so yet even more info and a temporary fix: After realizing, that it seems to be a libQt version mismatch between the kmp backport repo and openSUSE's main repos, I have induced a weird package juggling ... which seems to solve the issue for now. 1) keep the virtualbox-kmp-default kernel modules for VirtualBox from from the kmp backport repo, such as to fit the kernel from the kernel backport repo, however, 2) install the latest version of virtualbox, virtualbox-host-source, and virtualbox-qt, i.e. 7.0.10-lp154.2.38 at present, from openSUSE's Main Update Repo. Currently this works for me, i.e. VirtualBox starts up as usual, but I don't know if this is a proper action and if it should be/remain like that.