Cannot build from source on Alpine linux #3709

Closed
opened 2026-02-21 01:34:02 -05:00 by deekerman · 1 comment
Owner

Originally created by @agevlakh on GitHub (Oct 6, 2025).

Bug Description

Cannot build from source.Here isthe error:

...
   Compiling zbus v3.15.2
   Compiling tiny-skia-path v0.11.4
   Compiling wayland-csd-frame v0.3.0
   Compiling dirs-sys v0.4.1
   Compiling wayland-cursor v0.31.5
   Compiling git2 v0.16.1
   Compiling shadow-rs v0.21.0
warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc: In function 'long int mkvparser::UnserializeFloat(IMkvReader*, long long int, long long int, double&)':
warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:249:7: error: 'uint32_t' does not name a type
warning: webm-sys@1.0.4:   249 |       uint32_t ff;
warning: webm-sys@1.0.4:       |       ^~~~~~~~
warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:24:1: note: 'uint32_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
warning: webm-sys@1.0.4:    23 | #include "common/webmids.h"
warning: webm-sys@1.0.4:   +++ |+#include <cstdint>
warning: webm-sys@1.0.4:    24 | 
warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:250:45: error: 'uint32_t' was not declared in this scope
warning: webm-sys@1.0.4:   250 |       static_assert(sizeof(float) == sizeof(uint32_t), "");
warning: webm-sys@1.0.4:       |                                             ^~~~~~~~
warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:250:45: note: 'uint32_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:253:5: error: 'ff' was not declared in this scope; did you mean 'ffs'?
warning: webm-sys@1.0.4:   253 |     ff = 0;
warning: webm-sys@1.0.4:       |     ^~
warning: webm-sys@1.0.4:       |     ffs
warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:268:7: error: 'uint64_t' does not name a type
warning: webm-sys@1.0.4:   268 |       uint64_t dd;
warning: webm-sys@1.0.4:       |       ^~~~~~~~
warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:268:7: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:269:46: error: 'uint64_t' was not declared in this scope
warning: webm-sys@1.0.4:   269 |       static_assert(sizeof(double) == sizeof(uint64_t), "");
warning: webm-sys@1.0.4:       |                                              ^~~~~~~~
warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:269:46: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:272:5: error: 'dd' was not declared in this scope
warning: webm-sys@1.0.4:   272 |     dd = 0;
warning: webm-sys@1.0.4:       |     ^~
warning: webm-sys@1.0.4: ToolExecError: Command LC_ALL="C" "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-m64" "-I" "libwebm" "-fno-rtti" "-std=gnu++11" "-fno-exceptions" "-o" "/home/agevlakh/rustdesk/target/debug/build/webm-sys-b4de58957603cccc/out/f6c0733b753af51c-mkvparser.o" "-c" "libwebm/mkvparser/mkvparser.cc" with args c++ did not execute successfully (status code exit status: 1).
error: failed to run custom build command for `webm-sys v1.0.4 (https://github.com/rustdesk-org/rust-webm#d2c4d3ac)`

