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@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to