-
Notifications
You must be signed in to change notification settings - Fork 704
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
[Skia.Gtk] Skia is looking for files that don't exist on Arm64 #8296
Comments
Thanks for the report. Uno is not handling this part of the loading, and is likely a GtkSharp related issue. |
@bstrother1 I ran into the same issue while following the getting started docs.
Adding
The next problem is that the native
but since you mentioned using the net6 templates maybe you won't hit that similar issue.
|
Indeed, SkiaSharp will need an arm64 build as well. One more thing to do for SkiaSharp :) It may be similar to mono/SkiaSharp#1829. |
…d gtk+3 brew used to install libraries under `/usr/local/` and GtkSharp still expect this location. https://github.com/GtkSharp/GtkSharp/blob/7995f132e19e18b8dae94359246540f059e53a86/Source/Libs/Shared/GLibrary.cs#L55 This fix will lookup the new library location `/opt/homebrew/lib/` if the default ones (OS) or the `/usr/local/lib` could not load the libraries. Reference: unoplatform/uno#8296 (comment) Fixes GtkSharp#249
@jeromelaban SkiaSharp has an Sadly the Skia version, checked at runtime, is different so you can't simply copy the newer fat binary as a quick workaround for Uno on macOS/M1 :-( I have not found (honestly I did not look very hard) where the |
Just FWI I hacked my local
and I can now run the Gtk template/sample on my M1-based mac computer. YMMV |
Where can I find this file? Thanks! |
The exact location can vary depending on the Uno version you're using. Try the following command to locate it inside your nuget cache. $ find ~/.nuget -name uno.ui.runtime.skia.gtk.nuspec On my system the location returned is:
Since I posted the workaround I noticed that the R(ed) and B(lue) channel seems inverted by Skia. That's likely something else that changed between the old 2.80 and the newer 2.88 release. |
Indeed, we've noticed something like this depending on the platforms or OS configuration maybe. We're not definitely handling it properly. |
I lack a variety of platform to test, but it happens on my M1 mac. Since it's not realted t the original issue I filed a new issue for this problem: #8580 |
Current behavior
Seems like a bug. Template Net 6 Gtk is looking for specific files that might not exist on a standard installation of gtk on an ARM64 mac.
Expected behavior
Gtk to build on an arm64 mac
How to reproduce it (as minimally and precisely as possible)
-> Have a Arm64/Monterey Mac Environment
-> Install gtk+3
-> attempt to run https://github.com/unoplatform/uno/discussions/8263#:~:text=dotnet%20App.Skia.Gtk.dll
-> get System.DllNotFoundException: libgtk-3-0.dll, libgtk.so.0, libgtk-3.0.dylib, gtk-3.dll
Workaround
n/a
Works on UWP/WinUI
Yes
Environment
Other
NuGet package version(s)
Latest Net6 template
Affected platforms
macOS, Skia (GTK on Linux/macOS/Windows)
IDE
Visual Studio 2022
IDE version
17.0.7303
Relevant plugins
No response
Anything else we need to know?
This was a discussion but it seems to be a bug relating to the fix for gtk on Monterey producing different files.
The text was updated successfully, but these errors were encountered: