I provide libcrypto.1.0.0.dylib and libssl.1.0.0.dylib, and it worked all the time just fine, even with Mojave.
Now I updated to Catalina and the app does not start anymore, and I get errors like
"Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI."
Any idea what I can do about it? Embarcadero state somewhere that this libs does not need to be provided, because they are already installed by the OS, but does indy work with the pre-installed versions or could it cause issues?
Guenter K34594 said:"Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI."
Try calling 'IdOpenSSLSetCanLoadSymLinks(False)' or 'IdOpenSSLSetLoadSymLinksFirst(False)' at program startup (they are declared in the 'IdSSLOpenSSLHeaders' unit) before calling 'TIdHTTP.Get()', that way Indy will attempt to load versioned dylibs before skipping/resorting to unversioned dylibs.
Guenter K34594 said:Embarcadero state somewhere that this libs does not need to be provided, because they are already installed by the OS
That is old advice, before OpenSSL 1.1.0 was released, and before Apple deprecated support for OpenSSL.
Guenter K34594 said:does indy work with the pre-installed versions
Hard to say for sure without knowing which versions are installed. If 1.0.2 or earlier, yes. If 1.1.0+, no (yet).
Guenter K34594 said:could it cause issues?
Loading pre-installed versions on modern systems may cause problems, yes. To avoid any complications, you should provide your own compatible OpenSSL dylibs with your app, and then call Indy's 'IdOpenSSLSetLibPath()' function at startup (it is declared in the 'IdSSLOpenSSLHeaders' unit) to tell Indy which folder to load them from.
In my IdSSLOpenSSLHeaders neither of those methods exists. Searching the entire Indy10 folder for "SymLinks" returns 0 zero results. I'm using the Indy version bundled with 10.3.2
PS: Sorry don't see how-to quote in this webforum thingymadingy.
WilvA said:In my IdSSLOpenSSLHeaders neither of those methods exists.
Then you are using an outdated version of Indy and need to upgrade. `IdOpenSSLSetLoadSymLinksFirst()' was added 1 1/2 year ago. 'IdOpenSSLSetCanLoadSymLinks()'. was added 3 months ago. See Changes for how OpenSSL is loaded on *Nix platforms on Indy's website blog.
WilvA said:I'm using the Indy version bundled with 10.3.2
They didn't bundle the latest version of Indy that was available at the time. That would have at least gotten you the first function, I think. IIRC, they are planning on bundling a newer Indy in the upcoming 10.3.3.
WilvA said:PS: Sorry don't see how-to quote in this webforum thingymadingy.
Start a reply, then highlight the text you want to quote. A popup menu will appear with the "Quote" option, which will copy the selected text into a quote block at the current caret position in the reply.
Remy Lebeau said: IIRC, they are planning on bundling the latest Indy in the upcoming 10.3.3.
That _is_ good news. Will check it in the beta.
Thanks again for your swift response!