Failure clusters

Every failing system-result grouped by the root-cause signature found in its build log. Clusters are ranked by count — fixing the cluster at the top unblocks the most packages at once.

NIF built for wrong architecture (scrub-otp)
13 failures · 7 packages
A dependency's NIF .so was compiled against the host architecture, not the Nerves target — Nerves' scrub-otp step rejects it at firmware-build time. Usually fixable by forcing a clean rebuild of the dep for the target.
Affecting nerves_system_mangopi_mq_pro nerves_system_x86_64 · NIF language breakdown: rust × 2
Show 13 affected packages
ash_appsignal riscv64
ash_appsignal x86_64
bin_class x86_64
elixir_ale riscv64
elixir_ale x86_64
grovepi riscv64
grovepi x86_64
lumis riscv64 rust
lumis x86_64 rust
nerves_uart riscv64
nerves_uart x86_64
parrhesia riscv64
parrhesia x86_64
Representative log excerpt
* [Nerves] validating vm.args
* skipping runtime configuration (config/runtime.exs not found)
* creating _build/x86_64/rel/nerves_compatibility_test/releases/0.1.0/vm.args
Updating base firmware image with Erlang release...
scrub-otp-release.sh: ERROR: Unexpected executable format for '/work/proj/_build/x86_64/_nerves-tmp/rootfs_overlay/srv/erlang/lib/lib_secp256k1-0.7.1/priv/musig.so'

Got:
 readelf:AArch64;0x0

Expecting:
 readelf:Advanced Micro Devices X86-64;0x0

This file was compiled for the host or a different target and probably
will not work.

Check the following:

1. If this file comes from a library, that library may be compiling to
   its source directory under `deps`. Manually clean up the source
   directory and try building again.

2. Are you using a path dependency in your mix deps? If so, run
   'mix clean' in that directory to avoid pulling in any of its
   build products.

3. Did you recently upgrade or change your Nerves system? If so,
   try cleaning and rebuilding this project and its deps.

4. Are you building outside of Nerves' mix integration? If so,
   make sure that you've sourced 'nerves-env.sh'.

If you are very sure you know what you are doing, you may place an empty
file in the same directory as the offending file(s) called '.noscrub'.
This will explicitly disable scrubbing for that directory.

If you're still having trouble, please file an issue on Github
at https://github.com/nerves-project/nerves_system_br/issues.

Precompiled NIF missing for this target
8 failures · 5 packages
Package ships a Rustler/Zigler precompiled NIF but no build exists for the Nerves target triple. The package vendor would need to add the triple to their release.
Affecting nerves_system_mangopi_mq_pro nerves_system_x86_64 · NIF language breakdown: rust × 7
Show 8 affected packages
bin_class riscv64
riscv64gc-unknown-linux-gnu
dither riscv64 rust
riscv64gc-unknown-linux-gnu
kreuzberg riscv64 rust
riscv64gc-unknown-linux-gnu
kreuzberg x86_64 rust
x86_64-unknown-linux-musl
kreuzcrawl riscv64 rust
riscv64gc-unknown-linux-gnu
kreuzcrawl x86_64 rust
x86_64-unknown-linux-musl
tree_sitter_language_pack riscv64 rust
riscv64gc-unknown-linux-gnu
tree_sitter_language_pack x86_64 rust
x86_64-unknown-linux-musl
Representative log excerpt
==> nerves_toolchain_x86_64_nerves_linux_musl
Generated nerves_toolchain_x86_64_nerves_linux_musl app
==> nerves_system_x86_64
Generated nerves_system_x86_64 app
==> nerves_compatibility_test

Nerves environment
  MIX_TARGET:   x86_64
  MIX_ENV:      prod

==> circular_buffer
Compiling 1 file (.ex)
Generated circular_buffer app
==> nerves_logging
 CC kmsg_tailer.o
 LD kmsg_tailer
Compiling 5 files (.ex)
Generated nerves_logging app
==> ring_logger
Compiling 7 files (.ex)
Generated ring_logger app
==> shoehorn
Compiling 8 files (.ex)
Generated shoehorn app
==> rustler_precompiled
Compiling 4 files (.ex)
Generated rustler_precompiled app
==> kreuzberg
Compiling 78 files (.ex)

== Compilation error in file lib/kreuzberg/native.ex ==
** (RuntimeError) precompiled NIF is not available for this target: "x86_64-unknown-linux-musl".
The available targets are:
 - aarch64-apple-darwin
 - aarch64-unknown-linux-gnu
 - x86_64-unknown-linux-gnu
 - x86_64-pc-windows-gnu
    lib/kreuzberg/native.ex:4: (module)
could not compile dependency :kreuzberg, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile kreuzberg --force", update it with "mix deps.update kreuzberg" or clean it with "mix deps.clean kreuzberg"
Could not compile dependency
7 failures · 4 packages
Catch-all for build failures where a dep's `mix compile` returned nonzero. See the representative log for the specific dep and cause.
Affecting nerves_system_mangopi_mq_pro nerves_system_rpi4 nerves_system_x86_64 · NIF language breakdown: rust × 1
Show 7 affected packages
minijinja_ex riscv64 rust
minijinja_ex
mob_dev riscv64
vix
picam riscv64
picam
picam arm64
picam
picam x86_64
picam
rpi_fb_capture riscv64
rpi_fb_capture
rpi_fb_capture x86_64
rpi_fb_capture
Representative log excerpt
Compiling 1 file (.ex)
Generated nerves_toolchain_ctng app
==> nerves_toolchain_x86_64_nerves_linux_musl
Generated nerves_toolchain_x86_64_nerves_linux_musl app
==> nerves_system_x86_64
Generated nerves_system_x86_64 app
==> nerves_compatibility_test

