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

Reply via email to