[PATCH] Python3 compatible modules - credentials, param, _glue

Stefan Metzmacher metze at samba.org
Mon Feb 20 15:21:55 UTC 2017


Am 20.02.2017 um 16:09 schrieb Stefan Metzmacher:
> Hi Andrew,
> 
>> So we can at least have a public record of your thoughts (because I
>> respect them greatly) I would like to understand your reasoning here.
>>
>> Why, in your view, is it important that we support RHEL6 with Samba 4.7
>> as an AD DC?  
> 
> I'll have to check but there might be some SetNet customers using
> our packages on RHEL/CentOS 6.
> 
>> I say as an AD DC, because I see an opportunity here to merge the --
>> disable-python patches at the same time, allowing the file server
>> production build to avoid python for now and so buy us some time.
>>
>> Would your view change if the --disable-python patches were included?
> 
> No, that won't help.
> 
> My main point is that it is not reasonable for me to drop python 2.6
> support just because of the lack of PyCapsule!
> 
> With our limited usage of PyCObject it should be easy to work around
> the python 2.6 limitations!
> 
> Either like this
> https://lists.samba.org/archive/samba-technical/2017-February/118604.html
> or the following:
> 
> Regarding pytalloc_CObject_FromTallocPtr() I think we need an improvement
> anyway, because pytalloc_CObject_FromTallocPtr is not a symmetric api.
> We can just leave it in place as it already is only available for python2.
> 
> What we really want is something like this:
> 
> PyObject *pytalloc_PointerObject_FromTallocPtr(const void *ptr);
> void *_pytalloc_PointerObject_AsTallocPtr(PyObject *self, const char *name);
> #define pytalloc_PointerObject_AsTallocPtr(self, type) \
> 	_pytalloc_PointerObject_AsTallocPtr(self, #type)
> int pytalloc_PointerObject_check(PyObject *self);
> int _pytalloc_PointerObject_checkType(Pyobject *self, type) \
> #define pytalloc_PointerObject_checkType(self, #type)
> 
> pytalloc_PointerObject should be able to be based on pytalloc_BaseObject.

Instead we could also make it simpler by using pytalloc_BaseObject
directly, just:

  PyObject *pytalloc_BaseObject_FromTallocPtr(const void *ptr);

and make use of pytalloc_get_type() on the receiver side.

A useful addition would be:

  int _pytalloc_check_type(PyObject *py_obj, const char *type_name);
  #define pytalloc_check_type(py_obj, type) \
          _pytalloc_check_type(py_obj, #type);

metze

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20170220/68d0c5f2/signature.sig>


More information about the samba-technical mailing list