#4013 closed defect (fixed)
macOS daily build, "developer can't be verified", even though notarization succeeded
Reported by: | Owned by: | Tom Goddard | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Platform | Version: | |
Keywords: | Cc: | pett | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: macOS-10.15.7-x86_64-i386-64bit ChimeraX Version: 1.2.dev202012030440 (2020-12-03 04:40:12 UTC) Description Mac daily build Dec 3, 2020 seems not to be signed. After downloading and dragging app to desktop starting it says "Apple could not verify the developer" as in the attached image. Requires, ctrl-click -> Open to start the first time. Build logs suggest notarization succeeded and builds email does not report that notarization failed. Log: Startup Messages --- warning | Unable to load numpy_formathandler accelerator from OpenGL_accelerate notes | OpenGL_accelerate module loaded Using accelerated ArrayDatatype Lock 5355951008 acquired on /Users/goddard/Library/Caches/ChimeraX/1.2/toolshed/bundle_info.cache.lock Lock 5355951008 released on /Users/goddard/Library/Caches/ChimeraX/1.2/toolshed/bundle_info.cache.lock UCSF ChimeraX version: 1.2.dev202012030440 (2020-12-03) © 2016-2020 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX OpenGL version: 4.1 ATI-3.10.18 OpenGL renderer: AMD Radeon Pro Vega 20 OpenGL Engine OpenGL vendor: ATI Technologies Inc.Hardware: Hardware Overview: Model Name: MacBook Pro Model Identifier: MacBookPro15,3 Processor Name: 8-Core Intel Core i9 Processor Speed: 2.4 GHz Number of Processors: 1 Total Number of Cores: 8 L2 Cache (per Core): 256 KB L3 Cache: 16 MB Hyper-Threading Technology: Enabled Memory: 32 GB Boot ROM Version: 1037.147.4.0.0 (iBridge: 17.16.16610.0.0,0) Software: System Software Overview: System Version: macOS 10.15.7 (19H2) Kernel Version: Darwin 19.6.0 Time since boot: 21 days 13 minutes Graphics/Displays: Intel UHD Graphics 630: Chipset Model: Intel UHD Graphics 630 Type: GPU Bus: Built-In VRAM (Dynamic, Max): 1536 MB Vendor: Intel Device ID: 0x3e9b Revision ID: 0x0002 Automatic Graphics Switching: Supported gMux Version: 5.0.0 Metal: Supported, feature set macOS GPUFamily2 v1 Radeon Pro Vega 20: Chipset Model: Radeon Pro Vega 20 Type: GPU Bus: PCIe PCIe Lane Width: x8 VRAM (Total): 4 GB Vendor: AMD (0x1002) Device ID: 0x69af Revision ID: 0x00c0 ROM Revision: 113-D2060I-087 VBIOS Version: 113-D20601MA0T-016 Option ROM Version: 113-D20601MA0T-016 EFI Driver Version: 01.01.087 Automatic Graphics Switching: Supported gMux Version: 5.0.0 Metal: Supported, feature set macOS GPUFamily2 v1 Displays: Color LCD: Display Type: Built-In Retina LCD Resolution: 2880 x 1800 Retina Framebuffer Depth: 24-Bit Color (ARGB8888) Main Display: Yes Mirror: Off Online: Yes Automatically Adjust Brightness: No Connection Type: Internal Locale: (None, 'UTF-8') PySide2 version: 5.15.1 Qt version: 5.15.1 Installed Packages: alabaster: 0.7.12 appdirs: 1.4.4 appnope: 0.1.2 Babel: 2.9.0 backcall: 0.2.0 biopython: 1.78 blockdiag: 2.0.1 certifi: 2020.11.8 cftime: 1.3.0 chardet: 3.0.4 ChimeraX-AddH: 2.1.3 ChimeraX-AlignmentAlgorithms: 2.0 ChimeraX-AlignmentHdrs: 3.2 ChimeraX-AlignmentMatrices: 2.0 ChimeraX-Alignments: 2.1 ChimeraX-Arrays: 1.0 ChimeraX-Atomic: 1.9.5 ChimeraX-AtomicLibrary: 1.1 ChimeraX-AtomSearch: 2.0 ChimeraX-AtomSearchLibrary: 1.0 ChimeraX-AxesPlanes: 2.0 ChimeraX-BasicActions: 1.1 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 1.1 ChimeraX-BondRot: 2.0 ChimeraX-BugReporter: 1.0 ChimeraX-BuildStructure: 2.2 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.1 ChimeraX-ButtonPanel: 1.0 ChimeraX-CageBuilder: 1.0 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.1 ChimeraX-ChemGroup: 2.0 ChimeraX-Clashes: 2.1 ChimeraX-ColorActions: 1.0 ChimeraX-ColorGlobe: 1.0 ChimeraX-CommandLine: 1.1.3 ChimeraX-ConnectStructure: 2.0 ChimeraX-Contacts: 1.0 ChimeraX-Core: 1.2.dev202012030440 ChimeraX-CoreFormats: 1.0 ChimeraX-coulombic: 1.0.1 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-DataFormats: 1.0.1 ChimeraX-Dicom: 1.0 ChimeraX-DistMonitor: 1.1 ChimeraX-DistUI: 1.0 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ExperimentalCommands: 1.0 ChimeraX-FileHistory: 1.0 ChimeraX-FunctionKey: 1.0 ChimeraX-Geometry: 1.1 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.0 ChimeraX-Hbonds: 2.1 ChimeraX-Help: 1.0 ChimeraX-HKCage: 1.3 ChimeraX-IHM: 1.0 ChimeraX-ImageFormats: 1.1 ChimeraX-IMOD: 1.0 ChimeraX-IO: 1.0 ChimeraX-Label: 1.0 ChimeraX-ListInfo: 1.1 ChimeraX-Log: 1.1.1 ChimeraX-LookingGlass: 1.1 ChimeraX-Map: 1.0.2 ChimeraX-MapData: 2.0 ChimeraX-MapEraser: 1.0 ChimeraX-MapFilter: 2.0 ChimeraX-MapFit: 2.0 ChimeraX-MapSeries: 2.0 ChimeraX-Markers: 1.0 ChimeraX-Mask: 1.0 ChimeraX-MatchMaker: 1.1 ChimeraX-MDcrds: 2.1 ChimeraX-MedicalToolbar: 1.0.1 ChimeraX-Meeting: 1.0 ChimeraX-MLP: 1.0 ChimeraX-mmCIF: 2.2 ChimeraX-MMTF: 2.0 ChimeraX-Modeller: 1.0 ChimeraX-ModelPanel: 1.0 ChimeraX-ModelSeries: 1.0 ChimeraX-Mol2: 2.0 ChimeraX-Morph: 1.0 ChimeraX-MouseModes: 1.0 ChimeraX-Movie: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nucleotides: 2.0 ChimeraX-OpenCommand: 1.3.1 ChimeraX-PDB: 2.2 ChimeraX-PDBBio: 1.0 ChimeraX-PDBLibrary: 1.0 ChimeraX-PickBlobs: 1.0 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.0.1 ChimeraX-PubChem: 2.0.1 ChimeraX-Read-Pbonds: 1.0 ChimeraX-Registration: 1.1 ChimeraX-RemoteControl: 1.0 ChimeraX-ResidueFit: 1.0 ChimeraX-RestServer: 1.1 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 2.0 ChimeraX-RotamerLibsDunbrack: 2.0 ChimeraX-RotamerLibsDynameomics: 2.0 ChimeraX-RotamerLibsRichardson: 2.0 ChimeraX-SaveCommand: 1.2.1 ChimeraX-SchemeMgr: 1.0 ChimeraX-SDF: 2.0 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0 ChimeraX-SeqView: 2.2.1 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0 ChimeraX-Shortcuts: 1.0 ChimeraX-ShowAttr: 1.0 ChimeraX-ShowSequences: 1.0 ChimeraX-SideView: 1.0 ChimeraX-Smiles: 2.0.1 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.2.2 ChimeraX-STL: 1.0 ChimeraX-Storm: 1.0 ChimeraX-Struts: 1.0 ChimeraX-Surface: 1.0 ChimeraX-SwapAA: 2.0 ChimeraX-SwapRes: 2.0 ChimeraX-TapeMeasure: 1.0 ChimeraX-Tempy: 0.6.0 ChimeraX-Test: 1.0 ChimeraX-Toolbar: 1.0 ChimeraX-ToolshedUtils: 1.1 ChimeraX-Tug: 1.0 ChimeraX-UI: 1.3.1 ChimeraX-uniprot: 2.0 ChimeraX-ViewDockX: 1.0 ChimeraX-Vive: 1.1 ChimeraX-VolumeMenu: 1.0 ChimeraX-VTK: 1.0 ChimeraX-WavefrontOBJ: 1.0 ChimeraX-WebCam: 1.0 ChimeraX-WebServices: 1.0 ChimeraX-Zone: 1.0 colorama: 0.4.3 comtypes: 1.1.7 cxservices: 1.0 cycler: 0.10.0 Cython: 0.29.21 decorator: 4.4.2 distlib: 0.3.1 docutils: 0.16 filelock: 3.0.12 funcparserlib: 0.3.6 grako: 3.16.5 h5py: 2.10.0 html2text: 2020.1.16 idna: 2.10 ihm: 0.17 imagecodecs: 2020.5.30 imagecodecs-lite: 2020.1.31 imagesize: 1.2.0 ipykernel: 5.3.4 ipython: 7.18.1 ipython-genutils: 0.2.0 jedi: 0.17.2 Jinja2: 2.11.2 jupyter-client: 6.1.7 jupyter-core: 4.7.0 kiwisolver: 1.3.1 line-profiler: 2.1.2 lxml: 4.5.2 lz4: 3.1.0 MarkupSafe: 1.1.1 matplotlib: 3.3.2 MolecularDynamicsViewer: 1.1 msgpack: 1.0.0 netCDF4: 1.5.4 networkx: 2.5 numexpr: 2.7.1 numpy: 1.19.2 numpydoc: 1.1.0 openvr: 1.14.1501 packaging: 20.7 parso: 0.7.1 pexpect: 4.8.0 pickleshare: 0.7.5 Pillow: 7.2.0 pip: 20.3 pkginfo: 1.5.0.1 prompt-toolkit: 3.0.8 psutil: 5.7.2 ptyprocess: 0.6.0 pycollada: 0.7.1 pydicom: 2.0.0 Pygments: 2.7.1 PyOpenGL: 3.1.5 PyOpenGL-accelerate: 3.1.5 pyparsing: 2.4.7 PySide2: 5.15.1 python-dateutil: 2.8.1 pytz: 2020.4 pyzmq: 20.0.0 qtconsole: 4.7.7 QtPy: 1.9.0 RandomWords: 0.3.0 requests: 2.24.0 scipy: 1.5.2 Send2Trash: 1.5.0 setuptools: 50.3.2 sfftk-rw: 0.6.7.dev1 shiboken2: 5.15.1 six: 1.15.0 snowballstemmer: 2.0.0 sortedcontainers: 2.2.2 Sphinx: 3.2.1 sphinxcontrib-applehelp: 1.0.2 sphinxcontrib-blockdiag: 2.0.0 sphinxcontrib-devhelp: 1.0.2 sphinxcontrib-htmlhelp: 1.0.3 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 1.0.3 sphinxcontrib-serializinghtml: 1.1.4 suds-jurko: 0.6 tables: 3.6.1 tifffile: 2020.9.3 tinyarray: 1.2.3 tornado: 6.1 traitlets: 5.0.5 urllib3: 1.25.11 wcwidth: 0.2.5 webcolors: 1.11.1 wheel: 0.36.0 wheel-filename: 1.2.0 File attachment: Screen Shot 2020-12-03 at 4.06.17 PM.png
Attachments (2)
Change History (23)
by , 5 years ago
Attachment: | Screen Shot 2020-12-03 at 4.06.17 PM.png added |
---|
comment:1 by , 5 years ago
Cc: | added |
---|---|
Component: | Unassigned → Platform |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → macOS daily build, "developer can't be verified", even though notarization succeeded |
comment:2 by , 5 years ago
Eric, any ideas how notarization appears to work but "developer cannot be verified" on starting ChimeraX?
comment:3 by , 5 years ago
ChimeraX 1.1.1 installs and opens fine. So it does look like a problem with the notarization, not a problem on Apple's end.
comment:5 by , 5 years ago
Seems likely. But the 4400 lines of output from notarize.py in the daily build log shows it signing all that PySide2 junk, stapling and validating the dmg. No sign of an error, although in 4400 lines who knows what might be lurking.
comment:6 by , 5 years ago
Some intensive Googling and examination of the notarization output hasn't really yielded anything useful, other than the fact that Gatekeeper (the program that okays executables to run) can fail notarized programs, and it's not easy to find out why (the spctl utility, which supposedly also checks things will pass applications [like ours] that GateKeeper fails).
follow-up: 5 comment:7 by , 5 years ago
The daily build has the same type of notarization files in ChimeraX_Daily.app/Contents/_CodeSignature/CodeResources, about 4 Mbytes of xml similar to yesterday's daily build that opens correctly.
codesign seems to think the notarization is fine:
$ codesign --test-requirement="=notarized" --verify --verbose ~/Desktop/ChimeraX_Daily.app
/Users/goddard/Desktop/ChimeraX_Daily.app: valid on disk
/Users/goddard/Desktop/ChimeraX_Daily.app: satisfies its Designated Requirement
/Users/goddard/Desktop/ChimeraX_Daily.app: explicit requirement satisfied
spctl seems to think the daily build notarization is fine:
$ spctl -a -vv ~/Desktop/ChimeraX_Daily.app
/Users/goddard/Desktop/ChimeraX_Daily.app: accepted
source=Notarized Developer ID
origin=Developer ID Application: UCSF Department of Medicine (LWV8X224YF)
comment:8 by , 5 years ago
This looks like it is on the right track
https://developer.apple.com/forums/thread/128038
Probably GateKeeper is mad because there is some RPATH in a PySIde2 library.
comment:9 by , 5 years ago
And this post seems likely what we got, a stray rpath, likely in PySIde2 https://stackoverflow.com/questions/57174961/macos-notarize-gatekeeper-does-not-recognize-notarized-app Apple is really doing a bad job making it so hard to find the cause of GateKeeper failure.
comment:10 by , 5 years ago
I wasn't able to find any gatekeeper related error messages in system.log.
Looking at PySide2 and shiboken2 modules in site-packages, the use @rpath to dynamically link their many libraries to each other and set LC_RPATH in each .so to include @loader_path and @loader_path/Qt/lib. This all looks ok. But even one mistake in the 100 libraries might be the cause of GateKeeper rejecting.
It looks like I need to find a gatekeeper error message or this is going to be hopeless. The previous comment 9 link suggests how to get such an error message by an extremely elaborate method using a clean virtual machine since apparently gatekeeper caches its conclusions. Still I searche system.log and tried starting this daily build only today.
follow-up: 9 comment:11 by , 5 years ago
Mac system.log has only this message each time (including the first time) I try to run ChimeraX_Daily.app and it fails
Dec 3 16:00:18 Toms-MBP com.apple.xpc.launchd[1] (com.apple.xpc.launchd.oneshot.0x10000108.ChimeraX[35195]): removing service since it exited with consistent failure - OS_REASON_EXEC | Gatekeeper policy blocked execution
comment:12 by , 5 years ago
Gatekeeper blocks launching an executable if any library paths go outside the bundle and not to system locations, and none of the checking tools flag this. It is just a blind guess that PySide2 has such a stray library path.
comment:13 by , 5 years ago
One desperate attempt to narrow down the search might be to notarize the app without PySIde2 and shiboken2 and see if Gatekeeper allows it to start. (Of course it will fail immediately, but still get to see if Gatekeeper allows it.) Have to do that on essex.cgl.ucsf.edu since only it has the notarization keys. If it works, could then try adding just shiboken2. If that works, try adding half of PySide2....
comment:14 by , 5 years ago
Fishing around with otool -L in PySIde2 I see a /usr/local/opt library reference among the > 2000 library references. That will cause Gatekeeper to block launch.
cd site-packages/PySide2/Qt
otool -L plugins/*/*.dylib
...
plugins/sqldrivers/libqsqlodbc.dylib
/usr/local/opt/libiodbc/lib/libiodbc.2.dylib (compatibility version 4.0.0, current version 4.25.0)
also tried all Qt frameworks but only saw @rpath, /System/Library and /usr/lib paths
otool -L lib/*/Versions/5/Qt*
comment:15 by , 5 years ago
A more thorough check reveals two referenced libraries outside the bundle
PySide2/Qt/plugins/sqldrivers/libqsqlodbc.dylib:
/usr/local/opt/libiodbc/lib/libiodbc.2.dylib (compatibility version 4.0.0, current version 4.25.0)
PySide2/Qt/plugins/sqldrivers/libqsqlpsql.dylib:
/Applications/Postgres.app/Contents/Versions/9.6/lib/libpq.5.dylib (compatibility version 5.0.0, current version 5.9.0)
Here are the commands that found these
$ cd /Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/lib/python3.8/site-packages
$ otool -L PySide2/Qt/plugins/*/*.dylib | awk '!/@rpath|\/System|\/usr\/lib/{print}'
PySide2/Qt/plugins/assetimporters/libassimp.dylib:
libassimp.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/assetimporters/libuip.dylib:
libuip.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/audio/libqtaudio_coreaudio.dylib:
libqtaudio_coreaudio.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/bearer/libqgenericbearer.dylib:
libqgenericbearer.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/canbus/libqtpassthrucanbus.dylib:
libqtpassthrucanbus.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/canbus/libqtpeakcanbus.dylib:
libqtpeakcanbus.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/canbus/libqttinycanbus.dylib:
libqttinycanbus.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/canbus/libqtvirtualcanbus.dylib:
libqtvirtualcanbus.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/designer/libqquickwidget.dylib:
libqquickwidget.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/designer/libqwebengineview.dylib:
libqwebengineview.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/gamepads/libdarwingamepad.dylib:
libdarwingamepad.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/generic/libqtuiotouchplugin.dylib:
libqtuiotouchplugin.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/geometryloaders/libdefaultgeometryloader.dylib:
libdefaultgeometryloader.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/geometryloaders/libgltfgeometryloader.dylib:
libgltfgeometryloader.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/geoservices/libqtgeoservices_esri.dylib:
libqtgeoservices_esri.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/geoservices/libqtgeoservices_itemsoverlay.dylib:
libqtgeoservices_itemsoverlay.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/geoservices/libqtgeoservices_mapbox.dylib:
libqtgeoservices_mapbox.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/geoservices/libqtgeoservices_mapboxgl.dylib:
libqtgeoservices_mapboxgl.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/geoservices/libqtgeoservices_nokia.dylib:
libqtgeoservices_nokia.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/geoservices/libqtgeoservices_osm.dylib:
libqtgeoservices_osm.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/iconengines/libqsvgicon.dylib:
libqsvgicon.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/imageformats/libqgif.dylib:
libqgif.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/imageformats/libqicns.dylib:
libqicns.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/imageformats/libqico.dylib:
libqico.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/imageformats/libqjpeg.dylib:
libqjpeg.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/imageformats/libqmacheif.dylib:
libqmacheif.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/imageformats/libqmacjp2.dylib:
libqmacjp2.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/imageformats/libqpdf.dylib:
libqpdf.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/imageformats/libqsvg.dylib:
libqsvg.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/imageformats/libqtga.dylib:
libqtga.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/imageformats/libqtiff.dylib:
libqtiff.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/imageformats/libqwbmp.dylib:
libqwbmp.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/imageformats/libqwebp.dylib:
libqwebp.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/mediaservice/libqavfcamera.dylib:
libqavfcamera.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/mediaservice/libqavfmediaplayer.dylib:
libqavfmediaplayer.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/mediaservice/libqtmedia_audioengine.dylib:
libqtmedia_audioengine.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.dylib:
libqtvirtualkeyboardplugin.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/platforms/libqcocoa.dylib:
libqcocoa.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/platforms/libqminimal.dylib:
libqminimal.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/platforms/libqoffscreen.dylib:
libqoffscreen.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/platforms/libqwebgl.dylib:
libqwebgl.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/platformthemes/libqxdgdesktopportal.dylib:
libqxdgdesktopportal.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/playlistformats/libqtmultimedia_m3u.dylib:
libqtmultimedia_m3u.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/position/libqtposition_cl.dylib:
libqtposition_cl.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/position/libqtposition_positionpoll.dylib:
libqtposition_positionpoll.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/position/libqtposition_serialnmea.dylib:
libqtposition_serialnmea.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/printsupport/libcocoaprintersupport.dylib:
libcocoaprintersupport.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/qmltooling/libqmldbg_debugger.dylib:
libqmldbg_debugger.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/qmltooling/libqmldbg_inspector.dylib:
libqmldbg_inspector.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/qmltooling/libqmldbg_local.dylib:
libqmldbg_local.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/qmltooling/libqmldbg_messages.dylib:
libqmldbg_messages.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/qmltooling/libqmldbg_native.dylib:
libqmldbg_native.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/qmltooling/libqmldbg_nativedebugger.dylib:
libqmldbg_nativedebugger.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/qmltooling/libqmldbg_preview.dylib:
libqmldbg_preview.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/qmltooling/libqmldbg_profiler.dylib:
libqmldbg_profiler.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/qmltooling/libqmldbg_quickprofiler.dylib:
libqmldbg_quickprofiler.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/qmltooling/libqmldbg_server.dylib:
libqmldbg_server.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/qmltooling/libqmldbg_tcp.dylib:
libqmldbg_tcp.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/renderers/libopenglrenderer.dylib:
libopenglrenderer.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/renderplugins/libscene2d.dylib:
libscene2d.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/sceneparsers/libassimpsceneimport.dylib:
libassimpsceneimport.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/sceneparsers/libgltfsceneexport.dylib:
libgltfsceneexport.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/sceneparsers/libgltfsceneimport.dylib:
libgltfsceneimport.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/sensorgestures/libqtsensorgestures_plugin.dylib:
libqtsensorgestures_plugin.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/sensorgestures/libqtsensorgestures_shakeplugin.dylib:
libqtsensorgestures_shakeplugin.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/sensors/libqtsensors_generic.dylib:
libqtsensors_generic.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/sensors/libqtsensors_ios.dylib:
libqtsensors_ios.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/sqldrivers/libqsqlite.dylib:
libqsqlite.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/sqldrivers/libqsqlodbc.dylib:
libqsqlodbc.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/local/opt/libiodbc/lib/libiodbc.2.dylib (compatibility version 4.0.0, current version 4.25.0)
PySide2/Qt/plugins/sqldrivers/libqsqlpsql.dylib:
libqsqlpsql.dylib (compatibility version 0.0.0, current version 0.0.0)
/Applications/Postgres.app/Contents/Versions/9.6/lib/libpq.5.dylib (compatibility version 5.0.0, current version 5.9.0)
PySide2/Qt/plugins/styles/libqmacstyle.dylib:
libqmacstyle.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/texttospeech/libqtexttospeech_speechosx.dylib:
libqtexttospeech_speechosx.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/virtualkeyboard/libqtvirtualkeyboard_hangul.dylib:
libqtvirtualkeyboard_hangul.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/virtualkeyboard/libqtvirtualkeyboard_openwnn.dylib:
libqtvirtualkeyboard_openwnn.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/virtualkeyboard/libqtvirtualkeyboard_pinyin.dylib:
libqtvirtualkeyboard_pinyin.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/virtualkeyboard/libqtvirtualkeyboard_tcime.dylib:
libqtvirtualkeyboard_tcime.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/virtualkeyboard/libqtvirtualkeyboard_thai.dylib:
libqtvirtualkeyboard_thai.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/webview/libqtwebview_darwin.dylib:
libqtwebview_darwin.dylib (compatibility version 0.0.0, current version 0.0.0)
PySide2/Qt/plugins/webview/libqtwebview_webengine.dylib:
libqtwebview_webengine.dylib (compatibility version 0.0.0, current version 0.0.0)
$ otool -L PySide2/Qt/lib/*/Versions/5/Qt* | awk '!/@rpath|\/System|\/usr\/lib/{print}'
PySide2/Qt/lib/Qt3DAnimation.framework/Versions/5/Qt3DAnimation:
PySide2/Qt/lib/Qt3DCore.framework/Versions/5/Qt3DCore:
PySide2/Qt/lib/Qt3DExtras.framework/Versions/5/Qt3DExtras:
PySide2/Qt/lib/Qt3DInput.framework/Versions/5/Qt3DInput:
PySide2/Qt/lib/Qt3DLogic.framework/Versions/5/Qt3DLogic:
PySide2/Qt/lib/Qt3DQuick.framework/Versions/5/Qt3DQuick:
PySide2/Qt/lib/Qt3DQuickAnimation.framework/Versions/5/Qt3DQuickAnimation:
PySide2/Qt/lib/Qt3DQuickExtras.framework/Versions/5/Qt3DQuickExtras:
PySide2/Qt/lib/Qt3DQuickInput.framework/Versions/5/Qt3DQuickInput:
PySide2/Qt/lib/Qt3DQuickRender.framework/Versions/5/Qt3DQuickRender:
PySide2/Qt/lib/Qt3DQuickScene2D.framework/Versions/5/Qt3DQuickScene2D:
PySide2/Qt/lib/Qt3DRender.framework/Versions/5/Qt3DRender:
PySide2/Qt/lib/QtBluetooth.framework/Versions/5/QtBluetooth:
PySide2/Qt/lib/QtBodymovin.framework/Versions/5/QtBodymovin:
PySide2/Qt/lib/QtCharts.framework/Versions/5/QtCharts:
PySide2/Qt/lib/QtConcurrent.framework/Versions/5/QtConcurrent:
PySide2/Qt/lib/QtCore.framework/Versions/5/QtCore:
PySide2/Qt/lib/QtDBus.framework/Versions/5/QtDBus:
PySide2/Qt/lib/QtDataVisualization.framework/Versions/5/QtDataVisualization:
PySide2/Qt/lib/QtDesigner.framework/Versions/5/QtDesigner:
PySide2/Qt/lib/QtDesignerComponents.framework/Versions/5/QtDesignerComponents:
PySide2/Qt/lib/QtGamepad.framework/Versions/5/QtGamepad:
PySide2/Qt/lib/QtGui.framework/Versions/5/QtGui:
PySide2/Qt/lib/QtHelp.framework/Versions/5/QtHelp:
PySide2/Qt/lib/QtLocation.framework/Versions/5/QtLocation:
PySide2/Qt/lib/QtMacExtras.framework/Versions/5/QtMacExtras:
PySide2/Qt/lib/QtMultimedia.framework/Versions/5/QtMultimedia:
PySide2/Qt/lib/QtMultimediaQuick.framework/Versions/5/QtMultimediaQuick:
PySide2/Qt/lib/QtMultimediaWidgets.framework/Versions/5/QtMultimediaWidgets:
PySide2/Qt/lib/QtNetwork.framework/Versions/5/QtNetwork:
PySide2/Qt/lib/QtNetworkAuth.framework/Versions/5/QtNetworkAuth:
PySide2/Qt/lib/QtNfc.framework/Versions/5/QtNfc:
PySide2/Qt/lib/QtOpenGL.framework/Versions/5/QtOpenGL:
PySide2/Qt/lib/QtPdf.framework/Versions/5/QtPdf:
PySide2/Qt/lib/QtPdfWidgets.framework/Versions/5/QtPdfWidgets:
PySide2/Qt/lib/QtPositioning.framework/Versions/5/QtPositioning:
PySide2/Qt/lib/QtPositioningQuick.framework/Versions/5/QtPositioningQuick:
PySide2/Qt/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport:
PySide2/Qt/lib/QtPurchasing.framework/Versions/5/QtPurchasing:
PySide2/Qt/lib/QtQml.framework/Versions/5/QtQml:
PySide2/Qt/lib/QtQmlModels.framework/Versions/5/QtQmlModels:
PySide2/Qt/lib/QtQmlWorkerScript.framework/Versions/5/QtQmlWorkerScript:
PySide2/Qt/lib/QtQuick.framework/Versions/5/QtQuick:
PySide2/Qt/lib/QtQuick3D.framework/Versions/5/QtQuick3D:
PySide2/Qt/lib/QtQuick3DAssetImport.framework/Versions/5/QtQuick3DAssetImport:
PySide2/Qt/lib/QtQuick3DRender.framework/Versions/5/QtQuick3DRender:
PySide2/Qt/lib/QtQuick3DRuntimeRender.framework/Versions/5/QtQuick3DRuntimeRender:
PySide2/Qt/lib/QtQuick3DUtils.framework/Versions/5/QtQuick3DUtils:
PySide2/Qt/lib/QtQuickControls2.framework/Versions/5/QtQuickControls2:
PySide2/Qt/lib/QtQuickParticles.framework/Versions/5/QtQuickParticles:
PySide2/Qt/lib/QtQuickShapes.framework/Versions/5/QtQuickShapes:
PySide2/Qt/lib/QtQuickTemplates2.framework/Versions/5/QtQuickTemplates2:
PySide2/Qt/lib/QtQuickTest.framework/Versions/5/QtQuickTest:
PySide2/Qt/lib/QtQuickWidgets.framework/Versions/5/QtQuickWidgets:
PySide2/Qt/lib/QtRemoteObjects.framework/Versions/5/QtRemoteObjects:
PySide2/Qt/lib/QtScript.framework/Versions/5/QtScript:
PySide2/Qt/lib/QtScriptTools.framework/Versions/5/QtScriptTools:
PySide2/Qt/lib/QtScxml.framework/Versions/5/QtScxml:
PySide2/Qt/lib/QtSensors.framework/Versions/5/QtSensors:
PySide2/Qt/lib/QtSerialBus.framework/Versions/5/QtSerialBus:
PySide2/Qt/lib/QtSerialPort.framework/Versions/5/QtSerialPort:
PySide2/Qt/lib/QtSql.framework/Versions/5/QtSql:
PySide2/Qt/lib/QtSvg.framework/Versions/5/QtSvg:
PySide2/Qt/lib/QtTest.framework/Versions/5/QtTest:
PySide2/Qt/lib/QtTextToSpeech.framework/Versions/5/QtTextToSpeech:
PySide2/Qt/lib/QtVirtualKeyboard.framework/Versions/5/QtVirtualKeyboard:
PySide2/Qt/lib/QtWebChannel.framework/Versions/5/QtWebChannel:
PySide2/Qt/lib/QtWebEngine.framework/Versions/5/QtWebEngine:
PySide2/Qt/lib/QtWebEngineCore.framework/Versions/5/QtWebEngineCore:
PySide2/Qt/lib/QtWebEngineWidgets.framework/Versions/5/QtWebEngineWidgets:
PySide2/Qt/lib/QtWebSockets.framework/Versions/5/QtWebSockets:
PySide2/Qt/lib/QtWebView.framework/Versions/5/QtWebView:
PySide2/Qt/lib/QtWidgets.framework/Versions/5/QtWidgets:
PySide2/Qt/lib/QtXml.framework/Versions/5/QtXml:
PySide2/Qt/lib/QtXmlPatterns.framework/Versions/5/QtXmlPatterns:
$ otool -L PySide2/*.so | awk '!/@rpath|\/System|\/usr\/lib/{print}'
PySide2/Qt3DAnimation.abi3.so:
PySide2/Qt3DCore.abi3.so:
PySide2/Qt3DExtras.abi3.so:
PySide2/Qt3DInput.abi3.so:
PySide2/Qt3DLogic.abi3.so:
PySide2/Qt3DRender.abi3.so:
PySide2/QtCharts.abi3.so:
PySide2/QtConcurrent.abi3.so:
PySide2/QtCore.abi3.so:
PySide2/QtDataVisualization.abi3.so:
PySide2/QtGui.abi3.so:
PySide2/QtHelp.abi3.so:
PySide2/QtLocation.abi3.so:
PySide2/QtMacExtras.abi3.so:
PySide2/QtMultimedia.abi3.so:
PySide2/QtMultimediaWidgets.abi3.so:
PySide2/QtNetwork.abi3.so:
PySide2/QtOpenGL.abi3.so:
PySide2/QtOpenGLFunctions.abi3.so:
PySide2/QtPositioning.abi3.so:
PySide2/QtPrintSupport.abi3.so:
PySide2/QtQml.abi3.so:
PySide2/QtQuick.abi3.so:
PySide2/QtQuickControls2.abi3.so:
PySide2/QtQuickWidgets.abi3.so:
PySide2/QtRemoteObjects.abi3.so:
PySide2/QtScript.abi3.so:
PySide2/QtScriptTools.abi3.so:
PySide2/QtScxml.abi3.so:
PySide2/QtSensors.abi3.so:
PySide2/QtSerialPort.abi3.so:
PySide2/QtSql.abi3.so:
PySide2/QtSvg.abi3.so:
PySide2/QtTest.abi3.so:
PySide2/QtTextToSpeech.abi3.so:
PySide2/QtUiTools.abi3.so:
PySide2/QtWebChannel.abi3.so:
PySide2/QtWebEngine.abi3.so:
PySide2/QtWebEngineCore.abi3.so:
PySide2/QtWebEngineWidgets.abi3.so:
PySide2/QtWebSockets.abi3.so:
PySide2/QtWidgets.abi3.so:
PySide2/QtXml.abi3.so:
PySide2/QtXmlPatterns.abi3.so:
$ otool -L shiboken2/*.so shiboken2/*.dylib | awk '!/@rpath|\/System|\/usr\/lib/{print}'
shiboken2/shiboken2.abi3.so:
shiboken2/libshiboken2.abi3.5.15.dylib:
comment:16 by , 5 years ago
Removed offending PySide2 plugins/sqldrivers/*.dylib files. Let's see if that fixes launching the Mac app tomorrow.
comment:17 by , 5 years ago
Removing the sql PySIde2 plugins did not fix Gatekeeper approval. Still says "developer cannot be verified".
comment:18 by , 5 years ago
Notarized ChimeraX app on essex with PySide2 and shiboken2 removed and Gatekeeper accepts it.
Notarized ChimeraX app with PySide2/Qt removed and Gatekeeper rejects it.
PySide2/pyside2-lupdate executable sets LC_RPATH /Users/qt/work/install/lib outside app.
Removed PySide2/Qt and PySide2/pyside2-lupdate and Gatekeeper accepts it.
Removed only PySide2/pyside2-lupdate (and sql plugins removed by build) and Gatekeeper accepts it.
I removed pyside2-lupdate in ChimeraX pip app-install. This should make Gatekeeper allow ChimeraX to start.
I reported these external dependencies in a PySide2 bug report
comment:19 by , 5 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed.
New PySide2 releases may add or remove external non-system library dependencies, so this bug may recur.
comment:20 by , 5 years ago
Updated PySide2 from version 15.1 to 15.2 (using Qt 5.15.2) and it has the same external non-system library dependencies.
Added by email2trac