diff options
author | Andrew Bartlett <abartlet@samba.org> | 2012-06-21 16:21:54 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2012-06-21 14:07:55 +0200 |
commit | 33ff033204c29adb669b3c93536fe4712428ec88 (patch) | |
tree | 7fb840b1fe078c305368d31c6a8a0d98230c8307 | |
parent | 9e116e8a5e2c9ae834b7b500cb0833201bfd148b (diff) | |
download | samba-33ff033204c29adb669b3c93536fe4712428ec88.tar.gz samba-33ff033204c29adb669b3c93536fe4712428ec88.tar.bz2 samba-33ff033204c29adb669b3c93536fe4712428ec88.zip |
s4-provision: Give better clues on what Samba needs for s3fs ACL support
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Thu Jun 21 14:07:55 CEST 2012 on sn-devel-104
-rw-r--r-- | source3/smbd/pysmbd.c | 15 | ||||
-rw-r--r-- | source4/scripting/python/samba/provision/__init__.py | 8 |
2 files changed, 22 insertions, 1 deletions
diff --git a/source3/smbd/pysmbd.c b/source3/smbd/pysmbd.c index 76167e1477..5badb3a744 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 c95db4e639..d9d1ce9eab 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() |