MacOS Arm64 Builds

98 views
Skip to first unread message

Sachin Shrestha

unread,
Mar 7, 2025, 7:28:00 PMMar 7
to gaffer-dev
Hi,

This is probably for a very small group of users but anyone requiring macOS arm64 builds can download them from my temp repo here:


I try to build whenever there is a new official release so hopefully that will continue at the same frequency.

Note that the macOS builds are for experimentation only and some critical features (or not depending on your pov) like viewport rendering don't work currently and will immediately crash gaffer so don't even try it. I have built with both Arnold and 3Delight - version details in the release description.

-Sachin

Martino Madeddu

unread,
Mar 8, 2025, 5:56:52 AMMar 8
to gaffe...@googlegroups.com
This is great Sachin,
Always wished there was a macOS version compiled (mostly to use to prototype on the go etc). Thanks a lot for sharing this.

I am getting an error though, looks like i ma missing some QT5 dependancies. I even tried to install QT5 through pip3 but didn't fix it.
looks like i am missing the QTcore.framework.

Admittedly i am on a M3 pro machine, but that should still work with your M1 build i believe right?
any idea?
here is the error anyway:

Traceback (most recent call last):

  File "/Users/martinomadeddu/software/gaffer-1.5.8.0-macos-arm64/bin/__gaffer.py", line 179, in <module>

    app = loadApp( appName )

  File "/Users/martinomadeddu/software/gaffer-1.5.8.0-macos-arm64/bin/__gaffer.py", line 92, in loadApp

    return appLoader.load( appName )()

  File "/Users/martinomadeddu/software/gaffer-1.5.8.0-macos-arm64/python/IECore/ClassLoader.py", line 163, in load

    spec.loader.exec_module( module )

  File "<frozen importlib._bootstrap_external>", line 883, in exec_module

  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed

  File "/Users/martinomadeddu/software/gaffer-1.5.8.0-macos-arm64/apps/gui/gui-1.py", line 45, in <module>

    import GafferUI

  File "/Users/martinomadeddu/software/gaffer-1.5.8.0-macos-arm64/python/GafferUI/__init__.py", line 125, in <module>

    from ._GafferUI import *

ImportError: dlopen(/Users/martinomadeddu/software/gaffer-1.5.8.0-macos-arm64/python/GafferUI/_GafferUI.so, 0x0002): Library not loaded: /tmp/build/lib/QtCore.framework/Versions/5/QtCore

  Referenced from: <A1062C06-CCFF-3AC2-99B6-04C9678C4E2B> /Users/martinomadeddu/software/gaffer-1.5.8.0-macos-arm64/python/GafferUI/_GafferUI.so

  Reason: tried: '/Users/martinomadeddu/software/gaffer-1.5.8.0-macos-arm64/lib/QtCore.framework/Versions/5/QtCore' (code signature in <4296FD11-67C2-3EEE-9DF4-B26F97C66C79> '/Users/martinomadeddu/software/gaffer-1.5.8.0-macos-arm64/lib/QtCore.framework/Versions/5/QtCore' not valid for use in process: library load disallowed by system policy), '/tmp/build/lib/QtCore.framework/Versions/5/QtCore' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/tmp/build/lib/QtCore.framework/Versions/5/QtCore' (no such file), '/tmp/build/lib/QtCore.framework/Versions/5/QtCore' (no such file), '/Library/Frameworks/QtCore.framework/Versions/5/QtCore' (no such file), '/System/Library/Frameworks/QtCore.framework/Versions/5/QtCore' (no such file, not in dyld cache)



thank you.



Martino Madeddu

 | 

VFX Supervisor


Untold Studios.

White Collar Factory | 1 Old Street Yard | London | EC1Y 8AF


+44 7526 594 487

 | 

+44 208 016 6111

untoldstudios.tv


--
You received this message because you are subscribed to the Google Groups "gaffer-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gaffer-dev+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/gaffer-dev/68e403a3-17f2-4e5b-9081-dc14be83e19en%40googlegroups.com.


--


Martino Madeddu

 | 

VFX Supervisor


Untold Studios.

White Collar Factory | 1 Old Street Yard | London | EC1Y 8AF


+44 7526 594 487

 | 

+44 208 016 6111

untoldstudios.tv


Sachin Shrestha

unread,
Mar 8, 2025, 6:28:12 AMMar 8
to gaffe...@googlegroups.com
Hi Martino,

That's odd...it should pick up all the libs including the Qt ones from the lib directory in the gaffer package itself since, afaik those come pre-compiled with the gaffer dependencies project. While I do build my stuff to /tmp/build, it should work regardless when packaged up as I move my build out of /tmp and run it from my install path and it works. Or maybe it's working at my end due to some ld cache. I am wondering if this is some rpath issue when building on MacOS although I didn't face such issues at my end. I will try to investigate this and put up new builds once I find the issue.