Nerves environment
  MIX_TARGET:   x86_64
  MIX_ENV:      prod

==> circular_buffer
Compiling 1 file (.ex)
Generated circular_buffer app
==> nerves_logging
 CC kmsg_tailer.o
 LD kmsg_tailer
Compiling 5 files (.ex)
Generated nerves_logging app
==> ring_logger
Compiling 7 files (.ex)
Generated ring_logger app
==> shoehorn
Compiling 8 files (.ex)
Generated shoehorn app
==> rpi_fb_capture
mkdir -p /work/proj/_build/x86_64/lib/rpi_fb_capture/priv
mkdir -p /work/proj/_build/x86_64/lib/rpi_fb_capture/obj
/home/nerves/.nerves/artifacts/nerves_toolchain_x86_64_nerves_linux_musl-linux_aarch64-13.2.0/bin/x86_64-nerves-linux-musl-gcc -c -m64 -fstack-protector-strong -march=x86-64 -fPIE -pie -Wl,-z,now -Wl,-z,relro -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -pipe -O2 --sysroot /home/nerves/.nerves/artifacts/nerves_system_x86_64-portable-1.33.3/staging  -o /work/proj/_build/x86_64/lib/rpi_fb_capture/obj/capture_dispmanx.o src/capture_dispmanx.c
src/capture_dispmanx.c:3:10: fatal error: bcm_host.h: No such file or directory
    3 | #include 
      |          ^~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:68: /work/proj/_build/x86_64/lib/rpi_fb_capture/obj/capture_dispmanx.o] Error 1
could not compile dependency :rpi_fb_capture, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile rpi_fb_capture --force", update it with "mix deps.update rpi_fb_capture" or clean it with "mix deps.clean rpi_fb_capture"
==> nerves_compatibility_test
** (Mix) Could not compile with "make" (exit status: 2).

Other / unclassified
3 failures · 1 package
Failures whose logs didn't match any known signature — worth eyeballing to propose a new pattern.
Affecting nerves_system_mangopi_mq_pro nerves_system_rpi4 nerves_system_x86_64
Show 3 affected packages
reckon_db riscv64
reckon_db arm64
reckon_db x86_64
Representative log excerpt
src/gen_batch_server.erl:269: Warning: INFO: receive matches any message, this is always fast
src/gen_batch_server.erl:323: Warning: INFO: receive matches any message, this is always fast

===> Analyzing applications...
===> Compiling ra
==> horus
Compiling 3 files (.erl)
Generated horus app
==> khepri
Compiling 22 files (.erl)
Generated khepri app
==> nerves_compatibility_test
===> Analyzing applications...
===> Compiling reckon_db
==> uboot_env
Compiling 5 files (.ex)
Generated uboot_env app
==> property_table
Compiling 8 files (.ex)
Generated property_table app
==> nerves_uevent
 CC uevent.o
 LD uevent
Compiling 3 files (.ex)
Generated nerves_uevent app
==> nerves_runtime
Compiling 14 files (.ex)
Generated nerves_runtime app
==> toolshed
Compiling 5 files (.ex)
Generated toolshed app
==> nerves_compatibility_test
Compiling 2 files (.ex)
Generated nerves_compatibility_test app
|nerves| Building OTP Release...

* [Nerves] validating vm.args
* skipping runtime configuration (config/runtime.exs not found)
** (Mix) Unknown application :erts
Failed to load NIF library at runtime
1 failures · 1 package
Application loaded on target but the NIF .so couldn't be dlopened — usually means the NIF was compiled but for the wrong libc/ABI.
Affecting nerves_system_x86_64
Show 1 affected package
mob_dev x86_64
Representative log excerpt
==> phoenix_html
Compiling 6 files (.ex)
Generated phoenix_html app
==> phoenix_template
Compiling 4 files (.ex)
Generated phoenix_template app
==> phoenix_pubsub
Compiling 12 files (.ex)
Generated phoenix_pubsub app
==> plug
Compiling 1 file (.erl)
Compiling 42 files (.ex)
Generated plug app
==> eqrcode
Compiling 10 files (.ex)
Generated eqrcode app
==> uboot_env
Compiling 5 files (.ex)
Generated uboot_env app
==> cc_precompiler
Compiling 3 files (.ex)
Generated cc_precompiler app
==> vix
Downloading precompiled NIF to /home/nerves/.cache/elixir_make/vix-nif-2.17-x86_64-linux-musl-0.38.0.tar.gz
Compiling 28 files (.ex)

12:29:46.501 [warning] The on_load function for module Elixir.Vix.Nif returned:
{:error,
 {:load_failed,
  ~c"Failed to load NIF library: '/work/proj/_build/x86_64/lib/vix/priv/vix.so: cannot open shared object file: No such file or directory'"}}


== Compilation error in file lib/vix/vips/enum.ex ==
** (UndefinedFunctionError) function Vix.Nif.nif_vips_enum_list/0 is undefined (module Vix.Nif is not available)
    Vix.Nif.nif_vips_enum_list()
    lib/vix/vips/enum.ex:5: Vix.Vips.EnumHelper.__before_compile__/1
    (stdlib 7.2) lists.erl:2466: :lists.foldl/3
    (stdlib 7.2) lists.erl:2471: :lists.foldl_1/3
could not compile dependency :vix, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile vix --force", update it with "mix deps.update vix" or clean it with "mix deps.clean vix"