Opened 13 years ago
Closed 12 years ago
#32391 closed defect (fixed)
Lion: cyrus-sasl @2.1.23_3+kerberos causes Incompatible library version: LDAP requires version 3.0.0 or later, but libsasl2.2.dylib provides version 0.0.0
Reported by: | nelson.ferreira@… | Owned by: | jmpalacios (Juan Manuel Palacios) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.0.3 |
Keywords: | Cc: | landonf (Landon Fuller) | |
Port: | cyrus-sasl2 |
Description (last modified by mf2k (Frank Schima))
The summary says it all.
After installing cyrus-sasl I had these errors while losing programs linked to ssl, gone after uninstalling cyrus-sasl.
dyld: Library not loaded: /usr/lib/libsasl2.2.dylib Referenced from: /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP Reason: Incompatible library version: LDAP requires version 3.0.0 or later, but libsasl2.2.dylib provides version 0.0.0
Change History (5)
comment:1 Changed 13 years ago by nelson.ferreira@…
comment:2 follow-up: 4 Changed 13 years ago by kato23@…
The error is from the buggy pattern matching of a case
command in cyrus-sasl-2.1.23/config/ltconfig
where (on my machine) case "$host_os" in ... darwin[15]* | rhapsody*)
unfortunately matches i386-apple-darwin10.8.0
. The matching expression of the case
command has to be altered to darwin[15].* | rhapsody*)
to prevent this (see http://en.wikipedia.org/wiki/Darwin_(operating_system) for a list of Darwin kernel version numbers).
The same faulty pattern matching code can be found in cyrus-sasl-2.1.23/saslauthd/config/ltconfig
although it does not seem to cause any error there.
To replace your wrongly versioned libsasl2.dylib
with a correctly versioned one try the following:
sudo port -f uninstall cyrus-sasl2 sudo port clean --all cyrus-sasl2 sudo port extract cyrus-sasl2 cd "$(port dir cyrus-sasl2)"/work/cyrus-sasl-2.1.23 /bin/sh config/config.guess # i386-apple-darwin10.8.0 sudo /bin/sh -c 'config/ltconfig config/ltmain.sh' printf '%s\n' H '/\(darwin\[15\]\)/s//\1./g' wq | sudo ed -s config/ltconfig printf '%s\n' H '/\(darwin\[15\]\)/s//\1./g' wq | sudo ed -s saslauthd/config/ltconfig sudo port -f -s install cyrus-sasl2 otool -L /opt/local/lib/libsasl2.dylib # /opt/local/lib/libsasl2.dylib: # /opt/local/lib/libsasl2.2.dylib (compatibility version 3.0.0, current version 3.23.0) # /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11) # /usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 41.1.0) # check for further wrongly versioned dylibs otool -L /opt/local/lib/*.dylib | grep 'compatibility version 0.0.0, current version 0.0.0' | sort -u | nl
comment:3 Changed 13 years ago by mf2k (Frank Schima)
Cc: | landonf@… added |
---|---|
Description: | modified (diff) |
Owner: | changed from macports-tickets@… to jmpp@… |
Port: | cyrus-sasl2 added |
comment:4 Changed 13 years ago by kato23@…
Replying to kato23@…:
The error is from the buggy pattern matching of a
case
command incyrus-sasl-2.1.23/config/ltconfig
where (on my machine)case "$host_os" in ... darwin[15]* | rhapsody*)
unfortunately matchesi386-apple-darwin10.8.0
.
Should read:
The error is from the buggy pattern matching of a case
command in cyrus-sasl-2.1.23/config/ltconfig
where (on my machine) case "$host_os" in ... darwin[15]* | rhapsody*)
unfortunately matches darwin10.8.0
(as derived from i386-apple-darwin10.8.0
) .
# In cyrus-sasl-2.1.23/config/ltconfig we have the following commands (in an abridged form) ... echo $ac_n "checking host system type""... $ac_c" 1>&6 host_alias=`$SHELL $ac_config_guess` host=`$SHELL $ac_config_sub $host_alias` echo "$ac_t$host" 1>&6 ... host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # ... which can be roughly reproduced in the shell using ... cd "$(port dir cyrus-sasl2)"/work/cyrus-sasl-2.1.23 host_alias=`/bin/sh config/config.guess` host=`/bin/sh config/config.sub $host_alias` host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` printf '%s\n' "host: $host" "host_os: $host_os" # host: i386-apple-darwin10.8.0 # host_os: darwin10.8.0
comment:5 Changed 12 years ago by jmroot (Joshua Root)
Resolution: | → fixed |
---|---|
Status: | new → closed |
This won't actually cause any errors unless you do something like set DYLD_LIBRARY_PATH incorrectly, but sure, the lib version is wrong. Fixed in r94807.
Crash reporter details of an example: