From 8a82056ba2f70137714f225d82993aa4b11042da Mon Sep 17 00:00:00 2001 
 | 
From: Wang Mingyu <wangmy@cn.fujitsu.com> 
 | 
Date: Fri, 25 Dec 2020 14:14:08 +0900 
 | 
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.2.0 
 | 
Signed-off-by: Changqing Li <changqing.li@windriver.com> 
 | 
--- 
 | 
 lib/replace/wscript | 89 +++++++++++++++++++++++++++++++++++---------- 
 | 
 wscript             |  7 +++- 
 | 
 2 files changed, 75 insertions(+), 21 deletions(-) 
 | 
  
 | 
diff --git a/lib/replace/wscript b/lib/replace/wscript 
 | 
index a2bc604..2e2e7bf 100644 
 | 
--- a/lib/replace/wscript 
 | 
+++ b/lib/replace/wscript 
 | 
@@ -25,6 +25,41 @@ def 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') 
 | 
@@ -34,12 +69,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('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('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') 
 | 
     conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h') 
 | 
@@ -121,8 +169,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') 
 | 
-    conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h') 
 | 
+    if Options.options.enable_valgrind: 
 | 
+        conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h') 
 | 
+        conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.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') 
 | 
@@ -418,20 +467,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 b955d21..4ac6e1e 100644 
 | 
--- a/wscript 
 | 
+++ b/wscript 
 | 
@@ -31,7 +31,12 @@ def 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): 
 | 
     conf.RECURSE('lib/replace') 
 | 
--  
 | 
2.25.1 
 |