openssl: enable OPENSSL_WITH_DEPRECATED when OpenSSL is built as a build dep
authorMatthias Schiffer <mschiffer@universe-factory.net>
Tue, 30 Oct 2018 19:38:34 +0000 (20:38 +0100)
committerJo-Philipp Wich <jo@mein.io>
Tue, 18 Dec 2018 16:48:09 +0000 (17:48 +0100)
Some package (e.g. libunbound) depend on OPENSSL_WITH_DEPRECATED. In some
situations it may happen that libunbound and openssl are only pulled in as
build dependencies, but are not enabled in .config.

In such cases, the defaults of symbols like OPENSSL_WITH_DEPRECATED are
ignored (as the whole symbol depends on PACKAGE_libopenssl), and config
symbol dependencies of libunbound aren't effective either (as libunbound
is not actually enabled).

This commit works around the issue by introducing a hidden negated symbol
OPENSSL_NO_DEPRECATED, which is always disabled when PACKAGE_libopenssl is
disabled, and ensures that OpenSSL is built with deprecated APIs in this
case. A user can still manage to break the build by explicitly enabling
libopenssl and disabling OPENSSL_WITH_DEPRECATED; the interaction between
build dependencies and config symbols will require further discussion.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
(backported from dd9da5146299b769fad874d32a8ae110312cb68f)

package/libs/openssl/Config.in
package/libs/openssl/Makefile

index 96d3ba3e9d69c15b5e30d1d07a55581e1bce7928..c39e28510f002169c67a54df8d3ce1c797e19637 100644 (file)
@@ -20,6 +20,10 @@ config OPENSSL_WITH_DEPRECATED
        default y
        prompt "Include deprecated APIs"
 
+config OPENSSL_NO_DEPRECATED
+       bool
+       default !OPENSSL_WITH_DEPRECATED
+
 config OPENSSL_WITH_DTLS
        bool
        default n
index b64a51d6d31438234da6a08a081e414d5f306efa..1e28267560f5a411986d3943ff79af4074238c25 100644 (file)
@@ -36,7 +36,7 @@ PKG_CONFIG_DEPENDS:= \
        CONFIG_OPENSSL_WITH_EC2M \
        CONFIG_OPENSSL_WITH_SSL3 \
        CONFIG_OPENSSL_HARDWARE_SUPPORT \
-       CONFIG_OPENSSL_WITH_DEPRECATED \
+       CONFIG_OPENSSL_NO_DEPRECATED \
        CONFIG_OPENSSL_WITH_DTLS \
        CONFIG_OPENSSL_WITH_COMPRESSION \
        CONFIG_OPENSSL_WITH_NPN \
@@ -130,7 +130,7 @@ ifndef CONFIG_OPENSSL_HARDWARE_SUPPORT
   OPENSSL_OPTIONS += no-hw
 endif
 
-ifndef CONFIG_OPENSSL_WITH_DEPRECATED
+ifdef CONFIG_OPENSSL_NO_DEPRECATED
   OPENSSL_OPTIONS += no-deprecated
 endif