Can an apple silicon native version be provided in the DMG installer?

Asked by Code.

Right now running the DMG prompts to install Rosetta. Is it possible for there to be a native or universal DMG file provided?

Question information

Language:
English Edit question
Status:
Answered
For:
Pinta Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Cameron White (cameronwhite91) said :
#1

I think it's probably possible as long as the native dependencies like GTK3 and dotnet have compatible versions (dotnet should, but I'm not sure about GTK3)
I don't have an apple silicon machine to test on though which is why this hasn't happened yet

Revision history for this message
Code. (superusercode) said :
#2

```
➜ Pinta git:(master) dotnet run --project pinta
Unhandled exception. System.TypeInitializationException: The type initializer for 'Adw.Application' threw an exception.
 ---> System.DllNotFoundException: Unable to load shared library 'libgtk-4.1.dylib' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable:
dlopen(/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/libgtk-4.1.dylib.dylib, 0x0001): tried: '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/libgtk-4.1.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/libgtk-4.1.dylib.dylib' (no such file), '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/libgtk-4.1.dylib.dylib' (no such file)
dlopen(/Users/cool/Downloads/Pinta/bin/libgtk-4.1.dylib.dylib, 0x0001): tried: '/Users/cool/Downloads/Pinta/bin/libgtk-4.1.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/cool/Downloads/Pinta/bin/libgtk-4.1.dylib.dylib' (no such file), '/Users/cool/Downloads/Pinta/bin/libgtk-4.1.dylib.dylib' (no such file)
dlopen(libgtk-4.1.dylib.dylib, 0x0001): tried: 'libgtk-4.1.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibgtk-4.1.dylib.dylib' (no such file), '/usr/lib/libgtk-4.1.dylib.dylib' (no such file, not in dyld cache), 'libgtk-4.1.dylib.dylib' (no such file), '/usr/local/lib/libgtk-4.1.dylib.dylib' (no such file), '/usr/lib/libgtk-4.1.dylib.dylib' (no such file, not in dyld cache)
dlopen(/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/liblibgtk-4.1.dylib.dylib, 0x0001): tried: '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/liblibgtk-4.1.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/liblibgtk-4.1.dylib.dylib' (no such file), '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/liblibgtk-4.1.dylib.dylib' (no such file)
dlopen(/Users/cool/Downloads/Pinta/bin/liblibgtk-4.1.dylib.dylib, 0x0001): tried: '/Users/cool/Downloads/Pinta/bin/liblibgtk-4.1.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/cool/Downloads/Pinta/bin/liblibgtk-4.1.dylib.dylib' (no such file), '/Users/cool/Downloads/Pinta/bin/liblibgtk-4.1.dylib.dylib' (no such file)
dlopen(liblibgtk-4.1.dylib.dylib, 0x0001): tried: 'liblibgtk-4.1.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSliblibgtk-4.1.dylib.dylib' (no such file), '/usr/lib/liblibgtk-4.1.dylib.dylib' (no such file, not in dyld cache), 'liblibgtk-4.1.dylib.dylib' (no such file), '/usr/local/lib/liblibgtk-4.1.dylib.dylib' (no such file), '/usr/lib/liblibgtk-4.1.dylib.dylib' (no such file, not in dyld cache)
dlopen(/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/libgtk-4.1.dylib, 0x0001): tried: '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/libgtk-4.1.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/libgtk-4.1.dylib' (no such file), '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/libgtk-4.1.dylib' (no such file)
dlopen(/Users/cool/Downloads/Pinta/bin/libgtk-4.1.dylib, 0x0001): tried: '/Users/cool/Downloads/Pinta/bin/libgtk-4.1.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/cool/Downloads/Pinta/bin/libgtk-4.1.dylib' (no such file), '/Users/cool/Downloads/Pinta/bin/libgtk-4.1.dylib' (no such file)
dlopen(libgtk-4.1.dylib, 0x0001): tried: 'libgtk-4.1.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibgtk-4.1.dylib' (no such file), '/usr/lib/libgtk-4.1.dylib' (no such file, not in dyld cache), 'libgtk-4.1.dylib' (no such file), '/usr/local/lib/libgtk-4.1.dylib' (no such file), '/usr/lib/libgtk-4.1.dylib' (no such file, not in dyld cache)
dlopen(/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/liblibgtk-4.1.dylib, 0x0001): tried: '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/liblibgtk-4.1.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/liblibgtk-4.1.dylib' (no such file), '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/7.0.7/liblibgtk-4.1.dylib' (no such file)
dlopen(/Users/cool/Downloads/Pinta/bin/liblibgtk-4.1.dylib, 0x0001): tried: '/Users/cool/Downloads/Pinta/bin/liblibgtk-4.1.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/cool/Downloads/Pinta/bin/liblibgtk-4.1.dylib' (no such file), '/Users/cool/Downloads/Pinta/bin/liblibgtk-4.1.dylib' (no such file)
dlopen(liblibgtk-4.1.dylib, 0x0001): tried: 'liblibgtk-4.1.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSliblibgtk-4.1.dylib' (no such file), '/usr/lib/liblibgtk-4.1.dylib' (no such file, not in dyld cache), 'liblibgtk-4.1.dylib' (no such file), '/usr/local/lib/liblibgtk-4.1.dylib' (no such file), '/usr/lib/liblibgtk-4.1.dylib' (no such file, not in dyld cache)

   at System.Runtime.InteropServices.NativeLibrary.LoadByName(String libraryName, QCallAssembly callingAssembly, Boolean hasDllImportSearchPathFlag, UInt32 dllImportSearchPathFlag, Boolean throwOnError)
   at System.Runtime.InteropServices.NativeLibrary.LoadLibraryByName(String libraryName, Assembly assembly, Nullable`1 searchPath, Boolean throwOnError)
   at Gtk.Internal.ImportResolver.Resolve(String libraryName, Assembly assembly, Nullable`1 searchPath)
   at System.Runtime.InteropServices.NativeLibrary.LoadLibraryCallbackStub(String libraryName, Assembly assembly, Boolean hasDllImportSearchPathFlags, UInt32 dllImportSearchPathFlags)
   at Gtk.Internal.Functions.Init()
   at Gtk.Module.Initialize()
   at Adw.Module.Initialize()
   at Adw.Application..cctor()
   --- End of inner exception stack trace ---
   at Adw.Application.New(String applicationId, ApplicationFlags flags)
   at Pinta.MainClass.Main(String[] args) in /Users/cool/Downloads/Pinta/Pinta/Main.cs:line 97
➜ Pinta git
```
Is what following the mac build instructions results in currently.

Revision history for this message
Cameron White (cameronwhite91) said :
#3

It looks like it can't locate the GTK libraries, so I'd check if the `brew install` commands earlier in the build instructions ran successfully?
Pinta's master branch has been ported to GTK4, so it's possible there is some other issue introduced which causes problems on apple silicon

Revision history for this message
Code. (superusercode) said :
#4

I ran the brew install command again and it said all of the packages are installed, so unless I need to manually add things to path everything is successful up to the run command. The dotnet build has no errors at all.

Revision history for this message
Cameron White (cameronwhite91) said :
#5

yeah I wonder if there's something off with the homebrew installation.
In the logs I noticed '/usr/local/lib/libgtk-4.1.dylib' (no such file)', but that file does exist on my system from the gtk+4 package

Revision history for this message
Janne Tervo (janne-tervo) said :
#6

For me the brew-installed dynamic libaries were not in path and the error message was not helfpul.

Following works for me for this error:

DYLD_LIBRARY_PATH=/opt/homebrew/lib/ dotnet run --project Pinta

You could also export the DYLD_LIBRARY_PATH from some configuration file.

Can you help with this problem?

Provide an answer of your own, or ask Code. for more information if necessary.

To post a message you must log in.