In the meantime, probably a stupid idea but can you try to copy the entire gaffer directory to /tmp, rename it as build and then run /tmp/build/bin/gaffer and check if you still face the issue?

-Sachin

Martino Madeddu

unread,
Mar 8, 2025, 12:25:42 PMMar 8
to gaffe...@googlegroups.com
Thanks for your reply Sachin,
i did try to copy the whole Gaffer folder to /tmp/ but was still getting similar errors.
this seems to be the folder missing (after copying and renaming to build in /tmp/): /System/Library/Frameworks/QtCore.framework/Versions/5/QtCore

That folder missing was showing up as an error prior to copying and renaming too.
i wonder if just copying that dependancy in that location from the Gaffer build will do. I'll give it a go soon.


Martino Madeddu

 | 

VFX Supervisor


Untold Studios.

White Collar Factory | 1 Old Street Yard | London | EC1Y 8AF


+44 7526 594 487

 | 

+44 208 016 6111

untoldstudios.tv


Martino Madeddu

unread,
Mar 8, 2025, 12:38:02 PMMar 8
to gaffe...@googlegroups.com
yeah, looks like the QT library frameworks are being referenced from /System/Library/ instead of /path_to_gaffer/lib/ ?


Martino Madeddu

 | 

VFX Supervisor


Untold Studios.

White Collar Factory | 1 Old Street Yard | London | EC1Y 8AF


+44 7526 594 487

 | 

+44 208 016 6111

untoldstudios.tv


On Sat, Mar 8, 2025 at 5:25 PM Martino Madeddu <mar...@untoldstudios.tv> wrote:
Thanks for your reply Sachin,
i did try to copy the whole Gaffer folder to /tmp/ but was still getting similar errors.
this seems to be the folder missing (after copying and renaming to build in /tmp/): /System/Library/Frameworks/QtCore.framework/Versions/5/QtCore

That folder missing was showing up as an error prior to copying and renaming too.
i wonder if just copying that dependancy in that location from the Gaffer build will do. I'll give it a go soon.

Sachin Shrestha

unread,
Mar 11, 2025, 2:08:28 AMMar 11
to gaffer-dev
Hi Martino,

Based on the conversation in this discord thread, it seems like there may be some rpath issues with the pre-compiled gaffer dependencies project itself. Murray has pointed out a different branch with some fixes for the same so I am going to try some new builds and share when they are ready.

Cheers,

Sachin Shrestha

unread,
Mar 11, 2025, 2:35:22 AMMar 11
to gaffer-dev
Hi Martino,

Murray's fixes seem to have worked and I was able to build to a different path other than /tmp/build. Hopefully, this will rule out the previous lib issues. Please try out the macOS release below and let me know if it works fine for you. This also means that all the previous builds potentially have the same issue so I'll probably rebuild them as well and overwrite the previous releases.


Cheers,

Martino Madeddu

unread,
Mar 11, 2025, 5:23:55 AMMar 11
to gaffe...@googlegroups.com
thanks for looking into this Sachin.
I only had some time to try it now but unfortunately i got pretty much the same errors weirdly. I actually get a "QtCore.framework is damaged and can't be opened" error (screengrab attached).
and these are the logs in the terminal (this is trying to move it to /tmp/ and name it build - neither work):

martinomadeddu@martinomadeddu ~ % /tmp/build/bin/gaffer ; exit;

Traceback (most recent call last):

  File "/private/tmp/build/bin/__gaffer.py", line 179, in <module>

    app = loadApp( appName )

  File "/private/tmp/build/bin/__gaffer.py", line 92, in loadApp

    return appLoader.load( appName )()

  File "/private/tmp/build/python/IECore/ClassLoader.py", line 163, in load

    spec.loader.exec_module( module )

  File "<frozen importlib._bootstrap_external>", line 883, in exec_module

  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed

  File "/private/tmp/build/apps/gui/gui-1.py", line 45, in <module>

    import GafferUI

  File "/private/tmp/build/python/GafferUI/__init__.py", line 125, in <module>

    from ._GafferUI import *

