[QGIS-Developer] Qt6 builds and plugins -- ready for testing!
Richard Duivenvoorde
rdmailings at duif.net
Fri Jan 26 13:52:20 PST 2024
Ok, installed qwt by downloading deb file from testing...
configure: ok
generate: ok
compiling: stopped at
build/python/gui/gui.sip: line 11: column 9: 'QtCore/QtCoremod.sip' could not be found
seems to be able to fix this using the fix from Thomas from
https://github.com/qgis/QGIS/issues/54184#issuecomment-1795204001
(NOTE: had to do this for my own build in Trixie too!)
compile again: stop at:
[423/2971] Building CXX object src/core/CMakeFiles/qgis_core.dir/qgsvariantutils.cpp.o
FAILED: src/core/CMakeFiles/qgis_core.dir/qgsvariantutils.cpp.o
...
home/richard/git/qgisqt6/src/core/qgsvariantutils.cpp: In static member function ‘static QVariant::Type QgsVariantUtils::metaTypeToVariantType(QMetaType::Type)’:
/home/richard/git/qgisqt6/src/core/qgsvariantutils.cpp:489:21: error: ‘Float16’ is not a member of ‘QMetaType’
489 | case QMetaType::Float16:
| ^~~~~~~
[440/2971] Building CXX object src/core/CMakeFiles/qgis_core.dir/qgsvectorfilewriter.cpp.o
Anybody a hint?
Regards,
Richard Duivenvoorde
On 1/26/24 10:05, Richard Duivenvoorde via QGIS-Developer wrote:
> 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
>
> _______________________________________________
> 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