gnucash linking wrong libffi.dylib
Jeffrey Goldberg
jeffrey at goldmark.org
Mon Feb 4 06:30:08 PST 2008
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/
More information about the macports-users
mailing list