Skip to content

Increase Linux support #3209

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

Merged
merged 32 commits into from
Mar 23, 2025
Merged

Increase Linux support #3209

merged 32 commits into from
Mar 23, 2025

Conversation

mattleibow
Copy link
Contributor

@mattleibow mattleibow commented Mar 18, 2025

Description of Change

After updating all the skia versions, agents and Dpcker files, we ended up on Debian 10 which uses GLIBC 2.31 which broke the support for RHEL 8.

This PR drops down the version of the build Docker to Debian 10 which is also still under ELTS.

One reason we went to Debian 11 was the depot_tools required Python 3.8, and Debian 10 only went up to Python 3.7. However, I found that there was just a single file that had 3.8 requirements and that was just because they wrote it using a new mechanism. There was a slightly different way in 3.7, so I opened an issue https://issues.chromium.org/issues/403485632 and then also a https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/6355868. Once (hopefully) the CL gets merged, I can remove the workaround in the cake files.

This PR has grown a bit and in an effort to not have many conflicts and double work, I merged in #3200.

This PR now has arm, arm64, x86, x64, riscv64 builds for glibc and musl, both normal and no-fontconfig.

Bugs Fixed

@4Darmygeometry
Copy link
Contributor

4Darmygeometry commented Mar 19, 2025

Errors are existing in Tests: Mac Catalyst (macOS)
Screenshot_2025_0319_223102.png

https://dev.azure.com/xamarin/public/_build/results?buildId=138165

# Conflicts:
#	native/linux-clang-cross/build.cake
#	scripts/Docker/_clang-cross-common.sh
#	scripts/Docker/alpine/clang-cross/Dockerfile
#	scripts/Docker/alpine/clang-cross/build-local.sh
#	scripts/Docker/debian/clang-cross/build-local.sh
#	scripts/azure-templates-stages.yml
Copy link
Contributor

Choose a reason for hiding this comment

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

if we cross compile all archs, then we don't need these arch specific ones.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I am having issues with cross-compiling all archs. Debian x64 to x64 and Alpine x86. Once I get those to build then I can drop.

Comment on lines +5 to +7
string TOOLCHAIN_ARCH = Argument("toolchainArch", EnvironmentVariable("TOOLCHAIN_ARCH"));
string TOOLCHAIN_ARCH_SHORT = Argument("toolchainArchShort", EnvironmentVariable("TOOLCHAIN_ARCH_SHORT"));
string TOOLCHAIN_ARCH_TARGET = Argument("toolchainArchTarget", EnvironmentVariable("TOOLCHAIN_ARCH_TARGET"));
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I now define these in the Docker container instead of having it calculated in other places each time we use it.

Copy link
Contributor

Choose a reason for hiding this comment

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

running file output/path/libSkiaSharp.so will validate if we are producing the correct arch/bitness compared to main branch

@mattleibow mattleibow merged commit f9d11b3 into main Mar 23, 2025
2 checks passed
@mattleibow mattleibow deleted the dev/linux-versions branch March 23, 2025 16:47
@mattleibow
Copy link
Contributor Author

Something is wrong with the dotnet installer script host. So nothing is working on CI.

I am trying to get someone to have a look.

@kasperk81
Copy link
Contributor

@4Darmygeometry did you not understand what he meant by "CI issue"? i have told you the same thing earlier

@4Darmygeometry
Copy link
Contributor

@4Darmygeometry did you not understand what he meant by "CI issue"? i have told you the same thing earlier

I understand the meaning of "CI issue". I just want to see how to solve the download problem of .net

@mattleibow
Copy link
Contributor Author

It may just be me, but I am feeling that there may be a bit of hostility here. Please make sure that everyone feels welcome so we are all able to work together. Keep in mind that there are many different cultures and languages here that may cause misunderstandings.

@kasperk81
Copy link
Contributor

they deleted the context of the conversation, comments before mine. so it seems like it.

what you are missing is:

  1. in another issue i have clarified what is the ci error about
  2. in this issue i was pinged as if it's my fault the network error
  3. in this repo, they copied my work (issue and PR)

so me being blunt is a problem for you and they stealing my work isn't?
@terrajobst is this in accord to .net foundation rules? who exactly is being unreasonable here. I'd love to know!

@mattleibow
Copy link
Contributor Author

mattleibow commented Mar 25, 2025

Hi folks,

The builds are now available on the preview feed: https://aka.ms/skiasharp-eap/index.json
Let me know if version 3.119.0-preview.0.38 is now working again for you.

As soon as you let me know, I can release this to NuGet and then hopefully a stable version shortly afterwards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

SkiaSharp 3.x does not work on RHEL 8
3 participants