[yocto] [Recipe reporting system] Upgradable recipe name list

2018-05-20 Thread recipe-report
This mail was sent out by Recipe reporting system.

This message list those recipes which need to be upgraded. If maintainers
believe some of them needn't to upgrade at this time, they can fill
RECIPE_NO_UPDATE_REASON in respective recipe file to ignore this remainder
until newer upstream version was detected.

Example:
RECIPE_NO_UPDATE_REASON = "Version 2.0 is unstable"

You can check the detail information at:

http://recipes.yoctoproject.org/

Package   Version  Upstream version  Maintainer 
   NoUpgradeReason
  ---    
  --
usbutils  009  010   Alexander Kanavin
hwlatdetect   1.1  1.3   Alexander Kanavin
rt-tests  1.1  1.3   Alexander Kanavin
ca-certificates   20170717 20180409  Alexander Kanavin
webkitgtk 2.20.1   2.20.2Alexander Kanavin
gnome-desktop33.28.1   3.28.2Alexander Kanavin
meson 0.46.0   0.46.1Alexander Kanavin
babeltrace1.5.52.0.0 Alexander Kanavin
dtc   1.4.51.4.6 Alexander Kanavin
procps3.3.14   3.3.15Alexander Kanavin
psmisc23.0 23.1  Alexander Kanavin
btrfs-tools   4.15.1   4.16.1Alexander Kanavin
sysprof   3.26.1   3.28.1Alexander Kanavin  
   Waiting for resolution of h...
libidn1.34 1.35  Alexander Kanavin
apt   1.2.24   1.6.1 Aníbal Limón
apt-native1.2.24   1.6.1 Aníbal Limón
dpkg  1.18.24  1.19.0.5  Aníbal Limón
gstreamer1.0-plug...  1.14.0   1.14.1Anuj Mittal
gstreamer1.0-plug...  1.14.0   1.14.1Anuj Mittal
gst-validate  1.14.0   1.14.1Anuj Mittal
gstreamer1.0-rtsp...  1.14.0   1.14.1Anuj Mittal
gstreamer1.0-libav1.14.0   1.14.1Anuj Mittal
gstreamer1.0  1.14.0   1.14.1Anuj Mittal
gstreamer1.0-vaapi1.14.0   1.14.1Anuj Mittal
gstreamer1.0-python   1.14.0   1.14.1Anuj Mittal
gst-examples  0.0.1+gitX   0.0.1-new-commits...  Anuj Mittal
gstreamer1.0-omx  1.14.0   1.14.1Anuj Mittal
gstreamer1.0-plug...  1.14.0   1.14.1Anuj Mittal
gstreamer1.0-plug...  1.14.0   1.14.1Anuj Mittal
openssh   7.6p17.7p1 Armin Kuster
xf86-video-vmware 13.2.1   13.3.0Armin Kuster
curl  7.59.0   7.60.0Armin Kuster
busybox   1.27.2   1.28.3Armin Kuster
libdmx1.1.31.1.4 Armin Kuster
nss   3.35 3.36.1Armin Kuster
xserver-xorg  1.19.6   1.20.0Armin Kuster
kexec-tools   2.0.16   2.0.17Armin Kuster
bind  9.10.6   9.12.1-P2 Armin Kuster
xf86-input-libinput   0.26.0   0.27.1Armin Kuster
linux-libc-headers4.15.7   4.16.10   Bruce Ashfield
kern-tools-native 0.2+gitX 0.2-new-commits-a...  Bruce Ashfield
linux-yocto   4.15.13+gitX 4.15.18   Bruce Ashfield
linux-yocto-rt4.15.13+gitX 4.15.18   Bruce Ashfield
linux-yocto-tiny  4.15.13+gitX 4.15.18   Bruce Ashfield
kmscube   git  git-new-commits-a...  Carlos Rafael Giani
connman   1.35 1.36  Changhyeok Bae
iproute2  4.15.0   4.16.0Changhyeok Bae
ethtool   4.15 4.16  Changhyeok Bae
base-passwd   3.5.29   3.5.45Chang Rebecca 
Swe...  Version 3.5.38 requires cde...
sysvinit  2.88dsf  2.89  Chang Rebecca 
Swe...
systemd-boot  237  238   Chen Qi
cups  2.2.62.2.7 Chen Qi
dbus-glib 0.1080.110 Chen Qi
systemd   237  238   Chen Qi
dbus-test 1.12.2   1.12.8Chen Qi
sed   4.2.24.5   Chen Qi
flex  2.6.02.6.4

[yocto] [layerindex-web][PATCH 6/6] update_classic_status: fix matching on wrong layer

2018-05-20 Thread Paul Eggleton
We were sorting the layers in the wrong order when trying to choose
which layer to pick a matching recipe from - it needs to be descending
priority order, not ascending.

Signed-off-by: Paul Eggleton 
---
 layerindex/tools/update_classic_status.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/layerindex/tools/update_classic_status.py 
b/layerindex/tools/update_classic_status.py
index f980e64a..be7807d2 100755
--- a/layerindex/tools/update_classic_status.py
+++ b/layerindex/tools/update_classic_status.py
@@ -68,7 +68,7 @@ def main():
 try:
 with transaction.atomic():
 def recipe_pn_query(pn):
-return 
Recipe.objects.filter(layerbranch__branch__name='master').filter(pn=pn).order_by('layerbranch__layer__index_preference')
+return 
Recipe.objects.filter(layerbranch__branch__name='master').filter(pn=pn).order_by('-layerbranch__layer__index_preference')
 
 recipequery = 
ClassicRecipe.objects.filter(layerbranch=layerbranch).filter(cover_status__in=['U',
 'N'])
 for recipe in recipequery:
-- 
2.14.3

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [layerindex-web][PATCH 5/6] Add a script to import layers from an existing layer index

2018-05-20 Thread Paul Eggleton
Add a script that uses the REST API to gather information from another
running layer index instance (e.g. layers.openembedded.org) and import
that into the local index. Only information for branches that are
already set up is imported, and only manually entered information -
no recipes, machines, etc.

