1SUMMARY = "Merge machine and distro options to create a basic machine task/package" 2 3# 4# packages which content depend on MACHINE_FEATURES need to be MACHINE_ARCH 5# 6PACKAGE_ARCH = "${MACHINE_ARCH}" 7 8inherit packagegroup 9 10PACKAGES = ' \ 11 packagegroup-base \ 12 packagegroup-base-extended \ 13 packagegroup-distro-base \ 14 packagegroup-machine-base \ 15 \ 16 ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "packagegroup-base-acpi", "",d)} \ 17 ${@bb.utils.contains("MACHINE_FEATURES", "alsa", "packagegroup-base-alsa", "", d)} \ 18 ${@bb.utils.contains("MACHINE_FEATURES", "ext2", "packagegroup-base-ext2", "", d)} \ 19 ${@bb.utils.contains("MACHINE_FEATURES", "vfat", "packagegroup-base-vfat", "", d)} \ 20 ${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "packagegroup-base-keyboard", "", d)} \ 21 ${@bb.utils.contains("MACHINE_FEATURES", "pci", "packagegroup-base-pci", "",d)} \ 22 ${@bb.utils.contains("MACHINE_FEATURES", "pcmcia", "packagegroup-base-pcmcia", "", d)} \ 23 ${@bb.utils.contains("MACHINE_FEATURES", "phone", "packagegroup-base-phone", "", d)} \ 24 ${@bb.utils.contains("MACHINE_FEATURES", "serial", "packagegroup-base-serial", "", d)} \ 25 ${@bb.utils.contains("MACHINE_FEATURES", "usbgadget", "packagegroup-base-usbgadget", "", d)} \ 26 ${@bb.utils.contains("MACHINE_FEATURES", "usbhost", "packagegroup-base-usbhost", "", d)} \ 27 \ 28 ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth", "packagegroup-base-bluetooth", "", d)} \ 29 ${@bb.utils.contains("DISTRO_FEATURES", "wifi", "packagegroup-base-wifi", "", d)} \ 30 ${@bb.utils.contains("DISTRO_FEATURES", "3g", "packagegroup-base-3g", "", d)} \ 31 ${@bb.utils.contains("DISTRO_FEATURES", "nfc", "packagegroup-base-nfc", "", d)} \ 32 ${@bb.utils.contains("DISTRO_FEATURES", "cramfs", "packagegroup-base-cramfs", "", d)} \ 33 ${@bb.utils.contains("DISTRO_FEATURES", "ipsec", "packagegroup-base-ipsec", "", d)} \ 34 ${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "packagegroup-base-ipv6", "", d)} \ 35 ${@bb.utils.contains("DISTRO_FEATURES", "nfs", "packagegroup-base-nfs", "", d)} \ 36 ${@bb.utils.contains("DISTRO_FEATURES", "ppp", "packagegroup-base-ppp", "", d)} \ 37 ${@bb.utils.contains("DISTRO_FEATURES", "smbfs", "packagegroup-base-smbfs", "", d)} \ 38 ${@bb.utils.contains("DISTRO_FEATURES", "zeroconf", "packagegroup-base-zeroconf", "", d)} \ 39 \ 40 ' 41 42# Override by distro if needed 43VIRTUAL-RUNTIME_keymaps ?= "keymaps" 44 45# 46# packagegroup-base contain stuff needed for base system (machine related) 47# 48RDEPENDS:packagegroup-base = "\ 49 packagegroup-distro-base \ 50 packagegroup-machine-base \ 51 \ 52 module-init-tools \ 53 ${@bb.utils.contains('MACHINE_FEATURES', 'acpi', 'packagegroup-base-acpi', '',d)} \ 54 ${@bb.utils.contains('MACHINE_FEATURES', 'keyboard', 'packagegroup-base-keyboard', '',d)} \ 55 ${@bb.utils.contains('MACHINE_FEATURES', 'phone', 'packagegroup-base-phone', '',d)} \ 56 \ 57 ${@bb.utils.contains('COMBINED_FEATURES', 'alsa', 'packagegroup-base-alsa', '',d)} \ 58 ${@bb.utils.contains('COMBINED_FEATURES', 'ext2', 'packagegroup-base-ext2', '',d)} \ 59 ${@bb.utils.contains('COMBINED_FEATURES', 'vfat', 'packagegroup-base-vfat', '',d)} \ 60 ${@bb.utils.contains('COMBINED_FEATURES', 'pci', 'packagegroup-base-pci', '',d)} \ 61 ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'packagegroup-base-pcmcia', '',d)} \ 62 ${@bb.utils.contains('COMBINED_FEATURES', 'usbgadget', 'packagegroup-base-usbgadget', '',d)} \ 63 ${@bb.utils.contains('COMBINED_FEATURES', 'usbhost', 'packagegroup-base-usbhost', '',d)} \ 64 ${@bb.utils.contains('COMBINED_FEATURES', 'bluetooth', 'packagegroup-base-bluetooth', '',d)} \ 65 ${@bb.utils.contains('COMBINED_FEATURES', 'wifi', 'packagegroup-base-wifi', '',d)} \ 66 ${@bb.utils.contains('COMBINED_FEATURES', '3g', 'packagegroup-base-3g', '',d)} \ 67 ${@bb.utils.contains('COMBINED_FEATURES', 'nfc', 'packagegroup-base-nfc', '',d)} \ 68 \ 69 ${@bb.utils.contains('DISTRO_FEATURES', 'nfs', 'packagegroup-base-nfs', '',d)} \ 70 ${@bb.utils.contains('DISTRO_FEATURES', 'cramfs', 'packagegroup-base-cramfs', '',d)} \ 71 ${@bb.utils.contains('DISTRO_FEATURES', 'smbfs', 'packagegroup-base-smbfs', '',d)} \ 72 ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'packagegroup-base-ipv6', '',d)} \ 73 ${@bb.utils.contains('DISTRO_FEATURES', 'ipsec', 'packagegroup-base-ipsec', '',d)} \ 74 ${@bb.utils.contains('DISTRO_FEATURES', 'ppp', 'packagegroup-base-ppp', '',d)} \ 75 ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'packagegroup-base-zeroconf', '',d)} \ 76 " 77 78 79RRECOMMENDS:packagegroup-base = "\ 80 kernel-module-nls-utf8 \ 81 kernel-module-input \ 82 kernel-module-uinput \ 83 kernel-module-rtc-dev \ 84 kernel-module-rtc-proc \ 85 kernel-module-rtc-sysfs \ 86 kernel-module-unix" 87 88RDEPENDS:packagegroup-base-extended = "\ 89 packagegroup-base \ 90 ${ADD_WIFI} \ 91 ${ADD_BT} \ 92 ${ADD_3G} \ 93 ${ADD_NFC} \ 94 " 95 96ADD_WIFI = "" 97ADD_BT = "" 98ADD_3G = "" 99ADD_NFC = "" 100 101python __anonymous () { 102 # If Distro want wifi and machine feature wifi/pci/pcmcia/usbhost (one of them) 103 # then include packagegroup-base-wifi in packagegroup-base 104 105 distro_features = set(d.getVar("DISTRO_FEATURES").split()) 106 machine_features= set(d.getVar("MACHINE_FEATURES").split()) 107 108 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): 109 d.setVar("ADD_BT", "${MLPREFIX}packagegroup-base-bluetooth") 110 111 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): 112 d.setVar("ADD_WIFI", "${MLPREFIX}packagegroup-base-wifi") 113 114 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): 115 d.setVar("ADD_3G", "${MLPREFIX}packagegroup-base-3g") 116 117 if "nfc" in distro_features and not "nfc" in machine_features and ("usbhost" in machine_features): 118 d.setVar("ADD_NFC", "${MLPREFIX}packagegroup-base-nfc") 119} 120 121# 122# packages added by distribution 123# 124SUMMARY:packagegroup-distro-base = "${DISTRO} extras" 125DEPENDS_packagegroup-distro-base = "${DISTRO_EXTRA_DEPENDS}" 126RDEPENDS:packagegroup-distro-base = "${DISTRO_EXTRA_RDEPENDS}" 127RRECOMMENDS:packagegroup-distro-base = "${DISTRO_EXTRA_RRECOMMENDS}" 128 129# 130# packages added by machine config 131# 132SUMMARY:packagegroup-machine-base = "Extra packages required to fully support ${MACHINE} hardware" 133RDEPENDS:packagegroup-machine-base = "${MACHINE_EXTRA_RDEPENDS}" 134RRECOMMENDS:packagegroup-machine-base = "${MACHINE_EXTRA_RRECOMMENDS}" 135 136SUMMARY:packagegroup-base-keyboard = "Keyboard support" 137RDEPENDS:packagegroup-base-keyboard = "\ 138 ${VIRTUAL-RUNTIME_keymaps}" 139 140SUMMARY:packagegroup-base-pci = "PCI bus support" 141RDEPENDS:packagegroup-base-pci = "\ 142 pciutils" 143 144SUMMARY:packagegroup-base-acpi = "ACPI support" 145RDEPENDS:packagegroup-base-acpi = "\ 146 acpid" 147 148SUMMARY:packagegroup-base-ext2 = "ext2 filesystem support" 149RDEPENDS:packagegroup-base-ext2 = "\ 150 e2fsprogs-e2fsck \ 151 e2fsprogs-mke2fs" 152 153RRECOMMENDS:packagegroup-base-ext2 = "\ 154 hdparm \ 155 e2fsprogs" 156 157SUMMARY:packagegroup-base-vfat = "FAT filesystem support" 158RRECOMMENDS:packagegroup-base-vfat = "\ 159 kernel-module-msdos \ 160 kernel-module-vfat \ 161 kernel-module-nls-iso8859-1 \ 162 kernel-module-nls-cp437 \ 163 dosfstools" 164 165SUMMARY:packagegroup-base-alsa = "ALSA sound support" 166RDEPENDS:packagegroup-base-alsa = "\ 167 alsa-utils-alsactl \ 168 alsa-utils-amixer \ 169 ${VIRTUAL-RUNTIME_alsa-state}" 170 171RRECOMMENDS:packagegroup-base-alsa = "\ 172 kernel-module-snd-mixer-oss \ 173 kernel-module-snd-pcm-oss" 174 175SUMMARY:packagegroup-base-pcmcia = "PC card slot support" 176RDEPENDS:packagegroup-base-pcmcia = "\ 177 pcmciautils \ 178 " 179 180RRECOMMENDS:packagegroup-base-pcmcia = "\ 181 kernel-module-pcmcia \ 182 kernel-module-airo-cs \ 183 kernel-module-pcnet-cs \ 184 kernel-module-serial-cs \ 185 kernel-module-ide-cs \ 186 kernel-module-ide-disk \ 187 ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'kernel-module-hostap-cs', '',d)} \ 188 ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'kernel-module-orinoco-cs', '',d)} \ 189 ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'kernel-module-spectrum-cs', '',d)}" 190 191SUMMARY:packagegroup-base-bluetooth = "Bluetooth support" 192RDEPENDS:packagegroup-base-bluetooth = "\ 193 bluez5 \ 194 " 195 196RRECOMMENDS:packagegroup-base-bluetooth = "\ 197 kernel-module-bluetooth \ 198 kernel-module-l2cap \ 199 kernel-module-rfcomm \ 200 kernel-module-hci-vhci \ 201 kernel-module-bnep \ 202 kernel-module-hidp \ 203 kernel-module-hci-uart \ 204 kernel-module-sco \ 205 ${@bb.utils.contains('COMBINED_FEATURES', 'usbhost', 'kernel-module-hci-usb', '',d)} \ 206 ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-bluetooth3c-cs', '',d)} \ 207 ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-bluecard-cs', '',d)} \ 208 ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-bluetoothuart-cs', '',d)} \ 209 ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-dtl1-cs', '',d)} \ 210 " 211 212SUMMARY:packagegroup-base-usbgadget = "USB gadget support" 213RRECOMMENDS:packagegroup-base-usbgadget = "\ 214 kernel-module-pxa27x_udc \ 215 kernel-module-gadgetfs \ 216 kernel-module-g-file-storage \ 217 kernel-module-g-serial \ 218 kernel-module-g-ether" 219 220SUMMARY:packagegroup-base-usbhost = "USB host support" 221RDEPENDS:packagegroup-base-usbhost = "\ 222 usbutils " 223 224RRECOMMENDS:packagegroup-base-usbhost = "\ 225 kernel-module-uhci-hcd \ 226 kernel-module-ohci-hcd \ 227 kernel-module-ehci-hcd \ 228 kernel-module-usbcore \ 229 kernel-module-usbhid \ 230 kernel-module-usbnet \ 231 kernel-module-sd-mod \ 232 kernel-module-scsi-mod \ 233 kernel-module-usbmouse \ 234 kernel-module-mousedev \ 235 kernel-module-usbserial \ 236 kernel-module-usb-storage " 237 238SUMMARY:packagegroup-base-ppp = "PPP dial-up protocol support" 239RDEPENDS:packagegroup-base-ppp = "\ 240 ppp \ 241 ppp-dialin" 242 243RRECOMMENDS:packagegroup-base-ppp = "\ 244 kernel-module-ppp-async \ 245 kernel-module-ppp-deflate \ 246 kernel-module-ppp-generic \ 247 kernel-module-ppp-mppe \ 248 kernel-module-slhc" 249 250SUMMARY:packagegroup-base-ipsec = "IPSEC support" 251RDEPENDS:packagegroup-base-ipsec = "\ 252 " 253 254RRECOMMENDS:packagegroup-base-ipsec = "\ 255 kernel-module-ipsec" 256 257# 258# packagegroup-base-wifi contain everything needed to get WiFi working 259# WEP/WPA connection needs to be supported out-of-box 260# 261# Choose either 'wpa-supplicant' or 'iwd' as wireless-daemon 262WIRELESS_DAEMON ??= "wpa-supplicant" 263SUMMARY:packagegroup-base-wifi = "WiFi support" 264RDEPENDS:packagegroup-base-wifi = "\ 265 iw \ 266 wireless-regdb-static \ 267 ${WIRELESS_DAEMON} \ 268" 269 270RRECOMMENDS:packagegroup-base-wifi = "\ 271 ${@bb.utils.contains('COMBINED_FEATURES', 'usbhost', 'kernel-module-zd1211rw', '',d)} \ 272 kernel-module-ieee80211-crypt \ 273 kernel-module-ieee80211-crypt-ccmp \ 274 kernel-module-ieee80211-crypt-tkip \ 275 kernel-module-ieee80211-crypt-wep \ 276 kernel-module-ecb \ 277 kernel-module-arc4 \ 278 kernel-module-crypto_algapi \ 279 kernel-module-cryptomgr \ 280 kernel-module-michael-mic \ 281 kernel-module-aes-generic \ 282 kernel-module-aes" 283 284SUMMARY:packagegroup-base-nfc = "Near Field Communication support" 285RDEPENDS:packagegroup-base-nfc = "\ 286 neard" 287 288RRECOMMENDS:packagegroup-base-nfc = "\ 289 kernel-module-nfc" 290 291SUMMARY:packagegroup-base-3g = "Cellular data support" 292RDEPENDS:packagegroup-base-3g = "\ 293 ofono" 294 295RRECOMMENDS:packagegroup-base-3g = "\ 296 kernel-module-cdc-acm \ 297 kernel-module-cdc-wdm" 298 299SUMMARY:packagegroup-base-smbfs = "SMB network filesystem support" 300RRECOMMENDS:packagegroup-base-smbfs = "\ 301 kernel-module-cifs \ 302 kernel-module-smbfs" 303 304SUMMARY:packagegroup-base-cramfs = "cramfs filesystem support" 305RRECOMMENDS:packagegroup-base-cramfs = "\ 306 kernel-module-cramfs" 307 308# 309# packagegroup-base-nfs provides ONLY client support - server is in nfs-utils package 310# 311SUMMARY:packagegroup-base-nfs = "NFS network filesystem support" 312RDEPENDS:packagegroup-base-nfs = "\ 313 rpcbind" 314 315RRECOMMENDS:packagegroup-base-nfs = "\ 316 kernel-module-nfs " 317 318SUMMARY:packagegroup-base-zeroconf = "Zeroconf support" 319RDEPENDS:packagegroup-base-zeroconf = "\ 320 avahi-daemon" 321RDEPENDS:packagegroup-base-zeroconf:append:libc-glibc = "\ 322 libnss-mdns \ 323 " 324 325SUMMARY:packagegroup-base-ipv6 = "IPv6 support" 326RDEPENDS:packagegroup-base-ipv6 = "\ 327 " 328 329RRECOMMENDS:packagegroup-base-ipv6 = "\ 330 kernel-module-ipv6 " 331 332SUMMARY:packagegroup-base-serial = "Serial port support" 333RDEPENDS:packagegroup-base-serial = "\ 334 setserial \ 335 lrzsz " 336 337SUMMARY:packagegroup-base-phone = "Cellular telephony (voice) support" 338RDEPENDS:packagegroup-base-phone = "\ 339 ofono" 340