[MacPorts] #29054: alpine port picks up OpenSSL libraries from /usr/lib instead of Mac Ports installed versions

MacPorts noreply at macports.org
Wed Apr 6 19:27:02 PDT 2011


#29054: alpine port picks up OpenSSL libraries from /usr/lib instead of Mac Ports
installed versions
--------------------------------------------+-------------------------------
 Reporter:  MacPorts.ORG@…                  |       Owner:  macports-tickets@…                   
     Type:  defect                          |      Status:  new                                  
 Priority:  Normal                          |   Milestone:                                       
Component:  ports                           |     Version:  1.9.2                                
 Keywords:  alpine openssl                  |        Port:  alpine                               
--------------------------------------------+-------------------------------
 Building alpine 2.00 with Mac Ports 1.9.2 on Mac OS X 10.5.x fails:

 {{{
 :info:build /usr/bin/gcc-4.0 -std=gnu99 -g -D_THREAD_SAFE -Dbsd -O2 -arch
 ppc \
 -arch ppc -o alpine addrbook.o adrbkcmd.o after.o alpine.o arg.o busy.o
 colorconf.o \
 confscroll.o context.o dispfilt.o flagmaint.o folder.o help.o imap.o
 init.o kblock.o \
 keymenu.o ldapconf.o listsel.o mailcmd.o mailindx.o mailpart.o mailview.o
 newuser.o \
 pattern.o pipe.o print.o radio.o remote.o reply.o roleconf.o send.o
 setup.o signal.o \
 status.o takeaddr.o titlebar.o smime.o date.o -Wl,-framework
 -Wl,CoreFoundation \
 -framework Carbon -framework ApplicationServices -framework Security
 -L/usr/lib \
 -lkrb5 -lcom_err -lpam -ldl -L/opt/local/lib ../pico/libpico.a \
 ../pico/osdep/libpicoosd.a ../pith/libpith.a ../pith/osdep/libpithosd.a \
 ../pith/charconv/libpithcc.a osdep/libpineosd.a ../c-client/c-client.a \
 /opt/local/lib/libintl.dylib /opt/local/lib/libiconv.dylib
 /usr/lib/libiconv.dylib -lc \
 -lgssapi_krb5 -lldap -lncurses -llber -lssl -lcrypto

 :info:build Undefined symbols:
 :info:build   "_BIO_method_type", referenced from:
 :info:build       _so_seek in libpith.a(store.o)
 :info:build ld: symbol(s) not found
 :info:build collect2: ld returned 1 exit status
 :info:build make[4]: *** [alpine] Error 1
 :info:build make[3]: *** [all-recursive] Error 1
 :info:build make[2]: *** [all] Error 2
 :info:build make[1]: *** [all-recursive] Error 1
 :info:build make: *** [all] Error 2
 :info:build shell command " cd "/opt/local/var/macports/build/\
 _opt_local_var_macports_sources_rsync.macports.org_release_ports_mail_alpine/\
 work/alpine-2.00" && /usr/bin/make all SPECIALS="GSSLIB=/opt/local/lib \
 SSLDIR=/opt/local" " returned error 2
 :error:build Target org.macports.build returned: shell command failed (see
 log for \
 details)
 :debug:build Backtrace: shell command failed (see log for details)
   while executing
 "command_exec build"
   (procedure "portbuild::build_main" line 8)
   invoked from within
 "$procedure $targetname"
 :info:build Warning: the following items did not execute (for alpine):
 org.macports.destroot org.macports.build
 :notice:build Log for alpine is at: /opt/local/var/macports/logs/\
 _opt_local_var_macports_sources_rsync.macports.org_release_ports_mail_alpine/\
 main.log
 }}}

 "BIO_method_type" is a symbol introduced in ''libcrypto'' 0.9.8.  Leopard
 comes with ''libcrypto'' 0.9.7; Snow Leopard comes with both ''libcrypto''
 0.9.7 and 0.9.8 (active) in '''/usr/lib'''.

 So alpine builds on Snow Leopard, but checking the dependencies shows it
 is picking up ''libcrypto'' and ''libssl'' from '''/usr/lib''' instead of
 from the Mac Ports version of OpenSSL:

 {{{
 [19:08] nightowl:~ % port info --depends alpine | grep lib
 depends_lib: port:openssl, port:libiconv, port:gettext, port:openldap,
 port:ncurses, port:cyrus-sasl2

 [19:09] nightowl:~ % otool -L /opt/local/bin/alpine | egrep
 crypto\|ssl\|iconv
 /opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current
 version 8.0.0)
 /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version
 7.0.0)
 /usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version
 0.9.8)
 /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current
 version 0.9.8)
 }}}

 (It also picks up ''''libiconv'''' twice, which can't possibly be a good
 thing, either.)

 As you can see from the ''depends_lib'' it should be picking up
 ''libcrypto/libssl/libiconv'' from the Mac Ports installed versions, but
 it doesn't.

 That's perplexing because as you can see from the link statement, there's
 a "''-L/usr/lib -lkrb5 [...] -L/opt/local/lib [...]''" before it gets to
 the end with "''-lssl -lcrypto''", so I'm not sure why the
 "''-L/opt/local/lib''" is getting overridden by that point.

 I also don't see ''libgssapi_krb5'' or ''libldap'' linked in anywhere,
 either:


 {{{
 [19:17] nightowl:~ % otool -L /opt/local/bin/alpine
 /opt/local/bin/alpine:
 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
 \
 (compatibility version 150.0.0, current version 550.42.0)
 /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon \
 (compatibility version 2.0.0, current version 152.0.0)
 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
 \
 (compatibility version 1.0.0, current version 38.0.0)
 /System/Library/Frameworks/Security.framework/Versions/A/Security \
 (compatibility version 1.0.0, current version 37594.0.0)
 /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos \
 (compatibility version 5.0.0, current version 5.0.0)
 /usr/lib/libpam.2.dylib \
 (compatibility version 3.0.0, current version 3.0.0)
 /usr/lib/libSystem.B.dylib \
 (compatibility version 1.0.0, current version 125.2.10)
 /opt/local/lib/libintl.8.dylib \
 (compatibility version 10.0.0, current version 10.1.0)
 /opt/local/lib/libiconv.2.dylib \
 (compatibility version 8.0.0, current version 8.0.0)
 /usr/lib/libiconv.2.dylib \
 (compatibility version 7.0.0, current version 7.0.0)
 /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP \
 (compatibility version 1.0.0, current version 2.2.0)
 /usr/lib/libncurses.5.4.dylib \
 (compatibility version 5.4.0, current version 5.4.0)
 /usr/lib/libssl.0.9.8.dylib \
 (compatibility version 0.9.8, current version 0.9.8)
 /usr/lib/libcrypto.0.9.8.dylib \
 (compatibility version 0.9.8, current version 0.9.8)
 /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
 \
 (compatibility version 1.0.0, current version 44.0.0)
 }}}

 Anyway, looks like the link statement/order needs to be reworked somehow.

-- 
Ticket URL: <https://trac.macports.org/ticket/29054>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list