[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