aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRosen Penev <rosenp@gmail.com>2019-04-28 16:48:16 -0700
committerRosen Penev <rosenp@gmail.com>2019-04-28 16:48:16 -0700
commit2d440dd26701f6aeede76426b8ec7cf5e97aaa92 (patch)
tree062827582c79315233a6ba3f0c86dd4b03d6729f
parent0038d6e971bf98ef440e15cc3a71e643d4fa65ba (diff)
libssh: Fix compilation without deprecated OpenSSL APIs
Last patch was already fixed upstream. First patch was sent. Signed-off-by: Rosen Penev <rosenp@gmail.com>
-rw-r--r--libs/libssh/Makefile2
-rw-r--r--libs/libssh/patches/010-openssl-11-deprecated.patch39
-rw-r--r--libs/libssh/patches/020-openssl-threads.patch28
3 files changed, 68 insertions, 1 deletions
diff --git a/libs/libssh/Makefile b/libs/libssh/Makefile
index babc08973..7f85982fb 100644
--- a/libs/libssh/Makefile
+++ b/libs/libssh/Makefile
@@ -12,7 +12,7 @@ PKG_MAINTAINER:=Mislav Novakovic <mislav.novakovic@sartura.hr>
PKG_NAME:=libssh
PKG_VERSION:=0.7.6
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://www.libssh.org/files/0.7/
diff --git a/libs/libssh/patches/010-openssl-11-deprecated.patch b/libs/libssh/patches/010-openssl-11-deprecated.patch
new file mode 100644
index 000000000..2a62d9d0e
--- /dev/null
+++ b/libs/libssh/patches/010-openssl-11-deprecated.patch
@@ -0,0 +1,39 @@
+--- a/src/dh.c
++++ b/src/dh.c
+@@ -131,11 +131,15 @@ int ssh_get_random(void *where, int len, int strong){
+
+ return 1;
+ #elif defined HAVE_LIBCRYPTO
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (strong) {
+ return RAND_bytes(where,len);
+ } else {
+ return RAND_pseudo_bytes(where,len);
+ }
++#else
++ return RAND_bytes(where,len);
++#endif
+ #endif
+
+ /* never reached */
+@@ -198,7 +202,9 @@ int ssh_crypto_init(void) {
+ }
+ bignum_bin2bn(p_group14_value, P_GROUP14_LEN, p_group14);
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ OpenSSL_add_all_algorithms();
++#endif
+
+ #endif
+
+@@ -219,8 +225,10 @@ void ssh_crypto_finalize(void) {
+ #ifdef HAVE_LIBGCRYPT
+ gcry_control(GCRYCTL_TERM_SECMEM);
+ #elif defined HAVE_LIBCRYPTO
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ EVP_cleanup();
+ CRYPTO_cleanup_all_ex_data();
++#endif
+ #endif
+ ssh_crypto_initialized=0;
+ }
diff --git a/libs/libssh/patches/020-openssl-threads.patch b/libs/libssh/patches/020-openssl-threads.patch
new file mode 100644
index 000000000..1a801b357
--- /dev/null
+++ b/libs/libssh/patches/020-openssl-threads.patch
@@ -0,0 +1,28 @@
+--- a/src/threads.c
++++ b/src/threads.c
+@@ -106,6 +106,8 @@ static int libgcrypt_thread_init(void){
+
+ static void **libcrypto_mutexes;
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
+ static void libcrypto_lock_callback(int mode, int i, const char *file, int line){
+ (void)file;
+ (void)line;
+@@ -160,6 +162,16 @@ static void libcrypto_thread_finalize(void){
+
+ }
+
++#else
++
++static int libcrypto_thread_init(void){
++ return SSH_OK;
++}
++
++static void libcrypto_thread_finalize(void){
++}
++#endif
++
+ #endif
+
+ /** @internal