Hi KDE developer, I can reproduce QTBUG-2597 when building kglobalaccel 5.49 with Qt 5.6 for mips64el: $ cmake .. -DCMAKE_INSTALL_PREFIX=/usr \ > -DCMAKE_INSTALL_LIBDIR=lib64 \ > -DBUILD_TESTING=ON \ > -DBUILD_QCH=ON – The C compiler identification is GNU 4.9.3 – The CXX compiler identification is GNU 4.9.3 – Check for working C compiler: /usr/lib64/ccache/cc – Check for working C compiler: /usr/lib64/ccache/cc – works – Detecting C compiler ABI info – Detecting C compiler ABI info - done – Check for working CXX compiler: /usr/lib64/ccache/c++ – Check for working CXX compiler: /usr/lib64/ccache/c++ – works – Detecting CXX compiler ABI info – Detecting CXX compiler ABI info - done – – Looking for _GLIBC_ – Looking for _GLIBC_ - found – Performing Test _OFFT_IS_64BIT – Performing Test _OFFT_IS_64BIT - Success – Could not set up the appstream test. appstreamcli is missing. – Found PkgConfig: /usr/bin/pkg-config (found version "0.28") – Found XCB_XCB: /usr/lib64/libxcb.so (found version "1.11") – Found XCB_KEYSYMS: /usr/lib64/libxcb-keysyms.so (found version "0.3.9") – Found XCB_XTEST: /usr/lib64/libxcb-xtest.so (found version "1.11") – Found XCB: /usr/lib64/libxcb.so;/usr/lib64/libxcb-keysyms.so;/usr/lib64/libxcb-xtest.so (found version "1.11") found components: XCB KEYSYMS XTEST – Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so – Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found – Looking for gethostbyname – Looking for gethostbyname - found – Looking for connect – Looking for connect - found – Looking for remove – Looking for remove - found – Looking for shmat – Looking for shmat - found – Looking for IceConnectionNumber in ICE – Looking for IceConnectionNumber in ICE - found – Found X11: /usr/lib64/libX11.so – Performing Test COMPILER_HAS_HIDDEN_VISIBILITY – Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success – Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY – Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success – Performing Test COMPILER_HAS_DEPRECATED_ATTR – Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success – Found Doxygen: /usr/bin/doxygen (found suitable version "1.8.8", minimum required is "1.8.8") – Found QHelpGenerator executable: /usr/lib64/qt5/bin/qhelpgenerator-qt5 – No such target Qt5Widgets_QCH defined when calling ecm_add_qch(), ignored. – No such target Qt5DBus_QCH defined when calling ecm_add_qch(), ignored. – generating /home/loongson/project/kde/kglobalaccel/build/src/runtime/org.kde.kglobalaccel.service from /usr/lib64/cmake/KF5DBusAddons/KF5dbus.service.in – – The following features have been enabled: QCH , API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop) – The following OPTIONAL packages have been found: PkgConfig XCB , X protocol C-language Binding , <http://xcb.freedesktop.org> X11 – The following REQUIRED packages have been found: ECM (required version >= 5.49.0) , Extra CMake Modules. , <https://projects.kde.org/projects/kdesupport/extra-cmake-modules> Qt5DBus Qt5Gui (required version >= 5.6.0) Qt5Widgets KF5Config (required version >= 5.49.0) KF5CoreAddons (required version >= 5.49.0) KF5Crash (required version >= 5.49.0) KF5DBusAddons (required version >= 5.49.0) KF5WindowSystem (required version >= 5.49.0) Qt5X11Extras Doxygen (required version >= 1.8.8) Needed for API dox QCH file generation QHelpGenerator , Part of Qt5 tools Needed for API dox QCH file generation Qt5Test Qt5 (required version >= 5.6.0) – Configuring done – Generating done – Build files have been written to: /home/loongson/project/kde/kglobalaccel/build [loongson@localhost build]$ make Scanning dependencies of target KF5GlobalAccel_automoc [ 2%] Automatic moc for target KF5GlobalAccel Generating moc_kglobalaccel.cpp Generating moc_kglobalshortcutinfo.cpp [ 2%] Built target KF5GlobalAccel_automoc [ 5%] Generating kglobalaccel_component_interface.cpp, kglobalaccel_component_interface.h [ 8%] Generating kglobalaccel_interface.cpp, kglobalaccel_interface.h Got unknown type `ai' You should add <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="<type>"/> to the XML description src/CMakeFiles/KF5GlobalAccel.dir/build.make:58: recipe for target 'src/kglobalaccel_interface.cpp' failed make[2]: *** [src/kglobalaccel_interface.cpp] Error 1 CMakeFiles/Makefile2:297: recipe for target 'src/CMakeFiles/KF5GlobalAccel.dir/all' failed make[1]: *** [src/CMakeFiles/KF5GlobalAccel.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: *** [all] Error 2 Workaround is: diff --git a/src/org.kde.KGlobalAccel.xml b/src/org.kde.KGlobalAccel.xml index 818360b..08cf621 100644 --- a/src/org.kde.KGlobalAccel.xml +++ b/src/org.kde.KGlobalAccel.xml @@ -6,6 +6,7 @@ <arg name="actionId" type="as" direction="out"/> <arg name="newKeys" type="ai" direction="out"/> <annotation name="org.qtproject.QtDBus.QtTypeName.Out1" value="QList<int>"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QList<int>"/> </signal> <method name="allComponents"> <arg type="ao" direction="out"/> But I am also investigating the root cause, please give me some hint, thanks a lot! Regards, Leslie Zhai zhaixiang@loongson.cn
For KGlobalAccel 5.49 the official min required Qt version is 5.8.0. See https://cgit.kde.org/kglobalaccel.git/tree/CMakeLists.txt?h=v5.49.0#n35 Seems you patched that into 5.6.0 for your build? The content of org.kde.KGlobalAccel.xml relies on that min version 5.8.0 of Qt. Please see the related commit message ( https://cgit.kde.org/kglobalaccel.git/commit/?id=8504ba948696a7cb571d4b47905b5dcdabf4e8f0 ) for background information why and when it's In* or Out*. Adding the In* variant back as alternative to the code to help your custom patched variant would result in a warning during the normal unpatched build, so I would prefer us not to do that. So you will need to add that diff to your patch set instead to have KF build with Qt 5.6.0 (or see if you could use Qt 5.6.3 where this was claimed to be fixed as well). Hope that works for you? So closing this report as NOT A BUG, as the unpatched code of kglobalaccel should be fine and correct.