libxkbcommon-dev
libxtables-dev
libzstd-dev
+ linux-tools-generic
mold
mount
net-tools
pip3 install --user -r .github/workflows/requirements.txt --require-hashes --break-system-packages
export PATH="$HOME/.local/bin:$PATH"
+# TODO: drop after we switch to ubuntu 26.04
+bpftool_dir=$(dirname "$(find /usr/lib/linux-tools/ /usr/lib/linux-tools-* -name 'bpftool' -perm /u=x 2>/dev/null | sort -r | head -n1)")
+if [ -n "$bpftool_dir" ]; then
+ export PATH="$bpftool_dir:$PATH"
+fi
+
if [[ -n "$CUSTOM_PYTHON" ]]; then
# If CUSTOM_PYTHON is set we need to pull jinja2 from pip, as a local interpreter is used
pip3 install --user --break-system-packages jinja2
meson setup \
-Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true --werror \
-Dnobody-group=nogroup -Ddebug=false \
- -Dbpf-framework=disabled \
$args build; then
cat build/meson-logs/meson-log.txt
libtss2-dev
libxkbcommon-dev
libzstd-dev
+ linux-tools-generic
python3-libevdev
python3-pip
python3-pyelftools
capsh --drop=all -- -c "stat $PWD/meson.build"
;;
RUN|RUN_GCC|RUN_CLANG|RUN_CLANG_RELEASE)
+ # TODO: drop after we switch to ubuntu 26.04
+ bpftool_dir=$(dirname "$(find /usr/lib/linux-tools/ /usr/lib/linux-tools-* -name 'bpftool' -perm /u=x 2>/dev/null | sort -r | head -n1)")
+ if [ -n "$bpftool_dir" ]; then
+ export PATH="$bpftool_dir:$PATH"
+ fi
+
if [[ "$phase" =~ ^RUN_CLANG ]]; then
export CC=clang
export CXX=clang++
fi
MESON_ARGS+=(--fatal-meson-warnings)
- run_meson -Dnobody-group=nogroup --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true -Dbpf-framework=disabled "${MESON_ARGS[@]}" build
+ run_meson -Dnobody-group=nogroup --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true "${MESON_ARGS[@]}" build
ninja -C build -v
# Ensure setting a timezone (like the reproducible build tests do) does not break time/date unit tests
TZ=GMT+12 meson test "${MESON_TEST_ARGS[@]}" -C build --print-errorlogs
;;
RUN_ASAN_UBSAN|RUN_GCC_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN_NO_DEPS)
+ # TODO: drop after we switch to ubuntu 26.04
+ bpftool_dir=$(dirname "$(find /usr/lib/linux-tools/ /usr/lib/linux-tools-* -name 'bpftool' -perm /u=x 2>/dev/null | sort -r | head -n1)")
+ if [ -n "$bpftool_dir" ]; then
+ export PATH="$bpftool_dir:$PATH"
+ fi
+
MESON_ARGS=(--optimization=1)
if [[ "$phase" =~ ^RUN_CLANG_ASAN_UBSAN ]]; then
fi
fi
MESON_ARGS+=(--fatal-meson-warnings)
- run_meson -Dnobody-group=nogroup --werror -Dtests=unsafe -Db_sanitize=address,undefined -Dbpf-framework=disabled "${MESON_ARGS[@]}" build
+ run_meson -Dnobody-group=nogroup --werror -Dtests=unsafe -Db_sanitize=address,undefined "${MESON_ARGS[@]}" build
ninja -C build -v
export ASAN_OPTIONS=strict_string_checks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1