kiwix-desktop icon indicating copy to clipboard operation
kiwix-desktop copied to clipboard

Kiwix-desktop doesn't compile on Fedora 40 with Qt5

Open mgautierfr opened this issue 9 months ago • 7 comments

This seems to be a Qt issue : https://bugreports.qt.io/browse/QTBUG-123153

This issue is a tracking issue of the upstream bug.

mgautierfr avatar May 09 '24 13:05 mgautierfr

It is Qt5.

Output from kiwix-build is:

[…]
g++ -c -pipe -std=c++17 -Werror -I/home/mgautier/Project/KIWIX/WORKING_DIR/BUILD/BUILD_native_dyn/INSTALL/include/ -I/home/mgautier/Project/KIWIX/WORKING_DIR/BUILD/BUILD_native_dyn/INSTALL/include -I/usr/include/p11-kit-1 -O2 -Wall -Wextra -D_REENTRANT -fPIC -DVERSION=2.3.1 -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -DQT_NO_DEBUG -DQT_WEBENGINEWIDGETS_LIB -DQT_WEBENGINECORE_LIB -DQT_QUICK_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_WEBCHANNEL_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_POSITIONING_LIB -DQT_CORE_LIB -I../../../SOURCE/kiwix-desktop -I. -I../../../SOURCE/kiwix-desktop/subprojects/QtSingleApplication/src -I/usr/include/qt5 -I/usr/include/qt5/QtWebEngineWidgets -I/usr/include/qt5/QtWebEngineCore -I/usr/include/qt5/QtQuick -I/usr/include/qt5/QtPrintSupport -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtQmlModels -I/usr/include/qt5/QtWebChannel -I/usr/include/qt5/QtQml -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtPositioning -I/usr/include/qt5/QtCore -I. -I. -I/../lib64/qt5/mkspecs/linux-g++ -o choiceitem.o ../../../SOURCE/kiwix-desktop/src/choiceitem.cpp
g++ -c -pipe -std=c++17 -Werror -I/home/mgautier/Project/KIWIX/WORKING_DIR/BUILD/BUILD_native_dyn/INSTALL/include/ -I/home/mgautier/Project/KIWIX/WORKING_DIR/BUILD/BUILD_native_dyn/INSTALL/include -I/usr/include/p11-kit-1 -O2 -Wall -Wextra -D_REENTRANT -fPIC -DVERSION=2.3.1 -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -DQT_NO_DEBUG -DQT_WEBENGINEWIDGETS_LIB -DQT_WEBENGINECORE_LIB -DQT_QUICK_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_WEBCHANNEL_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_POSITIONING_LIB -DQT_CORE_LIB -I../../../SOURCE/kiwix-desktop -I. -I../../../SOURCE/kiwix-desktop/subprojects/QtSingleApplication/src -I/usr/include/qt5 -I/usr/include/qt5/QtWebEngineWidgets -I/usr/include/qt5/QtWebEngineCore -I/usr/include/qt5/QtQuick -I/usr/include/qt5/QtPrintSupport -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtQmlModels -I/usr/include/qt5/QtWebChannel -I/usr/include/qt5/QtQml -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtPositioning -I/usr/include/qt5/QtCore -I. -I. -I/../lib64/qt5/mkspecs/linux-g++ -o contentmanagerdelegate.o ../../../SOURCE/kiwix-desktop/src/contentmanagerdelegate.cpp
g++ -c -pipe -std=c++17 -Werror -I/home/mgautier/Project/KIWIX/WORKING_DIR/BUILD/BUILD_native_dyn/INSTALL/include/ -I/home/mgautier/Project/KIWIX/WORKING_DIR/BUILD/BUILD_native_dyn/INSTALL/include -I/usr/include/p11-kit-1 -O2 -Wall -Wextra -D_REENTRANT -fPIC -DVERSION=2.3.1 -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -DQT_NO_DEBUG -DQT_WEBENGINEWIDGETS_LIB -DQT_WEBENGINECORE_LIB -DQT_QUICK_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_WEBCHANNEL_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_POSITIONING_LIB -DQT_CORE_LIB -I../../../SOURCE/kiwix-desktop -I. -I../../../SOURCE/kiwix-desktop/subprojects/QtSingleApplication/src -I/usr/include/qt5 -I/usr/include/qt5/QtWebEngineWidgets -I/usr/include/qt5/QtWebEngineCore -I/usr/include/qt5/QtQuick -I/usr/include/qt5/QtPrintSupport -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtQmlModels -I/usr/include/qt5/QtWebChannel -I/usr/include/qt5/QtQml -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtPositioning -I/usr/include/qt5/QtCore -I. -I. -I/../lib64/qt5/mkspecs/linux-g++ -o contentmanagermodel.o ../../../SOURCE/kiwix-desktop/src/contentmanagermodel.cpp
g++ -c -pipe -std=c++17 -Werror -I/home/mgautier/Project/KIWIX/WORKING_DIR/BUILD/BUILD_native_dyn/INSTALL/include/ -I/home/mgautier/Project/KIWIX/WORKING_DIR/BUILD/BUILD_native_dyn/INSTALL/include -I/usr/include/p11-kit-1 -O2 -Wall -Wextra -D_REENTRANT -fPIC -DVERSION=2.3.1 -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -DQT_NO_DEBUG -DQT_WEBENGINEWIDGETS_LIB -DQT_WEBENGINECORE_LIB -DQT_QUICK_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_WEBCHANNEL_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_POSITIONING_LIB -DQT_CORE_LIB -I../../../SOURCE/kiwix-desktop -I. -I../../../SOURCE/kiwix-desktop/subprojects/QtSingleApplication/src -I/usr/include/qt5 -I/usr/include/qt5/QtWebEngineWidgets -I/usr/include/qt5/QtWebEngineCore -I/usr/include/qt5/QtQuick -I/usr/include/qt5/QtPrintSupport -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtQmlModels -I/usr/include/qt5/QtWebChannel -I/usr/include/qt5/QtQml -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtPositioning -I/usr/include/qt5/QtCore -I. -I. -I/../lib64/qt5/mkspecs/linux-g++ -o contenttypefilter.o ../../../SOURCE/kiwix-desktop/src/contenttypefilter.cpp
In file included from /usr/include/qt5/QtCore/qfuture.h:45,
                 from /usr/include/qt5/QtCore/QtCore:97,
                 from /usr/include/qt5/QtNetwork/QtNetworkDepends:3,
                 from /usr/include/qt5/QtNetwork/QtNetwork:3,
                 from ../../../SOURCE/kiwix-desktop/src/opdsrequestmanager.h:5,
                 from ../../../SOURCE/kiwix-desktop/src/contentmanager.h:8,
                 from ../../../SOURCE/kiwix-desktop/src/kiwixapp.h:5,
                 from ../../../SOURCE/kiwix-desktop/src/choiceitem.cpp:5:
