[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