[oe] [meta-qt5] Minimum required Yocto version for 5.9 branch?

Matt Hoosier matt.hoosier at gmail.com
Tue Aug 15 13:01:52 UTC 2017


This is addressed with pull request #62:

From: Matt Hoosier <matt.hoosier at garmin.com>
>
> Date: Mon, 14 Aug 2017 08:04:03 -0500
>
> Subject: [PATCH 1/2] qtbase: fix Krogoth build regression from efa8aaf
>
>
>> With
>
>
>>     commit efa8aaf82e580a7d32eaaab48eb92d436f2e222a
>
>     Author: Andreas Müller <schnitzeltony at googlemail.com>
>
>     Date:   Thu Feb  9 00:26:09 2017
>
>
>>     qmake5_base.bbclass: set qt.conf by environment variable again
>
>
>> we stopped pointing ${OE_QMAKE_QTCONF_PATH} at a valid file and
>
> instead directed it to a path which was intended not to exist.
>
>
>> The motivation was to permit qtbase/qtbase-native/nativesdk-qtbase
>
> to build again after Qt 5.8 started paying attention to the
>
> contents of this file.
>
>
>> The change as done in efa8aaf works well enough for Morty and
>
> subsequent releases' copies of Bitbake, but fails on earlier
>
> releases because they lack the following change:
>
>
>>     commit 2afcbfef2cd1ca568e5225884a8021df38ee3db0
>
>     Author: Ross Burton <ross.burton at intel.com>
>
>     Date: 2016-07-14 13:56:22
>
>
>>     bitbake: build: don't use $B as the default cwd for functions
>
>
>> The result is that when we build with Krogoth or prior, the body
>
> of do_generate_qt_config_file() runs with a cwd of ${B}, which was
>
> _not_ the intent of efa8aaf. Because the working directory is ${B},
>
> ${OE_QMAKE_QTCONF_PATH} is written in there too. do_configure() --
>
> whose cwd is by design also ${B} -- then finds the file 'foodummy',
>
> and the build breaks for the reasons outlined in efa8aaf.
>
>
>> This change simply shifts the implementation tactics to suppress
>
> the creation of ${OE_QMAKE_QTCONF_PATH} during qtbase rather than rely
>
> on unspecified behavior about the cwd of do_generate_qt_config_file().
>
>
>
This is a backport from the Qt fork of meta-qt5.

On Fri, Aug 11, 2017 at 5:16 PM, Matt Hoosier <matt.hoosier at gmail.com>
wrote:

