mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2024-12-03 23:24:17 +08:00
db2c14887b
The rootfs generation is failing due to issues with the deqp and crosvm build stages. == crosvm == This week, crates.io released the bindgen cargo package at version 0.61.0, but this version could not be installed via `cargo install bindgen ...`, setting the version to the previous one to avoid breaking the Mesa rootfs builds. See also related failed job: https://gitlab.freedesktop.org/gallo/mesa/-/jobs/30046963 == deqp == The deqp build is failing due to the missing archive of an old zlib release version, which was deleted due to a CVE, see zlib 1.2.13 release notes. As the deqp uprev to 1.3.4.0, which contains the fix, was not straightforward, let's only apply the necessary patch to fix zlib source code download link and then remove this indirection in an eventual deqp uprev. Example of a failed kernel+rootfs build job: https://gitlab.freedesktop.org/gallo/mesa/-/jobs/30045324 Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com> Reviewed-by: Yonggang Luo <luoyonggang@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19183>
99 lines
3.3 KiB
Bash
99 lines
3.3 KiB
Bash
#!/bin/bash
|
|
# shellcheck disable=SC2086 # we want word splitting
|
|
|
|
set -ex
|
|
|
|
git config --global user.email "mesa@example.com"
|
|
git config --global user.name "Mesa CI"
|
|
git clone \
|
|
https://github.com/KhronosGroup/VK-GL-CTS.git \
|
|
-b vulkan-cts-1.3.3.0 \
|
|
--depth 1 \
|
|
/VK-GL-CTS
|
|
pushd /VK-GL-CTS
|
|
|
|
# Apply a patch to update zlib link to an available version.
|
|
# vulkan-cts-1.3.3.0 uses zlib 1.2.12 which was removed from zlib server due to
|
|
# a CVE. See https://zlib.net/
|
|
# FIXME: Remove this patch when uprev to 1.3.4.0+
|
|
wget -O- https://github.com/KhronosGroup/VK-GL-CTS/commit/6bb2e7d64261bedb503947b1b251b1eeeb49be73.patch |
|
|
git am -
|
|
|
|
# --insecure is due to SSL cert failures hitting sourceforge for zlib and
|
|
# libpng (sigh). The archives get their checksums checked anyway, and git
|
|
# always goes through ssh or https.
|
|
python3 external/fetch_sources.py --insecure
|
|
|
|
mkdir -p /deqp
|
|
|
|
# Save the testlog stylesheets:
|
|
cp doc/testlog-stylesheet/testlog.{css,xsl} /deqp
|
|
popd
|
|
|
|
pushd /deqp
|
|
# When including EGL/X11 testing, do that build first and save off its
|
|
# deqp-egl binary.
|
|
cmake -S /VK-GL-CTS -B . -G Ninja \
|
|
-DDEQP_TARGET=x11_egl_glx \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
$EXTRA_CMAKE_ARGS
|
|
ninja modules/egl/deqp-egl
|
|
cp /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-x11
|
|
|
|
|
|
cmake -S /VK-GL-CTS -B . -G Ninja \
|
|
-DDEQP_TARGET=${DEQP_TARGET:-x11_glx} \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
$EXTRA_CMAKE_ARGS
|
|
ninja
|
|
|
|
mv /deqp/modules/egl/deqp-egl-x11 /deqp/modules/egl/deqp-egl
|
|
|
|
# Copy out the mustpass lists we want.
|
|
mkdir /deqp/mustpass
|
|
for mustpass in $(< /VK-GL-CTS/external/vulkancts/mustpass/main/vk-default.txt) ; do
|
|
cat /VK-GL-CTS/external/vulkancts/mustpass/main/$mustpass \
|
|
>> /deqp/mustpass/vk-master.txt
|
|
done
|
|
|
|
cp \
|
|
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \
|
|
/deqp/mustpass/.
|
|
cp \
|
|
/deqp/external/openglcts/modules/gl_cts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-master.txt \
|
|
/deqp/mustpass/.
|
|
cp \
|
|
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/khronos_mustpass/3.2.6.x/*-master.txt \
|
|
/deqp/mustpass/.
|
|
cp \
|
|
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass/4.6.1.x/*-master.txt \
|
|
/deqp/mustpass/.
|
|
cp \
|
|
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gl/khronos_mustpass_single/4.6.1.x/*-single.txt \
|
|
/deqp/mustpass/.
|
|
|
|
# Save *some* executor utils, but otherwise strip things down
|
|
# to reduct deqp build size:
|
|
mkdir /deqp/executor.save
|
|
cp /deqp/executor/testlog-to-* /deqp/executor.save
|
|
rm -rf /deqp/executor
|
|
mv /deqp/executor.save /deqp/executor
|
|
|
|
# Remove other mustpass files, since we saved off the ones we wanted to conventient locations above.
|
|
rm -rf /deqp/external/openglcts/modules/gl_cts/data/mustpass
|
|
rm -rf /deqp/external/vulkancts/modules/vulkan/vk-master*
|
|
rm -rf /deqp/external/vulkancts/modules/vulkan/vk-default
|
|
|
|
rm -rf /deqp/external/openglcts/modules/cts-runner
|
|
rm -rf /deqp/modules/internal
|
|
rm -rf /deqp/execserver
|
|
rm -rf /deqp/framework
|
|
# shellcheck disable=SC2038,SC2185 # TODO: rewrite find
|
|
find -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' | xargs rm -rf
|
|
${STRIP_CMD:-strip} external/vulkancts/modules/vulkan/deqp-vk
|
|
${STRIP_CMD:-strip} external/openglcts/modules/glcts
|
|
${STRIP_CMD:-strip} modules/*/deqp-*
|
|
du -sh ./*
|
|
rm -rf /VK-GL-CTS
|
|
popd
|