Opened 7 years ago

Closed 7 years ago

#31688 closed defect (fixed)

bind9 @9.8.1: Undefined symbols _krb5_gss_register_acceptor_identity on tiger

Reported by: webmaster@… Owned by: danielluke (Daniel J. Luke)
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: tiger Cc: sukh411@…
Port: bind9

Description

Hello,

my 1st time here, so excuse me if the question is dumb :) I did install BIND 9.8.0 correctly some time ago, now I can't upgrade or install from scracth the 9.8.1 release on Tiger. I get the same errors on 2 differents machines.

At the end of the process, the errors are:

  • in Terminal window:
    make[2]: *** [named] Error 1
    make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_bind9/bind9/work/bind-9.8.1/bin/named'
    make[1]: *** [subdirs] Error 1
    make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_bind9/bind9/work/bind-9.8.1/bin'
    make: *** [subdirs] Error 1
    make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_bind9/bind9/work/bind-9.8.1'
    shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_bind9/bind9/work/bind-9.8.1" && /usr/bin/make -w all " returned error 2
    Error: Target org.macports.build returned: shell command failed (see log for details)
    Warning: the following items did not execute (for bind9): org.macports.activate org.macports.build org.macports.destroot org.macports.install
    Log for bind9 is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_bind9/bind9/main.log
    Error: Status 1 encountered during processing.
    
  • in the main.log :
    :info:build /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: Undefined symbols:
    :info:build _krb5_gss_register_acceptor_identity
    :info:build collect2: ld returned 1 exit status
    :info:build make[2]: *** [named] Error 1
    :info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_bind9/bind9/work/bind-9.8.1/bin/named'
    :info:build make[1]: *** [subdirs] Error 1
    :info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_bind9/bind9/work/bind-9.8.1/bin'
    :info:build make: *** [subdirs] Error 1
    :info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_bind9/bind9/work/bind-9.8.1'
    :info:build shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_net_bind9/bind9/work/bind-9.8.1" && /usr/bin/make -w all " 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 bind9): org.macports.activate org.macports.build org.macports.destroot org.macports.install
    

Please tell me what to do :)

Thanx Gabriel

Attachments (1)

bind9_9-8-1_error_Tiger.txt (289.9 KB) - added by webmaster@… 7 years ago.
BIND 9.8.1 install error

Download all attachments as: .zip

Change History (16)

comment:1 Changed 7 years ago by webmaster@…

Cc: webmaster@… added

Cc Me!

comment:2 Changed 7 years ago by danielluke (Daniel J. Luke)

A couple of things.

  • It's difficult (if not impossible) to tell what is going on without the full build log being attached to the bug.
  • 10.4 isn't a supported OS any more (and I don't have a 10.4 machine to test on any more), so it's unlikely that I'll be able to produce a patch to fix whatever the problem is.

However, if we can figure it out, I'd be happy to include a patch or whatever is needed to keep the port working on 10.4. From the little bit of log that you included, it looks like the problem has something to do with linking with the kerberos lib(s).

Changed 7 years ago by webmaster@…

Attachment: bind9_9-8-1_error_Tiger.txt added

BIND 9.8.1 install error

comment:3 in reply to:  2 Changed 7 years ago by webmaster@…

Replying to dluke@…:

A couple of things.

  • It's difficult (if not impossible) to tell what is going on without the full build log being attached to the bug.
  • 10.4 isn't a supported OS any more (and I don't have a 10.4 machine to test on any more), so it's unlikely that I'll be able to produce a patch to fix whatever the problem is.

[cut]

Hello,

I attached the log, I hope you can find what's wrong :) The odd thing is that BIND 9.8.0P4 did work.

Thank you!

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

Cc: dluke@… webmaster@… removed
Keywords: tiger added; bind Tiger install removed
Owner: changed from macports-tickets@… to dluke@…
Summary: bind9 @9.8.1 fails to install on OSX 10.4.11bind9 @9.8.1: Undefined symbols _krb5_gss_register_acceptor_identity on tiger

comment:5 in reply to:  4 Changed 7 years ago by webmaster@…

Hello, do you need any other log to analyse and try to solve the problem?

Gabriel

comment:6 Changed 7 years ago by danielluke (Daniel J. Luke)

Owner: changed from dluke@… to dluke@…
Status: newassigned

Do you by any chance have some kerberos libraries installed in /usr/local?

The link line that is failing includes -lgssapi_krb5, which is where that missing symbol (_krb5_gss_register_acceptor_identity) should be found.

On 10.5 (ppc), it's clearly there:

% nm /usr/lib/libgssapi_krb5.dylib | grep _krb5_gss_register_acceptor_identity
200806f4 T _krb5_gss_register_acceptor_identity

Again, since this is an unsupported configuration - most likely you'll need to figure this out and provide a patch (which I will include if you can figure it out).

comment:7 in reply to:  6 ; Changed 7 years ago by webmaster@…

Replying to 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

Gabriel

comment:8 Changed 7 years ago by sukh411@…

Hi Gabriel, did you ever get a resolution to this? I've still got some tiger systems at my job i need to keep patched for various reasons and have run into this exact issue.

thanks, Sukh

comment:9 Changed 7 years ago by sukh411@…

Cc: sukh411@… added

Cc Me!

comment:10 in reply to:  8 Changed 7 years ago by webmaster@…

Replying to sukh411@…:

Hi Gabriel, did you ever get a resolution to this? I've still got some tiger systems at my job i need to keep patched for various reasons and have run into this exact issue.

Hi,

sorry for the delay but meanwhile my iMac G5 crashed badly (broken internal SATA interface, now it's working with an external FireWire disk, even if it's freezing sometimes). I really have no clue about how to fix the Bind or Kerberos installation, I'm not a programmer... If someone can explain me how to solve that issue, or need more infos about it, I'll be glad.

Now I'm going to reinstall MacPorts on this fresh HD and see if it works or not.

Gabriel

comment:11 in reply to:  7 Changed 7 years ago by macports-20081001@…

Replying to webmaster@…:

Replying to 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
 }

comment:12 Changed 7 years ago by danielluke (Daniel J. Luke)

Maybe the best of a bad set of choices is to just build without GSSAPI support on 10.4?

comment:13 in reply to:  12 ; Changed 7 years ago by danielluke (Daniel J. Luke)

Replying to dluke@…:

Maybe the best of a bad set of choices is to just build without GSSAPI support on 10.4?

Earlier bind9 releases defaulted to gssapi support being off, so I've gone ahead and committed (r93467) a darwin 8 platform block that should disable gssapi and dlopen.

Can someone with a 10.4/darwin 8 machine please test and verify that this is working now?

Thanks.

comment:14 in reply to:  13 Changed 7 years ago by webmaster@…

Replying to dluke@…:

Replying to dluke@…:

Maybe the best of a bad set of choices is to just build without GSSAPI support on 10.4?

Earlier bind9 releases defaulted to gssapi support being off, so I've gone ahead and committed (r93467) a darwin 8 platform block that should disable gssapi and dlopen.

Can someone with a 10.4/darwin 8 machine please test and verify that this is working now?

Hi,

I still have an old iBook with OSX 10.4 to try...

I did a 'selfupdate' to install the latest macports , then upgrade outdated and it installed correctly the latest Bind 9.9.1 GREAT :)

Where can I send you a beer? :)

Gabriel

ps: Nokian winter tyres are *great* , try them ;)

comment:15 Changed 7 years ago by danielluke (Daniel J. Luke)

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.