From 319a2a1bb46ae35fa9d66878cb08285035f0bd5f Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Thu, 19 Jul 2018 15:41:31 +0800
Subject: [PATCH] talloc: Add configure options for packages

Add configure options for the following packages:
 - acl
 - attr
 - libaio
 - libbsd
 - libcap
 - valgrind

Upstream-Status: Inappropriate [oe deterministic build specific]

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>

Modified to apply to version 2.1.10.

Signed-off-by: Joe Slater <joe.slater@windriver.com>

Modified tp apply to version 2.1.14
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 lib/replace/wscript | 90 +++++++++++++++++++++++++++++++++++++++++------------
 wscript             |  7 +++++
 2 files changed, 77 insertions(+), 20 deletions(-)

diff --git a/lib/replace/wscript b/lib/replace/wscript
index fd00a42..a77c058 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
@@ -22,6 +22,41 @@ def set_options(opt):
     opt.BUILTIN_DEFAULT('NONE')
     opt.PRIVATE_EXTENSION_DEFAULT('')
     opt.RECURSE('buildtools/wafsamba')
+   
+    opt.add_option('--with-acl',
+                   help=("Enable use of acl"),
+                   action="store_true", dest='enable_acl')
+    opt.add_option('--without-acl',
+                   help=("Disable use of acl"),
+                   action="store_false", dest='enable_acl', default=False)
+
+    opt.add_option('--with-attr',
+                   help=("Enable use of attr"),
+                   action="store_true", dest='enable_attr')
+    opt.add_option('--without-attr',
+                   help=("Disable use of attr"),
+                   action="store_false", dest='enable_attr', default=False)
+
+    opt.add_option('--with-libaio',
+                   help=("Enable use of libaio"),
+                   action="store_true", dest='enable_libaio')
+    opt.add_option('--without-libaio',
+                   help=("Disable use of libaio"),
+                   action="store_false", dest='enable_libaio', default=False)
+
+    opt.add_option('--with-libbsd',
+                   help=("Enable use of libbsd"),
+                   action="store_true", dest='enable_libbsd')
+    opt.add_option('--without-libbsd',
+                   help=("Disable use of libbsd"),
+                   action="store_false", dest='enable_libbsd', default=False)
+
+    opt.add_option('--with-libcap',
+                   help=("Enable use of libcap"),
+                   action="store_true", dest='enable_libcap')
+    opt.add_option('--without-libcap',
+                   help=("Disable use of libcap"),
+                   action="store_false", dest='enable_libcap', default=False)
 
 @Utils.run_once
 def configure(conf):
@@ -32,12 +67,25 @@ def configure(conf):
     conf.DEFINE('HAVE_LIBREPLACE', 1)
     conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
 
-    conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h')
-    conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h')
+    conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
+    conf.CHECK_HEADERS('attr/xattr.h compat.h ctype.h dustat.h')
     conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
-    conf.CHECK_HEADERS('libaio.h locale.h ndir.h pwd.h')
-    conf.CHECK_HEADERS('shadow.h sys/acl.h')
-    conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
+    conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
+    conf.CHECK_HEADERS('shadow.h')
+    conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
+
+    if Options.options.enable_acl:
+        conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
+
+    if Options.options.enable_attr:
+        conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
+
+    if Options.options.enable_libaio:
+        conf.CHECK_HEADERS('libaio.h')
+
+    if Options.options.enable_libcap:
+        conf.CHECK_HEADERS('sys/capability.h')
+
     conf.CHECK_HEADERS('port.h')
     conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h sys/fs/vx/quota.h')
     conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
@@ -108,7 +156,9 @@ def configure(conf):
     conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
     conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
 
-    conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
+    if Options.options.enable_valgrind:
+        conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
+
     conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
     conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
     conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
@@ -342,20 +392,20 @@ def configure(conf):
 
     strlcpy_in_bsd = False
 
-    # libbsd on some platforms provides strlcpy and strlcat
-    if not conf.CHECK_FUNCS('strlcpy strlcat'):
-        if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-                               checklibc=True):
-            strlcpy_in_bsd = True
-    if not conf.CHECK_FUNCS('getpeereid'):
-        conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
-    if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
-        conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
-    if not conf.CHECK_FUNCS('setproctitle_init'):
-        conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
-
-    if not conf.CHECK_FUNCS('closefrom'):
-        conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
+    if Options.options.enable_libbsd:
+        # libbsd on some platforms provides strlcpy and strlcat
+        if not conf.CHECK_FUNCS('strlcpy strlcat'):
+            if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
+                checklibc=True):
+                strlcpy_in_bsd = True
+        if not conf.CHECK_FUNCS('getpeereid'):
+            conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
+        if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
+            conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
+        if not conf.CHECK_FUNCS('setproctitle_init'):
+            conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
+        if not conf.CHECK_FUNCS('closefrom'):
+            conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
 
     conf.CHECK_CODE('''
                 struct ucred cred;
diff --git a/wscript b/wscript
index 18f726e..fed8ab9 100644
--- a/wscript
+++ b/wscript
@@ -32,6 +32,13 @@ def set_options(opt):
         opt.add_option('--enable-talloc-compat1',
                        help=("Build talloc 1.x.x compat library [False]"),
                        action="store_true", dest='TALLOC_COMPAT1', default=False)
+        opt.add_option('--with-valgrind',
+                       help=("enable use of valgrind"),
+                       action="store_true", dest='enable_valgrind')
+        opt.add_option('--without-valgrind',
+                       help=("disable use of valgrind"),
+                       action="store_false", dest='enable_valgrind', default=False)
+
 
 
 def configure(conf):
-- 
2.7.4

