Bug 385301 - Does not build without wayland egl
Summary: Does not build without wayland egl
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: egl (other bugs)
Version First Reported In: git master
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-10-02 16:59 UTC by Fabian Vogt
Modified: 2017-10-03 17:20 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Fabian Vogt 2017-10-02 16:59:28 UTC
On openSUSE Leap 42.3, Wayland is not enabled for KWin as Xwayland is too old.
So it is not part of the build requirements:

[   63s] -- Wayland: Egl requires Client
[   63s] -- Found Wayland_Client: /usr/lib64/libwayland-client.so (found version "1.13.0") 
[   63s] -- Found Wayland_Cursor: /usr/lib64/libwayland-cursor.so (found version "1.13.0") 
[   63s] -- Could NOT find Wayland_Egl (missing:  Wayland_Egl_LIBRARY Wayland_Egl_INCLUDE_DIR) 
[   63s] -- Found Wayland: /usr/lib64/libwayland-client.so;/usr/lib64/libwayland-cursor.so (found suitable version "1.13.0", minimum required is "1.2") found components:  Cursor missing components:  Egl

[   69s] -- The following features have been disabled:
[   69s] 
[   69s]  * Wayland::EGL , Enable building of Wayland backend and QPA with EGL support.

[   69s] -- The following OPTIONAL packages have not been found:
[   69s] 
[   69s]  * gbm , Mesa gbm library. , <http://www.mesa3d.org>
[   69s]    Required for egl ouput of drm backend.
[   69s]  * libhybris , libhybris allows to run bionic-based HW adaptations in glibc systems. , <https://github.com/libhybris/libhybris>
[   69s]    Required for libhybris backend

This results in a build failure as it still tries to build the backend:

[  322s] cd "/home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390/build/plugins/qpa" && /usr/bin/g++-6   -DKCOREADDONS_LIB -DKWinQpaPlugin_EXPORTS -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_DISABLE_DEPRECATED_BEFORE=0 -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_QML_LIB -DQT_QUICK_LIB -DQT_SCRIPT_LIB -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DQT_X11EXTRAS_LIB -DQT_XML_LIB -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I"/home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390/build/plugins/qpa" -I"/home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390/plugins/qpa" -I"/home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390/platformsupport" -I"/home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390/tabbox" -I"/home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390/effects" -I"/home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390/libkwineffects" -I"/home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390/build" -I"/home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390/build/libkwineffects" -I"/home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390" -I"/home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390/build/effects" -isystem /usr/include/pkg/libxkbcommon -I/usr/include/qt5/QtCore/5.9.1 -I/usr/include/qt5/QtCore/5.9.1/QtCore -I/usr/include/qt5/QtGui/5.9.1 -I/usr/include/qt5/QtGui/5.9.1/QtGui -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtDBus -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/KF5/KConfigCore -isystem /usr/include/KF5 -isystem /usr/include/KF5/KCoreAddons -isystem /usr/include/KF5/KWindowSystem -isystem /usr/include/qt5/QtConcurrent -isystem /usr/include/qt5/QtQuick -isystem /usr/include/qt5/QtQml -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtScript -isystem /usr/include/KF5/KConfigWidgets -isystem /usr/include/KF5/KCodecs -isystem /usr/include/KF5/KWidgetsAddons -isystem /usr/include/KF5/KConfigGui -isystem /usr/include/qt5/QtXml -isystem /usr/include/KF5/KAuth -isystem /usr/include/KF5/KGlobalAccel -isystem /usr/include/qt5/QtX11Extras -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5/KNotifications -isystem /usr/include/KF5/KPackage -isystem /usr/include/KF5/Plasma -isystem /usr/include/KF5/KService -isystem /usr/include/KDecoration2 -isystem /usr/include/KScreenLocker -isystem /usr/include/KF5/KActivities -isystem /usr/include/KF5/KWayland/Client -isystem /usr/include/KF5/KWayland/Server -isystem /usr/include/wayland -isystem /usr/include/libinput -isystem /usr/include/qt5/QtFontDatabaseSupport/5.9.1 -isystem /usr/include/qt5/QtThemeSupport/5.9.1 -isystem /usr/include/qt5/QtEventDispatcherSupport/5.9.1  -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -DNDEBUG -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 -Wvla -Wdate-time -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -fPIC -std=gnu++14 -o CMakeFiles/KWinQpaPlugin.dir/main.cpp.o -c "/home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390/plugins/qpa/main.cpp"
[  322s] CMakeFiles/KWinWaylandVirtualBackend.dir/egl_gbm_backend.cpp.o: In function `KWin::EglGbmBackend::~EglGbmBackend()':
[  322s] /home/abuild/rpmbuild/BUILD/kwin-5.10.90git~20171001T152640~252980390/plugins/platforms/virtual/egl_gbm_backend.cpp:60: undefined reference to `KWin::AbstractEglBackend::cleanup()'
Comment 1 Martin Flöser 2017-10-03 16:52:08 UTC
Is this only in the virtual backend or is it also the drm backend?
Comment 2 Martin Flöser 2017-10-03 17:18:26 UTC
The problem is not related to Wayland-egl. It's an undefined reference from plugins/platforms/virtual/egl_gbm_backend.cpp to platformsupport/scenes/opengl/abstract_egl_backend.cpp. Both are compiled unconditionally.

The actual problem is HAVE_GBM missing.
Comment 3 Martin Flöser 2017-10-03 17:20:44 UTC
Git commit c359fc076df40fc9a7ceda897971c246c6ccadff by Martin Flöser.
Committed on 03/10/2017 at 17:19.
Pushed by graesslin into branch 'master'.

[platforms/virtual] Always link SceneOpenGLBackend

Egl support is not optional in virtual platform, so always compile it in.

M  +2    -2    plugins/platforms/virtual/CMakeLists.txt

https://commits.kde.org/kwin/c359fc076df40fc9a7ceda897971c246c6ccadff