[PATCHES] Port pytalloc to Python 3
Jelmer Vernooij
jelmer at samba.org
Sat Dec 6 14:29:46 MST 2014
Hi Petr,
Thanks for the updated patchset.
On Fri, Dec 05, 2014 at 10:52:42AM +0100, Petr Viktorin wrote:
> On 11/28/2014 06:29 PM, Jelmer Vernooij wrote:
> [...]
> >> From 9908f55c38ac7e69c96d094065e3f312c963f293 Mon Sep 17 00:00:00 2001
> >>From: Petr Viktorin <pviktori at redhat.com>
> >>Date: Wed, 12 Nov 2014 16:53:33 +0100
> >>Subject: [PATCH 1/4] buildtools: Honor LDVERSION when looking for Python
> >> library
> >>
>
> >^^ Waf patches should go to waf upstream first. We can then update our copy of waf in Samba.
>
> The patch was accepted to upstream waf's 1.5 branch
> (https://code.google.com/p/waf/issues/detail?id=1405).
>
> Samba's copy has diverged though, there are BSD fixes upstream and a
> cross-compiling patch only in Samba.
I've forwarded those upstream a couple of days ago; the cross compiling patch should be the
only one left and we might be able to drop that (I need a cross-compiling expert to confirm
that).
> >>diff --git a/lib/talloc/wscript b/lib/talloc/wscript
> >>index 986492ccde8c7cdac830dc237893775a2682b2fd..57c0faae778c0427859668e3c5b478f62670af97 100644
> >>--- a/lib/talloc/wscript
> >>+++ b/lib/talloc/wscript
> >>@@ -113,21 +113,25 @@ def build(bld):
> >> manpages='man/talloc.3')
> >>
> >> if not bld.CONFIG_SET('USING_SYSTEM_PYTALLOC_UTIL') and not bld.env.disable_python:
> >>- bld.SAMBA_LIBRARY('pytalloc-util',
> >>+ if bld.env.PYTHON_VERSION >= '3':
> >^^ How hard would it be to build with all Python versions found rather than
> >just the one that we found first? That would make preventing regressions with
> >python3 a lot easier.
>
> I'm afraid that would end up being a major refactoring in Waf – all the
> PYTHON* configuration in the build system assumes a single Python version
> for the entire build, so we'd have to add some way to have two parallel
> configurations for anything that touches Python.
>
> If Samba ends up supporting both Python versions only for a short time,
> (except the small stand-alone libraries), then it definitely wouldn't be
> worth the effort. Otherwise, it probably also wouldn't, but I would look
> into it more in that case.
Like ab says, I think this would be important to do if we are going to support
two Pythons for a while. Not supporting building with multiple python versions here
is pushing the responsibility for building talloc with multiple pythons out to all
the packagers.
Related to this, can we get python3-dev installed on sn-devel so that
autobuild builds the python3 bindings?
> From 27e5087868a7790d1fb94f432ef5ba69dbc0cb45 Mon Sep 17 00:00:00 2001
> From: Petr Viktorin <pviktori at redhat.com>
> Date: Wed, 12 Nov 2014 16:53:33 +0100
> Subject: [PATCH v2 1/4] buildtools: Honor LDVERSION when looking for Python
> library
>
> diff --git a/lib/talloc/pytalloc.h b/lib/talloc/pytalloc.h
> index 5c3876ed156a58aa23ea15193c234a5edf46277d..608328e6aca36336b38a5ce6b6a742f1a02facfd 100644
> --- a/lib/talloc/pytalloc.h
> +++ b/lib/talloc/pytalloc.h
> @@ -52,6 +52,8 @@ PyObject *pytalloc_reference_ex(PyTypeObject *py_type, TALLOC_CTX *mem_ctx, void
>
> #define pytalloc_new(type, typeobj) pytalloc_steal(typeobj, talloc_zero(NULL, type))
>
> +#if PY_MAJOR_VERSION < 3
> PyObject *pytalloc_CObject_FromTallocPtr(void *);
> +#endif
^^ This function should be marked deprecated in the Python2 version; we'll have
to migrate all code that uses it away from it anyway. I don't think that (marking it
deprecated) needs to happen in this patchset though.
Other than that, changes LGTM.
Cheers,
Jelmer
More information about the samba-technical
mailing list