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