On Feb 4, 2008, at 12:52 AM, Peter O'Gorman wrote:
On 3-Feb-08, at 11:27 PM, David Reiser wrote:
Seems to me that's x11 that's complaining about the version of libffi.
Indeed it does seem that way.
Before 2.2, gnucash used g-wrap to to handle some functions,
Following Peters comments (below), I saw that gnucash is a shell wrapper for gnucash-bin. More on that below.
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 have done a sudo port deactivate libffi which did solve this particular problem (but more below).
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.
That does give me hope. I'm actually trying to migrate from fink to macports, and if I can't get gnucash working, I will go back to fink if needed. The main reason I'm moving is that I've moved my servers from Linux to FreeBSD last year, and I've fallen in love with the ports system there. Also, I had been having increasing difficulties with fink.
Something is setting DYLD_LIBRARY_PATH. I know that gnucash used to do it, not sure if it still does.
Indeed that is it. /opt/local/bin/gnucash is a shell script. (I added some linebreaks to the DYLD_LIBRARY_PATH below) #!/bin/sh PATH="/opt/local/bin:${PATH}" export PATH GUILE_WARN_DEPRECATED="no" export GUILE_WARN_DEPRECATED GNC_MODULE_PATH="/opt/local/lib/gnucash:${GNC_MODULE_PATH}" EXTRA_PATH="${EXTRA_PATH}:/opt/local/share/gnucash/guile-modules" EXTRA_PATH="${EXTRA_PATH}:/opt/local/share/gnucash/scm" GUILE_LOAD_PATH="${EXTRA_PATH}:${GUILE_LOAD_PATH}" EXTRA_LIBS="${GNC_MODULE_PATH}" EXTRA_LIBS="${EXTRA_LIBS}:/opt/local/lib" EXTRA_LIBS="${EXTRA_LIBS}:/opt/local/lib/gnucash" LD_LIBRARY_PATH="${EXTRA_LIBS}:${LD_LIBRARY_PATH}" DYLD_LIBRARY_PATH="/System/Library/Frameworks/ ApplicationServices.framework/ Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources: ${EXTRA_LIBS}:${DYLD_LIBRARY_PATH}" export GNC_MODULE_PATH export GUILE_LOAD_PATH export LD_LIBRARY_PATH export DYLD_LIBRARY_PATH exec gnucash-bin "$@" My normal environment doesn't set any LIBRARY_PATH variables. And I've checked that libffi doesn't exist in that /System/Library ... thing
I am sure that otool -L will confirm that the libffi in /opt/local has compatibility_version 0.0.0.
Thank you. In my pre-posting grasping at straws, I did look at the man page for otool, but was a bit overwhelmed. I can confirm that otool reported that /opt/local/lib/libffi.dylib has compatibility 0.0.0 while the one in /usr/lib reports 1.0.0 So this is where I'm at. I have deactivated libffi and now gnucash starts. I get its splash screen, but then a scheme failure: % gnucash gnc.bin-Message: main: binreloc relocation support was disabled at configure time. Backtrace: In current input: 1: 0* [gnc:reldate-initialize] In /opt/local/share/gnucash/scm/date-utilities.scm: 844: 1* [gnc:make-reldate-hash #(() () () () ...) (# # # # ...)] 382: 2 (map (lambda (reldate) (hash-set! hash # reldate)) reldate- list) /opt/local/share/gnucash/scm/date-utilities.scm:382:3: In expression (map (lambda # #) reldate-list): /opt/local/share/gnucash/scm/date-utilities.scm:382:3: Unbound variable: map mcount: gmon.out: Permission denied My guess here is that I've got gnucash using the wrong version of guile. Although I've studied lamba calculus in logic, I really know nothing of scheme. Thank you both for your help on this. Any suggestions on how to proceed further would be helpful. Cheers, -j -- Jeffrey Goldberg http://www.goldmark.org/jeff/