From d9fd1c52d1646254944bfee37be611e04d4daddb Mon Sep 17 00:00:00 2001
From: Wang Mingyu <wangmy@cn.fujitsu.com>
Date: Fri, 25 Dec 2020 15:03:17 +0900
Subject: [PATCH] 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 0.9.33.

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

Update patch to version 0.10.0
Signed-off-by: Changqing Li <changqing.li@windriver.com>

Update patch to version 0.14.1
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
 lib/replace/wscript | 85 +++++++++++++++++++++++++++++++++++----------
 wscript             |  6 ++++
 2 files changed, 73 insertions(+), 18 deletions(-)

diff --git a/lib/replace/wscript b/lib/replace/wscript
index 5c2b750..28835ac 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')
@@ -38,12 +73,27 @@ 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('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('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')
     conf.CHECK_HEADERS('sys/resource.h sys/security.h sys/shm.h sys/statfs.h sys/statvfs.h sys/termio.h')
@@ -113,8 +163,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')
@@ -436,20 +487,18 @@ 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'):
+            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('closefrom'):
+            conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
 
     conf.CHECK_CODE('''
                 struct ucred cred;
diff --git a/wscript b/wscript
index 0f6e92f..5a54f3a 100644
--- a/wscript
+++ b/wscript
@@ -28,6 +28,12 @@ def options(opt):
     opt.RECURSE('lib/replace')
     opt.RECURSE('lib/talloc')
 
+    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.34.1

