Split task-core to reduce build time v2
cover Split task-core to reduce build time v2
This patch makes a significant reduction in the build time for console-only images that use task-core-apps-console (from ~4000 down to ~2700 in my tests) by avoiding building X11 applications unnecessarily.
Since v1, add bug reference and update copyright notices.
The following changes since commit 8df322abfd3fa8c460fd73c83c1ef0b5e419dc11:
core-image-minimal: Add missing POKY_EXTRA_IMAGE variable (2011-09-14 01:27:08 +0100)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib paule/task-core-split
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/task-core-split
Paul Eggleton (1):
task-core: split into task-core-console and task-core-x11
.../conf/distro/include/distro_tracking_fields.inc | 10 +++++--
meta/conf/multilib.conf | 3 +-
meta/recipes-core/tasks/task-core-console.bb | 28 ++++++++++++++++++++
.../tasks/{task-core.bb => task-core-x11.bb} | 17 ++----------
4 files changed, 40 insertions(+), 18 deletions(-)
create mode 100644 meta/recipes-core/tasks/task-core-console.bb
rename meta/recipes-sato/tasks/{task-core.bb => task-core-x11.bb} (79%)Signature · 1 line
1.7.4.1
PATCH 1/1 task-core: split into task-core-console and task-core-x11
[YOCTO #1481]
Since tasks are referred to almost exclusively via RDEPENDS, and bitbake will build an entire task recipe when only one of its task packages are actually needed, building a console-only image that uses task-core-apps-console (or less directly, has apps-console in its IMAGE_FEATURES) will cause a build of a whole list of X11 applications that aren't needed. Splitting the task-core recipe into X11 and console portions prevents this issue.
---
.../conf/distro/include/distro_tracking_fields.inc | 10 +++++--
meta/conf/multilib.conf | 3 +-
meta/recipes-core/tasks/task-core-console.bb | 28 ++++++++++++++++++++
.../tasks/{task-core.bb => task-core-x11.bb} | 17 ++----------
4 files changed, 40 insertions(+), 18 deletions(-)
create mode 100644 meta/recipes-core/tasks/task-core-console.bb
rename meta/recipes-sato/tasks/{task-core.bb => task-core-x11.bb} (79%)meta/conf/distro/include/distro_tracking_fields.inc +7 -3
@@ -2459,9 +2459,13 @@ RECIPE_LATEST_VERSION_pn-core-image-sato-sdk = "1.0" RECIPE_MAINTAINER_pn-core-image-sato-sdk = "Dongxiao Xu <[email protected]>" DISTRO_PN_ALIAS_pn-core-image-sdk = "OE-Core" -RECIPE_STATUS_pn-task-core = "green" -RECIPE_LATEST_VERSION_pn-task-core = "1.0" -RECIPE_MAINTAINER_pn-task-core = "Dongxiao Xu <[email protected]>" +RECIPE_STATUS_pn-task-core-console = "green" +RECIPE_LATEST_VERSION_pn-task-core-console = "1.0" +RECIPE_MAINTAINER_pn-task-core-console = "Dongxiao Xu <[email protected]>" + +RECIPE_STATUS_pn-task-core-x11 = "green" +RECIPE_LATEST_VERSION_pn-task-core-x11 = "1.0" +RECIPE_MAINTAINER_pn-task-core-x11 = "Dongxiao Xu <[email protected]>" RECIPE_STATUS_pn-task-core-basic = "green" RECIPE_LATEST_VERSION_pn-task-core-basic = "1.0"
meta/conf/multilib.conf +2 -1
@@ -368,12 +368,13 @@ BBCLASSEXTEND_append_pn-task-base = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-task-core-apps-x11-pimlico = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-task-core-basic = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-task-core-boot = " ${MULTILIBS}" +BBCLASSEXTEND_append_pn-task-core-console = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-task-core-lsb = " ${MULTILIBS}" -BBCLASSEXTEND_append_pn-task-core = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-task-core-nfs = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-task-core-ssh-dropbear = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-task-core-ssh-openssh = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-task-core-tools = " ${MULTILIBS}" +BBCLASSEXTEND_append_pn-task-core-x11 = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-task-core-x11-sato = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-tasks = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-tcf-agent = " ${MULTILIBS}"
meta/recipes-core/tasks/task-core-console.bb new file +28 -0
@@ -0,0 +1,28 @@ +# +# Copyright (C) 2011 Intel Corporation +# + +DESCRIPTION = "Tasks for core console applications" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" +PR = "r35" + +PACKAGES = "\ + task-core-apps-console \ + task-core-apps-console-dbg \ + task-core-apps-console-dev \ + " + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +ALLOW_EMPTY = "1" + +SPLASH ?= "psplash" + +RDEPENDS_task-core-apps-console = "\ + avahi-daemon \ + dbus \ + portmap \ + ${SPLASH}" +
meta/recipes-sato/tasks/task-core-x11.bb renamed from meta/recipes-sato/tasks/task-core.bb +3 -14
@@ -1,17 +1,14 @@ # -# Copyright (C) 2007-2008 OpenedHand Ltd. +# Copyright (C) 2011 Intel Corporation # -DESCRIPTION = "Tasks for OpenedHand Poky" +DESCRIPTION = "Tasks for core X11 applications" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \ file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" -PR = "r34" +PR = "r35" PACKAGES = "\ - task-core-apps-console \ - task-core-apps-console-dbg \ - task-core-apps-console-dev \ task-core-apps-x11-core \ task-core-apps-x11-core-dbg \ task-core-apps-x11-core-dev \
@@ -29,18 +26,10 @@ XSERVER ?= "xserver-kdrive-fbdev" ALLOW_EMPTY = "1" -SPLASH ?= "psplash" - # pcmanfm doesn't work on mips/powerpc FILEMANAGER ?= "pcmanfm" FILEMANAGER_mips ?= "" -RDEPENDS_task-core-apps-console = "\ - avahi-daemon \ - dbus \ - portmap \ - ${SPLASH}" - RDEPENDS_task-core-x11-base = "\ dbus \
Signature · 1 line
1.7.4.1
Re: [PATCH 1/1] task-core: split into task-core-console and task-core-x11
Quoted 11 lines · Paul Eggleton
[YOCTO #1481]
Since tasks are referred to almost exclusively via RDEPENDS, and bitbake will build an entire task recipe when only one of its task packages are actually needed, building a console-only image that uses task-core-apps-console (or less directly, has apps-console in its
IMAGE_FEATURES) will cause a build of a whole list of X11 applications that aren't needed. Splitting the task-core recipe into X11 and console portions prevents this issue.Signed-off-by Paul Eggleton <[email protected]>
<snip>
meta/conf/distro/include/distro_tracking_fields.inc RECIPE_LATEST_VERSION_pn-core-image-sato-sdk = "1.0" · line 2468
Quoted 10 lines
meta/conf/distro/include/distro_tracking_fields.inc +7
-3-RECIPE_STATUS_pn-task-core = "green" -RECIPE_LATEST_VERSION_pn-task-core = "1.0" -RECIPE_MAINTAINER_pn-task-core = "Dongxiao Xu <[email protected]>" +RECIPE_STATUS_pn-task-core-console = "green" +RECIPE_LATEST_VERSION_pn-task-core-console = "1.0" +RECIPE_MAINTAINER_pn-task-core-console = "Dongxiao Xu <[email protected]>" + +RECIPE_STATUS_pn-task-core-x11 = "green" +RECIPE_LATEST_VERSION_pn-task-core-x11 = "1.0" +RECIPE_MAINTAINER_pn-task-core-x11 = "Dongxiao Xu <[email protected]>"
What ever happened to "you change it, you own it"? ;-)
Joshua
Signature · 3 lines
Joshua Lock
Yocto Project "Johannes factotum"
Intel Open Source Technology CentreSaul Wold
AppliedQuoted 17 lines · Paul Eggleton
This patch makes a significant reduction in the build time for console-only images that use task-core-apps-console (from ~4000 down to ~2700 in my tests) by avoiding building X11 applications unnecessarily.
Since v1, add bug reference and update copyright notices.
The following changes since commit
8df322abfd3fa8c460fd73c83c1ef0b5e419dc11:core-image-minimal: Add missing
POKY_EXTRA_IMAGEvariable (2011-09-14 01:27:08 +0100)are available in the git repository at:
git://git.openembedded.org/openembedded-core-contribpaule/task-core-split
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/task-core-splitPaul Eggleton (1):
task-core: split into task-core-console and task-core-x11
Quoted 8 lines
.../conf/distro/include/distro_tracking_fields.inc | 10 +++++--
meta/conf/multilib.conf | 3 +-
meta/recipes-core/tasks/task-core-console.bb | 28 ++++++++++++++++++++
.../tasks/{task-core.bb => task-core-x11.bb} | 17 ++----------
4 files changed, 40 insertions(+), 18 deletions(-)
create mode 100644 meta/recipes-core/tasks/task-core-console.bb
rename meta/recipes-sato/tasks/{task-core.bb => task-core-x11.bb} (79%)Merged into OE-Core, with a minor tweak afterwards.
Thanks
Sau!