[MacPorts] #31688: bind9 @9.8.1: Undefined symbols _krb5_gss_register_acceptor_identity on tiger
MacPorts
noreply at macports.org
Tue May 22 16:47:17 PDT 2012
#31688: bind9 @9.8.1: Undefined symbols _krb5_gss_register_acceptor_identity on
tiger
---------------------------------+------------------------------------------
Reporter: webmaster@… | Owner: dluke@…
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version: 2.0.3
Keywords: tiger | Port: bind9
---------------------------------+------------------------------------------
Comment(by macports-20081001@…):
Replying to [comment:7 webmaster@…]:
> Replying to [comment:6 dluke@…]:
> > Do you by any chance have some kerberos libraries installed in
/usr/local?
> >
>
>
> Using the same command as you did I get:
> {{{
> 9549e018 t _krb5_gss_register_acceptor_identity
> }}}
The lower case 't' indicates that it is a 'local' symbol rather than a
global one as in 10.5. Complicating matters, the relevant header
(/usr/include/gssapi/gssapi_krb5.h) defines
krb5_gss_register_acceptor_identity so nothing fails until link time.
The best fix would be to replace the existing system Kerberos framework
with a fixed version, which should be easy in theory since Apple's source
for that is on opensource.apple.com, but in practice building from that
source is a big headache.
A less ideal fix is to install the kerberos5 port and make bind9 link to
it. That fix has this downside:
{{{
# port -dvu rdeps kerberos5
The following ports are dependencies of kerberos5 @1.7.2_0:
bin:gpg:gnupg
port:libiconv
port:gperf
port:gettext
port:ncurses
port:expat
port:readline
port:zlib
port:bzip2
port:libusb-compat
port:pkgconfig
path:lib/pkgconfig/glib-2.0.pc:glib2
bin:xz:xz
port:libffi
path:bin/perl:perl5
port:perl5.12
port:gdbm
port:python27
port:openssl
port:sqlite3
port:libedit
port:db46
port:python_select
port:libusb
port:openldap
port:tcp_wrappers
port:cyrus-sasl2
port:icu
}}}
So while it is not'' '''hard''''' per se, it drags in all sorts of garbage
that you may not need and which take a long time to install. Also: the
port is orphaned and uses an obsolete version of krb5, so its isn't
actually useful as a general replacement for the even older Tiger
implementation.
And beyond that, with a current bind9 on Tiger one also needs to kill off
the DLZ dlopen driver, since it won't build on 10.4. The Portfile already
does that for 10.5.
So here's a patch for the Portfile, but be aware of the nasty dependency
tree:
{{{
--- Portfile.orig 2012-05-22 11:00:31.000000000 -0400
+++ Portfile 2012-05-22 19:39:45.000000000 -0400
@@ -52,6 +52,16 @@
--enable-threads \
--enable-ipv6
+platform darwin 8 {
+ # link fails with the DLZ dlopen driver
+ configure.args-append --with-dlopen=no
+ # require and use GSSAPI support in ${prefix}/lib rather than
/usr/lib where Tiger has symlinks to its broken Kerberos lib
+ depends_lib-append \
+ port:kerberos5
+ configure.args-append \
+ --with-gssapi=${prefix}
+}
+
platform darwin 9 {
configure.args-append --with-dlopen=no
}
}}}
--
Ticket URL: <https://trac.macports.org/ticket/31688#comment:11>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list