libssh2: switch default to OpenSSL and fix depends

All packages in the tree that depend on libssh2 _and_ have their own
dependency on a TLS library, depend on OpenSSL by default. It makes
sense for the libssh2 package to default to OpenSSL as well. This way it
does not pull in a second TLS library.

Also, the OpenSSL dependency is changed to
"+!LIBSSH2_MBEDTLS:libopenssl", which fixes build issues in case libssh2
is not selected but built anyway.

And last, Config.in file is removed and its content added to the
Makefile instead.

Closes #12108

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
This commit is contained in:
Sebastian Kemper 2020-05-08 21:34:47 +02:00
parent 234eb30b38
commit c0da37b1cd
2 changed files with 17 additions and 24 deletions

View File

@ -1,15 +0,0 @@
if PACKAGE_libssh2
choice
prompt "Choose crypto backend"
default LIBSSH2_MBEDTLS
config LIBSSH2_MBEDTLS
bool "mbedtls"
config LIBSSH2_OPENSSL
bool "openssl"
endchoice
endif

View File

@ -35,7 +35,7 @@ define Package/libssh2
CATEGORY:=Libraries
TITLE:=SSH2 library
URL:=https://www.libssh2.org/
DEPENDS:=+LIBSSH2_MBEDTLS:libmbedtls +LIBSSH2_OPENSSL:libopenssl +zlib
DEPENDS:=+LIBSSH2_MBEDTLS:libmbedtls +!LIBSSH2_MBEDTLS:libopenssl +zlib
ABI_VERSION:=1
endef
@ -44,20 +44,28 @@ define Package/libssh2/description
endef
define Package/libssh2/config
source "$(SOURCE)/Config.in"
if PACKAGE_libssh2
choice
prompt "Choose crypto backend"
default LIBSSH2_OPENSSL
config LIBSSH2_OPENSSL
bool "openssl"
config LIBSSH2_MBEDTLS
bool "mbedtls"
endchoice
endif
endef
CMAKE_OPTIONS += \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=OFF \
-DENABLE_ZLIB_COMPRESSION=ON \
-DCLEAR_MEMORY=ON
ifeq ($(CONFIG_LIBSSH2_OPENSSL),y)
CMAKE_OPTIONS += -DCRYPTO_BACKEND=OpenSSL
else
CMAKE_OPTIONS += -DCRYPTO_BACKEND=mbedTLS
endif
-DCLEAR_MEMORY=ON \
-DCRYPTO_BACKEND=$(if $(CONFIG_LIBSSH2_MBEDTLS),mbedTLS,OpenSSL)
define Package/libssh2/install
$(INSTALL_DIR) $(1)/usr/lib