Resolving Hex dependencies... Resolution completed in 0.12s Unchanged: acceptor_pool 1.0.1 bandit 1.10.4 circular_buffer 1.0.0 cli_subprocess_core 0.1.0 codex_sdk 0.16.1 ctx 0.6.0 elixir_make 0.9.0 erlexec 2.2.4 external_runtime_transport 0.1.0 finch 0.21.0 gproc 0.9.1 grpcbox 0.17.1 hpack_erl 0.3.0 hpax 1.0.3 interactive_cmd 0.1.4 jason 1.4.4 mime 2.0.7 mint 1.7.1 nerves 1.14.1 nerves_discovery 0.1.2 nerves_logging 0.2.4 nerves_runtime 0.13.12 nerves_system_bbb 2.29.3 nerves_system_br 1.33.5 nerves_system_grisp2 0.17.3 nerves_system_mangopi_mq_pro 0.15.3 nerves_system_osd32mp1 0.24.3 nerves_system_qemu_aarch64 0.3.3 nerves_system_rpi 2.0.2 nerves_system_rpi0 2.0.2 nerves_system_rpi0_2 2.0.2 nerves_system_rpi2 2.0.2 nerves_system_rpi3 2.0.2 nerves_system_rpi4 2.0.2 nerves_system_rpi5 2.0.2 nerves_system_x86_64 1.33.3 nerves_toolchain_aarch64_nerves_linux_gnu 13.2.0 nerves_toolchain_armv6_nerves_linux_gnueabihf 13.2.0 nerves_toolchain_armv7_nerves_linux_gnueabihf 13.2.0 nerves_toolchain_ctng 1.10.0 nerves_toolchain_riscv64_nerves_linux_gnu 13.2.0 nerves_toolchain_x86_64_nerves_linux_musl 13.2.0 nerves_uevent 0.1.5 nimble_options 1.1.1 nimble_pool 1.1.0 oauth2 2.1.0 opentelemetry 1.7.0 opentelemetry_api 1.5.0 opentelemetry_exporter 1.10.0 plug 1.19.1 plug_crypto 2.1.1 property_table 0.3.3 req 0.5.17 ring_logger 0.11.5 shoehorn 0.9.3 ssl_verify_fun 1.1.7 tablet 0.3.2 telemetry 1.4.1 tesla 1.17.0 thousand_island 1.4.3 tls_certificate_check 1.32.1 toml 0.7.0 toolshed 0.4.2 ts_chatterbox 0.15.1 typed_struct 0.3.0 uboot_env 1.0.2 websock 0.5.3 websockex 0.5.1 zoi 0.17.4 All dependencies have been fetched ==> jason Compiling 10 files (.ex) Generated jason app ==> tablet Compiling 2 files (.ex) Generated tablet app ==> elixir_make Compiling 8 files (.ex) Generated elixir_make app ==> nerves_discovery Compiling 5 files (.ex) Generated nerves_discovery app ==> interactive_cmd Compiling 1 file (.ex) Generated interactive_cmd app ==> nerves HOST_CC port.o HOST_LD port Compiling 50 files (.ex) Generated nerves app ==> nerves_compatibility_test Nerves environment MIX_TARGET: x86_64 MIX_ENV: prod Checking for prebuilt Nerves artifacts... Found nerves_system_x86_64 in cache /home/nerves/.nerves/artifacts/nerves_system_x86_64-portable-1.33.3 Found nerves_toolchain_x86_64_nerves_linux_musl in cache /home/nerves/.nerves/artifacts/nerves_toolchain_x86_64_nerves_linux_musl-linux_aarch64-13.2.0 ==> nerves ==> nerves_toolchain_ctng Compiling 1 file (.ex) Generated nerves_toolchain_ctng app ==> nerves_system_br Generated nerves_system_br 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 ==> typed_struct Compiling 2 files (.ex) Generated typed_struct app ==> mime Compiling 1 file (.ex) Generated mime app ==> toml Compiling 10 files (.ex) warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 264 │ defp handle_token(lexer, original, doc, type, skip, _data, lines) when type in '-_' do │ ~ │ └─ lib/decoder.ex:264:82 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 371 │ {:ok, {type, _skip, _data, _lines}} when type in '-+' -> │ ~ │ └─ lib/decoder.ex:371:56 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 419 │ {:ok, {:alpha, _, <>, _}} when c in 'eE' -> │ ~ │ └─ lib/decoder.ex:419:56 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 474 │ {:ok, {:alpha, _, <>, _}} when c in 'eE' -> │ ~ │ └─ lib/decoder.ex:474:52 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 514 │ {:ok, {sign, _, _, _}} when sign in '-+' and last == ?e -> │ ~ │ └─ lib/decoder.ex:514:43 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 518 │ {:ok, {:alpha, _, <>, _}} when c in 'eE' and signal == ?. -> │ ~ │ └─ lib/decoder.ex:518:52 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 522 │ {:ok, {?_, skip, _, lines}} when last not in '_e.' -> │ ~ │ └─ lib/decoder.ex:522:52 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 538 │ {:ok, {type, skip, data, lines}} when last in 'e.' -> │ ~ │ └─ lib/decoder.ex:538:53 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 542 │ {:ok, {_type, skip, _data, lines} = token} when last not in '_e.' -> │ ~ │ └─ lib/decoder.ex:542:67 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 682 │ {:ok, {sign, _, _, _}} when sign in '-+' -> │ ~ │ └─ lib/decoder.ex:682:45 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 796 │ {:ok, {sign, _, _, _}} when sign in '-+' -> │ ~ │ └─ lib/decoder.ex:796:43 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 916 │ {:ok, {type, skip, _, lines}} when type in '-_' -> │ ~ │ └─ lib/decoder.ex:916:52 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 954 │ {:ok, {type, _, _, _}} when type in '-_' -> │ ~ │ └─ lib/decoder.ex:954:51 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 969 │ {:ok, {type, _, _, _}} when type in '-_' -> │ ~ │ └─ lib/decoder.ex:969:43 warning: using single-quoted strings to represent charlists is deprecated. Use ~c"" if you indeed want a charlist or use "" instead. You may run "mix format --migrate" to change all single-quoted strings to use the ~c sigil and fix this warning. │ 983 │ {:ok, {type, _, _, _}} when type in '-_' -> │ ~ │ └─ lib/decoder.ex:983:47 Generated toml app ==> circular_buffer Compiling 1 file (.ex) Generated circular_buffer app ==> nimble_options Compiling 3 files (.ex) Generated nimble_options app ==> plug_crypto Compiling 5 files (.ex) Generated plug_crypto app ==> hpax Compiling 4 files (.ex) Generated hpax app ==> mint Compiling 1 file (.erl) Compiling 20 files (.ex) Generated mint app ==> ssl_verify_fun Compiling 7 files (.erl) Generated ssl_verify_fun app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling ctx make: Entering directory '/work/proj/deps/erlexec/c_src' make: Nothing to be done for 'all'. make: Leaving directory '/work/proj/deps/erlexec/c_src' ===> Analyzing applications... ===> Compiling erlexec ==> external_runtime_transport Compiling 23 files (.ex) Generated external_runtime_transport 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 ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling gproc ===> Analyzing applications... ===> Compiling telemetry ==> websockex Compiling 6 files (.ex) Generated websockex app ==> thousand_island Compiling 18 files (.ex) Generated thousand_island app ==> zoi Compiling 79 files (.ex) Generated zoi app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling acceptor_pool ==> cli_subprocess_core Compiling 42 files (.ex) Generated cli_subprocess_core app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling hpack ===> Analyzing applications... ===> Compiling tls_certificate_check ==> plug Compiling 1 file (.erl) Compiling 42 files (.ex) Generated plug app ==> uboot_env Compiling 5 files (.ex) Generated uboot_env app ==> nimble_pool Compiling 2 files (.ex) Generated nimble_pool app ==> finch Compiling 14 files (.ex) Generated finch app ==> req Compiling 19 files (.ex) Generated req app ==> tesla Compiling 41 files (.ex) Generated tesla app ==> oauth2 Compiling 13 files (.ex) Generated oauth2 app ==> property_table Compiling 8 files (.ex) Generated property_table app ==> nerves_uevent CC uevent.o LD uevent Compiling 5 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 ===> Analyzing applications... ===> Compiling chatterbox ===> Analyzing applications... ===> Compiling grpcbox ==> websock Compiling 1 file (.ex) Generated websock app ==> bandit Compiling 54 files (.ex) Generated bandit app ==> opentelemetry_api Compiling 19 files (.erl) Compiling 5 files (.ex) Generated opentelemetry_api app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling opentelemetry ===> Analyzing applications... ===> Compiling opentelemetry_exporter ==> codex_sdk Compiling 182 files (.ex) warning: a struct for Codex.OAuth.Session is expected on struct update: %Codex.OAuth.Session{session | token_store: token_store} but got type: dynamic() where "session" was given the type: # type: dynamic() # from: lib/codex/oauth/flows/device_code.ex:217:21 session = Codex.OAuth.TokenStore.Memory.fetch(token_store) when defining the variable "session", you must also pattern match on "%Codex.OAuth.Session{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 218 │ {:ok, %Codex.OAuth.Session{session | token_store: token_store}} │ ~ │ └─ lib/codex/oauth/flows/device_code.ex:218:19: Codex.OAuth.Flows.DeviceCode.persist_session_from_tokens/2 warning: a struct for Codex.OAuth.Session is expected on struct update: %Codex.OAuth.Session{refreshed_session | token_store: token_store} but got type: dynamic() where "refreshed_session" was given the type: # type: dynamic() # from: lib/codex/oauth/app_server_auth.ex:154:29 refreshed_session = Codex.OAuth.TokenStore.Memory.fetch(token_store) when defining the variable "refreshed_session", you must also pattern match on "%Codex.OAuth.Session{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 155 │ {:ok, %Session{refreshed_session | token_store: token_store}} │ ~ │ └─ lib/codex/oauth/app_server_auth.ex:155:17: Codex.OAuth.AppServerAuth.materialize_existing_session/1 warning: a struct for Codex.OAuth.Session is expected on struct update: %Codex.OAuth.Session{session | token_store: token_store} but got type: dynamic() where "session" was given the type: # type: dynamic() # from: lib/codex/oauth/flows/browser_code.ex:153:21 session = Codex.OAuth.TokenStore.Memory.fetch(token_store) when defining the variable "session", you must also pattern match on "%Codex.OAuth.Session{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 154 │ {:ok, %Session{session | token_store: token_store}} │ ~ │ └─ lib/codex/oauth/flows/browser_code.ex:154:19: Codex.OAuth.Flows.BrowserCode.persist_or_store_session/2 Generated codex_sdk 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) * 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/erlexec-2.2.4/priv/aarch64-unknown-linux-gnu/exec-port' 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.