Resolving Hex dependencies... Resolution completed in 0.144s Unchanged: bimap 1.3.0 bunch 1.6.1 bunch_native 0.5.0 bundlex 1.5.5 circular_buffer 1.0.0 coerce 1.0.2 elixir_make 0.9.0 elixir_uuid 1.2.1 finch 0.21.0 heap 2.0.2 hpax 1.0.3 interactive_cmd 0.1.4 jason 1.4.4 membrane_aac_fdk_plugin 0.18.13 membrane_aac_format 0.8.0 membrane_aac_plugin 0.19.1 membrane_common_c 0.16.0 membrane_core 1.2.7 membrane_ffmpeg_swresample_plugin 0.20.5 membrane_ffmpeg_swscale_plugin 0.16.3 membrane_funnel_plugin 0.9.2 membrane_h264_ffmpeg_plugin 0.32.6 membrane_h264_format 0.6.1 membrane_h265_ffmpeg_plugin 0.4.3 membrane_h265_format 0.2.0 membrane_h26x_plugin 0.10.7 membrane_mp3_lame_plugin 0.18.5 membrane_mp3_mad_plugin 0.18.5 membrane_mpegaudio_format 0.3.0 membrane_opus_format 0.3.0 membrane_opus_plugin 0.20.6 membrane_precompiled_dependency_provider 0.2.2 membrane_raw_audio_format 0.12.0 membrane_raw_video_format 0.4.3 membrane_timestamp_queue 0.2.2 membrane_transcoder_plugin 0.3.3 membrane_vp8_format 0.5.0 membrane_vp9_format 0.5.0 membrane_vpx_plugin 0.4.2 mime 2.0.7 mint 1.7.1 mockery 2.5.0 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 numbers 5.2.4 property_table 0.3.3 qex 0.5.2 ratio 4.0.1 req 0.5.17 ring_logger 0.11.5 shmex 0.5.1 shoehorn 0.9.3 tablet 0.3.2 telemetry 1.4.1 toolshed 0.4.2 uboot_env 1.0.2 unifex 1.2.1 zarex 1.0.6 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_system_br Generated nerves_system_br app ==> nerves_toolchain_ctng 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 ==> mime Compiling 1 file (.ex) Generated mime app ==> circular_buffer Compiling 1 file (.ex) Generated circular_buffer app ==> nimble_options Compiling 3 files (.ex) Generated nimble_options app ==> membrane_vp8_format Compiling 1 file (.ex) Generated membrane_vp8_format app ==> hpax Compiling 4 files (.ex) Generated hpax app ==> mint Compiling 1 file (.erl) Compiling 20 files (.ex) Generated mint app ==> coerce Compiling 3 files (.ex) Generated coerce app ==> bunch Compiling 19 files (.ex) Generated bunch app ==> zarex Compiling 1 file (.ex) Generated zarex app ==> numbers Compiling 7 files (.ex) Generated numbers app ==> nerves_logging CC kmsg_tailer.o LD kmsg_tailer Compiling 5 files (.ex) Generated nerves_logging app ==> mockery Compiling 9 files (.ex) Generated mockery app ==> ratio Compiling 5 files (.ex) Generated ratio app ==> elixir_uuid Compiling 1 file (.ex) warning: use Bitwise is deprecated. import Bitwise instead │ 2 │ use Bitwise, only_operators: true │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/uuid.ex:2: UUID (module) Generated elixir_uuid app ==> ring_logger Compiling 7 files (.ex) Generated ring_logger app ==> shoehorn Compiling 8 files (.ex) Generated shoehorn app ==> membrane_raw_video_format Compiling 1 file (.ex) Generated membrane_raw_video_format app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling telemetry ==> membrane_h265_format Compiling 1 file (.ex) Generated membrane_h265_format app ==> membrane_h264_format Compiling 1 file (.ex) Generated membrane_h264_format app ==> membrane_mpegaudio_format Compiling 1 file (.ex) Generated membrane_mpegaudio_format app ==> heap Compiling 4 files (.ex) Generated heap app ==> bimap Compiling 2 files (.ex) Generated bimap app ==> membrane_aac_format Compiling 1 file (.ex) Generated membrane_aac_format app ==> membrane_opus_format Compiling 1 file (.ex) Generated membrane_opus_format app ==> membrane_vp9_format Compiling 1 file (.ex) Generated membrane_vp9_format app ==> uboot_env Compiling 5 files (.ex) Generated uboot_env app ==> qex Compiling 4 files (.ex) warning: x..y inside match is deprecated, you must always match on the step: x..y//var or x..y//_ if you want to ignore it lib/qex.ex:45: Qex.new/1 Generated qex app ==> membrane_core Compiling 139 files (.ex) Generated membrane_core app ==> membrane_aac_plugin Compiling 6 files (.ex) warning: a struct for Membrane.Buffer is expected on struct update: %Membrane.Buffer{ buffer | payload: Membrane.AAC.Parser.ADTS.payload_to_adts(buffer.payload, ctx.pads.output.stream_format) } but got type: dynamic(%{..., pts: integer()}) where "buffer" was given the type: # type: dynamic(%{..., pts: integer()}) # from: lib/membrane/aac/parser.ex:185:12 buffer = %{buffer | pts: round(Ratio.to_float(timestamp))} when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}". 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: │ 190 │ %Buffer{ │ ~ │ └─ lib/membrane/aac/parser.ex:190:11: Membrane.AAC.Parser.handle_buffer/4 warning: a struct for Membrane.AAC.Filler.State is expected on struct update: %Membrane.AAC.Filler.State{state | frame_duration: new_duration, channels: stream_format.channels} but got type: dynamic() where "state" was given the type: # type: dynamic() # from: lib/membrane/aac/filler.ex:71:57 state when defining the variable "state", you must also pattern match on "%Membrane.AAC.Filler.State{}". 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: │ 75 │ state = %State{state | frame_duration: new_duration, channels: stream_format.channels} │ ~ │ └─ lib/membrane/aac/filler.ex:75:13: Membrane.AAC.Filler.handle_stream_format/4 warning: a struct for Membrane.Buffer is expected on struct update: %Membrane.Buffer{ buffer | payload: silent_frame_payload, pts: round(timestamp), dts: round(timestamp) } but got type: dynamic() where "buffer" was given the type: # type: dynamic() # from: lib/membrane/aac/filler.ex:81:29 buffer when defining the variable "buffer", you must also pattern match on "%Membrane.Buffer{}". 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: │ 96 │ %Buffer{ │ ~ │ └─ lib/membrane/aac/filler.ex:96:9: Membrane.AAC.Filler.handle_buffer/4 Generated membrane_aac_plugin app ==> membrane_funnel_plugin Compiling 2 files (.ex) Generated membrane_funnel_plugin app ==> membrane_h26x_plugin Compiling 31 files (.ex) Generated membrane_h26x_plugin app ==> membrane_timestamp_queue Compiling 1 file (.ex) Generated membrane_timestamp_queue app ==> membrane_raw_audio_format Compiling 2 files (.ex) Generated membrane_raw_audio_format 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 ==> bundlex Compiling 38 files (.ex) warning: the following clause will never match: :custom because it attempts to match on the result of: Bundlex.Platform.get_target!() which has type: dynamic(:nerves) typing violation found at: │ 82 │ :custom -> :nerves │ ~~~~~~~~~~~~~~~~~~ │ └─ lib/bundlex.ex:82: Bundlex.platform/0 Generated bundlex app ==> membrane_precompiled_dependency_provider Compiling 1 file (.ex) Generated membrane_precompiled_dependency_provider app ==> bunch_native Bundlex: Building natives: lib, bunch Generated bunch_native app ==> shmex Bundlex: Building natives: lib, shmex Compiling 2 files (.ex) Generated shmex app ==> unifex Bundlex: Building natives: unifex Compiling 33 files (.ex) warning: a struct for Bundlex.Native is expected on struct update: %Bundlex.Native{native | sources: [source | native.sources]} but got type: dynamic() where "native" was given the type: # type: dynamic() # from: lib/unifex.ex:23:25 native when defining the variable "native", you must also pattern match on "%Bundlex.Native{}". 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: │ 42 │ %Native{native | sources: [source | native.sources]} │ ~ │ └─ lib/unifex.ex:42:5: Unifex.preprocess_native/1 Generated unifex app ==> membrane_h265_ffmpeg_plugin Bundlex: Building natives: decoder, encoder warning: Bundlex: Couldn't load OS dependency using {:precompiled, nil, ["libavcodec", "libavutil"]} ignored, no URL provided Loading using {:pkg_config, ["libavcodec", "libavutil"]} could not compile dependency :membrane_h265_ffmpeg_plugin, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile membrane_h265_ffmpeg_plugin --force", update it with "mix deps.update membrane_h265_ffmpeg_plugin" or clean it with "mix deps.clean membrane_h265_ffmpeg_plugin" ==> nerves_compatibility_test ** (Mix) Bundlex: Couldn't load OS dependency :ffmpeg of package membrane_h265_ffmpeg_plugin. Make sure to follow installation instructions that may be available in the readme of membrane_h265_ffmpeg_plugin. Tried the following providers: Provider `{:precompiled, nil, ["libavcodec", "libavutil"]}` ignored, no URL provided Provider `{:pkg_config, ["libavcodec", "libavutil"]}` couldn't load ["libavcodec", "libavutil"] libraries with pkg-config due to: ** (BundlexError) pkg-config error: Code: 1 Package libavcodec was not found in the pkg-config search path. Perhaps you should add the directory containing `libavcodec.pc' to the PKG_CONFIG_PATH environment variable Package 'libavcodec', required by 'virtual:world', not found