-
Notifications
You must be signed in to change notification settings - Fork 223
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
Build CI on ubuntu 20 for Linux #3229
Conversation
base_command: TARGET_ARCH=armhf ./.github/autobuild/linux_deb.sh | ||
run_codeql: false | ||
|
||
- config_name: Linux .deb arm64 (artifacts) | ||
target_os: linux | ||
building_on_os: ubuntu-22.04 | ||
building_container: ubuntu:18.04 | ||
building_container: ubuntu:20.04 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should be tested on older Ubuntu versions. We had problems with pan pots not showing up due to something being broken with the dependencies.
@hoffie do you remember?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we would be justified in specifying that the next version requires Ubuntu 20.04 or newer. I can easily check that the CI build runs on 20.04. I will need to create a 22.04 VM on VirtualBox before I can check it on that version.
I don't think we need to continue supporting 18.04.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmmm, it looks like VirtualBox only provides 44100Hz audio to the guest OS, and not 48000Hz. So it might need a physical PC to test it. Maybe USB passthrough from host (Windows) to guest (Ubuntu) might allow a 48kHz audio device?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, I managed to set up jack with a dummy device at 48000Hz, which allowed me to run the Jamulus client.
On Ubuntu 22, it does indeed fail to display the pan pot. Will try 20 as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My mistake. I had not set the audio to Stereo. Once I had done so, the pan pot showed up fine on Ubuntu 22. Will try 20 too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just as reference: #795 (comment)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, the artifact built on Ubuntu 20 from this PR's action runs fine on Ubuntu 20 and Ubuntu 22, and shows the pan pots correctly in both cases.
It does not run on Ubuntu 18, giving the following errors on invocation:
tony@ubuntu18desktop:~$ jamulus
jamulus: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by jamulus)
jamulus: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.12' not found (required by jamulus)
I think this is fine. but we should make it clear somewhere that our future release builds need to run on Ubuntu 20 or newer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done some further tests with the same artifact on different versions of Debian:
- Debian 12 (stable) (Qt 5.15.8): runs fine, pan pots show properly
- Debian 11 (oldstable) (Qt 5.15.2): runs fine, pan pots show properly
- Debian 10 (obsolete) (Qt 5.11.3): fails to run with the same errors as Ubuntu 18 above.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok. So this sounds good.
I believe that we will need to drop official support for < 5.9 in the future. macOS legacy builds on 5.9, I think. |
Yes, I also have a branch waiting for me to raise a PR to build Mac Legacy with Qt 5.15.2 instead of 5.9.5. That will still support MacOS High Sierra 10.13 or newer, but will no longer support 10.10, 10.11 or 10.12. I think that will be fine. |
Given that the executable built on Ubuntu 20 with Qt 5.12.8 will not run on systems with a lower version of Qt than 5.12, we will also need to update the dependencies in Line 20 in e462529
Line 34 in e462529
I can add that to this PR soon. |
2c9bdd1
to
fad7618
Compare
I'll check the new .deb on the same systems above once it is built. |
Yes. I think I removed the automatic dependency variables. Maybe they can be re-added now. |
Ah yes, I've just found the relevant commit 40ca392. I'll do some tests to see what adding them back produces. |
After adjusting the dependency versions for |
I did a test build with the auto-dependency variables reinstated:
The .deb produced results in different dependencies, which I would assume are correct according to the package rules:
and
I then did a test install of these packages on the three versions of Debian and three of Ubuntu. Debian 10 and Ubuntu 18 correctly refused to install due to dependencies. Debian 11/12 and Ubuntu 20/22 all installed and ran correctly. So I will update |
b7a84a8
to
911b14d
Compare
Are there still concerns with this, or can we move forward with approval and merging? |
Same issue as with macOS, but I think upgrading Linux is much easier. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe also check that COMPILING.md is up to date.
CONTRIBUTING.md needs to be updated. |
I can't see anything in that file that would be affected by this change. |
It's the minimum version in CONTRIBUTING.md |
Yes, indeed, I've just updated that. It was in COMPILING.md that I couldn't see any changes needed. |
Short description of changes
These are the changes needed for the CI to build the three Linux artefacts using Ubuntu 20.04 instead of the EOL 18.04
CHANGELOG: Autobuild: Build Linux releases on Ubuntu 20.04 instead of 18.04
Context: Fixes an issue?
This is needed before dependabot #3168 can be applied successfully.
checkout@v4
will not run on Ubuntu 18.It also has the advantage that Ubuntu 20.04 uses Qt 5.12 (U18.04 uses Qt 5.9), which will make it easier to progress #2393
Does this change need documentation? What needs to be documented and how?
The release notes should make it clear what versions of OS are compatible: Ubuntu >= 20, Debian >= 11
Status of this Pull Request
Ready to merge
What is missing until this pull request can be merged?
Review
Checklist