anchor.diff:  DESCRIPTION = "Merge machine and distro options to create a basic machine task/package"
  -PR = "r23"
  -
  -PACKAGES = "task-base \
  -            task-base-oh-minimal \
  -            task-base-core-default"
  +PR = "r26"
  +
  +PACKAGES = 'task-boot \
  +            task-base \
  +            task-distro-base \
  +            task-machine-base \
  +            \
  +            task-base-acpi \
  +            task-base-alsa \
  +            task-base-apm \
  +            task-base-bluetooth \
  +            task-base-ext2 \
  +            task-base-irda \
  +            task-base-keyboard \
  +            task-base-pci \
  +            task-base-pcmcia \
  +            task-base-phone \
  +            task-base-screen \
  +            task-base-serial \
  +            task-base-touchscreen \
  +            task-base-usbgadget \
  +            task-base-usbhost \
  +            task-base-wifi \
  +            \
  +            task-base-cramfs \
  +            task-base-ipsec \
  +            task-base-ipv6 \
  +            task-base-nfs \
  +            task-base-ppp \
  +            task-base-smbfs \
  +	    \
  +            ${@base_contains("MACHINE_FEATURES","kernel26","task-base-kernel26","task-base-kernel24",d)} \
  +	    '
   
   ALLOW_EMPTY = "1"
   
  -PACKAGE_ARCH = "${MACHINE_ARCH}"
  -
  -# Valid only in MACHINE_FEATURES:
  -#
  -# kernel24
  -# kernel26
  -# apm
  -# keyboard
  -# touchscreen
  -# screen
  -# pci
  -# acpi
  -# phone
  -
  -# Valid only in DISTRO_FEATURES:
  -#
  -# nfs
  -# smbfs
  -# ipsec
  -# wifi
  -# ppp
  -
  -# Valid COMBINED_FEATURES:
  -# (These features need to be supported by both the machine and the distro)
  -#
  -# alsa
  -# bluetooth
  -# ext2
  -# irda
  -# pci
  -# pcmcia
  -# redboot
  -# uboot
  -# usbgadget
  -# usbhost
  -
  -
  -DISTRO_CORE_PACKAGE ?= "task-base-core-default"
  -
  -#
  -# task-base
  +PACKAGE_ARCH = "all"
  +
  +#
  +# packages which content depend on MACHINE_FEATURES need to be MACHINE_ARCH
  +#
  +PACKAGE_ARCH_task-base = "${MACHINE_ARCH}"
  +PACKAGE_ARCH_task-machine-base = "${MACHINE_ARCH}"
  +PACKAGE_ARCH_task-base-apm = "${MACHINE_ARCH}"
  +PACKAGE_ARCH_task-base-pcmcia = "${MACHINE_ARCH}"
  +
  +#
  +# udev, devfsd, mdev (from busybox) or none
  +#
  +DISTRO_DEV_MANAGER ?= "${@base_contains("MACHINE_FEATURES", "kernel26",  "udev","",d)} "
  +
  +#
  +# sysvinit, upstart
  +#
  +DISTRO_INIT_MANAGER ?= "sysvinit"
  +
  +#
  +# tinylogin, getty
  +#
  +DISTRO_LOGIN_MANAGER ?= "tinylogin"
  +
  +#
  +# linux-hotplug or none
  +#
  +HOTPLUG ?= "${@base_contains("MACHINE_FEATURES", "kernel24",  "linux-hotplug","",d)} "
  +
  +#
  +# dropbear, openssh or none
  +#
  +DISTRO_SSH_DAEMON ?= "dropbear"
  +
  +#
  +# pcmciautils for >= 2.6.13-rc1, pcmcia-cs for others
  +#
  +PCMCIA_MANAGER ?= "${@base_contains('MACHINE_FEATURES', 'kernel26','pcmciautils','pcmcia-cs',d)} "
  +
  +#
  +# those ones can be set in machine config to supply packages needed to get machine booting
  +#
  +MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
  +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
  +
  +#
  +# task-base contain stuff needed for base system (machine related)
   #
   RDEPENDS_task-base = "\
  -    ${DISTRO_CORE_PACKAGE} \
  +    task-boot \
  +    task-distro-base \
  +    task-machine-base \
  +    ${DISTRO_SSH_DAEMON} \
  +    ${HOTPLUG} \
  +    \
  +    ${@base_contains('MACHINE_FEATURES', 'kernel26','task-base-kernel26','task-base-kernel24',d)} \
  +    ${@base_contains('MACHINE_FEATURES', 'apm', 'task-base-apm', '',d)} \
  +    ${@base_contains('MACHINE_FEATURES', 'acpi', 'task-base-acpi', '',d)} \
  +    ${@base_contains('MACHINE_FEATURES', 'keyboard', 'task-base-keyboard', '',d)} \
  +    \
  +    ${@base_contains('COMBINED_FEATURES', 'alsa', 'task-base-alsa', '',d)} \
  +    ${@base_contains('COMBINED_FEATURES', 'ext2', 'task-base-ext2', '',d)} \
  +    ${@base_contains('COMBINED_FEATURES', 'irda', 'task-base-irda', '',d)} \
  +    ${@base_contains('COMBINED_FEATURES', 'pci', 'task-base-pci', '',d)} \
  +    ${@base_contains('COMBINED_FEATURES', 'pcmcia', 'task-base-pcmcia', '',d)} \
  +    ${@base_contains('COMBINED_FEATURES', 'usbhost', 'task-base-usbhost', '',d)} \
  +    ${@base_contains('COMBINED_FEATURES', 'bluetooth', 'task-base-bluetooth', '',d)} \
  +    ${@base_contains('COMBINED_FEATURES', 'wifi', 'task-base-wifi', '',d)} \
  +    ${@base_contains('COMBINED_FEATURES', 'uboot', 'task-base-uboot', '',d)} \
  +    ${@base_contains('COMBINED_FEATURES', 'redboot', 'task-base-redboot', '',d)} \
  +    \
  +    ${@base_contains('DISTRO_FEATURES', 'nfs', 'task-base-nfs', '',d)} \
  +    ${@base_contains('DISTRO_FEATURES', 'ipv6', 'task-base-ipv6', '',d)} \
  +    ${@base_contains('DISTRO_FEATURES', 'ipsec', 'task-base-ipsec', '',d)} \
  +    ${@base_contains('DISTRO_FEATURES', 'ppp', 'task-base-ppp', '',d)} \
  +    ${@base_contains('DISTRO_FEATURES', 'raid', 'task-base-raid', '',d)} \
  +    "
  +
  +#
  +# packages added by distribution
  +#
  +RDEPENDS_task-distro-base = "${DISTRO_EXTRA_RDEPENDS}"
  +RRECOMMENDS_task-distro-base = "${DISTRO_EXTRA_RRECOMMENDS}"
  +
  +#
  +# packages added by machine config
  +#
  +RDEPENDS_task-machine-base = "${MACHINE_EXTRA_RDEPENDS}"
  +RRECOMMENDS_task-machine-base = "${MACHINE_EXTRA_RRECOMMENDS}"
  +
  +#
  +# minimal set of packages - needed to boot
  +#
  +RDEPENDS_task-boot = "\
       kernel \
  -    ${@base_contains("MACHINE_FEATURES", "kernel24", "${task-base-kernel24-rdepends}", "",d)} \
  -    ${@base_contains("MACHINE_FEATURES", "kernel26", "${task-base-kernel26-rdepends}", "",d)} \
  -    ${@base_contains("MACHINE_FEATURES", "apm", "${task-base-apm-rdepends}", "",d)} \
  -    ${@base_contains("MACHINE_FEATURES", "acpi", "${task-base-acpi-rdepends}", "",d)} \
  -    ${@base_contains("MACHINE_FEATURES", "keyboard", "${task-base-keyboard-rdepends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "alsa", "${task-base-alsa-rdepends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "ext2", "${task-base-ext2-rdepends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "irda", "${task-base-irda-rdepends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "pci", "${task-base-pci-rdepends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "pcmcia", "${task-base-pcmcia-rdepends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "usbhost", "${task-base-usbhost-rdepends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "bluetooth", "${task-base-bluetooth-rdepends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "wifi", "${task-distro-wifi-rdepends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "uboot", "${task-base-uboot-rdepends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "redboot", "${task-base-redboot-rdepends}", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "nfs", "${task-distro-nfs-rdepends}", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "ipsec", "${task-distro-ipsec-rdepends}", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "ppp", "${task-distro-ppp-rdepends}", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "raid", "${task-distro-raid-rdepends}", "",d)} \
  -    ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \
  -    ${MACHINE_EXTRA_RDEPENDS} \
  -    ${DISTRO_EXTRA_RDEPENDS}"
  -
  -RRECOMMENDS_task-base = "\
  -    ${@base_contains("MACHINE_FEATURES", "kernel26", "${task-base-kernel26-extras-rrecommends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "alsa", "${task-base-alsa-rrecommends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "pcmcia", "${task-base-pcmcia-rrecommends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "bluetooth", "${task-base-bluetooth-rrecommends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "irda", "${task-base-irda-rrecommends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "usbgadget", "${task-base-usbgadget-rrecommends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "usbhost", "${task-base-usbhost-rrecommends}", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "ppp", "${task-distro-ppp-rrecommends}", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "nfs", "${task-distro-nfs-rrecommends}", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "ipsec", "${task-distro-ipsec-rrecommends}", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "wifi", "${task-distro-wifi-rrecommends}", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "cramfs", "${task-distro-cramfs-rrecommends}", "",d)} \
  -    ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS} \
  -    ${MACHINE_EXTRA_RRECOMMENDS} \
  -    ${DISTRO_EXTRA_RRECOMMENDS}"
  -
  -
  -#
  -# task-base-oh-minimal
  -# An example of a small cut down machine configuration
  -#
  -RDEPENDS_task-base-oh-minimal = "\
  -    kernel \
  -    ${@base_contains("MACHINE_FEATURES", "kernel26", "${task-base-kernel26-rdepends}", "",d)} \
  -    ${@base_contains("MACHINE_FEATURES", "apm", "${task-base-apm-rdepends}", "",d)} \
  -    ${@base_contains("COMBINED_FEATURES", "pcmcia", "${PCMCIA_MANAGER}", "",d)} \
  -    ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}"
  -
  -RRECOMMENDS_task-base-oh-minimal = "\
  -    ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}"
  -
  -
  -HOTPLUG ?= "linux-hotplug"
  -
  -RDEPENDS_task-base-core-default = '\
       base-files \
       base-passwd \
       busybox \
       initscripts \
  +    modutils-initscripts \
       netbase \
  -    sysvinit \
  -    sysvinit-pidof \
  -    tinylogin \
  -    modutils-initscripts \
  -    fuser \
  -    setserial'
  -# Lets see if we can kill off hotplug...
  -#    ${HOTPLUG}
  -#    ${@bootstrap_modutils_rdepends(d)}
  -
  -
  -RRECOMMENDS_task-base-core-default = '\
  -    dropbear '
  -
  -task-base-kernel24-rdepends = "\
  -    modutils-depmod \
  -    linux-hotplug "
  -
  -task-base-kernel26-rdepends = "\
  -    udev \
  +    ${DISTRO_DEV_MANAGER} \
  +    ${DISTRO_INIT_MANAGER} \
  +    ${DISTRO_LOGIN_MANAGER} \
  +    ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}"
  +
  +RRECOMMENDS_task-boot = "\
  +    ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}"
  +
  +RDEPENDS_task-base-kernel24 = "\
  +    modutils-depmod"
  +
  +RDEPENDS_task-base-kernel26 = "\
       sysfsutils \
       module-init-tools"
   
  -task-base-keyboard-rdepends = "\
  -    keymaps"
  -
  -task-base-pci-rdepends = "\
  -    pciutils"
  -
  -task-base-kernel26-extras-rrecommends = "\
  +RRECOMMENDS_task-base-kernel24 = "\
       kernel-module-input \
       kernel-module-uinput"
   
  -task-base-acpi-rdepends = "\
  +RRECOMMENDS_task-base-kernel26 = "\
  +    kernel-module-input \
  +    kernel-module-uinput"
  +
  +RDEPENDS_task-base-keyboard = "\
  +    keymaps"
  +
  +RDEPENDS_task-base-pci = "\
  +    pciutils"
  +
  +RDEPENDS_task-base-acpi = "\
       acpid"
   
  -task-base-apm-rdepends = "\
  +RDEPENDS_task-base-apm = "\
       apm \
       apmd \
  -    ${@base_contains("MACHINE_FEATURES", "kernel24", "network-suspend-scripts", "",d)}"
  -
  -task-base-ext2-rdepends = "\
  +    ${@base_contains('MACHINE_FEATURES', 'kernel24', 'network-suspend-scripts', '',d)}"
  +
  +RDEPENDS_task-base-ext2 = "\
       hdparm \
       e2fsprogs \
       e2fsprogs-e2fsck \
       e2fsprogs-mke2fs"
   
  -task-base-alsa-rdepends = "\
  +RDEPENDS_task-base-alsa = "\
       alsa-utils-alsactl \
       alsa-utils-alsamixer"
   
  -task-base-alsa-rrecommends = "\
  +#
  +# alsa-state is machine related so can be missing in feed, OSS support is optional
  +#
  +RRECOMMENDS_task-base-alsa = "\
  +    alsa-state \
       kernel-module-snd-mixer-oss \
       kernel-module-snd-pcm-oss"
   
  -task-base-pcmcia-rdepends = "\
  +RDEPENDS_task-base-pcmcia = "\
       ${PCMCIA_MANAGER} \
  -    ${@base_contains("DISTRO_FEATURES", "wifi", "prism3-firmware", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "wifi", "prism3-support", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "wifi", "spectrum-fw", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "wifi", "hostap-conf", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "wifi", "orinoco-conf", "",d)}"
  -
  -task-base-pcmcia-rrecommends = "\
  +    ${@base_contains('DISTRO_FEATURES', 'wifi', 'prism3-firmware', '',d)} \
  +    ${@base_contains('DISTRO_FEATURES', 'wifi', 'prism3-support', '',d)} \
  +    ${@base_contains('DISTRO_FEATURES', 'wifi', 'spectrum-fw', '',d)} \
  +    ${@base_contains('DISTRO_FEATURES', 'wifi', 'hostap-conf', '',d)} \
  +    ${@base_contains('DISTRO_FEATURES', 'wifi', 'orinoco-conf', '',d)}"
  +
  +RRECOMMENDS_task-base-pcmcia = "\
  +    ${@base_contains('MACHINE_FEATURES', 'kernel26', '${task-base-pcmcia26}', '${task-base-pcmcia24}',d)} \
       kernel-module-pcmcia \
       kernel-module-airo-cs \
       kernel-module-pcnet-cs \
       kernel-module-serial-cs \
       kernel-module-ide-cs \
       kernel-module-ide-disk \
  -    ${@base_contains("MACHINE_FEATURES", "kernel26", "${task-base-pcmcia26-rrecommends}", "${task-base-pcmcia24-rrecommends}",d)} "
  -
  -task-base-pcmcia24-rrecommends = "\
  -    ${@base_contains("DISTRO_FEATURES", "wifi", "hostap-modules-cs", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "wifi", "orinoco-modules-cs", "",d)}"
  -
  -task-base-pcmcia26-rrecommends = "\
  -    ${@base_contains("DISTRO_FEATURES", "wifi", "kernel-module-hostap-cs", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "wifi", "kernel-module-orinoco-cs", "",d)} \
  -    ${@base_contains("DISTRO_FEATURES", "wifi", "kernel-module-spectrum-cs", "",d)}"
  -
  -task-base-bluetooth-rdepends = "\ 
  -	blueprobe \
  -	bluez-utils"
  -
  -task-base-bluetooth-rrecommends = "\
  +    "
  +
  +task-base-pcmcia24 = "\
  +    ${@base_contains('DISTRO_FEATURES', 'wifi', 'hostap-modules-cs', '',d)} \
  +    ${@base_contains('DISTRO_FEATURES', 'wifi', 'orinoco-modules-cs', '',d)}"
  +
  +task-base-pcmcia26 = "\
  +    ${@base_contains('DISTRO_FEATURES', 'wifi', 'kernel-module-hostap-cs', '',d)} \
  +    ${@base_contains('DISTRO_FEATURES', 'wifi', 'kernel-module-orinoco-cs', '',d)} \
  +    ${@base_contains('DISTRO_FEATURES', 'wifi', 'kernel-module-spectrum-cs', '',d)}"
  +
  +RDEPENDS_task-base-bluetooth = "\ 
  +    blueprobe \
  +    bluez-utils"
  +
  +RRECOMMENDS_task-base-bluetooth = "\
       kernel-module-bluetooth \
       kernel-module-l2cap \
       kernel-module-rfcomm \
  
positive.code: # kernel-module-md5
  # kernel-module-8250
  # Should be DISTRO_EXTRA_RRECOMMENDS: lrzsz
  
  
negative.code:     kernel-module-michael-mic \
      kernel-module-aes"
  
  RRECOMMENDS_task-base-smbfs = "\
      kernel-module-cifs \
      kernel-module-smbfs"
  
  RRECOMMENDS_task-base-cramfs = "\
      kernel-module-cramfs"
  
  #
  # task-base-nfs provides ONLY client support - server is in nfs-utils package
  #
  RDEPENDS_task-base-nfs = "\
      portmap"
  
  RRECOMMENDS_task-base-nfs = "\
      kernel-module-nfs "
  
  RDEPENDS_task-base-raid = "\
  	"
  
  RDEPENDS_task-base-screen = "\
  	"
  
  #
  # GPE/OPIE/OpenMoko provide own touchscreen calibration utils
  #
  RDEPENDS_task-base-touchscreen = "\
      tslib-tests \
      tslib-calibrate "
  
  RDEPENDS_task-base-ipv6 = "\
      "
  
  RRECOMMENDS_task-base-ipv6 = "\
      kernel-module-ipv6 "
  
  RDEPENDS_task-base-serial = "\
      setserial \
      lrzsz "
  
  # Tosort
  # kernel-module-nvrd
  # kernel-module-mip6-mn
  # kernel-module-tun
  # kernel-module-ide-probe-mo
  # kernel-module-loop
  # kernel-module-vfat
  