All of lore.kernel.org
 help / color / mirror / Atom feed
* defining FEATURE_PACKAGES_* in core-image.bbclass vs image.bbclass
@ 2014-07-14 19:05 Robert P. J. Day
  2014-07-14 22:43 ` Rudolf Streif
  0 siblings, 1 reply; 6+ messages in thread
From: Robert P. J. Day @ 2014-07-14 19:05 UTC (permalink / raw)
  To: OpenEmbedded Development mailing list


  i was perusing core-image.bbclass and noticed that the alleged list
of "Available IMAGE_FEATURES" didn't mention "splash" so i was going
to submit a simple patch to add a line for it, before i noticed
something that puzzled me.

  i know there are some features that don't correspond to packagegroup
names, and here's one from core-image.bbclass:

FEATURE_PACKAGES_hwcodecs = "${MACHINE_HWCODECS}"

so that feature is clearly a "core image" feature. (i know the
meta-intel layer uses this feature.)

  then i noticed that the "splash" feature is defined, not in
core-image.bbclass, but in the more basic image.bbclass, as is
package-management:

FEATURE_PACKAGES_package-management = "${ROOTFS_PKGMANAGE}"
SPLASH ?= "psplash"
FEATURE_PACKAGES_splash = "${SPLASH}"

  so is there some rationale for deciding which FEATURE_PACKAGES
settings are defined in core-image, while others are defined in
image?

  i'll still add a line for splash to core-image.bbclass.

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: defining FEATURE_PACKAGES_* in core-image.bbclass vs image.bbclass
  2014-07-14 19:05 defining FEATURE_PACKAGES_* in core-image.bbclass vs image.bbclass Robert P. J. Day
@ 2014-07-14 22:43 ` Rudolf Streif
  2014-07-14 23:22   ` Robert P. J. Day
  2014-07-15 11:02   ` Robert P. J. Day
  0 siblings, 2 replies; 6+ messages in thread
From: Rudolf Streif @ 2014-07-14 22:43 UTC (permalink / raw)
  To: openembedded-devel

>
>
>   then i noticed that the "splash" feature is defined, not in
> core-image.bbclass, but in the more basic image.bbclass, as is
> package-management:
>
> FEATURE_PACKAGES_package-management = "${ROOTFS_PKGMANAGE}"
> SPLASH ?= "psplash"
> FEATURE_PACKAGES_splash = "${SPLASH}"
>
> And then there is debug-tweaks for which the hooks are defined in
image.bbclass including the function zap_empty_root_password but the
post-processing is added to the variable by core-image.bbclass:

core-image.bbclass: ROOTFS_POSTPROCESS_COMMAND +=
'${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", "",
"zap_empty_root_password ; ",d)}'

Since image.bbclass also adds the debug-tweaks to the valid image feature
list

image.bbclass:IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs"

my inclination would be to move the addition to ROOTFS_POSTPROCESS_COMMAND
from core-image.bbclass to image.bbclass.

The image feature readonly-rootfs is also added to the valid list by
image.bbclass.

Consequently this makes the image features splash, debug-tweaks,
package-management, splash and readonly-rootfs available to image recipes
that inherit image.bbclass while h/w codecs and others are added by
core-image.bbclass and are only available when an image recipe inherits
core-image.

Then there are the image features dbg-pkgs, dev-pkgs, doc-pkgs,
staticdev-pkgs and ptest-pkgs which are added to the image feature list by
populate_sdk_base.bbclass which image.bbclass inherits and hence they are
available to all images.


>   so is there some rationale for deciding which FEATURE_PACKAGES
> settings are defined in core-image, while others are defined in
> image?
>

That I do not really know. However, to some extend the choices as to what
class adds what image features make sense, alth

   - The minimal set of features splash, debug-tweaks, package-management,
   splash and readonly-rootfs to be added by the basic image.bbclass.
   - Extended image features added by core-image.bbclass.
   - SDK related image features by the populate_sdk_base.bbclass.

My $0.02