/usr/include/qt5/QtCore/qfutureinterface.h:284:37: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor]
  284 |     explicit QFutureInterface<void>(State initialState = NoState)
      |                                     ^~~~~
/usr/include/qt5/QtCore/qfutureinterface.h:284:37: note: remove the ‘< >’
cc1plus: all warnings being treated as errors
make: *** [Makefile:1324: choiceitem.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from /usr/include/qt5/QtCore/qfuture.h:45,
                 from /usr/include/qt5/QtCore/QtCore:97,
                 from /usr/include/qt5/QtNetwork/QtNetworkDepends:3,
                 from /usr/include/qt5/QtNetwork/QtNetwork:3,
                 from ../../../SOURCE/kiwix-desktop/src/opdsrequestmanager.h:5,
                 from ../../../SOURCE/kiwix-desktop/src/contentmanager.h:8,
                 from ../../../SOURCE/kiwix-desktop/src/kiwixapp.h:5,
                 from ../../../SOURCE/kiwix-desktop/src/contenttypefilter.cpp:2:
/usr/include/qt5/QtCore/qfutureinterface.h:284:37: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor]
  284 |     explicit QFutureInterface<void>(State initialState = NoState)
      |                                     ^~~~~
/usr/include/qt5/QtCore/qfutureinterface.h:284:37: note: remove the ‘< >’
cc1plus: all warnings being treated as errors
make: *** [Makefile:1430: contenttypefilter.o] Error 1
In file included from /usr/include/qt5/QtCore/qfuture.h:45,
                 from /usr/include/qt5/QtCore/QtCore:97,
                 from /usr/include/qt5/QtGui/QtGuiDepends:3,
                 from /usr/include/qt5/QtGui/QtGui:3,
                 from ../../../SOURCE/kiwix-desktop/src/contentmanagerdelegate.cpp:2:
