Menu

ChessX and Qt6

Jens Nissen

Compiling ChessX with Qt6 does not work well.

For the moment, all deprecations and changed APIs have been fixed in the ChessX sources, so building more or less works on on Mac OS and Linux, Windows requires a patch for zlib support.

BUT: There are a number of pitfalls:
- On Mac OS, Qt6 applications cannot be debugged as it is not possible to build a debug version of an application (3 mandatory libraries are missing from the installation)
- On Linux, Qt cannot be installed with the online installer, as libraries are missing for running the installer (saying that: this also applies to Qt5)
- zlib is not supported in Qt6, this makes building ChessX with Windows and Linux a horrible experience, Mac OS works fine (as Mac OS comes with its own security API - just make sure, that you are on latest Ventura 13.2.1)
- Projects on Linux do not compile, as the header QtGui references headers (e.g. gl.h), which Linux does not provide out of the box.
- OpenSSL incompatibilities on Linux: Qt6 still comes with OpenSSL 1.1.1 whereas a lot of Linux OS come with OpenSSL 3.02

Recommendation:
Qt6 is not yet is not yet suitable for a production environment - definitely stay with Qt5.15.

UPDATE 1:
Widgets do not work as expected: Notably, the QTextBrowser in Qt6 reacts erratically whenever a link is clicked (QTextBrowser then starts to load non-existing files and the displayed text disappears) which makes the ChessBrowser nearly unsusable.
I made a workaround inside ChessX to fix this bug in Qt6

UPDATE 2:
For MacOS, I will switch to Qt 6.5.3. This seems to work fine after patching the build environment of Qt.
Do NOT update to anything above 6.5.3 nor to 6.6.x, 6.7.x - they are broken by a severe issue (QTBUG-122946) and crash ChessX immediately.