distro/oel: Set virtual/bootloader provider
[meta-ossystems-base.git] / conf / distro / include / oel.conf
1 DISTRO_VERSION = "16.1"
2
3 SDK_VENDOR = "-oelsdk"
4 SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
5 SDK_NAME_PREFIX = "${DISTRO}"
6
7 MAINTAINER = "O.S. Systems Software LTDA. <contato@ossystems.com.br>"
8
9 TARGET_VENDOR = "-oel"
10
11 LOCALCONF_VERSION = "1"
12
13 # Target i686 for the sdk binaries, rather than the build arch.
14 #
15 # Other options: i586, x86_64
16 SDKMACHINE ?= "x86_64"
17
18 # Paths
19 OELDIR ?= "${COREBASE}/.."
20 DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}"
21 SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}"
22
23 # Move the persist db up out of TMPDIR so it survives its removal
24 PERSISTENT_DIR = "${TOPDIR}/db"
25
26 # Restore any available saved headrevs
27 DUMP_HEADREVS_DB ?= '${OELDIR}/${MACHINE}/saved_persist_data.db'
28 INHERIT += "restore-dumped-headrevs"
29
30 # LAYERDIRs for our layers, by name
31 INHERIT += "layerdirs"
32
33 # Do an up front type check to sanity check user configuration
34 INHERIT += "typecheck"
35
36 # QA check settings - a little stricter than the OE-Core defaults
37 WARN_TO_ERROR_QA = "already-stripped compile-host-path install-host-path \
38                     installed-vs-shipped ldflags pn-overrides rpaths staticdev \
39                     useless-rpaths host-user-contaminated"
40 WARN_QA_remove = "${WARN_TO_ERROR_QA}"
41 ERROR_QA_append = " ${WARN_TO_ERROR_QA}"
42
43 # Also check for host user contamination in the rootfs
44 ROOTFS_POSTPROCESS_COMMAND_append = " rootfs_check_host_user_contaminated;"
45
46 SANITY_TESTED_DISTROS ?= " \
47                         Ubuntu-14.04 \n \
48                         Ubuntu-14.10 \n \
49                         Ubuntu-15.04 \n \
50                         Debian-7.* \n \
51                         Debian-8.* \n \
52 "
53
54 #
55 # OELAYOUT_ABI allows us to notify users when the format of TMPDIR changes in
56 # an incompatible way. Such changes should usually be detailed in the commit
57 # that breaks the format and have been previously discussed on the mailing list
58 # with general agreement from the core team.
59 #
60 OELAYOUT_ABI = "11"
61
62 DISTRO_EXTRA_RDEPENDS += " ${OEL_DEFAULT_EXTRA_RDEPENDS}"
63 DISTRO_EXTRA_RRECOMMENDS += " ${OEL_DEFAULT_EXTRA_RRECOMMENDS}"
64
65 ####
66 #### Distro Features & Recipe Configuration
67 ####
68
69 # Override these in oel based distros
70 OEL_DEFAULT_DISTRO_FEATURES = "largefile opengl multiarch argp xattr"
71 OEL_DEFAULT_EXTRA_RDEPENDS = "packagegroup-core-boot"
72 OEL_DEFAULT_EXTRA_RRECOMMENDS = ""
73
74 DISTRO_FEATURES ?= "${DISTRO_FEATURES_LIBC} \
75                     ${OEL_DEFAULT_DISTRO_FEATURES}"
76
77 # Exclude DATE from DISTRO/SDK_VERSION checksums
78 DISTRO_VERSION[vardepsexclude] = "DATE"
79 SDK_VERSION[vardepsexclude] = "DATE"
80
81 # Lower the priority of meta-oe, as we prefer oe-core when recipes are duped
82 BBFILE_PRIORITY_openembedded-layer = "1"
83
84 # locales shouldn't be in lib32/lib64
85 localedir = "${exec_prefix}/lib/locale"
86
87 QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 ppc x86_64"
88 # Other QEMU_TARGETS "mips64el sh4"
89
90 # Preferred kernel version for QEMU based machines
91 PREFERRED_VERSION_linux-yocto ?= "4.4%"
92 PREFERRED_VERSION_linux-yocto_qemux86 ?= "4.4%"
93 PREFERRED_VERSION_linux-yocto_qemux86-64 ?= "4.4%"
94 PREFERRED_VERSION_linux-yocto_qemuarm ?= "4.4%"
95 PREFERRED_VERSION_linux-yocto_qemumips ?= "4.4%"
96 PREFERRED_VERSION_linux-yocto_qemumips64 ?= "4.4%"
97 PREFERRED_VERSION_linux-yocto_qemuppc ?= "4.4%"
98
99 OELQEMUDEPS = "${@bb.utils.contains("INCOMPATIBLE_LICENSE", "GPLv3", "", "packagegroup-core-device-devel",d)}"
100 DISTRO_EXTRA_RDEPENDS_append_qemuarm = " ${OELQEMUDEPS}"
101 DISTRO_EXTRA_RDEPENDS_append_qemuarm64 = " ${OELQEMUDEPS}"
102 DISTRO_EXTRA_RDEPENDS_append_qemumips = " ${OELQEMUDEPS}"
103 DISTRO_EXTRA_RDEPENDS_append_qemuppc = " ${OELQEMUDEPS}"
104 DISTRO_EXTRA_RDEPENDS_append_qemux86 = " ${OELQEMUDEPS}"
105 DISTRO_EXTRA_RDEPENDS_append_qemux86-64 = " ${OELQEMUDEPS}"
106
107 TCLIBCAPPEND = ""
108
109 # Targets for qemu
110 QEMU_TARGETS += "mips64 mips64el sh4"
111
112 # Use a local PR server by default
113 PRSERV_HOST ?= "localhost:0"
114
115 ####
116 #### Inherits
117 ####
118
119 # Remove .la files for packages, as they really aren't of much use.
120 DISTRO_FEATURES_BACKFILL_CONSIDERED += "libtool-garbage"
121 INHERIT += "libtool-garbage"
122
123 # We want information about image contents
124 INHERIT += "buildhistory"
125 BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
126 BUILDHISTORY_COMMIT ?= "1"
127
128 # Do an up front type check to sanity check user configuration
129 INHERIT += "typecheck"
130
131 # Allow blacklisting recipes
132 INHERIT += "blacklist"
133
134 # Copy the image license manifest into DEPLOY_DIR_IMAGE
135 INHERIT += "deploy-license-manifest"
136
137 # Ensure we have what we need for the below type checks
138 OE_IMPORTS += "oe.terminal"
139
140 # Restore any available saved headrevs (used for our installers)
141 DUMP_HEADREVS_DB ?= "${MELDIR}/${MACHINE}/saved_persist_data.db"
142 INHERIT += "restore-dumped-headrevs"
143
144 ####
145 #### Preferences and providers
146 ####
147
148 # Prefer normal jpeg implementation
149 PREFERRED_PROVIDER_jpeg               ??= "jpeg"
150 PREFERRED_PROVIDER_jpeg-native        ??= "jpeg-native"
151
152 # Prefer O.S. Systems U-Boot fork
153 PREFERRED_PROVIDER_u-boot              ?= "u-boot-ossystems"
154
155 # Prefer the chkconfig C implementation of alternatives
156 VIRTUAL-RUNTIME_update-alternatives = "chkconfig-alternatives"
157 PREFERRED_PROVIDER_virtual/update-alternatives = "chkconfig-alternatives"
158 PACKAGECONFIG_remove_pn-opkg-utils = "update-alternatives"
159 PREFERRED_PROVIDER_virtual/update-alternatives-native = "chkconfig-alternatives-native"
160 PACKAGECONFIG_remove_pn-opkg-utils-native = "update-alternatives"
161 PREFERRED_PROVIDER_virtual/nativesdk-update-alternatives = "nativesdk-chkconfig-alternatives"
162 PACKAGECONFIG_remove_pn-nativesdk-opkg-utils = "update-alternatives"
163
164 # Ensure that we are not getting GUI for latencytop, as we don't want x11 to
165 # be pulled into our console image.
166 PACKAGECONFIG_pn-latencytop = ""
167
168 # Ensure that we are not getting GUI for sysprof, as we don't want x11 to
169 # be pulled into our console image.
170 PACKAGECONFIG_pn-sysprof = ""
171
172 # Enable systemd in pulseaudio when appropriate
173 PACKAGECONFIG_append_pn-pulseaudio = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}"
174
175 # Since many embedded systems don't have non-root users, allow autospawn for
176 # root as well.
177 PACKAGECONFIG_append_pn-pulseaudio = " autospawn-for-root"
178
179 # Ensure we have the writable paths we need in a read-only rootfs
180 VOLATILE_BINDS_append = "\
181         /var/volatile/root-home ${ROOT_HOME}\n\
182         /var/volatile/media /media\n\
183         /var/volatile/resolv.conf /etc/resolv.conf\n\
184 "
185
186 # Override pulseaudio to use a system rather than user systemd service when we
187 # don't have pam available, as the user service won't be started
188 systemd_userunitdir_pn-pulseaudio = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${systemd_unitdir}/user', '${systemd_unitdir}/system', d)}"
189
190 # We prefer busybox rather than tinylogin
191 VIRTUAL-RUNTIME_login_manager = "busybox"
192
193 # Default to these image types
194 IMAGE_FSTYPES ?= "tar.bz2 ext3"
195 UBI_VOLNAME = "rootfs"
196
197 # Quadruple the normal. 'du' is not a good way to really see how much
198 # space will be needed and fails badly as the fs size grows.
199 IMAGE_ROOTFS_EXTRA_SPACE = "40960"
200
201 # Sane default locales for images
202 GLIBC_GENERATE_LOCALES ?= "en_US en_US.UTF-8"
203 IMAGE_LINGUAS ?= "en-us"
204
205 # Include nss-myhostname for sysvinit, so the hostname resolves. systemd
206 # includes myhostname itself.
207 DISTRO_EXTRA_RRECOMMENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'nss-myhostname', d)}"
208
209 ####
210 #### Workarounds & Overrides
211 ####
212
213 # Work around missing vardep bug in bitbake
214 sstate_stage_all[vardeps] += "sstate_stage_dirs"
215
216 # Restore any available saved headrevs (used for our installers)
217 DUMP_HEADREVS_DB ?= "${MELDIR}/${MACHINE}/saved_persist_data.db"
218 INHERIT += "restore-dumped-headrevs"
219
220 # LAYERDIRs for our layers, by name
221 INHERIT += "layerdirs"
222
223 # Layer name and path for the recipe
224 RECIPE_LAYERNAME = "${@bb.utils.get_file_layer('${FILE}', d) or 'UNKNOWN'}"
225 RECIPE_LAYERDIR = "${LAYERDIR_${RECIPE_LAYERNAME}}"
226 LAYERDIR_UNKNOWN = 'UNKNOWN'
227
228 # Support pulling downloads and sstate from inside individual layers. This
229 # will let us ship self contained layers to a release without risking file
230 # conflicts between them.
231 PREMIRRORS_prepend = "${@'.*://.*/.* file://${RECIPE_LAYERDIR}/downloads\n' if '${RECIPE_LAYERDIR}' != 'UNKNOWN' else ''}"
232 LAYER_SSTATE_MIRRORS = "${@" ".join('file://%s' % sl for sl in ('%s/sstate-cache' % l for l in '${BBLAYERS}'.split()) if os.path.exists(sl))}"
233 SSTATE_MIRROR_SITES_prepend = "${LAYER_SSTATE_MIRRORS} "
234
235 ####
236 #### Includes
237 ####
238
239 # Ensure that we implement shared state reuse handling for non-target recipes
240 require conf/distro/include/sstate.inc
241
242 # Disable static libs by default
243 require conf/distro/include/no-static-libs.inc
244
245 # Enable uninative
246 require conf/distro/include/yocto-uninative.inc
247 INHERIT += "uninative"