ntacl and upgradeprovision patches

Matthieu Patou mat at matws.net
Fri Jan 15 05:12:39 MST 2010


Hi Andrew,

Thanks for pointing me the build and the make test problem.

The build error is fixed in this commit: "s4: allow wrap_setxattr and 
wrap_getxattr to operate on tdb stored xattr"

I rebuild  with the following options so I do not expect to have one 
more build problem.
CFLAGS="-Wc++-compat -fstrict-aliasing -Wstrict-aliasing=2 
-fstrict-overflow -Wstrict-overflow=5 -Wmissing-prototypes"

For the make test pb, I added this patch: "	selftest-s4: set the 
posix:eadb at the global level" which put the "posix:eadb" stanza in the 
[global] part (I discussed about this with Andrew B. this morning)

I also added a small tests to forbid upgradeprovision from upgrading 
when more than I DC is present this is a kind of safety net while 
waiting for more changes in upgradeprovsion (more to come soon).

Matthieu.


On 15/01/2010 06:29, tridge at samba.org wrote:
> Hi Matthieu,
>
>   >  So the merged branch available here:
>   >  http://repo.or.cz/w/Samba/ekacnet.git/shortlog/refs/heads/merge-acl-prov
>   >
>   >  Contains series of patch that build and pass tests on my computer
>   >  (andrew: I rebased the whole stuff to add the patch that fixed the build
>   >  error that you had).
>
> It fails to compile for me, with this error:
>
> Compiling scripting/python/pyxattr_native.c
> scripting/python/pyxattr_native.c: In function 'py_wrap_getxattr':
> scripting/python/pyxattr_native.c:72: error: implicit declaration of function 'getxattr'
> scripting/python/pyxattr_native.c:77: warning: pointer targets in passing argument 1 of 'PyString_FromStringAndSize' differ in signedness
>
> Fixing the compilation is easy, it's just this change:
>
> --- a/source4/scripting/python/pyxattr_native.c
> +++ b/source4/scripting/python/pyxattr_native.c
> @@ -69,7 +69,7 @@ static PyObject *py_wrap_getxattr(PyObject *self, PyObject *args)
>          }
>          /* check length ... */
>          buf = talloc_zero_array(mem_ctx, uint8_t, len);
> -       len = getxattr(filename,attribute,buf,len);
> +       len = wrap_getxattr(filename,attribute,buf,len);
>          if( len<  0 ) {
>                  PyErr_SetString(PyExc_TypeError, strerror(errno));
>                  return NULL;
>
> but then make test fails with this in provision:
>
> Traceback (most recent call last):
>    File "./setup/provision", line 243, in<module>
>      nosync=opts.nosync,ldap_dryrun_mode=opts.ldap_dryrun_mode,useeadb=eadb)
>    File "bin/python/samba/provision.py", line 1334, in provision
>      setsysvolacl(samdb,names,paths.netlogon,paths.sysvol,wheel_gid,domainsid,lp)
>    File "bin/python/samba/provision.py", line 1080, in setsysvolacl
>      setntacl(lp,sysvol,acl)
>    File "bin/python/samba/ntacls.py", line 77, in setntacl
>      attribute = samba.xattr_native.wrap_setxattr(file,xattr.XATTR_NTACL_NAME,ndr_pack(ntacl))
> TypeError: Operation not permitted
>
> I haven't looked into it any further, sorry.
>
> Cheers, Tridge



More information about the samba-technical mailing list