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

Lumir Balhar lbalhar at redhat.com
Tue Feb 21 10:08:30 UTC 2017

On 02/20/2017 07:30 PM, Alexander Bokovoy wrote:
> On ti, 21 helmi 2017, Andrew Bartlett wrote:
>> On Mon, 2017-02-20 at 18:04 +0100, Stefan Metzmacher wrote:
>>> Hi,
>>> I think the attached patches are a start for what we want.
>>> metze
>> Thanks metze!
>>> Am 20.02.2017 um 16:21 schrieb Stefan Metzmacher:
>>>> 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 also asked our customers, and the answer can be best summarised as
>> "Some use Python 2.6 / RHEL 6 and were not planning an upgrade".  It
>> wasn't many and certainly not a majority, but it wasn't zero either.
>> Sadly we only got one useful reply on the Samba mailing list (planning
>> to upgrade anyway), and as you know, we almost never find out about how
>> our users feel about these things until after the release.
> I've seen few requests to RHEL support lines about SerNet's Samba AD
> packages on RHEL 6.x. These were requests asking to keep RHEL 6.x base
> to be able to compile and use Samba AD against system-wide libraries. In
> that particular case we had issue with libteven/libtalloc/... update
> which came as part of Badlock fixes (where we made small error in
> packaging which affected SerNet's build), but this shows people do care.
> Given that Metze came up with a relatively simple way of supporting 2.6
> environment, I see no need to drop Python 2.6 support.

I completely understand that there are several customers with Python 2.6 
and we still have to support them.

Patch 12 in the previous patchset [0] was designed to keep Python 2.6 
compatibility by redefining PyCapsule_* functions with PyCObject 
alternatives which is a simple solution without much impact on pytalloc. 
Also, the whole codebase can be developed and maintained with PyCapsule 
only which is better for clear code and future maintainability.
Then, when we'll decide to drop Python 2.6 support we just need to 
delete this macros/function from py3compat.h file and continue with 
PyCapsule only.
Or we can redesign the API using something like the proposed 
pytalloc_GenericObject. However, given our currently limited use of 
CObject, I think this would need more discussion about the intended 
direction of this API before going to redesign it. CObject currently 
works, and PyCapsule is the obvious replacement, so I believe a patchset 
for porting to Python 3 should use PyCapsule.

If you agree, I'll try to add the mentioned changes back to the 
patchset, I'll remove version 2.7 check and I'll test it as far as I can 
with Python 2.6.

[0] https://lists.samba.org/archive/samba-technical/2017-January/118482.html

Thank you and have a nice day.

More information about the samba-technical mailing list