Opened 21 months ago
Last modified 20 months ago
#14390 assigned enhancement
Update to Qt 6.6, requires macOS 11 minimum
Reported by: | Tom Goddard | Owned by: | Tom Goddard |
---|---|---|---|
Priority: | moderate | Milestone: | |
Component: | Window Toolkit | Version: | |
Keywords: | Cc: | chimerax-programmers | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
Update ChimeraX 1.8 daily build to Qt 6.6 which requires macOS 11 or higher.
ChimeraX 1.7 used Qt 6.3 and ChimeraX 1.6 uses Qt 6.4 and both work with macOS 10.14 or higher (on Intel).
Change History (9)
comment:1 by , 21 months ago
comment:2 by , 21 months ago
If we can drop macOS 10.14 support then we can also enable better dmg compression on the Mac Intel build reducing the size about 30%. The better compression is supported since macOS 10.15.
comment:3 by , 21 months ago
I tested the Qt 6.6 ChimeraX on macOS 10.14 on essex2.cgl.ucsf.edu and it fails to start, missing symbol _objc_opt_class used by QtCore.abi3.so not found in /usr/lib/libobjc.A.dylib.
essex2:~ chimera$ ~/Desktop/ChimeraX_Daily.app/Contents/MacOS/ChimeraX NOTE: 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/chimera/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/core/__main__.py", line 1069, in <module> exit_code = init(sys.argv) ^^^^^^^^^^^^^^ File "/Users/chimera/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/core/__main__.py", line 601, in init from chimerax.ui import initialize_qt File "/Users/chimera/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/ui/__init__.py", line 21, in <module> from .gui import MainToolWindow, initialize_qt, menu_capitalize File "/Users/chimera/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/ui/gui.py", line 29, in <module> from Qt.QtWidgets import QApplication File "/Users/chimera/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/Qt/__init__.py", line 64, in <module> from PyQt6.QtCore import PYQT_VERSION_STR as PYQT6_VERSION ImportError: dlopen(/Users/chimera/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/PyQt6/QtCore.abi3.so, 2): Symbol not found: _objc_opt_class Referenced from: /Users/chimera/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/PyQt6/Qt6/lib/QtCore.framework/Versions/A/QtCore (which was built for Mac OS X 11.0) Expected in: /usr/lib/libobjc.A.dylib in /Users/chimera/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/PyQt6/Qt6/lib/QtCore.framework/Versions/A/QtCore BUG: ImportError: dlopen(/Users/chimera/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/PyQt6/QtCore.abi3.so, 2): Symbol not found: _objc_opt_class Referenced from: /Users/chimera/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/PyQt6/Qt6/lib/QtCore.framework/Versions/A/QtCore (which was built for Mac OS X 11.0) Expected in: /usr/lib/libobjc.A.dylib in /Users/chimera/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/PyQt6/Qt6/lib/QtCore.framework/Versions/A/QtCore File "/Users/chimera/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/Qt/__init__.py", line 64, in from PyQt6.QtCore import PYQT_VERSION_STR as PYQT6_VERSION _See log for complete Python traceback._
comment:4 by , 21 months ago
Eric said the lab Mac laptop is at macOS 10.15. We should try that too.
comment:5 by , 21 months ago
The message when run on 10.15: "Sorry, "UCSF ChimeraX" cannot be run on this version of macOS. Qt requires macOS 11.0.0 or later, you have macOS 10.15."
comment:6 by , 21 months ago
I'd like to update our Mac Intel daily build to compile with MACOSX_DEPLOYMENT_TARGET=11.0 and update its Info.plist to say minimum 11.0 is required. But that environment variable is set in the build_tools repository and effects both the daily build and a 1.7.1 patch release which should still use 10.14. Similarly the download table notes are shared between the daily build and 1.7.1 patch release. So if we are going to make a 1.7.1 release it is inconvenient to change the minimum macOS to 11.0 until after that is done.
I also see that the notarization script takes the MACOSX_DEPLOYMENT_TARGET environment variable but I could not find any documentation that said this is used. Possibly it is a remnant of old notarization code and is not needed.
comment:7 by , 21 months ago
Plan is to wait until the ChimeraX 1.7.1 release is made (next week). Then update the MACOSX_DEPLOYMENT_TARGET for the daily build.
comment:8 by , 20 months ago
We updated to Qt 6.6.1 about a month ago and encountered crashes associated with the command-line combo box. So we then reverted back to Qt 6.3. The combo box crash was a known Qt bug that was fixed in Qt 6.6.2. We just updated ChimeraX daily builds to Qt 6.6.2 last week.
comment:9 by , 20 months ago
There are a couple more steps to complete this ticket.
1) Update build_tools to use MACOSX_DEPLOYMENT_TARGET=11.0 in build_macosx.sh and build_universal.sh.
2) Update build_tools dmg packaging to use better compression "-f ULMO" in build_macosx.sh for Intel Mac build.
3) Make sure the Info.plist of the builds sets LSMinimumSystemVersion to 11.0. It should do this since mkinfo.py in src/apps/ChimeraX/mkinfo.py uses the MACOSX_DEPLOYMENT_TARGET environment variable to set that value.
I'll wait another couple weeks before doing this to make sure Qt 6.6.2 does not have some fatal flaw that causes us to revert again to Qt 6.3.
I did the update to Qt 6.6.1 today and tested on Mac ARM, worked fine.
Plan to test tonight's ChimeraX daily build on macOS 10.15 and 10.14 to see if it does not work. Qt 6.5 and up claims its builds only support macOS 11 and higher but who knows.
If the ChimeraX daily build does not work on macOS 10.15 and 10.14 then I will update the deployment target to 11.0 and also the Mac Intel Info.plist to indicate 11.0 minimum, and update the Download page notes to indicate 11.0 minimum.