Gio
Elixir_make - the dependency build is outdated
Hello
On a new project I did the following, but it wouldn’t compile without errors.
I also tried using the library locally, but had the same issue. {:hidraw, path: "../hidraw"}
First I added {:hidraw, "~> 0.2.2"} to the dependencies.
❯ 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 ‘temporarily fix’ it locally by running 2x mix deps.compile hidraw. But I’m looking for a solution which will let me use deps_nix without any issues.
❯ 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
❯ 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](/nerves-web-kiosk/hidraw/issues/1)-NixOS SMP PREEMPT_DYNAMIC Thu Feb 19 15:31:37 UTC 2026 x86_64 GNU/Linux
First Post!
Gio
The following does run, But why? and How can this be solved.
I’d expect we can run compile once for all deps. Apparently the order isn’t right?
rm -rf _build deps
mix deps.get
mix deps.compile elixir_make
mix deps.compile
Most Liked
NobbZ
As nix is involved, it might help to give us a full reproducer.
I can not see anything obvious in the posted output, though I do not know anything about hidraw or how it gets used, to spin up an appropriate shell spontaniously.
NobbZ
This is weird.
I can totally reproduce your issue, but I don’t have an explanation nor fix for this behaviour.
I am sorry.
Last Post!
Gio
Thank you.
My guess is, it’s unrelated to deps_nix / nix.
@linux_users
Could someone test the following on their elixir project?
# Add the following to your mix.exs
defp deps do
[
#...
{:hidraw, "~> 0.2.2"}
#...
]
end
# Run the following commands
mix deps.get
mix deps.compile
compile will probably fail on all Linux systems, if elixir_make hasn’t been compiled before.
I don’t have enough Elixir knowledge either. The cause could be at one of these three.
- compiler: mix deps.compile , the order is wrong
- elixir_make library
- hidraw library
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









