[QGIS-Developer] Current state of QGIS and Qt 6 (good news!)

Richard Duivenvoorde rdmailings at duif.net
Thu Aug 18 02:42:45 PDT 2022


Cool! Thanks Nyall!

Off course this is a challenge for Debianista's :-)

Just tried on Debian testing, actually your 4 zip's/dependecies compiling went very well.
(did not INSTALL anything, just compiled)

But then I get stuck on QGIS itself (looks like it is trying to compile the ossl plugin again, or qca is not finding the plugin so?)
(note: I disabled some AUTH stuff because... something errored, and I thought to try without)

# build QGIS qt6 (had build all other stuff in /home/richard/git/qca)
mkdir build
cd build
ccmake -DBUILD_WITH_QT6=ON -DWITH_BINDINGS=OFF \
-DQCA_INCLUDE_DIR=/home/richard/git/qca/qca-master \
-DQCA_LIBRARY=/home/richard/git/qca/qca-master/lib/libqca-qt6.so.2.3.4 \
-DQSCINTILLA_INCLUDE_DIR=/home/richard/git/qca/QScintilla_src-2.13.3/src/ \
-DQSCINTILLA_LIBRARY=/home/richard/git/qca/QScintilla_src-2.13.3/src/libqscintilla2_qt6.so.15.1.1 \
-DQTKEYCHAIN_INCLUDE_DIR=/home/richard/git/qca/qtkeychain-master \
-DQTKEYCHAIN_LIBRARY=/home/richard/git/qca/qtkeychain-master/libqt6keychain.so.0.13.99 \
-DQWT_INCLUDE_DIR=/home/richard/git/qca/qwt-6.2.0/src \
-DQWT_LIBRARY=/home/richard/git/qca/qwt-6.2.0/lib/libqwt.so.6.2.0 \
-DWITH_OAUTH2_PLUGIN=OFF \
-DWITH_AUTH=OFF \
..

  QCA OpenSSL plugin C++ check compile output:
  Change Dir: /home/richard/git/qgisqt6/build/CMakeFiles/CMakeTmp

  Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_c5530/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_c5530.dir/build.make CMakeFiles/cmTC_c5530.dir/build
  gmake[1]: Entering directory '/home/richard/git/qgisqt6/build/CMakeFiles/CMakeTmp'
  Building CXX object CMakeFiles/cmTC_c5530.dir/qcaossl.cpp.o
  /usr/bin/c++  -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/richard/git/qca/qca-master -fPIC  -std=gnu++11 -o CMakeFiles/cmTC_c5530.dir/qcaossl.cpp.o
  -c /home/richard/git/qgisqt6/build/CMakeFiles/CMakeTmp/qcaossl.cpp
  /home/richard/git/qgisqt6/build/CMakeFiles/CMakeTmp/qcaossl.cpp:2:16: fatal error: QtCrypto: No such file or directory
      2 |       #include <QtCrypto>
        |                ^~~~~~~~~~
  compilation terminated.
  gmake[1]: *** [CMakeFiles/cmTC_c5530.dir/build.make:78: CMakeFiles/cmTC_c5530.dir/qcaossl.cpp.o] Error 1
  gmake[1]: Leaving directory '/home/richard/git/qgisqt6/build/CMakeFiles/CMakeTmp'
  gmake: *** [Makefile:127: cmTC_c5530/fast] Error 2

  CMake Error at cmake/QCAMacros.cmake:76 (message):
    QCA OpenSSL plugin not found (run-time/unit-test dependency)
  Call Stack (most recent call first):
    CMakeLists.txt:526 (FIND_QCAOSSL_PLUGIN_CPP)

  Configuring incomplete, errors occurred!

Anyone a hint?

Regards,

Richard Duivenvoorde


If others want to try, some more notes:

# log on Debian Testing dd 18th aug 2022

# get all zips from Nyalls qt6 mail:

# qca
unzip qca-master.zip
cd qca-master/
# I did
ccmake .
# and checked BUILD_WITH_QT6=ON
# and (after issues with the ossl plugin) set WITH_ossl_PLUGIN=yes
make

# qtkeychain
# unzip and go into dir:
# needed to do:
unzip qtkeychain-master.zip
cd qtkeychain-master/
sudo apt install libsecret-1-dev
cmake -DBUILD_WITH_QT6=ON .
make

