Build Failure on Kylin OS (aarch64 / Kirin 990) due to vcpkg libaom error #3520

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

Originally created by @cymx333 on GitHub (Jun 30, 2025).

Bug Description

System Information

I am trying to compile RustDesk on a native aarch64 machine, but it consistently fails. Here is my system information:

  • Architecture (uname -m): aarch64
  • CPU (/proc/cpuinfo): Hardware: Kirin990
  • Operating System (/etc/os-release):
    • NAME="Kylin"
    • VERSION="银河麒麟桌面操作系统V10 (SP1)"
    • ID=kylin
    • ID_LIKE=debian
  • Glibc Version (ldd --version): ldd (Ubuntu GLIBC 2.31-0kylin9.1k20.6) 2.31

Problem Description

The build process consistently fails when trying to build the scrap crate. The error indicates that a header file from the libaom library, aom/aom_external_partition.h, cannot be found. This happens within the vcpkg-driven build process.

Final Error Log

error: failed to run custom build command for scrap v0.5.0 (/home/seriously/rustdesk/rustdesk/rustdesk/libs/scrap)

Caused by:
  process didn't exit successfully: /home/seriously/rustdesk/rustdesk/rustdesk/target/release/build/scrap-9d8fce994122a16d/build-script-build (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=NO_PKG_CONFIG_libyuv
  cargo:info=arm64-linux
  cargo:rustc-link-lib=static=yuv
  cargo:rustc-link-search=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/lib
  cargo:include=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/include
  cargo:rerun-if-env-changed=NO_PKG_CONFIG_libvpx
  cargo:info=arm64-linux
  cargo:rustc-link-lib=static=vpx
  cargo:rustc-link-search=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/lib
  cargo:include=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/include
  rerun-if-changed=/home/seriously/rustdesk/rustdesk/rustdesk/libs/scrap/src/bindings/vpx_ffi.h
  rerun-if-changed=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/include
  cargo:rerun-if-env-changed=NO_PKG_CONFIG_aom
  cargo:info=arm64-linux
  cargo:rustc-link-lib=static=aom
  cargo:rustc-link-search=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/lib
  cargo:include=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/include
  rerun-if-changed=/home/seriously/rustdesk/rustdesk/rustdesk/libs/scrap/src/bindings/aom_ffi.h
  rerun-if-changed=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/include

  --- stderr
  /home/seriously/rustdesk/rustdesk/rustdesk/libs/scrap/src/bindings/aom_ffi.h:5:10: fatal error: 'aom/aom_external_partition.h' file not found
  thread 'main' panicked at libs/scrap/build.rs:173:18:
  called Result::unwrap() on an Err value: ClangDiagnostic("/home/seriously/rustdesk/rustdesk/rustdesk/libs/scrap/src/bindings/aom_ffi.h:5:10: fatal error: 'aom/aom_external_partition.h' file not found\n")

What I Have Already Tried

I have already tried a comprehensive list of solutions without success:

  1. Installed all system dependencies: build-essential, pkg-config, libopus-dev, libvpx-dev, libaom-dev, cmake, git, nasm, yasm, perl, and all X11 development libraries.
  2. Attempted to disable features: Tried disabling av1 and hwcodec features in various Cargo.toml files (hbb_common, scrap, top-level rustdesk). This did not stop the build system from attempting to compile libaom.
  3. Forced clean rebuilds: Ran rm -rf ./vcpkg && rm -rf ./target multiple times to ensure a clean build environment.
  4. Attempted to force system libraries: Ran the build with VCPKG_DISABLE=1 cargo build --release. This environment variable was ignored by the build script, and it still attempted to use the internal vcpkg path.

This seems to be a deep-seated compatibility issue between the vcpkg build process for libaom and the Kylin OS aarch64 environment. Any help from the development team would be greatly appreciated.

How to Reproduce

...

Expected Behavior

...

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

Kylin OS (aarch64 / Kirin 990)

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

1.40-1.40

Screenshots

..

Additional Context

No response

