From 54eca753082af7d4c44379f879945f449d4f56cf Mon Sep 17 00:00:00 2001 From: Bill Randle Date: Mon, 21 Mar 2016 11:24:48 -0700 Subject: [PATCH] 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 Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta-poky/classes/poky-sanity.bbclass | 42 ++++++++++++++++++++++++--- meta-poky/conf/bblayers.conf.sample | 2 +- meta-poky/conf/layer.conf | 2 +- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/meta-poky/classes/poky-sanity.bbclass b/meta-poky/classes/poky-sanity.bbclass index 287a9e37d6..81cd2eb6a6 100644 --- a/meta-poky/classes/poky-sanity.bbclass +++ b/meta-poky/classes/poky-sanity.bbclass @@ -3,10 +3,44 @@ python poky_update_bblayersconf() { 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) + 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 - raise NotImplementedError("You need to update bblayers.conf manually for this version transision") + success = True + + # 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 -BBLAYERS_CONF_UPDATE_FUNCS =+ "conf/bblayers.conf:POKY_BBLAYERS_CONF_VERSION:REQUIRED_POKY_BBLAYERS_CONF_VERSION:poky_update_bblayersconf" +# 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" diff --git a/meta-poky/conf/bblayers.conf.sample b/meta-poky/conf/bblayers.conf.sample index a371994437..8b1cbdfc5c 100644 --- a/meta-poky/conf/bblayers.conf.sample +++ b/meta-poky/conf/bblayers.conf.sample @@ -1,6 +1,6 @@ # POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf # changes incompatibly -POKY_BBLAYERS_CONF_VERSION = "1" +POKY_BBLAYERS_CONF_VERSION = "2" BBPATH = "${TOPDIR}" BBFILES ?= "" diff --git a/meta-poky/conf/layer.conf b/meta-poky/conf/layer.conf index b5ffd9e686..8b7b33d48c 100644 --- a/meta-poky/conf/layer.conf +++ b/meta-poky/conf/layer.conf @@ -15,4 +15,4 @@ LAYERVERSION_yocto = "3" LAYERDEPENDS_yocto = "core" -REQUIRED_POKY_BBLAYERS_CONF_VERSION = "1" +REQUIRED_POKY_BBLAYERS_CONF_VERSION = "2"