Comment 0 for bug 392693

Wim Lewis (wiml) wrote :

The pre-compiled Inkscape-0.46-2.LEOPARD.UNIVERSAL.dmg will not run on my system. The problem is that the included copy of libxml2 is an older version than the system version, which itself is indirectly used by inkscape:

Process: inkscape-bin [25867]
Path: /Applications/Local/Inkscape.app/Contents/Resources/bin/inkscape-bin
Code Type: X86 (Native)
[....]
Dyld Error Message:
  Library not loaded: /usr/lib/libxml2.2.dylib
  Referenced from: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
  Reason: Incompatible library version: DictionaryServices requires version 10.0.0 or later, but libxml2.2.dylib provides version 9.0.0

"otool -L" shows that Inkscape.app/Contents/Resources/lib/libxml2.2.dylib is version 9.31.0, but /usr/lib/libxml2.2.dylib is 10.3.0.

Simply removing Inkscape's copy of libxml2.2.dylib caused it to load the system's copy instead and all was well.

As an aside, Inkscape's libraries all have install-names of /opt/local/lib, and Inkscape uses DYLD_LIBRARY_PATH to find them, which is probably not a good idea--- for bundled libraries, it's much less trouble-prone to use the @executable_path or (on 10.5 and up) @loader_path and @rpath features of dyld.