[oe] [RFC] removing DISTRO_* vars from task-boot

Koen Kooi k.kooi at student.utwente.nl
Tue Feb 17 12:26:34 UTC 2009


Hi,

Lately I have been wondering how to change the /dev manager on a per 
image base, since I want udev for most images and busybox-mdev for 
special-purpose stuff. The catch is that I want to keep using task-boot 
for both.

Currently we have:

DISTRO_DEV_MANAGER ?= "${@base_contains("MACHINE_FEATURES", "kernel26", 
  "udev","",d)} "
DISTRO_INIT_MANAGER ?= "sysvinit sysvinit-pidof"
DISTRO_INITSCRIPTS ?= "initscripts"
DISTRO_LOGIN_MANAGER ?= "tinylogin"

in task-boot.bb

There are various ways we could attack this:

1) The image.bbclass way:

   Put the following in image.bbclass:

   IMAGE_DEV_MANAGER ?= "${@base_contains("MACHINE_FEATURES", 
"kernel26",  "udev","",d)} "
   IMAGE_INIT_MANAGER ?= "sysvinit sysvinit-pidof"
   IMAGE_INITSCRIPTS ?= "initscripts"
   IMAGE_LOGIN_MANAGER ?= "tinylogin"

   Pros:
   * Takes immediate effect
   * Can have distro defaults, overridable per image

   Cons:
   * marks them as 'user installed'
   * you can't 'debootstrap' from tasks anymore, you need to encode 
knowledge about the above vars into the debootstrap script

2) Make task-boot nostamp

   Pros:
   * takes effect on image build time
   * Can have distro defaults, overridable per image

   Cons:
   * QA hell, there's no way to tell what's inside task-boot_1.0-r87.ipk 
from the outside

3) Have task-boot.bb create task-boot-mdev and task-boot-udev

   Pros:
   * clean
   * solves my immediate need

   Cons:
   * doesn't scale for other vars

4) Move the vars to RRECOMMENDS and filter them out with BAD_RECOMMENDATIONS

   Pros:
   * takes effect on image time
   * performs as expected

   Cons:
   * image build succeeds when no /dev manager is present

What are your opinions on all this?

regards,

Koen






More information about the Openembedded-devel mailing list