Compare commits

...
3 Commits
Author SHA1 Message Date
rboullard 03b19ccd1d Wayland (#8)
Docker Builders / build-base-builder (push) Successful in 16s
Docker Builders / build-cpp-builder (push) Successful in 3m33s
Reviewed-on: #8
2026-09-11 20:24:09 +00:00
rboullard 5f598b22af Vulkan Update (#6)
Docker Builders / build-base-builder (push) Successful in 16s
Docker Builders / build-cpp-builder (push) Successful in 2m59s
Reviewed-on: #6
Co-authored-by: Romain BOULLARD <romain.boullard@protonmail.com>
2026-09-04 06:06:04 +00:00
rboullard d31b44b2a5 InferUpdate (#4)
Docker Builders / build-base-builder (push) Successful in 21s
Docker Builders / build-cpp-builder (push) Successful in 2m57s
Reviewed-on: #4
Co-authored-by: Romain BOULLARD <romain.boullard@protonmail.com>
2026-09-01 13:04:00 +00:00
3 changed files with 33 additions and 38 deletions
+2 -9
View File
@@ -5,19 +5,12 @@ ENV TZ=Europe/Paris \
DEBIAN_FRONTEND=noninteractive \ DEBIAN_FRONTEND=noninteractive \
PATH="/root/.local/bin:$PATH" PATH="/root/.local/bin:$PATH"
# Use build cache for ccache
RUN --mount=type=cache,target=/ccache
# Dummy sudo (no security weakening)
RUN echo '#!/bin/bash\n$@' > /usr/bin/sudo \ RUN echo '#!/bin/bash\n$@' > /usr/bin/sudo \
&& chmod +x /usr/bin/sudo && chmod +x /usr/bin/sudo
# Install base dependencies in one layer
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
unzip \ unzip \
curl \ curl \
wget \ wget \
lsb-release \ python3 \
software-properties-common \ pipx
gnupg \
python3
+20 -29
View File
@@ -1,25 +1,30 @@
# Build arguments
ARG BASE_BUILDER ARG BASE_BUILDER
# Base image
FROM $BASE_BUILDER FROM $BASE_BUILDER
# Install system dependencies
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
build-essential \ build-essential \
cppcheck \
ccache \
cmake \
ninja-build \
git \ git \
pkg-config \ libwayland-dev \
wget \ libxkbcommon-dev \
lsb-release \ lsb-release \
pkg-config \
software-properties-common \ software-properties-common \
pipx wayland-protocols \
weston \
xvfb
ENV PATH="/root/.local/bin:${PATH}" ENV PATH="/root/.local/bin:${PATH}"
# Headless Wayland test setup: a pre-created, correctly-permissioned XDG_RUNTIME_DIR (required
# by Wayland clients/compositors) plus a weston-run wrapper mirroring xvfb-run's ergonomics -
# starts Weston's headless backend, runs the given command against it, then tears it down.
RUN mkdir -p -m 700 /tmp/xdg-runtime
ENV XDG_RUNTIME_DIR=/tmp/xdg-runtime
COPY weston-run /usr/local/bin/weston-run
RUN chmod +x /usr/local/bin/weston-run
# Install LLVM 22 and symlink tools # Install LLVM 22 and symlink tools
RUN wget https://apt.llvm.org/llvm.sh -O /tmp/llvm.sh \ RUN wget https://apt.llvm.org/llvm.sh -O /tmp/llvm.sh \
&& chmod +x /tmp/llvm.sh \ && chmod +x /tmp/llvm.sh \
@@ -29,7 +34,8 @@ RUN wget https://apt.llvm.org/llvm.sh -O /tmp/llvm.sh \
done \ done \
&& rm -f /tmp/llvm.sh* && rm -f /tmp/llvm.sh*
RUN VERSION=1.2.0; \ # Install Infer
RUN VERSION=1.3.0; \
curl -sSL "https://github.com/facebook/infer/releases/download/v$VERSION/infer-linux-x86_64-v$VERSION.tar.xz" \ curl -sSL "https://github.com/facebook/infer/releases/download/v$VERSION/infer-linux-x86_64-v$VERSION.tar.xz" \
| tar -C /opt -xJ && \ | tar -C /opt -xJ && \
ln -s "/opt/infer-linux-x86_64-v$VERSION/bin/infer" /usr/bin/infer ln -s "/opt/infer-linux-x86_64-v$VERSION/bin/infer" /usr/bin/infer
@@ -38,29 +44,14 @@ RUN VERSION=1.2.0; \
RUN pipx install conan \ RUN pipx install conan \
&& pipx install gcovr && pipx install gcovr
# Build and install mold # Install Vulkan SDK 1.4.350.0
RUN git clone --branch v2.41.0 https://github.com/rui314/mold.git /tmp/mold \ RUN wget -q https://sdk.lunarg.com/sdk/download/1.4.350.0/linux/vulkansdk-linux-x86_64-1.4.350.0.tar.xz \
&& cd /tmp/mold \
&& cmake . -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER=clang++ \
-B build \
&& cmake --build build -j$(nproc) \
&& cmake --install build \
&& rm -rf /tmp/mold
# Configure Conan with custom profiles and remote
RUN conan config install https://git.romainboullard.com/BigfootDev/ConanProfiles.git --args="--branch main" \
&& conan remote add bigfootpackages https://conan.romainboullard.com/artifactory/api/conan/BigfootPackages \
&& conan remote disable conancenter
# Install Vulkan SDK 1.4.341.0
RUN wget -q https://sdk.lunarg.com/sdk/download/1.4.341.0/linux/vulkansdk-linux-x86_64-1.4.341.0.tar.xz \
-O /tmp/vulkansdk.tar.xz \ -O /tmp/vulkansdk.tar.xz \
&& mkdir -p /opt/vulkan \ && mkdir -p /opt/vulkan \
&& tar -xf /tmp/vulkansdk.tar.xz -C /opt/vulkan \ && tar -xf /tmp/vulkansdk.tar.xz -C /opt/vulkan \
&& rm /tmp/vulkansdk.tar.xz && rm /tmp/vulkansdk.tar.xz
ENV VULKAN_SDK=/opt/vulkan/1.4.341.0/x86_64 ENV VULKAN_SDK=/opt/vulkan/1.4.350.0/x86_64
ENV PATH="${VULKAN_SDK}/bin:${PATH}" ENV PATH="${VULKAN_SDK}/bin:${PATH}"
ENV LD_LIBRARY_PATH="${VULKAN_SDK}/lib:${LD_LIBRARY_PATH}" ENV LD_LIBRARY_PATH="${VULKAN_SDK}/lib:${LD_LIBRARY_PATH}"
ENV VK_LAYER_PATH="${VULKAN_SDK}/share/vulkan/explicit_layer.d" ENV VK_LAYER_PATH="${VULKAN_SDK}/share/vulkan/explicit_layer.d"
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
# Runs the given command against a headless Weston compositor, mirroring xvfb-run's ergonomics
# for Wayland. Usage: weston-run <command> [args...]
weston --backend=headless-backend.so --shell=kiosk-shell.so --socket=wayland-headless &
WESTON_PID=$!
sleep 1
WAYLAND_DISPLAY=wayland-headless "$@"
STATUS=$?
kill "$WESTON_PID" 2>/dev/null
wait "$WESTON_PID" 2>/dev/null
exit "$STATUS"