# qwt-6.2
# unzip
cd qwt-6.2.0
qmake6 -DWITH_PLUGIN=yes qwt.pro
make

# QScintilla_src-2.13.3
cd QScintilla_src-2.13.3
cd src
qmake6 qscintilla.pro
make


On 8/18/22 06:46, Nyall Dawson via QGIS-Developer wrote:
> Hi list,
> 
> There's been a couple of questions regarding this lately, so I'd like
> to send through an update on the current status. While I was rather
> pessimistic when replying to these questions, I'm happy to report that
> the port to Qt 6 is actually progressing MUCH faster than I'd
> anticipated!
> 
> Thanks to the QGIS.org grant, I've spent the last couple of weeks
> working on this and we're now at a stage where QGIS builds and is
> (mostly) usable on Qt 6!!
> 
> Right now this is where we're stand:
> 
> - The core, gui and app libraries all build and run under Qt 6.
> - The 3d library builds and the tests all pass, but I just get a hang
> when I try to actually use a 3d view in the app
> - There's an open PR adding Qt 6 support for server (
> https://github.com/qgis/QGIS/pull/49823 )
> - Python is not supported, there's some blockers there to resolve first*
> - Almost all the c++ tests are passing, and there's a bunch of open
> PRs which resolve some issues to get a few more passing
> - The CI infrastructure now includes the c++ tests for QGIS core, gui,
> app and 3d under Qt 6 (with server tests enabled in the PR waiting
> review).
> 
> Unfortunately without Python support we can't run the bulk of the test
> suite yet, so the current stability of the Qt 6 builds is a bit of an
> unknown. At least in my tests things *seem* to work well, in that I
> can load projects, navigate maps, work with print layouts and other
> common tasks. I certainly wouldn't recommend it for any kind of
> professional use, but it's at a stage where I'd welcome end-user
> testing and bug reports!
> 
> Getting a build is somewhat tricky at the moment. I've been using
> Fedora 36 for this. You can get the required dependencies from this
> command: https://github.com/qgis/QGIS/blob/master/.docker/qgis3-qt6-build-deps.dockerfile#L6
> 
> You also need to compile by hand:
> - qca, from https://github.com/KDE/qca/archive/refs/heads/master.zip
> (make sure to set the -DQT6=ON cmake flag)
> - qtkeychain, from
> https://github.com/frankosterfeld/qtkeychain/archive/refs/heads/master.zip
> . Set the -DBUILD_WITH_QT6=ON cmake flag
> - qwt-6.2 from https://sourceforge.net/projects/qwt/files/qwt/6.2.0/qwt-6.2.0.zip/download
> . This is an ugly one to compile -- you need to use qmake6 and hack
> around some random build failures
> - QScintilla 2.13.3 from
> https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.13.3/QScintilla_src-2.13.3.zip
> . Again, use qmake6 to compile to get the qt 6 libraries.
> 
> (there's potentially some useful tips on compiling these in the docker
> file used for the Github workflow at
> https://github.com/qgis/QGIS/blob/master/.docker/qgis3-qt6-build-deps.dockerfile
> )
> 
> When you're building QGIS, make sure to set the cmake options
> -DBUILD_WITH_QT6=ON -DWITH_BINDINGS=OFF . Likely you also need to set
> QCA_INCLUDE_DIR, QCA_LIBRARY, QSCINTILLA_INCLUDE_DIR,
> QSCINTILLA_LIBRARY, QTKEYCHAIN_INCLUDE_DIR, QTKEYCHAIN_LIBRARY,
> QWT_INCLUDE_DIR and QWT_LIBRARY to point to the correct Qt 6 versions
> of these libraries.
> 
> Nyall
> 
> * regarding Python support: Currently Fedora doesn't have packages for
> PyQt6, which prevents enabling the Python bindings on Qt 6 builds.
> There's an open request for packaging this but no movement yet. I'd
> suggest that potentially QGIS.org could sponsor Sandro Mani to do this
> packaging (also Qt 6 packages for the qca/keychain/qscintilla/qwt
> libraries), given his experience in packaging all the other geo
> libraries under Fedora...
> 
> While there's been discussion and research into potentially moving to
> Python for Qt instead of PyQt, that's a longer-term project and can't
> be completed until QGIS 4.0. So for our short/medium term requirements
> we need PyQt6 to move forward with the remaining Qt6 work...
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer



More information about the QGIS-Developer mailing list