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

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

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

Weston C
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
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: "OpenSSL might not be installed on this system." (OS X 10.9, openssl seems to be there).

Andrew Varner
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 <[hidden email]> 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
> [hidden email]
> http://erlang.org/mailman/listinfo/erlang-questions

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: "OpenSSL might not be installed on this system." (OS X 10.9, openssl seems to be there).

Steve Davis
In reply to this post by Weston C
I remember facing a similar issue. IIRC the fix was to create/update an LD_LIBRARY_PATH env variable to add the path to the openssl directory.
_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: "OpenSSL might not be installed on this system." (OS X 10.9, openssl seems to be there).

Emil Holmstrom
the tests performed by the configure script should give some useful output in config.log.

/emil

On Mon, 14 Nov 2016 at 15:12, Steve Davis <[hidden email]> wrote:
I remember facing a similar issue. IIRC the fix was to create/update an LD_LIBRARY_PATH env variable to add the path to the openssl directory.
_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions