From a4da3ab4d76013aaa731d43d52ccca1ebd37c395 Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Wed, 21 Sep 2016 10:06:39 +0800
Subject: [PATCH 1/1] ldb: 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>
---
 lib/replace/system/wscript_configure |  6 ++-
 lib/replace/wscript                  | 94 +++++++++++++++++++++++++++---------
 wscript                              |  7 +++
 3 files changed, 83 insertions(+), 24 deletions(-)

diff --git a/lib/replace/system/wscript_configure b/lib/replace/system/wscript_configure
index 2035474..10f9ae7 100644
--- a/lib/replace/system/wscript_configure
+++ b/lib/replace/system/wscript_configure
@@ -1,6 +1,10 @@
 #!/usr/bin/env python
 
-conf.CHECK_HEADERS('sys/capability.h')
+import Options
+
+if Options.options.enable_libcap:
+    conf.CHECK_HEADERS('sys/capability.h')
+
 conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r')
 
 # solaris varients of getXXent_r
diff --git a/lib/replace/wscript b/lib/replace/wscript
index 2f94d49..68b2d3a 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
@@ -23,6 +23,41 @@ def set_options(opt):
     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):
     conf.RECURSE('buildtools/wafsamba')
@@ -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('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')
@@ -73,7 +121,9 @@ def configure(conf):
 
     conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_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')
@@ -266,22 +316,20 @@ def configure(conf):
 
     conf.CHECK_FUNCS('prctl dirname basename')
 
-    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'):
+            conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
+                    checklibc=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;
@@ -632,7 +680,7 @@ removeea setea
     # look for a method of finding the list of network interfaces
     for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']:
         bsd_for_strlcpy = ''
-        if strlcpy_in_bsd:
+        if Options.options.enable_libbsd:
             bsd_for_strlcpy = ' bsd'
         if conf.CHECK_CODE('''
                            #define %s 1
diff --git a/wscript b/wscript
index 8ae5be3..a178cc4 100644
--- a/wscript
+++ b/wscript
@@ -31,6 +31,13 @@ def set_options(opt):
     opt.RECURSE('lib/replace')
     opt.tool_options('python') # options for disabling pyc or pyo compilation
 
+    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):
     conf.RECURSE('lib/tdb')
     conf.RECURSE('lib/tevent')
-- 
2.16.2

