--On Wednesday, July 16, 2014 1:25 AM +0000 Viktor Dukhovni
<postfix-us...@dukhovni.org> wrote:
On Tue, Jul 15, 2014 at 12:15:19PM -0700, Michael Carter wrote:
reddwarf:~ mikec$ otool -L /usr/local/lib/libsasl2.dylib
/usr/local/lib/libsasl2.dylib:
/libsasl2.dylib (compatibility version 3.0.0, current version 3.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1197.1.1) /usr/lib/libresolv.9.dylib (compatibility version
1.0.0, current version 1.0.0)
This library is built wrong, is there any reason not to use the
SASL libraries that come with the system? If you must use a custom
library, You need to build a library that does not record
"/libsasl2.dylib" as its SONAME (non-darwin terminology).
cyrus-sasl is utterly broken when it comes to doing dynamic builds on the
mac. I submitted a report with them years ago, and it remains broken to
this day (although they attempted a fix in 2.1.26 that didn't work).
I have a script I use to cleanup cyrus-sasl after it is done building on
the mac.
For 2.1.26 my Makefile has:
ifneq (,$(findstring MACOSX,$(BUILD_PLATFORM)))
FIXOSX := (./fix-sasl.pl 0)
endif
quanah@zre-ldap001:~/p4/zimbra/main/ThirdParty/cyrus-sasl$ more fix-sasl.pl
#!/usr/bin/perl
my $so=shift;
my $dir = "/opt/zimbra/cyrus-sasl-2.1.26/lib/sasl2";
my $platform=`../../ZimbraBuild/rpmconf/Build/get_plat_tag.sh`;
chomp $platform;
my @files=<$dir/*.la>;
foreach my $file (@files) {
unlink $file
}
@preserve=("libanonymous.3.so", "libcrammd5.3.so", "libdigestmd5.3.so",
"libgssapiv2.3.so", "liblogin.3.so", "libotp.3.so", "libplain.3.so",
"libgs2.3.so", "libscram.3.so");
foreach $prev (@preserve) {
($name, $junk) = split(/.3.so/,$prev,2);
$fullname = $name.".so.3.0.$so";
rename("$dir/$prev", "$dir/$fullname");
symlink("$fullname", "$dir/$name.so.3");
}
@preserve=("libanonymous.3.0.$so.so", "libcrammd5.3.0.$so.so",
"libdigestmd5.3.0.$so.so", "libgssapiv2.3.0.$so.so", "liblogin.3.0.$so.so",
"libotp.3.0.$so.so", "libplain.3.0.$so.so", "libgs
2.3.0.$so.so", "libscram.3.so");
@files=<$dir/*.so>;
foreach $file (@files) {
unlink $file
}
foreach $prev (@preserve) {
($name, $junk) = split(/.3.0.$so.so/,$prev,2);
$fullname = $name.".so.3.0.$so";
symlink("$fullname", "$dir/$name.so");
}
--Quanah
--
Quanah Gibson-Mount
Server Architect
Zimbra, Inc.
--------------------
Zimbra :: the leader in open source messaging and collaboration