]> code.ossystems Code Review - openembedded-core.git/commitdiff
lib/oe/recipeutils: fix replace_dir_vars to return the correct variables
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Tue, 14 Jul 2015 21:56:00 +0000 (22:56 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 16 Jul 2015 14:08:46 +0000 (15:08 +0100)
If we sort by length of name here we get the variables we are interested
in first. I've tested this with all of the variables we care about (the
ones at the top of bitbake.conf) and it returns the right results.

This fixes the failures we've been seeing in the oe-selftest
test_recipetool_appendfile_* tests.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/lib/oe/recipeutils.py

index bd812ccbd1e9e609167ee1b45392c3c7b98a6b96..78d69267ac7bab8359f78f1c6730e4a3a141c137 100644 (file)
@@ -617,7 +617,8 @@ def find_layerdir(fn):
 def replace_dir_vars(path, d):
     """Replace common directory paths with appropriate variable references (e.g. /etc becomes ${sysconfdir})"""
     dirvars = {}
-    for var in d:
+    # Sort by length so we get the variables we're interested in first
+    for var in sorted(d.keys(), key=len):
         if var.endswith('dir') and var.lower() == var:
             value = d.getVar(var, True)
             if value.startswith('/') and not '\n' in value and value not in dirvars: