Source: qgis Version: 3.10.5+dfsg-2 Severity: important Tags: ftbfs User: debian-qt-...@lists.debian.org Usertags: qt5.14
Dear Maintainer, qgis fails to build with Qt 5.14, currently available in experimental: FAILED: output/lib/libqgis_3d.so.3.10.4 [...] /usr/bin/ld: src/3d/CMakeFiles/qgis_3d.dir/qgswindow3dengine.cpp.o: in function `QgsWindow3DEngine::QgsWindow3DEngine()': ./debian/build/../../src/3d/qgswindow3dengine.cpp:25: undefined reference to `Qt3DExtras::Qt3DWindow::Qt3DWindow(QScreen*)' collect2: error: ld returned 1 exit status This happens because we enabled Qt3DExtras headers and backported a commit from 5.15 branch [1] that changes Qt3DWindow constructor signature, to make sure we will not break ABI during 5.14 → 5.15 upgrade. However, qgis uses its own Qt3D headers: it has this block in debian/rules: ifneq (,$(findstring $(DISTRIBUTION),"sid buster eoan focal")) # Qt3DExtras intentionally removed from debian (#895386) and in turn ubuntu CMAKE_OPTS += \ -DCMAKE_PREFIX_PATH=$(realpath external/qt3dextra-headers/cmake) \ -DQT5_3DEXTRA_INCLUDE_DIR=$(realpath external/qt3dextra-headers) \ -DQT5_3DEXTRA_LIBRARY=/usr/lib/$(DEB_BUILD_MULTIARCH)/libQt53DExtras.so endif There are two ways to fix this problem: a) Wait until 5.15 reaches unstable and then remove that block from rules. b) Make that block conditional and enable it only for Qt < 5.14. In Ubuntu, I removed that block [2] and then the package built fine. [1]: https://salsa.debian.org/qt-kde-team/qt/qt3d/-/blob/experimental/debian/patches/qt3dwindow_constructor.diff [2]: https://launchpadlibrarian.net/480154819/qgis_3.10.4+dfsg-1ubuntu6_3.10.4+dfsg-1ubuntu7.diff.gz -- Dmitry Shachnev
signature.asc
Description: PGP signature