Go to file
Richard Purdie d53958766e bitbake: tinfoil: Simplify remote datastore connections
The current approach to remote datastores used in tinfoil is breaking. For
example, adding a devupstream extension to a recipe with a git upstream,
making it the preferred version and then running "devtool modify" on it
causes get_srcrev() circular dependency issues. The problem is the override
handling in the datastore is broken.

This gets broken since remotedata:recieve_datastore() sets d.dict but doesn't
update d.overridedata (or d.inchistory or d.varhistory). We could play
whack-a-mole but the current implementation seems to be flawed to me. It
also doesn't cover, or only partially covers some datastore operations and
each needs new dedicated command API.

Instead, step back and reimplement the way the datastore connector works.

With this change, the datastore is either remote or local but the data is not
spread on two sides of the connection. All the API is proxied over the connection
by a single function for the datastore (and two to support variable history
and include history).

This code does not support using the datastore as a parameter to any data store
functions. We did have one case of that but its just bad code and can be
replaced.

The result is something which is much simpler and less invasive to the datastore
code itself, meaning its behaviour should be much more consistent. The existing
tests for the remote data no longer make any sense and are removed.

The one bug this code would have is if key/value pairs are returned over the IPC
and those values contained a DataSmart object since we don't recurse into return
values to find such things. Nothing appears to do that currently so lets worry
about it if its ever an issue. This change should simplfy a ton of other issues
and avoid a ton of other bugs so is a huge net gain.

Tested with bitbake's and OE's selftests.

(Bitbake rev: 85e03a64dd0a4ebe71009ec4bdf4192c04a9786e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-24 22:01:03 +00:00
bitbake bitbake: tinfoil: Simplify remote datastore connections 2020-03-24 22:01:03 +00:00
contrib/artwork oe.svg: Copy artwork from openembedded-classic. 2019-10-08 11:22:24 +01:00
documentation documentation: add rpcgen tool to required packages 2020-03-21 22:31:00 +00:00
meta archiver.py: fix typo of "ARCHIVER_MIRROR_EXCLUDE" in comment 2020-03-24 16:39:40 +00:00
meta-poky layer.conf: Update to new dunfell release name 2020-03-15 22:24:43 +00:00
meta-selftest layer.conf: Update to LAYERSERIES_CORENAME to dunfell 2020-03-15 22:23:19 +00:00
meta-skeleton layer.conf: Update to LAYERSERIES_CORENAME to dunfell 2020-03-15 22:23:19 +00:00
meta-yocto-bsp layer.conf: Update to new dunfell release name 2020-03-15 22:24:43 +00:00
scripts buildstats*.sh: fix spacing indentation in the files 2020-03-24 16:39:40 +00:00
.gitignore gitignore: Ignore repo tool directory 2018-10-29 17:26:47 +00:00
.templateconf meta-yocto: Rename to meta-poky to better match its purpose 2016-02-28 11:31:17 +00:00
LICENSE meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
LICENSE.GPL-2.0-only meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
LICENSE.MIT meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
MEMORIAM MEMORIAM: Add recognition for contributors no longer with us 2020-01-30 15:22:35 +00:00
oe-init-build-env meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
README.hardware meta-yocto: Restructure and tidy up READMEs 2017-09-14 13:36:22 +01:00
README.OE-Core README: Rename to README.OE-Core so its clear where its from/belongs/is about 2019-03-06 23:09:10 +00:00
README.poky meta-yocto: Restructure and tidy up READMEs 2017-09-14 13:36:22 +01:00
README.qemu README.qemu: qemuppc64 is not supported 2017-10-16 23:54:31 +01:00

QEMU Emulation Targets
======================

To simplify development, the build system supports building images to
work with the QEMU emulator in system emulation mode. Several architectures
are currently supported in 32 and 64 bit variants:

  * ARM (qemuarm + qemuarm64)
  * x86 (qemux86 + qemux86-64)
  * PowerPC (qemuppc only)
  * MIPS (qemumips + qemumips64)

Use of the QEMU images is covered in the Yocto Project Reference Manual.
The appropriate MACHINE variable value corresponding to the target is given
in brackets.