[OE-core] [PATCH 1/1] classes/sanity: avoid bblayers version issue when switching between poky and other DISTRO values

Paul Eggleton paul.eggleton at linux.intel.com
Thu Feb 5 12:05:40 UTC 2015


If you create a build directory with poky, or set DISTRO to "poky" and
run bitbake, you'll get a bblayers.conf file with LCONF_VERSION set to
6. If you then set DISTRO to any other value where the new distro config
doesn't pull in poky's config, e.g. "nodistro", you would then get a
bblayers.conf version error which didn't immediately make sense. (The
layer versions have been out-of-step ever since meta-yocto-bsp was
split out of meta-yocto several years ago).

This is just painful and we'd rather users didn't have to deal with
it. Obviously it isn't an OE-Core problem per se, but a simple way to
resolve it for everyone is to bump OE-Core's version to 6 with an
automatic no-op upgrade. Also ensure that multiple upgrade functions
(such as the poky one) have a chance to execute by not breaking out of
the loop as we were before.

Fixes [YOCTO #6139].

Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
---
 meta/classes/sanity.bbclass | 7 ++++++-
 meta/conf/sanity.conf       | 2 +-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index 2f75558..31b99d4 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -70,6 +70,12 @@ python oecore_update_bblayers() {
         sanity_conf_update(bblayers_fn, lines, 'LCONF_VERSION', current_lconf)
         return
 
+    elif current_lconf == 5 and lconf_version > 5:
+        # Null update, to avoid issues with people switching between poky and other distros
+        current_lconf = 6
+        sanity_conf_update(bblayers_fn, lines, 'LCONF_VERSION', current_lconf)
+        return
+
     sys.exit()
 }
 
@@ -470,7 +476,6 @@ def sanity_check_conffiles(status, d):
             if success:
                 bb.note("Your conf/bblayers.conf has been automatically updated.")
                 status.reparse = True
-                break
         if not status.reparse:
             status.addresult("Your version of bblayers.conf has the wrong LCONF_VERSION (has %s, expecting %s).\nPlease compare the your file against bblayers.conf.sample and merge any changes before continuing.\n\"meld conf/bblayers.conf ${COREBASE}/meta*/conf/bblayers.conf.sample\" is a good way to visualise the changes.\n" % (current_lconf, lconf_version))
 
diff --git a/meta/conf/sanity.conf b/meta/conf/sanity.conf
index 1d55fa7..669b8ba 100644
--- a/meta/conf/sanity.conf
+++ b/meta/conf/sanity.conf
@@ -9,7 +9,7 @@ SANITY_ABIFILE = "${TMPDIR}/abi_version"
 
 SANITY_VERSION ?= "1"
 LOCALCONF_VERSION  ?= "1"
-LAYER_CONF_VERSION ?= "5"
+LAYER_CONF_VERSION ?= "6"
 SITE_CONF_VERSION  ?= "1"
 
 INHERIT += "sanity"
-- 
1.9.3




More information about the Openembedded-core mailing list