/usr/include/qt5/QtCore/qfutureinterface.h:284:37: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor]
  284 |     explicit QFutureInterface<void>(State initialState = NoState)
      |                                     ^~~~~
/usr/include/qt5/QtCore/qfutureinterface.h:284:37: note: remove the ‘< >’
cc1plus: all warnings being treated as errors
make: *** [Makefile:1360: contentmanagerdelegate.o] Error 1
In file included from /usr/include/qt5/QtCore/qfuture.h:45,
                 from /usr/include/qt5/QtCore/QtCore:97,
                 from /usr/include/qt5/QtNetwork/QtNetworkDepends:3,
                 from /usr/include/qt5/QtNetwork/QtNetwork:3,
                 from ../../../SOURCE/kiwix-desktop/src/opdsrequestmanager.h:5,
                 from ../../../SOURCE/kiwix-desktop/src/contentmanager.h:8,
                 from ../../../SOURCE/kiwix-desktop/src/kiwixapp.h:5,
                 from ../../../SOURCE/kiwix-desktop/src/contentmanagermodel.cpp:7:
/usr/include/qt5/QtCore/qfutureinterface.h:284:37: error: template-id not allowed for constructor in C++20 [-Werror=template-id-cdtor]
  284 |     explicit QFutureInterface<void>(State initialState = NoState)
      |                                     ^~~~~
/usr/include/qt5/QtCore/qfutureinterface.h:284:37: note: remove the ‘< >’
cc1plus: all warnings being treated as errors
make: *** [Makefile:1397: contentmanagermodel.o] Error 1


Stopping build due to errors

mgautierfr avatar May 09 '24 13:05 mgautierfr

@mgautierfr Upstream affected version if Qt6.8, but maybe Qt5 is affected as well... or this is another ticket... image

Maybe we should just try to write our code differently?

kelson42 avatar May 09 '24 13:05 kelson42

It is a issue on Qt side. I've already added a comment on the upstream issue telling that I'm impacted on Qt5 too.

mgautierfr avatar May 09 '24 13:05 mgautierfr

Should be fixed in FEDORA-2024-784f049ccd. This update contains the fix.

xvitaly avatar May 13 '24 11:05 xvitaly

I'm not a Qt maintainer. I simply emailed the maintainers and they applied the fix.

@mgautierfr Can you check? You will need to download and install qt5-qtbase{,-devel} directly from Koji until it reaches testing/stable.

xvitaly avatar May 13 '24 11:05 xvitaly

@mgautierfr Can you check? You will need to download and install qt5-qtbase{,-devel} directly from Koji until it reaches testing/stable.

Koji version installed and kiwix-desktop is compiling. Thanks for pinging Qt maintainer. Can I put a confirmation somewhere to help validate the pkg ? (I already have a fedora account)

mgautierfr avatar May 13 '24 13:05 mgautierfr

Can I put a confirmation somewhere to help validate the pkg ? (I already have a fedora account)

Yes. Give positive karma to this update in Bodhi.

xvitaly avatar May 13 '24 13:05 xvitaly

@mgautierfr I'm not very sure about the impact of this issue? Is that Fedora specific? If not which versions of Qt are exactly impacted? I wonder why we are not impacted at all on Debian/Ubuntu? Finally I would ask if this really makes sense to keep this tivket open here in our repo?

kelson42 avatar May 18 '24 09:05 kelson42

Upstream bug has ben fixed

kelson42 avatar Jun 01 '24 15:06 kelson42