-
Notifications
You must be signed in to change notification settings - Fork 79
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
Setup Linux CI for Qt5.15.8+KDAB using minimum glibc version compatibility #9350
Comments
Actually, we could combine using Nix together with use of https://github.com/wheybags/glibc_version_header. |
Hi guys, I started to research on this issue. Here is a first finding - there is no binary for Qt 5.15.3+ available.
which taked binaries from https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/ Do I miss smth here and there are other "Prebuilt binaries of Qt5.15.8" for Linux? |
Homebrew maintained binaries: For example |
Ubuntu packages:
https://packages.ubuntu.com/search?keywords=qtbase5-dev&searchon=names&suite=all§ion=all |
Compilation doc: |
23.04 apparently has 5.15.8 |
Yes, at that time we've found the binaries in Homebrew, nix packages and the Ubuntu distro @caybro is using. @caybro Can you please share the url for the Ubuntu distro you're using? IDK if it helps, but for the record 😄 |
Not using Ubuntu but Fedora but here you go 😆 |
@yakimant The downside of using Homebrew packages is that the Docker image will increase in size. Around 8gb if I remember correctly. Probably it doesn't really matter if we're downloading the image only once per machine and this doesn't affect the CI jobs duration. |
That's interesting, nix uses KDE patched sources for Qt5: But original for Qt6: |
Because for Qt 6, there's no difference between publicly available OSS and commercial versions |
Thanks for you comments! How can I reproduce the issue? No issues for Windows and macOS, right? |
To reproduce this you'll need to download Qt5.15.8+ binaries and use them to compile status desktop on the Docker image we're currently using. |
Cool! Is it a build time or runtime issue? |
Also, can you please share, which 5.15.8+ binaries did you use, that are compiled with glibc 2.28? |
@micieslak helped to disable Qt WebEngine, which we expected to cause a crash: #13540 The app is running and login is succesfull, no crash anymore. @stefandunca, can you please help to understand, how much do we need / use it? Thank you guys, great help with the project! |
As discussed privately, we need this for Wallet Connect. There is a workaround using a WebView, but it would require more work to re-implement. |
Not sure it would help. It probably depends on what is the root cause of this crash. I guess the first step would be to pinpoint the root cause. |
@yakimant i tested this build with my autotests and all looks good. The only thing i noticed, is when i run application in test mode (adding env var STATUS_RUNTIME_TEST_MODE = True) - then my tests cant attach to the nix build. All good in this mode for old build, no errors Nix build with test mode enabled: Normal nightly with test mode enabled: Wonder what that could be , because my big hope was to upgrade to 5.15.8 and run my tests with this env var |
I also found this today (just normal run of my tests, no test mode enabled):
as result, squish cant connect and all tests failed
Logs are available here https://ci.status.im/job/status-desktop/job/e2e/job/manual/1564/ @yakimant do you have any isight what that could be? The host selected was Linux 03, maybe it is not yet properly set up? |
Possible solutions:
What's interesting libc from Nix Store |
We have a progress on qtwebengine/wallet issue after Athens offsite. The build loads post-login screen: @anastasiyaig, can you please have a look? Meanwhile I will rebase PR from master. |
Doesn't run on 22.04 in my case, just stucks on loading after entering password. Logs arent different from 20.04 run, but just for the reference, these are the last lines:
|
Update on current issues:
So I see no blockers. @anastasiyaig, can you confirm, when you are back. |
sure @yakimant , thanks for your time and effort, i will follow up on that when I am back |
@alexjba, @caybro, if you are interested, here is the build: If we don't find blockers - I will polish the code and merge. The next steps (if everything goes well) would be:
|
According to @anastasiyaig, smoke tests are passing. |
yup right we can do more tests afterwards |
Leftovers from #9232:
Next:
This list will be updated |
The latest opensourse version is 5.15.14: Comercial is 5.15.17: They delay source code by 1 year, so it will appear like that:
|
Description
Prebuilt binaries of Qt5.15.8 are compiled using glibc 2.28 and migrating to this version will breaking compatibility with older linux versions.
The purpose of this task is to setup the Linux CI to use latest Qt5.15.8 + KDAB fixes and keep the glibc dependency to a lower version (Ideally 2.23 or lower). Also, we will have this issue when moving to Qt6 and solving this will also help long term with newer qt versions.
There are multiple options that could be considered:
On the CI side there are two approaches that were considered when migrating to Qt5.15: Docker and Nix. Nix is preferred, but it has the same limitation - will break compatibility with older linux dostros. We're using Docker for now.
See: #9222, #9232
The text was updated successfully, but these errors were encountered: