aboutsummaryrefslogtreecommitdiffstats
path: root/coin/module_config.yaml
blob: e467be40c1697147be9732ae7bea329f97eb8fa9 (plain)
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: []