Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 703696 - kde-frameworks/kwayland-5.64.0 w/ Qt 5.14.0: error: field ‘outputs’ has incomplete type ‘QHash<KWayland::Server::OutputInterface*, KWayland::Server::XdgOutputInterface*>’
Summary: kde-frameworks/kwayland-5.64.0 w/ Qt 5.14.0: error: field ‘outputs’ has incom...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard: fixed in 5.65.0
Keywords:
Depends on:
Blocks: qt-5.14
  Show dependency tree
 
Reported: 2019-12-25 01:05 UTC by m.manico
Modified: 2019-12-25 01:30 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description m.manico 2019-12-25 01:05:01 UTC
Please note closely related bugs in advance:
https://bugs.gentoo.org/703574
https://bugs.gentoo.org/703586

---

I have keyworded dev-qt as follows:
dev-qt/*:5 ~amd64

plasma or kde packages are NOT keyworded.

Emerging kde-frameworks/kwayland (and other kde-frameworks/* packages as well) will fail as noted in [1] with errors about incomplete fields or types (which are derived from qt).

The following commands did not help:
emerge -1avu $(qlist -CI dev-qt/*) <- successful
emerge -av1 $(qlist -IC kde-frameworks) <- fails

After some chat with tdr and josef64 (thanks!) I believe that kde-frameworks 5.64 is broken by dev-qt 5.14.

[1]

[300/344] /usr/bin/x86_64-pc-linux-gnu-g++ -DKF5WaylandServer_EXPORTS -DKWAYLANDSERVER_DISABLE_DEPRECATED_BEFORE_AND_AT=0x0 -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x050d00 -DQT_GUI_LIB -DQT_NO_CAST_F$
OM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -D_GNU_SOURCE -D_LARGEFILE64_$
OURCE -Isrc/server -I/var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server -Isrc/server/KF5WaylandServer_autogen/include -I. -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5$
mkspecs/linux-g++ -isystem /usr/include/qt5/QtConcurrent  -DQT_NO_DEBUG -DNDEBUG -O2 -pipe -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virt$
al -Werror=return-type -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -fdiagnostics-color=always -pedantic -Wzero-as-null-pointer-constant -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -fPIC -std=gnu++11 -MD -MT src/server/CMakeFiles/KF5WaylandServer.d$
r/xdgoutput_interface.cpp.o -MF src/server/CMakeFiles/KF5WaylandServer.dir/xdgoutput_interface.cpp.o.d -o src/server/CMakeFiles/KF5WaylandServer.dir/xdgoutput_interface.cpp.o -c /var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server/xdgoutp$
t_interface.cpp                                                                                                                      
FAILED: src/server/CMakeFiles/KF5WaylandServer.dir/xdgoutput_interface.cpp.o                                  
/usr/bin/x86_64-pc-linux-gnu-g++ -DKF5WaylandServer_EXPORTS -DKWAYLANDSERVER_DISABLE_DEPRECATED_BEFORE_AND_AT=0x0 -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x050d00 -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII $
DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Is$
c/server -I/var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server -Isrc/server/KF5WaylandServer_autogen/include -I. -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/l$
nux-g++ -isystem /usr/include/qt5/QtConcurrent  -DQT_NO_DEBUG -DNDEBUG -O2 -pipe -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werro$
=return-type -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -fdiagnostics-color=always -pedantic -Wzero-as-null-pointer-constant -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -fPIC -std=gnu++11 -MD -MT src/server/CMakeFiles/KF5WaylandServer.dir/xdgoutp$
t_interface.cpp.o -MF src/server/CMakeFiles/KF5WaylandServer.dir/xdgoutput_interface.cpp.o.d -o src/server/CMakeFiles/KF5WaylandServer.dir/xdgoutput_interface.cpp.o -c /var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server/xdgoutput_interfa$
e.cpp                                                                                                                                
/var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server/xdgoutput_interface.cpp:37:50: error: field ‘outputs’ has incomplete type ‘QHash<KWayland::Server::OutputInterface*, KWayland::Server::XdgOutputInterface*>’
   37 |     QHash<OutputInterface*, XdgOutputInterface*> outputs;                                                                    
      |                                                  ^~~~~~~                                                                     
In file included from /usr/include/qt5/QtCore/qglobal.h:1290,                                                                        
                 from /usr/include/qt5/QtCore/qnamespace.h:43,                                                                       
                 from /usr/include/qt5/QtCore/qobjectdefs.h:48,                                                                      
                 from /usr/include/qt5/QtCore/qobject.h:46,                                                                          
                 from /usr/include/qt5/QtCore/QObject:1,                                                                             
                 from /var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server/global.h:23,                   
                 from /var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server/xdgoutput_interface.h:23,      
                 from /var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server/xdgoutput_interface.cpp:20:    
/usr/include/qt5/QtCore/qtypeinfo.h:242:1: note: declaration of ‘class QHash<KWayland::Server::OutputInterface*, KWayland::Server::XdgOutputInterface*>’
  242 | Q_DECLARE_MOVABLE_CONTAINER(QHash);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server/xdgoutput_interface.cpp: In lambda function:
/var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server/xdgoutput_interface.cpp:150:9: error: ‘xdgOutput’ is not captured
  150 |         xdgOutput->d->resourceDisconnected(iface);
      |         ^~~~~~~~~
/var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server/xdgoutput_interface.cpp:149:80: note: the lambda has no capture-default
  149 |     connect(iface, &XdgOutputV1Interface::unbound, xdgOutput, [xdgOutput, iface]() {
      |                                                                                ^
/var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server/xdgoutput_interface.cpp:147:10: note: ‘<typeprefixerror>xdgOutput’ declared here
  147 |     auto xdgOutput = d->outputs[output];
      |          ^~~~~~~~~
[301/344] /usr/bin/x86_64-pc-linux-gnu-g++ -DKF5WaylandServer_EXPORTS -DKWAYLANDSERVER_DISABLE_DEPRECATED_BEFORE_AND_AT=0x0 -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x050d00 -DQT_GUI_LIB -DQT_NO_CAST_F$
OM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -D_GNU_SOURCE -D_LARGEFILE64_$
OURCE -Isrc/server -I/var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/server -Isrc/server/KF5WaylandServer_autogen/include -I. -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5$
mkspecs/linux-g++ -isystem /usr/include/qt5/QtConcurrent  -DQT_NO_DEBUG -DNDEBUG -O2 -pipe -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virt$
al -Werror=return-type -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -fdiagnostics-color=always -pedantic -Wzero-as-null-pointer-constant -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -fPIC -std=gnu++11 -MD -MT src/server/CMakeFiles/KF5WaylandServer.d$
r/xdgforeign_v2_interface.cpp.o -MF src/server/CMakeFiles/KF5WaylandServer.dir/xdgforeign_v2_interface.cpp.o.d -o src/server/CMakeFiles/KF5WaylandServer.dir/xdgforeign_v2_interface.cpp.o -c /var/tmp/portage/kde-frameworks/kwayland-5.64.0/work/kwayland-5.64.0/src/se$
ver/xdgforeign_v2_interface.cpp
Comment 1 Andreas Sturmlechner gentoo-dev 2019-12-25 01:14:51 UTC
Problem is caused by mixing stable (KF 5.64) and unstable (Qt 5.14) packages. This is not recommended. It makes much more sense to upgrade to Frameworks 5.65.0.
Comment 2 Larry the Git Cow gentoo-dev 2019-12-25 01:27:47 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2cc3c6f1a63ffbf57e2e99974c379c012d0cb4b5

commit 2cc3c6f1a63ffbf57e2e99974c379c012d0cb4b5
Author:     Andreas Sturmlechner <asturm@gentoo.org>
AuthorDate: 2019-12-25 01:19:59 +0000
Commit:     Andreas Sturmlechner <asturm@gentoo.org>
CommitDate: 2019-12-25 01:27:27 +0000

    kde-frameworks/kwayland: Fix 5.64.0 build with Qt 5.14.0
    
    Upstream commit c4a49fbf2d5dd63659ed0c679ce180eda89a6d0d
    
    Reported-by: m.manico@gmx.at
    Closes: https://bugs.gentoo.org/703696
    Package-Manager: Portage-2.3.83, Repoman-2.3.20
    Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>

 .../kwayland/files/kwayland-5.64.0-qt-5.14.0.patch | 24 ++++++++++++++++++++++
 kde-frameworks/kwayland/kwayland-5.64.0.ebuild     |  2 ++
 2 files changed, 26 insertions(+)
Comment 3 Andreas Sturmlechner gentoo-dev 2019-12-25 01:30:00 UTC
If you insist on combining stable and unstable then feel free to submit PRs for further failing packages you may encounter using the commit in comment 1 as a template. Otherwise, backporting patch after patch for issues that are known to be fixed in readily available ~arch versions is pointless.