1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
require conf/distro/poky.conf
# AGL specific derivations
DISTRO = "poky-agl"
DISTRO_NAME = "Automotive Grade Linux"
# Release flags
DISTRO_CODENAME = "jellyfish"
AGL_BRANCH = "jellyfish"
AGLVERSION = "10.0.1"
# switch devel/release
#AGLRELEASETYPE ?= "agldevelopment"
AGLRELEASETYPE ?= "aglrelease"
OVERRIDES .= ":${AGLRELEASETYPE}"
#
#for development
DISTRO_VERSION_agldevelopment := "${AGLVERSION}+snapshot-${DATE}"
AGL_APP_REVISION_agldevelopment = "${AUTOREV}"
AGL_DEFAULT_REVISION_agldevelopment = "${AUTOREV}"
#for release
DISTRO_VERSION_aglrelease := "${AGLVERSION}"
DISTRO_BRANCH_VERSION_TAG = "${DISTRO_CODENAME}/${@'${DISTRO_VERSION}'.replace('+snapshot-${DATE}','')}"
AGL_APP_REVISION_aglrelease := "refs/tags/${DISTRO_BRANCH_VERSION_TAG}"
AGL_DEFAULT_REVISION_aglrelease := "refs/tags/${DISTRO_BRANCH_VERSION_TAG}"
# reproducible builds:
# enable the flag
BUILD_REPRODUCIBLE_BINARIES = "1"
# Set the desired timestamps
export SOURCE_DATE_EPOCH = "1593400000"
REPRODUCIBLE_TIMESTAMP_ROOTFS = "1593400000"
# inherit the class
INHERIT += "reproducible_build"
# SDK
SDK_VENDOR = "-aglsdk"
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
# SDKPATH is the folder where the SDK is going to be installed
# Due to an issue with the qt5 environment (see SPEC-1667),
# we add DEFAULTTUNE to the SDKPATH to mitigate the issue.
SDKPATH = "/opt/agl-sdk/${SDK_VERSION}-${DEFAULTTUNE}"
MAINTAINER = "AGL https://lists.automotivelinux.org/g/agl-dev-community"
TARGET_VENDOR = "-agl"
# Override these in poky based distros
AGL_DEFAULT_DISTRO_FEATURES = "largefile systemd opengl wayland pam bluetooth bluez5 3g polkit"
POKY_DEFAULT_DISTRO_FEATURES := "${AGL_DEFAULT_DISTRO_FEATURES}"
OVERRIDES .= ":${DISTRO_CODENAME}"
QEMU_TARGETS ?= "arm aarch64 i386 x86_64"
# Other QEMU_TARGETS "mips mips64 mips64el ppc sh4"
MIRRORS =+ "\
bzr://.*/.* https://download.automotivelinux.org/AGL/mirror/ \n \
cvs://.*/.* https://download.automotivelinux.org/AGL/mirror/ \n \
git://.*/.* https://download.automotivelinux.org/AGL/mirror/ \n \
gitsm://.*/.* https://download.automotivelinux.org/AGL/mirror/ \n \
hg://.*/.* https://download.automotivelinux.org/AGL/mirror/ \n \
osc://.*/.* https://download.automotivelinux.org/AGL/mirror/ \n \
p4://.*/.* https://download.automotivelinux.org/AGL/mirror/ \n \
svn://.*/.* https://download.automotivelinux.org/AGL/mirror/ \n \
bzr://.*/.* http://download.automotivelinux.org/AGL/mirror/ \n \
cvs://.*/.* http://download.automotivelinux.org/AGL/mirror/ \n \
git://.*/.* http://download.automotivelinux.org/AGL/mirror/ \n \
gitsm://.*/.* http://download.automotivelinux.org/AGL/mirror/ \n \
hg://.*/.* http://download.automotivelinux.org/AGL/mirror/ \n \
osc://.*/.* http://download.automotivelinux.org/AGL/mirror/ \n \
p4://.*/.* http://download.automotivelinux.org/AGL/mirror/ \n \
svn://.*/.* http://download.automotivelinux.org/AGL/mirror/ \n \
\
ftp://.*/.* https://download.automotivelinux.org/AGL/mirror/ \n \
http://.*/.* https://download.automotivelinux.org/AGL/mirror/ \n \
https://.*/.* https://download.automotivelinux.org/AGL/mirror/ \n \
ftp://.*/.* http://download.automotivelinux.org/AGL/mirror/ \n \
http://.*/.* http://download.automotivelinux.org/AGL/mirror/ \n \
https://.*/.* http://download.automotivelinux.org/AGL/mirror/ \n \
"
# The CONNECTIVITY_CHECK_URI's are used to test whether we can succesfully
# fetch from the network (and warn you if not). To disable the test set
# the variable to be empty.
# Git example url: git://git.yoctoproject.org/yocto-firewall-test;protocol=git;rev=HEAD
CONNECTIVITY_CHECK_URIS ?= ""
PREFERRED_PROVIDER_udev ?= "systemd"
PREFERRED_PROVIDER_udev-utils ?= "systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
VIRTUAL-RUNTIME_initscripts = ""
# network manager to use (possible values: systemd, connman)
VIRTUAL-RUNTIME_net_manager = "connman"
DISTRO_FEATURES_APPEND = " "
DISTRO_FEATURES_remove = "x11"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit pulseaudio"
# Prefer GStreamer 1.16.x by default
PREFERRED_VERSION_gstreamer1.0 ?= "1.16.%"
PREFERRED_VERSION_gstreamer1.0-plugins-bad ?= "1.16.%"
PREFERRED_VERSION_gstreamer1.0-plugins-base ?= "1.16.%"
PREFERRED_VERSION_gstreamer1.0-plugins-good ?= "1.16.%"
PREFERRED_VERSION_gstreamer1.0-plugins-ugly ?= "1.16.%"
PREFERRED_VERSION_gstreamer1.0-libav ?= "1.16.%"
PREFERRED_VERSION_gstreamer1.0-omx ?= "1.16.%"
# Prefer libjpeg-turbo
PREFERRED_PROVIDER_jpeg = "libjpeg-turbo"
# using multiple BSP layers causes dangling bbappends in meta-agl-bsp
# turn it into a warning
#BB_DANGLINGAPPENDS_WARNONLY = "1"
# Not yet upstreamed; should be submitted.
SECURITY_CFLAGS_pn-qtwebengine = "${SECURITY_NO_PIE_CFLAGS}"
#Redefined USER_CLASSES
#Disable prelink. It is unmaintained and likely will go away.
#default: USER_CLASSES ?= "buildstats image-mklibs image-prelink"
USER_CLASSES = "buildstats image-mklibs"
# AGL uses 4 optimization levels
# 2 for ARM 32bit
# - a high and a medium setting for the CCARGS
# - the high setting is default (needs >= cortex-a15)
# - the medium setting is enabled with: DISTRO_FEATURES_append = " agl-medium-arm-compiler "
# 1 for ARM 64bit / AARCH64
# 1 for x86-64
require conf/distro/include/${TARGET_ARCH}-tune.inc
# Generic qemu and qemuboot (runqemu) enhancements
# check qemuboot.bbclass
# - use 2G RAM by default
QB_MEM ?= "-m 2048"
# use pulseaudio on the host side - off as qemu-native is built with alsa
#QB_AUDIO_DRV = "pa"
# expose a virtual 'hda' sound card to the guest (arm/aarch64/x86-64)
QB_AUDIO_OPT = "-soundhw hda"
# Board templates can add extra IMAGE_FSTYPES through this.
# It is added (late) through the AGL image recipes.
AGL_EXTRA_IMAGE_FSTYPES ??= ""
AGL_EXTRA_INITRAMFS_FSTYPES ??= ""
#
# Default IMAGE FSTYPES wic.xz
AGL_DEFAULT_IMAGE_FSTYPES ?= "wic.xz wic.bmap wic.xz.sha256sum"
AGL_DEFAULT_IMAGE_FSTYPES_qemuall ?= "${@bb.utils.contains('DISTRO_FEATURES', 'AGLCI', 'ext4.xz', 'ext4', d)}"
AGL_DEFAULT_IMAGE_FSTYPES_append_netboot = " ${@bb.utils.contains('DISTRO_FEATURES', 'AGLCI', 'ext4.xz', 'ext4', d)}"
AGL_DEFAULT_INITRAMFS_FSTYPES ?= "ext4.gz"
# DEFAULT IMAGE_FSTYPES for AGL (no - BSPs should not set this)
#
IMAGE_FSTYPES := "${AGL_DEFAULT_IMAGE_FSTYPES} ${AGL_EXTRA_IMAGE_FSTYPES}"
INITRAMFS_FSTYPES := "${AGL_DEFAULT_INITRAMFS_FSTYPES} ${AGL_EXTRA_INITRAMFS_FSTYPES}"
#
# THE FUTURE is 'wic'
# IMAGE_FSTYPES_append = " wic"
# enable the packagemanagement
IMAGE_FEATURES =+ "package-management"
PACKAGE_FEED_URIS = "http://192.168.7.1:8000/tmp/deploy/"
PACKAGE_FEED_BASE_PATHS = "rpm"
PACKAGE_FEED_ARCHS = ""
#${PACKAGE_ARCHS}"
# Complementary package definitions for agl-test-wgt and agl-devel-wgt
# image features
COMPLEMENTARY_GLOB[agl-test-wgt] = '*-test'
COMPLEMENTARY_GLOB[agl-devel-wgt] = '*-coverage *-debug'
# Fix for rpm metadata clash between nativesdk-cmake and nativesdk-qtbase-tools
# (revalidate after 2017-10-15, 2018-06-12: still required)
DIRFILES_pn-nativesdk-cmake = "1"
# For https://jira.automotivelinux.org/browse/SPEC-1629 :
# We exclude the conflicting vars from the sstate task hash.
# This needs to be verified.
do_package_write_rpm[vardepsexclude] += "ARCHIVER_TOPDIR PF"
# Set preferred provider to new navi application
PREFERRED_RPROVIDER_virtual/navigation ?= "ondemandnavi"
# Set preferred provider for low-can device mapping configuration
PREFERRED_RPROVIDER_virtual/low-can-dev-mapping ?= "dev-mapping"
# Mask upstream meta-security bbappend that interferes with non-linux-yocto
# kernels due to the bug of having two wildcards, which bitbake does not
# support. Not having it is not an issue, since there is also explicit
# enabling of required security features done by meta-agl/meta-security.
BBMASK += "meta-security/recipes-kernel/linux/linux-%_5.%.bbappend"
# Workaround for https://jira.automotivelinux.org/browse/SPEC-3621
# TLDR: do_image_wic will modify the target's /etc/fstab while
# do_image_tar and do_image_ext4 can run in parallel
# This needs to be fixed upstream:
# See https://bugzilla.yoctoproject.org/show_bug.cgi?id=13994
# For convenience restricted to ext4 and tar image types.
AGL_FORBID_FSTAB_UPDATE ?= "${@bb.utils.contains_any('IMAGE_FSTYPES', 'ext4 ext4.xz tar tar.gz tar.bz2 tar.xz', '--no-fstab-update', '', d)}"
WIC_CREATE_EXTRA_ARGS_append = " ${AGL_FORBID_FSTAB_UPDATE}"
|