<div dir="auto">Oh, by the way, we'll need to adapt Find{Qca,QWT,etc}.cmake to behave nicely on systems where both qt5 and qt6 libraries are installed. Atm it'll randomly pick one or the other.<div dir="auto"><br></div><div dir="auto">We can make use of BUILD_WITH_QT6 there.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Aug 20, 2022, 15:22 Mathieu Pellerin <<a href="mailto:nirvn.asia@gmail.com">nirvn.asia@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Richard,</div><div><br></div><div>FYI, I've been able to compile QGIS against Qt6 (6.2.4) on Ubuntu 22.04. Few notes:</div><div>- We're lucky, Ubuntu 22.04 has a Qt6 keychain package, you should use this one, that reduces the nb of libs to compile to 3</div><div>- As Matthias suggested, I'd install the libraries</div><div>- The QCA_INCLUDE_DIR has to point to the QtCrypto directory (e.g. on my machine, I set the installed include path to /usr/include/x86_64-linux-gnu/qt6/Qca-qt6/QtCrypto/ -- it might work from the directory you built qca within, but I suspect the path would have to be something like /home/richard/git/qca/qca-master/include/QtCrypto/)</div><div><br></div><div>On the bindings front, while Ubuntu 22.04 doesn't have a pyqt6 package, upcoming Ubuntu 22.10 will ship one (<a href="https://packages.ubuntu.com/kinetic/pyqt6-dev" target="_blank" rel="noreferrer">https://packages.ubuntu.com/kinetic/pyqt6-dev</a>). With a bit of chance, Ubuntu will have updated to 6.3.X come October.</div><div><br></div><div>Nyall, you rock BTW, it's pretty cool to see QGIS running against Qt6 locally. <br></div><div><br></div><div>Mathieu<br></div><div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 18, 2022 at 4:43 PM Richard Duivenvoorde via QGIS-Developer <<a href="mailto:qgis-developer@lists.osgeo.org" target="_blank" rel="noreferrer">qgis-developer@lists.osgeo.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Cool! Thanks Nyall!<br>
<br>
Off course this is a challenge for Debianista's :-)<br>
<br>
Just tried on Debian testing, actually your 4 zip's/dependecies compiling went very well.<br>
(did not INSTALL anything, just compiled)<br>
<br>
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?)<br>
(note: I disabled some AUTH stuff because... something errored, and I thought to try without)<br>
<br>
# build QGIS qt6 (had build all other stuff in /home/richard/git/qca)<br>
mkdir build<br>
cd build<br>
ccmake -DBUILD_WITH_QT6=ON -DWITH_BINDINGS=OFF \<br>
-DQCA_INCLUDE_DIR=/home/richard/git/qca/qca-master \<br>
-DQCA_LIBRARY=/home/richard/git/qca/qca-master/lib/libqca-qt6.so.2.3.4 \<br>
-DQSCINTILLA_INCLUDE_DIR=/home/richard/git/qca/QScintilla_src-2.13.3/src/ \<br>
-DQSCINTILLA_LIBRARY=/home/richard/git/qca/QScintilla_src-2.13.3/src/libqscintilla2_qt6.so.15.1.1 \<br>
-DQTKEYCHAIN_INCLUDE_DIR=/home/richard/git/qca/qtkeychain-master \<br>
-DQTKEYCHAIN_LIBRARY=/home/richard/git/qca/qtkeychain-master/libqt6keychain.so.0.13.99 \<br>
-DQWT_INCLUDE_DIR=/home/richard/git/qca/qwt-6.2.0/src \<br>
-DQWT_LIBRARY=/home/richard/git/qca/qwt-6.2.0/lib/libqwt.so.6.2.0 \<br>
-DWITH_OAUTH2_PLUGIN=OFF \<br>
-DWITH_AUTH=OFF \<br>
..<br>
<br>
QCA OpenSSL plugin C++ check compile output:<br>
Change Dir: /home/richard/git/qgisqt6/build/CMakeFiles/CMakeTmp<br>
<br>
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<br>
gmake[1]: Entering directory '/home/richard/git/qgisqt6/build/CMakeFiles/CMakeTmp'<br>
Building CXX object CMakeFiles/cmTC_c5530.dir/qcaossl.cpp.o<br>
/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<br>
-c /home/richard/git/qgisqt6/build/CMakeFiles/CMakeTmp/qcaossl.cpp<br>
/home/richard/git/qgisqt6/build/CMakeFiles/CMakeTmp/qcaossl.cpp:2:16: fatal error: QtCrypto: No such file or directory<br>
2 | #include <QtCrypto><br>
| ^~~~~~~~~~<br>
compilation terminated.<br>
gmake[1]: *** [CMakeFiles/cmTC_c5530.dir/build.make:78: CMakeFiles/cmTC_c5530.dir/qcaossl.cpp.o] Error 1<br>
gmake[1]: Leaving directory '/home/richard/git/qgisqt6/build/CMakeFiles/CMakeTmp'<br>
gmake: *** [Makefile:127: cmTC_c5530/fast] Error 2<br>
<br>
CMake Error at cmake/QCAMacros.cmake:76 (message):<br>
QCA OpenSSL plugin not found (run-time/unit-test dependency)<br>
Call Stack (most recent call first):<br>
CMakeLists.txt:526 (FIND_QCAOSSL_PLUGIN_CPP)<br>
<br>
Configuring incomplete, errors occurred!<br>
<br>
Anyone a hint?<br>
<br>
Regards,<br>
<br>
Richard Duivenvoorde<br>
<br>
<br>
If others want to try, some more notes:<br>
<br>
# log on Debian Testing dd 18th aug 2022<br>
<br>
# get all zips from Nyalls qt6 mail:<br>
<br>
# qca<br>
unzip qca-master.zip<br>
cd qca-master/<br>
# I did<br>
ccmake .<br>
# and checked BUILD_WITH_QT6=ON<br>
# and (after issues with the ossl plugin) set WITH_ossl_PLUGIN=yes<br>
make<br>
<br>
# qtkeychain<br>
# unzip and go into dir:<br>
# needed to do:<br>
unzip qtkeychain-master.zip<br>
cd qtkeychain-master/<br>
sudo apt install libsecret-1-dev<br>
cmake -DBUILD_WITH_QT6=ON .<br>
make<br>
<br>
# qwt-6.2<br>
# unzip<br>
cd qwt-6.2.0<br>
qmake6 -DWITH_PLUGIN=yes <a href="http://qwt.pro" rel="noreferrer noreferrer" target="_blank">qwt.pro</a><br>
make<br>
<br>
# QScintilla_src-2.13.3<br>
cd QScintilla_src-2.13.3<br>
cd src<br>
qmake6 <a href="http://qscintilla.pro" rel="noreferrer noreferrer" target="_blank">qscintilla.pro</a><br>
make<br>
<br>
<br>
On 8/18/22 06:46, Nyall Dawson via QGIS-Developer wrote:<br>
> Hi list,<br>
> <br>
> There's been a couple of questions regarding this lately, so I'd like<br>
> to send through an update on the current status. While I was rather<br>
> pessimistic when replying to these questions, I'm happy to report that<br>
> the port to Qt 6 is actually progressing MUCH faster than I'd<br>
> anticipated!<br>
> <br>
> Thanks to the QGIS.org grant, I've spent the last couple of weeks<br>
> working on this and we're now at a stage where QGIS builds and is<br>
> (mostly) usable on Qt 6!!<br>
> <br>
> Right now this is where we're stand:<br>
> <br>
> - The core, gui and app libraries all build and run under Qt 6.<br>
> - The 3d library builds and the tests all pass, but I just get a hang<br>
> when I try to actually use a 3d view in the app<br>
> - There's an open PR adding Qt 6 support for server (<br>
> <a href="https://github.com/qgis/QGIS/pull/49823" rel="noreferrer noreferrer" target="_blank">https://github.com/qgis/QGIS/pull/49823</a> )<br>
> - Python is not supported, there's some blockers there to resolve first*<br>
> - Almost all the c++ tests are passing, and there's a bunch of open<br>
> PRs which resolve some issues to get a few more passing<br>
> - The CI infrastructure now includes the c++ tests for QGIS core, gui,<br>
> app and 3d under Qt 6 (with server tests enabled in the PR waiting<br>
> review).<br>
> <br>
> Unfortunately without Python support we can't run the bulk of the test<br>
> suite yet, so the current stability of the Qt 6 builds is a bit of an<br>
> unknown. At least in my tests things *seem* to work well, in that I<br>
> can load projects, navigate maps, work with print layouts and other<br>
> common tasks. I certainly wouldn't recommend it for any kind of<br>
> professional use, but it's at a stage where I'd welcome end-user<br>
> testing and bug reports!<br>
> <br>
> Getting a build is somewhat tricky at the moment. I've been using<br>
> Fedora 36 for this. You can get the required dependencies from this<br>
> command: <a href="https://github.com/qgis/QGIS/blob/master/.docker/qgis3-qt6-build-deps.dockerfile#L6" rel="noreferrer noreferrer" target="_blank">https://github.com/qgis/QGIS/blob/master/.docker/qgis3-qt6-build-deps.dockerfile#L6</a><br>
> <br>
> You also need to compile by hand:<br>
> - qca, from <a href="https://github.com/KDE/qca/archive/refs/heads/master.zip" rel="noreferrer noreferrer" target="_blank">https://github.com/KDE/qca/archive/refs/heads/master.zip</a><br>
> (make sure to set the -DQT6=ON cmake flag)<br>
> - qtkeychain, from<br>
> <a href="https://github.com/frankosterfeld/qtkeychain/archive/refs/heads/master.zip" rel="noreferrer noreferrer" target="_blank">https://github.com/frankosterfeld/qtkeychain/archive/refs/heads/master.zip</a><br>
> . Set the -DBUILD_WITH_QT6=ON cmake flag<br>
> - qwt-6.2 from <a href="https://sourceforge.net/projects/qwt/files/qwt/6.2.0/qwt-6.2.0.zip/download" rel="noreferrer noreferrer" target="_blank">https://sourceforge.net/projects/qwt/files/qwt/6.2.0/qwt-6.2.0.zip/download</a><br>
> . This is an ugly one to compile -- you need to use qmake6 and hack<br>
> around some random build failures<br>
> - QScintilla 2.13.3 from<br>
> <a href="https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.13.3/QScintilla_src-2.13.3.zip" rel="noreferrer noreferrer" target="_blank">https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.13.3/QScintilla_src-2.13.3.zip</a><br>
> . Again, use qmake6 to compile to get the qt 6 libraries.<br>
> <br>
> (there's potentially some useful tips on compiling these in the docker<br>
> file used for the Github workflow at<br>
> <a href="https://github.com/qgis/QGIS/blob/master/.docker/qgis3-qt6-build-deps.dockerfile" rel="noreferrer noreferrer" target="_blank">https://github.com/qgis/QGIS/blob/master/.docker/qgis3-qt6-build-deps.dockerfile</a><br>
> )<br>
> <br>
> When you're building QGIS, make sure to set the cmake options<br>
> -DBUILD_WITH_QT6=ON -DWITH_BINDINGS=OFF . Likely you also need to set<br>
> QCA_INCLUDE_DIR, QCA_LIBRARY, QSCINTILLA_INCLUDE_DIR,<br>
> QSCINTILLA_LIBRARY, QTKEYCHAIN_INCLUDE_DIR, QTKEYCHAIN_LIBRARY,<br>
> QWT_INCLUDE_DIR and QWT_LIBRARY to point to the correct Qt 6 versions<br>
> of these libraries.<br>
> <br>
> Nyall<br>
> <br>
> * regarding Python support: Currently Fedora doesn't have packages for<br>
> PyQt6, which prevents enabling the Python bindings on Qt 6 builds.<br>
> There's an open request for packaging this but no movement yet. I'd<br>
> suggest that potentially QGIS.org could sponsor Sandro Mani to do this<br>
> packaging (also Qt 6 packages for the qca/keychain/qscintilla/qwt<br>
> libraries), given his experience in packaging all the other geo<br>
> libraries under Fedora...<br>
> <br>
> While there's been discussion and research into potentially moving to<br>
> Python for Qt instead of PyQt, that's a longer-term project and can't<br>
> be completed until QGIS 4.0. So for our short/medium term requirements<br>
> we need PyQt6 to move forward with the remaining Qt6 work...<br>
> _______________________________________________<br>
> QGIS-Developer mailing list<br>
> <a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank" rel="noreferrer">QGIS-Developer@lists.osgeo.org</a><br>
> List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
> Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
<br>
_______________________________________________<br>
QGIS-Developer mailing list<br>
<a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank" rel="noreferrer">QGIS-Developer@lists.osgeo.org</a><br>
List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
</blockquote></div>
</blockquote></div>