From: Mark Hatle <mark.hatle@windriver.com>
To: <openembedded-core@lists.openembedded.org>
Subject: [PATCH 6/6] image.bbclass: Add support to build the SDK in parallel with the image
Date: Sat, 30 Jun 2012 00:07:45 -0500 [thread overview]
Message-ID: <28adf5fdb58c3409ec2dcc1a8dfffaaf2a8eab2b.1341032578.git.mark.hatle@windriver.com> (raw)
In-Reply-To: <cover.1341032578.git.mark.hatle@windriver.com>
When building an image recipe, you can now build a companion SDK by
calling the populate_sdk task:
bitbake -c populate_sdk core-image-minimal
Note: there are still issues w/ the SDK not working completely with
multilibs.
A lock is required between rootfs and populate_sdk activities to prevent
configuration file clashes and similar package management problems in ipk
and deb based systems. (RPM already had a lock for a different reason.)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
meta/classes/image.bbclass | 5 +++++
meta/classes/populate_sdk_base.bbclass | 1 +
meta/classes/populate_sdk_deb.bbclass | 2 ++
meta/classes/populate_sdk_ipk.bbclass | 2 ++
meta/classes/rootfs_deb.bbclass | 2 ++
meta/classes/rootfs_ipk.bbclass | 2 ++
6 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 4f50376..7e41982 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -3,6 +3,11 @@ inherit rootfs_${IMAGE_PKGTYPE}
IMAGETEST ?= "dummy"
inherit imagetest-${IMAGETEST}
+inherit populate_sdk_base
+
+TOOLCHAIN_TARGET_TASK += "${PACKAGE_INSTALL}"
+TOOLCHAIN_TARGET_TASK_ATTEMPTONLY += "${PACKAGE_INSTALL_ATTEMPTONLY} ${PACKAGE_GROUP_dev-pkgs} ${PACKAGE_GROUP_dbg-pkgs}"
+
inherit gzipnative
LICENSE = "MIT"
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
index 6dc66fb..ed2dca0 100644
--- a/meta/classes/populate_sdk_base.bbclass
+++ b/meta/classes/populate_sdk_base.bbclass
@@ -120,6 +120,7 @@ populate_sdk_log_check() {
done
}
+do_populate_sdk[dirs] = "${TOPDIR}"
do_populate_sdk[nostamp] = "1"
do_populate_sdk[depends] = "${@' '.join([x + ':do_populate_sysroot' for x in d.getVar('SDK_DEPENDS', True).split()])}"
do_populate_sdk[rdepends] = "${@' '.join([x + ':do_populate_sysroot' for x in d.getVar('SDK_RDEPENDS', True).split()])}"
diff --git a/meta/classes/populate_sdk_deb.bbclass b/meta/classes/populate_sdk_deb.bbclass
index c3b3e0c..9e9e1e1 100644
--- a/meta/classes/populate_sdk_deb.bbclass
+++ b/meta/classes/populate_sdk_deb.bbclass
@@ -6,6 +6,8 @@ DEB_SDK_ARCH = "${@[d.getVar('SDK_ARCH', True), "i386"]\
[d.getVar('SDK_ARCH', True) in \
["x86", "i486", "i586", "i686", "pentium"]]}"
+do_populate_sdk[lockfiles] += "${WORKDIR}/deb.lock"
+
populate_sdk_post_deb () {
local target_rootfs=$1
diff --git a/meta/classes/populate_sdk_ipk.bbclass b/meta/classes/populate_sdk_ipk.bbclass
index aa3efde..4321afb 100644
--- a/meta/classes/populate_sdk_ipk.bbclass
+++ b/meta/classes/populate_sdk_ipk.bbclass
@@ -1,6 +1,8 @@
do_populate_sdk[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot"
do_populate_sdk[recrdeptask] += "do_package_write_ipk"
+do_populate_sdk[lockfiles] += "${WORKDIR}/ipk.lock"
+
populate_sdk_ipk() {
rm -f ${IPKGCONF_TARGET}
diff --git a/meta/classes/rootfs_deb.bbclass b/meta/classes/rootfs_deb.bbclass
index 6c9767f..4ea71da 100644
--- a/meta/classes/rootfs_deb.bbclass
+++ b/meta/classes/rootfs_deb.bbclass
@@ -8,6 +8,8 @@ ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts"
do_rootfs[depends] += "dpkg-native:do_populate_sysroot apt-native:do_populate_sysroot"
do_rootfs[recrdeptask] += "do_package_write_deb"
+do_rootfs[lockfiles] += "${WORKDIR}/deb.lock"
+
DEB_POSTPROCESS_COMMANDS = "rootfs_install_all_locales; "
opkglibdir = "${localstatedir}/lib/opkg"
diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass
index 1580086..9732385 100644
--- a/meta/classes/rootfs_ipk.bbclass
+++ b/meta/classes/rootfs_ipk.bbclass
@@ -12,6 +12,8 @@ ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts"
do_rootfs[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot"
do_rootfs[recrdeptask] += "do_package_write_ipk"
+do_rootfs[lockfiles] += "${WORKDIR}/ipk.lock"
+
IPKG_ARGS = "-f ${IPKGCONF_TARGET} -o ${IMAGE_ROOTFS} --force-overwrite"
OPKG_PREPROCESS_COMMANDS = "package_update_index_ipk; package_generate_ipkg_conf"
--
1.7.3.4
next prev parent reply other threads:[~2012-06-30 5:09 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-30 5:07 [PATCH 0/6] Enable the ability to create an image matching SDK Mark Hatle
2012-06-30 5:07 ` [PATCH 1/6] Fix manual log file paths Mark Hatle
2012-06-30 5:07 ` [PATCH 2/6] populate_sdk.bbclass: Split into two parts Mark Hatle
2012-06-30 5:07 ` [PATCH 3/6] populate_sdk: Allow for attempt only packages in the SDK Mark Hatle
2012-06-30 5:07 ` [PATCH 4/6] populate_sdk_base.bbclass: Change to using task specific depends Mark Hatle
2012-06-30 5:07 ` [PATCH 5/6] populate_sdk: enable basic multilib support Mark Hatle
2012-06-30 5:07 ` Mark Hatle [this message]
2012-07-02 19:44 ` [PATCH 6/6] image.bbclass: Add support to build the SDK in parallel with the image Saul Wold
2012-07-02 19:49 ` Mark Hatle
2012-07-02 20:05 ` Saul Wold
2012-07-02 20:12 ` Phil Blundell
2012-07-02 20:32 ` Mark Hatle
2012-07-02 21:05 ` Phil Blundell
2012-07-02 21:37 ` Mark Hatle
2012-07-03 23:47 ` Saul Wold
2012-07-02 15:20 ` [PATCH 0/6 v2] Enable the ability to create an image matching SDK McClintock Matthew-B29882
2012-07-02 16:27 ` Mark Hatle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=28adf5fdb58c3409ec2dcc1a8dfffaaf2a8eab2b.1341032578.git.mark.hatle@windriver.com \
--to=mark.hatle@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox