Mike Alexander wrote:
--On August 13, 2007 4:31:43 PM +1000 Boey Maun Suang <boeyms@macports.org> wrote:
On 12/08/2007, at 06:22, David Rowe wrote:
1) Gnucash apparently installed OK, but when I try to launch it, the X11 log reports: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< dyld: Symbol not found: __cg_jpeg_resync_to_restart Referenced from: /System/Library/Frameworks/ ApplicationServices.framework/Versions/A/Frameworks/ ImageIO.framework/Versions/A/ImageIO Expected in: /opt/local/lib/libjpeg.62.dylib
Trace/BPT trap
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
I've seen the comments from other people, but I can't help but think that there's a better way of dealing with this than fiddling with DYLD_LIBRARY_PATH and DYLD_FALLBACK_LIBRARY_PATH. One think that I'd suggest would be to try forcing a rebuild of Gnucash's dependencies, and after that Gnucash itself. The jpeg port provides /opt/local/lib/libjpeg.62.dylib, so the following will hopefully work:
sudo port -f upgrade jpeg sudo port -fn upgrade gnucash (-n tells port not to rebuild all the rest of gnucash's dependencies)
If that doesn't work, it looks to me like something that really should be fixed by the Gnucash developers rather than the port's maintainer, so it'd be great if you can report your problem to them.
It may not be that simple. There are two JPEG libraries involved. The one in System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib defines __cg_jpeg_resync_to_restart and the one in /opt/local/lib/libjpeg.62.0.0.dylib doesn't. Gnucash is linked against the latter, but ImageIO needs the former. I don't know if Gnucash will work with the former or not.
The real question to me is why the MacPorts build of Gnucash needs ImageIO. I built it by hand (using MacPorts for all the dependencies) and my copy doesn't need it. It links against the MacPorts JPEG library and runs fine.
It's possible that Gnucash will work with ImageIO if you remove the MacPorts version of libjpeg and let it build with the system library. You may have similar problems with the TIFF library.
Following Mike's comment, I tried editing the shell script: /opt/local/bin/gnucash (the one that launches Gnucash). Line 20 originally read: DYLD_LIBRARY_PATH="${EXTRA_LIBS}:${DYLD_LIBRARY_PATH}" So I altered it to: #DYLD_LIBRARY_PATH="${EXTRA_LIBS}:${DYLD_LIBRARY_PATH}" DYLD_LIBRARY_PATH="/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources:/opt/local/lib:/opt/local/lib/gnucash" and Gnucash 2.2.0 now loads and apparently runs its basic functions OK. ** Please note: I have NOT tested the full functionality. This is just a work-round so I can try out the new version of gnucash on a non-critical application. Use it at your own risk. David Rowe