Originally created by @cymx333 on GitHub (Jun 30, 2025). ### Bug Description ### System Information I am trying to compile RustDesk on a native `aarch64` machine, but it consistently fails. Here is my system information: * **Architecture (`uname -m`):** `aarch64` * **CPU (`/proc/cpuinfo`):** `Hardware: Kirin990` * **Operating System (`/etc/os-release`):** * NAME="Kylin" * VERSION="银河麒麟桌面操作系统V10 (SP1)" * ID=kylin * ID_LIKE=debian * **Glibc Version (`ldd --version`):** `ldd (Ubuntu GLIBC 2.31-0kylin9.1k20.6) 2.31` ### Problem Description The build process consistently fails when trying to build the `scrap` crate. The error indicates that a header file from the `libaom` library, `aom/aom_external_partition.h`, cannot be found. This happens within the vcpkg-driven build process. ### Final Error Log error: failed to run custom build command for scrap v0.5.0 (/home/seriously/rustdesk/rustdesk/rustdesk/libs/scrap) Caused by:   process didn't exit successfully: /home/seriously/rustdesk/rustdesk/rustdesk/target/release/build/scrap-9d8fce994122a16d/build-script-build (exit status: 101)   --- stdout   cargo:rerun-if-env-changed=NO_PKG_CONFIG_libyuv   cargo:info=arm64-linux   cargo:rustc-link-lib=static=yuv   cargo:rustc-link-search=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/lib   cargo:include=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/include   cargo:rerun-if-env-changed=NO_PKG_CONFIG_libvpx   cargo:info=arm64-linux   cargo:rustc-link-lib=static=vpx   cargo:rustc-link-search=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/lib   cargo:include=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/include   rerun-if-changed=/home/seriously/rustdesk/rustdesk/rustdesk/libs/scrap/src/bindings/vpx_ffi.h   rerun-if-changed=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/include   cargo:rerun-if-env-changed=NO_PKG_CONFIG_aom   cargo:info=arm64-linux   cargo:rustc-link-lib=static=aom   cargo:rustc-link-search=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/lib   cargo:include=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/include   rerun-if-changed=/home/seriously/rustdesk/rustdesk/rustdesk/libs/scrap/src/bindings/aom_ffi.h   rerun-if-changed=/home/seriously/rustdesk/rustdesk/vcpkg/installed/arm64-linux/include   --- stderr   /home/seriously/rustdesk/rustdesk/rustdesk/libs/scrap/src/bindings/aom_ffi.h:5:10: fatal error: 'aom/aom_external_partition.h' file not found   thread 'main' panicked at libs/scrap/build.rs:173:18:   called Result::unwrap() on an Err value: ClangDiagnostic("/home/seriously/rustdesk/rustdesk/rustdesk/libs/scrap/src/bindings/aom_ffi.h:5:10: fatal error: 'aom/aom_external_partition.h' file not found\n") ### What I Have Already Tried I have already tried a comprehensive list of solutions without success: 1. **Installed all system dependencies:** `build-essential`, `pkg-config`, `libopus-dev`, `libvpx-dev`, `libaom-dev`, `cmake`, `git`, `nasm`, `yasm`, `perl`, and all X11 development libraries. 2. **Attempted to disable features:** Tried disabling `av1` and `hwcodec` features in various `Cargo.toml` files (`hbb_common`, `scrap`, top-level `rustdesk`). This did not stop the build system from attempting to compile `libaom`. 3. **Forced clean rebuilds:** Ran `rm -rf ./vcpkg && rm -rf ./target` multiple times to ensure a clean build environment. 4. **Attempted to force system libraries:** Ran the build with `VCPKG_DISABLE=1 cargo build --release`. This environment variable was ignored by the build script, and it still attempted to use the internal `vcpkg` path. This seems to be a deep-seated compatibility issue between the vcpkg build process for `libaom` and the Kylin OS `aarch64` environment. Any help from the development team would be greatly appreciated. ### How to Reproduce ... ### Expected Behavior ... ### Operating system(s) on local (controlling) side and remote (controlled) side Kylin OS (aarch64 / Kirin 990) ### RustDesk Version(s) on local (controlling) side and remote (controlled) side 1.40-1.40 ### Screenshots .. ### Additional Context _No response_
deekerman 2026-02-21 01:25:49 -05:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@rustdesk commented on GitHub (Jun 30, 2025):

#763

@rustdesk commented on GitHub (Jun 30, 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#3520
No description provided.