ImportError: dlopen(/private/tmp/build/python/GafferUI/_GafferUI.so, 0x0002): Library not loaded: /tmp/build/lib/QtCore.framework/Versions/5/QtCore

  Referenced from: <39468F20-2A36-3086-8EFD-94C2585B7DE2> /private/tmp/build/python/GafferUI/_GafferUI.so

  Reason: tried: '/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' (code signature in <4296FD11-67C2-3EEE-9DF4-B26F97C66C79> '/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' not valid for use in process: library load disallowed by system policy), '/tmp/build/lib/QtCore.framework/Versions/5/QtCore' (code signature in <4296FD11-67C2-3EEE-9DF4-B26F97C66C79> '/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' not valid for use in process: library load disallowed by system policy), '/System/Volumes/Preboot/Cryptexes/OS/tmp/build/lib/QtCore.framework/Versions/5/QtCore' (no such file), '/tmp/build/lib/QtCore.framework/Versions/5/QtCore' (code signature in <4296FD11-67C2-3EEE-9DF4-B26F97C66C79> '/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' not valid for use in process: library load disallowed by system policy), '/Library/Frameworks/QtCore.framework/Versions/5/QtCore' (no such file), '/System/Library/Frameworks/QtCore.framework/Versions/5/QtCore' (no such file, not in dyld cache), '/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' (code signature in <4296FD11-67C2-3EEE-9DF4-B26F97C66C79> '/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' not valid for use in process: library load disallowed by system policy), '/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' (code signature in <4296FD11-67C2-3EEE-9DF4-B26F97C66C79> '/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' not valid for use in process: library load disallowed by system policy), '/System/Volumes/Preboot/Cryptexes/OS/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' (no such file), '/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' (code signature in <4296FD11-67C2-3EEE-9DF4-B26F97C66C79> '/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' not valid for use in process: library load disallowed by system policy), '/Library/Frameworks/QtCore.framework/Versions/5/QtCore' (no such file), '/System/Library/Frameworks/QtCore.framework/Versions/5/QtCore' (no such file, not in dyld cache)


Could it be an OS version issue?
I am on Sonoma 14.3.

thanks


Martino Madeddu

 | 

VFX Supervisor


Untold Studios.

White Collar Factory | 1 Old Street Yard | London | EC1Y 8AF


+44 7526 594 487

 | 

+44 208 016 6111

untoldstudios.tv


Sachin Shrestha

unread,
Mar 11, 2025, 6:49:28 AMMar 11
to gaffer-dev
Aah, sorry about that Martino. Could you run the below command and post the output here? At my end it still shows some libs from /tmp/build and those path don't exist at my end anymore (and my ldcache is clean). Despite that it runs fine for me as all the libs get loaded from gaffer's lib paths. Please replace the <your_gaffer_root> with your gaffer root install path.

otool -L <your_gaffer_root>/python/GafferUI/_GafferUI.so


MacOS version could be an issue too although I checked the sdk version for Xcode 14.3 that I used to build this and it reported back sdk v13.3 so that should work. At my end, the Qt framework gets loaded from gaffer's own build directory as I don't have Qt installed locally to my system. And I didn't have to add any paths to DYLD_LIBRARY_PATH either so it is using the defaults in the gaffer shell script.

Is it possible that this could be some MacOS security issues that's preventing the libs from getting loaded? Could you try to run the below in sudo mode and check? I have had to do this sometimes for builds I downloaded from the internet.

sudo xattr -rd com.apple.quarantine /tmp/build



-Sachin

Martino Madeddu

unread,
Mar 11, 2025, 8:49:02 AMMar 11
to gaffe...@googlegroups.com
ah i think you are right about the system preventing the libs to load.
In fact, looking at the errors closer it says "library load disallowed by system policy":

/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' not valid for use in process: library load disallowed by system policy)

running the suggested command: sudo xattr -rd com.apple.quarantine /tmp/build
allows me to launch Gaffer from /tmp/build.

I guess i can just remove that file from my main install of Gaffer to tag it as secure to run it from my /software/ folder.

great spot


Martino Madeddu

 | 

VFX Supervisor


Untold Studios.

White Collar Factory | 1 Old Street Yard | London | EC1Y 8AF


+44 7526 594 487

 | 

+44 208 016 6111

untoldstudios.tv


Martino Madeddu

unread,
Mar 11, 2025, 8:56:15 AMMar 11
to gaffe...@googlegroups.com
confirming this is all working as expected now.
thanks a lot for looking into this Sachin.


Martino Madeddu

 | 

VFX Supervisor


Untold Studios.

White Collar Factory | 1 Old Street Yard | London | EC1Y 8AF


+44 7526 594 487

 | 

+44 208 016 6111

untoldstudios.tv


On Tue, Mar 11, 2025 at 12:48 PM Martino Madeddu <mar...@untoldstudios.tv> wrote:
ah i think you are right about the system preventing the libs to load.
In fact, looking at the errors closer it says "library load disallowed by system policy":
/private/tmp/build/lib/QtCore.framework/Versions/5/QtCore' not valid for use in process: library load disallowed by system policy)

running the suggested command: sudo xattr -rd com.apple.quarantine /tmp/build
allows me to launch Gaffer from /tmp/build.

I guess i can just remove that file from my main install of Gaffer to tag it as secure to run it from my /software/ folder.

great spot

Sachin Shrestha

unread,
Mar 11, 2025, 8:58:31 AMMar 11
to gaffe...@googlegroups.com
Ha! Great to know that it works. I wonder if the previous build would have also worked fine after removing the folder quarantine. Apple’s overzealous security measures can be annoying sometimes.

Yes, you can install this anywhere you want and I suspect the previous builds also could be since I use them from non /tmp location.

Cheers,
Sachin

Reply all
Reply to author
Forward
0 new messages