Build log
nerves_system_mangopi_mq_pro
allowed_hosts 0.1.2 · fail · run allowed_hosts-0.1.2-1789676894895
660 of 660 lines
1Resolving Hex dependencies...2Resolution completed in 0.509s3Unchanged:4 allowed_hosts 0.1.25 circular_buffer 1.1.06 cowboy 2.19.07 cowlib 2.20.0 VULNERABLE!8 EEF-CVE-2026-43966 (MEDIUM)9 aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c10 HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/211 https://osv.dev/vulnerability/EEF-CVE-2026-439661213 EEF-CVE-2026-43969 (LOW)14 aka: CVE-2026-43969, GHSA-g2wm-735q-3f5615 Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/116 https://osv.dev/vulnerability/EEF-CVE-2026-4396917 elixir_make 0.10.018 interactive_cmd 0.1.419 jason 1.4.520 mime 1.6.021 nerves 1.15.022 nerves_discovery 0.1.523 nerves_logging 0.2.424 nerves_runtime 0.13.1325 nerves_system_bbb 2.30.226 nerves_system_br 1.34.427 nerves_system_mangopi_mq_pro 0.17.228 nerves_system_qemu_aarch64 0.4.229 nerves_system_rpi 2.1.230 nerves_system_rpi0 2.1.231 nerves_system_rpi0_2 2.1.232 nerves_system_rpi2 2.1.233 nerves_system_rpi3 2.1.234 nerves_system_rpi4 2.1.235 nerves_system_rpi5 2.1.236 nerves_system_x86_64 1.34.237 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.138 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.139 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.140 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.141 nerves_toolchain_x86_64_nerves_linux_musl 15.3.142 nerves_uevent 0.1.743 plug 1.8.3 VULNERABLE!44 EEF-CVE-2026-8468 (HIGH)45 aka: CVE-2026-8468, GHSA-468c-vq7p-gh6446 Unbounded buffer accumulation in multipart header parsing causes denial of service in plug47 https://osv.dev/vulnerability/EEF-CVE-2026-84684849 EEF-CVE-2026-56814 (MEDIUM)50 aka: CVE-2026-56814, GHSA-95qv-c9g9-rm6351 Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)52 https://osv.dev/vulnerability/EEF-CVE-2026-568145354 EEF-CVE-2026-56813 (LOW)55 aka: CVE-2026-56813, GHSA-wpmj-jh88-rpgm56 Cookie attribute injection in Plug.Conn.Cookies.encode/257 https://osv.dev/vulnerability/EEF-CVE-2026-5681358 plug_crypto 1.2.559 property_table 0.3.460 ranch 2.3.061 ring_logger 0.11.762 shoehorn 0.9.363 tablet 0.3.364 toolshed 0.5.065 uboot_env 1.0.266* Getting allowed_hosts (Hex package)67* Getting nerves (Hex package)68* Getting shoehorn (Hex package)69* Getting ring_logger (Hex package)70* Getting toolshed (Hex package)71* Getting nerves_runtime (Hex package)72* Getting nerves_system_bbb (Hex package)73* Getting nerves_system_mangopi_mq_pro (Hex package)74* Getting nerves_system_qemu_aarch64 (Hex package)75* Getting nerves_system_rpi (Hex package)76* Getting nerves_system_rpi0 (Hex package)77* Getting nerves_system_rpi0_2 (Hex package)78* Getting nerves_system_rpi2 (Hex package)79* Getting nerves_system_rpi3 (Hex package)80* Getting nerves_system_rpi4 (Hex package)81* Getting nerves_system_rpi5 (Hex package)82* Getting nerves_system_x86_64 (Hex package)83* Getting nerves_system_br (Hex package)84* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)85* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)86* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)87* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)88* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)89* Getting nerves_logging (Hex package)90* Getting nerves_uevent (Hex package)91* Getting uboot_env (Hex package)92* Getting elixir_make (Hex package)93* Getting property_table (Hex package)94* Getting circular_buffer (Hex package)95* Getting interactive_cmd (Hex package)96* Getting jason (Hex package)97* Getting nerves_discovery (Hex package)98* Getting tablet (Hex package)99* Getting cowboy (Hex package)100* Getting plug (Hex package)101* Getting mime (Hex package)102* Getting plug_crypto (Hex package)103* Getting cowlib (Hex package)104* Getting ranch (Hex package)105Found packages with security advisories, see above for details106You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more107==> jason108Compiling 10 files (.ex)109Generated jason app110==> tablet111Compiling 2 files (.ex)112Generated tablet app113==> elixir_make114Compiling 8 files (.ex)115Generated elixir_make app116==> nerves_discovery117Compiling 5 files (.ex)118Generated nerves_discovery app119==> interactive_cmd120Compiling 1 file (.ex)121Generated interactive_cmd app122==> nerves123HOST_CC port.o124HOST_LD port125Compiling 55 files (.ex)126Generated nerves app127==> nerves_compatibility_test128129Nerves environment130 MIX_TARGET: mangopi_mq_pro131 MIX_ENV: prod132133Checking for prebuilt Nerves artifacts...134 Found nerves_system_mangopi_mq_pro in cache135 /home/nerves/.nerves/artifacts/nerves_system_mangopi_mq_pro-portable-0.17.2136 Found nerves_toolchain_riscv64_nerves_linux_gnu in cache137 /home/nerves/.nerves/artifacts/nerves_toolchain_riscv64_nerves_linux_gnu-linux_x86_64-15.3.1138==> jason139Compiling 10 files (.ex)140Generated jason app141==> tablet142Compiling 2 files (.ex)143Generated tablet app144==> elixir_make145Compiling 8 files (.ex)146Generated elixir_make app147==> nerves_discovery148Compiling 5 files (.ex)149Generated nerves_discovery app150==> interactive_cmd151Compiling 1 file (.ex)152Generated interactive_cmd app153==> nerves154HOST_CC port.o155HOST_LD port156Compiling 55 files (.ex)157Generated nerves app158==> nerves_system_br159Generated nerves_system_br app160==> nerves_toolchain_riscv64_nerves_linux_gnu161Compiling 1 file (.ex)162Generated nerves_toolchain_riscv64_nerves_linux_gnu app163==> nerves_system_mangopi_mq_pro164Generated nerves_system_mangopi_mq_pro app165==> nerves_compatibility_test166167Nerves environment168 MIX_TARGET: mangopi_mq_pro169 MIX_ENV: prod170171==> mime172Compiling 2 files (.ex)173Generated mime app174==> circular_buffer175Compiling 1 file (.ex)176Generated circular_buffer app177==> plug_crypto178Compiling 5 files (.ex)179Generated plug_crypto app180==> nerves_compatibility_test181===> Analyzing applications...182===> Compiling ranch183==> nerves_logging184 CC kmsg_tailer.o185 LD kmsg_tailer186Compiling 5 files (.ex)187Generated nerves_logging app188==> nerves_compatibility_test189===> Analyzing applications...190===> Compiling cowlib191==> ring_logger192Compiling 7 files (.ex)193Generated ring_logger app194==> shoehorn195Compiling 8 files (.ex)196Generated shoehorn app197==> nerves_compatibility_test198===> Analyzing applications...199===> Compiling cowboy200==> plug201Compiling 1 file (.erl)202warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"203 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2204 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1205 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5206 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2207 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4208 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2209210Compiling 39 files (.ex)211 warning: using single-quoted strings to represent charlists is deprecated.212 Use ~c"" if you indeed want a charlist or use "" instead.213 You may run "mix format --migrate" to change all single-quoted214 strings to use the ~c sigil and fix this warning.215 │216 352 │ generated? = :erlang.system_info(:otp_release) >= '19'217 │ ~218 │219 └─ lib/plug/builder.ex:352:55220221 warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead222 │223 6 │ custom_statuses = Application.get_env(:plug, :statuses, %{})224 │ ~225 │226 └─ lib/plug/conn/status.ex:6:33: Plug.Conn.Status (module)227228 warning: unused require Bitwise229 │230 101 │ require Bitwise231 │ ~232 │233 └─ lib/plug/csrf_protection.ex:101:3234235 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead236 │237 4 │ if Application.get_env(:plug, :mimes) do238 │ ~239 │240 └─ lib/plug/mime.ex:4:18: Plug.MIME (module)241242 warning: unused require Logger243 │244 34 │ require Logger245 │ ~246 │247 └─ lib/plug/request_id.ex:34:3248249 warning: using single-quoted strings to represent charlists is deprecated.250 Use ~c"" if you indeed want a charlist or use "" instead.251 You may run "mix format --migrate" to change all single-quoted252 strings to use the ~c sigil and fix this warning.253 │254 65 │ 'ECDHE-RSA-AES256-GCM-SHA384',255 │ ~256 │257 └─ lib/plug/ssl.ex:65:5258259 warning: using single-quoted strings to represent charlists is deprecated.260 Use ~c"" if you indeed want a charlist or use "" instead.261 You may run "mix format --migrate" to change all single-quoted262 strings to use the ~c sigil and fix this warning.263 │264 66 │ 'ECDHE-ECDSA-AES256-GCM-SHA384',265 │ ~266 │267 └─ lib/plug/ssl.ex:66:5268269 warning: using single-quoted strings to represent charlists is deprecated.270 Use ~c"" if you indeed want a charlist or use "" instead.271 You may run "mix format --migrate" to change all single-quoted272 strings to use the ~c sigil and fix this warning.273 │274 67 │ 'ECDHE-RSA-AES128-GCM-SHA256',275 │ ~276 │277 └─ lib/plug/ssl.ex:67:5278279 warning: using single-quoted strings to represent charlists is deprecated.280 Use ~c"" if you indeed want a charlist or use "" instead.281 You may run "mix format --migrate" to change all single-quoted282 strings to use the ~c sigil and fix this warning.283 │284 68 │ 'ECDHE-ECDSA-AES128-GCM-SHA256',285 │ ~286 │287 └─ lib/plug/ssl.ex:68:5288289 warning: using single-quoted strings to represent charlists is deprecated.290 Use ~c"" if you indeed want a charlist or use "" instead.291 You may run "mix format --migrate" to change all single-quoted292 strings to use the ~c sigil and fix this warning.293 │294 69 │ 'DHE-RSA-AES256-GCM-SHA384',295 │ ~296 │297 └─ lib/plug/ssl.ex:69:5298299 warning: using single-quoted strings to represent charlists is deprecated.300 Use ~c"" if you indeed want a charlist or use "" instead.301 You may run "mix format --migrate" to change all single-quoted302 strings to use the ~c sigil and fix this warning.303 │304 70 │ 'DHE-RSA-AES128-GCM-SHA256'305 │ ~306 │307 └─ lib/plug/ssl.ex:70:5308309 warning: using single-quoted strings to represent charlists is deprecated.310 Use ~c"" if you indeed want a charlist or use "" instead.311 You may run "mix format --migrate" to change all single-quoted312 strings to use the ~c sigil and fix this warning.313 │314 74 │ 'ECDHE-RSA-AES256-GCM-SHA384',315 │ ~316 │317 └─ lib/plug/ssl.ex:74:5318319 warning: using single-quoted strings to represent charlists is deprecated.320 Use ~c"" if you indeed want a charlist or use "" instead.321 You may run "mix format --migrate" to change all single-quoted322 strings to use the ~c sigil and fix this warning.323 │324 75 │ 'ECDHE-ECDSA-AES256-GCM-SHA384',325 │ ~326 │327 └─ lib/plug/ssl.ex:75:5328329 warning: using single-quoted strings to represent charlists is deprecated.330 Use ~c"" if you indeed want a charlist or use "" instead.331 You may run "mix format --migrate" to change all single-quoted332 strings to use the ~c sigil and fix this warning.333 │334 76 │ 'ECDHE-RSA-AES128-GCM-SHA256',335 │ ~336 │337 └─ lib/plug/ssl.ex:76:5338339 warning: using single-quoted strings to represent charlists is deprecated.340 Use ~c"" if you indeed want a charlist or use "" instead.341 You may run "mix format --migrate" to change all single-quoted342 strings to use the ~c sigil and fix this warning.343 │344 77 │ 'ECDHE-ECDSA-AES128-GCM-SHA256',345 │ ~346 │347 └─ lib/plug/ssl.ex:77:5348349 warning: using single-quoted strings to represent charlists is deprecated.350 Use ~c"" if you indeed want a charlist or use "" instead.351 You may run "mix format --migrate" to change all single-quoted352 strings to use the ~c sigil and fix this warning.353 │354 78 │ 'DHE-RSA-AES256-GCM-SHA384',355 │ ~356 │357 └─ lib/plug/ssl.ex:78:5358359 warning: using single-quoted strings to represent charlists is deprecated.360 Use ~c"" if you indeed want a charlist or use "" instead.361 You may run "mix format --migrate" to change all single-quoted362 strings to use the ~c sigil and fix this warning.363 │364 79 │ 'DHE-RSA-AES128-GCM-SHA256',365 │ ~366 │367 └─ lib/plug/ssl.ex:79:5368369 warning: using single-quoted strings to represent charlists is deprecated.370 Use ~c"" if you indeed want a charlist or use "" instead.371 You may run "mix format --migrate" to change all single-quoted372 strings to use the ~c sigil and fix this warning.373 │374 80 │ 'ECDHE-RSA-AES256-SHA384',375 │ ~376 │377 └─ lib/plug/ssl.ex:80:5378379 warning: using single-quoted strings to represent charlists is deprecated.380 Use ~c"" if you indeed want a charlist or use "" instead.381 You may run "mix format --migrate" to change all single-quoted382 strings to use the ~c sigil and fix this warning.383 │384 81 │ 'ECDHE-ECDSA-AES256-SHA384',385 │ ~386 │387 └─ lib/plug/ssl.ex:81:5388389 warning: using single-quoted strings to represent charlists is deprecated.390 Use ~c"" if you indeed want a charlist or use "" instead.391 You may run "mix format --migrate" to change all single-quoted392 strings to use the ~c sigil and fix this warning.393 │394 82 │ 'ECDHE-RSA-AES128-SHA256',395 │ ~396 │397 └─ lib/plug/ssl.ex:82:5398399 warning: using single-quoted strings to represent charlists is deprecated.400 Use ~c"" if you indeed want a charlist or use "" instead.401 You may run "mix format --migrate" to change all single-quoted402 strings to use the ~c sigil and fix this warning.403 │404 83 │ 'ECDHE-ECDSA-AES128-SHA256',405 │ ~406 │407 └─ lib/plug/ssl.ex:83:5408409 warning: using single-quoted strings to represent charlists is deprecated.410 Use ~c"" if you indeed want a charlist or use "" instead.411 You may run "mix format --migrate" to change all single-quoted412 strings to use the ~c sigil and fix this warning.413 │414 84 │ 'DHE-RSA-AES256-SHA256',415 │ ~416 │417 └─ lib/plug/ssl.ex:84:5418419 warning: using single-quoted strings to represent charlists is deprecated.420 Use ~c"" if you indeed want a charlist or use "" instead.421 You may run "mix format --migrate" to change all single-quoted422 strings to use the ~c sigil and fix this warning.423 │424 85 │ 'DHE-RSA-AES128-SHA256',425 │ ~426 │427 └─ lib/plug/ssl.ex:85:5428429 warning: using single-quoted strings to represent charlists is deprecated.430 Use ~c"" if you indeed want a charlist or use "" instead.431 You may run "mix format --migrate" to change all single-quoted432 strings to use the ~c sigil and fix this warning.433 │434 86 │ 'ECDHE-RSA-AES256-SHA',435 │ ~436 │437 └─ lib/plug/ssl.ex:86:5438439 warning: using single-quoted strings to represent charlists is deprecated.440 Use ~c"" if you indeed want a charlist or use "" instead.441 You may run "mix format --migrate" to change all single-quoted442 strings to use the ~c sigil and fix this warning.443 │444 87 │ 'ECDHE-ECDSA-AES256-SHA',445 │ ~446 │447 └─ lib/plug/ssl.ex:87:5448449 warning: using single-quoted strings to represent charlists is deprecated.450 Use ~c"" if you indeed want a charlist or use "" instead.451 You may run "mix format --migrate" to change all single-quoted452 strings to use the ~c sigil and fix this warning.453 │454 88 │ 'ECDHE-RSA-AES128-SHA',455 │ ~456 │457 └─ lib/plug/ssl.ex:88:5458459 warning: using single-quoted strings to represent charlists is deprecated.460 Use ~c"" if you indeed want a charlist or use "" instead.461 You may run "mix format --migrate" to change all single-quoted462 strings to use the ~c sigil and fix this warning.463 │464 89 │ 'ECDHE-ECDSA-AES128-SHA'465 │ ~466 │467 └─ lib/plug/ssl.ex:89:5468469 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead470 │471 45 │ reraise e, System.stacktrace()472 │ ~473 │474 └─ lib/plug/parsers/multipart.ex:45:27: Plug.Parsers.MULTIPART.parse/5475 └─ lib/plug/parsers/multipart.ex:49:73: Plug.Parsers.MULTIPART.parse/5476477 warning: the following clause will never match:478479 {:error, reason} ->480481 because it attempts to match on the result of:482483 IO.binwrite(device, contents)484485 which has type:486487 dynamic(not {:error, term()})488489 type warning found at:490 │491 171 │ {:error, reason} ->492 │ ~~~~~~~~~~~~~~~~~~~493 │494 └─ lib/plug/parsers/multipart.ex:171: Plug.Parsers.MULTIPART.binwrite!/2495496 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead497 │498 12 │ worker(Plug.Upload, [])499 │ ~500 │501 └─ lib/plug/supervisor.ex:12:7: Plug.Supervisor.init/1502503 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead504 │505 16 │ supervise(children, strategy: :one_for_one)506 │ ~507 │508 └─ lib/plug/supervisor.ex:16:5: Plug.Supervisor.init/1509510 warning: Plug.Crypto.safe_binary_to_term/1 is deprecated. Use non_executable_binary_to_term/2511 │512 134 │ Plug.Crypto.safe_binary_to_term(binary)513 │ ~514 │515 └─ lib/plug/session/cookie.ex:134:20: Plug.Session.COOKIE.decode/3516517 warning: Macro.to_string/2 is deprecated. Use Macro.to_string/1 instead518 │519 360 │ "#{kind} " <> Macro.to_string(code, &clause_match/2)520 │ ~521 │522 └─ lib/plug/debugger.ex:360:31: Plug.Debugger.get_clauses/3523524 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)525 │526 45 │ unless Code.ensure_compiled?(module) and function_exported?(module, fun, arity) do527 │ ~528 │529 └─ lib/plug/parsers/json.ex:45:17: Plug.Parsers.JSON.validate_decoder!/1530 └─ lib/plug/parsers/json.ex:53:17: Plug.Parsers.JSON.validate_decoder!/1531532 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)533 │534 244 │ if Code.ensure_compiled?(module) and function_exported?(module, :init, 1) do535 │ ~536 │537 └─ lib/plug/parsers.ex:244:15: Plug.Parsers.convert_parsers/2538539 warning: MIME.valid?/1 is deprecated. Use MIME.extensions(type) != [] instead540 │541 32 │ MIME.valid?(type)542 │ ~543 │544 └─ lib/plug/mime.ex:32:10: Plug.MIME.valid?/1545546 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead547 │548 23 │ reraise(conn, kind, reason, System.stacktrace())549 │ ~550 │551 └─ lib/plug/conn/wrapper_error.ex:23:40: Plug.Conn.WrapperError.reraise/3552553 warning: a struct for Plug.Conn is expected on struct update:554555 %Plug.Conn{556 conn557 | adapter: {Plug.Adapters.Test.Conn, state},558 host: uri.host || conn.host || "www.example.com",559 method: method,560 owner: owner,561 path_info: split_path(uri.path),562 port: uri.port || 80,563 remote_ip: conn.remote_ip || {127, 0, 0, 1},564 req_headers: req_headers,565 request_path: uri.path,566 query_string: query,567 body_params: body_params || %Plug.Conn.Unfetched{aspect: :body_params},568 params: params || %Plug.Conn.Unfetched{aspect: :params},569 scheme: String.to_atom(String.downcase(uri.scheme || "http"))570 }571572 but got type:573574 dynamic(%{..., adapter: {atom(), term()}, req_headers: term()})575576 where "conn" was given the types:577578 # type: dynamic(%{..., req_headers: term()})579 # from: lib/plug/adapters/test/conn.ex:16:7580 body_or_params(body_or_params, query, conn.req_headers)581582 # type: dynamic(%{..., adapter: {atom(), term()}, req_headers: term()})583 # from: lib/plug/adapters/test/conn.ex:25:22584 get_from_adapter(conn, :get_http_protocol, :"HTTP/1.1")585586 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"587588 type warning found at:589 │590 34 │ %Plug.Conn{591 │ ~592 │593 └─ lib/plug/adapters/test/conn.ex:34:5: Plug.Adapters.Test.Conn.conn/4594595Generated plug app596==> allowed_hosts597Compiling 1 file (.ex)598warning: cannot infer signatures from :cowboy because it is not loaded599600warning: cannot infer signatures from :cowlib because it is not loaded601602warning: cannot infer signatures from :ranch because it is not loaded603604Generated allowed_hosts app605==> uboot_env606Compiling 5 files (.ex)607Generated uboot_env app608==> property_table609Compiling 8 files (.ex)610Generated property_table app611==> nerves_uevent612 CC uevent.o613 LD uevent614Compiling 5 files (.ex)615Generated nerves_uevent app616==> nerves_runtime617Compiling 14 files (.ex)618Generated nerves_runtime app619==> toolshed620Compiling 5 files (.ex)621Generated toolshed app622==> nerves_compatibility_test623Compiling 2 files (.ex)624Generated nerves_compatibility_test app625|nerves| Building OTP Release...626627* [Nerves] validating vm.args628* skipping runtime configuration (config/runtime.exs not found)629* creating _build/mangopi_mq_pro/rel/nerves_compatibility_test/releases/0.1.0/vm.args630Updating base firmware image with Erlang release...631Copying rootfs_overlay: /work/proj/_build/mangopi_mq_pro/nerves/rootfs_overlay632Copying rootfs_overlay: /work/proj/rootfs_overlay633Building /work/proj/_build/mangopi_mq_pro/nerves/images/nerves_compatibility_test.fw...634Firmware UUID: fan-release (50c73617-5ad1-5854-63de-b99b3ebf9ed6)635Firmware built successfully! 🎉636637Now you may install it to a MicroSD card using `mix burn` or upload it638to a device with `mix upload` or `mix firmware.gen.script`+`./upload.sh`.639640==> nerves641==> nerves_compatibility_test642643Nerves environment644 MIX_TARGET: mangopi_mq_pro645 MIX_ENV: prod646647==> allowed_hosts648Compiling 1 file (.ex)649 error: module Plug.Conn is not loaded and could not be found650 │651 12 │ import Plug.Conn, only: [send_resp: 3, halt: 1]652 │ ^653 │654 └─ lib/allowed_hosts.ex:12:3: AllowedHosts (module)655656657== Compilation error in file lib/allowed_hosts.ex ==658** (CompileError) lib/allowed_hosts.ex: cannot compile module AllowedHosts (errors have been logged)659660could not compile dependency :allowed_hosts, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile allowed_hosts --force", update it with "mix deps.update allowed_hosts" or clean it with "mix deps.clean allowed_hosts"