New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix ARM CI with QT6 #22756
Fix ARM CI with QT6 #22756
Conversation
This PR does not implement the ability to toggle QT5 OFF/ON in the CI (unlike Linux x64 CI). If this is needed let me know. |
Passing CI with above commit https://github.com/theofficialgman/MuseScore/actions/runs/9036508620 |
I seem to recall that switching to Ubuntu 22 had some undesirable side effects. @igorkorsukov do you remember more about this? I guess it would mean that MuseScore can't run anymore on Ubuntu 20 and other older OSs because of mismatching C standard library versions, and I'm not sure if we're already ready to drop support for these OSs. OTOH, if the maintainer of Ubuntu is already deprecating 20, that might mean that not many users use it anymore. |
That's not needed; soon, all traces of Qt 5 will be removed from the master branch. Also, this PR contains quite some commented code. It would be preferable to delete it entirely, before this PR is merged. |
Github will start the deprecation process for Ubuntu 20.04 runner soon. It will be removed late this year same as happened for 18.04 two year ago. Its a known process, they only support the latest two LTS at once. Building on Jammy or newer is a requirement for Wayland support for Jammy and newer distros (see the link I posted in the first comment). So now is the time to implement this. |
Sure but I would like feedback on this comment first:
I am not going to waste time cleaning up |
I don’t remember which ones exactly, but there were problems with the vtests, so we went back to 20.04
We don’t know how we can assess which users there are more, and, accordingly, which part of the users we should refuse. |
We cannot use Qt6 from the distro, because there are differences in behavior between different versions of Qt6 (6.2 and 6.5), in order for us to ensure the stability of the application, we need one predefined version of Qt6 and this is 6.2.4. |
That's not what I was saying. Instead of using your built QT6 tarballs, use the Ubuntu Jammy QT6 (also 6.2.4) and package it in the appimages. This is what is done from the CI for ARM. I'm not saying use the QT6 version from the USERS distro. |
If the build from Ubuntu repositories is 6.2.4 and stays 6.2.4 until we explicitly ask for something else, and they didn't compile it in any unusual Ubuntu-specific way, then I guess that build is as good as any other build (e.g. self-built ones). So that would be fine, right? (@igorkorsukov) |
Looks like I misunderstood... @cbjeukendrup , yes that's right. |
Okay. So @theofficialgman, if Ubuntu's Qt distribution is compatible with non-Ubuntu and indeed stays at 6.2.4 until we ask for something else, you can use that one. |
320d1be
to
5dab043
Compare
linuxdeploy-plugin-qt now has armhf and aarch64 official appimages
5dab043
to
d281259
Compare
It is. The ARM builds have always been non-QT official builds (since QT doesn't produce official Desktop ARM Linux builds, at least on any current LTS release). |
d281259
to
1c9efdd
Compare
Ok I dropped that change for the x64 linux builds then. You can update to Jammy when you are forced to then (in a few months). You will need to continue to disable Wayland for x64 release builds until you update to Jammy. |
also adjust order of setup-arm.sh for eventual merging with setup.sh when either the distro QT is used for packaging or QT produces Linux ARM desktop QT
(The test failure comes from the master branch and is not related to this PR) |
Resolves: #22178
Resolves: #18598
The ARM CI was not updated to support QT6 and so builds have been failing (eg: https://github.com/musescore/MuseScore/actions/runs/9026607087)
This PR firstly fixes the use of
qmake6
from distro repositories (whereqmake
is only QT5).It makes the necessary changes to the ARM CI to use QT6 from the distro repositories on Ubuntu Jammy.
And finally it changes all remaining CI to use Ubuntu Jammy (as mentioned here #18598 (comment)).If desired, the x64 Linux build could be swapped over to using the distro QT6 instead of the custom QT6 build and this would allow the
setup.sh
andsetup-arm.sh
to be fully combined