Skip to content

Windows 11: mediasoup-sys 0.10.0 build fails with Meson/Ninja “build.ninja still dirty after 100 tries” #1624

@Kelach

Description

@Kelach

Bug Report

Your environment

  • Operating system: Windows 11 (build 26200)
  • Node version: n/a (I'm using the Rust crate)
  • npm version: n/a (I'm using the Rust crate)
  • gcc/clang version: Using MSVC (Visual Studio) instead of gcc/clang
    • MSVC cl: 19.44.35217 (VS 17.14.17)
    • Linker: 14.44.35217.0
    • Meson: 1.5.0
    • Ninja: 1.10.2.git.kitware.jobserver-1
    • Python: 3.11.9 (via pyenv)
  • mediasoup version: "0.20.0"
  • mediasoup-client version: n/a (I'm using the Rust crate)
  • mediasoup-sys crate version: "0.10.0"

Issue description

Building a Rust project on Windows 11 that depends on mediasoup-sys (0.10.0) consistently fails during the Meson/Ninja phase with the error:

ninja: error: manifest 'build.ninja' still dirty after 100 tries

This is followed by a Rust build panic at build.rs:154:9 with:

Failed to build libmediasoup-worker

Expected behavior

cargo build should succeed and compile the mediasoup worker.

Actual behavior

cargo build fails in the Meson/Ninja step with the error above, and the Rust build panics.

Reproduction steps

  1. Use Developer PowerShell for Visual Studio (Dev PowerShell).
  2. In a Rust crate that depends on mediasoup-sys = "0.10.0", run:
    • cargo build
  3. Observe Meson/Ninja step failure.

What I already tried

  • Clean build (cargo clean) and deleting target/debug/build/mediasoup-sys-*/out — same error persists.
  • Running the suggested Meson wrapper command fails with the same error:
    • meson compile -C C:\Users\Path\to\file\Desktop\...\out\build
  • Windows long paths are enabled.
  • Project is not under OneDrive/Dropbox; no real-time indexers interfering; antivirus not scanning the repo directory.
  • No explicit CARGO_BUILD_JOBS, MESON_ARGS, NINJAFLAGS, or custom CL/LINK flags set.

Trimmed build output (sanitized)

Subprojects
  abseil-cpp : YES
  catch2     : YES
  flatbuffers: YES
  libsrtp3   : YES
  libuv      : YES
  openssl    : YES
  usrsctp    : YES
  wingetopt  : YES

User defined options
  bindir     :
  buildtype  : release
  libdir     :
  prefix     : C:/Users/Path/to/file/Desktop/.../out
  vsenv      : True
  b_ndebug   : true

Found ninja.exe-1.10.2.git.kitware.jobserver-1 at C:/Users/Path/to/file/Desktop/.../ninja.exe

Visual Studio environment is needed to run Ninja. It is recommended to use Meson wrapper:
C:\Users\Path\to\file\Desktop\...\meson compile -C .
[0/1] Regenerating build files.
Cleaning... 0 files.
The Meson build system
Version: 1.5.0
Source dir: C:\Users\Path\to\file\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\mediasoup-sys-0.10.0
Build dir: C:\Users\Path\to\file\Desktop\...\out\build
Build type: native build
Project name: mediasoup-worker
Project version: undefined
C compiler for the host machine: cl (msvc 19.44.35217 "Microsoft (R) C/C++ Optimizing Compiler Version 19.44.35217 for x64")
C linker for the host machine: link link 14.44.35217.0
C++ compiler for the host machine: cl (msvc 19.44.35217 "Microsoft (R) C/C++ Optimizing Compiler Version 19.44.35217 for x64")
C++ linker for the host machine: link link 14.44.35217.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Checking for function "strtoull_l" : NO

Executing subproject openssl
openssl| Project name: openssl
openssl| Project version: 3.0.8
openssl| Program nasm found: NO
openssl| Message: OpenSSL is configured without ASM support
...
Executing subproject libuv
libuv| Project version: 1.51.0
libuv| Message: System: windows
...
Executing subproject libsrtp3
libsrtp3| Project version: 3.0.0
libsrtp3| Dependency openssl ... found: YES 3.0.8
...
Executing subproject usrsctp
usrsctp| Project version: 0.9.5.0
...
Executing subproject abseil-cpp
abseil-cpp| Project version: 20240722.0
...
Executing subproject catch2
catch2| Project version: 3.8.1
...
Executing subproject flatbuffers
flatbuffers| Project version: 24.3.25
...
Executing subproject wingetopt
wingetopt| Project version: 0.95
...
Build targets in project: 44

mediasoup-worker undefined

Activating VS 17.14.17
INFO: automatically activated MSVC compiler environment
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: C:/Users/Path\to\file/Desktop/.../ninja.exe -C C:/Users/Path\to\file/Desktop/.../out/build fbs\FBS

--- stderr
[notice] A new release of pip is available: 24.0 -> 25.2
[notice] To update, run: C:\Users\Path\to\file\.pyenv\pyenv-win\versions\3.11.9\python.exe -m pip install --upgrade pip
ninja: error: manifest 'build.ninja' still dirty after 100 tries

thread 'main' panicked at ...\mediasoup-sys-0.10.0\build.rs:154:9:
Failed to build libmediasoup-worker
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

(Several similar Meson/Ninja regeneration cycles occur; the tail error is consistently the same.)

Not sure if it's appropriate to post here, but I would really appreciate any help on this issue.

Notes

  • Environment variables: None explicitly set related to Meson/Ninja/CL/LINK.
  • Windows long paths: Enabled (Windows 11 policy changed to allow >260 chars; not a MAX_PATH issue).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions