From 1e8d31c138395122df4cc2a3e0edd6cd3fad736c Mon Sep 17 00:00:00 2001 From: Peter Kjellerstedt Date: Tue, 28 Apr 2020 02:05:33 +0200 Subject: [PATCH] Add options to configure the use of libbsd Upstream-Status: Inappropriate [oe deterministic build specific] Signed-off-by: Peter Kjellerstedt --- buildtools/wafsamba/wscript | 7 +++++++ lib/crypto/wscript_configure | 2 +- lib/replace/wscript | 29 +++++++++++++++-------------- lib/texpect/wscript | 7 ++++++- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript index 7b8fb01..a8e4b0a 100644 --- a/buildtools/wafsamba/wscript +++ b/buildtools/wafsamba/wscript @@ -88,6 +88,13 @@ def options(opt): help=("Disable use of gettext"), action="store_true", dest='disable_gettext', 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) + gr = opt.option_group('developer options') gr.add_option('-C', diff --git a/lib/crypto/wscript_configure b/lib/crypto/wscript_configure index 09dfe04..e871718 100644 --- a/lib/crypto/wscript_configure +++ b/lib/crypto/wscript_configure @@ -2,7 +2,7 @@ from waflib import Options from waflib import Errors, Logs -if not conf.CHECK_FUNCS_IN('MD5Init', 'bsd', headers='bsd/md5.h', +if not Options.options.enable_libbsd or not conf.CHECK_FUNCS_IN('MD5Init', 'bsd', headers='bsd/md5.h', checklibc=True): conf.CHECK_FUNCS_IN('MD5Init', 'md5', headers='sys/md5.h', checklibc=True) diff --git a/lib/replace/wscript b/lib/replace/wscript index 0020d2a..cd9228f 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -407,20 +407,21 @@ 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/lib/texpect/wscript b/lib/texpect/wscript index e14c048..a91de59 100644 --- a/lib/texpect/wscript +++ b/lib/texpect/wscript @@ -1,7 +1,12 @@ #!/usr/bin/env python +from waflib import Options def configure(conf): - conf.CHECK_FUNCS_IN('openpty', 'util', checklibc=True, headers='pty.h util.h bsd/libutil.h libutil.h') + hdrs = 'pty.h util.h' + if Options.options.enable_libbsd: + hdrs += ' bsd/libutil.h' + hdrs += ' libutil.h' + conf.CHECK_FUNCS_IN('openpty', 'util', checklibc=True, headers=hdrs) def build(bld): bld.SAMBA_BINARY('texpect', 'texpect.c', deps='popt util replace', install=False)