[OE-core] [PATCH 5/8] perf: change dependencies on python to python3

Bruce Ashfield bruce.ashfield at gmail.com
Thu Aug 29 00:13:50 UTC 2019


On Wed, Aug 28, 2019 at 8:01 PM Mittal, Anuj <anuj.mittal at intel.com> wrote:
>
> This is causing failure for 5.0 kernels probably because the attr.py
> python -> python3 changes are not there ...
>
> ERROR: perf-1.0-r9 do_package_qa: QA Issue: /usr/libexec/perf-
> core/tests/attr.py contained in package perf-tests requires
> /usr/bin/python, but no providers found in RDEPENDS_perf-tests? [file-
> rdeps]
> ERROR: perf-1.0-r9 do_package_qa: QA run found fatal errors. Please
> consider fixing them.
> ERROR: Logfile of failure stored in: /home/pokybuild/yocto-
> worker/genericx86/build/build/tmp/work/genericx86-poky-linux/perf/1.0-
> r9/temp/log.do_package_qa.36284
> NOTE: recipe perf-1.0-r9: task do_package_qa: Failed
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/48/builds/975/steps/8/logs/step1b

unfortunately, I can only cover the active kernels in master with any
certainty, and I already have a patch to drop 5.0, so I didn't trigger
this.
I can spin a patch for 5.0 and make sure it is version proofed a ibt,
but if anyone else has issues with <insert version here>, they'll need
to send their own patch.

Bruce

>
> Thanks,
>
> Anuj
>
> On Wed, 2019-08-28 at 15:28 -0400, bruce.ashfield at gmail.com wrote:
> > From: Bruce Ashfield <bruce.ashfield at gmail.com>
> >
> > The upstream kernel can now handle python3 for the perf scripts,
> > coupled
> > with the impending EOL of python2, we switch the dependencies in perf
> > (scripting) to python3.
> >
> > Outside of dependency changes, we also pass the following two
> > variables
> > to the perf build: PYTHON=python3 PYTHON_CONFIG=python3-config. To
> > ensure that our python3 components are used.
> >
> > For configurations that disable perf scripting, there is no change in
> > behaviour.
> >
> > [YOCTO #13358]
> >
> > Signed-off-by: Bruce Ashfield <bruce.ashfield at gmail.com>
> > ---
> >  meta/recipes-kernel/perf/perf.bb | 16 +++++++++-------
> >  1 file changed, 9 insertions(+), 7 deletions(-)
> >
> > diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-
> > kernel/perf/perf.bb
> > index 4e603f1a32..8ac8e7c308 100644
> > --- a/meta/recipes-kernel/perf/perf.bb
> > +++ b/meta/recipes-kernel/perf/perf.bb
> > @@ -13,7 +13,7 @@ PR = "r9"
> >
> >  PACKAGECONFIG ??= "scripting tui libunwind"
> >  PACKAGECONFIG[dwarf] = ",NO_DWARF=1"
> > -PACKAGECONFIG[scripting] = ",NO_LIBPERL=1 NO_LIBPYTHON=1,perl
> > python"
> > +PACKAGECONFIG[scripting] = ",NO_LIBPERL=1 NO_LIBPYTHON=1,perl
> > python3"
> >  # gui support was added with kernel 3.6.35
> >  # since 3.10 libnewt was replaced by slang
> >  # to cover a wide range of kernel we add both dependencies
> > @@ -44,8 +44,8 @@ PROVIDES = "virtual/perf"
> >  inherit linux-kernel-base kernel-arch manpages
> >
> >  # needed for building the tools/perf Python bindings
> > -inherit ${@bb.utils.contains('PACKAGECONFIG', 'scripting',
> > 'pythonnative', '', d)}
> > -inherit python-dir
> > +inherit ${@bb.utils.contains('PACKAGECONFIG', 'scripting',
> > 'python3native', '', d)}
> > +inherit python3-dir
> >  export PYTHON_SITEPACKAGES_DIR
> >
> >  #kernel 3.1+ supports WERROR to disable warnings as errors
> > @@ -94,6 +94,7 @@ EXTRA_OEMAKE += "\
> >      'sharedir=${@os.path.relpath(datadir, prefix)}' \
> >      'mandir=${@os.path.relpath(mandir, prefix)}' \
> >      'infodir=${@os.path.relpath(infodir, prefix)}' \
> > +    ${@bb.utils.contains('PACKAGECONFIG', 'scripting',
> > 'PYTHON=python3 PYTHON_CONFIG=python3-config', '', d)} \
> >  "
> >
> >  # During do_configure, we might run a 'make clean'. That often
> > breaks
> > @@ -132,7 +133,7 @@ do_install() {
> >       oe_runmake install
> >       # we are checking for this make target to be compatible with
> > older perf versions
> >       if ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'true',
> > 'false', d)} && grep -q install-python_ext ${S}/tools/perf/Makefile*;
> > then
> > -             oe_runmake DESTDIR=${D} install-python_ext
> > +         oe_runmake DESTDIR=${D} install-python_ext
> >       fi
> >  }
> >
> > @@ -233,7 +234,8 @@ do_configure_prepend () {
> >
> >      # use /usr/bin/env instead of version specific python
> >      for s in `find ${S}/tools/perf/scripts/python/ -name '*.py'`; do
> > -        sed -i 's,/usr/bin/python2,/usr/bin/env python,' "${s}"
> > +        sed -i 's,/usr/bin/python2,/usr/bin/env python3,' "${s}"
> > +        sed -i 's,/usr/bin/env python2,/usr/bin/env python3,' "${s}"
> >      done
> >
> >      # unistd.h can be out of sync between libc-headers and the
> > captured version in the perf source
> > @@ -252,9 +254,9 @@ PACKAGES =+ "${PN}-archive ${PN}-tests ${PN}-perl
> > ${PN}-python"
> >
> >  RDEPENDS_${PN} += "elfutils bash"
> >  RDEPENDS_${PN}-archive =+ "bash"
> > -RDEPENDS_${PN}-python =+ "bash python python-modules
> > ${@bb.utils.contains('PACKAGECONFIG', 'audit', 'audit-python', '',
> > d)}"
> > +RDEPENDS_${PN}-python =+ "bash python3 python3-modules
> > ${@bb.utils.contains('PACKAGECONFIG', 'audit', 'audit-python3', '',
> > d)}"
> >  RDEPENDS_${PN}-perl =+ "bash perl perl-modules"
> > -RDEPENDS_${PN}-tests =+ "python"
> > +RDEPENDS_${PN}-tests =+ "python3"
> >
> >  RSUGGESTS_SCRIPTING = "${@bb.utils.contains('PACKAGECONFIG',
> > 'scripting', '${PN}-perl ${PN}-python', '',d)}"
> >  RSUGGESTS_${PN} += "${PN}-archive ${PN}-tests
> > ${RSUGGESTS_SCRIPTING}"
> > --
> > 2.19.1
> >



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


More information about the Openembedded-core mailing list