Opened 2 years ago
Closed 2 years ago
#9157 closed defect (fixed)
Daily build does not start on Mac
Reported by: | Eric Pettersen | Owned by: | Zach Pearson |
---|---|---|---|
Priority: | critical | Milestone: | |
Component: | Platform | Version: | |
Keywords: | Cc: | chimera-programmers | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
On my Intel Mac (12.6.6), clicking on the icon produces no window and does not result in a running app. Starting it from the command line:
/Applications/ChimeraX_Daily.app/Contents/bin/ChimeraX
NOTE: Traceback (most recent call last):
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/darwin.py", line 35, in GL
return ctypesloader.loadLibrary(
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/ctypesloader.py", line 36, in loadLibrary
return _loadLibraryWindows(dllType, name, mode)
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/ctypesloader.py", line 89, in _loadLibraryWindows
return dllType( name, mode )
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ctypes/init.py",
line 376, in init
self._handle = _dlopen(self._name, mode)
OSError: ("dlopen(OpenGL, 0x000A): tried:
'/Applications/ChimeraX_Daily.app/Contents/bin/../lib/OpenGL' (no such file),
'/Applications/ChimeraX_Daily.app/Contents/bin/../Library/Frameworks/Python.framework/OpenGL'
(no such file), 'OpenGL' (no such file), '/usr/lib/OpenGL' (no such file),
'/Users/pett/src/chimerax/src/bundles/seqalign/src/OpenGL' (no such file)",
'OpenGL', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/core/main.py", line 1044, in <module>
exit_code = init(sys.argv)
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/core/main.py", line 701, in init
sess.ui.build()
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/ui/gui.py", line 191, in build
self.main_window = mw = MainWindow(self, self.session)
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/ui/gui.py", line 433, in init
self.graphics_window = g = GraphicsWindow(self._stack, ui, stereo)
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/ui/graphics.py", line 33, in init
oc = OpenGLContext(self, ui.primaryScreen(), use_stereo = stereo)
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/graphics/opengl.py", line 49, in init
_initialize_pyopengl() # Set global GL module.
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/graphics/opengl.py", line 319, in _initialize_pyopengl
import OpenGL.GL
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/GL/init.py", line 3, in <module>
from OpenGL import error as _error
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/error.py", line 12, in <module>
from OpenGL import platform, _configflags
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/init.py", line 56, in <module>
_load()
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/init.py", line 53, in _load
plugin.install(globals())
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/baseplatform.py", line 97, in install
namespace[ name ] = getattr(self,name,None)
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/baseplatform.py", line 15, in get
value = self.fget( obj )
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/darwin.py", line 62, in GetCurrentContext
return self.CGL.CGLGetCurrentContext
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/baseplatform.py", line 15, in get
value = self.fget( obj )
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/darwin.py", line 45, in CGL
def CGL(self): return self.GL
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/baseplatform.py", line 15, in get
value = self.fget( obj )
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/darwin.py", line 41, in GL
raise ImportError("Unable to load OpenGL library", *err.args)
ImportError: ('Unable to load OpenGL library', "dlopen(OpenGL, 0x000A): tried:
'/Applications/ChimeraX_Daily.app/Contents/bin/../lib/OpenGL' (no such file),
'/Applications/ChimeraX_Daily.app/Contents/bin/../Library/Frameworks/Python.framework/OpenGL'
(no such file), 'OpenGL' (no such file), '/usr/lib/OpenGL' (no such file),
'/Users/pett/src/chimerax/src/bundles/seqalign/src/OpenGL' (no such file)",
'OpenGL', None)
BUG: ImportError: ('Unable to load OpenGL library', "dlopen(OpenGL, 0x000A): tried:
'/Applications/ChimeraX_Daily.app/Contents/bin/../lib/OpenGL' (no such file),
'/Applications/ChimeraX_Daily.app/Contents/bin/../Library/Frameworks/Python.framework/OpenGL'
(no such file), 'OpenGL' (no such file), '/usr/lib/OpenGL' (no such file),
'/Users/pett/src/chimerax/src/bundles/seqalign/src/OpenGL' (no such file)",
'OpenGL', None)
File
"/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/OpenGL/platform/darwin.py", line 41, in GL
raise ImportError("Unable to load OpenGL library", *err.args)
_See log for complete Python traceback._
NOTE: Exception ignored in: <function OpenGLContext.del at 0x10f3d5800>
Traceback (most recent call last):
File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/graphics/opengl.py", line 74, in del
if not self._deleted:
AttributeError: 'OpenGLContext' object has no attribute '_deleted'
Attachments (1)
Change History (21)
comment:2 by , 2 years ago
I don't have an Intel mac available to test, but I'll download the Intel-only daily build and see if it fails under Rosetta.
comment:4 by , 2 years ago
This may only be broken on Big Sur. The fix that Tom posted on Stack Overflow three years ago still works, haha!
https://stackoverflow.com/questions/63475461/unable-to-import-opengl-gl-in-python-on-macos
comment:5 by , 2 years ago
Why does ChimeraX 1.6 PyOpenGL find the Mac OpenGL library, while the current Python 3.11 ChimeraX does not find it? ChimeraX 1.6 did not patch PyOpenGL.
comment:6 by , 2 years ago
Not sure, but looking into it. One possible clue is: arch -x86_64 ./python3.11 -I -m chimerax.core
works but arch -x86_64 ./ChimeraX
does not, from the Contents/bin
folder of the Intel daily build.
comment:7 by , 2 years ago
You can actually drag the executable from 1.6.1 into a current daily build and try the same procedure (as long as you go to ChimeraX.app/Library/Frameworks/Python.framework/Versions/ and symlink 3.11 to 3.9) and it also fails, so probably not the executable.
comment:8 by , 2 years ago
This is probably a regression in CPython https://github.com/python/cpython/pull/22855
We could do a couple things to work around this: Add "-Xfrozen_modules=no" to the launcher or patch PyOpenGL.
I tested both of them and either one works, but patching PyOpenGL seemed like it was easier and would have fewer side effects, so that's what I did.
comment:9 by , 2 years ago
This does not look like a Python problem. It looks like a ChimeraX problem. So it is not ideal to patch pyopengl instead of figuring out the real problem.
The trouble is "import OpenGL.GL" fails when run from ChimeraX. But if you just start the ChimeraX bin/python3.11 it imports fine. Another interesting clue is that my development ChimeraX python 3.11 build on my Intel Mac starts fine, but the daily build does not. I would think the only difference might be the daily build is notarized.
If I copy my development build Contents/MacOS/ChimeraX executable to the daily build, then the daily build starts fine.
By the way my tests are on an Intel Mac running the current macOS 13.4. So the failure is not specific to older macOS.
And I tested the daily build on an M1 Mac (macOS 13.3.1) and that starts fine.
A bit more poking shows that OpenGL.GL does not import because this call fails in Intel Mac ChimeraX daily build
_ctypes._dyld_shared_cache_contains_path('/System/Library/Frameworks/OpenGL.framework/OpenGL')
$ cd ChimeraX-Daily.app/Contents/MacOS $ ./ChimeraX -c "from _ctypes import _dyld_shared_cache_contains_path as f ; print(f('/System/Library/Frameworks/OpenGL.framework/OpenGL'))" Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/Users/goddard/Desktop/ChimeraX June 9 2023.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/core/__main__.py", line 1044, in <module> exit_code = init(sys.argv) ^^^^^^^^^^^^^^ File "/Users/goddard/Desktop/ChimeraX June 9 2023.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/core/__main__.py", line 836, in init exec(opts.cmd, global_dict) File "<string>", line 1, in <module> NotImplementedError: _dyld_shared_cache_contains_path symbol is missing
But the call works and returns true in my Python 3.11 ChimeraX development build on the same machine and works from the python3.11 executable
$ cd ChimeraX-Daily.app/Contents/MacOS $ ../bin/python3.11 -c "from _ctypes import _dyld_shared_cache_contains_path as f ; print(f('/System/Library/Frameworks/OpenGL.framework/OpenGL'))" True
The error message says a symbol is missing.
NotImplementedError: _dyld_shared_cache_contains_path symbol is missing
Why would a symbol be missing only when the (notarized) ChimeraX app is running?
by , 2 years ago
Development ChimeraX executable for Intel Mac and Python 3.11 that allows daily build to run.
comment:10 by , 2 years ago
I've attached a copy of my Intel Mac ChimeraX executable that allows the daily build to run if it replaces ChimeraX-Daily.app/Contents/MacOS/ChimeraX. How this devel build executable might differ from the daily build other than notarization I don't know.
comment:11 by , 2 years ago
Here are a few more clues. The unnotarized ChimeraX executable from essex2 for the failing daily build also fails to start with the same error. I'll attach that ChimeraX executable. So what is the difference between my development build ChimeraX executable that works and the daily build one that does not work?
There might be a clue in the runtime loader commands for the two executables, shown with the "otool -l" command. Here is the output for my development ChimeraX executable that works and the essex2 unnotarized executable that does not work. I don't see obvious differences.
The nightly build Intel Mac essex2 runs the ancient macOS 10.14.6 while my development build was made on macOS 13.3.1.
$ ls -l ChimeraX.devel -rwxr-xr-x 1 goddard staff 33512 Jun 6 17:19 ChimeraX.devel* $ otool -l ChimeraX.devel ChimeraX.devel: Load command 0 cmd LC_SEGMENT_64 cmdsize 72 segname __PAGEZERO vmaddr 0x0000000000000000 vmsize 0x0000000100000000 fileoff 0 filesize 0 maxprot 0x00000000 initprot 0x00000000 nsects 0 flags 0x0 Load command 1 cmd LC_SEGMENT_64 cmdsize 472 segname __TEXT vmaddr 0x0000000100000000 vmsize 0x0000000000004000 fileoff 0 filesize 16384 maxprot 0x00000005 initprot 0x00000005 nsects 5 flags 0x0 Section sectname __text segname __TEXT addr 0x0000000100003be0 size 0x00000000000002a1 offset 15328 align 2^4 (16) reloff 0 nreloc 0 flags 0x80000400 reserved1 0 reserved2 0 Section sectname __stubs segname __TEXT addr 0x0000000100003e82 size 0x0000000000000030 offset 16002 align 2^1 (2) reloff 0 nreloc 0 flags 0x80000408 reserved1 0 (index into indirect symbol table) reserved2 6 (size of stubs) Section sectname __const segname __TEXT addr 0x0000000100003eb4 size 0x00000000000000c0 offset 16052 align 2^2 (4) reloff 0 nreloc 0 flags 0x00000000 reserved1 0 reserved2 0 Section sectname __cstring segname __TEXT addr 0x0000000100003f74 size 0x0000000000000033 offset 16244 align 2^0 (1) reloff 0 nreloc 0 flags 0x00000002 reserved1 0 reserved2 0 Section sectname __unwind_info segname __TEXT addr 0x0000000100003fa8 size 0x0000000000000050 offset 16296 align 2^2 (4) reloff 0 nreloc 0 flags 0x00000000 reserved1 0 reserved2 0 Load command 2 cmd LC_SEGMENT_64 cmdsize 232 segname __DATA_CONST vmaddr 0x0000000100004000 vmsize 0x0000000000004000 fileoff 16384 filesize 16384 maxprot 0x00000003 initprot 0x00000003 nsects 2 flags 0x10 Section sectname __got segname __DATA_CONST addr 0x0000000100004000 size 0x0000000000000048 offset 16384 align 2^3 (8) reloff 0 nreloc 0 flags 0x00000006 reserved1 8 (index into indirect symbol table) reserved2 0 Section sectname __const segname __DATA_CONST addr 0x0000000100004050 size 0x0000000000000038 offset 16464 align 2^4 (16) reloff 0 nreloc 0 flags 0x00000000 reserved1 0 reserved2 0 Load command 3 cmd LC_SEGMENT_64 cmdsize 72 segname __LINKEDIT vmaddr 0x0000000100008000 vmsize 0x0000000000004000 fileoff 32768 filesize 744 maxprot 0x00000001 initprot 0x00000001 nsects 0 flags 0x0 Load command 4 cmd LC_DYLD_CHAINED_FIXUPS cmdsize 16 dataoff 32768 datasize 216 Load command 5 cmd LC_DYLD_EXPORTS_TRIE cmdsize 16 dataoff 32984 datasize 32 Load command 6 cmd LC_SYMTAB cmdsize 24 symoff 33024 nsyms 15 stroff 33336 strsize 176 Load command 7 cmd LC_DYSYMTAB cmdsize 80 ilocalsym 0 nlocalsym 5 iextdefsym 5 nextdefsym 1 iundefsym 6 nundefsym 9 tocoff 0 ntoc 0 modtaboff 0 nmodtab 0 extrefsymoff 0 nextrefsyms 0 indirectsymoff 33264 nindirectsyms 17 extreloff 0 nextrel 0 locreloff 0 nlocrel 0 Load command 8 cmd LC_LOAD_DYLINKER cmdsize 32 name /usr/lib/dyld (offset 12) Load command 9 cmd LC_UUID cmdsize 24 uuid 0AA4677F-CDAC-377D-8046-87A6E871BB40 Load command 10 cmd LC_BUILD_VERSION cmdsize 32 platform 1 minos 13.0 sdk 13.0 ntools 1 tool 3 version 820.1 Load command 11 cmd LC_SOURCE_VERSION cmdsize 16 version 0.0 Load command 12 cmd LC_MAIN cmdsize 24 entryoff 15744 stacksize 0 Load command 13 cmd LC_LOAD_DYLIB cmdsize 56 name @rpath/Versions/3.11/Python (offset 24) time stamp 2 Wed Dec 31 16:00:02 1969 current version 3.11.0 compatibility version 3.11.0 Load command 14 cmd LC_LOAD_DYLIB cmdsize 48 name /usr/lib/libc++.1.dylib (offset 24) time stamp 2 Wed Dec 31 16:00:02 1969 current version 1300.32.0 compatibility version 1.0.0 Load command 15 cmd LC_LOAD_DYLIB cmdsize 56 name /usr/lib/libSystem.B.dylib (offset 24) time stamp 2 Wed Dec 31 16:00:02 1969 current version 1319.0.0 compatibility version 1.0.0 Load command 16 cmd LC_RPATH cmdsize 40 path @executable_path/../lib (offset 12) Load command 17 cmd LC_FUNCTION_STARTS cmdsize 16 dataoff 33016 datasize 8 Load command 18 cmd LC_DATA_IN_CODE cmdsize 16 dataoff 33024 datasize 0 Load command 19 cmd LC_RPATH cmdsize 72 path @executable_path/../Library/Frameworks/Python.framework (offset 12)
$ ls -l ChimeraX-essex2-unnotarized -rwxr-xr-x 1 goddard staff 8908 Jun 9 03:06 ChimeraX-essex2-unnotarized* $ otool -l ChimeraX-essex2-unnotarized ChimeraX-essex2-unnotarized: Load command 0 cmd LC_SEGMENT_64 cmdsize 72 segname __PAGEZERO vmaddr 0x0000000000000000 vmsize 0x0000000100000000 fileoff 0 filesize 0 maxprot 0x00000000 initprot 0x00000000 nsects 0 flags 0x0 Load command 1 cmd LC_SEGMENT_64 cmdsize 552 segname __TEXT vmaddr 0x0000000100000000 vmsize 0x0000000000001000 fileoff 0 filesize 4096 maxprot 0x00000005 initprot 0x00000005 nsects 6 flags 0x0 Section sectname __text segname __TEXT addr 0x0000000100000b40 size 0x00000000000002e5 offset 2880 align 2^4 (16) reloff 0 nreloc 0 flags 0x80000400 reserved1 0 reserved2 0 Section sectname __stubs segname __TEXT addr 0x0000000100000e26 size 0x0000000000000030 offset 3622 align 2^1 (2) reloff 0 nreloc 0 flags 0x80000408 reserved1 0 (index into indirect symbol table) reserved2 6 (size of stubs) Section sectname __stub_helper segname __TEXT addr 0x0000000100000e58 size 0x0000000000000060 offset 3672 align 2^2 (4) reloff 0 nreloc 0 flags 0x80000400 reserved1 0 reserved2 0 Section sectname __const segname __TEXT addr 0x0000000100000eb8 size 0x00000000000000c0 offset 3768 align 2^2 (4) reloff 0 nreloc 0 flags 0x00000000 reserved1 0 reserved2 0 Section sectname __cstring segname __TEXT addr 0x0000000100000f78 size 0x0000000000000033 offset 3960 align 2^0 (1) reloff 0 nreloc 0 flags 0x00000002 reserved1 0 reserved2 0 Section sectname __unwind_info segname __TEXT addr 0x0000000100000fac size 0x0000000000000048 offset 4012 align 2^2 (4) reloff 0 nreloc 0 flags 0x00000000 reserved1 0 reserved2 0 Load command 2 cmd LC_SEGMENT_64 cmdsize 392 segname __DATA vmaddr 0x0000000100001000 vmsize 0x0000000000001000 fileoff 4096 filesize 4096 maxprot 0x00000003 initprot 0x00000003 nsects 4 flags 0x0 Section sectname __nl_symbol_ptr segname __DATA addr 0x0000000100001000 size 0x0000000000000008 offset 4096 align 2^3 (8) reloff 0 nreloc 0 flags 0x00000006 reserved1 8 (index into indirect symbol table) reserved2 0 Section sectname __got segname __DATA addr 0x0000000100001008 size 0x0000000000000010 offset 4104 align 2^3 (8) reloff 0 nreloc 0 flags 0x00000006 reserved1 9 (index into indirect symbol table) reserved2 0 Section sectname __la_symbol_ptr segname __DATA addr 0x0000000100001018 size 0x0000000000000040 offset 4120 align 2^3 (8) reloff 0 nreloc 0 flags 0x00000007 reserved1 11 (index into indirect symbol table) reserved2 0 Section sectname __const segname __DATA addr 0x0000000100001060 size 0x0000000000000038 offset 4192 align 2^4 (16) reloff 0 nreloc 0 flags 0x00000000 reserved1 0 reserved2 0 Load command 3 cmd LC_SEGMENT_64 cmdsize 72 segname __LINKEDIT vmaddr 0x0000000100002000 vmsize 0x0000000000001000 fileoff 8192 filesize 716 maxprot 0x00000001 initprot 0x00000001 nsects 0 flags 0x0 Load command 4 cmd LC_DYLD_INFO_ONLY cmdsize 48 rebase_off 8192 rebase_size 8 bind_off 8200 bind_size 40 weak_bind_off 0 weak_bind_size 0 lazy_bind_off 8240 lazy_bind_size 136 export_off 8376 export_size 32 Load command 5 cmd LC_SYMTAB cmdsize 24 symoff 8416 nsyms 15 stroff 8732 strsize 176 Load command 6 cmd LC_DYSYMTAB cmdsize 80 ilocalsym 0 nlocalsym 4 iextdefsym 4 nextdefsym 1 iundefsym 5 nundefsym 10 tocoff 0 ntoc 0 modtaboff 0 nmodtab 0 extrefsymoff 0 nextrefsyms 0 indirectsymoff 8656 nindirectsyms 19 extreloff 0 nextrel 0 locreloff 0 nlocrel 0 Load command 7 cmd LC_LOAD_DYLINKER cmdsize 32 name /usr/lib/dyld (offset 12) Load command 8 cmd LC_UUID cmdsize 24 uuid 4B5C56F4-3E9D-3C6E-90F9-E6DF54E4256B Load command 9 cmd LC_VERSION_MIN_MACOSX cmdsize 16 version 10.13 sdk 10.14 Load command 10 cmd LC_SOURCE_VERSION cmdsize 16 version 0.0 Load command 11 cmd LC_MAIN cmdsize 24 entryoff 3408 stacksize 0 Load command 12 cmd LC_LOAD_DYLIB cmdsize 56 name @rpath/Versions/3.11/Python (offset 24) time stamp 2 Wed Dec 31 16:00:02 1969 current version 3.11.0 compatibility version 3.11.0 Load command 13 cmd LC_LOAD_DYLIB cmdsize 48 name /usr/lib/libc++.1.dylib (offset 24) time stamp 2 Wed Dec 31 16:00:02 1969 current version 400.9.4 compatibility version 1.0.0 Load command 14 cmd LC_LOAD_DYLIB cmdsize 56 name /usr/lib/libSystem.B.dylib (offset 24) time stamp 2 Wed Dec 31 16:00:02 1969 current version 1252.250.1 compatibility version 1.0.0 Load command 15 cmd LC_RPATH cmdsize 40 path @executable_path/../lib (offset 12) Load command 16 cmd LC_FUNCTION_STARTS cmdsize 16 dataoff 8408 datasize 8 Load command 17 cmd LC_DATA_IN_CODE cmdsize 16 dataoff 8416 datasize 0 Load command 18 cmd LC_RPATH cmdsize 72 path @executable_path/../Library/Frameworks/Python.framework (offset 12)
comment:12 by , 2 years ago
Another clue.
The ChimeraX daily build starts on essex2.
So maybe the trouble is somehow the ancient macOS 10.14.6 build environment with our Python 3.11 ChimeraX is having some macOS compatibility issue with newer macOS. That may be hard to work around without updating macOS or XCode on the build machine.
Let's see if with Zach's patch to PyOpenGL if we run into other problems with Mac Intel ChimeraX related to the old macOS 10.14.6 build environment. If there are none maybe best to let sleeping dogs lie.
comment:13 by , 2 years ago
Our Mac Python I believe is just a relocatable version of the standard Python binary distribution (Zach, is this true for python 3.11?). And that says it is compatible with macOS 10.9 and later.
https://www.python.org/downloads/release/python-3114/
Zach noted that Mac Intel ChimeraX daily will start if using python3.11 to run the core module instead of using the ChimeraX binary executable. So it does seem to be something about our compilation of the ChimeraX executable, not a Python problem.
comment:14 by , 2 years ago
Yes that's true, it's still a relocatable Python.
I downloaded this morning's Intel daily build and it does launch, but only from the command line or by clicking on Contents/bin/ChimeraX.
If I try to run the executable at Contents/MacOS/ChimeraX, which runs when clicking the icon or .app, the system complains that it is damaged.
comment:15 by , 2 years ago
Oh, well, actually I re-extracted it and it just launched from the exe in Contents/MacOS/ChimeraX. I think I got impatient and double clicked the app _and_ tried a command line launch at the same time, and that did something. So now either exe works, but just clicking on the .app still makes the system complain that it's damaged.
comment:16 by , 2 years ago
I've read online that if the binaries in the .app work but the .app itself doesn't it can be a codesigning issue and I think I've confirmed that it is. After I made a self-signed certificate and resigned the app, I could launch it by double clicking it again.
comment:17 by , 2 years ago
I just downloaded _another_ Intel daily build and it worked from double clicking the .app, so maybe it was a transient notarization error. Hopefully it isn't the system getting confused and thinking that because I signed one ChimeraX, all ChimeraXes are OK. Can you download tomorrow's build (12/06/23) and try it?
comment:19 by , 2 years ago
I tried todays ChimeraX Mac daily builds on ARM and Intel and both worked.