Cheers,
:rjs


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: defining FEATURE_PACKAGES_* in core-image.bbclass vs image.bbclass
  2014-07-14 22:43 ` Rudolf Streif
@ 2014-07-14 23:22   ` Robert P. J. Day
  2014-07-15  0:36     ` Rudolf Streif
  2014-07-15 11:02   ` Robert P. J. Day
  1 sibling, 1 reply; 6+ messages in thread
From: Robert P. J. Day @ 2014-07-14 23:22 UTC (permalink / raw)
  To: OpenEmbedded Development mailing list

On Mon, 14 Jul 2014, Rudolf Streif wrote:

> >   then i noticed that the "splash" feature is defined, not in
> > core-image.bbclass, but in the more basic image.bbclass, as is
> > package-management:
> >
> > FEATURE_PACKAGES_package-management = "${ROOTFS_PKGMANAGE}"
> > SPLASH ?= "psplash"
> > FEATURE_PACKAGES_splash = "${SPLASH}"
> >
> > And then there is debug-tweaks for which the hooks are defined in
> image.bbclass including the function zap_empty_root_password but the
> post-processing is added to the variable by core-image.bbclass:
>
> core-image.bbclass: ROOTFS_POSTPROCESS_COMMAND +=
> '${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", "",
> "zap_empty_root_password ; ",d)}'
>
> Since image.bbclass also adds the debug-tweaks to the valid image
> feature list
>
> image.bbclass:IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs"
>
> my inclination would be to move the addition to ROOTFS_POSTPROCESS_COMMAND
> from core-image.bbclass to image.bbclass.
>
> The image feature readonly-rootfs is also added to the valid list by
> image.bbclass.

  i didn't notice the rest of these as i stopped looking after the
splash example and thought i'd ask about it.

> Consequently this makes the image features splash, debug-tweaks,
> package-management, splash and readonly-rootfs available to image
> recipes that inherit image.bbclass while h/w codecs and others are
> added by core-image.bbclass and are only available when an image
> recipe inherits core-image.

  is there something special about hwcodecs that suggests it should
stay in core-image rather than moving to image as well? i'm just
trying to understand the rationale.

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: defining FEATURE_PACKAGES_* in core-image.bbclass vs image.bbclass
  2014-07-14 23:22   ` Robert P. J. Day
@ 2014-07-15  0:36     ` Rudolf Streif
  2014-07-15  0:39       ` Robert P. J. Day
  0 siblings, 1 reply; 6+ messages in thread
From: Rudolf Streif @ 2014-07-15  0:36 UTC (permalink / raw)
  To: openembedded-devel

>
>
>   is there something special about hwcodecs that suggests it should
> stay in core-image rather than moving to image as well? i'm just
> trying to understand the rationale.
>
>
Not necessarily. But I would consider them extended features and they
belong into core-image in my opinion. Not all embedded systems need them.
Many don't have video or audio support. I would even suggest to move splash
to core-image. If a device does not have video there is not reason for a
splash screen.

I consider debug-tweaks, package-management, and readonly-rootfs the basic
image features to be in image.

:rjs


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: defining FEATURE_PACKAGES_* in core-image.bbclass vs image.bbclass
  2014-07-15  0:36     ` Rudolf Streif
@ 2014-07-15  0:39       ` Robert P. J. Day
  0 siblings, 0 replies; 6+ messages in thread
From: Robert P. J. Day @ 2014-07-15  0:39 UTC (permalink / raw)
  To: openembedded-devel

On Mon, 14 Jul 2014, Rudolf Streif wrote:

> >   is there something special about hwcodecs that suggests it
> > should stay in core-image rather than moving to image as well? i'm
> > just trying to understand the rationale.
> >
> Not necessarily. But I would consider them extended features and
> they belong into core-image in my opinion. Not all embedded systems
> need them. Many don't have video or audio support. I would even
> suggest to move splash to core-image. If a device does not have
> video there is not reason for a splash screen.
>
> I consider debug-tweaks, package-management, and readonly-rootfs the
> basic image features to be in image.

  and i have no problem with that rationale. :-)

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: defining FEATURE_PACKAGES_* in core-image.bbclass vs image.bbclass
  2014-07-14 22:43 ` Rudolf Streif
  2014-07-14 23:22   ` Robert P. J. Day
@ 2014-07-15 11:02   ` Robert P. J. Day
  1 sibling, 0 replies; 6+ messages in thread
