6 ############### Install packages for building
7 dpkg
--add-architecture ${DEBIAN_ARCH}
8 echo 'deb-src https://deb.debian.org/debian testing main' > /etc
/apt
/sources.list.d
/deb-src.list
10 apt-get
-y install ca-certificates
11 apt-get
-y install --no-install-recommends \
12 crossbuild-essential-
${DEBIAN_ARCH} \
51 libdrm-dev
:${DEBIAN_ARCH} \
52 libx11-dev
:${DEBIAN_ARCH} \
53 libxxf86vm-dev
:${DEBIAN_ARCH} \
54 libexpat1-dev
:${DEBIAN_ARCH} \
55 libsensors-dev
:${DEBIAN_ARCH} \
56 libxfixes-dev
:${DEBIAN_ARCH} \
57 libxdamage-dev
:${DEBIAN_ARCH} \
58 libxext-dev
:${DEBIAN_ARCH} \
59 x11proto-dev
:${DEBIAN_ARCH} \
60 libx11-xcb-dev
:${DEBIAN_ARCH} \
61 libxcb-dri2-0-dev
:${DEBIAN_ARCH} \
62 libxcb-glx0-dev
:${DEBIAN_ARCH} \
63 libxcb-xfixes0-dev
:${DEBIAN_ARCH} \
64 libxcb-dri3-dev
:${DEBIAN_ARCH} \
65 libxcb-present-dev
:${DEBIAN_ARCH} \
66 libxcb-randr0-dev
:${DEBIAN_ARCH} \
67 libxcb-sync-dev
:${DEBIAN_ARCH} \
68 libxrandr-dev
:${DEBIAN_ARCH} \
69 libxshmfence-dev
:${DEBIAN_ARCH} \
70 libelf-dev
:${DEBIAN_ARCH} \
71 zlib1g-dev
:${DEBIAN_ARCH} \
72 libglvnd-core-dev
:${DEBIAN_ARCH} \
73 libgles2-mesa-dev
:${DEBIAN_ARCH} \
74 libegl1-mesa-dev
:${DEBIAN_ARCH} \
75 libpng-dev
:${DEBIAN_ARCH}
78 ############### Install lavacli (remove after it's back into Debian testing)
80 wget
-qO- https
://git.lavasoftware.org
/lava
/lavacli
/-/archive
/v0.9
.8/lavacli-v0.9
.8.
tar.gz |
tar -xz --strip-components=1 -C lavacli
82 python3 .
/setup.py
install
86 ############### Cross-build dEQP
87 mkdir
-p /artifacts
/rootfs
/deqp
89 git config
--global user.email
"mesa@example.com"
90 git config
--global user.name
"Mesa CI"
91 # XXX: Use --depth 1 once we can drop the cherry-picks.
93 https
://github.com
/KhronosGroup
/VK-GL-CTS.git \
94 -b opengl-es-cts-3.2
.5.1 \
97 # Fix surfaceless build
98 git cherry-pick
-x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
99 git cherry-pick
-x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
101 # surfaceless links against libkms and such despite not using it.
102 sed -i '/gbm/d' targets
/surfaceless
/surfaceless.cmake
103 sed -i '/libkms/d' targets
/surfaceless
/surfaceless.cmake
104 sed -i '/libgbm/d' targets
/surfaceless
/surfaceless.cmake
106 python3 external
/fetch_sources.py
108 cd /artifacts
/rootfs
/deqp
110 -DDEQP_TARGET=surfaceless \
111 -DCMAKE_BUILD_TYPE=Release \
112 -DCMAKE_C_COMPILER=${GCC_ARCH}-gcc \
113 -DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++ \
116 rm -rf /artifacts
/rootfs
/deqp
/external
117 rm -rf /artifacts
/rootfs
/deqp
/modules
/gles31
118 rm -rf /artifacts
/rootfs
/deqp
/modules
/internal
119 rm -rf /artifacts
/rootfs
/deqp
/executor
120 rm -rf /artifacts
/rootfs
/deqp
/execserver
121 rm -rf /artifacts
/rootfs
/deqp
/modules
/egl
122 rm -rf /artifacts
/rootfs
/deqp
/framework
123 find .
-name CMakeFiles |
xargs rm -rf
124 find .
-name lib\
*.a |
xargs rm -rf
126 rm -rf /VK-GL-CTS-opengl-es-cts-3.2
.5.0
129 ############### Cross-build Volt dEQP runner
132 wget https
://github.com
/VoltLang
/Battery
/releases
/download
/v0.1
.23/battery-0.1
.23-x86_64-linux.
tar.gz
133 tar xzvf battery-0.1
.23-x86_64-linux.
tar.gz
134 rm battery-0.1
.23-x86_64-linux.
tar.gz
135 mv battery
/usr
/local
/bin
140 mkdir
-p Watt Volta dEQP
141 wget
-qO- https
://github.com
/VoltLang
/Watt
/archive
/v0.1
.3.
tar.gz |
tar -xz --strip-components=1 -C .
/Watt
142 wget
-qO- https
://github.com
/VoltLang
/Volta
/archive
/v0.1
.3.
tar.gz |
tar -xz --strip-components=1 -C .
/Volta
143 wget
-qO- https
://github.com
/Wallbraker
/dEQP
/archive
/v0.1
.4.
tar.gz |
tar -xz --strip-components=1 -C .
/dEQP
144 battery config
--release --lto Volta Watt
146 battery config
--arch ${VOLT_ARCH} --cmd-volta Volta
/volta Volta
/rt Watt dEQP
148 rm /usr
/local
/bin
/battery
149 cp dEQP
/deqp
/artifacts
/rootfs
/deqp
/deqp-volt
153 ############### Remove LLVM now, so the container image is smaller
154 apt-get
-y remove \
*llvm\
*
157 ############### Cross-build kernel
158 KERNEL_URL
="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/snapshot/linux-5.3-rc8.tar.gz"
159 export ARCH
=${KERNEL_ARCH}
160 export CROSS_COMPILE
="${GCC_ARCH}-"
163 wget
-qO- ${KERNEL_URL} |
tar -xz --strip-components=1 -C /kernel
165 .
/scripts
/kconfig
/merge_config.sh
${DEFCONFIG} /tmp
/clone
/.gitlab-ci
/${KERNEL_ARCH}.config
166 make -j12 ${KERNEL_IMAGE_NAME} dtbs
167 cp arch
/${KERNEL_ARCH}/boot
/${KERNEL_IMAGE_NAME} /artifacts
/.
168 cp ${DEVICE_TREES} /artifacts
/.
172 ############### Create rootfs
173 cp /tmp
/clone
/.gitlab-ci
/create-rootfs.sh
/artifacts
/rootfs
/.
174 mkdir
-p /artifacts
/rootfs
/bin
175 cp /usr
/bin
/qemu-aarch64-static
/artifacts
/rootfs
/bin
176 cp /usr
/bin
/qemu-arm-static
/artifacts
/rootfs
/bin
179 debootstrap
--variant=minbase
--arch=${DEBIAN_ARCH} testing
/artifacts
/rootfs
/ http
://deb.debian.org
/debian
180 cat /artifacts
/rootfs
/debootstrap
/debootstrap.log
182 chroot
/artifacts
/rootfs sh
/create-rootfs.sh
184 rm /artifacts
/rootfs
/bin
/qemu-arm-static
185 rm /artifacts
/rootfs
/bin
/qemu-aarch64-static
186 rm /artifacts
/rootfs
/create-rootfs.sh