> On Fri, Aug 11, 2017 at 3:11 PM, Matt Hoosier <matt.hoosier at gmail.com>
> wrote:
>
>> Hi,
>>
>> I observe that qtbase-native from jansa/master-5.9 fails on releases
>> versions of Yocto prior to 2.2 with a message like:
>>
>> | + /home/hoosier/projects/consumer/tools/yocto/build/tmp/work/
>>> x86_64-linux/qtbase-native/5.9.1+gitAUTOINC+160533328c-r0/build/bin/qmake
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/work/
>>> x86_64-linux/qtbase-native/5.9.1+gitAUTOINC+160533328c-r0/git --
>>> -opensource -confirm-license -sysroot /home/hoosier/projects/consume
>>> r/tools/yocto/build/tmp/sysroots/x86_64-linux -no-gcc-sysroot
>>> -system-zlib -no-libjpeg -no-libpng -no-gif -no-accessibility -no-cups
>>> -no-gui -no-qml-debug -no-sql-mysql -no-sql-sqlite -no-opengl -no-openssl
>>> -no-xcb -no-icu -verbose -release -prefix /home/hoosier/projects/consume
>>> r/tools/yocto/build/tmp/sysroots/x86_64-linux/usr -hostprefix
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/sysroots/x86_64-linux/usr
>>> -bindir /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/bin/qt5 -hostbindir
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/bin/qt5 -libdir /home/hoosier/projects/consume
>>> r/tools/yocto/build/tmp/sysroots/x86_64-linux/usr/lib -hostlibdir
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/sysroots/x86_64-linux/usr/lib
>>> -headerdir /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/include/qt5 -archdatadir
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/lib/qt5 -datadir
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/share/qt5 -hostdatadir
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/lib/qt5 -docdir /home/hoosier/projects/consume
>>> r/tools/yocto/build/tmp/sysroots/x86_64-linux/usr/share/doc/qt5
>>> -sysconfdir /home/hoosier/projects/consumer/tools/yocto/build/tmp/sysroots/x86_64-linux/etc/qt5
>>> -no-glib -no-iconv -silent -nomake examples -nomake tests -no-rpath
>>> -platform linux-oe-g++
>>> | Command line: -opensource -confirm-license -sysroot
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/sysroots/x86_64-linux
>>> -no-gcc-sysroot -system-zlib -no-libjpeg -no-libpng -no-gif
>>> -no-accessibility -no-cups -no-gui -no-qml-debug -no-sql-mysql
>>> -no-sql-sqlite -no-opengl -no-openssl -no-xcb -no-icu -verbose -release
>>> -prefix /home/hoosier/projects/consumer/tools/yocto/build/tmp/sysroots/x86_64-linux/usr
>>> -hostprefix /home/hoosier/projects/consumer/tools/yocto/build/tmp/sysroots/x86_64-linux/usr
>>> -bindir /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/bin/qt5 -hostbindir
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/bin/qt5 -libdir /home/hoosier/projects/consume
>>> r/tools/yocto/build/tmp/sysroots/x86_64-linux/usr/lib -hostlibdir
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/sysroots/x86_64-linux/usr/lib
>>> -headerdir /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/include/qt5 -archdatadir
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/lib/qt5 -datadir
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/share/qt5 -hostdatadir
>>> /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/lib/qt5 -docdir /home/hoosier/projects/consume
>>> r/tools/yocto/build/tmp/sysroots/x86_64-linux/usr/share/doc/qt5
>>> -sysconfdir /home/hoosier/projects/consumer/tools/yocto/build/tmp/sysroots/x86_64-linux/etc/qt5
>>> -no-glib -no-iconv -silent -nomake examples -nomake tests -no-rpath
>>> -platform linux-oe-g++
>>> | Cannot read /home/hoosier/projects/consumer/tools/yocto/build/tmp/
>>> sysroots/x86_64-linux/usr/lib/qt5/mkspecs/linux-oe-g++/qmake.conf: No
>>> such file or directory
>>
>>
>> Does anybody know what might be going on with this error?
>>
>>
>
> After a bit of digging, I find that the following commit in poky is the
> one that's required to let the 5.9 branch of meta-qt5 build correctly with
> Yocto <= 2.1:
>
> Author: Ross Burton <ross.burton at intel.com>  2016-07-14 13:56:22
>> Committer: Richard Purdie <richard.purdie at linuxfoundation.org>
>>  2016-07-19 02:56:50
>> Parent: faa726824dfb5bc0141919bb16c0d0069a3da69e (bitbake:
>> lib/bb/build.py: decode the command as UTF-8)
>> Branches: remotes/origin/morty, remotes/origin/pyro
>> Follows: 2.2_M1
>> Precedes: 2.2_M2
>>     bitbake: build: don't use $B as the default cwd for functions
>>
>>     When bitbake executes a shell or Python function it can cd/chdir()
>> into a
>>     directory before executing the task. If no directory is specified
>> then the
>>     default of $B is used.  However $B is an OpenEmbedded variable and
>> BitBake
>>     shouldn't be aware of it.
>>
>>     To solve this change the semantics slightly so that if no directory is
>>     specified, the current working directory isn't changed.  There's also
>> a sanity
>>     check that emits a warning if a Python task does os.chdir() without
>> restoring
>>     the old path, and the previous working directory is restored.
>>
>>     This does change semantics: whereas before a function in OE would
>> have $B as the
>>     working directory unless specified, now the working directory is the
>> top of the
>>     build tree.  Any breakage this causes can be solved by either adding
>>     do_some_task[dirs] = "${B}" or by using absolute paths in the task.
>
>



More information about the Openembedded-devel mailing list