base-files: add /media to System::Shared SMACK label
[AGL/meta-agl.git] / meta-agl.md
1 ## Introduction
2
3 The `meta-agl` layer provides the minimal set of software
4 to boot an AGL Distribution system.
5 You use this layer as the minimal core on which to build AGL profiles.
6
7 **NOTE:** The `meta-agl` layer does not include a reference UI.
8   The reference UI is included as part of the
9   [`meta-agl-demo`](./meta-agl-demo.html) layer.
10   Furthermore, `meta-agl` does not include additional components, such
11   as security, which are part of the
12   `meta-agl-extra` layer.
13
14 ## Sub-Layers
15
16 The `meta-agl` layer itself contains many sub-layers and files.
17 Following is a "tree" look at the layer:
18
19 ```
20 .
21 ├── docs
22 ├── meta-agl
23 ├── meta-agl-bsp
24 ├── meta-agl-distro
25 ├── meta-agl-profile-cluster
26 ├── meta-agl-profile-cluster-qt5
27 ├── meta-agl-profile-core
28 ├── meta-agl-profile-graphical
29 ├── meta-agl-profile-graphical-html5
30 ├── meta-agl-profile-graphical-qt5
31 ├── meta-agl-profile-hud
32 ├── meta-agl-profile-telematics
33 ├── meta-app-framework
34 ├── meta-netboot
35 ├── meta-security
36 ├── README-AGL.md
37 ├── README.md
38 ├── scripts
39 ├── templates
40 ```
41
42 This list provides some overview information on the files and sub-layers
43 in `meta-agl`:
44
45 * `docs`: Contains files that support AGL documentation.
46 * `meta-agl`: Contains layer configuration for the `meta-agl` layer.
47 * `meta-agl-bsp`: Contains adaptations for recipes and required packages
48   to boot an AGL distribution on targeted hardware and emulation (i.e. QEMU).
49 * `meta-agl-distro`: Contains distro configuration and supporting scripts.
50 * `meta-agl-profile-cluster`: The middleware for the AGL cluster profile.
51   The set of packages required for AGL Cluster Distribution.
52   Profiles include support for Wayland images.
53 * `meta-agl-profile-cluster-qt5`: The middleware for the AGL Qt5-based cluster profile.
54   The set of packages required for AGL Qt5-based Cluster Distribution.
55   Profiles include support for Wayland images with Qt5.
56 * `meta-agl-profile-core`: Configuration and recipes for the AGL core profiles.
57 * `meta-agl-profile-graphical`: Configuration and recipes supporting graphical user
58   interfaces.
59 * `meta-agl-profile-graphical-html5`: Configuration and recipes supporting profiles
60   with HTML user interface support.
61 * `meta-agl-profile-graphical-qt5`: Configuration and recipes supporting profiles
62   with Qt5-based user interface support.
63 * `meta-agl-profile-hud`: Configuration and recipes supporting profiles with
64   Head-Up-Display (HUD) support.
65 * `meta-agl-profile-telematics`: Configuration and recipes supporting profiles with
66   telematics support.
67 * `meta-app-framework`: Configuration and recipes supporting the AGL Application
68   Framework.
69 * `meta-netboot`: Contains recipes and configuration adjustments to allow network
70   boot through network block device (NBD) since network file system (NFS) does not
71   support security labels.
72 * `meta-security`: Configuration and recipes supporting security applications.
73 * `scripts`: AGL development setup and support scripts.
74 * `templates`: Base, feature, and machine templates used in the AGL development
75   environment.
76
77 ## Packagegroups
78
79 This section describes the AGL
80 [packagegroup](https://yoctoproject.org/docs/2.4.4/dev-manual/dev-manual.html#usingpoky-extend-customimage-customtasks)
81 design:
82
83 * packagegroup-agl-image-minimal
84
85         packagegroup-agl-core-automotive.bb
86         packagegroup-agl-core-connectivity.bb
87         packagegroup-agl-core-graphics.bb
88         packagegroup-agl-core-kernel.bb
89         packagegroup-agl-core-multimedia.bb
90         packagegroup-agl-core-navi-lbs.bb
91         packagegroup-agl-core-os-commonlibs.bb
92         packagegroup-agl-core-security.bb
93         packagegroup-agl-core-speech-services.bb
94
95   The previous list of Packagegroups are used to create the `agl-image-minimal` image,
96   which is a small image just capable of allowing a device to boot.
97
98   Subsystem should maintain packagegroup-agl-core-[subsystem].bb which should
99   hold sufficient packages to build `agl-image-minimal`.
100
101 * packagegroup-agl-image-ivi
102
103         packagegroup-agl-ivi-automotive.bb
104         packagegroup-agl-ivi-connectivity.bb
105         packagegroup-agl-ivi-graphics.bb
106         packagegroup-agl-ivi-kernel.bb
107         packagegroup-agl-ivi-multimedia.bb
108         packagegroup-agl-ivi-navi-lbs.bb
109         packagegroup-agl-ivi-os-commonlibs.bb
110         packagegroup-agl-ivi-security.bb
111         packagegroup-agl-ivi-speech-services.bb
112
113   The previous list of Packagegroups are used to create the `agl-image-ivi`
114   image, which is a baseline image (i.e. Service Layer and Operating System
115   Layer defined in AGL Spec v1.0) for the AGL profiles.
116
117 * packagegroup-agl-test.bb
118
119   Additional tools used in QA tests (for agl-image*-qa).
120
121 <!--
122 * packagegroup-ivi-common*
123
124         packagegroup-ivi-common-core-automotive.bb
125         packagegroup-ivi-common-core.bb
126         packagegroup-ivi-common-core-connectivity.bb
127         packagegroup-ivi-common-core-graphics.bb
128         packagegroup-ivi-common-core-kernel.bb
129         packagegroup-ivi-common-core-multimedia.bb
130         packagegroup-ivi-common-core-navi-lbs.bb
131         packagegroup-ivi-common-core-os-commonlibs.bb
132         packagegroup-ivi-common-core-security.bb
133         packagegroup-ivi-common-core-speech-services.bb
134         packagegroup-ivi-common-test.bb
135
136 The previous Packagegroups pick up some packages from upstream
137 locations such as
138 [GENIVI Alliance](https://www.genivi.org/) and others.
139 The `meta-ivi-common` layer produces no image.
140 All the Packagegroups in this layer are aggregated to `packagegroup-ivi-common-core`,
141 which is included by the images and the two recipes  `agl-image-ivi.bb` and `agl-demo-platform.bb`.
142 -->