Index: lib/replace/wscript =================================================================== --- lib/replace/wscript.orig 2020-10-07 03:51:46.783299260 +0000 +++ lib/replace/wscript 2020-10-07 22:34:01.329955546 +0000 @@ -94,16 +94,7 @@ if not conf.CONFIG_SET('HAVE_RPC_RPC_H'): Logs.warn('No rpc/rpc.h header found, tirpc or libntirpc missing?') - conf.SET_TARGET_TYPE('nsl', 'EMPTY') conf.CHECK_HEADERS('rpc/rpc.h rpcsvc/yp_prot.h', lib='tirpc') - if not conf.CONFIG_SET('HAVE_RPCSVC_YP_PROT_H'): - if conf.CHECK_CFG(package='libnsl', args='--cflags --libs', - msg='Checking for libnsl', - uselib_store='NSL'): - conf.SET_TARGET_TYPE('nsl', 'SYSLIB') - conf.CHECK_HEADERS('rpc/rpc.h rpcsvc/yp_prot.h', lib='tirpc nsl') - else: - conf.SET_TARGET_TYPE('nsl', 'SYSLIB') conf.CHECK_HEADERS('rpcsvc/nis.h rpcsvc/ypclnt.h', lib='tirpc nsl') conf.CHECK_HEADERS('sys/sysctl.h') @@ -119,6 +110,8 @@ conf.CHECK_HEADERS('sys/atomic.h stdatomic.h') conf.CHECK_HEADERS('libgen.h') + if conf.CHECK_CFLAGS('-Wno-format-zero-length'): + conf.define('HAVE_WNO_FORMAT_ZERO_LENGTH', '1') if conf.CHECK_CFLAGS('-Wno-format-truncation'): conf.define('HAVE_WNO_FORMAT_TRUNCATION', '1') @@ -420,6 +413,9 @@ if not conf.CHECK_FUNCS('closefrom'): conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') + if not conf.CHECK_FUNCS('sendfile'): + conf.CHECK_FUNCS_IN('sendfile', 'sendfile', headers='sys/sendfile.h') + conf.CHECK_CODE(''' struct ucred cred; socklen_t cred_len; @@ -536,15 +532,17 @@ conf.CHECK_LIB('intl') conf.CHECK_DECLS('dgettext gettext bindtextdomain textdomain bind_textdomain_codeset', headers="libintl.h") # *textdomain functions are not strictly necessary + if conf.CHECK_FUNCS_IN('bindtextdomain textdomain bind_textdomain_codeset', + 'intl', checklibc=True, + headers='libintl.h'): + # save for dependency definitions + conf.env.intl_libs='intl' conf.CHECK_FUNCS_IN('bindtextdomain textdomain bind_textdomain_codeset', '', checklibc=True, headers='libintl.h') # gettext and dgettext must exist # on some systems (the ones with glibc, those are in libc) - if conf.CHECK_FUNCS_IN('dgettext gettext', '', checklibc=True, headers='libintl.h'): - # save for dependency definitions - conf.env.intl_libs='' - # others (e.g. FreeBSD) have separate libintl - elif conf.CHECK_FUNCS_IN('dgettext gettext', 'intl', checklibc=False, headers='libintl.h'): + if conf.CHECK_FUNCS_IN('dgettext gettext', 'intl', + checklibc=False, headers='libintl.h'): # save for dependency definitions conf.env.intl_libs='intl' # recheck with libintl @@ -860,6 +858,7 @@ extra_libs = '' if bld.CONFIG_SET('HAVE_LIBBSD'): extra_libs += ' bsd' if bld.CONFIG_SET('HAVE_LIBRT'): extra_libs += ' rt' + if bld.CONFIG_SET('HAVE_LIBSENDFILE'): extra_libs += ' sendfile' if bld.CONFIG_SET('REPLACE_REQUIRES_LIBSOCKET_LIBNSL'): extra_libs += ' socket nsl' bld.SAMBA_SUBSYSTEM('LIBREPLACE_HOSTCC',