difference between bind-9.8 and bind-9.9

Günter Kukkukk linux at kukkukk.com
Mon Jun 4 15:04:59 MDT 2012


Am Montag, 4. Juni 2012, 21:44:48 schrieb Charles Tryon:
> I'm having some problems in my testing environment with the default library
> version number for bind (dlz_dlopen: incorrect version 1 should be 2 in
> '/usr/local/samba/lib/bind9/dlz_bind9.so' in /var/log/messages).  I've hit
> this several times because I have a couple of different test environments
> where I'm updating from git on a fairly regular basis.  My somewhat brute
> force way to fix then problem has simply been to re-build and install the
> correct bind-9.x, but this clearly isn't a very good long term solution.
> 
> What I'm looking for, but haven't found yet is any way to specify, either
> on the configure line or when running the provisioning step, which version
> of the library you wish to use.  In particular, I am currently building on
> a new Fedora17 base, which includes bind9.9 by default, so I want to be
> able to run with that version.  Is there any standard way to specify the
> target version, other than changing the define in
> source4/dns_server/dlz_minimal.h?

Hi Charles,

in the recent git tree, when you look at the file 
  ./source4/dns_server/wscript_build:
----------
...
# a bind9 dlz module giving access to the Samba DNS SAM
bld.SAMBA_LIBRARY('dlz_bind9',
                  source='dlz_bind9.c',
                  cflags='-DBIND_VERSION_9_8',
                  private_library=True,
                  link_name='modules/bind9/dlz_bind9.so',
                  realname='dlz_bind9.so',
                  install_path='${MODULESDIR}/bind9',
                  deps='samba-hostconfig samdb-common gensec popt',
                  enabled=bld.AD_DC_BUILD_IS_ENABLED())

bld.SAMBA_LIBRARY('dlz_bind9_9',
                  source='dlz_bind9.c',
                  cflags='-DBIND_VERSION_9_9',
                  private_library=True,
                  link_name='modules/bind9/dlz_bind9_9.so',
                  realname='dlz_bind9_9.so',
                  install_path='${MODULESDIR}/bind9',
                  deps='samba-hostconfig samdb-common gensec popt',
                  enabled=bld.AD_DC_BUILD_IS_ENABLED())
--------------
you'll notice, that two dlz related dynlibs are build now.

When you specify --dns-backend=BIND9_DLZ during the configure step, these
2 dynlibs are installed to e.g.
   /usr/local/samba/lib/bind9/dlz_bind9.so
   /usr/local/samba/lib/bind9/dlz_bind9_9.so

and the file
   /usr/local/samba/private/named.conf
is generated, which should be included into your /etc/named.conf.

It contains:
# This DNS configuration is for BIND 9.8.0 or later with dlz_dlopen support.
#
# This file should be included in your main BIND configuration file
#
# For example with
# include "/usr/local/samba/private/named.conf";

#
# This configures dynamically loadable zones (DLZ) from AD schema
# Uncomment only single database line, depending on your BIND version
#
dlz "AD DNS Zone" {
    # For BIND 9.8.0
#    database "dlopen /usr/local/samba/lib/bind9/dlz_bind9.so";

    # For BIND 9.9.0
     database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_9.so";
};

So to change between bind-9.8.x and 9.9.x, one has to edit this file
manually.

Cheers, Günter


More information about the samba-technical mailing list