[erlang-questions] "OpenSSL might not be installed on this system." (OS X 10.9, openssl seems to be there).

Andrew Varner drew.varner@REDACTED
Sun Nov 13 22:58:28 CET 2016


I used Homebrew to install OpenSSL. I build Erlang with kerl. The following in my .kerlrc file works for me in OS X 10.11.6:

KERL_CONFIGURE_OPTIONS="--with-ssl=/usr/local/opt/openssl”

> On Nov 13, 2016, at 1:15 PM, Weston C <westonc@REDACTED> wrote:
> 
> When trying to use crypto/ssl-related stuff in my local build of
> Erlang (Mac OS X 10.9), I'm getting errors that indicate it doesn't
> believe I have OpenSSL installed on my system, despite some notable
> evidence that I apparently do.
> 
> Here's the error I'm seeing:
> 
>    westonMBP:weston$ erl
>    Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8]
> [async-threads:10] [hipe] [kernel-poll:false]
> 
>    Eshell V7.3  (abort with ^G)
>    1> crypto:start().
>    ** exception error: undefined function crypto:start/0
>    2>
>    =ERROR REPORT==== 7-Nov-2016::16:45:02 ===
>    Unable to load crypto library. Failed with error:
>    "load_failed, Failed to load NIF library:
> 'dlopen(/usr/local/lib/erlang/lib/crypto-3.7/priv/lib/crypto.so, 2):
> Symbol not found: _EVP_aes_128_cbc
>      Referenced from: /usr/local/lib/erlang/lib/crypto-3.7/priv/lib/crypto.so
>    Expected in: flat namespace
>     in /usr/local/lib/erlang/lib/crypto-3.7/priv/lib/crypto.so'"
>    OpenSSL might not be installed on this system.
> 
>    =WARNING REPORT==== 7-Nov-2016::16:45:02 ===
>    The on_load function for module crypto returned {error,
>                                                 {load_failed,
>    "Failed to load NIF library:
> 'dlopen(/usr/local/lib/erlang/lib/crypto-3.7/priv/lib/crypto.so, 2):
> Symbol not found: _EVP_aes_128_cbc\n  Referenced from:
> /usr/local/lib/erlang/lib/crypto-3.7/priv/lib/crypto.so\n  Expected
> in: flat namespace\n in
> /usr/local/lib/erlang/lib/crypto-3.7/priv/lib/crypto.so'"}}
> 
> Now... I'm pretty sure I have openssl installed:
> 
> 
>    westonMBP:otp_src_18.3 weston$ openssl version
>    OpenSSL 1.0.2j  26 Sep 2016
>    westonMBP:otp_src_18.3 weston$ which openssl
>    /usr/local/bin/openssl
> 
> And libcrypto.a and libcrypto.dylib show under /usr/local/lib, there's
> a full openssl header directory under /usr/local/include.
> 
> So, I figured I'd go back and take a look at the different options
> presented to me by `configure` when I built from source.
> 
> Initially, I ran configure with `--with-ssl=/usr/local`, but I notice
> one can opmit the path... why not try just `--with-ssl`, and see if it
> makes the connection better on its own?
> 
> Doesn't seem to:
> 
> 
>    checking for static ZLib to be used by SSL in standard locations... no
>    checking for OpenSSL >= 0.9.7 in standard locations... rm:
> conftest.dSYM: is a directory
>    rm: conftest.dSYM: is a directory
>    found; but not usable
>    configure: WARNING: No (usable) OpenSSL found, skipping ssl, ssh
> and crypto applications
>    checking for kstat_open in -lkstat... (cached) no
> 
>    ...
> 
>    *********************************************************************
>    **********************  APPLICATIONS DISABLED  **********************
>    *********************************************************************
> 
>    crypto         : No usable OpenSSL found
>    ssh            : No usable OpenSSL found
>    ssl            : No usable OpenSSL found
> 
> 
> Going back to `--with-ssl=/usr/local` gives me:
> 
> 
>    checking for static ZLib to be used by SSL in standard locations... no
>    checking for OpenSSL kerberos 5 support... yes
>    rm: conftest.dSYM: is a directory
>    checking for krb5.h in standard locations... found in /usr/include
>    checking for kstat_open in -lkstat... (cached) no
> 
> 
> So the build process seems to think I've got it. Nevertheless,
> invoking `crypto:start()` brings us back to the "OpenSSL might not be
> installed on this system." error.
> 
> Having wrestled with some weird OS X library/header path issues
> recently, I thought about the possibility that one or the other is
> there, but OS X can't see it, figured I'd look up an OpenSSL "Hello
> World" program:
> 
> 
>    /*
>        https://www.mitchr.me/SS/exampleCode/openssl.html
>        https://www.mitchr.me/SS/exampleCode/openssl/bio_hello0.c.html
>    */
>    #include <stdio.h>
>    #include <openssl/ssl.h>
>    #include <openssl/bio.h>
> 
>    int main(int argc, char *argv[]);
> 
>    int main(int argc, char *argv[]) {
> 
>        BIO *bio_stdout;
> 
>        bio_stdout = BIO_new_fp(stdout, BIO_NOCLOSE);
> 
>          BIO_printf(bio_stdout, "hello, World!\n");
> 
>        BIO_free_all(bio_stdout);
> 
>          return 0;
>    }
> 
> 
> And then try building/running it:
> 
> 
>    westonMBP:tmp weston$ gcc -o hellossl hellossl.c -lcrypto
>    westonMBP:tmp weston$ ./hellossl
>    hello, World!
> 
> 
> So, it's finding openssl on this toy/test program.
> 
> I did consider that this might be related to an issue potentially
> fixed in a later release, and tried builing 19.1.  Same result
> (although the missing symbol given in the error message seems to be
> _CRYPTO_num_locks rather than  _EVP_aes_128_cbc).
> 
> I also tried building/installing a few different versions of openssl
> -- 1.0.2e, 1.0.2j, and 1.1.0b. There's no difference between the
> result of the 1.0.2's, 1.1.0b seems to actually break the make process
> entirely.
> 
> Any hints on what to try next?
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions




More information about the erlang-questions mailing list