Partially implements [YOCTO #9760].

Signed-off-by: Paul Eggleton 
---
 layerindex/tools/import_layers.py | 251 ++
 1 file changed, 251 insertions(+)
 create mode 100755 layerindex/tools/import_layers.py

diff --git a/layerindex/tools/import_layers.py 
b/layerindex/tools/import_layers.py
new file mode 100755
index ..b02759ea
--- /dev/null
+++ b/layerindex/tools/import_layers.py
@@ -0,0 +1,251 @@
+#!/usr/bin/env python3
+
+# Import layers from another layer index instance
+#
+# Copyright (C) 2018 Intel Corporation
+# Author: Paul Eggleton 
+#
+# Licensed under the MIT license, see COPYING.MIT for details
+
+
+import sys
+import os
+import optparse
+import re
+import glob
+import logging
+import subprocess
+import urllib.request
+import json
+
+sys.path.insert(0, os.path.realpath(os.path.join(os.path.dirname(__file__), 
'..')))
+
+import utils
+from layerconfparse import LayerConfParse
+
+class DryRunRollbackException(Exception):
+pass
+
+logger = utils.logger_create('LayerIndexImport')
+
+
+
+def main():
+valid_layer_name = re.compile('[-\w]+$')
+
+parser = optparse.OptionParser(
+usage = """
+%prog [options] """)
+
+parser.add_option("-n", "--dry-run",
+help = "Don't write any data back to the database",
+action="store_true", dest="dryrun")
+parser.add_option("-d", "--debug",
+help = "Enable debug output",
+action="store_const", const=logging.DEBUG, dest="loglevel", 
default=logging.INFO)
+parser.add_option("-q", "--quiet",
+help = "Hide all output except error messages",
+action="store_const", const=logging.ERROR, dest="loglevel")
+
+options, args = parser.parse_args(sys.argv)
+
+if len(args) < 2:
+print("Please specify URL of the layer index")
+sys.exit(1)
+
+layerindex_url = args[1]
+
+utils.setup_django()
+import settings
+from layerindex.models import Branch, LayerItem, LayerBranch, 
LayerDependency, LayerMaintainer, LayerNote
+from django.db import transaction
+
+logger.setLevel(options.loglevel)
+
+fetchdir = settings.LAYER_FETCH_DIR
+if not fetchdir:
+logger.error("Please set LAYER_FETCH_DIR in settings.py")
+sys.exit(1)
+
+if not os.path.exists(fetchdir):
+os.makedirs(fetchdir)
+
+if not layerindex_url.endswith('/'):
+layerindex_url += '/'
+if not '/layerindex/api/' in layerindex_url:
+layerindex_url += '/layerindex/api/'
+
+rq = urllib.request.Request(layerindex_url)
+data = urllib.request.urlopen(rq).read()
+jsdata = json.loads(data.decode('utf-8'))
+
+branches_url = jsdata['branches']
+layers_url = jsdata['layerItems']
+layerdeps_url = jsdata['layerDependencies']
+layerbranches_url = jsdata['layerBranches']
+layermaintainers_url = jsdata.get('layerMaintainers', None)
+layernotes_url = jsdata.get('layerNotes', None)
+
+logger.debug('Getting branches')
+
+# Get branches (we assume the ones we want are already there, so skip any 
that aren't)
+rq = urllib.request.Request(branches_url)
+data = urllib.request.urlopen(rq).read()
+jsdata = json.loads(data.decode('utf-8'))
+branch_idmap = {}
+for branchjs in jsdata:
+res = Branch.objects.filter(name=branchjs['name'])
+if res:
+branch = res.first()
+branch_idmap[branchjs['id']] = branch
+
+try:
+with transaction.atomic():
+# Get layers
+logger.debug('Importing layers')
+rq = urllib.request.Request(layers_url)
+data = urllib.request.urlopen(rq).read()
+jsdata = json.loads(data.decode('utf-8'))
+
+layer_idmap = {}
+exclude_fields = ['id', 'updated']
+for layerjs in jsdata:
+res = LayerItem.objects.filter(name=layerjs['name'])
+if res:
+# Already have this layer
+logger.debug('Skipping layer %s, already in database' % 
layerjs['name'])
+layer_idmap[layerjs['id']] = res[0]
+continue
+logger.debug('Adding layer %s' % layerjs['name'])
+layeritem = LayerItem()
+for key, value in layerjs.items():
+if key in exclude_fields:
+continue
+setattr(layeritem, key, value)
+layeritem.save()
+layer_idmap[layerjs['id']] = layeritem
+
+# Get layer branches
+

[yocto] [layerindex-web][PATCH 4/6] Add site-wide notice support

2018-05-20 Thread Paul Eggleton
Add the ability to show a notice at the top of every page; this provides
the ability for admins to display a message to visitors in the case of
infrastructure or index data issues. Notices can have an expiry date and
can be disabled and re-enabled if needed. A subset of HTML can be used
for formatting the text, URLs will be made into clickable links, and
four "levels" are supported (info, success, warning and error).

Signed-off-by: Paul Eggleton 
---
 layerindex/admin.py  |  1 +
 layerindex/context_processors.py |  7 +--
 layerindex/migrations/0014_sitenotice.py | 24 
 layerindex/models.py | 25 -
 layerindex/utils.py  | 14 ++
 requirements.txt |  1 +
 templates/base.html  |  5 +
 7 files changed, 74 insertions(+), 3 deletions(-)
 create mode 100644 layerindex/migrations/0014_sitenotice.py

diff --git a/layerindex/admin.py b/layerindex/admin.py
index 3cb59691..312f7a30 100644
--- a/layerindex/admin.py
+++ b/layerindex/admin.py
@@ -198,3 +198,4 @@ admin.site.register(Patch)
 admin.site.register(RecipeChangeset, RecipeChangesetAdmin)
 admin.site.register(ClassicRecipe, ClassicRecipeAdmin)
 admin.site.register(PythonEnvironment)
+admin.site.register(SiteNotice)
diff --git a/layerindex/context_processors.py b/layerindex/context_processors.py
index db8e3fa3..7cf20ede 100644
--- a/layerindex/context_processors.py
+++ b/layerindex/context_processors.py
@@ -1,11 +1,13 @@
 # layerindex-web - custom context processor
 #
-# Copyright (C) 2013 Intel Corporation
+# Copyright (C) 2013, 2018 Intel Corporation
 #
 # Licensed under the MIT license, see COPYING.MIT for details
 
-from layerindex.models import Branch, LayerItem
+from layerindex.models import Branch, LayerItem, SiteNotice
 from django.contrib.sites.models import Site
+from django.db.models import Q
+from datetime import datetime
 
 def layerindex_context(request):
 import settings
@@ -20,4 +22,5 @@ def layerindex_context(request):
 'oe_classic': Branch.objects.filter(name='oe-classic'),
 'site_name': site_name,
 'rrs_enabled': 'rrs' in settings.INSTALLED_APPS,
+'notices': 
SiteNotice.objects.filter(disabled=False).filter(Q(expires__isnull=True) | 
Q(expires__gte=datetime.now())),
 }
diff --git a/layerindex/migrations/0014_sitenotice.py 
b/layerindex/migrations/0014_sitenotice.py
new file mode 100644
index ..630700cf
--- /dev/null
+++ b/layerindex/migrations/0014_sitenotice.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+dependencies = [
+('layerindex', '0013_patch'),
+]
+
+operations = [
+migrations.CreateModel(
+name='SiteNotice',
+fields=[
+('id', models.AutoField(auto_created=True, serialize=False, 
verbose_name='ID', primary_key=True)),
+('text', models.TextField(help_text='Text to show in the 
notice. A limited subset of HTML is supported for formatting.')),
+('level', models.CharField(choices=[('I', 'Info'), ('S', 
'Success'), ('W', 'Warning'), ('E', 'Error')], help_text='Level of notice to 
display', default='I', max_length=1)),
+('disabled', models.BooleanField(verbose_name='Disabled', 
help_text='Use to temporarily disable this notice', default=False)),
+('expires', models.DateTimeField(blank=True, 
help_text='Optional date/time when this notice will stop showing', null=True)),
+],
+),
+]
diff --git a/layerindex/models.py b/layerindex/models.py
index ff164baa..891f5dfb 100644
--- a/layerindex/models.py
+++ b/layerindex/models.py
@@ -1,6 +1,6 @@
 # layerindex-web - model definitions
 #
-# Copyright (C) 2013-2016 Intel Corporation
+# Copyright (C) 2013-2018 Intel Corporation
 #
 # Licensed under the MIT license, see COPYING.MIT for details
 
@@ -658,3 +658,26 @@ class RecipeChange(models.Model):
 def reset_fields(self):
 for fieldname in self.RECIPE_VARIABLE_MAP:
 setattr(self, fieldname, getattr(self.recipe, fieldname))
+
+class SiteNotice(models.Model):
+NOTICE_LEVEL_CHOICES = [
+('I', 'Info'),
+('S', 'Success'),
+('W', 'Warning'),
+('E', 'Error'),
+]
+text = models.TextField(help_text='Text to show in the notice. A limited 
subset of HTML is supported for formatting.')
+level = models.CharField(max_length=1, choices=NOTICE_LEVEL_CHOICES, 
default='I', help_text='Level of notice to display')
+disabled = models.BooleanField('Disabled', default=False, help_text='Use 
to temporarily disable this notice')
+expires = models.DateTimeField(blank=True, null=True, help_text='Optional 
date/time when this notice will stop showing')
+
+def 

[yocto] [layerindex-web][PATCH 3/6] update_layer: avoid errors on modified & renamed files

2018-05-20 Thread Paul Eggleton
If a file is modified and renamed it will show up in both
iter_change_type('M') and iter_change_type('R'), however naturally the
file that will exist will be the b path and not the a one, so we should
be looking at the b path or we will get errors.

FYI you can reproduce this with OE-Core (in a scratch database) using
the following procedure:
1) (in the OE-Core layer directory):
   git checkout 59285b324f6d9ed270b0bef209ef5da22a620a83
2) update.py -l openembedded-core -b master -x --nofetch -r --fullreload
3) (in the OE-Core layer directory):
   git checkout 086308aa2a5e332de6f00ed397c4a55d132f158f
4) update.py -l openembedded-core -b master -x --nofetch

Without this change you'll see the following error:

ERROR: Unable to read 
/opt/layerindex/layers/git___git_openembedded_org_openembedded-core/meta/recipes-devtools/python-numpy/python-numpy_1.13.1.bb:
 Traceback (most recent call last):
  File "/opt/layerindex/layers/bitbake/lib/bb/command.py", line 84, in 
runCommand
result = command_method(self, commandline)
  File "/opt/layerindex/layers/bitbake/lib/bb/command.py", line 568, in 
parseRecipeFile
envdata = bb.cache.parse_recipe(config_data, fn, appendfiles)['']
  File "/opt/layerindex/layers/bitbake/lib/bb/cache.py", line 315, in 
parse_recipe
bb_data = bb.parse.handle(bbfile, bb_data)
  File "/opt/layerindex/layers/bitbake/lib/bb/parse/__init__.py", line 117, in 
handle
return h['handle'](fn, data, include)
  File "/opt/layerindex/layers/bitbake/lib/bb/parse/parse_py/BBHandler.py", 
line 132, in handle
abs_fn = resolve_file(fn, d)
  File "/opt/layerindex/layers/bitbake/lib/bb/parse/__init__.py", line 141, in 
resolve_file
raise IOError(errno.ENOENT, "file %s not found" % fn)
FileNotFoundError: [Errno 2] file 
/opt/layerindex/layers/git___git_openembedded_org_openembedded-core/meta/recipes-devtools/python-numpy/python-numpy_1.13.1.bb
 not found

Signed-off-by: Paul Eggleton 
---
 TODO   | 1 -
 layerindex/update_layer.py | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/TODO b/TODO
index 96d4feb8..7d522f84 100644
--- a/TODO
+++ b/TODO
@@ -10,7 +10,6 @@ TODO:
 
 Bugs
 * Duplication of first maintainer when editing to add a second?
-* GitPython sometimes reports renamed files as type M but we don't handle that 
properly e.g. OE-Core 59285b324f6d9ed270b0bef209ef5da22a620a83 
086308aa2a5e332de6f00ed397c4a55d132f158f
 
 Other
 * Full-text search on layer contents
diff --git a/layerindex/update_layer.py b/layerindex/update_layer.py
index 018d7bcd..272fe51a 100644
--- a/layerindex/update_layer.py
+++ b/layerindex/update_layer.py
@@ -636,7 +636,7 @@ def main():
 bbclass.save()
 
 for diffitem in diff.iter_change_type('M'):
-path = diffitem.a_blob.path
+path = diffitem.b_blob.path
 if path.startswith(subdir_start):
 skip = False
 for removedir in removedirs:
-- 
2.14.3

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [layerindex-web][PATCH 2/6] update_layer: drop debug message for deleting recipe file dependencies

2018-05-20 Thread Paul Eggleton
This was too noisy and not particularly useful.

Signed-off-by: Paul Eggleton 
---
 layerindex/update_layer.py | 1 -
 1 file changed, 1 deletion(-)

diff --git a/layerindex/update_layer.py b/layerindex/update_layer.py
index bbfaba9a..018d7bcd 100644
--- a/layerindex/update_layer.py
+++ b/layerindex/update_layer.py
@@ -228,7 +228,6 @@ def update_recipe_file(tinfoil, data, path, recipe, 
layerdir_start, repodir, ski
 recipedep.save()
 
 for filedep in recipedeps_delete:
-logger.debug('%s: removing %s' % (recipe.layerbranch, filedep))
 recipedeps.filter(path=filedep).delete()
 
 except KeyboardInterrupt:
-- 
2.14.3

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [layerindex-web][PATCH 1/6] settings: allow disabling layer publishing emails

2018-05-20 Thread Paul Eggleton
If you're running a testing / internal instance then you really don't
want to be emailing maintainers on publish, so provide a setting you can
use to disable that.

Signed-off-by: Paul Eggleton 
---
 layerindex/views.py | 66 +++--
 settings.py |  3 +++
 2 files changed, 37 insertions(+), 32 deletions(-)

diff --git a/layerindex/views.py b/layerindex/views.py
index a905c347..d02e4f91 100644
--- a/layerindex/views.py
+++ b/layerindex/views.py
@@ -259,38 +259,40 @@ def _check_url_branch(kwargs):
 def publish_view(request, name):
 if not (request.user.is_authenticated() and 
request.user.has_perm('layerindex.publish_layer')):
 raise PermissionDenied
-layeritem = get_object_or_404(LayerItem, name=name)
-layerbranch = get_object_or_404(LayerBranch, layer=layeritem)
-layer_url = request.build_absolute_uri(reverse('layer_item', 
args=(layerbranch.branch, layeritem.name)))
-maintainers = get_list_or_404(LayerMaintainer, layerbranch=layerbranch)
-from_email = settings.SUBMIT_EMAIL_FROM
-subjecttext = get_template('layerindex/publishemailsubject.txt')
-bodytext = get_template('layerindex/publishemail.txt')
-maintainer_names = [m.name for m in maintainers]
-# find appropriate help contact
-help_contact = None
-for user in User.objects.all():
-if user.username != 'root' and (user.is_staff or user.is_superuser) 
and user.is_active:
-help_contact = user
-break
-
-# create subject from subject template
-d = {
-'layer_name': layeritem.name,
-'site_name': request.META['HTTP_HOST'],
-}
-subject = subjecttext.render(d).rstrip()
-
-#create body from body template
-d = {
-'maintainers': maintainer_names,
-'layer_name': layeritem.name,
-'layer_url': layer_url,
-'help_contact': help_contact,
-}
-body = bodytext.render(d)
-
-tasks.send_email.apply_async((subject, body, from_email, [m.email for m in 
maintainers]))
+
+if getattr(settings, 'SEND_PUBLISH_EMAIL', True):
+layeritem = get_object_or_404(LayerItem, name=name)
+layerbranch = get_object_or_404(LayerBranch, layer=layeritem)
+layer_url = request.build_absolute_uri(reverse('layer_item', 
args=(layerbranch.branch, layeritem.name)))
+maintainers = get_list_or_404(LayerMaintainer, layerbranch=layerbranch)
+from_email = settings.SUBMIT_EMAIL_FROM
+subjecttext = get_template('layerindex/publishemailsubject.txt')
+bodytext = get_template('layerindex/publishemail.txt')
+maintainer_names = [m.name for m in maintainers]
+# find appropriate help contact
+help_contact = None
+for user in User.objects.all():
+if user.username != 'root' and (user.is_staff or 
user.is_superuser) and user.is_active:
+help_contact = user
+break
+
+# create subject from subject template
+d = {
+'layer_name': layeritem.name,
+'site_name': request.META['HTTP_HOST'],
+}
+subject = subjecttext.render(d).rstrip()
+
+#create body from body template
+d = {
+'maintainers': maintainer_names,
+'layer_name': layeritem.name,
+'layer_url': layer_url,
+'help_contact': help_contact,
+}
+body = bodytext.render(d)
+
+tasks.send_email.apply_async((subject, body, from_email, [m.email for 
m in maintainers]))
 
 return _statuschange(request, name, 'P')
 
diff --git a/settings.py b/settings.py
index c3075a5e..3d70aaa5 100644
--- a/settings.py
+++ b/settings.py
@@ -227,6 +227,9 @@ FORCE_REVIEW_HTTPS = False
 SUBMIT_EMAIL_FROM = 'nore...@example.com'
 SUBMIT_EMAIL_SUBJECT = 'OE Layerindex layer submission'
 
+# Send email to maintainer(s) when their layer is published
+SEND_PUBLISH_EMAIL = True
+
 # RabbitMQ settings
 RABBIT_BROKER = 'amqp://'
 RABBIT_BACKEND = 'rpc://'
-- 
2.14.3

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [layerindex-web][PATCH 0/6] Layer index improvements

2018-05-20 Thread Paul Eggleton
Fixes for some minor issues, plus add a few small features.


The following changes since commit 09f629b997da1e52b1cb93d36566e04908e0517c:

  Add CSV export for layer recipes (2018-05-07 15:30:04 +1200)

are available in the Git repository at:

  git://git.yoctoproject.org/layerindex-web paule/fixes2
  http://git.yoctoproject.org/cgit.cgi//log/?h=paule/fixes2

Paul Eggleton (6):
  settings: allow disabling layer publishing emails
  update_layer: drop debug message for deleting recipe file dependencies
  update_layer: avoid errors on modified & renamed files
  Add site-wide notice support
  Add a script to import layers from an existing layer index
  update_classic_status: fix matching on wrong layer

 TODO  |   1 -
 layerindex/admin.py   |   1 +
 layerindex/context_processors.py  |   7 +-
 layerindex/migrations/0014_sitenotice.py  |  24 +++
 layerindex/models.py  |  25 ++-
 layerindex/tools/import_layers.py | 251 ++
 layerindex/tools/update_classic_status.py |   2 +-
 layerindex/update_layer.py|   3 +-
 layerindex/utils.py   |  14 ++
 layerindex/views.py   |  66 
 requirements.txt  |   1 +
 settings.py   |   3 +
 templates/base.html   |   5 +
 13 files changed, 364 insertions(+), 39 deletions(-)
 create mode 100644 layerindex/migrations/0014_sitenotice.py
 create mode 100755 layerindex/tools/import_layers.py

-- 
2.14.3

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] Krogoth dpkg_arch=armhf: how?

2018-05-20 Thread Mauro Ziliani

Hi all.

My image works with debian package management.

The image is produced with armel architecture, while sdk with armhf and 
other packages is armhf.


How can I set the correct debian architecture?

I try DPKG_ARCH:="armhf" but seems it doesn't take effect


MZ

--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto