NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: SSL_library_init not found in libssl in current



my mistake -- it was in there on Apr 18 at least.  i guess that's a little old

OpenSSL version 1.1.1b 26 Feb 2019 here

On Thu, Apr 25, 2019 at 6:28 PM Greg A. Woods <woods%planix.com@localhost> wrote:
>
> At Thu, 25 Apr 2019 17:18:09 +0200, Martin Husemann <martin%duskware.de@localhost> wrote:
> Subject: Re: SSL_library_init not found in libssl in current
> >
> > On Thu, Apr 25, 2019 at 08:34:05PM +0530, Mayuresh wrote:
> > > On Thu, Apr 25, 2019 at 04:57:10PM +0200, Martin Husemann wrote:
> > > > Note that the issue is the openssl version, not the architecture (or
> > > > am I missing something?)
> > >
> > > I'd think so. Just that mail from JP on this thread says the symbol is
> > > present on current amd64. I personally have only evbarm current and 8.0
> > > amd64.
> >
> > Yeah, but it is not present in amd64 -current as of a few days ago any more ;-)
>
> More than a few days....
>
> I don't have it by default in a build from a Jan 31 checkout.
>
> However I do still have the manual page, which ends with:
>
>        The SSL_library_init() and OpenSSL_add_ssl_algorithms() functions were
>        deprecated in OpenSSL 1.1.0 by OPENSSL_init_ssl().
>
> BTW, that manual page also clearly states the function should be found
> in libcrypto (NOT libssl).  But....
>
> However, if one examines the source tree one quickly finds out that
> SSL_library_init() is now a macro (in openssl/ssl.h) which is only made
> visible if the source including it has arranged to build with the
> appropriate API compatability level.
>
> This doesn't seem to be documented in places I would consider obvious,
> but it is seen in a comment in openssl/opensslconf.h:
>
> /*
>  * Applications should use -DOPENSSL_API_COMPAT=<version> to suppress the
>  * declarations of functions deprecated in or before <version>. Otherwise, they
>  * still won't see them if the library has been built to disable deprecated
>  * functions.
>  */
>
> There's also a related note in the CHANGES file:
>
>
>   *) Revert default OPENSSL_NO_DEPRECATED setting.  Instead OpenSSL
>      continues to support deprecated interfaces in default builds.
>      However, applications are strongly advised to compile their
>      source files with -DOPENSSL_API_COMPAT=0x10100000L, which hides
>      the declarations of all interfaces deprecated in 0.9.8, 1.0.0
>      or the 1.1.0 releases.
>
>      In environments in which all applications have been ported to
>      not use any deprecated interfaces OpenSSL's Configure script
>      should be used with the --api=1.1.0 option to entirely remove
>      support for the deprecated features from the library and
>      unconditionally disable them in the installed headers.
>      Essentially the same effect can be achieved with the "no-deprecated"
>      argument to Configure, except that this will always restrict
>      the build to just the latest API, rather than a fixed API
>      version.
>
>      As applications are ported to future revisions of the API,
>      they should update their compile-time OPENSSL_API_COMPAT define
>      accordingly, but in most cases should be able to continue to
>      compile with later releases.
>
>      The OPENSSL_API_COMPAT versions for 1.0.0, and 0.9.8 are
>      0x10000000L and 0x00908000L, respectively.  However those
>      versions did not support the OPENSSL_API_COMPAT feature, and
>      so applications are not typically tested for explicit support
>      of just the undeprecated features of either release.
>      [Viktor Dukhovni]
>
>
> That says that deprecated APIs should still be supported by a default
> build of OpenSSL, and indeed I believe that's how NetBSD installs it.
>
> However it doesn't help for www/squid3.  That's because its configure
> script does not add "#include <openssl/ssl.h>" to the test program.
>
> It may also be useful to add a line like this to www/squid3/Makefile,
> but of course that won't actually make it work -- it'll just document
> that it needs at least OpenSSL-1.0.0:
>
>         CFLAGS+=        -DOPENSSL_API_COMPAT=0x10000000L
>
> The configure script will still need to be patched.
>
> Of course as mentioned squid-3 is heading on to old and should soon be
> replaced by all users with squid-4, and especially pkgsrc should
> deprecate squid-3 and provide the latest squid-4 by default.
>
> --
>                                         Greg A. Woods <gwoods%acm.org@localhost>
>
> +1 250 762-7675                           RoboHack <woods%robohack.ca@localhost>
> Planix, Inc. <woods%planix.com@localhost>     Avoncote Farms <woods%avoncote.ca@localhost>



Home | Main Index | Thread Index | Old Index