From: Robert P. J. Day @ 2014-07-15 11:02 UTC (permalink / raw)
  To: openembedded-devel

On Mon, 14 Jul 2014, Rudolf Streif wrote:

> >
> >
> >   then i noticed that the "splash" feature is defined, not in
> > core-image.bbclass, but in the more basic image.bbclass, as is
> > package-management:
> >
> > FEATURE_PACKAGES_package-management = "${ROOTFS_PKGMANAGE}"
> > SPLASH ?= "psplash"
> > FEATURE_PACKAGES_splash = "${SPLASH}"
> >
> > And then there is debug-tweaks for which the hooks are defined in
> image.bbclass including the function zap_empty_root_password but the
> post-processing is added to the variable by core-image.bbclass:
>
> core-image.bbclass: ROOTFS_POSTPROCESS_COMMAND +=
> '${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", "",
> "zap_empty_root_password ; ",d)}'
>
> Since image.bbclass also adds the debug-tweaks to the valid image feature
> list
>
> image.bbclass:IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs"

  ... snip ...

  there's something i'll throw in here now that i'm thinking about it.
i've wondered about that very line above -- what is its purpose?

  as i read it, the primary purpose for the variable IMAGE_FEATURES is
to define packagegroups through the use of FEATURE_PACKAGES_* that you
see in core-image.bbclass. (so this is again a bit of weirdness where
code in image.bbclass refers up the "inheritance tree" to stuff found
in core-image.bbclass.)

  however, there are of course some IMAGE_FEATURES that don't
correspond directly to package groups; eg, package-management,
debug-tweaks, read-only-rootfs. so why is "package-management" not
listed in the line:

image.bbclass:IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs"

is that variable flag supposed to list all valid, non-packagegroup
IMAGE_FEATURES?

  i can see that debug-tweaks is processed explicitly in
image.bbclass:

ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", "ssh_allow_empty_password; ", "",d)}'
ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", "postinst_enable_logging; ", "",d)}'

  but, then again, so is package-management:

ROOTFS_BOOTSTRAP_INSTALL = "${@bb.utils.contains("IMAGE_FEATURES", "package-management", "", "${ROOTFS_PKGMANAGE_BOOTSTRAP}",d)}"

  so why is debug-tweaks assigned to IMAGE_FEATURES[validitems] but
not package-management? oh, wait, i just noticed that image.bbclass
explicitly does this:

FEATURE_PACKAGES_package-management = "${ROOTFS_PKGMANAGE}"

so that package-management *will* be recognized as a valid image
feature here in image.bbclass:

def check_image_features(d):
    valid_features = (d.getVarFlag('IMAGE_FEATURES', 'validitems', True) or "").split()
    valid_features += d.getVarFlags('COMPLEMENTARY_GLOB').keys()
    for var in d:
       if var.startswith("PACKAGE_GROUP_"):
           bb.warn("PACKAGE_GROUP is deprecated, please use FEATURE_PACKAGES instead")
           valid_features.append(var[14:])
       elif var.startswith("FEATURE_PACKAGES_"):
           valid_features.append(var[17:])
    valid_features.sort()

  gaaaaaaaaah! i need more coffee ...

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-07-15 11:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-14 19:05 defining FEATURE_PACKAGES_* in core-image.bbclass vs image.bbclass Robert P. J. Day
2014-07-14 22:43 ` Rudolf Streif
2014-07-14 23:22   ` Robert P. J. Day
2014-07-15  0:36     ` Rudolf Streif
2014-07-15  0:39       ` Robert P. J. Day
2014-07-15 11:02   ` Robert P. J. Day

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.