[Spice-devel] [PATCH spice-common v2] spice-deps: Set python version based on modules availability

Christophe Fergeau cfergeau at redhat.com
Tue Nov 29 10:15:33 UTC 2016


On Tue, Nov 29, 2016 at 11:06:04AM +0100, Pavel Grunt wrote:
> On Tue, 2016-11-29 at 10:34 +0100, Christophe Fergeau wrote:
> > On Tue, Nov 29, 2016 at 10:18:46AM +0100, Pavel Grunt wrote:
> > > On Tue, 2016-11-29 at 10:12 +0100, Christophe Fergeau wrote:
> > > > On Tue, Nov 29, 2016 at 10:09:43AM +0100, Pavel Grunt wrote:
> > > > > On Tue, 2016-11-29 at 09:52 +0100, Christophe Fergeau wrote:
> > > > > > On Mon, Nov 28, 2016 at 03:11:18PM +0100, Pavel Grunt wrote:
> > > > > > > Building spice or spice-gtk from git requires python
> > > > > > > modules
> > > > > > > pyparsing
> > > > > > > and six. Search for them in the both Python versions and
> > > > > > > set
> > > > > > > the Python version accordingly.
> > > > > > > ---
> > > > > > > v2: Keep user set (required) version of Python
> > > > > > > ---
> > > > > > >  m4/spice-deps.m4 | 20 +++++++++++++++++---
> > > > > > >  1 file changed, 17 insertions(+), 3 deletions(-)
> > > > > > > 
> > > > > > > diff --git a/m4/spice-deps.m4 b/m4/spice-deps.m4
> > > > > > > index 3b22422..3f9af43 100644
> > > > > > > --- a/m4/spice-deps.m4
> > > > > > > +++ b/m4/spice-deps.m4
> > > > > > > @@ -155,15 +155,29 @@ AC_DEFUN([SPICE_CHECK_GLIB2], [
> > > > > > >  # tarballs so they are disabled by default.
> > > > > > >  #---------------------------
> > > > > > >  AC_DEFUN([SPICE_CHECK_PYTHON_MODULES], [
> > > > > > > -    AM_PATH_PYTHON
> > > > > > >      AC_ARG_ENABLE([python-checks],
> > > > > > >          AS_HELP_STRING([--enable-python-
> > > > > > > checks=@<:@yes/no@:>@],
> > > > > > >                         [Enable checks for Python modules
> > > > > > > needed
> > > > > > > to build from git @<:@default=no@:>@]),
> > > > > > >                         [],
> > > > > > >                         [enable_python_checks="no"])
> > > > > > >      if test "x$enable_python_checks" != "xno"; then
> > > > > > > -        AX_PYTHON_MODULE([six], [1])
> > > > > > > -        AX_PYTHON_MODULE([pyparsing], [1])
> > > > > > > +        AS_IF([test -n "$PYTHON"], # already set required
> > > > > > > PYTHON
> > > > > > > version
> > > > > > > +              [AM_PATH_PYTHON
> > > > > > > +               AX_PYTHON_MODULE([six], [1])
> > > > > > > +               AX_PYTHON_MODULE([pyparsing], [1])],
> > > > > > > +              [PYTHON=python3
> > > > > > > +               AX_PYTHON_MODULE([six])
> > > > > > > +               AX_PYTHON_MODULE([pyparsing])
> > > > > > > +               test "$HAVE_PYMOD_SIX" = "yes" && test
> > > > > > > "$HAVE_PYMOD_PYPARSING" = "yes"],
> > > > > > 
> > > > > > Sorry, just noticed that you can do
> > > > > > AX_PYTHON_MODULE([six], [0], [python3]) (which is the
> > > > > > default)
> > > > > > or
> > > > > > AX_PYTHON_MODULE([six], [0], [python])
> > > > > 
> > > > > I think some distros (Arch Linux ?) ship python as python3,
> > > > > looking at
> > > > > AX_PYTHON_MODULE I would explicitly set python2 instead of
> > > > > python
> > > > 
> > > > The macro documentation is explicitly saying to use python3 for
> > > > python3,
> > > > and python for python2
> > > > https://www.gnu.org/software/autoconf-archive/ax_python_module.h
> > > > tml
> > > > I did not check what the macro does with that 3rd arg though.
> > > 
> > > I know, I looked
> > > http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_
> > > plai
> > > n;f=m4/ax_python_module.m4
> > > 
> > > It just assigns it to PYTHON variable
> > 
> > Hmm ok. Bit worried that we are doing too much magic with all that
> > autodetection stuff. We'll see how it goes ;)
> 
> And I realized why I had to do it with setting PYTHON variable
> consider:
> 
> 1. user sets PYTHON=mypython
> 2. AX_PYTHON_MODULE([six], [0], [python3]) will check for the six
> module in mypython instead of python3
> 3 check fails -> AX_PYTHON_MODULE([six], [0], [python2]) will check 
> for the six module in mypython instead of python2
> 
> In other words it is needed to unset PYTHON variable before the
> python2 check
> 
> So I think v2 is correct - since it first runs the "strict (failing)"
> AX_PYTHON_MODULE check in case the PYTHON variable was specified by
> the user - overriding/unsetting the variable is avoided

Ok, fine with me.

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20161129/e56ebec3/attachment.sig>


More information about the Spice-devel mailing list