Caused by:
  process didn't exit successfully: `/home/agevlakh/rustdesk/target/debug/build/webm-sys-b80ed5dd1418badd/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-changed=ffi.cpp
  OUT_DIR = Some(/home/agevlakh/rustdesk/target/debug/build/webm-sys-b4de58957603cccc/out)
  OPT_LEVEL = Some(0)
  TARGET = Some(x86_64-alpine-linux-musl)
  HOST = Some(x86_64-alpine-linux-musl)
  cargo:rerun-if-env-changed=CXX_x86_64-alpine-linux-musl
  CXX_x86_64-alpine-linux-musl = None
  cargo:rerun-if-env-changed=CXX_x86_64_alpine_linux_musl
  CXX_x86_64_alpine_linux_musl = None
  cargo:rerun-if-env-changed=HOST_CXX
  HOST_CXX = None
  cargo:rerun-if-env-changed=CXX
  CXX = None
  cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT
  RUSTC_WRAPPER = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some(true)
  CARGO_CFG_TARGET_FEATURE = Some(fxsr,sse,sse2)
  cargo:rerun-if-env-changed=CXXFLAGS_x86_64-alpine-linux-musl
  CXXFLAGS_x86_64-alpine-linux-musl = None
  cargo:rerun-if-env-changed=CXXFLAGS_x86_64_alpine_linux_musl
  CXXFLAGS_x86_64_alpine_linux_musl = None
  cargo:rerun-if-env-changed=HOST_CXXFLAGS
  HOST_CXXFLAGS = None
  cargo:rerun-if-env-changed=CXXFLAGS
  CXXFLAGS = None
  CARGO_ENCODED_RUSTFLAGS = Some()
  cargo:warning=libwebm/mkvparser/mkvparser.cc: In function 'long int mkvparser::UnserializeFloat(IMkvReader*, long long int, long long int, double&)':
  cargo:warning=libwebm/mkvparser/mkvparser.cc:249:7: error: 'uint32_t' does not name a type
  cargo:warning=  249 |       uint32_t ff;
  cargo:warning=      |       ^~~~~~~~
  cargo:warning=libwebm/mkvparser/mkvparser.cc:24:1: note: 'uint32_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
  cargo:warning=   23 | #include "common/webmids.h"
  cargo:warning=  +++ |+#include <cstdint>
  cargo:warning=   24 | 
  cargo:warning=libwebm/mkvparser/mkvparser.cc:250:45: error: 'uint32_t' was not declared in this scope
  cargo:warning=  250 |       static_assert(sizeof(float) == sizeof(uint32_t), "");
  cargo:warning=      |                                             ^~~~~~~~
  cargo:warning=libwebm/mkvparser/mkvparser.cc:250:45: note: 'uint32_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
  cargo:warning=libwebm/mkvparser/mkvparser.cc:253:5: error: 'ff' was not declared in this scope; did you mean 'ffs'?
  cargo:warning=  253 |     ff = 0;
  cargo:warning=      |     ^~
  cargo:warning=      |     ffs
  cargo:warning=libwebm/mkvparser/mkvparser.cc:268:7: error: 'uint64_t' does not name a type
  cargo:warning=  268 |       uint64_t dd;
  cargo:warning=      |       ^~~~~~~~
  cargo:warning=libwebm/mkvparser/mkvparser.cc:268:7: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
  cargo:warning=libwebm/mkvparser/mkvparser.cc:269:46: error: 'uint64_t' was not declared in this scope
  cargo:warning=  269 |       static_assert(sizeof(double) == sizeof(uint64_t), "");
  cargo:warning=      |                                              ^~~~~~~~
  cargo:warning=libwebm/mkvparser/mkvparser.cc:269:46: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
  cargo:warning=libwebm/mkvparser/mkvparser.cc:272:5: error: 'dd' was not declared in this scope
  cargo:warning=  272 |     dd = 0;
  cargo:warning=      |     ^~
  exit status: 0
  exit status: 0
  exit status: 0
  exit status: 1
  cargo:warning=ToolExecError: Command LC_ALL="C" "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-m64" "-I" "libwebm" "-fno-rtti" "-std=gnu++11" "-fno-exceptions" "-o" "/home/agevlakh/rustdesk/target/debug/build/webm-sys-b4de58957603cccc/out/f6c0733b753af51c-mkvparser.o" "-c" "libwebm/mkvparser/mkvparser.cc" with args c++ did not execute successfully (status code exit status: 1).
  exit status: 0
  exit status: 0

  --- stderr


  error occurred in cc-rs: Command LC_ALL="C" "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-m64" "-I" "libwebm" "-fno-rtti" "-std=gnu++11" "-fno-exceptions" "-o" "/home/agevlakh/rustdesk/target/debug/build/webm-sys-b4de58957603cccc/out/f6c0733b753af51c-mkvparser.o" "-c" "libwebm/mkvparser/mkvparser.cc" with args c++ did not execute successfully (status code exit status: 1).


warning: build failed, waiting for other jobs to finish...

How to Reproduce

  1. setup all apk repos to edge and add testing repo
  2. update distro, reboot
sudo apk add build-base git wget curl nasm yasm gtk+3.0-dev clang libxcb-dev libxcb-dev xdotool-dev libxfixes-dev pulseaudio-dev cmake alsa-lib-dev gstreamer-dev gst-plugins-base-dev linux-pam-dev rust cargo zip ninja-is-really-ninja perl bash clang21-libclang

git clone https://github.com/microsoft/vcpkg
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aom

mkdir $HOME/.cargo/env
source $HOME/.cargo/env
git clone --recurse-submodules https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run

Expected Behavior

Complete build binary

Operating system(s) on local (controlling) side and remote (controlled) side

Alpine linux edge

RustDesk Version(s) on local (controlling) side and remote (controlled) side

1.4.2

Screenshots

Image

Additional Context

No response

