diff options
author | Günther Deschner <gd@samba.org> | 2018-01-16 17:48:10 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2018-01-25 21:05:22 +0100 |
commit | 25e01d97e7713e419f0910c803f32c282d10f8a2 (patch) | |
tree | 0925ba4766e179ef16bc05aa806420f71a1b42ae | |
parent | f3f5d5000cd3d9466edad2fbbb6f44cbc473792d (diff) | |
download | samba-25e01d97e7713e419f0910c803f32c282d10f8a2.tar.gz |
build: deal with recent glibc sunrpc header removal
We need to rely on libtirpc or libntirpc to be around in that case.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13238
BUG: https://bugzilla.samba.org/show_bug.cgi?id=10976
Guenther
Pair-Programmed-With: Andreas Schneider <asn@samba.org>
Signed-off-by: Guenther Deschner <gd@samba.org>
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
(cherry picked from commit ee0be7eb723be1420fd601ea1abe0af748562953)
-rw-r--r-- | ctdb/wscript | 2 | ||||
-rw-r--r-- | lib/replace/wscript | 38 | ||||
-rw-r--r-- | lib/util/wscript_build | 2 | ||||
-rw-r--r-- | source3/auth/wscript_build | 2 | ||||
-rw-r--r-- | source3/wscript | 6 |
5 files changed, 39 insertions, 11 deletions
diff --git a/ctdb/wscript b/ctdb/wscript index c678228f0c7..ad53bb92b60 100644 --- a/ctdb/wscript +++ b/ctdb/wscript @@ -540,7 +540,7 @@ def build(bld): bld.SAMBA_BINARY('smnotify', source=bld.SUBDIR('utils/smnotify', 'smnotify.c gen_smnotify.c gen_xdr.c'), - deps='ctdb-smnotify-h ctdb-smnotify-c ctdb-smnotify-x popt', + deps='ctdb-smnotify-h ctdb-smnotify-c ctdb-smnotify-x popt tirpc', includes='utils utils/smnotify', install_path='${CTDB_HELPER_BINDIR}') diff --git a/lib/replace/wscript b/lib/replace/wscript index 7357eeabc2b..a822832f641 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -5,7 +5,7 @@ VERSION = '1.2.1' blddir = 'bin' -import sys, os +import Logs, sys, os # find the buildtools directory srcdir = '.' @@ -65,14 +65,42 @@ def configure(conf): headers='sys/inotify.h') conf.CHECK_HEADERS('security/pam_appl.h zlib.h asm/unistd.h') - conf.CHECK_HEADERS('aio.h sys/unistd.h rpc/rpc.h rpc/nettype.h alloca.h float.h') + conf.CHECK_HEADERS('aio.h sys/unistd.h alloca.h float.h') + + conf.SET_TARGET_TYPE('tirpc', 'EMPTY') + conf.CHECK_HEADERS('rpc/rpc.h rpc/nettype.h') + if not conf.CONFIG_SET('HAVE_RPC_RPC_H'): + if conf.CHECK_CFG(package='libtirpc', args='--cflags', + msg='Checking for libtirpc headers', + uselib_store='TIRPC'): + conf.CHECK_HEADERS('rpc/rpc.h rpc/nettype.h', lib='tirpc', together=True) + conf.SET_TARGET_TYPE('tirpc', 'SYSLIB') + if not conf.CONFIG_SET('HAVE_RPC_RPC_H'): + if conf.CHECK_CFG(package='libntirpc', args='--cflags', + msg='Checking for libntirpc headers', + uselib_store='TIRPC'): + conf.CHECK_HEADERS('rpc/rpc.h rpc/nettype.h', lib='tirpc', together=True) + conf.SET_TARGET_TYPE('tirpc', 'SYSLIB') + if not conf.CONFIG_SET('HAVE_RPC_RPC_H'): + Logs.error('ERROR: No rpc/rpc.h header found, tirpc or libntirpc missing?') + sys.exit(1) + + 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('rpcsvc/nis.h rpcsvc/ypclnt.h sys/sysctl.h') + conf.CHECK_HEADERS('sys/sysctl.h') 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_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') 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') diff --git a/lib/util/wscript_build b/lib/util/wscript_build index 1d2f2ba4bed..bfa5839e4d0 100644 --- a/lib/util/wscript_build +++ b/lib/util/wscript_build @@ -203,7 +203,7 @@ else: bld.SAMBA_SUBSYSTEM('access', source='access.c', - deps='interfaces samba-util', + deps='interfaces samba-util tirpc nsl', local_include=False) bld.SAMBA_SUBSYSTEM('util_str_escape', diff --git a/source3/auth/wscript_build b/source3/auth/wscript_build index b95fb9831f9..2f55dee9796 100644 --- a/source3/auth/wscript_build +++ b/source3/auth/wscript_build @@ -6,7 +6,7 @@ bld.SAMBA3_SUBSYSTEM('TOKEN_UTIL', bld.SAMBA3_SUBSYSTEM('USER_UTIL', source='user_util.c', - deps='TOKEN_UTIL') + deps='TOKEN_UTIL tirpc nsl') bld.SAMBA3_SUBSYSTEM('AUTH_COMMON', source='''auth_util.c diff --git a/source3/wscript b/source3/wscript index 02a33c61bb2..16df80a7494 100644 --- a/source3/wscript +++ b/source3/wscript @@ -119,7 +119,6 @@ def configure(conf): conf.CHECK_FUNCS('memalign posix_memalign hstrerror') conf.CHECK_FUNCS('shmget') conf.CHECK_FUNCS_IN('shm_open', 'rt', checklibc=True) - #FIXME: for some reason this one still fails conf.CHECK_FUNCS_IN('yp_get_default_domain', 'nsl') conf.CHECK_FUNCS_IN('dn_expand _dn_expand __dn_expand', 'resolv') conf.CHECK_FUNCS_IN('dn_expand', 'inet') @@ -1482,7 +1481,7 @@ main() { #darwin style quota bytecount conf.CHECK_STRUCTURE_MEMBER('struct dqblk', 'dqb_curbytes', define='HAVE_STRUCT_DQBLK_DQB_CURBYTES', headers='sys/quota.h') - if conf.CHECK_HEADERS('rpcsvc/rquota.h'): + if conf.CHECK_HEADERS('rpcsvc/rquota.h', lib='tirpc'): conf.DEFINE('HAVE_NFS_QUOTAS', '1') conf.CHECK_STRUCTURE_MEMBER('struct getquota_rslt', 'getquota_rslt_u', define='HAVE_GETQUOTA_RSLT_GETQUOTA_RSLT_U', @@ -1520,7 +1519,8 @@ main() { define='HAVE_NFS_QUOTAS', msg='for NFS QUOTAS', execute=True, - local_include=False) + local_include=False, + lib='tirpc') if conf.CONFIG_SET('HAVE_QUOTACTL_LINUX') or \ conf.CONFIG_SET('HAVE_QUOTACTL_4A') or \ |