<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 15, 2015 at 7:43 AM, Ed Bartosh <span dir="ltr"><<a href="mailto:ed.bartosh@linux.intel.com" target="_blank">ed.bartosh@linux.intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":1kl" class="a3s" style="overflow:hidden">Enabled processing of environment variables in bblayers paths using<br>
<span class="il">bitbake</span> apporved_variables API.<br>
<br>
Enabled processing of ~ if HOME environment variable is approved.<br>
<br>
Signed-off-by: Ed Bartosh <<a href="mailto:ed.bartosh@linux.intel.com">ed.bartosh@linux.intel.com</a>><br>
---<br>
<span class="il">bitbake</span>/lib/<span class="il">bb</span>/cookerdata.py | 6 ++++++<br>
1 file changed, 6 insertions(+)<br>
<br>
diff --git a/<span class="il">bitbake</span>/lib/<span class="il">bb</span>/cookerdata.py b/<span class="il">bitbake</span>/lib/<span class="il">bb</span>/cookerdata.py<br>
index 6c11a60..05b3986 100644<br>
--- a/<span class="il">bitbake</span>/lib/<span class="il">bb</span>/cookerdata.py<br>
+++ b/<span class="il">bitbake</span>/lib/<span class="il">bb</span>/cookerdata.py<br>
@@ -25,6 +25,7 @@<br>
import os, sys<br>
from functools import wraps<br>
import logging<br>
+import string<br>
import <span class="il">bb</span><br>
from <span class="il">bb</span> import data<br>
import <span class="il">bb</span>.parse<br>
@@ -269,8 +270,13 @@ <span class="il">class</span> CookerDataBuilder(object):<br>
layers = (data.getVar('BBLAYERS', True) or "").split()<br>
<br>
data = <span class="il">bb</span>.data.createCopy(data)<br>
+ approved = dict((var, data.getVar(var, True)) \<br>
+ for var in <span class="il">bb</span>.utils.approved_variables())<br>
for layer in layers:<br>
parselog.debug(2, "Adding layer %s", layer)<br>
+ layer = string.Template(layer).safe_substitute(approved)<br>
+ if 'HOME' in approved:<br>
+ layer = os.path.expanduser(layer)<br>
data.setVar('LAYERDIR', layer)<br>
data = parse_config_file(os.path.join(layer, "<span class="il">conf</span>", "layer.<span class="il">conf</span>"), data)<br>
data.expandVarref('LAYERDIR')</div></blockquote></div><br>Why the use of string.Template here? We already have a variable expansion mechanism.<br>-- <br><div class="gmail_signature">Christopher Larson<br>clarson at kergoth dot com<br>Founder - BitBake, OpenEmbedded, OpenZaurus<br>Maintainer - Tslib<br>Senior Software Engineer, Mentor Graphics</div>
</div></div>