Skip to content

Error outdated dependency: elixir_make #2

Description

@gytars

Hi

On a new project I did the following:

  • Add dependency to mix.exs - deps: {:hidraw, "~> 0.2.2"}
    and ran:
❯ mix deps.get
Resolving Hex dependencies...
Resolution completed in 0.134s
New:
  hidraw 0.2.2
Unchanged:
  bandit 1.10.3
  cc_precompiler 0.1.11
  db_connection 2.9.0
  decimal 2.3.0
  dns_cluster 0.2.0
  ecto 3.13.5
  ecto_sql 3.13.4
  elixir_make 0.9.0
  esbuild 0.10.0
  expo 1.1.1
  file_system 1.1.1
  finch 0.21.0
  fine 0.1.4
  gettext 1.0.2
  hpax 1.0.3
  idna 6.1.1
  jason 1.4.4
  lazy_html 0.1.10
  mime 2.0.7
  mint 1.7.1
  nimble_options 1.1.1
  nimble_pool 1.1.0
  phoenix 1.8.4
  phoenix_ecto 4.7.0
  phoenix_html 4.3.0
  phoenix_live_dashboard 0.8.7
  phoenix_live_reload 1.6.2
  phoenix_live_view 1.1.24
  phoenix_pubsub 2.2.0
  phoenix_template 1.0.4
  plug 1.19.1
  plug_crypto 2.1.1
  postgrex 0.22.0
  req 0.5.17
  swoosh 1.22.1
  tailwind 0.4.1
  telemetry 1.3.0
  telemetry_metrics 1.1.0
  telemetry_poller 1.3.0
  thousand_island 1.4.3
  unicode_util_compat 0.7.1
  websock 0.5.3
  websock_adapter 0.5.9
* Getting hidraw (Hex package)

❯ mix deps.compile    
==> elixir_make
Compiling 8 files (.ex)
Generated elixir_make app
==> hidraw
Unchecked dependencies for environment prod:
* elixir_make (Hex package)
  the dependency build is outdated, please run "MIX_ENV=prod mix deps.compile"
could not compile dependency :hidraw, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile hidraw --force", update it with "mix deps.update hidraw" or clean it with "mix deps.clean hidraw"
==> phoenix_hidraw_error
** (Mix) Can't continue due to errors on dependencies
I could fix it locally by running 2x `mix deps.compile hidraw`
   ❯ mix deps.compile hidraw
==> elixir_make
Compiling 8 files (.ex)
Generated elixir_make app
==> hidraw
Unchecked dependencies for environment prod:
* elixir_make (Hex package)
  could not find an app file at "/phoenix_hidraw_error/_build/dev/lib/elixir_make/ebin/elixir_make.app". This may happen if the dependency was not yet compiled or the dependency indeed has no app file (then you can pass app: false as option)
could not compile dependency :hidraw, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile hidraw --force", update it with "mix deps.update hidraw" or clean it with "mix deps.clean hidraw"
==> phoenix_hidraw_error
** (Mix) Can't continue due to errors on dependencies

❯ mix deps.compile hidraw
==> hidraw
mkdir -p /phoenix_hidraw_error/_build/dev/lib/hidraw/obj
mkdir -p /phoenix_hidraw_error/_build/dev/lib/hidraw/priv
gcc -c -I/nix/store/j106gi4wjl8kqr1yxgw35arb4jih4iw4-erlang-28.3.1/lib/erlang/usr/include -std=gnu99 -o /phoenix_hidraw_error/_build/dev/lib/hidraw/obj/erlcmd.o src/erlcmd.c
gcc -c -I/nix/store/j106gi4wjl8kqr1yxgw35arb4jih4iw4-erlang-28.3.1/lib/erlang/usr/include -std=gnu99 -o /phoenix_hidraw_error/_build/dev/lib/hidraw/obj/hidraw.o src/hidraw.c
gcc -c -I/nix/store/j106gi4wjl8kqr1yxgw35arb4jih4iw4-erlang-28.3.1/lib/erlang/usr/include -std=gnu99 -o /phoenix_hidraw_error/_build/dev/lib/hidraw/obj/hidraw_enum.o src/hidraw_enum.c
src/hidraw_enum.c: In function âfind_hidraw_devicesâ:
src/hidraw_enum.c:130:30: warning: â%sâ directive output may be truncated writing up to 255 bytes into a region of size 59 [-Wformat-truncation=]
  130 |                          "%s/%s", DEV, namelist[i]->d_name);
      |                              ^~
In file included from /nix/store/1k8f0lkj10gsbb1fh0idr1423l37yj69-glibc-2.40-218-dev/include/stdio.h:970,
                 from src/hidraw_enum.c:29:
In function âsnprintfâ,
    inlined from âfind_hidraw_devicesâ at src/hidraw_enum.c:129:3:
/nix/store/1k8f0lkj10gsbb1fh0idr1423l37yj69-glibc-2.40-218-dev/include/bits/stdio2.h:68:10: note: â__builtin___snprintf_chkâ output between 6 and 261 bytes into a destination of size 64
   68 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   69 |                                    __glibc_objsize (__s), __fmt,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   70 |                                    __va_arg_pack ());
      |                                    ~~~~~~~~~~~~~~~~~
gcc /phoenix_hidraw_error/_build/dev/lib/hidraw/obj/erlcmd.o /phoenix_hidraw_error/_build/dev/lib/hidraw/obj/hidraw.o /phoenix_hidraw_error/_build/dev/lib/hidraw/obj/hidraw_enum.o -L/nix/store/j106gi4wjl8kqr1yxgw35arb4jih4iw4-erlang-28.3.1/lib/erlang/usr/lib -lei  -o /phoenix_hidraw_error/_build/dev/lib/hidraw/priv/hidraw
echo "Not crosscompiling. To test locally, the port binary needs extra permissions."; echo "Set SUDO=sudo to set permissions. The default is to skip this step."; echo "SUDO_ASKPASS=/usr/bin/ssh-askpass"; echo "SUDO=true"; SUDO_ASKPASS=/usr/bin/ssh-askpass true -- sh -c 'chown root:root  /phoenix_hidraw_error/_build/dev/lib/hidraw/priv/hidraw; chmod +s  /phoenix_hidraw_error/_build/dev/lib/hidraw/priv/hidraw'
Not crosscompiling. To test locally, the port binary needs extra permissions.
Set SUDO=sudo to set permissions. The default is to skip this step.
SUDO_ASKPASS=/usr/bin/ssh-askpass
SUDO=true
Compiling 1 file (.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.

  9 │     executable = :code.priv_dir(:hidraw) ++ '/hidraw'
    │                                             ~

    └─ lib/hidraw.ex:9: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.

 34 │     executable = :code.priv_dir(:hidraw) ++ '/hidraw'
    │                                             ~

    └─ lib/hidraw.ex:34:45
❯ uname -a
Linux sl-p16 6.18.13 #1-NixOS SMP PREEMPT_DYNAMIC Thu Feb 19 15:31:37 UTC 2026 x86_64 GNU/Linux
Generated hidraw app

But I'm looking for a more general solution.

❯ elixir --version
Erlang/OTP 28 [erts-16.2] [source] [64-bit] [smp:32:32] [ds:32:32:10] [async-threads:1] [jit:ns]

Elixir 1.19.5 (compiled with Erlang/OTP 28)

❯ uname -a
Linux laptop 6.18.13 #1-NixOS SMP PREEMPT_DYNAMIC Thu Feb 19 15:31:37 UTC 2026 x86_64 GNU/Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions