poky-sanity.bbclass: update conf/templateconf.cfg for existing installations

Updates of existing installations for the meta-yocto to meta-poky transition will
update the bblayers.conf file, but not the templateconf.cfg file. This
patch updates the template file to point to meta-poky/conf, if necessary.

Fixes [YOCTO #9278]

(From meta-yocto rev: e560e9b157fd53cccbe73659b44777715660f0b2)

Signed-off-by: Bill Randle <william.c.randle@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Bill Randle 2016-03-21 11:24:48 -07:00 committed by Richard Purdie
parent 2b992f3e56
commit 54eca75308
3 changed files with 40 additions and 6 deletions

View File

@ -3,10 +3,44 @@
python poky_update_bblayersconf() { python poky_update_bblayersconf() {
current_version = int(d.getVar('POKY_BBLAYERS_CONF_VERSION', True) or -1) current_version = int(d.getVar('POKY_BBLAYERS_CONF_VERSION', True) or -1)
latest_version = int(d.getVar('REQUIRED_POKY_BBLAYERS_CONF_VERSION', True) or -1) latest_version = int(d.getVar('REQUIRED_POKY_BBLAYERS_CONF_VERSION', True) or -1)
if current_version == -1 or latest_version == -1:
# one or the other missing => malformed configuration
raise NotImplementedError("You need to update bblayers.conf manually for this version transition")
# No version transitions here yet success = True
raise NotImplementedError("You need to update bblayers.conf manually for this version transision")
# check for out of date templateconf.cfg file
lines = []
fn = os.path.join(d.getVar('TOPDIR', True), 'conf/templateconf.cfg')
lines = sanity_conf_read(fn)
index, meta_yocto_line = sanity_conf_find_line(r'^meta-yocto/', lines)
if meta_yocto_line:
lines[index] = meta_yocto_line.replace('meta-yocto', 'meta-poky')
with open(fn, "w") as f:
f.write(''.join(lines))
bb.note("Your conf/templateconf.cfg file was updated from meta-yocto to meta-poky")
# add any additional layer checks/changes here
if success:
current_version = latest_version
bblayers_fn = bblayers_conf_file(d)
lines = sanity_conf_read(bblayers_fn)
# sanity_conf_update() will erroneously find a match when the var name
# is used in a comment, so do our own here. The code below can be
# removed when sanity_conf_update() is fixed in OE-Core.
#sanity_conf_update(bblayers_fn, lines, 'POKY_BBLAYERS_CONF_VERSION', current_version)
index, line = sanity_conf_find_line(r'^POKY_BBLAYERS_CONF_VERSION', lines)
lines[index] = 'POKY_BBLAYERS_CONF_VERSION = "%d"\n' % current_version
with open(bblayers_fn, "w") as f:
f.write(''.join(lines))
bb.note("Your conf/bblayers.conf has been automatically updated.")
if success:
return
raise NotImplementedError("You need to update bblayers.conf manually for this version transition")
} }
# Prepend to ensure our function runs before the OE-Core one # ensure our function runs after the OE-Core one
BBLAYERS_CONF_UPDATE_FUNCS =+ "conf/bblayers.conf:POKY_BBLAYERS_CONF_VERSION:REQUIRED_POKY_BBLAYERS_CONF_VERSION:poky_update_bblayersconf" BBLAYERS_CONF_UPDATE_FUNCS += "conf/bblayers.conf:POKY_BBLAYERS_CONF_VERSION:REQUIRED_POKY_BBLAYERS_CONF_VERSION:poky_update_bblayersconf"

View File

@ -1,6 +1,6 @@
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf # POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly # changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "1" POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}" BBPATH = "${TOPDIR}"
BBFILES ?= "" BBFILES ?= ""

View File

@ -15,4 +15,4 @@ LAYERVERSION_yocto = "3"
LAYERDEPENDS_yocto = "core" LAYERDEPENDS_yocto = "core"
REQUIRED_POKY_BBLAYERS_CONF_VERSION = "1" REQUIRED_POKY_BBLAYERS_CONF_VERSION = "2"