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.