chore(cpn): upgrade to Ubuntu 22.04 and Qt 6.9.0
Summary of changes:
- upgrade Linux and MSYS2 to Ubuntu 22.04
- upgrade to Qt 6.9.0
- update dependencies per OS
- eliminate Qt depreciation warnings and obsolete errors
- update EdgeTX fork of maxLibQt as upstream project is no longer actively maintained TODO: consider bringing back into the project as thirdparty rather than an EdgeTX fork and needlessly fetching for each compile
- patch third party QCustomPlot v2.1.1 as it does not support Qt 6.9.0 - TODO replace with release version when available
- new installer bundles
TODO:
- [ ] resolve dependencies for multimedia, ssl, etc
- [ ] update official Docker image https://github.com/EdgeTX/build-edgetx/pull/24
- [ ] update Github workflows
- [ ] update package installers
- [ ] lots of testing especially areas of most likely breakages i.e. audio, Internet, logs viewer, installers
- [ ] test cloud build
- [ ] test gitpod
- [ ] update user build scripts and documentation
- [ ] repoint devcontainer and all git scripts to latest Docker image after PR24 it is merged
Notes:
- Qt multimedia has received a major overhaul so expect it to take some effort by devs in each os to get audio working and bundling for the installers
- Qt networking now supports openssl v3
No need for this one as nightlies don't run on PR context. ;) I'm heading out now so can't look at the build errors sorry. 761cc96 Update nightlies devcontainer image tag
No need for this one as nightlies don't run on PR context. ;) I'm heading out now so can't look at the build errors sorry. 761cc96 Update nightlies devcontainer image tag
Undid that one
I thought I got rid of the compiler warnings only to have a plethora of new ones come to light in win and mac :-(
Compiles across all OSes and reduced compiler warnings to as few as possible. Macos fails building the installer. Suspect variables and paths changed for latest Mac qt installer. However since I do not have macos toolchain, it is not worth another dev tackling just yet since I haven't tested Linux and Win. I expect changes to Linux dependencies which will likely flow to Mac.
A quick "does it run" test of the Linux build suggests that it does (on Linux Mint 22)... loaded up fine, and was able to view, edit and simulate an ETX file. Simulator froze during radio setup when I set a valid SD card path, so possibly something around sound again, although simple "beep" sounds worked if I didn't have the path set.
The AppImage is definitely putting on weight though... :elephant: ... here are the zip file packages for some of the recent releases... :laughing:
Not surprisingly appimage growing so is the devcontainer. You might find some messages in the simulator log. I did have some when running natively in the devcontainer but haven't had time to delve into as the pop up. I suspect this could be painful.
Sounds are imbedded in the executable resources but from memory still get played the same.
Since this is referencing 6.8.2 also (so same as EdgeTX/build-edgetx#24) can you rebase again or push some other commit to this so I can see if the commit tests still work (or not work), and if pillow needs to be pinned again. :zany_face: No great rush. :sleepy:
@pfeerick tested using Linux Companion workflow AppImage. Companion SF play button and tx16S sim on Ubuntu 22.04 and Mint Cinnamon 22.01 VMs and sound heard.
Going to try macdeployqt to fix mac packaging and hopefully reduce the customisation
MacOS package built but does it work?
I do not have one so can one of of you MacOS devs please test.
Does not run on MacOS:
- package name is incorrect 'companion.app', should be 'EdgeTX Companion 3.0.app'
- Missing 'Frameworks', and 'Plugins' folders from bundle (QT, SDL and USB libs)
Does not run on MacOS:
- package name is incorrect 'companion.app', should be 'EdgeTX Companion 3.0.app'
- Missing 'Frameworks', and 'Plugins' folders from bundle (QT, SDL and USB libs)
@philmoz appreciate you testing. I half expected the missing as I suspected it might use the inbuilt cpack DnD. Need to work out the combination of variables. Worse part is how long it takes to build to either fail or succeed and then have someone like yourself check the result.
Does not run on MacOS:
- package name is incorrect 'companion.app', should be 'EdgeTX Companion 3.0.app'
- Missing 'Frameworks', and 'Plugins' folders from bundle (QT, SDL and USB libs)
@philmoz I think I have this fixed in the current state, would you mind checking again?
One complications - once I install Qt 6 (via homebrew), I can't build main branch or older versions such as 2.11. It is using the wrong Qt include files.
Are you doing a clean build when switching back to main/2.11? i.e. so that no QT6 paths are being cached in cmake configuration files? They should be installing into different versioned folders by default... thus able to run multiple versions side by side. Double check environment variables also... ie. .CMAKE_PREFIX_PATH, Qt5_DIR, etc.
And of course, the cmake in main/2.11 might be daft and find QT6 before QT5 or something... hm... shouldn't be from the looks of it though... it is specifically looking for QT5 libraries... :thinking:
One complications - once I install Qt 6 (via homebrew), I can't build main branch or older versions such as 2.11. It is using the wrong Qt include files.
I was able to work around this by deleting all the /usr/local/include/Qt* softlinks that were installed by Qt6. After this it correctly uses the Qt5 or Qt6 include files depending on which version I am building.
Only spotted one minor issue, probably due to some resizing of UI widgets or something... checkboxes were clipped here on the right side on Windows.
Another case of dynamic ui build not auto sizing like it should. Likely needs an explicit kick which I will look at.
Oh, and the simulator buttons radio are being silly... not always turning red.
A combination of events in libsim and Qt not executing in the expected sequence. It is more noticeable when the libsim is running its startup processes which can be quite long especially for colour radio. Once stabilised it is less frequent. Only a short term issue until the new sims are released.
Another case of dynamic ui build not auto sizing like it should. Likely needs an explicit kick which I will look at.
I'd suggest tackling this in a follow-up PR. We need to move on. So many things waiting for this huge PR to be merged.