[QGIS-Developer] Qt6 builds and plugins -- ready for testing!

Richard Duivenvoorde rdmailings at duif.net
Fri Jan 26 01:05:40 PST 2024


Whow! Cool!

Thanks to all peeps/sponsors making this happen!

Eager to try to build. Is
https://lists.osgeo.org/pipermail/qgis-developer/2022-August/065012.html
more or less the status of dependencies you also have to get/build yourself on Debian?

Ok searched and tried to configure.

Following seem to be OK:

- qca  (I see libqca-qt6-dev/testing 2.3.8-1 in Debian testing)
- qtkeychain  (I see qtkeychain-qt6-dev/testing 0.14.2-1 in Debian testing)
- QScintilla  (I see libqscintilla2-qt6-dev/testing,now 2.14.1+dfsg-1 in Debian testing)

- qwt  (cannot find qt6 mention in Debian testing)

So: need to compile QWT myself?
Like mentioned in dev list mail from 2022?


For debianista's willing to try:
- on Debian testing, on which I also compile QGIS-qt5, I (via trial and error) installed:

sudo apt install libqca-qt6-dev qtkeychain-qt6-dev libqscintilla2-qt6-dev qt6-serialport-dev qt6-svg-dev qt6-positioning-dev libqt6core5compat6 qt6-5compat-dev python3-pyqt6 python3-pyqt6.qsci pyqt6-dev-tools python3-pyqt6.qtmultimedia qml6-module-qtmultimedia qt6-multimedia-dev qt6-tools-dev

mkdir build;cd build;ccmake -GNinja -DBUILD_TESTING=FALSE -DENABLE_TESTS=OFF -DWITH_SERVER=FALSE -DWITH_3D=FALSE -DCMAKE_INSTALL_PREFIX=~/bin/qgis_/qt6/debug -DWITH_QWTPOLAR=OFF -DCMAKE_BUILD_TYPE=Debug -DWITH_GRASS=FALSE -DBUILD_WITH_QT6=TRUE -DWITH_OAUTH2_PLUGIN=FALSE -DWITH_WITH_SERVER_PLUGINS=OFF -DWITH_STAGED_PLUGINS=OFF -DWITH_PDAL=OFF -DWITH_QTWEBKIT=OFF ..

Then configuring goes without errors.
But on generating, I get

  CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
  Please set them or make sure they are set and tested correctly in the CMake files:
  QWT_LIBRARY
      linked by target "qgis_gui" in directory /home/richard/git/qgisqt6/src/gui
      linked by target "qgis_app" in directory /home/richard/git/qgisqt6/src/app
  Generating done (0.5s)

So probably need to get QWT compiled for qt6?
Found https://packages.debian.org/experimental/libqwt-qt6-6.2 but dare not to pull that into my testing machine?


Anyway, Thanks all!

Regards,

Richard Duivenvoorde


For debianista's willing to try:
- on Debian testing, on which I also compile QGIS-qt5, I (via trial and error) installed:

sudo apt install libqca-qt6-dev qtkeychain-qt6-dev libqscintilla2-qt6-dev qt6-serialport-dev qt6-svg-dev qt6-positioning-dev libqt6core5compat6 qt6-5compat-dev python3-pyqt6 python3-pyqt6.qsci pyqt6-dev-tools python3-pyqt6.qtmultimedia qml6-module-qtmultimedia qt6-multimedia-dev Qt6UiToolsConfig.cmake

mkdir build;cd build;ccmake -GNinja -DBUILD_TESTING=FALSE -DENABLE_TESTS=OFF -DWITH_SERVER=FALSE -DWITH_3D=FALSE -DCMAKE_INSTALL_PREFIX=~/bin/qgis_/qt6/debug -DWITH_QWTPOLAR=OFF -DCMAKE_BUILD_TYPE=Debug -DWITH_GRASS=FALSE -DBUILD_WITH_QT6=TRUE -DWITH_OAUTH2_PLUGIN=FALSE -DWITH_WITH_SERVER_PLUGINS=OFF -DWITH_STAGED_PLUGINS=OFF -DWITH_PDAL=OFF -DWITH_QTWEBKIT=OFF ..



On 1/25/24 22:58, Nyall Dawson via QGIS-Developer wrote:
> Hi list,
> 
> With some excellent work recently completed by Julien, we're now at a stage where there's no *major* roadblocks preventing plugins from functioning under the Qt6 builds!
> 
> In fact, the first plugin has already been ported to be compatible with these (First Aid Plugin) -- see https://github.com/wonder-sk/qgis-first-aid-plugin/commits/master/ <https://github.com/wonder-sk/qgis-first-aid-plugin/commits/master/> .
> 
> I think we're now at a stage where wider testing of the Qt6 builds and feedback via bug reports are valuable. A couple of notes:
> 
> - We're up to roughly 2/3rd of the existing Python tests passing on Qt 6 builds. That's obviously not everything, so we aren't finished with this work yet 😁
> 
> - There's a script available in the repo for automatically upgrading QGIS plugins/scripts to Qt 6 compatibility WITHOUT BREAKING compatibility with older releases/qt5 based releases. It's here: https://github.com/qgis/QGIS/blob/master/scripts/pyqt5_to_pyqt6/pyqt5_to_pyqt6.py <https://github.com/qgis/QGIS/blob/master/scripts/pyqt5_to_pyqt6/pyqt5_to_pyqt6.py>
> 
> - After running the script, you'll also need to add "supportsQt6=yes" to your plugins metadata configuration. Otherwise the Qt6 builds will just ignore your plugin and will refuse to load it. See eg https://github.com/wonder-sk/qgis-first-aid-plugin/commit/3687be7d9e026c59c9b775caaf5ee18cf8639886 <https://github.com/wonder-sk/qgis-first-aid-plugin/commit/3687be7d9e026c59c9b775caaf5ee18cf8639886>
> 
> - You'll need to compile your own Qt 6 build. There's no nightlies or any prepackaged versions available.
> 
> - There are still some known issues with enum handling, but please open bug reports when you encounter these!
> 
> - The plugin manager is currently broken in the Qt6 builds. Use a Qt5 build to enable plugins
> 🤣
> 
> Again, to reiterate, there's NO plans for moving to QGIS 4.0 on the horizon. The plan is to allow plugins to add Qt6 support without breaking any compatibility with Qt5/older releases, so that the effort required by plugin authors is extremely minimal. And with any luck, the pyqt5_to_pyqt6.py script will do 99% of the work for you. Qt 6 builds of QGIS 3.x will become available at some stage in a "preview release" capacity, and likely some platforms will move to Qt6 only releases when necessary for that platform (eg MacOS, wayland only linux systems). Read more about the plan at https://github.com/qgis/QGIS-Enhancement-Proposals/issues/198 <https://github.com/qgis/QGIS-Enhancement-Proposals/issues/198>
> 
> This work has ONLY been possible thanks to funding from qgis.org <http://qgis.org>, ie it's possible only because of the users and organisations sponsoring QGIS!
> 
> Nyall
> 
> 
> 
> 
> 
> _______________________________________________
> 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