This is addressed with pull request #62: From: Matt Hoosier <matt.hoos...@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 <schnitzelt...@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.bur...@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.hoos...@gmail.com> wrote: > On Fri, Aug 11, 2017 at 3:11 PM, Matt Hoosier <matt.hoos...@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.bur...@intel.com> 2016-07-14 13:56:22 >> Committer: Richard Purdie <richard.pur...@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. > > -- _______________________________________________ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel