Re: [yocto] Removing busybox completely from the generated image
I have tried breaking apart packagegroup-core-boot, making a copy in my custom layer, removing the line referencing busybox: ## VIRTUAL-RUNTIME_login_manager ?= "busybox" But now bitbake complains with an error message: ERROR: Nothing RPROVIDES '${VIRTUAL-RUNTIME_login_manager}' It seems "VIRTUAL-RUNTIME_login_manager" needs to be defined with a valid option. I have tested with the option "tinylogin" but that options seems not implemented in "rocko" branch, because I'm getting this error: ERROR: Nothing RPROVIDES 'tinylogin' Is there some valid alternative available? Where are these alternatives defined? In general, is it posible to build yocto images without using busybox at all? 2018-02-16 16:56 GMT+01:00 Iván Castell : > Hello forum! > > I'm trying to build a yocto image without busybox and without any busybox > applet deployed. > > I have tried that configuring my distro.conf file in this way: > > DISTRO_FEATURES_remove = " busybox" > VIRTUAL-RUNTIME_base-utils = "" > PREFERRED_PROVIDER_virtual/base-utils = "" > > Nonetheless, busybox binary and two related applets (syslog and udhcpc) > are installed in the generated image: > > $ rpm -qa | grep busybox > busybox-syslog-1.24.1-r0.corei7_64 > busybox-1.24.1-r0.corei7_64 > busybox-udhcpc-1.24.1-r0.corei7_64 > > I have tried disabling syslog applet appending to my distro.conf file: > > VIRTUAL-RUNTIME_syslog ?= "" > > But syslogd applet is still installed: > > # ls -l /sbin/syslogd > lrwxrwxrwx 1 root root 19 Feb 15 14:03 /sbin/syslogd -> > /bin/busybox.nosuid > > Is there some way to remove busybox completely from the generated image? > > Thank you in advance! :-) > -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
Re: [yocto] Removing busybox completely from the generated image
On Mon, Feb 19, 2018 at 12:35 AM, Iván Castell wrote: > I have tried breaking apart packagegroup-core-boot, making a copy in my > custom layer, removing the line referencing busybox: > > ## VIRTUAL-RUNTIME_login_manager ?= "busybox" > > But now bitbake complains with an error message: > > ERROR: Nothing RPROVIDES '${VIRTUAL-RUNTIME_login_manager}' > > It seems "VIRTUAL-RUNTIME_login_manager" needs to be defined with a valid > option. I have tested with the option "tinylogin" but that options seems not > implemented in "rocko" branch, because I'm getting this error: > > ERROR: Nothing RPROVIDES 'tinylogin' > > Is there some valid alternative available? Where are these alternatives > defined? > tinylogin has been removed few releases ago. So it wont work out of box. > In general, is it posible to build yocto images without using busybox at > all? > > > 2018-02-16 16:56 GMT+01:00 Iván Castell : >> >> Hello forum! >> >> I'm trying to build a yocto image without busybox and without any busybox >> applet deployed. >> >> I have tried that configuring my distro.conf file in this way: >> >> DISTRO_FEATURES_remove = " busybox" >> VIRTUAL-RUNTIME_base-utils = "" >> PREFERRED_PROVIDER_virtual/base-utils = "" >> >> Nonetheless, busybox binary and two related applets (syslog and udhcpc) >> are installed in the generated image: >> >> $ rpm -qa | grep busybox >> busybox-syslog-1.24.1-r0.corei7_64 >> busybox-1.24.1-r0.corei7_64 >> busybox-udhcpc-1.24.1-r0.corei7_64 >> >> I have tried disabling syslog applet appending to my distro.conf file: >> >> VIRTUAL-RUNTIME_syslog ?= "" >> >> But syslogd applet is still installed: >> >> # ls -l /sbin/syslogd >> lrwxrwxrwx 1 root root 19 Feb 15 14:03 /sbin/syslogd -> >> /bin/busybox.nosuid >> >> Is there some way to remove busybox completely from the generated image? >> >> Thank you in advance! :-) > > > -- > ___ > yocto mailing list > yocto@yoctoproject.org > https://lists.yoctoproject.org/listinfo/yocto > -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
Re: [yocto] Removing busybox completely from the generated image
On 02/19/2018 10:35 AM, Iván Castell wrote: I have tried breaking apart packagegroup-core-boot, making a copy in my custom layer, removing the line referencing busybox: ## VIRTUAL-RUNTIME_login_manager ?= "busybox" But now bitbake complains with an error message: ERROR: Nothing RPROVIDES '${VIRTUAL-RUNTIME_login_manager}' You need to remove the reference to VIRTUAL-RUNTIME_login_manager from the list of packages to be installed, not the definition that points to busybox. If the resulting image breaks, you get to keep the pieces. I'm not sure what function busyybox performs here, but oe-core does not have an alternative now - you are welcome to provide one. Alex -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
Re: [yocto] Removing busybox completely from the generated image
Hi, On Mon, Feb 19, 2018 at 02:17:38AM -0800, Khem Raj wrote: > On Mon, Feb 19, 2018 at 12:35 AM, Iván Castell > wrote: > > I have tried breaking apart packagegroup-core-boot, making a copy in my > > custom layer, removing the line referencing busybox: > > > > ## VIRTUAL-RUNTIME_login_manager ?= "busybox" Have you considered "toybox" ? It probably wouldn't work right-away. Still, toybox was designed to provide a replacement for busybox. It is available in "meta-oe" http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-core/toybox/toybox_0.7.5.bb > > But now bitbake complains with an error message: > > Hope this helps, Maxin -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
Re: [yocto] Removing busybox completely from the generated image
2018-02-19 16:18 GMT+01:00 Maxin B. John : > Hi, > > On Mon, Feb 19, 2018 at 02:17:38AM -0800, Khem Raj wrote: > > On Mon, Feb 19, 2018 at 12:35 AM, Iván Castell > > wrote: > > > I have tried breaking apart packagegroup-core-boot, making a copy in my > > > custom layer, removing the line referencing busybox: > > > > > > ## VIRTUAL-RUNTIME_login_manager ?= "busybox" > > Have you considered "toybox" ? It probably wouldn't work right-away. Still, > toybox was designed to provide a replacement for busybox. It is available > in "meta-oe" > > http://cgit.openembedded.org/meta-openembedded/tree/meta- > oe/recipes-core/toybox/toybox_0.7.5.bb > > Thank you for the information, I will take into account that tool for future embedded projects. However, the focus of this issue was to remove completely busybox from the image, not replacing it by another application box. I have created a bbappend with a fragment of the busybox configuration disabling syslog and udhcpc applets. It works. However the busybox binary and a lot of applets are still there (adduser, unzip, fbset, traceroute, and more). Disabling all different applets and installing native tools instead could be the right way to procede. Not a nice solution, but at least it should work... -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
[yocto] [YOCTO] add a new partition during flash with mfgtools
Hello everybody, I don't find solution to add a new partition to my emmc directly during the flash. I don't know if I need to modify the u-boot-fslc recipe or if there is another solution. board : mx6qroj Thanks you all for your help, -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
Re: [yocto] [meta][PATCH] ptest.bbclass: fix path for multilib
That's reasonable, but how would you propose that work? An analogous fix for ptest-runner is to use ${libdir} instead of /usr/lib (leaving the bbclass intact), but that just flips the problem if you try to run lib32-libfoo-ptest using a 64-bit ptest-runner with default arguments (not specifying -d /usr/lib). Alternatively, I suppose ptest-runner could look in multiple directories by default (for example, ${libdir} and ${nonarch_libdir}, assuming they're different). Although, it almost feels like the run-ptest scripts should really be installed to ${libexecdir}. I'll be glad to workup a different patch, but I want to make sure I understand the desired design. On Fri, Feb 16, 2018 at 6:12 PM, Burton, Ross wrote: > On 16 February 2018 at 21:41, Kyle Russell wrote: > >> ptest-runner always looks at /usr/lib, so make this arch independent. >> > > I'd say the bug here is in ptest-runner. I'd expect to be able to install > libfoo-ptest and lib32-libfoo-ptest in parallel. > > Ross > -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
Re: [yocto] Removing busybox completely from the generated image
On Monday, 19 February 2018 11:21:20 PM NZDT Alexander Kanavin wrote: > On 02/19/2018 10:35 AM, Iván Castell wrote: > > I have tried breaking apart packagegroup-core-boot, making a copy in my > > custom layer, removing the line referencing busybox: > > > > ## VIRTUAL-RUNTIME_login_manager ?= "busybox" > > > > But now bitbake complains with an error message: > > > > ERROR: Nothing RPROVIDES '${VIRTUAL-RUNTIME_login_manager}' > > You need to remove the reference to VIRTUAL-RUNTIME_login_manager from > the list of packages to be installed, not the definition that points to > busybox. If the resulting image breaks, you get to keep the pieces. I'm > not sure what function busyybox performs here, but oe-core does not have > an alternative now - you are welcome to provide one. I think the more full-featured alternative would be the "login" implementation provided by shadow, so you would set: VIRTUAL-RUNTIME_login_manager = "shadow" Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
[yocto] [layerindex-web][PATCH 1/6] update.py: fix Ctrl+C behaviour
If the user hit Ctrl+C during the initial info gathering then it didn't break out of the loop in update.py, so you had to hit Ctrl+C for as many layers as were involved in the update. Look for exit code 254 from update_layer.py and stop if it is returned since that indicates Ctrl+C has been used. Additionally, ensure we return exit code 254 and print a message from the main update script when it is interrupted in this way. Signed-off-by: Paul Eggleton --- layerindex/update.py | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/layerindex/update.py b/layerindex/update.py index 5c83b00..f60b943 100755 --- a/layerindex/update.py +++ b/layerindex/update.py @@ -337,7 +337,11 @@ def main(): logger.debug('Running layer update command: %s' % cmd) ret, output = run_command_interruptible(cmd) logger.debug('output: %s' % output) -if ret != 0: +if ret == 254: +# Interrupted by user, break out of loop +logger.info('Update interrupted, exiting') +sys.exit(254) +elif ret != 0: continue col = re.search("^BBFILE_COLLECTIONS = \"(.*)\"", output, re.M).group(1) or '' ver = re.search("^LAYERVERSION = \"(.*)\"", output, re.M).group(1) or '' @@ -418,10 +422,14 @@ def main(): if ret == 254: # Interrupted by user, break out of loop -break +logger.info('Update interrupted, exiting') +sys.exit(254) finally: utils.unlock_file(lockfile) +except KeyboardInterrupt: +logger.info('Update interrupted, exiting') +sys.exit(254) finally: update.log = ''.join(listhandler.read()) update.finished = datetime.now() -- 2.14.3 -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
[yocto] [layerindex-web][PATCH 2/6] Add statistics page
Add a page with basic statistics for the index - number of layers, recipes, classes, machines and distros on an overall basis (distinct names) and per branch, since I've been asked a few times for this kind of information. It's currently only linked from the Tools menu for logged-in users, but the URL will work for anyone. Signed-off-by: Paul Eggleton --- layerindex/urls.py | 6 - layerindex/views.py | 17 templates/base.html | 1 + templates/layerindex/stats.html | 60 + 4 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 templates/layerindex/stats.html diff --git a/layerindex/urls.py b/layerindex/urls.py index 7deaf23..d2f9eab 100644 --- a/layerindex/urls.py +++ b/layerindex/urls.py @@ -8,7 +8,7 @@ from django.conf.urls import * from django.views.generic import TemplateView, DetailView, ListView, RedirectView from django.views.defaults import page_not_found from django.core.urlresolvers import reverse_lazy -from layerindex.views import LayerListView, LayerReviewListView, LayerReviewDetailView, RecipeSearchView, MachineSearchView, PlainTextListView, LayerDetailView, edit_layer_view, delete_layer_view, edit_layernote_view, delete_layernote_view, HistoryListView, EditProfileFormView, AdvancedRecipeSearchView, BulkChangeView, BulkChangeSearchView, bulk_change_edit_view, bulk_change_patch_view, BulkChangeDeleteView, RecipeDetailView, RedirectParamsView, ClassicRecipeSearchView, ClassicRecipeDetailView, ClassicRecipeStatsView, LayerUpdateDetailView, UpdateListView, UpdateDetailView +from layerindex.views import LayerListView, LayerReviewListView, LayerReviewDetailView, RecipeSearchView, MachineSearchView, PlainTextListView, LayerDetailView, edit_layer_view, delete_layer_view, edit_layernote_view, delete_layernote_view, HistoryListView, EditProfileFormView, AdvancedRecipeSearchView, BulkChangeView, BulkChangeSearchView, bulk_change_edit_view, bulk_change_patch_view, BulkChangeDeleteView, RecipeDetailView, RedirectParamsView, ClassicRecipeSearchView, ClassicRecipeDetailView, ClassicRecipeStatsView, LayerUpdateDetailView, UpdateListView, UpdateDetailView, StatsView from layerindex.models import LayerItem, Recipe, RecipeChangeset from rest_framework import routers from . import restviews @@ -127,6 +127,10 @@ urlpatterns = patterns('', TemplateView.as_view( template_name='layerindex/about.html'), name="about"), +url(r'^stats/$', +StatsView.as_view( +template_name='layerindex/stats.html'), +name='stats'), url(r'^oe-classic/$', RedirectView.as_view(url=reverse_lazy('classic_recipe_search'), permanent=False), name='classic'), diff --git a/layerindex/views.py b/layerindex/views.py index 4f6c2c9..95812ca 100644 --- a/layerindex/views.py +++ b/layerindex/views.py @@ -1007,3 +1007,20 @@ class ClassicRecipeStatsView(TemplateView): 'jquery_on_ready': False, } return context + + +class StatsView(TemplateView): +def get_context_data(self, **kwargs): +context = super(StatsView, self).get_context_data(**kwargs) +context['layercount'] = LayerItem.objects.count() +context['recipe_count_distinct'] = Recipe.objects.values('pn').distinct().count() +context['class_count_distinct'] = BBClass.objects.values('name').distinct().count() +context['machine_count_distinct'] = Machine.objects.values('name').distinct().count() +context['distro_count_distinct'] = Distro.objects.values('name').distinct().count() +context['perbranch'] = Branch.objects.order_by('sort_priority').annotate( +layer_count=Count('layerbranch', distinct=True), +recipe_count=Count('layerbranch__recipe', distinct=True), +class_count=Count('layerbranch__bbclass', distinct=True), +machine_count=Count('layerbranch__machine', distinct=True), +distro_count=Count('layerbranch__distro', distinct=True)) +return context diff --git a/templates/base.html b/templates/base.html index 8a3b8fe..a9d7c83 100644 --- a/templates/base.html +++ b/templates/base.html @@ -73,6 +73,7 @@ Bulk Change Duplicates Updates +Statistics {% endif %} diff --git a/templates/layerindex/stats.html b/templates/layerindex/stats.html new file mode 100644 index 000..3c4971b --- /dev/null +++ b/templates/layerindex/stats.html @@ -0,0 +1,60 @@ +{% extends "base.html" %} +{% load i18n %} +{% load static %} + +{% comment %} + + layerindex-web - statistics page template + + Copyright (C) 2018 Intel Corporation + Licensed under the MIT license, see COPYING.MIT for details + +{% endcomment %} + + + + +{% block conten
[yocto] [layerindex-web][PATCH 3/6] Show layer description with newlines in layer detail
A lot of people enter line breaks in their layer descriptions hoping that these will show up in the layer description, but of course since they are being displayed as part of an HTML document, they don't by default. Use a style in the description paragraph to ensure that they do. Signed-off-by: Paul Eggleton --- templates/layerindex/detail.html | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/templates/layerindex/detail.html b/templates/layerindex/detail.html index 0747421..3081ef3 100644 --- a/templates/layerindex/detail.html +++ b/templates/layerindex/detail.html @@ -76,9 +76,7 @@ - - {{ layeritem.description }} - +{{ layeritem.description }} {% if layeritem.usage_url %} -- 2.14.3 -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
[yocto] [layerindex-web][PATCH 4/6] requirements.txt: add missing dependencies
These are dependencies of items already listed in requirements.txt, so nothing new. Signed-off-by: Paul Eggleton --- requirements.txt | 5 + 1 file changed, 5 insertions(+) diff --git a/requirements.txt b/requirements.txt index 7cd741b..af6ab5a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,6 @@ +amqp==1.4.9 +anyjson==0.3.3 +billiard==3.3.0.23 celery==3.1.25 Django==1.8.17 django-cors-headers==1.1.0 @@ -10,11 +13,13 @@ djangorestframework==3.2.5 gitdb==0.6.4 GitPython==2.0.5 Jinja2==2.8 +kombu==3.0.37 MarkupSafe==0.23 mysqlclient==1.3.7 Pillow==3.3.0 python-nvd3==0.14.2 python-slugify==1.1.4 +pytz==2018.3 six==1.10.0 smmap==0.9.0 Unidecode==0.4.19 -- 2.14.3 -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
[yocto] [layerindex-web][PATCH 5/6] requirements.txt: update some dependency versions
Use latest tested versions (though we pin djangorestframework at 3.6.4 since that is the last version that supports Django 1.8), and add new resulting dependencies. Signed-off-by: Paul Eggleton --- requirements.txt | 34 +++--- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/requirements.txt b/requirements.txt index af6ab5a..58100a9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,25 +1,29 @@ -amqp==1.4.9 +amqp==2.2.2 anyjson==0.3.3 -billiard==3.3.0.23 -celery==3.1.25 -Django==1.8.17 +billiard==3.5.0.3 +celery==4.1.0 +confusable-homoglyphs==2.0.2 +Django==1.8.18 django-cors-headers==1.1.0 django-nvd3==0.9.7 -django-registration==2.1 +django-ranged-response==0.2.0 +django-registration==2.4.1 django-reversion==1.9.3 django-reversion-compare==0.5.6 -django-simple-captcha==0.4.6 -djangorestframework==3.2.5 +django-simple-captcha==0.5.6 +djangorestframework==3.6.4 gitdb==0.6.4 -GitPython==2.0.5 -Jinja2==2.8 -kombu==3.0.37 -MarkupSafe==0.23 -mysqlclient==1.3.7 -Pillow==3.3.0 +GitPython==2.1.8 +Jinja2==2.10 +kombu==4.1.0 +MarkupSafe==1.0 +mysqlclient==1.3.12 +Pillow==5.0.0 python-nvd3==0.14.2 -python-slugify==1.1.4 +python-slugify==1.2.4 pytz==2018.3 -six==1.10.0 +six==1.11.0 smmap==0.9.0 +smmap2==2.0.3 Unidecode==0.4.19 +vine==1.1.4 -- 2.14.3 -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
[yocto] [layerindex-web][PATCH 6/6] README: update dependency versions
Update the minor version of Django, and replace the list of dependencies with a pointer to requirements.txt since there's not much point maintaining that in two places (and the README wasn't complete anyway). Signed-off-by: Paul Eggleton --- README | 13 - 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/README b/README index c7f7409..970c267 100644 --- a/README +++ b/README @@ -12,7 +12,7 @@ Setup In order to make use of this application you will need: * Python 3.4+ -* Django 1.8.x - tested with 1.8.17; newer versions may work, but +* Django 1.8.x - tested with 1.8.18; newer versions may work, but the application has not been tested with 1.9 or newer. * RabbitMQ 3.6.x - tested with 3.6.10. * For production usage, a web server set up to host Django applications @@ -20,14 +20,9 @@ In order to make use of this application you will need: * A database supported by Django (SQLite, MySQL, etc.). Django takes care of creating the database itself, you just need to ensure that the database server (if not using SQLite) is configured and running. -* The following third-party Django modules (tested versions listed): - * django-registration (2.1) - * django-reversion (1.9.3) - * django-reversion-compare (0.5.6) - * django-simple-captcha (0.4.6) - * django-nvd3 (0.14.2) - * djangorestframework (3.2.5) - * django-cors-headers (1.1.0) +* Third-party Django/python modules as detailed by requirements.txt. + If you're using pip, you can install these by running: +pip install -r requirements.txt * On the machine that will run the backend update script (which does not have to be the same machine as the web server, however it does still have to have Django installed, have the same or similar configuration -- 2.14.3 -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
[yocto] Small documentation issue
Hello, Just to point to the documentation issue on YOCTO Projects wiki page: https://wiki.yoctoproject.org/wiki/FAQ:How_do_I_set_or_change_the_root_password This line: inherit extrausers Should be changed as: INHERIT += "extrausers" To be inline with bitbake syntax. It is somehow confusing. Thank you, Zoran -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto