Skip to contentSkip to conversation

Split task-core to reduce build time v2

PATCH Applied Paul Eggleton 3 participants 4 messages Sep 14, 2011 – Sep 15, 2011

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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
index 6f1a462..1a1e110 100644
@@ -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
index 16db375..3133bf1 100644
@@ -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
new file mode 100644
index 0000000..cb22732
@@ -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
similarity index 79%
rename from meta/recipes-sato/tasks/task-core.bb
rename to meta/recipes-sato/tasks/task-core-x11.bb
index a595ad7..26d550a 100644
@@ -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
#2 lore raw

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.

<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 Centre
Applied
#3 lore raw
In reply to Paul Eggleton
Quoted 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_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

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!