The branch, master has been updated via 33ff033 s4-provision: Give better clues on what Samba needs for s3fs ACL support from 9e116e8 s3-rpcclient: support all known netr_LogonControl2 variants properly
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 33ff033204c29adb669b3c93536fe4712428ec88 Author: Andrew Bartlett <abart...@samba.org> Date: Thu Jun 21 16:21:54 2012 +1000 s4-provision: Give better clues on what Samba needs for s3fs ACL support Autobuild-User(master): Andrew Bartlett <abart...@samba.org> Autobuild-Date(master): Thu Jun 21 14:07:55 CEST 2012 on sn-devel-104 ----------------------------------------------------------------------- Summary of changes: source3/smbd/pysmbd.c | 15 +++++++++++++++ .../scripting/python/samba/provision/__init__.py | 8 +++++++- 2 files changed, 22 insertions(+), 1 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/smbd/pysmbd.c b/source3/smbd/pysmbd.c index 76167e1..5badb3a 100644 --- a/source3/smbd/pysmbd.c +++ b/source3/smbd/pysmbd.c @@ -183,7 +183,22 @@ static PyObject *py_smbd_set_simple_acl(PyObject *self, PyObject *args) Py_RETURN_NONE; } +/* + check if we have ACL support + */ +static PyObject *py_smbd_have_posix_acls(PyObject *self, PyObject *args) +{ +#ifdef HAVE_POSIX_ACLS + return PyBool_FromLong(true); +#else + return PyBool_FromLong(false); +#endif +} + static PyMethodDef py_smbd_methods[] = { + { "have_posix_acls", + (PyCFunction)py_smbd_have_posix_acls, METH_VARARGS, + NULL }, { "set_simple_acl", (PyCFunction)py_smbd_set_simple_acl, METH_VARARGS, NULL }, diff --git a/source4/scripting/python/samba/provision/__init__.py b/source4/scripting/python/samba/provision/__init__.py index c95db4e..d9d1ce9 100644 --- a/source4/scripting/python/samba/provision/__init__.py +++ b/source4/scripting/python/samba/provision/__init__.py @@ -1738,12 +1738,18 @@ def provision(logger, session_info, credentials, smbconf=None, if paths.sysvol is None: raise MissingShareError("sysvol", paths.smbconf) + if not smbd.have_posix_acls(): + # This clue is only strictly correct for RPM and + # Debian-like Linux systems, but hopefully other users + # will get enough clue from it. + raise ProvisioningError("Samba was compiled without the posix ACL support that s3fs requires. Try installing libacl1-dev or libacl-devel, then re-run configure and make.") + file = tempfile.NamedTemporaryFile(dir=os.path.abspath(paths.sysvol)) try: try: smbd.set_simple_acl(file.name, root_uid, wheel_gid) except Exception: - raise ProvisioningError("Your filesystem or build does not support posix ACLs, s3fs is unworkable in this mode") + raise ProvisioningError("Your filesystem or build does not support posix ACLs, which s3fs requires. Try the mounting the filesystem with the 'acl' option.") finally: file.close() -- Samba Shared Repository