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
|
version: 1
accept_configuration:
condition: and
conditions:
- condition: property
property: host.osVersion
equals_value: Ubuntu_18_04
- condition: property
property: target.osVersion
equals_value: QEMU
- condition: property
property: target.arch
in_values: [ARMv7, ARM64]
environment: &environment
type: Group
instructions:
- type: EnvironmentVariable
variableName: POKY_SHA1
variableValue: 1abffc542a0571f0d1512b92c1a59d138cf3ea6a
- type: EnvironmentVariable
variableName: OE_SHA1
variableValue: b2baaae2711d098c06423858662e29a8375fe6b8
- type: EnvironmentVariable
variableName: MACHINE
variableValue: qemuarm64
enable_if:
condition: property
property: target.arch
equals_value: ARM64
- type: EnvironmentVariable
variableName: MACHINE
variableValue: qemux86
enable_if:
condition: property
property: target.arch
equals_value: ARMv7
build_instructions:
- *environment
- type: SetBuildDirectory
directory: "{{.AgentWorkingDir}}/build"
- type: MakeDirectory
directory: "{{.BuildDir}}"
- type: ChangeDirectory
directory: "{{.BuildDir}}"
- type: ExecuteCommand
command: ["sudo", "mkdir", "-p", "/mnt/yocto-cache"]
userMessageOnFailure: "Could not create '/mnt/yocto-cache' directory"
- type: ExecuteCommand
command: ["sudo", "mount", "yocto-cache.intra.qt.io:/srv/yocto-cache", "/mnt/yocto-cache"]
userMessageOnFailure: "Could not mount yocto cache."
- type: WriteFile
fileContents: |
# https://github.com/shr-project/jenkins-jobs/blob/master/jenkins-job.sh
INHERIT += "reproducible_build_simple"
# We want musl and glibc to share the same tmpfs, so instead of appending default "-${TCLIBC}" we append "fs"
TCLIBCAPPEND = "fs"
PREFERRED_PROVIDER_udev = "systemd"
PREFERRED_PROVIDER_virtual/fftw = "fftw"
# use gold
DISTRO_FEATURES_append = " ld-is-gold"
# use ptest
DISTRO_FEATURES_append = " ptest"
# use systemd
DISTRO_FEATURES_append = " systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
VIRTUAL-RUNTIME_init_manager = "systemd"
VIRTUAL-RUNTIME_initscripts = ""
# use opengl
DISTRO_FEATURES_append = " opengl"
# use wayland to fix building weston and qtwayland
DISTRO_FEATURES_append = " wayland"
PREFERRED_PROVIDER_jpeg = "libjpeg-turbo"
PREFERRED_PROVIDER_jpeg-native = "libjpeg-turbo-native"
PREFERRED_PROVIDER_gpsd = "gpsd"
PREFERRED_PROVIDER_e-wm-sysactions = "e-wm"
ESYSACTIONS = "e-wm-sysactions"
# don't pull libhybris unless explicitly asked for
PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
PREFERRED_PROVIDER_virtual/egl ?= "mesa"
# to fix fsoaudiod, alsa-state conflict in shr-image-all
VIRTUAL-RUNTIME_alsa-state = ""
# to prevent alsa-state being pulled into -dev or -dbg images
RDEPENDS_${PN}-dev_pn-alsa-state = ""
RDEPENDS_${PN}-dbg_pn-alsa-state = ""
# to fix dependency on conflicting x11-common from packagegroup-core-x11
VIRTUAL-RUNTIME_xserver_common ?= "xserver-common"
RDEPENDS_${PN}-dev_pn-x11-common = ""
RDEPENDS_${PN}-dbg_pn-x11-common = ""
# to fix apm, fso-apm conflict in shr-image-all
VIRTUAL-RUNTIME_apm = "fso-apm"
# require conf/distro/include/qt5-versions.inc
# QT5_VERSION = "5.4.0+git%"
# for qtwebkit etc
# see https://bugzilla.yoctoproject.org/show_bug.cgi?id=5013
# DEPENDS_append_pn-qtbase = " mesa"
PACKAGECONFIG_append_pn-qtbase = " icu gl accessibility freetype fontconfig"
# qtwayland doesn't like egl and xcomposite-glx enabled at the same time
# http://lists.openembedded.org/pipermail/openembedded-devel/2016-December/110444.html
PACKAGECONFIG_remove_pn-qtwayland = "xcomposite-egl xcomposite-glx"
# for webkit-efl
PACKAGECONFIG_append_pn-harfbuzz = " icu"
inherit blacklist
# PNBLACKLIST[samsung-rfs-mgr] = "needs newer libsamsung-ipc with negative D_P: Requested 'samsung-ipc-1.0 >= 0.2' but version of libsamsung-ipc is 0.1.0"
PNBLACKLIST[android-system] = "depends on lxc from meta-virtualiazation which isn't included in my world builds"
PNBLACKLIST[bigbuckbunny-1080p] = "big and doesn't really need to be tested so much"
PNBLACKLIST[bigbuckbunny-480p] = "big and doesn't really need to be tested so much"
PNBLACKLIST[bigbuckbunny-720p] = "big and doesn't really need to be tested so much"
PNBLACKLIST[bigbuckbunny-720p] = "big and doesn't really need to be tested so much"
PNBLACKLIST[tearsofsteel-1080p] = "big and doesn't really need to be tested so much"
PNBLACKLIST[build-appliance-image] = "tries to include whole downloads directory in /home/builder/poky :/"
# enable reporting
# needs http://patchwork.openembedded.org/patch/68735/
#ERR_REPORT_SERVER = "errors.yoctoproject.org"
#ERR_REPORT_PORT = "80"
#ERR_REPORT_USERNAME = "Martin Jansa"
#ERR_REPORT_EMAIL = "Martin.Jansa@gmail.com"
#ERR_REPORT_UPLOAD_FAILURES = "1"
#INHERIT += "report-error"
# needs patch with buildstats-summary.bbclass
INHERIT += "buildstats buildstats-summary"
# be more strict with QA warnings, turn them all to errors:
ERROR_QA_append = " ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi textrel already-stripped incompatible-license files-invalid installed-vs-shipped compile-host-path install-host-path pn-overrides infodir build-deps unknown-configure-option symlink-to-sysroot multilib invalid-packageconfig host-user-contaminated uppercase-pn"
WARN_QA_remove = " ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi textrel already-stripped incompatible-license files-invalid installed-vs-shipped compile-host-path install-host-path pn-overrides infodir build-deps unknown-configure-option symlink-to-sysroot multilib invalid-packageconfig host-user-contaminated uppercase-pn"
# enable thumb for broader test coverage (oe-core autobuilder doesn't have thumb enabled)
PREFERRED_ARM_INSTRUCTION_SET ?= "thumb"
ARM_INSTRUCTION_SET = "${PREFERRED_ARM_INSTRUCTION_SET}"
# use musl for qemux86 and qemux86copy
TCLIBC_qemux86 = "musl"
TCLIBC_qemux86copy = "musl"
# limit parallel make to avoid OOM
PARALLEL_MAKE_pn-qtwebkit = "-j 8"
filename: "{{.BuildDir}}/world_fixes.inc"
fileMode: 420
- type: WriteFile
fileContents: |
#!/bin/bash -xe
git clone git://git.yoctoproject.org/poky --reference /mnt/yocto-cache/mirror/poky.git
(cd poky; git checkout ${POKY_SHA1})
git clone git://github.com/openembedded/meta-openembedded --reference /mnt/yocto-cache/mirror/meta-openembedded.git
(cd meta-openembedded; git checkout ${OE_SHA1})
source ./poky/oe-init-build-env
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE SSTATE_DIR DL_DIR"
export DL_DIR=/mnt/yocto-cache/downloads
export BB_GENERATE_MIRROR_TARBALLS=1
export SSTATE_DIR=/mnt/yocto-cache/sstate-caches/$(sed -n -e "s/DISTRO_CODENAME.*\"\(.*\)\"/\1/p" ../poky/meta-*/conf/distro/poky.conf)
bitbake-layers add-layer ../meta-openembedded/meta-oe
bitbake-layers add-layer ${SOURCE_DIR}
echo 'require ../world_fixes.inc' >> conf/local.conf
# EXCLUDE_FROM_WORLD
rm -f ${SOURCE_DIR}/recipes-qt/examples/qt5-opengles2-test_git.bb
rm -r ${SOURCE_DIR}/recipes-python/pyqt5/python-pyqt5_5.13.2.bb
bitbake $(find ${SOURCE_DIR} -name *.bb | xargs -n1 basename | sed -e 's/\([^._]*\).*/\1/')
filename: "{{.BuildDir}}/start-build"
fileMode: 420
- type: ExecuteCommand
command: ["chmod", "+x", "{{.BuildDir}}/start-build"]
userMessageOnFailure: "Could not add execution right to the start-build."
- type: EnvironmentVariable
variableName: DL_DIR
variableValue: "/mnt/yocto-cache/downloads"
- type: EnvironmentVariable
variableName: SOURCE_DIR
variableValue: "{{.SourceDir}}"
- type: ExecuteCommand
command: ["{{.BuildDir}}/start-build"]
maxTimeInSeconds: 28800
maxTimeBetweenOutput: 28800
userMessageOnFailure: "Build failed."
- type: ExecuteCommand
command: ["sudo", "umount", "/mnt/yocto-cache"]
userMessageOnFailure: "Unmounting cache failed."
test_instructions: []
|