From: "Robert P. J. Day" <rpjday@crashcourse.ca>
To: Gary Thomas <gary@mlbassoc.com>
Cc: yocto@yoctoproject.org
Subject: Re: Extending images
Date: Fri, 18 Jul 2014 14:45:17 -0400 (EDT) [thread overview]
Message-ID: <alpine.LFD.2.11.1407181439030.24703@localhost> (raw)
In-Reply-To: <53C9515F.1040504@mlbassoc.com>
On Fri, 18 Jul 2014, Gary Thomas wrote:
> On 2014-07-18 10:49, Christopher Larson wrote:
> >
> > On Fri, Jul 18, 2014 at 9:26 AM, Gary Thomas <gary@mlbassoc.com
> > <mailto:gary@mlbassoc.com>> wrote:
> >
> > 've always used 'IMAGE_INSTALL += " xyz"' in my local.conf
> > to add new packages to a build. That said, I had a working
> > build for qemuarm (probably doesn't matter) and I added:
> > IMAGE_INSTALL += " strace"
> > This produced a completely broken image which barely came
> > up to a shell, lots of missing programs, etc.
> >
> > I then tried
> > CORE_IMAGE_EXTRA_INSTALL += " strace"
> > which produced a perfectly working build (just as previous)
> > with the new package added.
> >
> > I can see that the images produced are vastly different:
> >
> > * Original working build
> > -rw-r--r-- 1 gthomas gthomas 11719 Jul 18 09:34
> > core-image-sato-qemuarm-__20140718124453.rootfs.manifest
> > -rw-r--r-- 1 gthomas gthomas 87611203 Jul 18 09:34
> > core-image-sato-qemuarm-__20140718124453.rootfs.tar.bz2
> >
> > * After 'IMAGE_INSTALL += '
> > -rw-r--r-- 1 gthomas gthomas 9986 Jul 18 09:55
> > core-image-sato-qemuarm-__20140718155134.rootfs.manifest
> > -rw-r--r-- 1 gthomas gthomas 37859884 Jul 18 09:56
> > core-image-sato-qemuarm-__20140718155134.rootfs.tar.bz2
> >
> > * After 'CORE_IMAGE_EXTRA_INSTALL += '
> > -rw-r--r-- 1 gthomas gthomas 11738 Jul 18 10:05
> > core-image-sato-qemuarm-__20140718160108.rootfs.manifest
> > -rw-r--r-- 1 gthomas gthomas 87720106 Jul 18 10:05
> > core-image-sato-qemuarm-__20140718160108.rootfs.tar.bz2
> >
> > What's the difference and why did the first attempt fail?
> >
> >
> > Most likely the image defined its own IMAGE_INSTALL using ?=, so
> > defining it yourself in the configuration data overrode its
> > default definition, since ?= is "set only if unset". If the recipe
> > didn't use ?=, then your IMAGE_INSTALL += would have had no effect
> > at all. To append to IMAGE_INSTALL directly without using
> > CORE_IMAGE_EXTRA_INSTALL you could have used IMAGE_INSTALL_append,
> > since that's a postponed operation that happens at the end of the
> > recipe parsing.
>
> That makes sense, thanks. I'll stick to using
> CORE_IMAGE_EXTRA_INSTALL from now on!
not to sound repetitively repetitive, but this is related to what i
thought was the weird way core images are defined based off of
core-image.bbclass, where core-image.bbclass does *exactly* what you
describe above:
CORE_IMAGE_BASE_INSTALL = '\
packagegroup-core-boot \
packagegroup-base-extended \
\
${CORE_IMAGE_EXTRA_INSTALL} \
'
CORE_IMAGE_EXTRA_INSTALL ?= ""
IMAGE_INSTALL ?= "${CORE_IMAGE_BASE_INSTALL}"
the danger here is that if someone has been defining/building images
for a while based off of the lower-level image.bbclass, then (i think)
using "IMAGE_INSTALL +=" will work just fine, and the poor developer
gets lulled into a false sense of security and carries that habit over
to her first core-image and ... boom.
i know there's a standard to define variables prefixed with "EXTRA_"
meant for users to add features, and i think that's a great idea. i
think the docs should strongly emphasize that users should look for
the EXTRA_ variable before messing with anything else.
rday
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
next prev parent reply other threads:[~2014-07-18 18:45 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-18 16:26 Extending images Gary Thomas
2014-07-18 16:48 ` Robert P. J. Day
2014-07-18 16:49 ` Christopher Larson
2014-07-18 16:54 ` Gary Thomas
2014-07-18 17:00 ` Christopher Larson
2014-07-18 18:45 ` Robert P. J. Day [this message]
2014-07-18 18:48 ` Christopher Larson
2014-07-18 18:55 ` Robert P. J. Day
2014-07-18 19:07 ` Christopher Larson
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=alpine.LFD.2.11.1407181439030.24703@localhost \
--to=rpjday@crashcourse.ca \
--cc=gary@mlbassoc.com \
--cc=yocto@yoctoproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.