qView
qView copied to clipboard
Update Qt to 6.5.3
- Fixes #662
- Fixes libwebp CVE-2023-4863
Explanation of changes:
- Use Qt 6.5.3. I've been using this in my builds for months and it's been working fine. Could go to 6.6.x I suppose but I haven't seen anything really important that it adds yet, and have only tested it very briefly.
- Use kimageformats-binaries 6.4.3 builds for now. Should be okay due to Qt's backwards binary compatibility.
- Includes a workaround for window geometry save/restore on macOS, because the full-size content view stuff doesn't play nicely with some more recent changes in Qt's geometry save/restore logic. Without this workaround, if a window is moved to the very top of the monitor (touching the menu bar), upon exiting and reopening, the window ends up offset from the top a bit.
- There was an old workaround for QTBUG-69975 which was fixed as of Qt 6.2, so I surrounded it with an
#if
. - For the 64-bit Windows build, updates to OpenSSL 3 since Qt 6.5 won't load the OpenSSL 1.1 libraries as far as I can tell (checked with
QSslSocket::activeBackend()
). Even without OpenSSL, networking still works because Qt 6 has SChannel fallback, but still including OpenSSL just in case any of its features are needed (not sure).
Other changes (build errors/warnings):
- The URL for the OpenSSL 1.1 zip was updated because the old one stopped working. Changed syntax for
Invoke-WebRequest
(e.g.-OutFile
instead of-O
) because that was somehow broken too (I guess one of the new runner releases updated PowerShell?). - Included commit from #675, thanks @MaykGyver. That PR was accidentally based on my master branch though hence all the other commits on that PR. The v4 upload-artifact upgrade revealed an additional issue, since it now checks for duplicate artifact names - the Linux builds were apparently named the same and I believe one was overwriting the other - so I suffixed one of them.
- GitHub recently changed the OS that macos-latest refers to from 12 to 14, breaking the legacy macOS build. This is because the newer macOS runners (both 13 and 14) use Xcode 15.0.1 by default which has some issues as documented here. Note that if # 1 is worked around as I initially tried here, the others involve potential crashes at runtime even if the build is successful (as discovered in #677). So I left them both on macos-12 for this PR as the easy/safe fix. Or to build on macos-14, you could consider the other workaround I ended up using.
- Adjusted the macOS build script to fix some warnings/errors in the deploy step for the nightly versions, a few which were already happening before ("file exists") due to running macdeployqt twice on the same app, and one that seems Qt 6.5-related ("cannot resolve rpath" for "QtPrintSupport") if macdeployqt tries to create its own dmg.
NOTE: Qt 6.5 requires macOS 11 or later, dropping support for macOS 10.14 and 10.15 as compared to Qt 6.2 (see Qt 6.2 Supported Platforms, Qt 6.5 Supported Platforms). If accepted/merged, remember to update the download page at the time of release to show "macOS 11+" for the non-legacy .dmg.