about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/libssh2
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libssh2')
-rw-r--r--nixpkgs/pkgs/development/libraries/libssh2/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/libssh2/openssl_add_support_for_libressl_3_5.patch26
2 files changed, 56 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libssh2/default.nix b/nixpkgs/pkgs/development/libraries/libssh2/default.nix
new file mode 100644
index 000000000000..1b5d65335b8d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libssh2/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, openssl, zlib, windows }:
+
+stdenv.mkDerivation rec {
+  pname = "libssh2";
+  version = "1.10.0";
+
+  src = fetchurl {
+    url = "https://www.libssh2.org/download/libssh2-${version}.tar.gz";
+    sha256 = "sha256-LWTpDz3tOUuR06LndMogOkF59prr7gMAPlpvpiHkHVE=";
+  };
+
+  outputs = [ "out" "dev" "devdoc" ];
+
+  patches = [
+    # https://github.com/libssh2/libssh2/pull/700
+    # openssl: add support for LibreSSL 3.5.x
+    ./openssl_add_support_for_libressl_3_5.patch
+  ];
+
+  buildInputs = [ openssl zlib ]
+    ++ lib.optional stdenv.hostPlatform.isMinGW windows.mingw_w64;
+
+  meta = with lib; {
+    description = "A client-side C library implementing the SSH2 protocol";
+    homepage = "https://www.libssh2.org";
+    platforms = platforms.all;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libssh2/openssl_add_support_for_libressl_3_5.patch b/nixpkgs/pkgs/development/libraries/libssh2/openssl_add_support_for_libressl_3_5.patch
new file mode 100644
index 000000000000..d72a67a63403
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libssh2/openssl_add_support_for_libressl_3_5.patch
@@ -0,0 +1,26 @@
+From f0681a4573d7c7f7484d3157ddff7063a200295b Mon Sep 17 00:00:00 2001
+From: Viktor Szakats <commit@vsz.me>
+Date: Thu, 19 May 2022 13:25:06 +0000
+Subject: [PATCH] openssl: add support for LibreSSL 3.5.x
+
+LibreSSL 3.5.0 made more structures opaque, so let's enable existing
+support for that when building against these LibreSSL versions.
+
+Ref: https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.5.0-relnotes.txt
+---
+ src/openssl.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/openssl.h b/src/openssl.h
+index 658b040..1733b9e 100644
+--- a/src/openssl.h
++++ b/src/openssl.h
+@@ -58,7 +58,8 @@
+ #include <openssl/rand.h>
+
+ #if OPENSSL_VERSION_NUMBER >= 0x10100000L && \
+-    !defined(LIBRESSL_VERSION_NUMBER)
++    !defined(LIBRESSL_VERSION_NUMBER) || \
++    LIBRESSL_VERSION_NUMBER >= 0x3050000fL
+ # define HAVE_OPAQUE_STRUCTS 1
+ #endif