On Feb 4, 2008, at 1:52 AM, Peter O'Gorman wrote:
On 3-Feb-08, at 11:27 PM, David Reiser wrote:
On Feb 3, 2008, at 5:21 PM, Jeffrey Goldberg wrote:
I must confess that I do not even begin to understand prebinding. Nor do I know what the OS X analog of the linux ldconfig command and configuration is. But I suspect that the answer to my problem will lie in those directions.
I've installed gnome/gnucash using macports (that was a bit of a trick because of confusion about which guile installation was needed. Gnucash configure couldn't find guile16, but I had other problems with guile 1.8. I also needed to install "+without_docs" because otherwise port tried and failed to install firefox) But I did finally get something compiled and installed.
However, it won't run, and this is what I get to standard error.
dyld: Library not loaded: /usr/lib/libffi.dylib Referenced from: /System/Library/Frameworks/QuartzCore.framework/Versions/A/ QuartzCore Reason: Incompatible library version: QuartzCore requires version 1.0.0 or later, but libffi.dylib provides version 0.0.0
I note that there is a an /opt/local/lib/libffi.dylib installed, but apparently that's not the dynamic library that gnucash finds.
Seems to me that's x11 that's complaining about the version of libffi. Before 2.2, gnucash used g-wrap to to handle some functions, and g-wrap brought in a rather ancient version of libffi. gnucash has since switched to swig for the functions formerly handled by g-wrap, and you don't even need swig if you are building gnucash from a tarball.
While I don't know anything else about your system, you might try removing g-wrap, or whatever else is supplying libffi in macports, and see if xquartz will then use the Leopard-provided /usr/lib/ libffi.dylib.
I use that other packaging system, so I can't swear what needs to be in place, but I don't have any libffi except /usr/lib/ libffi.dylib, and gnucash works for me on an almost identical system.
Hi David,
Something is setting DYLD_LIBRARY_PATH. I know that gnucash used to do it, not sure if it still does. The symptoms are that DYLD_LIBRARY_PATH is set to /opt/local/lib so the dynamic linker is finding the version of libffi.dylib there. I am sure that otool -L will confirm that the libffi in /opt/local has compatibility_version 0.0.0.
Does gnucash still have a wrapper script that sets DYLD_LIBRARY_PATH?
Peter -- Peter O'Gorman http://pogma.com
Yes, gnucash does set DYLD_LIBRARY_PATH. The justification for their adding it was to allow gnucash to pass make check on a mac. (one symptom being that configure can find MSGFMT, but make can't). Jeff, The patch I use for this is: perl -pi.bak -e 's,DYLD_LIBRARY_PATH,DYLD_FALLBACK_LIBRARY_PATH,g' aclocal.m4 perl -pi.bak -e 's,DYLD_LIBRARY_PATH,DYLD_FALLBACK_LIBRARY_PATH,g' configure perl -pi.bak -e 's,DYLD_LIBRARY_PATH,DYLD_FALLBACK_LIBRARY_PATH,g' src/bin/gnucash.in perl -pi.bak -e 's,DYLD_LIBRARY_PATH,DYLD_FALLBACK_LIBRARY_PATH,g' src/bin/overrides/gnucash-env.in perl -pi.bak -e 's,DYLD_LIBRARY_PATH,DYLD_FALLBACK_LIBRARY_PATH,g' src/gnc-test-env Dave