On Debian 13 GNOME I try to compile https://gitlab.com/kyber/apps/kyber-desktop, but face:

```bash
./build-linux.sh
```
```
make[2]: Entering directory '/home/benjamin_loison/kyber-desktop/kysdk/kymedia/contrib/work/x86_64-linux-gnu/vlc'
make[3]: Entering directory '/home/benjamin_loison/kyber-desktop/kysdk/kymedia/contrib/work/x86_64-linux-gnu/vlc'
make[3]: Nothing to be done for 'install-data-am'.
/usr/bin/mkdir -p '/home/benjamin_loison/kyber-desktop/rootfs-x86_64-linux-gnu/bin'
/usr/bin/install -c cvlc rvlc '/home/benjamin_loison/kyber-desktop/rootfs-x86_64-linux-gnu/bin'
make install-exec-hook
make[4]: Entering directory '/home/benjamin_loison/kyber-desktop/kysdk/kymedia/contrib/work/x86_64-linux-gnu/vlc'
if test "x86_64-pc-linux-gnu" = "x86_64-pc-linux-gnu"; then \
PATH="/home/benjamin_loison/kyber-desktop/rootfs-x86_64-linux-gnu/bin:$PATH" \
LD_LIBRARY_PATH="/home/benjamin_loison/kyber-desktop/rootfs-x86_64-linux-gnu/lib:$LD_LIBRARY_PATH" \
DYLD_LIBRARY_PATH="/home/benjamin_loison/kyber-desktop/rootfs-x86_64-linux-gnu/lib:$DYLD_LIBRARY_PATH" \
"/home/benjamin_loison/kyber-desktop/rootfs-x86_64-linux-gnu/libexec/vlc/vlc-cache-gen" \
"/home/benjamin_loison/kyber-desktop/rootfs-x86_64-linux-gnu/lib/vlc/plugins" ; \
else \
echo "Cross-compilation: cache generation skipped!" ; \
fi
make[4]: Leaving directory '/home/benjamin_loison/kyber-desktop/kysdk/kymedia/contrib/work/x86_64-linux-gnu/vlc'
make[3]: Leaving directory '/home/benjamin_loison/kyber-desktop/kysdk/kymedia/contrib/work/x86_64-linux-gnu/vlc'
make[2]: Leaving directory '/home/benjamin_loison/kyber-desktop/kysdk/kymedia/contrib/work/x86_64-linux-gnu/vlc'
make[1]: Leaving directory '/home/benjamin_loison/kyber-desktop/kysdk/kymedia/contrib/work/x86_64-linux-gnu/vlc'
warning: patch `kymux v0.1.0 (/home/benjamin_loison/kyber-desktop/kysdk/kymux/kymux)` was not used in the crate graph
warning: patch `kynput v0.1.0 (/home/benjamin_loison/kyber-desktop/kysdk/kynput/kynput)` was not used in the crate graph
warning: patch `kynput-rs v0.1.0 (/home/benjamin_loison/kyber-desktop/kysdk/kynput/kynput-rs)` was not used in the crate graph
warning: patch `kynput-sys v0.1.0 (/home/benjamin_loison/kyber-desktop/kysdk/kynput/kynput-rs/kynput-sys)` was not used in the crate graph
warning: patch `kynputservice-types v0.1.0 (/home/benjamin_loison/kyber-desktop/kysdk/kynput/kynputservice-types)` was not used in the crate graph
warning: patch `vlc-rs v0.3.0 (/home/benjamin_loison/kyber-desktop/kysdk/kymedia/external/vlc-rs)` was not used in the crate graph
help: Check that the patched package version and available features are compatible
with the dependency requirements. If the patch has a different version from
what is locked in the Cargo.lock file, run `cargo update` to use the new
version. This may also occur with an optional dependency that is not enabled.
Compiling proc-macro2 v1.0.79
Compiling unicode-ident v1.0.12
Compiling libc v0.2.180
Compiling serde v1.0.197
Compiling stable_deref_trait v1.2.1
Compiling autocfg v1.1.0
Compiling glob v0.3.1
Compiling litemap v0.8.1
Compiling writeable v0.6.2
Compiling rustix v0.38.31
Compiling prettyplease v0.2.16
Compiling thiserror v1.0.58
Compiling cfg-if v1.0.0
Compiling smallvec v1.13.1
Compiling either v1.10.0
Compiling regex-syntax v0.8.2
Compiling icu_properties_data v2.1.2
Compiling minimal-lexical v0.2.1
Compiling bitflags v2.5.0
Compiling memchr v2.7.1
Compiling linux-raw-sys v0.4.13
Compiling icu_normalizer_data v2.1.1
Compiling libloading v0.8.3
Compiling home v0.5.9
Compiling bindgen v0.69.4
Compiling async-trait v0.1.78
Compiling equivalent v1.0.1
Compiling byteorder v1.5.0
Compiling shlex v1.3.0
Compiling rustc-hash v1.1.0
Compiling paste v1.0.14
Compiling hashbrown v0.14.3
Compiling lazy_static v1.4.0
Compiling itertools v0.12.1
Compiling lazycell v1.3.0
Compiling log v0.4.21
Compiling pkg-config v0.3.30
Compiling bytes v1.5.0
Compiling itoa v1.0.10
Compiling pin-project-lite v0.2.13
Compiling utf8_iter v1.0.4
Compiling ryu v1.0.17
Compiling num-traits v0.2.18
Compiling lock_api v0.4.11
Compiling cfg_aliases v0.1.1
Compiling syn v1.0.109
Compiling parking_lot_core v0.9.9
Compiling serde_json v1.0.114
Compiling percent-encoding v2.3.2
Compiling nix v0.28.0
Compiling clang-sys v1.7.0
Compiling destructure_traitobject v0.2.0
Compiling winnow v0.6.5
Compiling scopeguard v1.2.0
Compiling ppv-lite86 v0.2.17
Compiling anyhow v1.0.81
Compiling form_urlencoded v1.2.2
Compiling unsafe-any-ors v1.0.0
Compiling unsafe-libyaml v0.2.11
Compiling iana-time-zone v0.1.60
Compiling typemap-ors v1.0.0
Compiling nom v7.1.3
Compiling fnv v1.0.7
Compiling once_cell v1.19.0
Compiling quote v1.0.35
Compiling arc-swap v1.7.0
Compiling log-mdc v0.1.0
Compiling humantime v2.1.0
Compiling syn v2.0.53
Compiling indexmap v2.2.5
Compiling regex-automata v0.4.6
Compiling rmp v0.8.12
Compiling ordered-float v2.10.1
Compiling chrono v0.4.35
Compiling signal-hook-registry v1.4.1
Compiling mio v0.8.11
Compiling getrandom v0.2.12
Compiling num_cpus v1.16.0
Compiling socket2 v0.5.6
Compiling thread-id v4.2.1
Compiling which v4.4.2
Compiling rand_core v0.6.4
Compiling parking_lot v0.12.1
Compiling cexpr v0.6.0
Compiling rand_chacha v0.3.1
Compiling rand v0.8.5
Compiling regex v1.10.3
Compiling derivative v2.2.0
Compiling ctrlc v3.4.4
Compiling synstructure v0.13.2
Compiling zerofrom-derive v0.1.6
Compiling serde_derive v1.0.197
Compiling yoke-derive v0.8.1
Compiling zerovec-derive v0.11.2
Compiling displaydoc v0.2.5
Compiling thiserror-impl v1.0.58
Compiling tokio-macros v2.2.0
Compiling tokio v1.36.0
Compiling kymux-util v0.1.0 (/home/benjamin_loison/kyber-desktop/kysdk/kymux/kymux-util)
Compiling kymux-types v0.1.0 (/home/benjamin_loison/kyber-desktop/kysdk/kymux/kymux-types)
Compiling zerofrom v0.1.6
Compiling yoke v0.8.1
Compiling zerovec v0.11.5
Compiling zerotrie v0.2.3
Compiling tinystr v0.8.2
Compiling potential_utf v0.1.4
Compiling icu_collections v2.1.1
Compiling icu_locale_core v2.1.1
Compiling icu_provider v2.1.1
Compiling icu_normalizer v2.1.1
Compiling icu_properties v2.1.2
Compiling txproto-sys v0.1.0 (/home/benjamin_loison/kyber-desktop/kysdk/kymedia/txproto-rs/txproto-sys)
Compiling idna_adapter v1.2.1
Compiling idna v1.1.0
Compiling url v2.5.8
Compiling toml_datetime v0.6.5
Compiling serde_spanned v0.6.5
Compiling rmp-serde v1.1.2
Compiling serde-value v0.7.0
Compiling kyavservice-types v0.1.0 (/home/benjamin_loison/kyber-desktop/kysdk/kymedia/kyavservice-types)
Compiling serde_yaml v0.9.33
Compiling toml_edit v0.22.8
Compiling kycom v0.1.0 (/home/benjamin_loison/kyber-desktop/kysdk/kymux/kycom)
error: failed to run custom build command for `txproto-sys v0.1.0 (/home/benjamin_loison/kyber-desktop/kysdk/kymedia/txproto-rs/txproto-sys)`

Caused by:
process didn't exit successfully: `/home/benjamin_loison/kyber-desktop/kysdk/kymedia/target/release/build/txproto-sys-0a5f62c3635dc2af/build-script-build` (exit status: 101)
--- stdout
cargo:rerun-if-changed=wrapper.h
cargo:rerun-if-env-changed=TXPROTO_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=TXPROTO_STATIC
cargo:rerun-if-env-changed=TXPROTO_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=SYSROOT
cargo:rerun-if-env-changed=TXPROTO_STATIC
cargo:rerun-if-env-changed=TXPROTO_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rustc-link-search=native=/home/benjamin_loison/kyber-desktop/rootfs-x86_64-linux-gnu/lib
cargo:rustc-link-lib=txproto
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=TXPROTO_STATIC
cargo:rerun-if-env-changed=TXPROTO_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=LIBAVUTIL_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=LIBAVUTIL_STATIC
cargo:rerun-if-env-changed=LIBAVUTIL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=SYSROOT
cargo:rerun-if-env-changed=LIBAVUTIL_STATIC
cargo:rerun-if-env-changed=LIBAVUTIL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rustc-link-search=native=/home/benjamin_loison/kyber-desktop/rootfs-x86_64-linux-gnu/lib
cargo:rustc-link-lib=avutil
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=LIBAVUTIL_STATIC
cargo:rerun-if-env-changed=LIBAVUTIL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=TARGET
cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS
cargo:rerun-if-changed=wrapper.h

--- stderr
/usr/include/limits.h:124:16: fatal error: 'limits.h' file not found

thread 'main' (380573) panicked at txproto-rs/txproto-sys/build.rs:66:40:
Unable to generate bindings: ClangDiagnostic("/usr/include/limits.h:124:16: fatal error: 'limits.h' file not found\n")
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
```

How to solve this issue?
Yesterday 2:40pm

The error occurs because the C development headers (specifically limits.h) are missing on your system. This is required by the txproto-sys crate's build script (which uses bindgen to generate Rust bindings from C headers).

Solution

Install the essential C development toolchain and headers:

bash
sudo apt update
sudo apt install build-essential libc6-dev

Then retry the build from a clean state:

bash
# Clean previous build artifacts
rm -rf kysdk/kymedia/target
rm -rf rootfs-x86_64-linux-gnu

# Re-run the build
./build-linux.sh

Why this works

  • build-essential provides gcc, make, and other build tools
  • libc6-dev provides the standard C library headers (including /usr/include/limits.h)
  • The txproto-sys build script uses bindgen which requires these headers to generate Rust FFI bindings

If you still encounter issues, ensure your system is up-to-date (sudo apt full-upgrade) and consider installing additional development packages like libc-dev or linux-libc-dev.

Yesterday 2:40pm

This is a shared conversation and may include unverified content that doesn't reflect Mistral AI's views. Login to resume chatting.

Le Chat can make mistakes. Check answers. Learn more