summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2020-06-03 16:06:34 +1200
committerJeremy Allison <jra@samba.org>2020-06-12 22:11:43 +0000
commit6446e86b54ccdc6da397487b850832727cbb69c1 (patch)
treea76edad49c222c9255d72f5ab6c8730fd3336c0f
parentbfe4e84bb917e00c8b8d9e6db40527378e8bfb97 (diff)
downloadsamba-6446e86b54ccdc6da397487b850832727cbb69c1.tar.gz
build: Put the note from the bottom of the old BUILD_SYSTEMS.txt somewhere useful
This statement on how we handle --with options is best placed near where the options are set, so developers see it when trying to choose the correct thing to do. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r--buildtools/wafsamba/samba_utils.py3
-rw-r--r--source3/wscript21
-rw-r--r--wscript19
3 files changed, 43 insertions, 0 deletions
diff --git a/buildtools/wafsamba/samba_utils.py b/buildtools/wafsamba/samba_utils.py
index f9eae73ae44..4afee249d33 100644
--- a/buildtools/wafsamba/samba_utils.py
+++ b/buildtools/wafsamba/samba_utils.py
@@ -719,6 +719,9 @@ def samba_before_apply_obj_vars(self):
if is_standard_libpath(v, i):
v['LIBPATH'].remove(i)
+# Samba options are mostly on by default (administrators and packagers
+# specify features to remove, not add), which is why default=True
+
def samba_add_onoff_option(opt, option, help=(), dest=None, default=True,
with_name="with", without_name="without"):
if default is None:
diff --git a/source3/wscript b/source3/wscript
index 24ade3b0a2b..2a341df7c3e 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -40,6 +40,27 @@ def options(opt):
"--with-shared-modules"),
action="store", dest='shared_modules', default=None)
+# Optional Libraries
+# ------------------
+#
+# Most of the calls to opt.samba_add_onoff_option() implicitly
+# or explicity use default=True
+#
+# To assist users and distributors to build Samba with the full feature
+# set, the build system will abort if our dependent libraries and their
+# header files are not found on the target system. This will mean for
+# example, that xattr, acl and ldap headers must be installed for the
+# default build to complete. The configure system will check for these
+# headers, and the error message will indicate the option (such as
+# --without-acl-support) that can be specified to skip this requirement.
+#
+# This will assist users and in particular distributors in building fully
+# functional packages, while allowing those on systems truly without these
+# facilities to continue to build Samba after careful consideration.
+#
+# It also ensures our container image generation in bootstrap/ is correct
+# as otherwise a missing package there would just silently work
+
opt.samba_add_onoff_option('winbind')
opt.samba_add_onoff_option('ads')
opt.samba_add_onoff_option('ldap')
diff --git a/wscript b/wscript
index a195ac33c98..e50aba255a7 100644
--- a/wscript
+++ b/wscript
@@ -47,6 +47,25 @@ def options(opt):
opt.RECURSE('lib/crypto')
opt.RECURSE('ctdb')
+# Optional Libraries
+# ------------------
+#
+# Most of the calls to opt.add_option() use default=True for the --with case
+#
+# To assist users and distributors to build Samba with the full feature
+# set, the build system will abort if our dependent libraries and their
+# header files are not found on the target system. This will mean for
+# example, that xattr, acl and ldap headers must be installed for the
+# default build to complete. The configure system will check for these
+# headers, and the error message will indicate the option (such as
+# --without-acl-support) that can be specified to skip this requirement.
+#
+# This will assist users and in particular distributors in building fully
+# functional packages, while allowing those on systems truly without these
+# facilities to continue to build Samba after careful consideration.
+#
+# It also ensures our container image generation in bootstrap/ is correct
+# as otherwise a missing package there would just silently work
opt.samba_add_onoff_option('pthreadpool', with_name="enable", without_name="disable", default=True)