meta data for this page
Operators
=late evaluation (expand variable when used):=immediately expand+=append (with space)=+prepend (with space).=append (without space)=.prepend (without space)?=assign if no other value was assigned??=assign if no other value was assigned (lower priority than mentioned above)
Rethink usage of += and similar in local.conf. Example:
- If
+=is parsed before?=, the latter will be omitted. - Solution: use
_appendto unconditionally appends a value (but add space before value).
Override operators
:append =“ foo”- append literally so space is needed:prepend = “foo ”- prepend literally so space is needed:remove = “bar foo”- no need to use space. List of string. Each string is treated as separate element to remove.
The overrides are applied in this order, :append, :prepend, :remove. This implies it is not possible to re-append previously removed strings
SRC_URI_append
When multiple .bbappends adds patches, order of patching is wrong.
poky/meta/classes/patch.bbclass
def src_patches(d, all=False, expand=True): import oe.patch return oe.patch.src_patches(d, all, expand)
poky/meta/lib/oe/patch.py
def src_patches(d, all=False, expand=True): fetch = bb.fetch2.Fetch([], d) patches = [] sources = [] for url in fetch.urls: local = patch_path(url, fetch, workdir, expand) if not local: if all: local = fetch.localpath(url) sources.append(local) continue ... localurl = bb.fetch.encodeurl(('file', '', local, '', '', patchparm)) patches.append(localurl) if all: return sources return patches