genymobile-scrcpy
FAILURE
116m 46s
History Source
SummaryIterations3Transcript55Dockerfile
01Iteration 1
WRITEWriteFile· step #1
0s
Dockerfile697 bytes written
text31 lines · 697 chars
FROM ubuntu:jammy-20260509

ENV DEBIAN_FRONTEND=noninteractive

# Install build dependencies
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential \
        meson \
        ninja-build \
        pkg-config \
        libavformat-dev \
        libavcodec-dev \
        libavutil-dev \
        libswresample-dev \
        libsdl3-dev \
        libusb-1.0-0-dev \
        zlib1g-dev && \
    rm -rf /var/lib/apt/lists/*

# Prepare build
WORKDIR /workspace
COPY . .

RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Use a minimal entrypoint
CMD ["/bin/bash"]
VERIFYVerifyBuild· step #2
1m 02s
VerifyBuildbuild_failed
Build error
- Failing step
  - Dockerfile [2/5] RUN apt-get update &&     apt-get install -y --no-install-recommends         build-essential         meson         ninja-build         pkg-config         libavformat-dev         libavcodec-dev         libavutil-dev         libswresample-dev         libsdl3-dev         libusb-1.0-0-dev         zlib1g-dev &&     rm -rf /var/lib/apt/lists/*

- Exact error message and exit code
  - Error: E: Unable to locate package libsdl3-dev
  - Exit code: 100

- Missing packages or files mentioned
  - libsdl3-dev (not found in apt repositories for the base image)

- Version/base image context
  - Base image: ubuntu:jammy-20260509
  - Version mismatch info: None explicitly reported; the failure is that libsdl3-dev could not be located in the jammy repositories for this tag.
WRITEWriteFile· step #3
0s
Dockerfile804 bytes written
text33 lines · 804 chars
FROM ubuntu:jammy-20260509

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        software-properties-common \
        ca-certificates && \
    add-apt-repository -y universe && \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential \
        meson \
        ninja-build \
        pkg-config \
        libavformat-dev \
        libavcodec-dev \
        libavutil-dev \
        libswresample-dev \
        libsdl3-dev \
        libusb-1.0-0-dev \
        zlib1g-dev && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /workspace
COPY . .

RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

CMD ["/bin/bash"]
VERIFYVerifyBuild· step #4
1m 24s
VerifyBuildbuild_failed
Build error
- Exact error message and exit code
  - E: Unable to locate package libsdl3-dev
  - Exit code: 100

- Failing command/step
  - The RUN step in Dockerfile:
    RUN apt-get update &&     apt-get install -y --no-install-recommends         software-properties-common         ca-certificates &&     add-apt-repository -y universe &&     apt-get update &&     apt-get install -y --no-install-recommends         build-essential         meson         ninja-build         pkg-config         libavformat-dev         libavcodec-dev         libavutil-dev         libswresample-dev         libsdl3-dev         libusb-1.0-0-dev         zlib1g-dev &&     rm -rf /var/lib/apt/lists/*
  - Failing part: attempting to install libsdl3-dev

- Missing packages or files mentioned
  - libsdl3-dev (not found in apt sources for this base image/release)

- Version mismatch info
  - Base image used: ubuntu:jammy-20260509 (jammy, 22.04) with a specific sha256
  - The libsdl3-dev package is not locatable in the jammy repositories for this tag, indicating a possible mismatch/incompatibility between this particular jammy-20260509 image and the SDL3 development package availability.
DOCKERDockerImageSearch· step #5
1s
search docker hublibsdl3-dev ubuntu image10 results
show lines10
ubuntu/squid (128 stars): Squid is a caching proxy for the Web. Long-term versions maintained by Canonical
ubuntu/nginx (141 stars): Nginx, a high-performance reverse proxy & web server. Long-term tracks maintaine
ubuntu/bind9 (119 stars): BIND 9 is a very flexible, full-featured DNS system. Long-term versions maintain
ubuntu/kafka (60 stars): Apache Kafka, a distributed event streaming platform. Long-term tracks maintaine
ubuntu/apache2 (104 stars): Apache, a secure & extensible open-source HTTP server. Long-term tracks maintain
ubuntu/zookeeper (14 stars): ZooKeeper maintains configuration information centrally. Long-term tracks mainta
ubuntu/prometheus (80 stars): Prometheus is a systems and service monitoring system. Long-term versions mainta
ubuntu/mysql (74 stars): MySQL open source fast, stable, multi-thread SQL database. Long-term tracks main
ubuntu/dotnet-aspnet (26 stars): Chiselled Ubuntu runtime image for ASP.NET apps. Long-term tracks maintained by 
ubuntu/jre (25 stars): Chiseled Java runtime based on Ubuntu. Long-term tracks maintained by Canonical.
WRITEWriteFile· step #6
0s
Dockerfile795 bytes written
text33 lines · 795 chars
FROM ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        software-properties-common \
        ca-certificates && \
    add-apt-repository -y universe && \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential \
        meson \
        ninja-build \
        pkg-config \
        libavformat-dev \
        libavcodec-dev \
        libavutil-dev \
        libswresample-dev \
        libsdl3-dev \
        libusb-1.0-0-dev \
        zlib1g-dev && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /workspace
COPY . .

RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

CMD ["/bin/bash"]
VERIFYVerifyBuild· step #7
1m 31s
VerifyBuildbuild_failed
Build error
Summary of Docker build error

- Exact error message and exit code
  - E: Unable to locate package libsdl3-dev
  - exit code: 100

- Failing command/step
  - Step: [2/5] RUN apt-get update &&     apt-get install -y --no-install-recommends         software-properties-common         ca-certificates &&     add-apt-repository -y universe &&     apt-get update &&     apt-get install -y --no-install-recommends         build-essential         meson         ninja-build         pkg-config         libavformat-dev         libavcodec-dev         libavutil-dev         libswresample-dev         libsdl3-dev         libusb-1.0-0-dev         zlib1g-dev &&     rm -rf /var/lib/apt/lists/*
  - The command failed while attempting to install libsdl3-dev.

- Missing packages or files mentioned
  - libsdl3-dev (not found in the configured apt repositories for the base image)

- Version mismatch info
  - Base image context: Ubuntu 22.04 (jammy) as shown by build metadata (ubuntu:22.04). No explicit version mismatch reported; the failure is due to libsdl3-dev not being locateable in the repo for that base image.
thoughtProceeding to update the Dockerfile to handle SDL3 availability more robustly by trying to install libsdl3-dev, and if unavailable, building SDL3 from source. Also will add a .dockerignore to optimize build context.
WRITEWriteFile· step #8
0s
Dockerfile1455 bytes written
text51 lines · 1455 chars
FROM ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive

RUN set -eux; \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        software-properties-common \
        ca-certificates \
        curl \
        git \
        build-essential \
        meson \
        ninja-build \
        pkg-config \
        cmake \
        libavformat-dev \
        libavcodec-dev \
        libavutil-dev \
        libswresample-dev \
        zlib1g-dev \
        libusb-1.0-0-dev \
        && rm -rf /var/lib/apt/lists/*

# Try to install SDL3 development headers; if unavailable, build SDL3 from source
RUN set -eux; \
    if apt-cache show libsdl3-dev >/dev/null 2>&1; then \
        echo "libsdl3-dev available, installing"; \
        apt-get update && \
        apt-get install -y --no-install-recommends libsdl3-dev && \
        rm -rf /var/lib/apt/lists/*; \
    else \
        echo "libsdl3-dev not available, building SDL3 from source"; \
        git clone https://github.com/libsdl-org/SDL.git /tmp/SDL; \
        mkdir -p /tmp/SDL/build; \
        cd /tmp/SDL/build; \
        cmake .. -DSDL_SHARED=ON -DSDL_STATIC=OFF; \
        cmake --build . -j$(nproc); \
        cmake --install .; \
        rm -rf /var/lib/apt/lists/* /tmp/SDL; \
    fi

WORKDIR /workspace
COPY . .

RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

CMD ["/bin/bash"]
WRITEWriteFile· step #9
0s
.dockerignore73 bytes written
dockerignore11 lines · 73 chars
git
node_modules
*.log
*.tmp
build
Dockerfile
.dockerignore
*.o
*.a
*.so
VERIFYVerifyBuild· step #10
10m 35s
VerifyBuildbuild_failed
- Status: VerifyBuild status: build_failed

- Build error
  - CMake Error following SDL3 configure: "SDL could not find X11 or Wayland development libraries on your system... On Linux, install the packages listed at https://wiki.libsdl.org/SDL3/README-linux#build-dependencies"
  - Configuring incomplete, errors occurred
  - Docker build exit code: 1

- Failing command/step
  - Step [3/6] RUN set -eux;     if apt-cache show libsdl3-dev >/dev/null 2>&1; then         echo "libsdl3-dev available, installing";         apt-get update &&         apt-get install -y --no-install-recommends libsdl3-dev &&         rm -rf /var/lib/apt/lists/*;     else         echo "libsdl3-dev not available, building SDL3 from source";         git clone https://github.com/libsdl-org/SDL.git /tmp/SDL;         mkdir -p /tmp/SDL/build;         cd /tmp/SDL/build;         cmake .. -DSDL_SHARED=ON -DSDL_STATIC=OFF;         cmake --build . -j$(nproc);         cmake --install .;         rm -rf /var/lib/apt/lists/* /tmp/SDL;     fi
  - The libsdl3-dev path was not available, so the build fell back to building SDL3 from source, which then failed during CMake configuration.

- Missing packages/files
  - libsdl3-dev not available (apt-cache show libsdl3-dev returned nothing)
  - SDL3 configuration warnings (missing development libs):
    - Could NOT find ALSA (missing: ALSA_LIBRARY ALSA_INCLUDE_DIR)
    - Could NOT find X11 (missing: X11_X11_INCLUDE_PATH X11_X11_LIB)
    - Could NOT find OpenGL (missing: OPENGL_opengl_LIBRARY OPENGL_glx_LIBRARY OPENGL_INCLUDE_DIR)
    - Could NOT find libdrm
    - Could NOT find FFmpeg (missing: FFmpeg_SWSCALE_INCLUDE_DIRS FFmpeg_SWSCALE_LIBRARY)
    - libudev.h not found
  - These missing pieces culminate in the SDL cmake failure.

- Version / environment
  - Base image: ubuntu:22.04 (Jammy)
  - SDL version referenced: SDL-3.5.0-release-3.4.0-764-g2ebf23014
  - SDL Build Platform: Platform: Linux-6.12.87-fly
  - Compiler/toolchain: GCC 11.4.0

- Actionable takeaway
  - Install Linux desktop/windowing development packages (X11 or Wayland libs) before building SDL3, or ensure libsdl3-dev is available for the base image.
  - If building from source, also provide missing deps: X11/Wayland, libudev, OpenGL, ALSA, FFmpeg, etc.
VERIFYVerifyBuild· step #11
5m 04s
VerifyBuildbuild_failed
Summary:

- VerifyBuild status: build_failed

- Error: CMake error during SDL3 configuration: SDL could not find X11 or Wayland development libraries on your system. Configuring incomplete. Exit code: 1. Call Stack: CMakeLists.txt:4466 (SDL_PrintSummary). See logs: /tmp/SDL/build/CMakeFiles/CMakeOutput.log, /tmp/SDL/build/CMakeFiles/CMakeError.log. Linux dependencies: install X11/Wayland dev libs per SDL3 README (build may skip check if desired).

- Failing command/step:
  Step: [3/6] RUN set -eux;     if apt-cache show libsdl3-dev >/dev/null 2>&1; then         echo "libsdl3-dev available, installing";         apt-get update &&         apt-get install -y --no-install-recommends libsdl3-dev &&         rm -rf /var/lib/apt/lists/*;     else         echo "libsdl3-dev not available, building SDL3 from source";         git clone https://github.com/libsdl-org/SDL.git /tmp/SDL;         mkdir -p /tmp/SDL/build;         cd /tmp/SDL/build;         cmake .. -DSDL_SHARED=ON -DSDL_STATIC=OFF;         cmake --build . -j$(nproc);         cmake --install .;         rm -rf /var/lib/apt/lists/* /tmp/SDL;     fi
  This command attempted to either install libsdl3-dev or build SDL from source, and it ultimately failed with exit code 1.

- Missing packages/files (from the log):
  - ALSA development library: ALSA_LIBRARY, ALSA_INCLUDE_DIR (could NOT find ALSA)
  - X11 development libraries: missing X11_X11_INCLUDE_PATH and X11_X11_LIB
  - OpenGL dependencies: Could NOT find OpenGL (multiple missing components)
  - libdrm and gbm libraries: Could NOT find libdrm, Could NOT find gbm
  - Wayland/X11 desktop window dependencies: SDL3 requires X11 or Wayland development libs
  - libunwind: No package 'libunwind' found; LIBC_HAS_WORKING_LIBUNWIND/LIBUNWIND checks failed
  - libudev: libudev.h not found
  - FFmpeg: Could NOT find FFmpeg (missing: FFmpeg_SWSCALE_INCLUDE_DIRS FFmpeg_SWSCALE_LIBRARY)

- Version/mismatch information:
  - SDL build details observed: SDL3 revision: SDL-3.5.0-release-3.4.0-764-g2ebf23014
  - Platform: Linux-6.12.87-fly
  - Build configuration: Platform 64-bit, Compiler: /usr/bin/cc
  - SDL3 configured with: Build Shared Library ON, Build Static Library OFF, SDL_SHARED=ON, SDL_STATIC=OFF, etc.
  - Note: libsdl3-dev was not available in apt, so the build attempted to compile SDL3 from source, which failed due to missing X11/Wayland development libraries.

Actionable next steps (brief):
- Install X11/Wayland development packages and other missing deps (examples): libx11-dev, libxext-dev, libxrandr-dev, libxcb-dev, libwayland-dev, libdrm-dev, libgbm-dev, libunwind-dev, libudev-dev, ffmpeg-dev (or FFmpeg SWSCALE headers).
- Re-run the build, or adjust to ensure apt-cache provides libsdl3-dev if preferred. If bypassing Windows-like desktop requirements is intentional, ensure SDL cmake options are set accordingly per SDL3 docs.
WRITEWriteFile· step #12
0s
Dockerfile1070 bytes written
text48 lines · 1070 chars
FROM ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive

RUN set -eux; \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        software-properties-common \
        ca-certificates \
        curl \
        git \
        build-essential \
        meson \
        ninja-build \
        pkg-config \
        cmake \
        libavformat-dev \
        libavcodec-dev \
        libavutil-dev \
        libswresample-dev \
        zlib1g-dev \
        libusb-1.0-0-dev \
        libsdl3-dev \
        libx11-dev \
        libxext-dev \
        libxrandr-dev \
        libxkbcommon-dev \
        libxcb1-dev \
        libxcb-dri3-dev \
        libxcb-x11-dev \
        libwayland-dev \
        libdrm-dev \
        libudev-dev \
        libgles2-dev \
        mesa-common-dev \
        libasound2-dev \
        ffmpeg \
        && rm -rf /var/lib/apt/lists/*

WORKDIR /workspace
COPY . .

RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

CMD ["/bin/bash"]
VERIFYVerifyBuild· step #13
1m 49s
VerifyBuildbuild_failed
Build error
Summary:

- Failing step (command/step):
  [2/5] RUN set -eux;     apt-get update &&     apt-get install -y --no-install-recommends         software-properties-common         ca-certificates         curl         git         build-essential         meson         ninja-build         pkg-config         cmake         libavformat-dev         libavcodec-dev         libavutil-dev         libswresample-dev         zlib1g-dev         libusb-1.0-0-dev         libsdl3-dev         libx11-dev         libxext-dev         libxrandr-dev         libxkbcommon-dev         libxcb1-dev         libxcb-dri3-dev         libxcb-x11-dev         libwayland-dev         libdrm-dev         libudev-dev         libgles2-dev         mesa-common-dev         libasound2-dev         ffmpeg         && rm -rf /var/lib/apt/lists/*

- Exact error messages and exit code:
  E: Unable to locate package libsdl3-dev
  E: Unable to locate package libxcb-x11-dev
  E: Unable to locate package libgles2-dev
  exit code: 100

- Missing packages mentioned:
  - libsdl3-dev
  - libxcb-x11-dev
  - libgles2-dev

- Version/mismatch info:
  - Base image: ubuntu:22.04 (Jammy)
  - The listed packages cannot be located in the jammy apt repositories, causing the install step to fail with exit code 100. This often indicates the packages are not available in the configured repositories (e.g., need to enable universe/multiverse or use alternative package names).

Notes:
- The failure occurs during the RUN step 2 of 5, while installing development libraries for Ubuntu 22.04.
WRITEWriteFile· step #14
0s
Dockerfile860 bytes written
text35 lines · 860 chars
FROM ubuntu:jammy-20260509

ENV DEBIAN_FRONTEND=noninteractive

RUN set -eux; \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        software-properties-common \
        ca-certificates; \
    add-apt-repository -y universe && \
    add-apt-repository -y multiverse && \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential \
        meson \
        ninja-build \
        pkg-config \
        libavformat-dev \
        libavcodec-dev \
        libavutil-dev \
        libswresample-dev \
        libsdl3-dev \
        libusb-1.0-0-dev \
        zlib1g-dev && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /workspace
COPY . .

RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

CMD ["/bin/bash"]
VERIFYVerifyBuild· step #15
2m 30s
VerifyBuildbuild_failed
Build error
- Exact error message and exit code
  - E: Unable to locate package libsdl3-dev
  - Exit code: 100

- Failing command/step
  - Dockerfile step [2/5]:
    RUN set -eux;     apt-get update &&     apt-get install -y --no-install-recommends         build-essential         meson         ninja-build         pkg-config         libavformat-dev         libavcodec-dev         libavutil-dev         libswresample-dev         libsdl3-dev         libusb-1.0-0-dev         zlib1g-dev &&     rm -rf /var/lib/apt/lists/*
  - Specifically the apt-get install attempt that includes libsdl3-dev

- Missing packages or files mentioned
  - libsdl3-dev is not found in the apt repositories for the base image (ubuntu:jammy-20260509)

- Version mismatch info
  - Base image: ubuntu:jammy-20260509 (Ubuntu 22.04 "Jammy Jellyfish")
  - Issue: libsdl3-dev is not available in Jammy's repositories, causing the install to fail with “Unable to locate package libsdl3-dev.” This appears to be a packaging/version mismatch between the requested SDL3 development package and the Ubuntu Jammy repository set in this image. Consider switching to a distro/repo that provides libsdl3-dev (e.g., a newer Ubuntu release) or adjust the build to use an available SDL package (e.g., libsdl2-dev).
02Iteration 2
WRITEWriteFile· step #1
0s
Dockerfile1824 bytes written
text56 lines · 1824 chars
FROM ubuntu:22.04

# Noninteractive frontend for apt
ENV DEBIAN_FRONTEND=noninteractive

# Install build dependencies (Meson, compilers, libraries)
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      build-essential \
      meson \
      ninja-build \
      pkg-config \
      libavformat-dev \
      libavcodec-dev \
      libavutil-dev \
      libswresample-dev \
      zlib1g-dev \
      libusb-1.0-0-dev \
      ca-certificates \
      git \
      wget \
      cmake && \
    rm -rf /var/lib/apt/lists/*

# SDL3 availability: try to use distro package; if not available, build from source
RUN set -eux; \
    if dpkg-query -W libsdl3-dev >/dev/null 2>&1; then \
      echo "libsdl3-dev provided by distro"; \
    else \
      echo "libsdl3-dev not available; attempting to build SDL3 from source"; \
      apt-get update; \
      apt-get install -y --no-install-recommends libx11-dev libxext-dev libxrandr-dev libxfixes-dev libxi-dev libxinerama-dev libxss-dev libxcursor-dev libwayland-dev cmake; \
      git clone --depth 1 https://github.com/libsdl-org/SDL.git /tmp/SDL; \
      mkdir -p /tmp/SDL/build; \
      cd /tmp/SDL/build; \
      cmake -DCMAKE_INSTALL_PREFIX=/usr ..; \
      cmake --build . -j$(nproc); \
      cmake --install .; \
      rm -rf /tmp/SDL; \
    fi

# Copy the source and build from source
COPY . /src
WORKDIR /src

# Build scrcpy with Meson (compile_app=true, compile_server=false, buildtype=debug)
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Smoke-test wrapper to display version on container run
RUN printf '#!/bin/sh\nexec scrcpy --version\n' > /usr/local/bin/run_smoke.sh && \
    chmod +x /usr/local/bin/run_smoke.sh

CMD ["/usr/local/bin/run_smoke.sh"]
VERIFYVerifyBuild· step #2
7m 58s
VerifyBuildbuild_failed
Build error
- Exit code: 1
- CMake error: Cmake Error at cmake/macros.cmake:449 (message): Couldn't find dependency package for XTEST. Please install the needed packages or configure with -DSDL_X11_XTEST=OFF
- Log line: “ERROR: … did not complete successfully: exit code: 1”

Failing command/step:
- Step: [3/7] RUN set -eux;     if dpkg-query -W libsdl3-dev >/dev/null 2>&1; then       echo "libsdl3-dev provided by distro";     else       echo "libsdl3-dev not available; attempting to build SDL3 from source";       apt-get update;       apt-get install -y --no-install-recommends libx11-dev libxext-dev libxrandr-dev libxfixes-dev libxi-dev libxinerama-dev libxss-dev libxcursor-dev libwayland-dev cmake;       git clone --depth 1 https://github.com/libsdl-org/SDL.git /tmp/SDL;       mkdir -p /tmp/SDL/build;       cd /tmp/SDL/build;       cmake -DCMAKE_INSTALL_PREFIX=/usr ..;       cmake --build . -j$(nproc);       cmake --install .;       rm -rf /tmp/SDL;     fi

Why it failed:
- libsdl3-dev was not available in the distro; the script attempted to build SDL3 from source, which then failed during the SDL3 X11/XTEST dependency check (XTEST missing).

Missing packages/files mentioned:
- XTEST dependency missing (causing SDL3 configure failure)
- ALSA-related missing items noted by CMake:
  - ALSA_LIBRARY and ALSA_INCLUDE_DIR (ALSA development library missing)
- Other missing components from dependency checks:
  - jack
  - libpipewire-0.3
  - libpulse
  - sndio

Version/mismatch info:
- Base image: ubuntu:22.04 (Jammy)
- No explicit version mismatch reported; failure due to missing SDL/X11 and ALSA development dependencies. The log shows packages from Ubuntu Jammy (e.g., cmake 3.22.1, gcc 11.x) with no mismatch indicated.

Notes:
- The root cause appears to be missing XTEST (and ALSA dev libs) required by SDL3/X11 dependencies; the build attempted to compile SDL3 from source but failed due to those gaps. Potential fixes: install X11/XTEST-related packages and ALSA development packages, or disable XTEST via -DSDL_X11_XTEST=OFF if feasible.
WRITEWriteFile· step #3
0s
Dockerfile1872 bytes written
text57 lines · 1872 chars
FROM ubuntu:24.04

# Noninteractive frontend for apt
ENV DEBIAN_FRONTEND=noninteractive

# Install build dependencies (Meson, compilers, libraries)
RUN set -eux; \
    apt-get update && \
    apt-get install -y --no-install-recommends \
      build-essential \
      meson \
      ninja-build \
      pkg-config \
      libavformat-dev \
      libavcodec-dev \
      libavutil-dev \
      libswresample-dev \
      zlib1g-dev \
      libusb-1.0-0-dev \
      ca-certificates \
      git \
      wget \
      cmake && \
    rm -rf /var/lib/apt/lists/*

# SDL3 availability: try to use distro package; if not available, build from source
RUN set -eux; \
    if dpkg-query -W libsdl3-dev >/dev/null 2>&1; then \
      echo "libsdl3-dev provided by distro"; \
    else \
      echo "libsdl3-dev not available; attempting to build SDL3 from source"; \
      apt-get update; \
      apt-get install -y --no-install-recommends libx11-dev libxtst-dev libxext-dev libxrandr-dev libxfixes-dev libxi-dev libxinerama-dev libxss-dev libxcursor-dev libwayland-dev cmake; \
      git clone --depth 1 https://github.com/libsdl-org/SDL.git /tmp/SDL; \
      mkdir -p /tmp/SDL/build; \
      cd /tmp/SDL/build; \
      cmake -DSDL_X11_XTEST=OFF -DCMAKE_INSTALL_PREFIX=/usr ..; \
      cmake --build . -j$(nproc); \
      cmake --install .; \
      rm -rf /tmp/SDL; \
    fi

# Copy the source and build from source
COPY . /src
WORKDIR /src

# Build scrcpy with Meson (compile_app=true, compile_server=false, buildtype=debug)
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Smoke-test wrapper to display version on container run
RUN printf '#!/bin/sh\nexec scrcpy --version\n' > /usr/local/bin/run_smoke.sh && \
    chmod +x /usr/local/bin/run_smoke.sh

CMD ["/usr/local/bin/run_smoke.sh"]
VERIFYVerifyBuild· step #4
10m 52s
VerifyBuildbuild_failed
Build error
Build timed out after 600s
WRITEWriteFile· step #5
0s
Dockerfile1320 bytes written
text52 lines · 1320 chars
FROM ubuntu:22.04

# Noninteractive frontend for apt
ENV DEBIAN_FRONTEND=noninteractive

# Install build dependencies (Meson, compilers, libraries)
RUN set -eux; \
    apt-get update && \
    apt-get install -y --no-install-recommends \
      build-essential \
      meson \
      ninja-build \
      pkg-config \
      libavformat-dev \
      libavcodec-dev \
      libavutil-dev \
      libswresample-dev \
      zlib1g-dev \
      libusb-1.0-0-dev \
      ca-certificates \
      git \
      wget \
      cmake \
      libsdl3-dev \
      libx11-dev \
      libxtst-dev \
      libxext-dev \
      libxrandr-dev \
      libxfixes-dev \
      libxi-dev \
      libxinerama-dev \
      libxss-dev \
      libxcursor-dev \
      libwayland-dev \
      libx11-xcb-dev && \
    rm -rf /var/lib/apt/lists/*

# Copy the source and build from source
COPY . /src
WORKDIR /src

# Build scrcpy with Meson (compile_app=true, compile_server=false, buildtype=debug)
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Smoke-test wrapper to display version on container run
RUN printf '#!/bin/sh\nexec scrcpy --version\n' > /usr/local/bin/run_smoke.sh && \
    chmod +x /usr/local/bin/run_smoke.sh

CMD ["/usr/local/bin/run_smoke.sh"]
VERIFYVerifyBuild· step #6
1m 13s
VerifyBuildbuild_failed
Build error
Summary of Docker build error

- Exact error message and exit code
  - E: Unable to locate package libsdl3-dev
  - Exit code: 100

- Failing command/step
  - [2/6] RUN set -eux;     apt-get update &&     apt-get install -y --no-install-recommends       build-essential       meson       ninja-build       pkg-config       libavformat-dev       libavcodec-dev       libavutil-dev       libswresample-dev       zlib1g-dev       libusb-1.0-0-dev       ca-certificates       git       wget       cmake       libsdl3-dev       libx11-dev       libxtst-dev       libxext-dev       libxrandr-dev       libxfixes-dev       libxi-dev       libxinerama-dev       libxss-dev       libxcursor-dev       libwayland-dev       libx11-xcb-dev &&     rm -rf /var/lib/apt/lists/*

- Missing packages or files mentioned
  - libsdl3-dev

- Version mismatch info
  - Base image: ubuntu:22.04 (jammy). No explicit version mismatch reported; the failure is due to the missing libsdl3-dev package in the apt repositories for this base image.
WRITEWriteFile· step #7
0s
Dockerfile1375 bytes written
text44 lines · 1375 chars
FROM ubuntu:22.04

# Noninteractive frontend for apt
ENV DEBIAN_FRONTEND=noninteractive

# Install build dependencies (Meson, compilers, libraries)
RUN set -eux; \
    apt-get update && \
    apt-get install -y --no-install-recommends \
      build-essential \
      meson \
      ninja-build \
      pkg-config \
      libavformat-dev \
      libavcodec-dev \
      libavutil-dev \
      libswresample-dev \
      zlib1g-dev \
      libusb-1.0-0-dev \
      ca-certificates \
      git \
      wget \
      cmake \
      software-properties-common && \
    add-apt-repository -y universe && \
    apt-get update && \
    apt-get install -y --no-install-recommends libsdl3-dev libx11-dev libxtst-dev libxext-dev libxrandr-dev libxfixes-dev libxi-dev libxinerama-dev libxss-dev libxcursor-dev libwayland-dev libx11-xcb-dev && \
    rm -rf /var/lib/apt/lists/*

# Copy the source and build from source
COPY . /src
WORKDIR /src

# Build scrcpy with Meson (compile_app=true, compile_server=false, buildtype=debug)
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Smoke-test wrapper to display version on container run
RUN printf '#!/bin/sh\nexec scrcpy --version\n' > /usr/local/bin/run_smoke.sh && \
    chmod +x /usr/local/bin/run_smoke.sh

CMD ["/usr/local/bin/run_smoke.sh"]
VERIFYVerifyBuild· step #8
6m 08s
VerifyBuildbuild_failed
Build error
- Exact error message and exit code
  - Unable to locate package libsdl3-dev
  - Exit code: 100

- Failing command/step
  - Dockerfile step [2/6]
  - RUN set -eux;     apt-get update &&     apt-get install -y --no-install-recommends       build-essential       meson       ninja-build       pkg-config       libavformat-dev       libavcodec-dev       libavutil-dev       libswresample-dev       zlib1g-dev       libusb-1.0-0-dev       ca-certificates       git       wget       cmake       software-properties-common &&     add-apt-repository -y universe &&     apt-get update &&     apt-get install -y --no-install-recommends libsdl3-dev libx11-dev libxtst-dev libxext-dev libxrandr-dev libxfixes-dev libxi-dev libxinerama-dev libxss-dev libxcursor-dev libwayland-dev libx11-xcb-dev &&     rm -rf /var/lib/apt/lists/*

- Missing packages or files mentioned
  - libsdl3-dev (not located in Ubuntu 22.04 repositories during this build)

- Version mismatch / repo info
  - Base image: ubuntu:22.04 (Jammy)
  - The attempt to install libsdl3-dev fails with “Unable to locate package libsdl3-dev,” suggesting libsdl3-dev is not available in the Jammy repositories being used (even after enabling universe). This indicates a package/version availability mismatch rather than a transient download issue.
DOCKERDockerImageSearch· step #9
1s
search docker hublibsdl3-dev ubuntu image with sdl3 dev installed10 results
show lines10
ubuntu/squid (128 stars): Squid is a caching proxy for the Web. Long-term versions maintained by Canonical
ubuntu/nginx (141 stars): Nginx, a high-performance reverse proxy & web server. Long-term tracks maintaine
ubuntu/bind9 (119 stars): BIND 9 is a very flexible, full-featured DNS system. Long-term versions maintain
ubuntu/kafka (60 stars): Apache Kafka, a distributed event streaming platform. Long-term tracks maintaine
ubuntu/apache2 (104 stars): Apache, a secure & extensible open-source HTTP server. Long-term tracks maintain
ubuntu/zookeeper (14 stars): ZooKeeper maintains configuration information centrally. Long-term tracks mainta
ubuntu/prometheus (80 stars): Prometheus is a systems and service monitoring system. Long-term versions mainta
ubuntu/mysql (74 stars): MySQL open source fast, stable, multi-thread SQL database. Long-term tracks main
ubuntu/dotnet-aspnet (26 stars): Chiselled Ubuntu runtime image for ASP.NET apps. Long-term tracks maintained by 
ubuntu/jre (25 stars): Chiseled Java runtime based on Ubuntu. Long-term tracks maintained by Canonical.
WRITEWriteFile· step #10
0s
Dockerfile2209 bytes written
text81 lines · 2209 chars
FROM ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive

# Install core build tools and libraries
RUN set -eux; \
    apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
      build-essential \
      meson \
      ninja-build \
      pkg-config \
      libavformat-dev \
      libavcodec-dev \
      libavutil-dev \
      libswresample-dev \
      zlib1g-dev \
      libusb-1.0-0-dev \
      ca-certificates \
      git \
      wget \
      cmake \
      ca-certificates \
      gnupg && \
    rm -rf /var/lib/apt/lists/*

# Additional libraries for SDL3 build and X11/Wayland support
RUN set -eux; \
    apt-get update && \
    apt-get install -y --no-install-recommends \
      libx11-dev \
      libxtst-dev \
      libxext-dev \
      libxrandr-dev \
      libxfixes-dev \
      libxi-dev \
      libxinerama-dev \
      libxss-dev \
      libxcursor-dev \
      libwayland-dev \
      libx11-xcb-dev \
      libxcb1-dev \
      libxcb-dri3-0-dev \
      libxcb-dri2-0-dev \
      libxcb-xinput0-dev \
      libxkbcommon-dev \
      libxkbcommon-x11-dev \
      libpulse-dev \
      libasound2-dev \
      libjack-dev \
      libpipewire-0.3-dev \
      libudev-dev && \
    rm -rf /var/lib/apt/lists/*

# Build SDL3 from source (required because libsdl3-dev is not available in all distros)
RUN set -eux; \
    mkdir -p /tmp/build-sdl3; \
    git clone --depth 1 https://github.com/libsdl-org/SDL.git /tmp/SDL && \
    mkdir -p /tmp/SDL/build && \
    cd /tmp/SDL/build && \
    cmake -DSDL_X11_XTEST=OFF -DCMAKE_INSTALL_PREFIX=/usr .. && \
    cmake --build . -j$(nproc) && \
    cmake --install . && \
    ldconfig && \
    rm -rf /tmp/SDL

# Copy the source and build from source
COPY . /src
WORKDIR /src

# Build scrcpy with Meson (compile_app=true, compile_server=false, buildtype=debug)
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Smoke-test wrapper to display version on container run
RUN printf '#!/bin/sh\nexec scrcpy --version\n' > /usr/local/bin/run_smoke.sh && \
    chmod +x /usr/local/bin/run_smoke.sh

CMD ["/usr/local/bin/run_smoke.sh"]
VERIFYVerifyBuild· step #11
5m 16s
VerifyBuildbuild_failed
Build error
- Exact error message and exit code:
  - E: Unable to locate package libxcb-dri3-0-dev
  - E: Unable to locate package libxcb-xinput0-dev
  - Exit code: 100

- Failing command/step:
  - Step [3/8] RUN set -eux;     apt-get update &&     apt-get install -y --no-install-recommends       libx11-dev       libxtst-dev       libxext-dev       libxrandr-dev       libxfixes-dev       libxi-dev       libxinerama-dev       libxss-dev       libxcursor-dev       libwayland-dev       libx11-xcb-dev       libxcb1-dev       libxcb-dri3-0-dev       libxcb-dri2-0-dev       libxcb-xinput0-dev       libxkbcommon-dev       libxkbcommon-x11-dev       libpulse-dev       libasound2-dev       libjack-dev       libpipewire-0.3-dev       libudev-dev &&     rm -rf /var/lib/apt/lists/*

- Missing packages or files mentioned:
  - libxcb-dri3-0-dev
  - libxcb-xinput0-dev

- Version mismatch / environment info:
  - Docker base image: ubuntu:22.04 (jammy)
  - The -0-dev package names do not exist in jammy; correct names are libxcb-dri3-dev and libxcb-xinput0-dev. This package-name mismatch is the likely cause of the “Unable to locate package” errors.
WRITEWriteFile· step #12
0s
Dockerfile2143 bytes written
text74 lines · 2143 chars
FROM ubuntu:22.04

# Noninteractive frontend for apt
ENV DEBIAN_FRONTEND=noninteractive

# Install core build tools and libraries
RUN set -eux; \
    apt-get update && \
    apt-get install -y --no-install-recommends \
      build-essential \
      meson \
      ninja-build \
      pkg-config \
      libavformat-dev \
      libavcodec-dev \
      libavutil-dev \
      libswresample-dev \
      zlib1g-dev \
      libusb-1.0-0-dev \
      ca-certificates \
      git \
      wget \
      cmake \
      software-properties-common && \
    rm -rf /var/lib/apt/lists/*

# SDL3 and X11/Wayland-related libraries (we'll build SDL3 from source if not available)
RUN set -eux; \
    apt-get update && \
    apt-get install -y --no-install-recommends \
      libx11-dev \
      libxtst-dev \
      libxext-dev \
      libxrandr-dev \
      libxfixes-dev \
      libxi-dev \
      libxinerama-dev \
      libxss-dev \
      libxcursor-dev \
      libwayland-dev \
      libx11-xcb-dev \
      libxcb1-dev && \
    rm -rf /var/lib/apt/lists/*

# If libsdl3-dev is not available in the distro, build SDL3 from source as fallback
RUN set -eux; \
    if dpkg-query -W libsdl3-dev >/dev/null 2>&1; then \
      echo "libsdl3-dev available via apt"; \
    else \
      echo "libsdl3-dev not available; attempting to build SDL3 from source"; \
      git clone --depth 1 https://github.com/libsdl-org/SDL.git /tmp/SDL; \
      mkdir -p /tmp/SDL/build; \
      cd /tmp/SDL/build; \
      cmake -DSDL_X11_XTEST=OFF -DCMAKE_INSTALL_PREFIX=/usr ..; \
      cmake --build . -j$(nproc); \
      cmake --install .; \
      rm -rf /tmp/SDL; \
    fi

# Copy the source and build from source
COPY . /src
WORKDIR /src

# Build scrcpy with Meson (compile_app=true, compile_server=false, buildtype=debug)
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Smoke-test wrapper to display version on container run
RUN printf '#!/bin/sh\nexec scrcpy --version\n' > /usr/local/bin/run_smoke.sh && \
    chmod +x /usr/local/bin/run_smoke.sh

CMD ["/usr/local/bin/run_smoke.sh"]
VERIFYVerifyBuild· step #13
10m 37s
VerifyBuildbuild_failed
Build error
Build timed out after 600s
WRITEWriteFile· step #14
0s
.dockerignore233 bytes written
dockerignore30 lines · 233 chars

# Git
.git
.gitignore

# OS/Editor junk
.DS_Store
Thumbs.db

# Build outputs
build/
meson-out/
dist/
CMakeFiles/
CMakeCache.txt
*/build/

# Dependencies and caches
node_modules/
pip-cache/
.vscode/
*.log

# Misc
*.pyc
*.o
*.a
*.so

VERIFYVerifyBuild· step #15
10m 58s
VerifyBuildbuild_failed
Build error
Build timed out after 600s
03Iteration 3
WRITEWriteFile· step #1
0s
Dockerfile1522 bytes written
text48 lines · 1522 chars
# ---------------------------------------------------------------------------
# Multi-stage build for scrcpy (desktop app) using Meson on Ubuntu Jammy
# ---------------------------------------------------------------------------

FROM ubuntu:jammy-20260509 as builder

ENV DEBIAN_FRONTEND=noninteractive

# Install build dependencies
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential meson ninja-build pkg-config \
        libavformat-dev libavcodec-dev libavutil-dev libswresample-dev \
        libsdl3-dev libusb-1.0-0-dev zlib1g-dev \
        ca-certificates git && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /src

# Copy source
COPY . /src

# Build app (compile_app set true, compile_server set false)
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Runtime image
FROM ubuntu:jammy-20260509

ENV DEBIAN_FRONTEND=noninteractive

# Install runtime dependencies (same libraries required by the app)
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        libavformat-dev libavcodec-dev libavutil-dev libswresample-dev \
        libsdl3-dev libusb-1.0-0-dev zlib1g-dev \
        ca-certificates && \
    rm -rf /var/lib/apt/lists/*

# Copy built artifacts from builder stage
COPY --from=builder /usr/local /usr/local

ENV PATH=/usr/local/bin:/usr/local/sbin:$PATH

# Default command: run scrcpy (smoke tests will keep to light usage)
CMD ["scrcpy"]
WRITEWriteFile· step #2
0s
.dockerignore200 bytes written
dockerignore20 lines · 200 chars
# Exclude version control and build artifacts
.git
.gitignore
node_modules
build
meson-*/*
meson-info
meson-logs
**/build
**/*.o
**/*.a
**/*.so
**/*.pyc
__pycache__/
*.log
*.tmp
*.swp
*.swo
.DS_Store
VERIFYVerifyBuild· step #3
1m 24s
VerifyBuildbuild_failed
Build error
Exact error message and exit code
- E: Unable to locate package libsdl3-dev
- ERROR: process "/bin/sh -c apt-get update &&     apt-get install -y --no-install-recommends         build-essential meson ninja-build pkg-config         libavformat-dev libavcodec-dev libavutil-dev libswresample-dev         libsdl3-dev libusb-1.0-0-dev zlib1g-dev         ca-certificates git &&     rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100

