Bug 375290 - Builds with Qt 5.7.1 fail on tests with 'kdeplatformtheme.cpp:333: undefined reference to `QDBusMenuBar::windowChanged(QWindow*, QWindow*)'
Summary: Builds with Qt 5.7.1 fail on tests with 'kdeplatformtheme.cpp:333: undefined ...
Status: RESOLVED FIXED
Alias: None
Product: plasma-integration
Classification: Plasma
Component: general (show other bugs)
Version: master
Platform: Kubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Martin Flöser
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-19 10:43 UTC by Rik Mills
Modified: 2017-01-23 12:00 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rik Mills 2017-01-19 10:43:28 UTC
On kubuntu CI with Qt 5.7.1 build of current master fails with

[ 98%] Linking CXX executable kdeplatformtheme_unittest
cd /<<BUILDDIR>>/plasma-integration-5.8.5+p17.04+git20170119.0951/obj-x86_64-linux-gnu/autotests && /usr/bin/cmake -E cmake_link_script CMakeFiles/kdeplatformtheme_unittest.dir/link.txt --verbose=1
/usr/bin/c++   -g -O2 -fdebug-prefix-map=/<<BUILDDIR>>/plasma-integration-5.8.5+p17.04+git20170119.0951=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -pedantic  -Wl,--enable-new-dtags -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -Wl,--no-undefined CMakeFiles/kdeplatformtheme_unittest.dir/kdeplatformtheme_unittest.cpp.o CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/kdeplatformtheme.cpp.o CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/kfontsettingsdata.cpp.o CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/khintssettings.cpp.o CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/kdeplatformfiledialoghelper.cpp.o CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/kdeplatformfiledialogbase.cpp.o CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/kdeplatformsystemtrayicon.cpp.o CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/kdirselectdialog.cpp.o CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/kfiletreeview.cpp.o CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/kwaylandintegration.cpp.o CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/x11integration.cpp.o CMakeFiles/kdeplatformtheme_unittest.dir/kdeplatformtheme_unittest_automoc.cpp.o  -o kdeplatformtheme_unittest -rdynamic /usr/lib/x86_64-linux-gnu/libQt5Test.so.5.7.1 /usr/lib/x86_64-linux-gnu/libQt5PlatformSupport.a /usr/lib/x86_64-linux-gnu/libKF5KIOFileWidgets.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5Notifications.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5WaylandClient.so.5.31.0 /usr/lib/x86_64-linux-gnu/libxcb.so /usr/lib/x86_64-linux-gnu/libKF5KIOWidgets.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5KIOCore.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5JobWidgets.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5Service.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5Completion.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5Bookmarks.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5IconThemes.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5ConfigWidgets.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5ConfigGui.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5Auth.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5I18n.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5WidgetsAddons.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5ItemViews.so.5.31.0 /usr/lib/x86_64-linux-gnu/libQt5Network.so.5.7.1 /usr/lib/x86_64-linux-gnu/libKF5Solid.so.5.31.0 /usr/lib/x86_64-linux-gnu/libQt5Xml.so.5.7.1 /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.7.1 /usr/lib/x86_64-linux-gnu/libKF5ConfigCore.so.5.31.0 /usr/lib/x86_64-linux-gnu/libKF5WindowSystem.so.5.31.0 /usr/lib/x86_64-linux-gnu/libQt5X11Extras.so.5.7.1 /usr/lib/x86_64-linux-gnu/libKF5Codecs.so.5.31.0 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.7.1 /usr/lib/x86_64-linux-gnu/libKF5CoreAddons.so.5.31.0 /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.7.1 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.7.1 
CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/kdeplatformtheme.cpp.o: In function `KdePlatformTheme::createPlatformMenuBar() const':
./obj-x86_64-linux-gnu/autotests/./src/platformtheme/kdeplatformtheme.cpp:333: undefined reference to `QDBusMenuBar::windowChanged(QWindow*, QWindow*)'
collect2: error: ld returned 1 exit status
autotests/CMakeFiles/kdeplatformtheme_unittest.dir/build.make:385: recipe for target 'autotests/kdeplatformtheme_unittest' failed
make[4]: *** [autotests/kdeplatformtheme_unittest] Error 1
make[4]: Leaving directory '/<<BUILDDIR>>/plasma-integration-5.8.5+p17.04+git20170119.0951/obj-x86_64-linux-gnu'
CMakeFiles/Makefile2:427: recipe for target 'autotests/CMakeFiles/kdeplatformtheme_unittest.dir/all' failed
make[3]: *** [autotests/CMakeFiles/kdeplatformtheme_unittest.dir/all] Error 2
make[3]: *** Waiting for unfinished jobs....
Comment 1 Martin Flöser 2017-01-19 16:09:27 UTC
This should be fixed with latest latest master. At least build.kde.org is green again for both master and Plasma/5.9
Comment 2 Rik Mills 2017-01-19 16:45:56 UTC
(In reply to Martin Gräßlin from comment #1)
> This should be fixed with latest latest master. At least build.kde.org is
> green again for both master and Plasma/5.9

No, not fixed herea as far as I can see.

Your CI from it's build log says it has Qt 5.7.0

Found Qt5PlatformSupport: /srv/jenkins/install/ubuntu/x86_64/g++/kf5-qt5/qt5/inst/usr/lib/libQt5PlatformSupport.a (found version "5.7.0")

while KCI has 5.7.1 as referenced in the bug title

I'm not the greatest with this code, but seem as if this is being triggered for failure by code includes by the conditionals like

#if QT_VERSION > QT_VERSION_CHECK(5,7,0)

for example in kdeplatformtheme.cpp ?

Hence it fails here with Qt 5.7.1, but does not on the KDE CI?
Comment 3 David Edmundson 2017-01-20 00:02:41 UTC
Git commit 184d8b4fa947726636a5251f333b80429001455b by David Edmundson.
Committed on 20/01/2017 at 00:02.
Pushed by davidedmundson into branch 'Plasma/5.9'.

Enable QDBusMenuBar when compiling with Qt 5.7.0

M  +2    -2    src/platformtheme/kdeplatformtheme.cpp
M  +1    -1    src/platformtheme/kdeplatformtheme.h

https://commits.kde.org/plasma-integration/184d8b4fa947726636a5251f333b80429001455b
Comment 4 David Edmundson 2017-01-20 00:03:20 UTC
Yep, you're right. Hopefully fixed.
Comment 5 Rik Mills 2017-01-20 08:06:43 UTC
(In reply to David Edmundson from comment #4)
> Yep, you're right. Hopefully fixed.

Afraid not.

That tweak to logic just makes it fail with Qt 5.7.0 on KDE CI in the same way it does with Qt 5.7.1 on kubuntu CI.

The original issue/failure remains.

Now from you CI log:

00:05:15 Linking CXX executable kdeplatformtheme_unittest
00:05:15 CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/kdeplatformtheme.cpp.o: In function `KdePlatformTheme::createPlatformMenuBar() const':
00:05:15 /home/jenkins/sources/plasma-integration/kf5-qt5/src/platformtheme/kdeplatformtheme.cpp:362: undefined reference to `QDBusMenuBar::windowChanged(QWindow*, QWindow*)'
00:05:15 collect2: error: ld returned 1 exit status
00:05:15 autotests/CMakeFiles/kdeplatformtheme_unittest.dir/build.make:362: recipe for target 'autotests/kdeplatformtheme_unittest' failed
00:05:15 make[2]: *** [autotests/kdeplatformtheme_unittest] Error 1
00:05:15 CMakeFiles/Makefile2:222: recipe for target 'autotests/CMakeFiles/kdeplatformtheme_unittest.dir/all' failed
00:05:15 make[1]: *** [autotests/CMakeFiles/kdeplatformtheme_unittest.dir/all] Error 2
Comment 6 Rik Mills 2017-01-22 08:55:14 UTC
Same failure now on Neon CI.

http://build.neon.kde.org/job/xenial_unstable_plasma_plasma-integration_bin_amd64/67/consoleFull

13:43:33 CMakeFiles/kdeplatformtheme_unittest.dir/__/src/platformtheme/kdeplatformtheme.cpp.o: In function `KdePlatformTheme::createPlatformMenuBar() const':
13:43:33 /workspace/build/src/platformtheme/kdeplatformtheme.cpp:333: undefined reference to `QDBusMenuBar::windowChanged(QWindow*, QWindow*)'
13:43:33 collect2: error: ld returned 1 exit status
13:43:33 autotests/CMakeFiles/kdeplatformtheme_unittest.dir/build.make:385: recipe for target 'autotests/kdeplatformtheme_unittest' failed
13:43:33 make[4]: *** [autotests/kdeplatformtheme_unittest] Error 1
13:43:33 make[4]: Leaving directory '/workspace/build/obj-x86_64-linux-gnu'
13:43:33 CMakeFiles/Makefile2:427: recipe for target 'autotests/CMakeFiles/kdeplatformtheme_unittest.dir/all' failed
13:43:33 make[3]: *** [autotests/CMakeFiles/kdeplatformtheme_unittest.dir/all] Error 2
13:43:33 make[3]: Leaving directory '/workspace/build/obj-x86_64-linux-gnu'
13:43:33 Makefile:141: recipe for target 'all' failed
13:43:33 make[2]: *** [all] Error 2
Comment 7 Christoph Feck 2017-01-23 03:26:39 UTC
QDBusMenuBar::windowChanged is not part of either Qt 5.7 or Qt 5.8.


https://phabricator.kde.org/D3085 says there is a fork of QDBusMenuBar included, but I do not see it committed.
Comment 8 Christoph Feck 2017-01-23 03:31:13 UTC
Sorry, actually it is committed, so the issue is that the build system does not pick the local qdbusmenubar_p.h header.
Comment 9 Rik Mills 2017-01-23 12:00:51 UTC
New rebuilds suggest this has been fixed in

https://cgit.kde.org/plasma-integration.git/commit/?id=026277d1f0e383ac759c4f931f3fd04af11002ba