wscript: Add --with-system-heimdalkrb5
authorChristof Schmitt <cs@samba.org>
Tue, 10 Jul 2018 21:51:02 +0000 (14:51 -0700)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 11 Jul 2018 03:18:59 +0000 (05:18 +0200)
Add the configure option --with-system-heimdalkrb5 to build Samba
explicitly with a system Heimdal kerberos library. This does the same as
the more complicated syntax

--bundled-libraries='!heimdal,!asn1,!com_err,!roken,!hx509,!wind,!gssapi,!hcrypto,!krb5,!heimbase,!asn1_compile,!compile_et,!kdc,!hdb,!heimntlm'

and it also enforces the conflicts with MIT Kerbros and the AD DC
build.

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Wed Jul 11 05:18:59 CEST 2018 on sn-devel-144

buildtools/wafsamba/samba_bundled.py
buildtools/wafsamba/wscript
wscript

index aa6199e..253d604 100644 (file)
@@ -85,6 +85,8 @@ def minimum_library_version(conf, libname, default):
 
 @conf
 def LIB_MAY_BE_BUNDLED(conf, libname):
+    if libname in conf.env.SYSTEM_LIBS:
+        return False
     if libname in conf.env.BUNDLED_LIBS:
         return True
     if '!%s' % libname in conf.env.BUNDLED_LIBS:
index 1567c4b..0eef330 100644 (file)
@@ -269,6 +269,7 @@ def configure(conf):
     conf.env.MODULESDIR = Options.options.MODULESDIR
     conf.env.PRIVATELIBDIR = Options.options.PRIVATELIBDIR
     conf.env.BUNDLED_LIBS = Options.options.BUNDLED_LIBS.split(',')
+    conf.env.SYSTEM_LIBS = ()
     conf.env.PRIVATE_LIBS = Options.options.PRIVATE_LIBS.split(',')
     conf.env.BUILTIN_LIBRARIES = Options.options.BUILTIN_LIBRARIES.split(',')
     conf.env.NONSHARED_BINARIES = Options.options.NONSHARED_BINARIES.split(',')
diff --git a/wscript b/wscript
index b1b69c1..19fc6d1 100644 (file)
--- a/wscript
+++ b/wscript
@@ -62,6 +62,14 @@ def set_options(opt):
                    dest='with_system_mitkdc',
                    default=None)
 
+    opt.add_option('--with-system-heimdalkrb5',
+                   help=('build Samba with system Heimdal Kerberos. ' +
+                         'Requires --without-ad-dc' and
+                         'conflicts with --with-system-mitkrb5'),
+                   action='store_true',
+                   dest='with_system_heimdalkrb5',
+                   default=False)
+
     opt.add_option('--without-ad-dc',
                    help='disable AD DC functionality (enables only Samba FS (File Server, Winbind, NMBD) and client utilities.',
                    action='store_true', dest='without_ad_dc', default=False)
@@ -206,6 +214,18 @@ def configure(conf):
     if not (Options.options.without_ad_dc or Options.options.with_system_mitkrb5):
         conf.DEFINE('AD_DC_BUILD_IS_ENABLED', 1)
 
+    if Options.options.with_system_heimdalkrb5:
+        if Options.options.with_system_mitkrb5:
+            raise Utils.WafError('--with-system-heimdalkrb5 conflicts with ' +
+                                 '--with-system-mitkrb5')
+        if not Options.options.without_ad_dc:
+            raise Utils.WafError('--with-system-heimdalkrb5 requires ' +
+                                 '--without-ad-dc')
+        conf.env.SYSTEM_LIBS += ('heimdal', 'asn1', 'com_err', 'roken',
+                                 'hx509', 'wind', 'gssapi', 'hcrypto',
+                                 'krb5', 'heimbase', 'asn1_compile',
+                                 'compile_et', 'kdc', 'hdb', 'heimntlm')
+
     # Only process heimdal_build for non-MIT KRB5 builds
     # When MIT KRB5 checks are done as above, conf.env.KRB5_VENDOR will be set
     # to the lowcased output of 'krb5-config --vendor'.