[PATCH] wscript: Add --with-system-heimdalkrb5 (was Re: [PATCHES] Fix build with system provided Heimdal library)

Christof Schmitt cs at samba.org
Tue Jul 10 23:21:08 UTC 2018


On Wed, Jun 27, 2018 at 09:36:27AM -0700, Christof Schmitt wrote:
> > > > If we are to allow that we need to bundle it up into a sensible option
> > > > like the --with-system-mitkrb5, and force it to fail unless --without-
> > > > ad-dc is set.
> > > 
> > > I can look into adding that. I assume that that would be a check in the
> > > top-level wscript.

See the attached patch for the configure option.

Christof
-------------- next part --------------
From 5540c0c1df594077d6c47e06ff6e2542abee7fae Mon Sep 17 00:00:00 2001
From: Christof Schmitt <cs at samba.org>
Date: Tue, 10 Jul 2018 14:51:02 -0700
Subject: [PATCH] wscript: Add --with-system-heimdalkrb5

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 at samba.org>
---
 buildtools/wafsamba/samba_bundled.py |  2 ++
 buildtools/wafsamba/wscript          |  1 +
 wscript                              | 20 ++++++++++++++++++++
 3 files changed, 23 insertions(+)

diff --git a/buildtools/wafsamba/samba_bundled.py b/buildtools/wafsamba/samba_bundled.py
index aa6199e..253d604 100644
--- a/buildtools/wafsamba/samba_bundled.py
+++ b/buildtools/wafsamba/samba_bundled.py
@@ -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:
diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript
index 1567c4b..0eef330 100644
--- a/buildtools/wafsamba/wscript
+++ b/buildtools/wafsamba/wscript
@@ -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
--- 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'.
-- 
1.8.3.1



More information about the samba-technical mailing list