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 _append to unconditionally appends a value (but add space before value).

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