[libcamera-devel] [PATCH] meson: import python3 to use also from sysroot

Madhavan Krishnan madhavan.krishnan at linaro.org
Tue Jan 14 11:30:36 CET 2020


Hi Laurent,

The issue I was facing get fixed with the following changes mentioned by
you.

-#!/usr/bin/python3
+#!/usr/bin/env python3

Thanks, for the update and immediate response. And we will be using this
patch for our build system.

Best Regards
Madhavan K


---------- Forwarded message ---------
> From: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Date: Sun, 12 Jan 2020 at 01:37
> Subject: Re: [libcamera-devel] [PATCH] meson: import python3 to use also
> from sysroot
> To: Nicolas Dufresne <nicolas at ndufresne.ca>
> Cc: <madhavan.krishnan at linaro.org>, <libcamera-devel at lists.libcamera.org>
>
>
> Hi Nicolas,
>
> On Sat, Jan 11, 2020 at 08:44:17AM -0500, Nicolas Dufresne wrote:
> > Le ven. 10 janv. 2020 08 h 05, <madhavan.krishnan at linaro.org> a écrit :
> > > From: Madhavan Krishnan <madhavan.krishnan at linaro.org>
> > >
> > > importing python module can provide the exact path
> > > which can be used in desktop build as well as from
> > > any build system
> >
> > Are you certain this is the right solution ? There is absolutely no
> other meson
> > project using this hack to call python script. I notice the shebang isn't
> > pythonic (not using env), could be that. I just don't believe such hack
> is
> > required. It's definately not in meson style.
>
> That's a good point. Madhavan, would the following patch fix your
> problem ? Nicolas, any objection against the Suggested-by line below ?
>
> commit 169165b9b00849d30774f2f1cffbdf49b934a717
> Author: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Date:   Sat Jan 11 22:01:41 2020 +0200
>
>     libcamera: gen-controls.py: Don't hardcode path to python interpreter
>
>     The gen-controls.py script hardcodes the path to the python interpreter
>     to /usr/bin/python3 in the first line of the script. This hardcodes
>     usage of the host python3, even when building in cross-compilation
>     environments that may ship their own version of python. Fix it by
>     setting the interpreter to '/usr/bin/env python3'.
>
>     Reported-by: Madhavan Krishnan <madhavan.krishnan at linaro.org>
>     Suggested-by: Nicolas Dufresne <nicolas at ndufresne.ca>
>     Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>
> diff --git a/src/libcamera/gen-controls.py b/src/libcamera/gen-controls.py
> index 940386cc68c8..2e5ac5c81cca 100755
> --- a/src/libcamera/gen-controls.py
> +++ b/src/libcamera/gen-controls.py
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python3
> +#!/usr/bin/env python3
>  # SPDX-License-Identifier: GPL-2.0-or-later
>  # Copyright (C) 2019, Google Inc.
>  #
>
> > > ---
> > >  include/libcamera/meson.build | 4 +++-
> > >  src/libcamera/meson.build     | 4 +++-
> > >  2 files changed, 6 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/include/libcamera/meson.build
> b/include/libcamera/meson.build
> > > index 99abf06..83525e2 100644
> > > --- a/include/libcamera/meson.build
> > > +++ b/include/libcamera/meson.build
> > > @@ -21,13 +21,15 @@ include_dir = join_paths(libcamera_include_dir,
> > > 'libcamera')
> > >  install_headers(libcamera_api,
> > >                  subdir : include_dir)
> > >
> > > +python_mod = import('python3').find_python()
> > > +
> > >  gen_controls = files('../../src/libcamera/gen-controls.py')
> > >
> > >  control_ids_h = custom_target('control_ids_h',
> > >                                input : files('../../src/libcamera/
> > > control_ids.yaml', 'control_ids.h.in'),
> > >                                output : 'control_ids.h',
> > >                                depend_files : gen_controls,
> > > -                              command : [gen_controls, '-o', '@OUTPUT@
> ',
> > > '@INPUT@'],
> > > +                              command : [python_mod, gen_controls,
> '-o',
> > > '@OUTPUT@', '@INPUT@'],
> > >                                install : true,
> > >                                install_dir : join_paths('include',
> > > include_dir))
> > >
> > > diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
> > > index c4f965b..243935b 100644
> > > --- a/src/libcamera/meson.build
> > > +++ b/src/libcamera/meson.build
> > > @@ -65,13 +65,15 @@ if libudev.found()
> > >      ])
> > >  endif
> > >
> > > +python_mod = import('python3').find_python()
> > > +
> > >  gen_controls = files('gen-controls.py')
> > >
> > >  control_ids_cpp = custom_target('control_ids_cpp',
> > >                                  input : files('control_ids.yaml', '
> > > control_ids.cpp.in'),
> > >                                  output : 'control_ids.cpp',
> > >                                  depend_files : gen_controls,
> > > -                                command : [gen_controls, '-o',
> '@OUTPUT@',
> > > '@INPUT@'])
> > > +                                command : [python_mod, gen_controls,
> '-o',
> > > '@OUTPUT@', '@INPUT@'])
> > >
> > >  libcamera_sources += control_ids_cpp
> > >  libcamera_sources += control_ids_h
>
> --
> Regards,
>
> Laurent Pinchart
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20200114/41379bde/attachment.htm>


More information about the libcamera-devel mailing list