Parse layer.conf and add dependencies that are not required from LAYERRECOMMENDS_<name>. Update the layerindex/template to support recommends. Uses bitbake parsing code & checks versions.
Signed-off-by: Liam R. Howlett <liam.howl...@windriver.com> --- layerindex/models.py | 4 ++++ layerindex/tools/import_layer.py | 2 +- layerindex/update.py | 1 + layerindex/utils.py | 10 +++++++++- templates/layerindex/detail.html | 32 +++++++++++++++++++++----------- 5 files changed, 36 insertions(+), 13 deletions(-) diff --git a/layerindex/models.py b/layerindex/models.py index dcccb1f..7286462 100644 --- a/layerindex/models.py +++ b/layerindex/models.py @@ -214,6 +214,10 @@ class LayerBranch(models.Model): def get_required(self): return self.dependencies_set.filter(required=True) + def get_recommends(self): + return self.dependencies_set.filter(required=False) + + class LayerMaintainer(models.Model): MAINTAINER_STATUS_CHOICES = ( ('A', 'Active'), diff --git a/layerindex/tools/import_layer.py b/layerindex/tools/import_layer.py index 21dd802..33b7085 100755 --- a/layerindex/tools/import_layer.py +++ b/layerindex/tools/import_layer.py @@ -384,7 +384,7 @@ def main(): layerdep.dependency = core_layer layerdep.save() utils.add_dependencies(layerbranch, config_data, logger=logger) - + utils.add_recommends(layerbranch, config_data, logger=logger) # Get some extra meta-information readme_files = glob.glob(os.path.join(layerdir, 'README*')) diff --git a/layerindex/update.py b/layerindex/update.py index e15caf6..39af03c 100755 --- a/layerindex/update.py +++ b/layerindex/update.py @@ -216,6 +216,7 @@ def main(): config_data = layerconfparser.parse_layer(repodir) utils.add_dependencies(layerbranch, config_data, logger=logger) + utils.add_recommends(layerbranch, config_data, logger=logger) layerconfparser.shutdown() diff --git a/layerindex/utils.py b/layerindex/utils.py index 2b49d64..a5cd2f6 100644 --- a/layerindex/utils.py +++ b/layerindex/utils.py @@ -64,16 +64,23 @@ def get_dependency_layer(depname, version_str=None, logger=None): def add_dependencies(layerbranch, config_data, logger=None): _add_dependency("LAYERDEPENDS", 'dependency', layerbranch, config_data, logger) +def add_recommends(layerbranch, config_data, logger=None): + _add_dependency("LAYERRECOMMENDS", 'recommends', layerbranch, config_data, logger) + def _add_dependency(var, name, layerbranch, config_data, logger=None): from layerindex.models import LayerBranch, LayerDependency layer_name = layerbranch.layer.name var_name = layer_name + if layerbranch.collection: + var_name = layerbranch.collection + + dep_list = config_data.getVar("%s_%s" % (var, var_name), True) if not dep_list: - return + return try: dep_dict = bb.utils.explode_dep_versions2(dep_list) @@ -93,6 +100,7 @@ def _add_dependency(var, name, layerbranch, config_data, logger=None): logger.error('Error getting %s %s for %s\n%s' %(name, dep. layer_name, str(vse))) continue + # No layer found. if not dep_layer: if logger: logger.error('Cannot resolve %s %s (version %s) for %s' % (name, dep, ver_str, layer_name)) diff --git a/templates/layerindex/detail.html b/templates/layerindex/detail.html index f83b1f2..e3967c5 100644 --- a/templates/layerindex/detail.html +++ b/templates/layerindex/detail.html @@ -139,17 +139,27 @@ <div class="span4 pull-right description"> {% if layerbranch.dependencies_set.count > 0 %} - <div class="well dependency-well"> - <h3>Dependencies </h3> - <p>The {{ layeritem.name }} layer depends upon:</p> - <ul> - {% for dep in layerbranch.dependencies_set.all %} - <li><a href="{% url 'layer_item' url_branch dep.dependency.name %}">{{ dep.dependency.name }}</a></li> - {% endfor %} - </ul> - </div> <!-- end of well --> - {% endif %} - + <div class="well dependency-well"> + {% if layerbranch.get_required.count > 0 %} + <h3>Dependencies </h3> + <p>The {{ layeritem.name }} layer depends upon:</p> + <ul> + {% for dep in layerbranch.get_required %} + <li><a href="{% url 'layer_item' url_branch dep.dependency.name %}">{{ dep.dependency.name }}</a></li> + {% endfor %} + </ul> + {% endif %} <!-- end of layerbranch.get_required.count --> + {% if layerbranch.get_recommends.count > 0 %} + <h3>Recommends </h3> + <p>The {{ layeritem.name }} layer recommends:</p> + <ul> + {% for rec in layerbranch.get_recommends %} + <li><a href="{% url 'layer_item' url_branch rec.dependency.name %}">{{ rec.dependency.name }}</a></li> + {% endfor %} + </ul> + {% endif %} <!-- end of layerbranch.get_recommends.count --> + </div> <!-- end of well --> + {% endif %} <!-- end of layerbranch.dependencies_set.count --> </div> <!-- end of span4 --> </div> <!-- end of row-fluid --> </div> <!-- end of container-fluid --> -- 1.9.1 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto