summaryrefslogtreecommitdiff
path: root/wscript
diff options
context:
space:
mode:
authorAlexander Bokovoy <ab@samba.org>2012-05-28 19:03:00 +0300
committerAlexander Bokovoy <ab@samba.org>2012-05-28 23:40:30 +0200
commit27503cea09f207be23679162e9570ef40ee7fe61 (patch)
treede9d6d6a61f9d7e80b5f395763ff9e927d3ea793 /wscript
parente4c59a66aa8ea113c38cc9c2f04a825983ee4fdc (diff)
downloadsamba-27503cea09f207be23679162e9570ef40ee7fe61.tar.gz
samba-27503cea09f207be23679162e9570ef40ee7fe61.tar.bz2
samba-27503cea09f207be23679162e9570ef40ee7fe61.zip
freebsd9: support both WAF MIT krb5 build and autoconf build against MIT krb5
System-provided Heimdal Kerberos in FreeBSD 9 lacks proper support for parsing MS PAC. This leaves us with MIT krb5 package from ports or embedded Heimdal in source4. MIT krb5 from ports is 1.9.2, it supports all needed features for AD support in smbd, as well as WAF MIT krb5 build. In order to use it, one needs to install 'krb5' package. Autoconf build: --with-krb5=/usr/local WAF build: --with-system-mitkrb5 /usr/local or otherwise krb5-config from system Heimdal will overtake and break the detection, leaving you with a mixture of Kerberos libraries from different locations. WAF build accepts multiple paths as sub-arguments of the --with-system-mitkrb5 and searches through them for krb5-config, i.e. /usr/local /usr/kerberos ... Autobuild-User: Alexander Bokovoy <ab@samba.org> Autobuild-Date: Mon May 28 23:40:30 CEST 2012 on sn-devel-104
Diffstat (limited to 'wscript')
-rwxr-xr-xwscript19
1 files changed, 17 insertions, 2 deletions
diff --git a/wscript b/wscript
index 56dee2ea0c..168e17dcfb 100755
--- a/wscript
+++ b/wscript
@@ -17,6 +17,20 @@ samba_dist.DIST_BLACKLIST('.gitignore .bzrignore')
# install in /usr/local/samba by default
Options.default_prefix = '/usr/local/samba'
+# This callback optionally takes a list of paths as arguments:
+# --with-system_mitkrb5 /path/to/krb5 /another/path
+def system_mitkrb5_callback(option, opt, value, parser):
+ setattr(parser.values, option.dest, True)
+ value = []
+ for arg in parser.rargs:
+ # stop on --foo like options
+ if arg[:2] == "--" and len(arg) > 2:
+ break
+ value.append(arg)
+ if len(value)>0:
+ del parser.rargs[:len(value)]
+ setattr(parser.values, option.dest, value)
+
def set_options(opt):
opt.BUILTIN_DEFAULT('NONE')
opt.PRIVATE_EXTENSION_DEFAULT('samba4')
@@ -33,8 +47,9 @@ def set_options(opt):
opt.RECURSE('lib/util')
opt.add_option('--with-system-mitkrb5',
- help='enable system MIT krb5 build (includes Samba 4 client and Samba 3 code base)',
- action='store_true', dest='with_system_mitkrb5', default=False)
+ help='enable system MIT krb5 build (includes Samba 4 client and Samba 3 code base).'+
+ 'You may specify list of paths where Kerberos is installed (e.g. /usr/local /usr/kerberos) to search krb5-config',
+ action='callback', callback=system_mitkrb5_callback, dest='with_system_mitkrb5', default=False)
opt.add_option('--without-ad-dc',
help='disable AD DC functionality (enables Samba 4 client and Samba 3 code base). Requires system MIT krb5',