Squashed 'yocto-poky/' content from commit ea562de

git-subtree-dir: yocto-poky
git-subtree-split: ea562de57590c966cd5a75fda8defecd397e6436
diff --git a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
new file mode 100644
index 0000000..0c6a530
--- /dev/null
+++ b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2007 OpenedHand Ltd
+#
+
+SUMMARY = "Host packages for the standalone SDK or external toolchain"
+PR = "r12"
+LICENSE = "MIT"
+
+inherit packagegroup nativesdk
+
+PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
+
+RDEPENDS_${PN} = "\
+    nativesdk-pkgconfig \
+    nativesdk-qemu \
+    nativesdk-qemu-helper \
+    nativesdk-pseudo \
+    nativesdk-unfs3 \
+    nativesdk-opkg \
+    nativesdk-libtool \
+    nativesdk-autoconf \
+    nativesdk-automake \
+    nativesdk-shadow \
+    nativesdk-makedevs \
+    nativesdk-smartpm \
+    nativesdk-postinst-intercept \
+    "
+
+RDEPENDS_${PN}_darwin = "\
+    nativesdk-pkgconfig \
+    nativesdk-opkg \
+    nativesdk-libtool \
+    "
diff --git a/meta/recipes-core/packagegroups/packagegroup-base.bb b/meta/recipes-core/packagegroups/packagegroup-base.bb
new file mode 100644
index 0000000..9e40b28
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-base.bb
@@ -0,0 +1,369 @@
+SUMMARY = "Merge machine and distro options to create a basic machine task/package"
+LICENSE = "MIT"
+PR = "r83"
+
+#
+# packages which content depend on MACHINE_FEATURES need to be MACHINE_ARCH
+#
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit packagegroup
+inherit bluetooth
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = ' \
+            packagegroup-base \
+            packagegroup-base-extended \
+            packagegroup-distro-base \
+            packagegroup-machine-base \
+            \
+            ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "packagegroup-base-acpi", "",d)} \
+            ${@bb.utils.contains("MACHINE_FEATURES", "alsa", "packagegroup-base-alsa", "", d)} \
+            ${@bb.utils.contains("MACHINE_FEATURES", "apm", "packagegroup-base-apm", "", d)} \
+            ${@bb.utils.contains("MACHINE_FEATURES", "ext2", "packagegroup-base-ext2", "", d)} \
+            ${@bb.utils.contains("MACHINE_FEATURES", "vfat", "packagegroup-base-vfat", "", d)} \
+            ${@bb.utils.contains("MACHINE_FEATURES", "irda", "packagegroup-base-irda", "",d)} \
+            ${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "packagegroup-base-keyboard", "", d)} \
+            ${@bb.utils.contains("MACHINE_FEATURES", "pci", "packagegroup-base-pci", "",d)} \
+            ${@bb.utils.contains("MACHINE_FEATURES", "pcmcia", "packagegroup-base-pcmcia", "", d)} \
+            ${@bb.utils.contains("MACHINE_FEATURES", "phone", "packagegroup-base-phone", "", d)} \
+            ${@bb.utils.contains("MACHINE_FEATURES", "serial", "packagegroup-base-serial", "", d)} \
+            ${@bb.utils.contains("MACHINE_FEATURES", "usbgadget", "packagegroup-base-usbgadget", "", d)} \
+            ${@bb.utils.contains("MACHINE_FEATURES", "usbhost", "packagegroup-base-usbhost", "", d)} \
+            \
+            ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth", "packagegroup-base-bluetooth", "", d)} \
+            ${@bb.utils.contains("DISTRO_FEATURES", "wifi", "packagegroup-base-wifi", "", d)} \
+            ${@bb.utils.contains("DISTRO_FEATURES", "3g", "packagegroup-base-3g", "", d)} \
+            ${@bb.utils.contains("DISTRO_FEATURES", "nfc", "packagegroup-base-nfc", "", d)} \
+            ${@bb.utils.contains("DISTRO_FEATURES", "cramfs", "packagegroup-base-cramfs", "", d)} \
+            ${@bb.utils.contains("DISTRO_FEATURES", "ipsec", "packagegroup-base-ipsec", "", d)} \
+            ${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "packagegroup-base-ipv6", "", d)} \
+            ${@bb.utils.contains("DISTRO_FEATURES", "nfs", "packagegroup-base-nfs", "", d)} \
+            ${@bb.utils.contains("DISTRO_FEATURES", "ppp", "packagegroup-base-ppp", "", d)} \
+            ${@bb.utils.contains("DISTRO_FEATURES", "smbfs", "packagegroup-base-smbfs", "", d)} \
+            ${@bb.utils.contains("DISTRO_FEATURES", "zeroconf", "packagegroup-base-zeroconf", "", d)} \
+            \
+            '
+
+# Override by distro if needed
+VIRTUAL-RUNTIME_keymaps ?= "keymaps"
+
+#
+# packagegroup-base contain stuff needed for base system (machine related)
+#
+RDEPENDS_packagegroup-base = "\
+    packagegroup-distro-base \
+    packagegroup-machine-base \
+    \
+    sysfsutils \
+    module-init-tools \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'apm', 'packagegroup-base-apm', '',d)} \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'acpi', 'packagegroup-base-acpi', '',d)} \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'keyboard', 'packagegroup-base-keyboard', '',d)} \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'phone', 'packagegroup-base-phone', '',d)} \
+    \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'alsa', 'packagegroup-base-alsa', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'ext2', 'packagegroup-base-ext2', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'vfat', 'packagegroup-base-vfat', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'irda', 'packagegroup-base-irda', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'pci', 'packagegroup-base-pci', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'packagegroup-base-pcmcia', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'usbgadget', 'packagegroup-base-usbgadget', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'usbhost', 'packagegroup-base-usbhost', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'bluetooth', 'packagegroup-base-bluetooth', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'wifi', 'packagegroup-base-wifi', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', '3g', 'packagegroup-base-3g', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'nfc', 'packagegroup-base-nfc', '',d)} \
+    \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'nfs', 'packagegroup-base-nfs', '',d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'cramfs', 'packagegroup-base-cramfs', '',d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'smbfs', 'packagegroup-base-smbfs', '',d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'packagegroup-base-ipv6', '',d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'ipsec', 'packagegroup-base-ipsec', '',d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'ppp', 'packagegroup-base-ppp', '',d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'packagegroup-base-zeroconf', '',d)} \
+    "
+
+
+RRECOMMENDS_packagegroup-base = "\
+    kernel-module-nls-utf8 \
+    kernel-module-input \
+    kernel-module-uinput \
+    kernel-module-rtc-dev \
+    kernel-module-rtc-proc \
+    kernel-module-rtc-sysfs \
+    kernel-module-unix"
+
+RDEPENDS_packagegroup-base-extended = "\
+    packagegroup-base \
+    ${ADD_WIFI} \
+    ${ADD_BT} \
+    ${ADD_3G} \
+    ${ADD_NFC} \
+    "
+
+ADD_WIFI = ""
+ADD_BT = ""
+ADD_3G = ""
+ADD_NFC = ""
+
+python __anonymous () {
+    # If Distro want wifi and machine feature wifi/pci/pcmcia/usbhost (one of them)
+    # then include packagegroup-base-wifi in packagegroup-base
+
+    distro_features = set(d.getVar("DISTRO_FEATURES", True).split())
+    machine_features= set(d.getVar("MACHINE_FEATURES", True).split())
+
+    if "bluetooth" in distro_features and not "bluetooth" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
+        d.setVar("ADD_BT", "packagegroup-base-bluetooth")
+
+    if "wifi" in distro_features and not "wifi" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
+        d.setVar("ADD_WIFI", "packagegroup-base-wifi")
+
+    if "3g" in distro_features and not "3g" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
+        d.setVar("ADD_3G", "packagegroup-base-3g")
+
+    if "nfc" in distro_features and not "nfc" in machine_features and ("usbhost" in machine_features):
+        d.setVar("ADD_NFC", "packagegroup-base-nfc")
+}
+
+#
+# packages added by distribution
+#
+SUMMARY_packagegroup-distro-base = "${DISTRO} extras"
+DEPENDS_packagegroup-distro-base = "${DISTRO_EXTRA_DEPENDS}"
+RDEPENDS_packagegroup-distro-base = "${DISTRO_EXTRA_RDEPENDS}"
+RRECOMMENDS_packagegroup-distro-base = "${DISTRO_EXTRA_RRECOMMENDS}"
+
+#
+# packages added by machine config
+#
+SUMMARY_packagegroup-machine-base = "${MACHINE} extras"
+SUMMARY_packagegroup-machine-base = "Extra packages required to fully support ${MACHINE} hardware"
+RDEPENDS_packagegroup-machine-base = "${MACHINE_EXTRA_RDEPENDS}"
+RRECOMMENDS_packagegroup-machine-base = "${MACHINE_EXTRA_RRECOMMENDS}"
+
+SUMMARY_packagegroup-base-keyboard = "Keyboard support"
+RDEPENDS_packagegroup-base-keyboard = "\
+    ${VIRTUAL-RUNTIME_keymaps}"
+
+SUMMARY_packagegroup-base-pci = "PCI bus support"
+RDEPENDS_packagegroup-base-pci = "\
+    pciutils"
+
+SUMMARY_packagegroup-base-acpi = "ACPI support"
+RDEPENDS_packagegroup-base-acpi = "\
+    acpid \
+    libacpi "
+
+SUMMARY_packagegroup-base-apm = "APM support"
+RDEPENDS_packagegroup-base-apm = "\
+    ${VIRTUAL-RUNTIME_apm} \
+    apmd"
+
+SUMMARY_packagegroup-base-ext2 = "ext2 filesystem support"
+RDEPENDS_packagegroup-base-ext2 = "\
+    hdparm \
+    e2fsprogs \
+    e2fsprogs-e2fsck \
+    e2fsprogs-mke2fs"
+
+SUMMARY_packagegroup-base-vfat = "FAT filesystem support"
+RRECOMMENDS_packagegroup-base-vfat = "\
+    kernel-module-msdos \
+    kernel-module-vfat \
+    kernel-module-nls-iso8859-1 \
+    kernel-module-nls-cp437 \
+    dosfstools"
+
+SUMMARY_packagegroup-base-alsa = "ALSA sound support"
+RDEPENDS_packagegroup-base-alsa = "\
+    alsa-utils-alsactl \
+    alsa-utils-alsamixer \
+    ${VIRTUAL-RUNTIME_alsa-state}"
+
+RRECOMMENDS_packagegroup-base-alsa = "\
+    kernel-module-snd-mixer-oss \
+    kernel-module-snd-pcm-oss"
+
+SUMMARY_packagegroup-base-pcmcia = "PC card slot support"
+RDEPENDS_packagegroup-base-pcmcia = "\
+    pcmciautils \
+    "
+
+RRECOMMENDS_packagegroup-base-pcmcia = "\
+    kernel-module-pcmcia \
+    kernel-module-airo-cs \
+    kernel-module-pcnet-cs \
+    kernel-module-serial-cs \
+    kernel-module-ide-cs \
+    kernel-module-ide-disk \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'kernel-module-hostap-cs', '',d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'kernel-module-orinoco-cs', '',d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'kernel-module-spectrum-cs', '',d)}"
+
+SUMMARY_packagegroup-base-bluetooth = "Bluetooth support"
+RDEPENDS_packagegroup-base-bluetooth = "\
+    ${BLUEZ} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'alsa', 'libasound-module-bluez', '',d)} \
+    "
+
+RRECOMMENDS_packagegroup-base-bluetooth = "\
+    kernel-module-bluetooth \
+    kernel-module-l2cap \
+    kernel-module-rfcomm \
+    kernel-module-hci-vhci \
+    kernel-module-bnep \
+    kernel-module-hidp \
+    kernel-module-hci-uart \
+    kernel-module-sco \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'usbhost', 'kernel-module-hci-usb', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-bluetooth3c-cs', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-bluecard-cs', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-bluetoothuart-cs', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-dtl1-cs', '',d)} \
+    "
+
+SUMMARY_packagegroup-base-irda = "IrDA support"
+RDEPENDS_packagegroup-base-irda = "\
+    irda-utils"
+
+RRECOMMENDS_packagegroup-base-irda = "\
+    kernel-module-pxaficp-ir \
+    kernel-module-irda \
+    kernel-module-ircomm \
+    kernel-module-ircomm-tty \
+    kernel-module-irlan \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'ppp', 'kernel-module-irnet', '',d)} \
+    kernel-module-irport \
+    kernel-module-irtty \
+    kernel-module-irtty-sir \
+    kernel-module-sir-dev \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'usbhost', 'kernel-module-ir-usb', '',d)} "
+
+SUMMARY_packagegroup-base-usbgadget = "USB gadget support"
+RRECOMMENDS_packagegroup-base-usbgadget = "\
+    kernel-module-pxa27x_udc \
+    kernel-module-gadgetfs \
+    kernel-module-g-file-storage \
+    kernel-module-g-serial \
+    kernel-module-g-ether"
+
+SUMMARY_packagegroup-base-usbhost = "USB host support"
+RDEPENDS_packagegroup-base-usbhost = "\
+    usbutils "
+
+RRECOMMENDS_packagegroup-base-usbhost = "\
+    kernel-module-uhci-hcd \
+    kernel-module-ohci-hcd \
+    kernel-module-ehci-hcd \
+    kernel-module-usbcore \
+    kernel-module-usbhid \
+    kernel-module-usbnet \
+    kernel-module-sd-mod \
+    kernel-module-scsi-mod \
+    kernel-module-usbmouse \
+    kernel-module-mousedev \
+    kernel-module-usbserial \
+    kernel-module-usb-storage "
+
+SUMMARY_packagegroup-base-ppp = "PPP dial-up protocol support"
+RDEPENDS_packagegroup-base-ppp = "\
+    ppp \
+    ppp-dialin"
+
+RRECOMMENDS_packagegroup-base-ppp = "\
+    kernel-module-ppp-async \
+    kernel-module-ppp-deflate \
+    kernel-module-ppp-generic \
+    kernel-module-ppp-mppe \
+    kernel-module-slhc"
+
+SUMMARY_packagegroup-base-ipsec = "IPSEC support"
+RDEPENDS_packagegroup-base-ipsec = "\
+    "
+
+RRECOMMENDS_packagegroup-base-ipsec = "\
+    kernel-module-ipsec"
+
+#
+# packagegroup-base-wifi contain everything needed to get WiFi working
+# WEP/WPA connection needs to be supported out-of-box
+#
+SUMMARY_packagegroup-base-wifi = "WiFi support"
+RDEPENDS_packagegroup-base-wifi = "\
+    ${VIRTUAL-RUNTIME_wireless-tools} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'hostap-utils', '',d)} \
+    ${@bb.utils.contains('COMBINED_FEATURES', 'pci', 'hostap-utils', '',d)} \
+    wpa-supplicant"
+
+RRECOMMENDS_packagegroup-base-wifi = "\
+    ${@bb.utils.contains('COMBINED_FEATURES', 'usbhost', 'kernel-module-zd1211rw', '',d)} \
+    kernel-module-ieee80211-crypt \
+    kernel-module-ieee80211-crypt-ccmp \
+    kernel-module-ieee80211-crypt-tkip \
+    kernel-module-ieee80211-crypt-wep \
+    kernel-module-ecb \
+    kernel-module-arc4 \
+    kernel-module-crypto_algapi \
+    kernel-module-cryptomgr \
+    kernel-module-michael-mic \
+    kernel-module-aes-generic \
+    kernel-module-aes"
+
+SUMMARY_packagegroup-base-nfc = "Near Field Communication support"
+RDEPENDS_packagegroup-base-nfc = "\
+    neard"
+
+RRECOMMENDS_packagegroup-base-nfc = "\
+    kernel-module-nfc"
+
+SUMMARY_packagegroup-base-3g = "Cellular data support"
+RDEPENDS_packagegroup-base-3g = "\
+    ofono"
+
+RRECOMMENDS_packagegroup-base-3g = "\
+    kernel-module-cdc-acm \
+    kernel-module-cdc-wdm"
+
+SUMMARY_packagegroup-base-smbfs = "SMB network filesystem support"
+RRECOMMENDS_packagegroup-base-smbfs = "\
+    kernel-module-cifs \
+    kernel-module-smbfs"
+
+SUMMARY_packagegroup-base-cramfs = "cramfs filesystem support"
+RRECOMMENDS_packagegroup-base-cramfs = "\
+    kernel-module-cramfs"
+
+#
+# packagegroup-base-nfs provides ONLY client support - server is in nfs-utils package
+#
+SUMMARY_packagegroup-base-nfs = "NFS network filesystem support"
+RDEPENDS_packagegroup-base-nfs = "\
+    rpcbind"
+
+RRECOMMENDS_packagegroup-base-nfs = "\
+    kernel-module-nfs "
+
+SUMMARY_packagegroup-base-zeroconf = "Zeroconf support"
+RDEPENDS_packagegroup-base-zeroconf = "\
+    avahi-daemon"
+RDEPENDS_packagegroup-base-zeroconf_append_libc-glibc = "\
+    libnss-mdns \
+    "
+
+SUMMARY_packagegroup-base-ipv6 = "IPv6 support"
+RDEPENDS_packagegroup-base-ipv6 = "\
+    "
+
+RRECOMMENDS_packagegroup-base-ipv6 = "\
+    kernel-module-ipv6 "
+
+SUMMARY_packagegroup-base-serial = "Serial port support"
+RDEPENDS_packagegroup-base-serial = "\
+    setserial \
+    lrzsz "
+
+SUMMARY_packagegroup-base-phone = "Cellular telephony (voice) support"
+RDEPENDS_packagegroup-base-phone = "\
+    ofono"
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-boot.bb b/meta/recipes-core/packagegroups/packagegroup-core-boot.bb
new file mode 100644
index 0000000..09f5373
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-core-boot.bb
@@ -0,0 +1,47 @@
+#
+# Copyright (C) 2007 OpenedHand Ltd.
+#
+
+SUMMARY = "Minimal boot requirements"
+DESCRIPTION = "The minimal set of packages required to boot the system"
+LICENSE = "MIT"
+PR = "r17"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit packagegroup
+
+#
+# Set by the machine configuration with packages essential for device bootup
+#
+MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
+MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
+
+# Distro can override the following VIRTUAL-RUNTIME providers:
+VIRTUAL-RUNTIME_dev_manager ?= "udev"
+VIRTUAL-RUNTIME_login_manager ?= "busybox"
+VIRTUAL-RUNTIME_init_manager ?= "sysvinit"
+VIRTUAL-RUNTIME_initscripts ?= "initscripts"
+VIRTUAL-RUNTIME_keymaps ?= "keymaps"
+
+SYSVINIT_SCRIPTS = "${@bb.utils.contains('MACHINE_FEATURES', 'rtc', 'busybox-hwclock', '', d)} \
+                    modutils-initscripts \
+                    init-ifupdown \
+                    ${VIRTUAL-RUNTIME_initscripts} \
+                   "
+
+RDEPENDS_${PN} = "\
+    base-files \
+    base-passwd \
+    busybox \
+    ${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "${SYSVINIT_SCRIPTS}", "", d)} \
+    ${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "${VIRTUAL-RUNTIME_keymaps}", "", d)} \
+    netbase \
+    ${VIRTUAL-RUNTIME_login_manager} \
+    ${VIRTUAL-RUNTIME_init_manager} \
+    ${VIRTUAL-RUNTIME_dev_manager} \
+    ${VIRTUAL-RUNTIME_update-alternatives} \
+    ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}"
+
+RRECOMMENDS_${PN} = "\
+    ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}"
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb b/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb
new file mode 100644
index 0000000..74ed247
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb
@@ -0,0 +1,29 @@
+#
+# Copyright (C) 2007 OpenedHand Ltd.
+# Copyright (C) 2012 Red Hat, Inc.
+#
+
+SUMMARY = "Essential build dependencies"
+LICENSE = "MIT"
+
+inherit packagegroup
+
+RDEPENDS_packagegroup-core-buildessential = "\
+    autoconf \
+    automake \
+    binutils \
+    binutils-symlinks \
+    cpp \
+    cpp-symlinks \
+    gcc \
+    gcc-symlinks \
+    g++ \
+    g++-symlinks \
+    gettext \
+    make \
+    libstdc++ \
+    libstdc++-dev \
+    libtool \
+    pkgconfig \
+    "
+
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-eclipse-debug.bb b/meta/recipes-core/packagegroups/packagegroup-core-eclipse-debug.bb
new file mode 100644
index 0000000..e7b013d
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-core-eclipse-debug.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Remote debugging tools for Eclipse integration"
+LICENSE = "MIT"
+
+inherit packagegroup
+
+RDEPENDS_${PN} = "\
+    gdbserver \
+    tcf-agent \
+    openssh-sftp-server \
+    "
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb b/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb
new file mode 100644
index 0000000..1882d3a
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb
@@ -0,0 +1,21 @@
+#
+# Copyright (C) 2008 OpenedHand Ltd.
+#
+
+SUMMARY = "NFS package groups"
+LICENSE = "MIT"
+PR = "r2"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = "${PN}-server ${PN}-client"
+
+SUMMARY_${PN}-client = "NFS client"
+RDEPENDS_${PN}-client = "nfs-utils-client"
+
+SUMMARY_${PN}-server = "NFS server"
+RDEPENDS_${PN}-server = "\
+    nfs-utils \
+    nfs-utils-client \
+    "
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb b/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
new file mode 100644
index 0000000..3badd0e
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
@@ -0,0 +1,83 @@
+#
+# Copyright (C) 2007 OpenedHand Ltd.
+#
+
+SUMMARY = "Software development tools"
+LICENSE = "MIT"
+PR = "r9"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit packagegroup
+
+#PACKAGEFUNCS =+ 'generate_sdk_pkgs'
+
+RDEPENDS_packagegroup-core-sdk = "\
+    packagegroup-core-buildessential \
+    coreutils \
+    ccache \
+    diffutils \
+    intltool \
+    perl-module-re \
+    perl-module-text-wrap \
+    findutils \
+    quilt \
+    less \
+    ldd \
+    file \
+    tcl"
+
+SANITIZERS = "libasan-dev libubsan-dev"
+SANITIZERS_aarch64 = ""
+SANITIZERS_mips = ""
+SANITIZERS_mips64 = ""
+SANITIZERS_mips64n32 = ""
+SANITIZERS_powerpc64 = ""
+SANITIZERS_sparc = ""
+SANITIZERS_libc-musl = ""
+
+RRECOMMENDS_packagegroup-core-sdk = "\
+    libgomp \
+    libgomp-dev \
+    ${SANITIZERS}"
+
+#python generate_sdk_pkgs () {
+#    poky_pkgs = read_pkgdata('packagegroup-core', d)['PACKAGES']
+#    pkgs = d.getVar('PACKAGES', True).split()
+#    for pkg in poky_pkgs.split():
+#        newpkg = pkg.replace('packagegroup-core', 'packagegroup-core-sdk')
+#
+#        # for each of the task packages, add a corresponding sdk task
+#        pkgs.append(newpkg)
+#
+#        # for each sdk task, take the rdepends of the non-sdk task, and turn
+#        # that into rrecommends upon the -dev versions of those, not unlike
+#        # the package depchain code
+#        spkgdata = read_subpkgdata(pkg, d)
+#
+#        rdepends = explode_deps(spkgdata.get('RDEPENDS_%s' % pkg) or '')
+#        rreclist = []
+#
+#        for depend in rdepends:
+#            split_depend = depend.split(' (')
+#            name = split_depend[0].strip()
+#            if packaged('%s-dev' % name, d):
+#                rreclist.append('%s-dev' % name)
+#            else:
+#                deppkgdata = read_subpkgdata(name, d)
+#                rdepends2 = explode_deps(deppkgdata.get('RDEPENDS_%s' % name) or '')
+#                for depend in rdepends2:
+#                    split_depend = depend.split(' (')
+#                    name = split_depend[0].strip()
+#                    if packaged('%s-dev' % name, d):
+#                        rreclist.append('%s-dev' % name)
+#
+#            oldrrec = d.getVar('RRECOMMENDS_%s' % newpkg, False) or ''
+#            d.setVar('RRECOMMENDS_%s' % newpkg, oldrrec + ' ' + ' '.join(rreclist))
+#            # bb.note('RRECOMMENDS_%s = "%s"' % (newpkg, d.getVar('RRECOMMENDS_%s' % newpkg, False)))
+#
+#    # bb.note('pkgs is %s' % pkgs)
+#    d.setVar('PACKAGES', ' '.join(pkgs))
+#}
+#
+#PACKAGES_DYNAMIC += "^packagegroup-core-sdk-.*"
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb b/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb
new file mode 100644
index 0000000..e99946f
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb
@@ -0,0 +1,7 @@
+SUMMARY = "Dropbear SSH client/server"
+LICENSE = "MIT"
+PR = "r1"
+
+inherit packagegroup
+
+RDEPENDS_${PN} = "dropbear"
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb b/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb
new file mode 100644
index 0000000..32d20e6
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb
@@ -0,0 +1,7 @@
+SUMMARY = "OpenSSH SSH client/server"
+LICENSE = "MIT"
+PR = "r1"
+
+inherit packagegroup
+
+RDEPENDS_${PN} = "openssh"
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb b/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
new file mode 100644
index 0000000..37f5e43
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Target packages for the standalone SDK"
+PR = "r8"
+LICENSE = "MIT"
+
+inherit packagegroup
+
+RDEPENDS_${PN} = "\
+    libgcc \
+    libgcc-dev \
+    libstdc++ \
+    libstdc++-dev \
+    ${LIBC_DEPENDENCIES} \
+    "
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
new file mode 100644
index 0000000..82347b9
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
@@ -0,0 +1,20 @@
+#
+# Copyright (C) 2008 OpenedHand Ltd.
+#
+
+SUMMARY = "Debugging tools"
+LICENSE = "MIT"
+
+inherit packagegroup
+
+PR = "r3"
+
+MTRACE = ""
+MTRACE_libc-glibc = "libc-mtrace"
+
+RDEPENDS_${PN} = "\
+    gdb \
+    gdbserver \
+    strace \
+    ${MTRACE} \
+    "
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
new file mode 100644
index 0000000..80f5933
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
@@ -0,0 +1,81 @@
+#
+# Copyright (C) 2008 OpenedHand Ltd.
+#
+
+SUMMARY = "Profiling tools"
+LICENSE = "MIT"
+
+PR = "r3"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit packagegroup
+
+PROFILE_TOOLS_X = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'sysprof', '', d)}"
+# sysprof doesn't support aarch64
+PROFILE_TOOLS_X_aarch64 = ""
+PROFILE_TOOLS_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-analyze', '', d)}"
+
+RRECOMMENDS_${PN} = "\
+    perf \
+    trace-cmd \
+    blktrace \
+    ${PROFILE_TOOLS_X} \
+    ${PROFILE_TOOLS_SYSTEMD} \
+    "
+
+PROFILETOOLS = "\
+    powertop \
+    latencytop \
+    "
+
+# systemtap needs elfutils which is not fully buildable on uclibc
+# hence we exclude it from uclibc based builds
+SYSTEMTAP = "systemtap"
+SYSTEMTAP_libc-uclibc = ""
+SYSTEMTAP_mips = ""
+SYSTEMTAP_mips64 = ""
+SYSTEMTAP_mips64n32 = ""
+SYSTEMTAP_aarch64 = ""
+
+# lttng-ust uses sched_getcpu() which is not there on uclibc
+# for some of the architectures it can be patched to call the
+# syscall directly but for x86_64 __NR_getcpu is a vsyscall
+# which means we can not use syscall() to call it. So we ignore
+# it for x86_64/uclibc
+
+LTTNGUST = "lttng-ust"
+LTTNGUST_libc-uclibc = ""
+LTTNGUST_aarch64 = ""
+
+LTTNGTOOLS = "lttng-tools"
+LTTNGTOOLS_aarch64 = ""
+
+LTTNGMODULES = "lttng-modules"
+LTTNGMODULES_aarch64 = ""
+
+BABELTRACE = "babeltrace"
+BABELTRACE_aarch64 = ""
+
+# valgrind does not work on mips
+
+VALGRIND = "valgrind"
+VALGRIND_libc-uclibc = ""
+VALGRIND_mips = ""
+VALGRIND_mips64 = ""
+VALGRIND_mips64n32 = ""
+VALGRIND_arm = ""
+VALGRIND_aarch64 = ""
+
+#    exmap-console
+#    exmap-server
+
+RDEPENDS_${PN} = "\
+    ${PROFILETOOLS} \
+    ${LTTNGUST} \
+    ${LTTNGTOOLS} \
+    ${LTTNGMODULES} \
+    ${BABELTRACE} \
+    ${SYSTEMTAP} \
+    ${VALGRIND} \
+    "
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
new file mode 100644
index 0000000..95b3988
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
@@ -0,0 +1,56 @@
+#
+# Copyright (C) 2008 OpenedHand Ltd.
+#
+
+SUMMARY = "Testing tools/applications"
+LICENSE = "MIT"
+
+PR = "r2"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit packagegroup
+
+# kexec-tools doesn't work on Mips
+KEXECTOOLS ?= "kexec"
+KEXECTOOLS_mips ?= ""
+KEXECTOOLS_mipsel ?= ""
+KEXECTOOLS_powerpc ?= ""
+KEXECTOOLS_e5500-64b ?= ""
+KEXECTOOLS_aarch64 ?= ""
+
+X11GLTOOLS = "\
+    mesa-demos \
+    piglit \
+    "
+
+3GTOOLS = "\
+    ofono-tests \
+    "
+
+X11TOOLS = "\
+    fstests \
+    gst-player-bin \
+    x11perf \
+    xrestop \
+    xwininfo \
+    xprop \
+    xvideo-tests \
+    "
+
+RDEPENDS_${PN} = "\
+    blktool \
+    tslib-calibrate \
+    tslib-tests \
+    lrzsz \
+    ${KEXECTOOLS} \
+    alsa-utils-amixer \
+    alsa-utils-aplay \
+    ltp \
+    connman-tools \
+    connman-tests \
+    connman-client \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', "${X11TOOLS}", "", d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', "${X11GLTOOLS}", "", d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', '3g', "${3GTOOLS}", "", d)} \
+    "
diff --git a/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb b/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
new file mode 100644
index 0000000..180dd96
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Host SDK package for cross canadian toolchain"
+PN = "packagegroup-cross-canadian-${MACHINE}"
+LICENSE = "MIT"
+
+inherit cross-canadian packagegroup
+
+PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
+
+# Use indirection to stop these being expanded prematurely
+BINUTILS = "binutils-cross-canadian-${TRANSLATED_TARGET_ARCH}"
+GCC = "gcc-cross-canadian-${TRANSLATED_TARGET_ARCH}"
+GDB = "gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}"
+
+RDEPENDS_${PN} = "\
+    ${@all_multilib_tune_values(d, 'BINUTILS')} \
+    ${@all_multilib_tune_values(d, 'GCC')} \
+    ${@all_multilib_tune_values(d, 'GDB')} \
+    meta-environment-${MACHINE} \
+    "
diff --git a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
new file mode 100644
index 0000000..d38be26
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
@@ -0,0 +1,202 @@
+#
+# Copyright (C) 2010 Intel Corporation
+#
+
+SUMMARY = "Self-hosting"
+DESCRIPTION = "Packages required to run the build system"
+PR = "r13"
+LICENSE = "MIT"
+
+inherit packagegroup  distro_features_check
+# rdepends on libx11-dev
+REQUIRED_DISTRO_FEATURES = "x11"
+
+PACKAGES = "\
+    packagegroup-self-hosted \
+    packagegroup-self-hosted-debug \
+    packagegroup-self-hosted-sdk \
+    packagegroup-self-hosted-extended \
+    packagegroup-self-hosted-graphics \
+    packagegroup-self-hosted-host-tools \
+    "
+
+RDEPENDS_packagegroup-self-hosted = "\
+    packagegroup-self-hosted-debug \
+    packagegroup-self-hosted-sdk \
+    packagegroup-self-hosted-extended \
+    packagegroup-self-hosted-graphics \
+    packagegroup-self-hosted-host-tools \
+    "
+
+RDEPENDS_packagegroup-self-hosted-host-tools = "\
+    connman \
+    connman-plugin-ethernet \
+    dhcp-client \
+    e2fsprogs \
+    e2fsprogs-e2fsck \
+    e2fsprogs-mke2fs \
+    e2fsprogs-tune2fs \
+    hdparm \
+    iptables \
+    lsb \
+    mc \
+    mc-fish \
+    mc-helpers \
+    mc-helpers-perl \
+    mc-helpers-python \
+    parted \
+    pseudo \
+    screen \
+    "
+
+RRECOMMENDS_packagegroup-self-hosted-host-tools = "\
+    kernel-module-tun \
+    kernel-module-iptable-raw \
+    kernel-module-iptable-nat \
+    kernel-module-iptable-mangle \
+    kernel-module-iptable-filter \
+	"
+
+RDEPENDS_packagegroup-self-hosted-sdk = "\
+    autoconf \
+    automake \
+    binutils \
+    binutils-symlinks \
+    ccache \
+    coreutils \
+    cpp \
+    cpp-symlinks \
+    distcc \
+    glibc-gconv-ibm850 \
+    file \
+    findutils \
+    g++ \
+    g++-symlinks \
+    gcc \
+    gcc-symlinks \
+    intltool \
+    ldd \
+    less \
+    libssp \
+    libssp-dev \
+    libssp-staticdev \
+    libstdc++ \
+    libstdc++-dev \
+    libtool \
+    make \
+    mktemp \
+    perl-module-re \
+    perl-module-text-wrap \
+    pkgconfig \
+    quilt \
+    sed \
+    "
+# glibc-utils: for rpcgen
+RDEPENDS_packagegroup-self-hosted-sdk_append_libc-glibc = "\
+    glibc-utils \
+    "
+RDEPENDS_packagegroup-self-hosted-debug = " \
+    gdb \
+    gdbserver \
+    rsync \
+    strace \
+    tcf-agent"
+
+
+RDEPENDS_packagegroup-self-hosted-extended = "\
+    bzip2 \
+    chkconfig \
+    chrpath \
+    cpio \
+    curl \
+    diffstat \
+    diffutils \
+    elfutils \
+    expat \
+    gawk \
+    gdbm \
+    gettext \
+    gettext-runtime \
+    git \
+    git-perltools \
+    grep \
+    groff \
+    gzip \
+    settings-daemon \
+    hicolor-icon-theme \
+    sato-icon-theme \
+    libaio \
+    libusb1 \
+    libxml2 \
+    lrzsz \
+    lsof \
+    lzo \
+    man \
+    man-pages \
+    mdadm \
+    minicom \
+    mtools \
+    ncurses \
+    ncurses-terminfo-base \
+    neon \
+    nfs-utils \
+    nfs-utils-client \
+    openssl \
+    openssh-sftp-server \
+    opkg \
+    opkg-utils \
+    patch \
+    perl \
+    perl-dev \
+    perl-modules \
+    perl-pod \
+    ${PTH} \
+    python \
+    python-compiler \
+    python-git \
+    python-misc \
+    python-modules \
+    python-rpm \
+    quota \
+    readline \
+    rpm \
+    setserial \
+    socat \
+    subversion \
+    sudo \
+    sysstat \
+    tar \
+    tcl \
+    texi2html \
+    texinfo \
+    unzip \
+    usbutils \
+    watchdog \
+    wget \
+    which \
+    xinetd \
+    zip \
+    zlib \
+    xz \
+    "
+
+
+RDEPENDS_packagegroup-self-hosted-graphics = "\
+    builder \
+    libgl \
+    libgl-dev \
+    libglu \
+    libglu-dev \
+    libsdl \
+    libsdl-dev \
+    libx11-dev \
+    python-pygtk \
+    gtk-theme-clearlooks \
+    xdg-utils \
+    epiphany \
+    leafpad \
+    pcmanfm \
+    vte \
+    "
+PTH = "pth"
+PTH_libc-uclibc = ""