[PATCHES] Port pytalloc to Python 3

Jelmer Vernooij jelmer at samba.org
Fri Dec 5 05:18:35 MST 2014


On Fri, Dec 05, 2014 at 01:28:45PM +0200, Alexander Bokovoy wrote:
> On Fri, Dec 5, 2014 at 1:02 PM, Jelmer Vernooij <jelmer at samba.org> wrote:
> > On Fri, Dec 05, 2014 at 12:54:30PM +0200, Alexander Bokovoy wrote:
> >> On Fri, Dec 5, 2014 at 12:47 PM, Jelmer Vernooij <jelmer at samba.org> wrote:
> >> > On Fri, Dec 05, 2014 at 12:10:42PM +0200, Alexander Bokovoy wrote:
> >> >> On Fri, Dec 5, 2014 at 12:04 PM, Petr Viktorin <pviktori at redhat.com> wrote:
> >> >> > On 12/05/2014 10:38 AM, Andrew Bartlett wrote:
> >> >> >>
> >> >> >> On Fri, 2014-12-05 at 10:08 +0100, Petr Viktorin wrote:
> >> >> >>>
> >> >> >>> On 11/28/2014 07:36 PM, Jelmer Vernooij wrote:
> >> >> >>>>
> >> >> >>>> On Fri, Nov 28, 2014 at 07:13:42PM +0100, Petr Viktorin wrote:
> >> >> >>>>>
> >> >> >>>>> On 11/28/2014 06:29 PM, Jelmer Vernooij wrote:
> >> >> >>>>>>
> >> >> >>>>>> Hi Petr,
> >> >> >>>>>>
> >> >> >>>>>> On Thu, Nov 27, 2014 at 03:47:30PM +0100, Petr Viktorin wrote:
> >> >> >>>>>>>
> >> >> >>>>>>> I've seen a discussion on this list from May 2013 [0] with some kind
> >> >> >>>>>>> of
> >> >> >>>>>>> consensus that porting Samba is inevitable, and would be hard, but
> >> >> >>>>>>> there was
> >> >> >>>>>>> no rush. Some posts there cite a wiki page [1] that used to warn
> >> >> >>>>>>> against
> >> >> >>>>>>> moving prematurely, but now it says:
> >> >> >>>>>>>>
> >> >> >>>>>>>> Python 2.x is legacy, Python 3.x is the present and future of the
> >> >> >>>>>>>> language
> >> >> >>>>>>
> >> >> >>>>>> Thanks for working on this!
> >> >> >>>>>>
> >> >> >>>>>> I think supporting Python2 and Python3 simultaneously makes sense at
> >> >> >>>>>> least for
> >> >> >>>>>> our standalone libraries (talloc, ldb, tdb).
> >> >> >>>>>>
> >> >> >>>>>> Maintaining support for two versions of Python at the same time
> >> >> >>>>>> is painful and very costly. If we switch to Python3, we should drop
> >> >> >>>>>> Python2 shortly afterwards if not at the same time.
> >> >> >>>>>>
> >> >> >>>>>> With my Debian/Ubuntu hat on, dropping Python2 support is fine. What
> >> >> >>>>>> do other
> >> >> >>>>>> people think? Python3 was released in 2008, so surely it's made its
> >> >> >>>>>> way into
> >> >> >>>>>> most distributions at this point..
> >> >> >>>>>>
> >> >> >>>>>> A migration would also need to be coordinated with OpenChange, who
> >> >> >>>>>> have code that uses our Python bindings (all in Python2).
> >> >> >>>>>
> >> >> >>>>>
> >> >> >>>>> -1
> >> >> >>>>> There are more projects that use the bindings, and they will need time
> >> >> >>>>> to be
> >> >> >>>>> ported. Some have other dependencies that aren't there yet. I know
> >> >> >>>>> FreeIPA
> >> >> >>>>> uses the bindings, and porting that definitely won't happen overnight.
> >> >> >>>>
> >> >> >>>> Which major projects are there, just beside OpenChange and FreeIPA?
> >> >> >>>>
> >> >> >>>> I do of course want to accomodate the projects that use our bindings, so
> >> >> >>>> let's
> >> >> >>>> see if we can come up with a plan that is satisfactory for both of us.
> >> >> >>>> :)
> >> >> >>>>
> >> >> >>>> Is there any reason you couldn't just depend on a newer version of Samba
> >> >> >>>> once
> >> >> >>>> you migrate FreeIPA to Python3? Why is it essential for you Samba
> >> >> >>>> support multiple
> >> >> >>>> Python versions?
> >> >> >>>
> >> >> >>>
> >> >> >>> Well, that would essentially force the FreeIPA team to maintain a fork
> >> >> >>> of Samba until FreeIPA is ported. And porting FreeIPA's dependencies
> >> >> >>> might take some time.
> >> >> >>
> >> >> >>
> >> >> >> Why not leave Samba until later then, if this is a concern?
> >> >> >>
> >> >> >> Andrew Bartlett
> >> >> >
> >> >> >
> >> >> > If you're asking why *I* don't hold off porting Samba, it's because Samba
> >> >> > it's a part of the Fedora Live DVD, and the goal is to remove Python 2 from
> >> >> > that completely. Porting FreeIPA can wait until later, when we try to tackle
> >> >> > the entire distro.
> >> >> >
> >> >> >
> >> >> > Speaking from my other (and very separate) role, as a FreeIPA developer:
> >> >> > Python 3 is not a priority there, mainly because all the dependencies are
> >> >> > not ported yet. Any of the dependencies could ask the same question – why
> >> >> > not leave this one project until the end?
> >> >> That's why it is sensible for an infrastructure components like
> >> >> libtalloc and friends to support both Python2 and Python3.
> >> >> If there could be a phaseout time like several releases, it would give
> >> >> people at least a chance to allocate time to port over.
> >> > For talloc, tdb and ldb it makes sense to support both python2 and
> >> > python3. For Samba itself, the burden of maintaining support for both
> >> > is much higher, and the benefits smaller.
> >> Yes. However, talloc/tdb/ldb support for both Python2 and Python3
> >> means there is need to improve our build system to support both Python
> >> versions so this task is relevant.
> >>
> >> As for migrating FreeIPA to Python3 if proper Samba bindings would
> >> become Python3 only, this is something we can discuss when they would
> >> become as such -- I don't see Samba migrating earlier than 4.3 which
> >> means FreeIPA would have time next year realistically speaking.
> > Just to be clear: I'm happy for Samba to migrate to Python3. I have problems
> > with e.g. Samba 4.3 supporting both Python 2 *and* Python3 because of the
> > maintenance burden involved in that.
> >
> > If FreeIPA can just follow Samba with the Python release it uses once Samba
> > releases a major version with Python3, then there should be no need for support
> > for multiple Python versions in Samba.
> That's what we can't promise, at least now as FreeIPA has more Python
> dependencies than Samba bindings and some of them aren't in such a
> good autogenerated shape as Samba's ones. We need to rewrite
> python-krbV, for example, for Python3 and there are other components
> too. Also, own use of Python in FreeIPA is rather complex.
Only a fraction of Samba's Python files is generated. On a clean tree (nothing
autogenerated):

% ls **/*.py | wc -l
500
% git grep -l Python.h | uniq | wc -l
49

And that's excluding any scripts that don't have a .py extension.
python-krbV is tiny compared to this. 

What other dependencies does freeIPA have that are not available in Python3
yet?

Cheers,

Jelmer


More information about the samba-technical mailing list