From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [RFC-WIP 1/3] classes/image*: Revamp creation of live images
Date: Tue, 26 Jul 2011 15:36:44 +0100 [thread overview]
Message-ID: <1311691004.2344.256.camel@rex> (raw)
In-Reply-To: <1f4c4205e480da53c3af9bb89f8d49a73fdc1c1e.1311668437.git.sgw@linux.intel.com>
On Tue, 2011-07-26 at 01:24 -0700, Saul Wold wrote:
> This creates a live image as an IMAGE_FSTYPES, thus removing the
> need to have additional -live.bb recipes. To create a live image
> one just needs to add live to the IMAGE_FSTYPES list
>
> Signed-off-by: Saul Wold <sgw@linux.intel.com>
> ---
> .../{bootimg.bbclass => image-live.bbclass} | 11 +++++++++++
> meta/classes/image.bbclass | 3 +++
> meta/classes/image_types.bbclass | 20 ++++++++++++++++++--
> 3 files changed, 32 insertions(+), 2 deletions(-)
> create mode 100644 meta/classes/image-empty.bbclass
> rename meta/classes/{bootimg.bbclass => image-live.bbclass} (91%)
>
> diff --git a/meta/classes/image-empty.bbclass b/meta/classes/image-empty.bbclass
> new file mode 100644
> index 0000000..e69de29
> diff --git a/meta/classes/bootimg.bbclass b/meta/classes/image-live.bbclass
> similarity index 91%
> rename from meta/classes/bootimg.bbclass
> rename to meta/classes/image-live.bbclass
> index 49ee85e..c9cd524 100644
> --- a/meta/classes/bootimg.bbclass
> +++ b/meta/classes/image-live.bbclass
> @@ -25,6 +25,17 @@
> # ${APPEND} - an override list of append strings for each label
> # ${SYSLINUX_OPTS} - additional options to add to the syslinux file ';' delimited
>
> +AUTO_SYSLINUXCFG = "1"
> +INITRD = "${DEPLOY_DIR_IMAGE}/core-image-minimal-initramfs-${MACHINE}.cpio.gz"
> +APPEND += "root=/dev/ram0 "
> +TIMEOUT = "10"
> +LABELS += "boot install"
> +
> +ROOTFS = "${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.ext3"
> +
> +do_bootimg[depends] += "core-image-minimal-initramfs:do_rootfs"
> +do_bootimg[depends] += "${IMAGE_BASENAME}:do_rootfs"
> +
> do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \
> syslinux:do_populate_sysroot \
> syslinux-native:do_populate_sysroot \
It might be an idea to leave bootimg.bbclass as is for anyone using it
as it currently stands and make this image-xxx.bbclass inherit it?
> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> index edfb2d6..79a56f0 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -29,6 +29,9 @@ LDCONFIGDEPEND_libc-uclibc = ""
> do_rootfs[depends] += "makedevs-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot ${LDCONFIGDEPEND}"
> do_rootfs[depends] += "virtual/update-alternatives-native:do_populate_sysroot update-rc.d-native:do_populate_sysroot"
>
> +IMAGE_TYPE = ${@base_contains("IMAGE_FSTYPES", "live", "live", "empty", d)}
> +inherit image-${IMAGE_TYPE}
> +
> python () {
> deps = bb.data.getVarFlag('do_rootfs', 'depends', d) or ""
> for type in (bb.data.getVar('IMAGE_FSTYPES', d, True) or "").split():
> diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
> index 1108802..1efdf06 100644
> --- a/meta/classes/image_types.bbclass
> +++ b/meta/classes/image_types.bbclass
> @@ -1,7 +1,23 @@
> +
> def get_imagecmds(d):
> cmds = "\n"
> old_overrides = bb.data.getVar('OVERRIDES', d, 0)
> - for type in bb.data.getVar('IMAGE_FSTYPES', d, True).split():
> +
> + types = bb.data.getVar('IMAGE_FSTYPES', d, True).split()
Er, how about:
if "live" in types:
# For live images, ensure they get processed last
# live images also depend on ext3 so ensure its present
types.remove("live")
if "ext3" not in types:
types.append("ext3")
types.append("live")
> + try:
> + live_pos = types.index("live")
> + try:
> + ext3_pos = types.index("ext3")
> + except ValueError:
> + types.insert(live_pos, "ext3")
> + else:
> + if ext3_pos > live_pos:
> + types.pop(live_pos)
> + #types.append("live")
> + except ValueError:
> + pass
> +
> + for type in types:
> localdata = bb.data.createCopy(d)
> localdata.setVar('OVERRIDES', '%s:%s' % (type, old_overrides))
> bb.data.update_data(localdata)
> @@ -103,4 +119,4 @@ IMAGE_DEPENDS_ubi = "mtd-utils-native"
> IMAGE_DEPENDS_ubifs = "mtd-utils-native"
>
> # This variable is available to request which values are suitable for IMAGE_FSTYPES
> -IMAGE_TYPES = "jffs2 cramfs ext2 ext2.gz ext3 ext3.gz squashfs squashfs-lzma ubi"
> +IMAGE_TYPES = "jffs2 cramfs ext2 ext2.gz ext3 ext3.gz live squashfs squashfs-lzma ubi"
Otherwise looks good :)
Cheers,
Richard
next prev parent reply other threads:[~2011-07-26 14:41 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-26 8:24 [RFC-WIP 0/3] Live Image Type - Please Review Saul Wold
2011-07-26 8:24 ` [RFC-WIP 1/3] classes/image*: Revamp creation of live images Saul Wold
2011-07-26 14:36 ` Richard Purdie [this message]
2011-07-26 8:24 ` [RFC-WIP 2/3] Remove -live.bb recipes Saul Wold
2011-07-26 8:24 ` [RFC-WIP 3/3] Remove -directdisk.bb recipes Saul Wold
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=1311691004.2344.256.camel@rex \
--to=richard.purdie@linuxfoundation.org \
--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