[yocto] [layerindex-web][PATCH 09/10] layerindexer: Add layer recommends support
Liam R. Howlett
Liam.Howlett at windriver.com
Mon Sep 26 11:25:37 PDT 2016
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.Howlett at 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
More information about the yocto
mailing list