packagegroup-base.bb 13 KB

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