Opened 7 years ago

Closed 7 years ago

#41638 closed defect (invalid)

gnucash won't run b/c libvorbisfile is too old

Reported by: LenoreHorner Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.2.1
Keywords: Cc: drkp (Dan Ports), ryandesign (Ryan Schmidt)
Port: gnucash libvorbis

Description (last modified by ryandesign (Ryan Schmidt))

dyld: Library not loaded: /opt/local/lib/libvorbisfile.3.dylib
  Referenced from: /opt/local/bin/gnucash
  Reason: Incompatible library version: gnucash requires version 7.0.0 or later, but libvorbisfile.3.dylib provides version 6.0.0
Trace/BPT trap: 5

I've just run self update so MacPorts is at 2.2.1. My OS is 10.8.5.

I don't actually see the connection between GnuCash and sound compression apparatus.

Change History (7)

comment:1 Changed 7 years ago by ryandesign (Ryan Schmidt)

Description: modified (diff)

/opt/local/lib/libvorbisfile.3.dylib is library version 7.5.0 on my system, so something is wrong with your libvorbisfile. Rebuild the libvorbis port:

sudo port -n upgrade --force libvorbis

comment:2 Changed 7 years ago by LenoreHorner

Thanks. I tried that. Nothing changes: gnu cash still complains the dylib is at version 6.0.0. How do I find out (other than what trying to run gnu cash reports) what version of the library my /opt/local/lib/libvorbisfile.3.dylib is?

comment:3 in reply to:  2 Changed 7 years ago by larryv (Lawrence Velázquez)

% otool -L /opt/local/lib/libvorbisfile.3.dylib

comment:4 Changed 7 years ago by ryandesign (Ryan Schmidt)

Have you set the DYLD_LIBRARY_PATH variable in your shell environment? (Type env | grep DYLD to find out.) If so that could cause this problem, if the location you're specifying contains an older libvorbisfile.

comment:5 Changed 7 years ago by LenoreHorner

otool -L /opt/local/lib/libvorbisfile.3.dylib
	/opt/local/lib/libvorbisfile.3.dylib (compatibility version 7.0.0, current version 7.5.0)
	/opt/local/lib/libvorbis.0.dylib (compatibility version 5.0.0, current version 5.6.0)
	/opt/local/lib/libogg.0.dylib (compatibility version 9.0.0, current version 9.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

DYLD_LIBRARY_PATH is be the problem. I did not set this. xuggler must be something that came in with something I installed. It looks like Tracker (which is part of a suite of science teaching software) installed itself in /usr/local and then changed my path. Grrmph! Thanks Ryan and Larry.

Last edited 7 years ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:6 Changed 7 years ago by LenoreHorner

How do I find out where that setting is coming from? I've commented out the lines in .profile and restarted terminal. Terminal no longer things DYLD_LIBRARY_PATH is set. However, when I start gnu cash from Terminal, I get segmentation fault 11. X11 has started at that point. If I go to X11 and open the terminal there, the path is still set. I found the settings had been added not only to .profile, but also to .bashrc. So I moved aside .bashrc (that being the only thing there) by renaming it and quit X11. However, when X11 restarts, the path is still set. I don't know how to track this down. This isn't being set in /etc/paths.d/. It's not set in /etc/paths. I don't have .bash_profile anywhere on my system. It's not being set in /etc/bashrc. I've quit and restarted both Terminal and xterm in X11. Do I have to actually shutdown my computer to get rid of this?

comment:7 Changed 7 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… added
Keywords: gnucash libvorbis removed
Port: gnucash libvorbis added
Resolution: invalid
Status: newclosed

Restarting the computer should not be necessary, only creating a new shell (i.e. closing the terminal window and making a new one). I'd ask the developers of xuggler where all they've set this variable, so that you can remove it.

You should also ask the developers to redo their distribution so that setting this variable is not necessary, because as you see it causes great problems.

Note: See TracTickets for help on using tickets.