Elixir 1.15 compiler fails on CentOS/OEL7 (“Digest type not supported in this cryptolib”)


In trying to upgrade from Elixir 1.14 to 1.15, I’m getting an error whenever I try to compile Elixir files under OEL7 (which I realise is not exactly cutting edge, but we use for CI and release building to match our current production environment). It looks like it’s trying to hash the source code using blake2b, but that algorithm isn’t available:

$ mix
Compiling 1 file (.ex)
** (ErlangError) Erlang error: {:notsup, {~c"hash.c", 112}, ~c"Digest type not supported in this cryptolib"}
    (crypto 5.2) crypto.erl:2200: :crypto.hash(:blake2b, "defmodule Foo do\n  @moduledoc \"\"\"\n  Documentation for `Foo`.\n  \"\"\"\n\n  @doc \"\"\"\n  Hello world.\n\n  ## Examples\n\n      iex> Foo.hello()\n      :world\n\n  \"\"\"\n  def hello do\n    :world\n  end\nend\n")
    (mix 1.15.4) lib/mix/compilers/elixir.ex:1104: Mix.Compilers.Elixir.each_file/5
    (mix 1.15.4) lib/mix/compilers/elixir.ex:1009: Mix.Compilers.Elixir.compiler_loop/4
    (mix 1.15.4) lib/mix/compilers/elixir.ex:173: Mix.Compilers.Elixir.compile/7
    (mix 1.15.4) lib/mix/state.ex:15: Mix.State.lock/2
    (mix 1.15.4) lib/mix/task.ex:447: anonymous fn/3 in Mix.Task.run_task/5
    (mix 1.15.4) lib/mix/tasks/compile.all.ex:124: Mix.Tasks.Compile.All.run_compiler/2
    (mix 1.15.4) lib/mix/tasks/compile.all.ex:104: Mix.Tasks.Compile.All.compile/4

Does anyone have any idea of anything I can install/upgrade to fix this? I suspect it’s probably something to do with openssl (which is at version 1:1.0.2k-26.el7_9), but I’m a bit out of my depth at this point.

Wait for the next release: Alternative for blake2b on systems that do not support that hash function? · Issue #12809 · elixir-lang/elixir · GitHub

1 Like

Thank you!