Summary: | install_name_tool failures make builds unusable | ||
---|---|---|---|
Product: | [Unmaintained] Craft | Reporter: | Dawid Wróbel <me> |
Component: | Core | Assignee: | Hannah von Reth <vonreth> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | kde-windows |
Priority: | NOR | ||
Version: | master | ||
Target Milestone: | --- | ||
Platform: | macOS (DMG) | ||
OS: | macOS | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Dawid Wróbel
2021-02-21 21:42:04 UTC
If you mean delete rpath, you can ignore errors for that call. OK, so I suppose I jumped into conclusion here about install_name_tool failures causing the issue we're seeing (https://forum.kde.org/viewtopic.php?f=69&t=167626) in KMyMoney builds, which causes the App to fail to start due to missing QtTextToSpeech library: Dyld Error Message: dyld: Using shared cache: 331D32F2-DC75-3EDE-91BC-EDC4B036B5C0 Library not loaded: @rpath/QtTextToSpeech.framework/Versions/5/QtTextToSpeech Referenced from: /Applications/kmymoney.app/Contents/Frameworks/libKF5TextWidgets.5.dylib Reason: image not found The libKF5TextWidgets.5.dylib links against QtTextToSpeech using rpath: ~ otool -L /Applications/kmymoney.app/Contents/Frameworks/libKF5TextWidgets.5.dylib /Applications/kmymoney.app/Contents/Frameworks/libKF5TextWidgets.5.dylib: @executable_path/../Frameworks/libKF5TextWidgets.5.dylib (compatibility version 5.0.0, current version 5.79.0) @loader_path/libKF5SonnetUi.5.dylib (compatibility version 5.0.0, current version 5.79.0) @loader_path/libKF5SonnetCore.5.dylib (compatibility version 5.0.0, current version 5.79.0) @loader_path/libKF5ConfigWidgets.5.dylib (compatibility version 5.0.0, current version 5.79.0) @loader_path/libKF5Completion.5.dylib (compatibility version 5.0.0, current version 5.79.0) @rpath/QtTextToSpeech.framework/Versions/5/QtTextToSpeech (compatibility version 5.15.0, current version 5.15.2) @loader_path/libKF5I18n.5.dylib (compatibility version 5.0.0, current version 5.79.0) @loader_path/libKF5Codecs.5.dylib (compatibility version 5.0.0, current version 5.79.0) @loader_path/libKF5Auth.5.dylib (compatibility version 5.0.0, current version 5.79.0) @loader_path/libKF5AuthCore.5.dylib (compatibility version 5.0.0, current version 5.79.0) @loader_path/libKF5CoreAddons.5.dylib (compatibility version 5.0.0, current version 5.79.0) @loader_path/libKF5WidgetsAddons.5.dylib (compatibility version 5.0.0, current version 5.79.0) @rpath/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.15.0, current version 5.15.2) @loader_path/libKF5ConfigGui.5.dylib (compatibility version 5.0.0, current version 5.79.0) @rpath/QtGui.framework/Versions/5/QtGui (compatibility version 5.15.0, current version 5.15.2) @rpath/QtXml.framework/Versions/5/QtXml (compatibility version 5.15.0, current version 5.15.2) @loader_path/libKF5ConfigCore.5.dylib (compatibility version 5.0.0, current version 5.79.0) @rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.15.0, current version 5.15.2) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 800.7.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.0.0) However, no LC_RPATH are set in the binary: ~ otool -l /Applications/kmymoney.app/Contents/MacOS/kmymoney | grep LC_RPATH ~ So the @rpaths cannot work as expected. Therefore I'd say that the "delete rpath" issues I originally reported *are*, in fact, relevant. Just to add evidence to my conclusion, I replaced the QtTextToSpeech rpath with an absolute path with: install_name_tool -change @rpath/QtTextToSpeech.framework/Versions/5/QtTextToSpeech /Applications/kmymoney.app/Contents/Frameworks/QtTextToSpeech.framework/Versions/5/QtTextToSpeech /Applications/kmymoney.app/Contents/Frameworks/libKF5TextWidgets.5.dylib Once done, it moved on until it stopped at another @rpath Qt lib. Replacing it with an absolute one again made it move on further. Rinse, repeat. The rpaths don't work and AFIK this is expected if LC_RPATH is not defined in the executable. This has been fixed at some point during last month or so. |