b005745a32
Guenther
644 lines
22 KiB
Diff
644 lines
22 KiB
Diff
From d75de7b0f8062e004d304fe340894ad623285760 Mon Sep 17 00:00:00 2001
|
|
From: Andreas Schneider <asn@samba.org>
|
|
Date: Fri, 19 Jan 2018 09:32:49 +0100
|
|
Subject: [PATCH 1/5] s3:waf: Move HAVE_NETGROUP to wscript
|
|
|
|
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13238
|
|
|
|
Pair-Programmed-With: Guenther Deschner <gd@samba.org>
|
|
|
|
Signed-off-by: Andreas Schneider <asn@samba.org>
|
|
Signed-off-by: Guenther Deschner <gd@samba.org>
|
|
---
|
|
source3/include/includes.h | 4 ----
|
|
source3/wscript | 5 +++++
|
|
2 files changed, 5 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/source3/include/includes.h b/source3/include/includes.h
|
|
index e82bfad4147..e2fb8e62e41 100644
|
|
--- a/source3/include/includes.h
|
|
+++ b/source3/include/includes.h
|
|
@@ -91,10 +91,6 @@
|
|
#include <rpc/rpc.h>
|
|
#endif
|
|
|
|
-#if defined(HAVE_YP_GET_DEFAULT_DOMAIN) && defined(HAVE_SETNETGRENT) && defined(HAVE_ENDNETGRENT) && defined(HAVE_GETNETGRENT)
|
|
-#define HAVE_NETGROUP 1
|
|
-#endif
|
|
-
|
|
#if defined (HAVE_NETGROUP)
|
|
#if defined(HAVE_RPCSVC_YP_PROT_H)
|
|
/*
|
|
diff --git a/source3/wscript b/source3/wscript
|
|
index e81a212b448..02eda7e8802 100644
|
|
--- a/source3/wscript
|
|
+++ b/source3/wscript
|
|
@@ -611,6 +611,11 @@ msg.msg_accrightslen = sizeof(fd);
|
|
headers='netdb.h netgroup.h',
|
|
cflags=netgrent_cflags)
|
|
|
|
+ if conf.CONFIG_SET('HAVE_YP_GET_DEFAULT_DOMAIN') and \
|
|
+ conf.CONFIG_SET('HAVE_SETNETGRENT') and \
|
|
+ conf.CONFIG_SET('HAVE_ENDNETGRENT') and \
|
|
+ conf.CONFIG_SET('HAVE_GETNETGRENT'):
|
|
+ conf.DEFINE('HAVE_NETGROUP', '1')
|
|
|
|
# Look for CUPS
|
|
if Options.options.with_cups:
|
|
--
|
|
2.15.1
|
|
|
|
|
|
From cb6545a54103d16277988dfbf0479914366743d4 Mon Sep 17 00:00:00 2001
|
|
From: Andreas Schneider <asn@samba.org>
|
|
Date: Fri, 19 Jan 2018 09:33:21 +0100
|
|
Subject: [PATCH 2/5] include: Create system/nis.h in libreplace
|
|
|
|
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13238
|
|
|
|
Pair-Programmed-With: Guenther Deschner <gd@samba.org>
|
|
|
|
Signed-off-by: Andreas Schneider <asn@samba.org>
|
|
Signed-off-by: Guenther Deschner <gd@samba.org>
|
|
---
|
|
lib/replace/system/nis.h | 83 ++++++++++++++++++++++++++++++++++++++++++++++
|
|
lib/util/access.c | 10 ++++--
|
|
source3/auth/user_util.c | 13 ++++++++
|
|
source3/include/includes.h | 45 -------------------------
|
|
source3/lib/util.c | 11 ++++++
|
|
5 files changed, 114 insertions(+), 48 deletions(-)
|
|
create mode 100644 lib/replace/system/nis.h
|
|
|
|
diff --git a/lib/replace/system/nis.h b/lib/replace/system/nis.h
|
|
new file mode 100644
|
|
index 00000000000..068595a1628
|
|
--- /dev/null
|
|
+++ b/lib/replace/system/nis.h
|
|
@@ -0,0 +1,83 @@
|
|
+/*
|
|
+ Unix SMB/CIFS implementation.
|
|
+
|
|
+ nis system include wrappers
|
|
+
|
|
+ Copyright (C) Andrew Tridgell 2004
|
|
+
|
|
+ ** NOTE! The following LGPL license applies to the replace
|
|
+ ** library. This does NOT imply that all of Samba is released
|
|
+ ** under the LGPL
|
|
+
|
|
+ This library is free software; you can redistribute it and/or
|
|
+ modify it under the terms of the GNU Lesser General Public
|
|
+ License as published by the Free Software Foundation; either
|
|
+ version 3 of the License, or (at your option) any later version.
|
|
+
|
|
+ This library is distributed in the hope that it will be useful,
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+ Lesser General Public License for more details.
|
|
+
|
|
+ You should have received a copy of the GNU Lesser General Public
|
|
+ License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
|
+*/
|
|
+
|
|
+#ifndef _nis_passwd_h
|
|
+#define _nis_passwd_h
|
|
+
|
|
+#if defined(HAVE_RPC_RPC_H)
|
|
+/*
|
|
+ * Check for AUTH_ERROR define conflict with rpc/rpc.h in prot.h.
|
|
+ */
|
|
+#if defined(HAVE_SYS_SECURITY_H) && defined(HAVE_RPC_AUTH_ERROR_CONFLICT)
|
|
+#undef AUTH_ERROR
|
|
+#endif /* HAVE_SYS_SECURITY_H && HAVE_RPC_AUTH_ERROR_CONFLICT */
|
|
+/*
|
|
+ * HP-UX 11.X has TCP_NODELAY and TCP_MAXSEG defined in <netinet/tcp.h> which
|
|
+ * was included above. However <rpc/rpc.h> includes <sys/xti.h> which defines
|
|
+ * them again without checking if they already exsist. This generates
|
|
+ * two "Redefinition of macro" warnings for every single .c file that is
|
|
+ * compiled.
|
|
+ */
|
|
+#if defined(HPUX) && defined(TCP_NODELAY)
|
|
+#undef TCP_NODELAY
|
|
+#endif /* HPUX && TCP_NODELAY */
|
|
+
|
|
+#if defined(HPUX) && defined(TCP_MAXSEG)
|
|
+#undef TCP_MAXSEG
|
|
+#endif /* HPUX && TCP_MAXSEG */
|
|
+
|
|
+#include <rpc/rpc.h>
|
|
+#endif /* HAVE_RPC_RPC_H */
|
|
+
|
|
+
|
|
+#if defined (HAVE_NETGROUP)
|
|
+
|
|
+#if defined(HAVE_RPCSVC_YP_PROT_H)
|
|
+/*
|
|
+ * HP-UX 11.X has TCP_NODELAY and TCP_MAXSEG defined in <netinet/tcp.h> which
|
|
+ * was included above. However <rpc/rpc.h> includes <sys/xti.h> which defines
|
|
+ * them again without checking if they already exsist. This generates
|
|
+ * two "Redefinition of macro" warnings for every single .c file that is
|
|
+ * compiled.
|
|
+ */
|
|
+#if defined(HPUX) && defined(TCP_NODELAY)
|
|
+#undef TCP_NODELAY
|
|
+#endif /* HPUX && TCP_MAXSEG */
|
|
+
|
|
+#if defined(HPUX) && defined(TCP_MAXSEG)
|
|
+#undef TCP_MAXSEG
|
|
+#endif /* HPUX && TCP_MAXSEG */
|
|
+
|
|
+#include <rpcsvc/yp_prot.h>
|
|
+
|
|
+#endif /* HAVE_RPCSVC_YP_PROT_H */
|
|
+
|
|
+#if defined(HAVE_RPCSVC_YPCLNT_H)
|
|
+#include <rpcsvc/ypclnt.h>
|
|
+#endif /* HAVE_RPCSVC_YPCLNT_H */
|
|
+
|
|
+#endif /* HAVE_NETGROUP */
|
|
+
|
|
+#endif /* _nis_passwd_h */
|
|
diff --git a/lib/util/access.c b/lib/util/access.c
|
|
index 6d04a5f622c..7da0573a74d 100644
|
|
--- a/lib/util/access.c
|
|
+++ b/lib/util/access.c
|
|
@@ -22,6 +22,10 @@
|
|
#include "lib/util/access.h"
|
|
#include "lib/util/unix_match.h"
|
|
|
|
+#if defined(HAVE_NETGROUP)
|
|
+#include "system/nis.h"
|
|
+#endif
|
|
+
|
|
#define NAME_INDEX 0
|
|
#define ADDR_INDEX 1
|
|
|
|
@@ -143,11 +147,11 @@ static bool string_match(const char *tok,const char *s)
|
|
|
|
netgroup_ok = innetgr(tok + 1, hostname, (char *) 0, mydomain);
|
|
|
|
- DEBUG(5,("looking for %s of domain %s in netgroup %s gave %s\n",
|
|
+ DBG_INFO("%s %s of domain %s in netgroup %s\n",
|
|
+ netgroup_ok ? "Found" : "Could not find",
|
|
hostname,
|
|
mydomain?mydomain:"(ANY)",
|
|
- tok+1,
|
|
- BOOLSTR(netgroup_ok)));
|
|
+ tok+1);
|
|
|
|
SAFE_FREE(hostname);
|
|
|
|
diff --git a/source3/auth/user_util.c b/source3/auth/user_util.c
|
|
index 1ddb7387307..63841a1fe51 100644
|
|
--- a/source3/auth/user_util.c
|
|
+++ b/source3/auth/user_util.c
|
|
@@ -23,6 +23,19 @@
|
|
#include "system/filesys.h"
|
|
#include "auth.h"
|
|
|
|
+#ifdef HAVE_NETGROUP
|
|
+/* rpc/xdr.h uses TRUE and FALSE */
|
|
+#ifdef TRUE
|
|
+#undef TRUE
|
|
+#endif
|
|
+
|
|
+#ifdef FALSE
|
|
+#undef FALSE
|
|
+#endif
|
|
+
|
|
+#include "system/nis.h"
|
|
+#endif
|
|
+
|
|
/*******************************************************************
|
|
Map a username from a dos name to a unix name by looking in the username
|
|
map. Note that this modifies the name in place.
|
|
diff --git a/source3/include/includes.h b/source3/include/includes.h
|
|
index e2fb8e62e41..d822c3f9300 100644
|
|
--- a/source3/include/includes.h
|
|
+++ b/source3/include/includes.h
|
|
@@ -68,51 +68,6 @@
|
|
#include "system/time.h"
|
|
#include "system/wait.h"
|
|
|
|
-#if defined(HAVE_RPC_RPC_H)
|
|
-/*
|
|
- * Check for AUTH_ERROR define conflict with rpc/rpc.h in prot.h.
|
|
- */
|
|
-#if defined(HAVE_SYS_SECURITY_H) && defined(HAVE_RPC_AUTH_ERROR_CONFLICT)
|
|
-#undef AUTH_ERROR
|
|
-#endif
|
|
-/*
|
|
- * HP-UX 11.X has TCP_NODELAY and TCP_MAXSEG defined in <netinet/tcp.h> which
|
|
- * was included above. However <rpc/rpc.h> includes <sys/xti.h> which defines
|
|
- * them again without checking if they already exsist. This generates
|
|
- * two "Redefinition of macro" warnings for every single .c file that is
|
|
- * compiled.
|
|
- */
|
|
-#if defined(HPUX) && defined(TCP_NODELAY)
|
|
-#undef TCP_NODELAY
|
|
-#endif
|
|
-#if defined(HPUX) && defined(TCP_MAXSEG)
|
|
-#undef TCP_MAXSEG
|
|
-#endif
|
|
-#include <rpc/rpc.h>
|
|
-#endif
|
|
-
|
|
-#if defined (HAVE_NETGROUP)
|
|
-#if defined(HAVE_RPCSVC_YP_PROT_H)
|
|
-/*
|
|
- * HP-UX 11.X has TCP_NODELAY and TCP_MAXSEG defined in <netinet/tcp.h> which
|
|
- * was included above. However <rpc/rpc.h> includes <sys/xti.h> which defines
|
|
- * them again without checking if they already exsist. This generates
|
|
- * two "Redefinition of macro" warnings for every single .c file that is
|
|
- * compiled.
|
|
- */
|
|
-#if defined(HPUX) && defined(TCP_NODELAY)
|
|
-#undef TCP_NODELAY
|
|
-#endif
|
|
-#if defined(HPUX) && defined(TCP_MAXSEG)
|
|
-#undef TCP_MAXSEG
|
|
-#endif
|
|
-#include <rpcsvc/yp_prot.h>
|
|
-#endif
|
|
-#if defined(HAVE_RPCSVC_YPCLNT_H)
|
|
-#include <rpcsvc/ypclnt.h>
|
|
-#endif
|
|
-#endif /* HAVE_NETGROUP */
|
|
-
|
|
#ifndef HAVE_KRB5_H
|
|
#undef HAVE_KRB5
|
|
#endif
|
|
diff --git a/source3/lib/util.c b/source3/lib/util.c
|
|
index fb508842678..ae9fe71c974 100644
|
|
--- a/source3/lib/util.c
|
|
+++ b/source3/lib/util.c
|
|
@@ -45,6 +45,17 @@
|
|
#define MAX_ALLOC_SIZE (1024*1024*256)
|
|
|
|
#if (defined(HAVE_NETGROUP) && defined (WITH_AUTOMOUNT))
|
|
+/* rpc/xdr.h uses TRUE and FALSE */
|
|
+#ifdef TRUE
|
|
+#undef TRUE
|
|
+#endif
|
|
+
|
|
+#ifdef FALSE
|
|
+#undef FALSE
|
|
+#endif
|
|
+
|
|
+#include "system/nis.h"
|
|
+
|
|
#ifdef WITH_NISPLUS_HOME
|
|
#ifdef BROKEN_NISPLUS_INCLUDE_FILES
|
|
/*
|
|
--
|
|
2.15.1
|
|
|
|
|
|
From df3be26e10bfbcd04541932bead663866fc14ab4 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
|
|
Date: Tue, 16 Jan 2018 17:48:10 +0100
|
|
Subject: [PATCH 3/5] 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>
|
|
---
|
|
ctdb/wscript | 2 +-
|
|
lib/replace/wscript | 38 +++++++++++++++++++++++++++++++++-----
|
|
lib/util/wscript_build | 2 +-
|
|
source3/auth/wscript_build | 2 +-
|
|
source3/wscript | 8 ++++----
|
|
5 files changed, 40 insertions(+), 12 deletions(-)
|
|
|
|
diff --git a/ctdb/wscript b/ctdb/wscript
|
|
index 8774b999ff2..715ecb175fa 100644
|
|
--- a/ctdb/wscript
|
|
+++ b/ctdb/wscript
|
|
@@ -559,7 +559,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 2f94d4937d3..57b0a45faee 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 0b16b6f8216..30face34381 100644
|
|
--- a/lib/util/wscript_build
|
|
+++ b/lib/util/wscript_build
|
|
@@ -204,7 +204,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 83b5ad18f03..8fd7dcded86 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 02eda7e8802..a1898bdbe95 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')
|
|
@@ -1446,7 +1445,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',
|
|
@@ -1484,7 +1483,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 \
|
|
@@ -1650,7 +1650,7 @@ main() {
|
|
Logs.info("building with Spotlight support")
|
|
default_static_modules.extend(TO_LIST('rpc_mdssvc_module'))
|
|
|
|
- conf.CHECK_HEADERS('rpc/xdr.h')
|
|
+ conf.CHECK_HEADERS('rpc/xdr.h', lib='tirpc')
|
|
|
|
forced_static_modules.extend(TO_LIST('auth_builtin auth_sam auth_winbind'))
|
|
default_static_modules.extend(TO_LIST('''pdb_smbpasswd pdb_tdbsam
|
|
--
|
|
2.15.1
|
|
|
|
|
|
From 6b4c79954c0b98d761f53ee6f63dab51f1aba601 Mon Sep 17 00:00:00 2001
|
|
From: Andreas Schneider <asn@samba.org>
|
|
Date: Fri, 19 Jan 2018 15:34:32 +0100
|
|
Subject: [PATCH 4/5] wafsamba: Allow passing 'lib' to CHECK_STRUCTURE_MEMBER
|
|
|
|
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13238
|
|
|
|
We need to be able to point it to the right header location, so we need
|
|
to be able to pass the 'lib' that it gets set.
|
|
|
|
Signed-off-by: Andreas Schneider <asn@samba.org>
|
|
---
|
|
buildtools/wafsamba/samba_autoconf.py | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py
|
|
index 7940a7d4fe8..cc08e0d5c3d 100644
|
|
--- a/buildtools/wafsamba/samba_autoconf.py
|
|
+++ b/buildtools/wafsamba/samba_autoconf.py
|
|
@@ -454,7 +454,8 @@ def CHECK_CODE(conf, code, define,
|
|
|
|
@conf
|
|
def CHECK_STRUCTURE_MEMBER(conf, structname, member,
|
|
- always=False, define=None, headers=None):
|
|
+ always=False, define=None, headers=None,
|
|
+ lib=None):
|
|
'''check for a structure member'''
|
|
if define is None:
|
|
define = 'HAVE_%s' % member.upper()
|
|
@@ -463,6 +464,7 @@ def CHECK_STRUCTURE_MEMBER(conf, structname, member,
|
|
define,
|
|
execute=False,
|
|
link=False,
|
|
+ lib=lib,
|
|
always=always,
|
|
headers=headers,
|
|
local_include=False,
|
|
--
|
|
2.15.1
|
|
|
|
|
|
From 11fe6c8253dd7ceb0734358bad6d6ca7f550d7d1 Mon Sep 17 00:00:00 2001
|
|
From: Andreas Schneider <asn@samba.org>
|
|
Date: Fri, 19 Jan 2018 14:30:20 +0100
|
|
Subject: [PATCH 5/5] waf: Fix NFS quota support with libtirpc
|
|
|
|
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13238
|
|
|
|
Signed-off-by: Andreas Schneider <asn@samba.org>
|
|
---
|
|
lib/replace/wscript | 2 +-
|
|
source3/lib/sysquotas_nfs.c | 11 ++++++++++-
|
|
source3/modules/nfs4acl_xattr_xdr.c | 9 +++++++++
|
|
source3/wscript | 26 ++++++++++++++------------
|
|
source3/wscript_build | 2 +-
|
|
5 files changed, 35 insertions(+), 15 deletions(-)
|
|
|
|
diff --git a/lib/replace/wscript b/lib/replace/wscript
|
|
index 57b0a45faee..2c638b77212 100644
|
|
--- a/lib/replace/wscript
|
|
+++ b/lib/replace/wscript
|
|
@@ -70,7 +70,7 @@ def configure(conf):
|
|
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',
|
|
+ if conf.CHECK_CFG(package='libtirpc', args='--cflags --libs',
|
|
msg='Checking for libtirpc headers',
|
|
uselib_store='TIRPC'):
|
|
conf.CHECK_HEADERS('rpc/rpc.h rpc/nettype.h', lib='tirpc', together=True)
|
|
diff --git a/source3/lib/sysquotas_nfs.c b/source3/lib/sysquotas_nfs.c
|
|
index fe46d3fa36a..dd2b12d0ffd 100644
|
|
--- a/source3/lib/sysquotas_nfs.c
|
|
+++ b/source3/lib/sysquotas_nfs.c
|
|
@@ -36,13 +36,22 @@
|
|
* This is based on the FreeBSD / SUNOS5 section of quotas.c
|
|
*/
|
|
|
|
+/* <rpc/xdr.h> uses TRUE and FALSE */
|
|
+#ifdef TRUE
|
|
+#undef TRUE
|
|
+#endif
|
|
+
|
|
+#ifdef FALSE
|
|
+#undef FALSE
|
|
+#endif
|
|
+
|
|
#include <rpc/rpc.h>
|
|
#include <rpc/types.h>
|
|
+#include <rpc/xdr.h>
|
|
#include <rpcsvc/rquota.h>
|
|
#ifdef HAVE_RPC_NETTYPE_H
|
|
#include <rpc/nettype.h>
|
|
#endif
|
|
-#include <rpc/xdr.h>
|
|
|
|
#ifndef RQ_PATHLEN
|
|
#define RQ_PATHLEN 1024
|
|
diff --git a/source3/modules/nfs4acl_xattr_xdr.c b/source3/modules/nfs4acl_xattr_xdr.c
|
|
index 524e69c0e1f..399c104faa4 100644
|
|
--- a/source3/modules/nfs4acl_xattr_xdr.c
|
|
+++ b/source3/modules/nfs4acl_xattr_xdr.c
|
|
@@ -27,6 +27,15 @@
|
|
#define DBGC_CLASS DBGC_VFS
|
|
|
|
#ifdef HAVE_RPC_XDR_H
|
|
+/* <rpc/xdr.h> uses TRUE and FALSE */
|
|
+#ifdef TRUE
|
|
+#undef TRUE
|
|
+#endif
|
|
+
|
|
+#ifdef FALSE
|
|
+#undef FALSE
|
|
+#endif
|
|
+
|
|
#include <rpc/xdr.h>
|
|
#include "nfs41acl.h"
|
|
#include "nfs4acl_xattr_xdr.h"
|
|
diff --git a/source3/wscript b/source3/wscript
|
|
index a1898bdbe95..64a5fa66b6c 100644
|
|
--- a/source3/wscript
|
|
+++ b/source3/wscript
|
|
@@ -1446,10 +1446,22 @@ main() {
|
|
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', lib='tirpc'):
|
|
- conf.DEFINE('HAVE_NFS_QUOTAS', '1')
|
|
+ # Optional structure member
|
|
conf.CHECK_STRUCTURE_MEMBER('struct getquota_rslt', 'getquota_rslt_u',
|
|
define='HAVE_GETQUOTA_RSLT_GETQUOTA_RSLT_U',
|
|
- headers='rpcsvc/rquota.h')
|
|
+ headers='rpcsvc/rquota.h',
|
|
+ lib='tirpc')
|
|
+
|
|
+ # Required fucntion for NFS quote support
|
|
+ conf.CHECK_CODE('''
|
|
+ clnt_create("", RQUOTAPROG, RQUOTAVERS, "udp");
|
|
+ ''',
|
|
+ headers="rpc/rpc.h rpc/types.h rpcsvc/rquota.h rpc/nettype.h rpc/xdr.h",
|
|
+ define='HAVE_NFS_QUOTAS',
|
|
+ msg='checking for clnt_create()',
|
|
+ execute=True,
|
|
+ local_include=False,
|
|
+ lib='tirpc')
|
|
|
|
if (host_os.rfind('linux') > -1):
|
|
conf.DEFINE('HAVE_QUOTACTL_LINUX', '1')
|
|
@@ -1476,16 +1488,6 @@ main() {
|
|
execute=True,
|
|
addmain=False)
|
|
|
|
- conf.CHECK_CODE('''
|
|
- clnt_create("", RQUOTAPROG, RQUOTAVERS, "udp");
|
|
-''',
|
|
- headers="rpc/rpc.h rpc/types.h rpcsvc/rquota.h rpc/nettype.h rpc/xdr.h",
|
|
- define='HAVE_NFS_QUOTAS',
|
|
- msg='for NFS QUOTAS',
|
|
- execute=True,
|
|
- local_include=False,
|
|
- lib='tirpc')
|
|
-
|
|
if conf.CONFIG_SET('HAVE_QUOTACTL_LINUX') or \
|
|
conf.CONFIG_SET('HAVE_QUOTACTL_4A') or \
|
|
conf.CONFIG_SET('HAVE_QUOTACTL_4B') or \
|
|
diff --git a/source3/wscript_build b/source3/wscript_build
|
|
index d4bc3cb1700..76c5d6e203b 100644
|
|
--- a/source3/wscript_build
|
|
+++ b/source3/wscript_build
|
|
@@ -594,7 +594,7 @@ bld.SAMBA3_SUBSYSTEM('sysquotas',
|
|
lib/sysquotas_nfs.c
|
|
''',
|
|
allow_warnings=True,
|
|
- deps='samba3-util samba-util')
|
|
+ deps='samba3-util samba-util tirpc')
|
|
|
|
NOTIFY_SOURCES=''
|
|
NOTIFY_DEPS=''
|
|
--
|
|
2.15.1
|
|
|