kiwix-desktop
kiwix-desktop copied to clipboard
Kiwix-desktop doesn't compile on Fedora 40 with Qt5
This seems to be a Qt issue : https://bugreports.qt.io/browse/QTBUG-123153
This issue is a tracking issue of the upstream bug.
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 Upstream affected version if Qt6.8, but maybe Qt5 is affected as well... or this is another ticket...
Maybe we should just try to write our code differently?
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.
Should be fixed in FEDORA-2024-784f049ccd. This update contains the fix.
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.
@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)
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.
@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?
Upstream bug has ben fixed