steveryan
Issue installing Argon2_elixir (can't compile comeonin)
Hey, I’m pretty new to elixir and am following along with Programming Phoenix >1.4. I’m trying to get argon_2 working (seems like the successor to comeonin, which is what the book recommends).
Seeing the following issue, and am not sure where to go from here. Any thoughts?
My info:
Mac OS 10.14.6
Erlang/OTP 22 [erts-10.6.4] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] [dtrace]
Elixir 1.10.2 (compiled with Erlang/OTP 22)
Full Error below
** (Mix.Error) Could not compile Comeonin.
Please make sure that you are using Erlang / OTP version 18.0 or later
and that you have a C compiler installed.
Please follow the directions below for the operating system you are
using:
Mac OS X: You need to have gcc and make installed. Try running the
commandsgcc --versionand / ormake --version. If these programs
are not installed, you will be prompted to install them.
Linux: You need to have gcc and make installed. If you are using
Ubuntu or any other Debian-based system, install the packages
build-essential. Also installerlang-devpackage if not
included in your Erlang/OTP version.
See Requirements · riverrun/comeonin Wiki · GitHub for more
information.
/Users/steve/Sites/rumbl/deps/comeonin/mix.exs:44: Mix.Tasks.Compile.Comeonin.build_error/1
/Users/steve/Sites/rumbl/deps/comeonin/mix.exs:19: Mix.Tasks.Compile.Comeonin.run/1
(mix 1.10.2) lib/mix/task.ex:330: Mix.Task.run_task/3
(mix 1.10.2) lib/mix/tasks/compile.all.ex:76: Mix.Tasks.Compile.All.run_compiler/2
(mix 1.10.2) lib/mix/tasks/compile.all.ex:56: Mix.Tasks.Compile.All.do_compile/4
(mix 1.10.2) lib/mix/tasks/compile.all.ex:27: anonymous fn/2 in Mix.Tasks.Compile.All.run/1
(mix 1.10.2) lib/mix/tasks/compile.all.ex:43: Mix.Tasks.Compile.All.with_logger_app/2
(mix 1.10.2) lib/mix/task.ex:330: Mix.Task.run_task/3ElixirLS
steves-mbp:rumbl steve$ gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
steves-mbp:rumbl steve$ make --version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-apple-darwin11.3.0
Marked As Solved
mindok
Before doing anything manually in deps I’d focus on figuring out the underlying issue. I suspect it is one of two - either broken git (in turn breaking mix), or broken make. To troubleshoot, I’d suggest the following
- git/mix isn’t bringing down deps/argon2_elixir properly - check whether the there is an argon2 subdirectory and that it has plenty of c files - if so, the argon2_elixir is more than likely downloading ok. If not, this is likely a git problem rather than a mix problem. You can isolate this by trying to clone into a fresh directory using the --recursive option. I think this is the most likely problem. Once you have it resolved (e.g. by creating appropriate ssh key as per the link to the discussion I posted), you should find mix behaves itself for deps with git submodules. You may need to blow away deps/argon2_elixir and re-fetch.
- make is broken on your machine. Again, the best way to isolate issues here is to clone the argon2_elixir repo with the --recursive option into a new directory. Change into that directory and run make. If if complains or says it has nothing to do you have a problem there. We will need more info to help troubleshoot that.
Also Liked
steveryan
Really appreciate all the help here. Looking at your post:
- deps/argon2_elixir does contain a folder argon2. Within that folder there is an include folder that has a single file, argon2.h, and a src folder which has 14 files most of which are .c files, with some .h files.
Trying number 2 now, and will update with the results
EDIT: Thinking your git comment was right, as this is in the output when I tried recursively cloning argon2_elixir:
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
fatal: clone of ‘git@github.com:riverrun/phc-winner-argon2.git’ into submodule path ‘/Users/steve/Sites/argon2_elixir/argon2’ failed
Failed to clone ‘argon2’. Retry scheduled
Ok so after adding an SSH key I was able to clone the repo properly. From within that directory I ran make and got
steves-mbp:argon2_elixir steve$ make
mkdir -p priv
cc -pthread -O3 -Wall -g -Iargon2/include -Iargon2/src -Ic_src -I"/usr/local/Cellar/erlang/22.2.8/lib/erlang/erts-10.6.4/include/" -dynamiclib -undefined dynamic_lookup argon2/src/argon2.c argon2/src/core.c argon2/src/blake2/blake2b.c argon2/src/thread.c argon2/src/encoding.c argon2/src/ref.c c_src/argon2_nif.c -o priv/argon2_nif.so
steves-mbp:argon2_elixir Steve$
Since this didn’t complain about any errors, I took it that mix was working. So I went back to my project, and completely removed argon2_elixir and comeonin. I then re-added argon2_elixir and ran mix deps.get and mix deps.compile and got the following output:
steves-mbp:rumbl steve$ mix deps.compile
===> Compiling ranch
===> Compiling telemetry
==> comeonin
Compiling 4 files (.ex)
Generated comeonin app
==> argon2_elixir
mkdir -p priv
cc -pthread -O3 -Wall -g -Iargon2/include -Iargon2/src -Ic_src -I"/usr/local/Cellar/erlang/22.2.8/lib/erlang/erts-10.6.4/include/" -dynamiclib -undefined dynamic_lookup argon2/src/argon2.c argon2/src/core.c argon2/src/blake2/blake2b.c argon2/src/thread.c argon2/src/encoding.c argon2/src/ref.c c_src/argon2_nif.c -o priv/argon2_nif.so
Compiling 3 files (.ex)
Generated argon2_elixir app
===> Compiling cowlib
===> Compiling cowboy
Everything seemed to work fine, but I’m still seeing the error, could not compile comeonin
kokolegorille
No, not really, it is the recommended password hashing function for comeonin, and depends on it.
It would be nice to know how You did that… with asdf? packages? other?
Do You have XCode installed?
That sounds like a Mac related issue ![]()
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
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








