florisbreggeman / das

An Authentication Service specifically tailored towards domestic self-hosting
BSD 3-Clause "New" or "Revised" License
0 stars 1 forks source link

Deprecated libssl1.1 dependency #4

Open Rafaeltheraven opened 1 year ago

Rafaeltheraven commented 1 year ago

Somewhere in the build process you have a dependency on libssl1.1. libssl1.1 has been deprecated for a while and also has a number of CVEs (which is why it is not longer available in Ubuntu).

I don't know where this dependency comes from, but it may be a good idea to upgrade.

florisbreggeman commented 1 year ago

This seems to be an issue for Ubuntu only - Debian seems to have no such requirement. What versions of Elixir, Erlang, and the OTP did you compile with (and where did you retrieve them?)

Also, have you tried if the provided Debian release doesn't accidentally work on Ubuntu?

Rafaeltheraven commented 1 year ago
mix --version
Erlang/OTP 25 [erts-13.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns]

Mix 1.13.4 (compiled with Erlang/OTP 25)
elixir --version
Erlang/OTP 25 [erts-13.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns]

Elixir 1.13.4 (compiled with Erlang/OTP 25)

These were simply retrieved using sudo apt install elixir (as described in https://elixir-lang.org/install.html)

After running mix deps.get we get the following stacktrace.

19:57:03.608 [error] Unable to load crypto library. Failed with error:
":load_failed, Failed to load NIF library /usr/lib/erlang/lib/crypto-5.1.3/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"
OpenSSL might not be installed on this system.

19:57:03.634 [error] Unable to load crypto library. Failed with error:
":load_failed, Failed to load NIF library /usr/lib/erlang/lib/crypto-5.1.3/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"
OpenSSL might not be installed on this system.

19:57:03.634 [error] Unable to load crypto library. Failed with error:
":load_failed, Failed to load NIF library /usr/lib/erlang/lib/crypto-5.1.3/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"
OpenSSL might not be installed on this system.

19:57:03.634 [error] Unable to load crypto library. Failed with error:
":load_failed, Failed to load NIF library /usr/lib/erlang/lib/crypto-5.1.3/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"
OpenSSL might not be installed on this system.

19:57:03.634 [error] Unable to load crypto library. Failed with error:
":load_failed, Failed to load NIF library /usr/lib/erlang/lib/crypto-5.1.3/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"
OpenSSL might not be installed on this system.

19:57:03.634 [error] Unable to load crypto library. Failed with error:
":load_failed, Failed to load NIF library /usr/lib/erlang/lib/crypto-5.1.3/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"
OpenSSL might not be installed on this system.

19:57:03.634 [error] Unable to load crypto library. Failed with error:
":load_failed, Failed to load NIF library /usr/lib/erlang/lib/crypto-5.1.3/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"
OpenSSL might not be installed on this system.

19:57:03.634 [error] Unable to load crypto library. Failed with error:
":load_failed, Failed to load NIF library /usr/lib/erlang/lib/crypto-5.1.3/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"
OpenSSL might not be installed on this system.

19:57:03.634 [error] Unable to load crypto library. Failed with error:
":load_failed, Failed to load NIF library /usr/lib/erlang/lib/crypto-5.1.3/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"
OpenSSL might not be installed on this system.

19:57:03.612 [warning] The on_load function for module crypto returned:
{:error,
 {:load_failed,
  'Failed to load NIF library /usr/lib/erlang/lib/crypto-5.1.3/priv/lib/crypto: \'libcrypto.so.1.1: cannot open shared object file: No such file or directory\''}}

19:57:03.632 [error] Task #PID<0.166.0> started from :hex_fetcher terminating
** (UndefinedFunctionError) function :crypto.supports/0 is undefined (module :crypto is not available)
    (crypto 5.1.3) :crypto.supports()
    (ssl 10.9) tls_record.erl:772: :tls_record.sufficient_support/1
    (ssl 10.9) tls_record.erl:392: :tls_record.supported_protocol_versions/1
    (ssl 10.9) tls_record.erl:380: :tls_record.supported_protocol_versions/0
    (ssl 10.9) ssl.erl:1317: :ssl.versions/0
    (hex 2.0.6) lib/hex/stdlib.ex:76: Hex.Stdlib.ssl_cipher_suites/1
    (hex 2.0.6) lib/hex/http/ssl.ex:123: Hex.HTTP.SSL.filter_ciphers/1
    (hex 2.0.6) lib/hex/http/ssl.ex:66: Hex.HTTP.SSL.ssl_opts/1
Function: #Function<18.3350948/0 in Hex.Registry.Server.prefetch_online/2>
    Args: []
Rafaeltheraven commented 1 year ago

Trying to run the provided debian release results in the following:

=ERROR REPORT==== 16-Aug-2023::20:00:10.456245 ===
Unable to load crypto library. Failed with error:
"load_failed, Failed to load NIF library /tmp/das/lib/crypto-5.1.1/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"
OpenSSL might not be installed on this system.

=SUPERVISOR REPORT==== 16-Aug-2023::20:00:10.456559 ===
    supervisor: {local,kernel_sup}
    errorContext: start_error
    reason: {on_load_function_failed,crypto,
                {error,
                    {load_failed,
                        "Failed to load NIF library /tmp/das/lib/crypto-5.1.1/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"}}}
    offender: [{pid,undefined},
               {id,kernel_safe_sup},
               {mfargs,{supervisor,start_link,
                                   [{local,kernel_safe_sup},kernel,safe]}},
               {restart_type,permanent},
               {significant,false},
               {shutdown,infinity},
               {child_type,supervisor}]

=CRASH REPORT==== 16-Aug-2023::20:00:10.456657 ===
  crasher:
    initial call: supervisor:kernel/1
    pid: <0.1388.0>
    registered_name: []
    exception exit: {on_load_function_failed,crypto,
                        {error,
                            {load_failed,
                                "Failed to load NIF library /tmp/das/lib/crypto-5.1.1/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"}}}
      in function  init:run_on_load_handlers/0 
      in call from kernel:init/1 (kernel.erl, line 189)
      in call from supervisor:init/1 (supervisor.erl, line 330)
      in call from gen_server:init_it/2 (gen_server.erl, line 848)
      in call from gen_server:init_it/6 (gen_server.erl, line 811)
    ancestors: [kernel_sup,<0.1362.0>]
    message_queue_len: 0
    messages: []
    links: [<0.1364.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 610
    stack_size: 28
    reductions: 221
  neighbours:

=CRASH REPORT==== 16-Aug-2023::20:00:11.458498 ===
  crasher:
    initial call: application_master:init/4
    pid: <0.1361.0>
    registered_name: []
    exception exit: {{shutdown,
                      {failed_to_start_child,kernel_safe_sup,
                       {on_load_function_failed,crypto,
                        {error,
                         {load_failed,
                          "Failed to load NIF library /tmp/das/lib/crypto-5.1.1/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"}}}}},
                     {kernel,start,[normal,[]]}}
      in function  application_master:init/4 (application_master.erl, line 142)
    ancestors: [<0.1360.0>]
    message_queue_len: 1
    messages: [{'EXIT',<0.1362.0>,normal}]
    links: [<0.1360.0>,<0.1359.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 987
    stack_size: 28
    reductions: 192
  neighbours:

=INFO REPORT==== 16-Aug-2023::20:00:11.459354 ===
    application: kernel
    exited: {{shutdown,
                 {failed_to_start_child,kernel_safe_sup,
                     {on_load_function_failed,crypto,
                         {error,
                             {load_failed,
                                 "Failed to load NIF library /tmp/das/lib/crypto-5.1.1/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"}}}}},
             {kernel,start,[normal,[]]}}
    type: permanent

{"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,crypto,{error,{load_failed,\"Failed to load NIF library /tmp/das/lib/crypto-5.1.1/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'\"}}}}},{kernel,start,[normal,[]]}}}"}
Kernel pid terminated (application_controller) ({application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,crypto,{error,{load_failed,"Failed to load NIF library /tmp/das/lib/crypto-5.1.1/priv/lib/crypto: 'libcrypto.so.1.1: cannot open shared object file: No such file or directory'"}}}}},{kernel,start,[normal,[]]}}})

Crash dump is being written to: erl_crash.dump...done

(openSSL is installed on the system, just not version 1.1)