Originally created by @agevlakh on GitHub (Oct 6, 2025). ### Bug Description Cannot build from source.Here isthe error: ``` ... Compiling zbus v3.15.2 Compiling tiny-skia-path v0.11.4 Compiling wayland-csd-frame v0.3.0 Compiling dirs-sys v0.4.1 Compiling wayland-cursor v0.31.5 Compiling git2 v0.16.1 Compiling shadow-rs v0.21.0 warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc: In function 'long int mkvparser::UnserializeFloat(IMkvReader*, long long int, long long int, double&)': warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:249:7: error: 'uint32_t' does not name a type warning: webm-sys@1.0.4: 249 | uint32_t ff; warning: webm-sys@1.0.4: | ^~~~~~~~ warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:24:1: note: 'uint32_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>' warning: webm-sys@1.0.4: 23 | #include "common/webmids.h" warning: webm-sys@1.0.4: +++ |+#include <cstdint> warning: webm-sys@1.0.4: 24 | warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:250:45: error: 'uint32_t' was not declared in this scope warning: webm-sys@1.0.4: 250 | static_assert(sizeof(float) == sizeof(uint32_t), ""); warning: webm-sys@1.0.4: | ^~~~~~~~ warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:250:45: note: 'uint32_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>' warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:253:5: error: 'ff' was not declared in this scope; did you mean 'ffs'? warning: webm-sys@1.0.4: 253 | ff = 0; warning: webm-sys@1.0.4: | ^~ warning: webm-sys@1.0.4: | ffs warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:268:7: error: 'uint64_t' does not name a type warning: webm-sys@1.0.4: 268 | uint64_t dd; warning: webm-sys@1.0.4: | ^~~~~~~~ warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:268:7: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>' warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:269:46: error: 'uint64_t' was not declared in this scope warning: webm-sys@1.0.4: 269 | static_assert(sizeof(double) == sizeof(uint64_t), ""); warning: webm-sys@1.0.4: | ^~~~~~~~ warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:269:46: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>' warning: webm-sys@1.0.4: libwebm/mkvparser/mkvparser.cc:272:5: error: 'dd' was not declared in this scope warning: webm-sys@1.0.4: 272 | dd = 0; warning: webm-sys@1.0.4: | ^~ warning: webm-sys@1.0.4: ToolExecError: Command LC_ALL="C" "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-m64" "-I" "libwebm" "-fno-rtti" "-std=gnu++11" "-fno-exceptions" "-o" "/home/agevlakh/rustdesk/target/debug/build/webm-sys-b4de58957603cccc/out/f6c0733b753af51c-mkvparser.o" "-c" "libwebm/mkvparser/mkvparser.cc" with args c++ did not execute successfully (status code exit status: 1). error: failed to run custom build command for `webm-sys v1.0.4 (https://github.com/rustdesk-org/rust-webm#d2c4d3ac)` Caused by: process didn't exit successfully: `/home/agevlakh/rustdesk/target/debug/build/webm-sys-b80ed5dd1418badd/build-script-build` (exit status: 1) --- stdout cargo:rerun-if-changed=ffi.cpp OUT_DIR = Some(/home/agevlakh/rustdesk/target/debug/build/webm-sys-b4de58957603cccc/out) OPT_LEVEL = Some(0) TARGET = Some(x86_64-alpine-linux-musl) HOST = Some(x86_64-alpine-linux-musl) cargo:rerun-if-env-changed=CXX_x86_64-alpine-linux-musl CXX_x86_64-alpine-linux-musl = None cargo:rerun-if-env-changed=CXX_x86_64_alpine_linux_musl CXX_x86_64_alpine_linux_musl = None cargo:rerun-if-env-changed=HOST_CXX HOST_CXX = None cargo:rerun-if-env-changed=CXX CXX = None cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT RUSTC_WRAPPER = None cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS CRATE_CC_NO_DEFAULTS = None DEBUG = Some(true) CARGO_CFG_TARGET_FEATURE = Some(fxsr,sse,sse2) cargo:rerun-if-env-changed=CXXFLAGS_x86_64-alpine-linux-musl CXXFLAGS_x86_64-alpine-linux-musl = None cargo:rerun-if-env-changed=CXXFLAGS_x86_64_alpine_linux_musl CXXFLAGS_x86_64_alpine_linux_musl = None cargo:rerun-if-env-changed=HOST_CXXFLAGS HOST_CXXFLAGS = None cargo:rerun-if-env-changed=CXXFLAGS CXXFLAGS = None CARGO_ENCODED_RUSTFLAGS = Some() cargo:warning=libwebm/mkvparser/mkvparser.cc: In function 'long int mkvparser::UnserializeFloat(IMkvReader*, long long int, long long int, double&)': cargo:warning=libwebm/mkvparser/mkvparser.cc:249:7: error: 'uint32_t' does not name a type cargo:warning= 249 | uint32_t ff; cargo:warning= | ^~~~~~~~ cargo:warning=libwebm/mkvparser/mkvparser.cc:24:1: note: 'uint32_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>' cargo:warning= 23 | #include "common/webmids.h" cargo:warning= +++ |+#include <cstdint> cargo:warning= 24 | cargo:warning=libwebm/mkvparser/mkvparser.cc:250:45: error: 'uint32_t' was not declared in this scope cargo:warning= 250 | static_assert(sizeof(float) == sizeof(uint32_t), ""); cargo:warning= | ^~~~~~~~ cargo:warning=libwebm/mkvparser/mkvparser.cc:250:45: note: 'uint32_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>' cargo:warning=libwebm/mkvparser/mkvparser.cc:253:5: error: 'ff' was not declared in this scope; did you mean 'ffs'? cargo:warning= 253 | ff = 0; cargo:warning= | ^~ cargo:warning= | ffs cargo:warning=libwebm/mkvparser/mkvparser.cc:268:7: error: 'uint64_t' does not name a type cargo:warning= 268 | uint64_t dd; cargo:warning= | ^~~~~~~~ cargo:warning=libwebm/mkvparser/mkvparser.cc:268:7: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>' cargo:warning=libwebm/mkvparser/mkvparser.cc:269:46: error: 'uint64_t' was not declared in this scope cargo:warning= 269 | static_assert(sizeof(double) == sizeof(uint64_t), ""); cargo:warning= | ^~~~~~~~ cargo:warning=libwebm/mkvparser/mkvparser.cc:269:46: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>' cargo:warning=libwebm/mkvparser/mkvparser.cc:272:5: error: 'dd' was not declared in this scope cargo:warning= 272 | dd = 0; cargo:warning= | ^~ exit status: 0 exit status: 0 exit status: 0 exit status: 1 cargo:warning=ToolExecError: Command LC_ALL="C" "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-m64" "-I" "libwebm" "-fno-rtti" "-std=gnu++11" "-fno-exceptions" "-o" "/home/agevlakh/rustdesk/target/debug/build/webm-sys-b4de58957603cccc/out/f6c0733b753af51c-mkvparser.o" "-c" "libwebm/mkvparser/mkvparser.cc" with args c++ did not execute successfully (status code exit status: 1). exit status: 0 exit status: 0 --- stderr error occurred in cc-rs: Command LC_ALL="C" "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-m64" "-I" "libwebm" "-fno-rtti" "-std=gnu++11" "-fno-exceptions" "-o" "/home/agevlakh/rustdesk/target/debug/build/webm-sys-b4de58957603cccc/out/f6c0733b753af51c-mkvparser.o" "-c" "libwebm/mkvparser/mkvparser.cc" with args c++ did not execute successfully (status code exit status: 1). warning: build failed, waiting for other jobs to finish... ``` ### How to Reproduce 1) setup all apk repos to edge and add testing repo 2) update distro, reboot ``` sudo apk add build-base git wget curl nasm yasm gtk+3.0-dev clang libxcb-dev libxcb-dev xdotool-dev libxfixes-dev pulseaudio-dev cmake alsa-lib-dev gstreamer-dev gst-plugins-base-dev linux-pam-dev rust cargo zip ninja-is-really-ninja perl bash clang21-libclang git clone https://github.com/microsoft/vcpkg vcpkg/bootstrap-vcpkg.sh export VCPKG_ROOT=$HOME/vcpkg vcpkg/vcpkg install libvpx libyuv opus aom mkdir $HOME/.cargo/env source $HOME/.cargo/env git clone --recurse-submodules https://github.com/rustdesk/rustdesk cd rustdesk mkdir -p target/debug wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so mv libsciter-gtk.so target/debug VCPKG_ROOT=$HOME/vcpkg cargo run ``` ### Expected Behavior Complete build binary ### Operating system(s) on local (controlling) side and remote (controlled) side Alpine linux edge ### RustDesk Version(s) on local (controlling) side and remote (controlled) side 1.4.2 ### Screenshots <img width="1920" height="880" alt="Image" src="https://github.com/user-attachments/assets/32bab225-20ae-4d8d-901c-71edc6a85aae" /> ### Additional Context _No response_
deekerman 2026-02-21 01:34:02 -05:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@rustdesk commented on GitHub (Oct 6, 2025):

#763

@rustdesk commented on GitHub (Oct 6, 2025): #763
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/rustdesk-rustdesk#3709
No description provided.