Failing command/step
- [builder 2/5] RUN apt-get update && apt-get install -y --no-install-recommends         build-essential meson ninja-build pkg-config         libavformat-dev libavcodec-dev libavutil-dev libswresample-dev         libsdl3-dev libusb-1.0-0-dev zlib1g-dev         ca-certificates git &&     rm -rf /var/lib/apt/lists/*
- [stage-1 2/3] RUN apt-get update &&     apt-get install -y --no-install-recommends         libavformat-dev libavcodec-dev libavutil-dev libswresample-dev         libsdl3-dev libusb-1.0-0-dev zlib1g-dev         ca-certificates &&     rm -rf /var/lib/apt/lists/*

Missing packages or files mentioned
- libsdl3-dev (not found in the Ubuntu jammy repositories used by the image)

Version mismatch info
- Base image: ubuntu:jammy-20260509 (Jammy Jellyfish, 22.04). The SDL3 development package libsdl3-dev is not available in this release’s repositories, indicating a mismatch between the requested package and the OS version in use.
WRITEWriteFile· step #4
0s
Dockerfile2429 bytes written
text67 lines · 2429 chars
# ---------------------------------------------------------------------------
# Multi-stage build for scrcpy (desktop app) using Meson on Ubuntu Jammy
# ---------------------------------------------------------------------------

FROM ubuntu:jammy-20260509 as builder

ENV DEBIAN_FRONTEND=noninteractive

# Install build dependencies (exclude libsdl3-dev which is not available on Jammy)
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential meson ninja-build pkg-config \
        libavformat-dev libavcodec-dev libavutil-dev libswresample-dev \
        libusb-1.0-0-dev zlib1g-dev \
        ca-certificates git && \
    rm -rf /var/lib/apt/lists/*

# Build environment for SDL3 (build SDL from source since libsdl3-dev may be unavailable)
# SDL3 source is pulled in and installed under /usr/local
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH

WORKDIR /src

# Copy source
COPY . /src

# Build SDL3 from source to satisfy SDL3 dependency used by Meson
RUN git clone https://github.com/libsdl-org/SDL.git /tmp/SDL && \
    cd /tmp/SDL && \
    meson setup build && \
    meson compile -C build && \
    meson install -C build && \
    ldconfig

# Build scrcpy (compile_app=true, compile_server=false)
RUN ls -la /usr/local/lib/pkgconfig || true
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Runtime image
FROM ubuntu:jammy-20260509

ENV DEBIAN_FRONTEND=noninteractive

# Install runtime dependencies (include runtime libraries; avoid -dev packages if possible)
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        libavformat58 libavcodec58 libavutil56 libswresample3 \
        libusb-1.0-0 libwayland-client0 libwayland-cursor0 libxext6 \
        zlib1g libasound2 libpciaccess0 \
        ca-certificates \
        libxcb-icccm4 libxcb-image0 libxcb-keysyms1 \
        libxcb-randr0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync0 \
        libxcb-xfixes0 libxcb-xinerama0 libxcb-xinput0 libxcb-xkbcommon0 \
        libxkbcommon0 \
        # common runtime libraries for SDL and FFmpeg components
        && rm -rf /var/lib/apt/lists/*

# Copy built artifacts from builder stage
COPY --from=builder /usr/local /usr/local

ENV PATH=/usr/local/bin:/usr/local/sbin:$PATH

# Default command: run scrcpy
CMD ["scrcpy"]
VERIFYVerifyBuild· step #5
2m 00s
VerifyBuildbuild_failed
- VerifyBuild status: build_failed

- Concerns
  - Smoke test only exercises dynamic linkage (ldd) and does not exercise actual runtime functionality (no device connection)
  - Potential risk that /usr/local/lib is not in runtime ld.so search path in some minimal base images; if so, binary may fail to run despite libraries being installed in /usr/local

- Build error
  - Exact error messages and exit code
    - E: Unable to locate package libxcb-sync0
    - E: Unable to locate package libxcb-xkbcommon0
    - ERROR: failed to build: failed to solve: process "/bin/sh -c apt-get update && apt-get install -y --no-install-recommends         libavformat58 libavcodec58 libavutil56 libswresample3         libusb-1.0-0 libwayland-client0 libwayland-cursor0 libxext6         zlib1g libasound2 libpciaccess0         ca-certificates         libxcb-icccm4 libxcb-image0 libxcb-keysyms1         libxcb-randr0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync0         libxcb-xfixes0 libxcb-xinerama0 libxcb-input0 libxcb-xkbcommon0         libxkbcommon0         && rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100

  - Failing command/step
    - [stage-1 2/3] RUN apt-get update &&     apt-get install -y --no-install-recommends         libavformat58 libavcodec58 libavutil56 libswresample3         libusb-1.0-0 libwayland-client0 libwayland-cursor0 libxext6         zlib1g libasound2 libpciaccess0         ca-certificates         libxcb-icccm4 libxcb-image0 libxcb-keysyms1         libxcb-randr0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync0         libxcb-xfixes0 libxcb-xinerama0 libxcb-input0 libxcb-xkbcommon0         libxkbcommon0         && rm -rf /var/lib/apt/lists/*

  - Missing packages or files mentioned
    - libxcb-sync0
    - libxcb-xkbcommon0

  - Version mismatch / distro context
    - Base image: ubuntu:jammy-20260509
    - The apt install fails to locate the libxcb-sync0 and libxcb-xkbcommon0 packages, indicating a package-name or repository mismatch for this jammy image (likely due to distro version/package set changes; names may be libxcb-sync1 or libxcb-xkbcommon0 in this context).

  - Warnings observed
    - FromAsCasing: 'as' and 'FROM' keywords casing do not match (line 5)
    - UndefinedVar: Usage of undefined variable '$PKG_CONFIG_PATH' (line 20)
WRITEWriteFile· step #6
0s
Dockerfile2267 bytes written
text67 lines · 2267 chars
# ---------------------------------------------------------------------------
# Multi-stage build for scrcpy (desktop app) using Meson on Ubuntu Jammy
# ---------------------------------------------------------------------------

FROM ubuntu:jammy-20260509 as builder

ENV DEBIAN_FRONTEND=noninteractive

# Install build dependencies
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential meson ninja-build pkg-config \
        libavformat-dev libavcodec-dev libavutil-dev libswresample-dev \
        libusb-1.0-0-dev zlib1g-dev \
        ca-certificates git python3-pip && \
    rm -rf /var/lib/apt/lists/*

# Ensure pkg-config can find local installs
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH

WORKDIR /src

# Copy source
COPY . /src

# Build SDL3 from source (since libsdl3-dev may not be available in the distro)
RUN git clone https://github.com/libsdl-org/SDL.git /tmp/SDL && \
    cd /tmp/SDL && \
    meson setup build && \
    meson compile -C build && \
    meson install -C build && \
    ldconfig

# Build scrcpy (compile_app=true, compile_server=false)
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Runtime image
FROM ubuntu:jammy-20260509

ENV DEBIAN_FRONTEND=noninteractive

# Install runtime dependencies (include runtime libraries; avoid -dev packages if possible)
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        libavformat58 libavcodec58 libavutil56 libswresample3 \
        libusb-1.0-0 \
        libwayland-client0 libwayland-cursor0 \
        libxcb-icccm4 libxcb-image0 libxcb-keysyms1 \
        libxcb-randr0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 \
        libxcb-xinerama0 libxcb-xinput0 libxcb-xkbcommon0 libxkbcommon0 libxext6 libx11-6 \
        zlib1g \
        ca-certificates \
        libpciaccess0 \
        libasound2 \
        # common runtime libraries for SDL and FFmpeg components
        && rm -rf /var/lib/apt/lists/*

# Copy built artifacts from builder stage
COPY --from=builder /usr/local /usr/local

ENV PATH=/usr/local/bin:/usr/local/sbin:$PATH

# Default command: run scrcpy
CMD ["scrcpy"]
VERIFYVerifyBuild· step #7
1m 55s
VerifyBuildbuild_failed
Build error
- Error: E: Unable to locate package libxcb-xkbcommon0
  - Exit code: 100
  - Failing command (Stage: [stage-1 2/3]): RUN apt-get update && apt-get install -y --no-install-recommends libavformat58 libavcodec58 libavutil56 libswresample3 libusb-1.0-0 libwayland-client0 libwayland-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-xinerama0 libxcb-xinput0 libxcb-xkbcommon0 libxkbcommon0 libxext6 libx11-6 zlib1g ca-certificates libpciaccess0 libasound2 && rm -rf /var/lib/apt/lists/*
  - Base image: ubuntu:jammy-20260509 (Ubuntu 22.04 Jammy)
  - Missing package: libxcb-xkbcommon0 (not found by apt)
  - The failure occurs during apt-get install for runtime libraries on the specified Jammy base image, suggesting a mismatch or missing package in this snapshot.
DOCKERDockerImageSearch· step #8
0s
search docker hublibsdl3-dev ubuntu10 results
show lines10
ubuntu/squid (128 stars): Squid is a caching proxy for the Web. Long-term versions maintained by Canonical
ubuntu/nginx (141 stars): Nginx, a high-performance reverse proxy & web server. Long-term tracks maintaine
ubuntu/bind9 (119 stars): BIND 9 is a very flexible, full-featured DNS system. Long-term versions maintain
ubuntu/kafka (60 stars): Apache Kafka, a distributed event streaming platform. Long-term tracks maintaine
ubuntu/zookeeper (14 stars): ZooKeeper maintains configuration information centrally. Long-term tracks mainta
ubuntu/apache2 (104 stars): Apache, a secure & extensible open-source HTTP server. Long-term tracks maintain
ubuntu/prometheus (80 stars): Prometheus is a systems and service monitoring system. Long-term versions mainta
ubuntu/mysql (74 stars): MySQL open source fast, stable, multi-thread SQL database. Long-term tracks main
ubuntu/jre (25 stars): Chiseled Java runtime based on Ubuntu. Long-term tracks maintained by Canonical.
ubuntu/postgres (44 stars): PostgreSQL is an open source object-relational database. Long-term versions main
WRITEWriteFile· step #9
0s
Dockerfile1776 bytes written
text54 lines · 1776 chars
# ---------------------------------------------------------------------------
# Multi-stage build for scrcpy (desktop app) using Meson on Ubuntu Jammy
# ---------------------------------------------------------------------------

FROM ubuntu:jammy-20260509 as builder

ENV DEBIAN_FRONTEND=noninteractive

# Install build dependencies
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential meson ninja-build pkg-config \
        libavformat-dev libavcodec-dev libavutil-dev libswresample-dev \
        libusb-1.0-0-dev zlib1g-dev \
        ca-certificates git && \
    rm -rf /var/lib/apt/lists/*

# Ensure pkg-config can find local installs
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH

WORKDIR /src

# Copy source
COPY . /src

# Build SDL3 from source (since libsdl3-dev may not be available in the distro)
RUN git clone https://github.com/libsdl-org/SDL.git /tmp/SDL && \
    cd /tmp/SDL && \
    meson setup build && \
    meson compile -C build && \
    meson install -C build && \
    ldconfig

# Build scrcpy (compile_app=true, compile_server=false)
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Runtime image
FROM ubuntu:jammy-20260509

ENV DEBIAN_FRONTEND=noninteractive

# Expose minimal runtime: rely on libraries installed in builder via /usr/local
# Copy built artifacts from builder stage
COPY --from=builder /usr/local /usr/local

# Ensure dynamic linker can find shared libraries installed in /usr/local
ENV PATH=/usr/local/bin:/usr/local/sbin:$PATH
ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

# Default command: run scrcpy
CMD ["scrcpy"]
VERIFYVerifyBuild· step #10
6m 59s
VerifyBuildbuild_failed
Build error
Summary (concise, actionable)

- Exact error message and exit code
  - Error: Neither directory contains a build file meson.build.
  - Exit code: 1

- Failing command/step
  - Failing step: builder 5/6
  - Command:
    RUN git clone https://github.com/libsdl-org/SDL.git /tmp/SDL &&     cd /tmp/SDL &&     meson setup build &&     meson compile -C build &&     meson install -C build &&     ldconfig

- Missing packages or files mentioned
  - The failure occurs during meson setup because no meson.build is found in the SDL repository at /tmp/SDL (Neither directory contains a build file meson.build). This indicates the expected build file is absent in the cloned SDL repo for this step.

- Version mismatch information
  - Base image: ubuntu:jammy-20260509 (as shown by the build metadata)
  - No explicit version mismatch reported in the provided log; the error is due to the missing meson.build in the SDL repo rather than a mismatched toolchain.
READReadFile· step #11
24s
app/meson.build3937 chars · 52 lines
build52 lines · 3937 chars
Summary (under 1500 chars):

- src (full list): 
  src/main.c, src/adb/adb.c, src/adb/adb_device.c, src/adb/adb_parser.c, src/adb/adb_tunnel.c, src/audio_player.c, src/audio_regulator.c, src/cli.c, src/clock.c, src/compat.c, src/control_msg.c, src/controller.c, src/decoder.c, src/delay_buffer.c, src/demuxer.c, src/device_msg.c, src/disconnect.c, src/events.c, src/icon.c, src/file_pusher.c, src/fps_counter.c, src/frame_buffer.c, src/input_manager.c, src/keyboard_sdk.c, src/mouse_capture.c, src/mouse_sdk.c, src/opengl.c, src/options.c, src/packet_merger.c, src/receiver.c, src/recorder.c, src/scrcpy.c, src/screen.c, src/sdl_hints.c, src/server.c, src/texture.c, src/version.c, src/hid/hid_gamepad.c, src/hid/hid_keyboard.c, src/hid/hid_mouse.c, src/trait/frame_source.c, src/trait/packet_source.c, src/uhid/gamepad_uhid.c, src/uhid/keyboard_uhid.c, src/uhid/mouse_uhid.c, src/uhid/uhid_output.c, src/util/acksync.c, src/util/audiobuf.c, src/util/average.c, src/util/env.c, src/util/file.c, src/util/intmap.c, src/util/intr.c, src/util/log.c, src/util/memory.c, src/util/net.c, src/util/net_intr.c, src/util/process.c, src/util/process_intr.c, src/util/rand.c, src/util/sdl.c, src/util/strbuf.c, src/util/str.c, src/util/term.c, src/util/thread.c, src/util/tick.c, src/util/timeout.c

- feature_test_macros: -D_GNU_SOURCE, -D_POSIX_C_SOURCE=200809L, -D_XOPEN_SOURCE=700
  Windows: add -D_WIN32_WINNT=0x0600, -DWINVER=0x0600
  Darwin: add -D_DARWIN_C_SOURCE

- conf: configuration_data(); SCRCPY_VERSION = meson.project_version(); PREFIX = option('prefix'); PORTABLE = option('portable'); DEFAULT_LOCAL_PORT_RANGE_FIRST = 27183; DEFAULT_LOCAL_PORT_RANGE_LAST = 27199; SERVER_DEBUGGER = option('server_debugger'); HAVE_V4L2 = v4l2_support; HAVE_USB = usb_support

- OS/source adjustments:
  - Windows: add src/util/command.c, src/sys/win/file.c, src/sys/win/process.c, scrcpy-windows.rc resources; add _WIN32_WINNT/WINVER macros
  - Other: add src/sys/unix/file.c, src/sys/unix/process.c; on Darwin add _DARWIN_C_SOURCE
  - v4l2 on Linux: include src/v4l2_sink.c; USB adds several usb/ *.c

- cc and dependencies:
  cc = meson.get_compiler('c'); static = option('static')
  dependencies = libavformat >= 57.33 (static), libavcodec >= 57.37 (static), libavutil (static), libswresample (static), sdl3 >= 3.2.0 (static)
  If v4l2: add libavdevice (static)
  If usb: add libusb-1.0 (static)
  Windows: also link mingw32 and ws2_32

- checks: functions = [strdup, asprintf, vasprintf, nrand48, jrand48, reallocarray]
  For each function present, define HAVE_<FUNC> macro (uppercase, underscored)

- SOCK_CLOEXEC: HAVE_SOCK_CLOEXEC defined if not Windows and socket.h has SOCK_CLOEXEC

- config labels: SCRCPY_VERSION, PREFIX, PORTABLE, SERVER_DEBUGGER, HAVE_V4L2, HAVE_USB

- generate config.h via configure_file

- include dirs: src_dir = include_directories('src')

- build target: executable 'scrcpy' with src, dependencies, include_directories, install: true

- installation data (datadir defaults to option 'datadir' or 'share'):
  install_man('scrcpy.1')
  install_data data/scrcpy.png, data/disconnected.png to icons/hicolor/256x256/apps
  install_data data/zsh-completion/_scrcpy to zsh/site-functions
  install_data data/bash-completion/scrcpy to bash-completion/completions
  Linux: install_data data/scrcpy.desktop and data/scrcpy-console.desktop to applications

- Tests (only in debug build):
  tests include test_adb_parser, test_binary, test_audiobuf, test_cli, test_command_windows, test_control_msg_serialize, test_device_msg_deserialize, test_orientation, test_strbuf, test_str, test_vecdeque, test_vector
  Each test uses sources list plus 'src/compat.c', builds an executable with include dirs and dependencies, and runs test(<name>)
  SC_TEST is passed via c_args for test executables

- Meson devenv:
  If Meson version >= 0.58.0, create environment, set SCRCPY_ICON_DIR to data, add devenv

- datadir default: 'share'
WEBSearchWeb· step #12
0s
search webSDL3 tarball meson build SDL 3.2 release tarball install ubuntu1 results
show lines1
No results found.
READReadFile· step #13
0s
app/deps/sdl.sh1849 chars · 85 lines
sh85 lines · 1849 chars
#!/usr/bin/env bash
set -ex
. $(dirname ${BASH_SOURCE[0]})/_init
process_args "$@"

VERSION=3.4.8
URL="https://github.com/libsdl-org/SDL/archive/refs/tags/release-$VERSION.tar.gz"
SHA256SUM=429a9f38483f834da5727a63dd7b5127a7c9d06a16439d7c6de4b7ebbfdb6374

PROJECT_DIR="sdl-$VERSION"
FILENAME="$PROJECT_DIR.tar.gz"

cd "$SOURCES_DIR"

if [[ -d "$PROJECT_DIR" ]]
then
    echo "$PWD/$PROJECT_DIR" found
else
    get_file "$URL" "$FILENAME" "$SHA256SUM"
    tar xf "$FILENAME"  # First level directory is "SDL-release-$VERSION"
    mv "SDL-release-$VERSION" "$PROJECT_DIR"
fi

mkdir -p "$BUILD_DIR/$PROJECT_DIR"
cd "$BUILD_DIR/$PROJECT_DIR"

export CFLAGS='-O2'
export CXXFLAGS="$CFLAGS"

if [[ -d "$DIRNAME" ]]
then
    echo "'$PWD/$DIRNAME' already exists, not reconfigured"
    cd "$DIRNAME"
else
    mkdir "$DIRNAME"
    cd "$DIRNAME"

    conf=(
        -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR/$DIRNAME"
        -DSDL_TESTS=OFF
    )

    if [[ "$HOST" == linux ]]
    then
        conf+=(
            -DSDL_WAYLAND=ON
            -DSDL_X11=ON
        )
    fi

    if [[ "$LINK_TYPE" == static ]]
    then
        conf+=(
            -DBUILD_SHARED_LIBS=OFF
        )
    else
        conf+=(
            -DBUILD_SHARED_LIBS=ON
        )
    fi

    if [[ "$BUILD_TYPE" == cross ]]
    then
        if [[ "$HOST" = win32 ]]
        then
            TOOLCHAIN_FILENAME="cmake-toolchain-mingw64-i686.cmake"
        elif [[ "$HOST" = win64 ]]
        then
            TOOLCHAIN_FILENAME="cmake-toolchain-mingw64-x86_64.cmake"
        else
            echo "Unsupported cross-build to host: $HOST" >&2
            exit 1
        fi

        conf+=(
            -DCMAKE_TOOLCHAIN_FILE="$SOURCES_DIR/$PROJECT_DIR/build-scripts/$TOOLCHAIN_FILENAME"
        )
    fi

    cmake "$SOURCES_DIR/$PROJECT_DIR" "${conf[@]}"
fi

cmake --build .
cmake --install .
READReadFile· step #14
0s
app/deps/_init1759 chars · 77 lines
text77 lines · 1759 chars
# This file is intended to be sourced by other scripts, not executed

process_args() {
    if [[ $# != 3 ]]
    then
        # <host>: linux, macos, win32 or win64
        # <build_type>: native or cross
        # <link_type>: static or shared
        echo "Syntax: $0 <host> <build_type> <link_type>" >&2
        exit 1
    fi

    HOST="$1"
    BUILD_TYPE="$2"
    LINK_TYPE="$3"
    DIRNAME="$HOST-$BUILD_TYPE-$LINK_TYPE"

    if [[ "$BUILD_TYPE" != native && "$BUILD_TYPE" != cross ]]
    then
        echo "Unsupported build type (expected native or cross): $BUILD_TYPE" >&2
        exit 1
    fi

    if [[ "$LINK_TYPE" != static && "$LINK_TYPE" != shared ]]
    then
        echo "Unsupported link type (expected static or shared): $LINK_TYPE" >&2
        exit 1
    fi

    if [[ "$BUILD_TYPE" == cross ]]
    then
        if [[ "$HOST" = win32 ]]
        then
            HOST_TRIPLET=i686-w64-mingw32
        elif [[ "$HOST" = win64 ]]
        then
            HOST_TRIPLET=x86_64-w64-mingw32
        else
            echo "Unsupported cross-build to host: $HOST" >&2
            exit 1
        fi
    fi
}

DEPS_DIR=$(dirname ${BASH_SOURCE[0]})
cd "$DEPS_DIR"

PATCHES_DIR="$PWD/patches"

WORK_DIR="$PWD/work"
SOURCES_DIR="$WORK_DIR/sources"
BUILD_DIR="$WORK_DIR/build"
INSTALL_DIR="$WORK_DIR/install"

mkdir -p "$INSTALL_DIR" "$SOURCES_DIR" "$WORK_DIR"

checksum() {
    local file="$1"
    local sum="$2"
    echo "$file: verifying checksum..."
    echo "$sum  $file" | shasum -a256 -c
}

get_file() {
    local url="$1"
    local file="$2"
    local sum="$3"
    if [[ -f "$file" ]]
    then
        echo "$file: found"
    else
        echo "$file: not found, downloading..."
        wget "$url" -O "$file"
    fi
    checksum "$file" "$sum"
}
WRITEWriteFile· step #15
0s
Dockerfile2126 bytes written
text57 lines · 2126 chars
# ---------------------------------------------------------------------------
# Multi-stage build for scrcpy (desktop app) using Meson on Ubuntu Jammy
# This build uses app/deps/sdl.sh to build SDL3 from source to satisfy
# the sdl3 Meson dependency when libsdl3-dev is unavailable in the base image.
# ---------------------------------------------------------------------------

FROM ubuntu:jammy-20260509 as builder

ENV DEBIAN_FRONTEND=noninteractive

# Baseline build tools and dependencies
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential meson ninja-build pkg-config cmake \
        git wget ca-certificates \
        libavformat-dev libavcodec-dev libavutil-dev libswresample-dev \
        libusb-1.0-0-dev zlib1g-dev && \
    rm -rf /var/lib/apt/lists/*

# Build SDL3 from source via the repo's dependencies script
# This will install SDL3 into app/deps/work/install/linux-native-shared
WORKDIR /workspace
COPY . /workspace/src
RUN bash /workspace/src/app/deps/sdl.sh linux native shared

# Copy SDL3 (and other installed files) into /usr/local so Meson can discover it
# The SDL install location is: app/deps/work/install/linux-native-shared
RUN mkdir -p /usr/local && \
    cp -a /workspace/src/app/deps/work/install/linux-native-shared/. /usr/local/

# Ensure pkg-config can find the installed SDL
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH

# Copy source for building scrcpy
WORKDIR /src
COPY --from=builder /workspace/src /src

# Build scrcpy (compile_app=true, compile_server=false)
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Runtime image
FROM ubuntu:jammy-20260509

ENV DEBIAN_FRONTEND=noninteractive

# Copy installed SDL and built binaries from the builder stage
COPY --from=builder /usr/local /usr/local

# Expose library path for runtime
ENV PATH=/usr/local/bin:/usr/local/sbin:$PATH
ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

# Default command: run scrcpy
CMD ["scrcpy"]
VERIFYVerifyBuild· step #16
46s
VerifyBuildbuild_failed
Build error
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 2.17kB done
#1 WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 7)
#1 DONE 0.0s

 1 warning found (use docker --debug to expand):
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 7)
Dockerfile:36
--------------------
  34 |     # Copy source for building scrcpy
  35 |     WORKDIR /src
  36 | >>> COPY --from=builder /workspace/src /src
  37 |     
  38 |     # Build scrcpy (compile_app=true, compile_server=false)
--------------------
ERROR: failed to build: failed to solve: circular dependency detected on stage: builder
WRITEWriteFile· step #17
0s
Dockerfile1749 bytes written
text52 lines · 1749 chars
# ---------------------------------------------------------------------------
# Multi-stage build for scrcpy (desktop app) using Meson on Ubuntu Jammy
# This build uses app/deps/sdl.sh to build SDL3 from source to satisfy
# the sdl3 Meson dependency when libsdl3-dev is unavailable in the base image.
# ---------------------------------------------------------------------------

FROM ubuntu:jammy-20260509 as builder

ENV DEBIAN_FRONTEND=noninteractive

# Baseline build tools
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential meson ninja-build pkg-config cmake \
        git wget ca-certificates \
        libavformat-dev libavcodec-dev libavutil-dev libswresample-dev \
        libusb-1.0-0-dev zlib1g-dev && \
    rm -rf /var/lib/apt/lists/*

# Copy source
WORKDIR /src
COPY . /src

# Build SDL3 from source using the project-provided script
RUN bash app/deps/sdl.sh linux native shared

# Expose installed SDL3 to /usr/local
RUN mkdir -p /usr/local && \
    cp -a /src/work/install/linux-native-shared/. /usr/local/

# Ensure pkg-config can find local installs
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH

# Build scrcpy (compile_app=true, compile_server=false)
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Runtime image
FROM ubuntu:jammy-20260509

ENV DEBIAN_FRONTEND=noninteractive

# Copy SDL3+built binaries from builder stage
COPY --from=builder /usr/local /usr/local

# Ensure runtime can find libraries
ENV PATH=/usr/local/bin:/usr/local/sbin:$PATH
ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

CMD ["scrcpy"]
VERIFYVerifyBuild· step #18
7m 22s
VerifyBuildbuild_failed
Build error
- Exact error message and exit code
  - Error:     "ERROR: process \"/bin/sh -c bash app/deps/sdl.sh linux native shared\" did not complete successfully: exit code: 1"
  - SDL configure failure details:
    - "CMake Error at cmake/macros.cmake:415 (message):"
    - "SDL could not find X11 or Wayland development libraries on your system."
    - "This means SDL will not be able to create windows on a typical unix operating system."
    - "On Linux, install the packages listed at https://wiki.libsdl.org/SDL3/README-linux#build-dependencies"
    - "Configuring incomplete, errors occurred!"
    - "See also \"/src/app/deps/work/build/sdl-3.4.8/linux-native-shared/CMakeFiles/CMakeOutput.log\" and .../CMakeError.log"

- Failing command/step
  - [builder 5/7] RUN bash app/deps/sdl.sh linux native shared

- Missing packages or files mentioned
  - X11 development libraries missing (X11_X11_INCLUDE_PATH and X11_X11_LIB not found)
  - Wayland development libraries missing
  - ALSA development library missing (ALSA_LIBRARY ALSA_INCLUDE_DIR)
  - OpenGL development libraries missing (OPENGL_opengl_LIBRARY, OPENGL_glx_LIBRARY, OPENGL_INCLUDE_DIR)
  - libdrm, libpipewire-0.3, libpulse, jack, sndio, fribidi, libthai, and related OpenGL/Wayland/X11 dependencies shown as not found
  - libudev.h not found
  - Various Unwind/UNWIND-related and libunwind packages not found (as part of broader libunwind checks)

- Version mismatch information
  - Base image: ubuntu: jammy (tag shows jammy-20260509)
  - SDL version in build: SDL 3.4.8
  - No explicit version mismatch reported; the failure is due to missing build dependencies (X11/Wayland and related libraries) rather than a version conflict.
WEBSearchWeb· step #19
0s
search webUbuntu jammy libsdl3-dev package available?1 results
show lines1
No results found.
READReadFile· step #20
0s
app/deps/README964 chars · 28 lines
text28 lines · 964 chars
This directory (app/deps/) contains:

*.sh          : shell scripts to download and build dependencies

patches/      : patches to fix dependencies (used by scripts)

work/sources/ : downloaded tarballs and extracted folders
                    ffmpeg-6.1.1.tar.xz
                    ffmpeg-6.1.1/
                    libusb-1.0.27.tar.gz
                    libusb-1.0.27/
                    ...
work/build/   : build dirs for each dependency/version/architecture
                    ffmpeg-6.1.1/win32/
                    ffmpeg-6.1.1/win64/
                    libusb-1.0.27/win32/
                    libusb-1.0.27/win64/
                    ...
work/install/ : install dirs for each architexture
                    win32/bin/
                    win32/include/
                    win32/lib/
                    win32/share/
                    win64/bin/
                    win64/include/
                    win64/lib/
                    win64/share/
READReadFile· step #21
21s
app/meson.build2499 chars · 43 lines
build43 lines · 2499 chars
Summary (under 1500 chars):

- Build system: Meson configuration for scrcpy. Defines source list, OS-specific blocks, dependencies, features, tests (debug only), and post-configuration devenv hookup.

- Source/files:
  - Base src includes: core C sources (e.g., src/main.c) and modules under src/adb, src/util, src/trait, src/uhid, src/compat, etc. (full list in original output).
  - Windows add-ons: src/util/command.c, src/sys/win/file.c, src/sys/win/process.c, scrcpy-windows.rc.
  - Unix: src/sys/unix/file.c, src/sys/unix/process.c; macOS: define _DARWIN_C_SOURCE.
  - Optional: V4L2 sink (src/v4l2_sink.c) when on Linux with v4l2 enabled.
  - USB optional: src/usb/aoa_hid.c, gamepad_aoa.c, keyboard_aoa.c, mouse_aoa.c, scrcpy_otg.c, usb.c when usb option is on.
  - Common: include directories, src/compat.c added to tests.

- Feature macros and host specifics:
  - Base macros: -D_GNU_SOURCE, -D_POSIX_C_SOURCE=200809L, -D_XOPEN_SOURCE=700.
  - Windows: -D_WIN32_WINNT=0x0600, -DWINVER=0x0600.
  - macOS: -D_DARWIN_C_SOURCE on Darwin.
  - HAVE_SOCK_CLOEXEC: true on non-Windows if socket.h has SOCK_CLOEXEC.

- Versioning and config:
  - SCRCPY_VERSION set from meson.project_version().
  - PREFIX from option 'prefix'.
  - PORTABLE from option 'portable'.
  - DEFAULT_LOCAL_PORT_RANGE: 27183–27199.
  - SERVER_DEBUGGER from option.
  - HAVE_V4L2 and HAVE_USB flags reflect v4l2 and usb options.

- Dependencies:
  - libavformat >= 57.33, libavcodec >= 57.37, libavutil, libswresample, sdl3 >= 3.2.0.
  - Optional: libavdevice (if v4l2), libusb-1.0 (if usb).
  - Windows: link mingw32 and ws2_32 libraries.

- Build outputs/install:
  - config.h generated from configuration data.
  - scrcpy executable built with specified sources, dependencies, and include dirs.
  - Data installation: data/scrcpy.png, data/disconnected.png, data/zsh-completion/_scrcpy, data/bash-completion/scrcpy.
  - Linux launcher: data/scrcpy.desktop and data/scrcpy-console.desktop under Applications.

- Tests (debug builds only):
  - Test suite list (test_adb_parser, test_binary, test_audiobuf, test_cli, test_command_windows, test_control_msg_serialize, test_device_msg_deserialize, test_orientation, test_strbuf, test_str, test_vecdeque, test_vector) with their source files.
  - Each test builds an exe from test sources plus src/compat.c, with -DSC_TEST, and runs via test().

- Post-configuration:
  - If Meson version >= 0.58.0, enable devenv with SCRCPY_ICON_DIR set to data and register the environment.
READReadFile· step #22
0s
server/meson.build1371 chars · 32 lines
build32 lines · 1371 chars
# It may be useful to use a prebuilt server, so that no Android SDK is required
# to build. If the 'prebuilt_server' option is set, just copy the file as is.
prebuilt_server = get_option('prebuilt_server')
if prebuilt_server == ''
    custom_target('scrcpy-server',
                  # gradle is responsible for tracking source changes
                  build_by_default: true,
                  build_always_stale: true,
                  output: 'scrcpy-server',
                  command: [find_program('./scripts/build-wrapper.sh'), meson.current_source_dir(), '@OUTPUT@', get_option('buildtype')],
                  console: true,
                  install: true,
                  install_dir: 'share/scrcpy')
else
    if not prebuilt_server.startswith('/')
        # prebuilt server path is relative to the root scrcpy directory
        prebuilt_server = '../' + prebuilt_server
    endif
    custom_target('scrcpy-server-prebuilt',
                  input: prebuilt_server,
                  output: 'scrcpy-server',
                  command: ['cp', '@INPUT@', '@OUTPUT@'],
                  install: true,
                  install_dir: 'share/scrcpy')
endif

if meson.version().version_compare('>= 0.58.0')
       devenv = environment()
       devenv.set('SCRCPY_SERVER_PATH', meson.current_build_dir() / 'scrcpy-server')
       meson.add_devenv(devenv)
endif
WRITEWriteFile· step #23
0s
Dockerfile2474 bytes written
text57 lines · 2474 chars
# ---------------------------------------------------------------------------
# Multi-stage build for scrcpy (desktop app) using Meson on Ubuntu Jammy
# This build uses app/deps/sdl.sh to build SDL3 from source to satisfy
# the sdl3 Meson dependency when libsdl3-dev is unavailable in the base image.
# ---------------------------------------------------------------------------

FROM ubuntu:jammy-20260509 as builder

ENV DEBIAN_FRONTEND=noninteractive

# Baseline build tools and a broad set of development libraries to satisfy
# SDL3 and the app dependencies when building from source.
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential meson ninja-build pkg-config cmake git wget ca-certificates \
    libavformat-dev libavcodec-dev libavutil-dev libswresample-dev libusb-1.0-0-dev zlib1g-dev \
    libx11-dev libxext-dev libxcb1-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev \
    libxcb-randr0-dev libxcb-render0-dev libxcb-shm0-dev libxcb-sync0-dev libxcb-xfixes0-dev \
    libxcb-xinerama0-dev libxcb-xinput0-dev libxcb-xkbcommon0-dev libxkbcommon-dev \
    libwayland-dev libwayland-client0 libwayland-cursor0 libdrm-dev libgles2-mesa-dev \
    libegl1-mesa-dev libglu1-mesa-dev libudev-dev libpciaccess0-dev libasound2-dev libpulse-dev \
    libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev \
    && rm -rf /var/lib/apt/lists/*

# Copy source code
WORKDIR /workspace
COPY . /workspace/src

# Build SDL3 from source using the project-provided script. SDL will be installed to /usr/local
RUN bash /workspace/src/app/deps/sdl.sh linux native shared

# Expose installed SDL3 to /usr/local
RUN mkdir -p /usr/local && \
    cp -a /workspace/src/app/deps/work/install/linux-native-shared/. /usr/local/

# Ensure pkg-config can find local installs
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH

# Build scrcpy (compile_app=true, compile_server=false)
WORKDIR /workspace/src
RUN meson setup build -Dcompile_app=true -Dcompile_server=false --buildtype=debug && \
    meson compile -C build && \
    meson install -C build

# Runtime image
FROM ubuntu:jammy-20260509

ENV DEBIAN_FRONTEND=noninteractive

# Copy SDL3 and built binaries from builder stage
COPY --from=builder /usr/local /usr/local

# Provide runtime environment variables
ENV PATH=/usr/local/bin:/usr/local/sbin:$PATH
ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

CMD ["scrcpy"]
VERIFYVerifyBuild· step #24
1m 41s
VerifyBuildbuild_failed
Build error
- Failing step (exit code): [builder 2/8] RUN apt-get update && apt-get install -y --no-install-recommends     build-essential meson ninja-build pkg-config cmake git wget ca-certificates     libavformat-dev libavcodec-dev libavutil-dev libswresample-dev libusb-1.0-0-dev zlib1g-dev     libx11-dev libxext-dev libxcb1-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev     libxcb-randr0-dev libxcb-render0-dev libxcb-shm0-dev libxcb-sync0-dev libxcb-xfixes0-dev     libxcb-xinerama0-dev libxcb-xinput0-dev libxcb-xkbcommon0-dev libxkbcommon-dev     libWayland-dev libwayland-client0 libwayland-cursor0 libdrm-dev libgles2-mesa-dev     libegl1-mesa-dev libglu1-mesa-dev libudev-dev libpciaccess0-dev libasound2-dev libpulse-dev     libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev     && rm -rf /var/lib/apt/lists/*
- Exit code: 100

- Exact error messages (from apt):
E: Unable to locate package libxcb-xinput0-dev
E: Unable to locate package libxcb-xkbcommon0-dev
E: Unable to locate package libpciaccess0-dev

- Missing packages mentioned: libxcb-xinput0-dev, libxcb-xkbcommon0-dev, libpciaccess0-dev

- Base image / version info (version mismatch context): Using base image ubuntu:jammy-20260509 with digest sha256:9cff99391df1fa366434d373df9277cfc96f75e6eafe8684d0263b88c9691be2
WEBSearchWeb· step #25
1s
search webUbuntu jammy libsdl3-dev package not found libxcb-xinput0-dev libxcb-xkbcommon0-dev15 results
show lines15
libxcb-xfixes0_1.14-3ubuntu3_amd64.deb Ubuntu 22.04 LTS Download
https://ubuntu.pkgs.org/22.04/ubuntu-main-amd64/libxcb-xfixes0_1.14-3ubuntu3_amd64.deb.html
Description libxcb-xfixes0 - X C Binding, xfixes extension ... This package contains the library files needed to run software using libxcb-xfixes, the xfixes extension for the X C Binding. The XCB lib

Setup Guide for XCB on Ubuntu - Bobcares
https://bobcares.com/blog/xcb-setup-ubuntu/
Jul 19, 2024 · In this article, we’ll see the setup steps of XCB on Ubuntu through command-line. As part of our Server Management Service, we assist our customers with several XCB queries.

UbuntuUpdates - Package "libxcb" (jammy 22.04)
https://www.ubuntuupdates.org/package/core/jammy/main/base/libxcb
This package is just an umbrella for a group of other packages, it has no description. No other version of this package is available in the Jammy release. Deleted packages are displayed in grey. There

SDL3 and ubuntu 25.04 - SDL Development - Simple Directmedia Layer
https://discourse.libsdl.org/t/sdl3-and-ubuntu-25-04/58477
Mar 12, 2025 · It looks like it is not available yet in Ubuntu 24.04.2 LTS as of today, but I look foreword to it when I do my next full distro-upgrade. I see that there is current work being done in 

xcb
https://xcb.freedesktop.org/
Sep 30, 2024 · To aid in porting applications, you can configure Xlib to use XCB for the transport layer. We call this Xlib/XCB. There is automatically-generated documentation for the XCB protocol …