Skip to content

chore(cpn): upgrade to Ubuntu 22.04 and Qt 6.9.0#5986

Merged
raphaelcoeffic merged 73 commits into
mainfrom
elecpower/chore-noble-qt6
Jul 23, 2025
Merged

chore(cpn): upgrade to Ubuntu 22.04 and Qt 6.9.0#5986
raphaelcoeffic merged 73 commits into
mainfrom
elecpower/chore-noble-qt6

Conversation

@elecpower
Copy link
Copy Markdown
Collaborator

@elecpower elecpower commented Mar 12, 2025

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: (some may roll over into a post merge PR)

  • resolve dependencies for multimedia, ssl, etc
  • update official Docker image chore: bump Qt and dependencies build-edgetx#24
  • update Github workflows
  • update package installers
  • update user build scripts and documentation
  • repoint devcontainer and all git scripts to latest Docker image after PR24 (superseded by 34) 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

Warning: reverts libsims to run inline in Companion due to the unsolvable termination crash in Windows when launching the standalone simulator. This re-introduces the libsim initialisation bug for those libsims which do not unload.

@elecpower elecpower added documentation 📝 Improvements or additions to documentation companion Related to the companion software simulator house keeping 🧹 Cleanup of code and house keeping labels Mar 12, 2025
@elecpower elecpower added this to the 3.0 milestone Mar 12, 2025
@elecpower elecpower marked this pull request as draft March 12, 2025 12:08
@pfeerick
Copy link
Copy Markdown
Member

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

@elecpower
Copy link
Copy Markdown
Collaborator Author

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

@elecpower
Copy link
Copy Markdown
Collaborator Author

I thought I got rid of the compiler warnings only to have a plethora of new ones come to light in win and mac :-(

@elecpower
Copy link
Copy Markdown
Collaborator Author

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.

@pfeerick
Copy link
Copy Markdown
Member

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... 🐘 ... here are the zip file packages for some of the recent releases... 😆

image

@elecpower
Copy link
Copy Markdown
Collaborator Author

elecpower commented Mar 16, 2025

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.

@elecpower
Copy link
Copy Markdown
Collaborator Author

Sounds are imbedded in the executable resources but from memory still get played the same.

@elecpower elecpower force-pushed the elecpower/chore-noble-qt6 branch from be3fb77 to f9317a7 Compare April 29, 2025 05:51
@elecpower elecpower changed the title chore(cpn): upgrade to Ubuntu 24.04 and Qt 6.8.2 chore(cpn): upgrade to Ubuntu 24.04 and Qt 6.9.0 Apr 29, 2025
@pfeerick
Copy link
Copy Markdown
Member

pfeerick commented Apr 29, 2025

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. 🤪 No great rush. 😪

@elecpower elecpower changed the title chore(cpn): upgrade to Ubuntu 24.04 and Qt 6.9.0 chore(cpn): upgrade to Ubuntu 22.04 and Qt 6.9.0 May 2, 2025
@elecpower
Copy link
Copy Markdown
Collaborator Author

elecpower commented May 2, 2025

@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.

@elecpower elecpower force-pushed the elecpower/chore-noble-qt6 branch from 8239da4 to 65edb6c Compare May 3, 2025 01:41
@elecpower
Copy link
Copy Markdown
Collaborator Author

Going to try macdeployqt to fix mac packaging and hopefully reduce the customisation

@elecpower
Copy link
Copy Markdown
Collaborator Author

MacOS package built but does it work?

I do not have one so can one of of you MacOS devs please test.

@philmoz
Copy link
Copy Markdown
Collaborator

philmoz commented May 4, 2025

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)

@elecpower
Copy link
Copy Markdown
Collaborator Author

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.

@elecpower elecpower force-pushed the elecpower/chore-noble-qt6 branch 2 times, most recently from 8d39257 to 4db90df Compare May 10, 2025 23:05
@elecpower elecpower force-pushed the elecpower/chore-noble-qt6 branch from 9801edd to c39ae51 Compare May 25, 2025 09:14
@elecpower elecpower force-pushed the elecpower/chore-noble-qt6 branch from c39ae51 to b05203d Compare June 4, 2025 10:34
@elecpower elecpower force-pushed the elecpower/chore-noble-qt6 branch from 7971ffa to f485862 Compare June 29, 2025 20:52
@elecpower elecpower marked this pull request as ready for review July 1, 2025 08:40
@elecpower elecpower force-pushed the elecpower/chore-noble-qt6 branch from 9d08d06 to 67938cc Compare July 9, 2025 20:52
@elecpower elecpower force-pushed the elecpower/chore-noble-qt6 branch from 45b8171 to bfad0bd Compare July 22, 2025 13:22
pfeerick
pfeerick previously approved these changes Jul 23, 2025
Copy link
Copy Markdown
Member

@pfeerick pfeerick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This appears to be working perfectly on both Linux Mint and Windows 11 - was able to read/write from radio, ETX file, edit some stuff, preview settings for printing, do update checks, sync SD card, simulate, etc.

The annoying audio not working in model SF tab gremlin seems to be banished also!

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. Oh, and the simulator buttons radio are being silly... not always turning red. Otherwise LGTM! Quite like the new look of the trim/switch sliders :)

Image

@philmoz
Copy link
Copy Markdown
Collaborator

philmoz commented Jul 23, 2025

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.

@pfeerick
Copy link
Copy Markdown
Member

pfeerick commented Jul 23, 2025

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... 🤔

@philmoz
Copy link
Copy Markdown
Collaborator

philmoz commented Jul 23, 2025

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.

@elecpower
Copy link
Copy Markdown
Collaborator Author

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.

@raphaelcoeffic
Copy link
Copy Markdown
Member

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.

@raphaelcoeffic raphaelcoeffic force-pushed the elecpower/chore-noble-qt6 branch from df6d7e2 to c964013 Compare July 23, 2025 09:58
@raphaelcoeffic raphaelcoeffic merged commit 9e86a3e into main Jul 23, 2025
45 checks passed
@raphaelcoeffic raphaelcoeffic deleted the elecpower/chore-noble-qt6 branch July 23, 2025 12:04
pfeerick added a commit that referenced this pull request Jul 24, 2025
@pfeerick pfeerick modified the milestones: 3.0, 2.12.0 Dec 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

companion Related to the companion software documentation 📝 Improvements or additions to documentation house keeping 🧹 Cleanup of code and house keeping simulator

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants