{ lib , stdenv , fetchurl , openssl , zlib , windows # for passthru.tests , aria2 , curl , libgit2 , mc , vlc }: stdenv.mkDerivation rec { pname = "libssh2"; version = "1.11.0"; src = fetchurl { url = "https://www.libssh2.org/download/libssh2-${version}.tar.gz"; sha256 = "sha256-NzYWHkHiaTMk3rOMJs/cPv5iCdY0ukJY2xzs/2pa1GE="; }; patches = [ # fetchpatch cannot be used due to infinite recursion # https://github.com/libssh2/libssh2/commit/d34d9258b8420b19ec3f97b4cc5bf7aa7d98e35a ./CVE-2023-48795.patch ]; # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion # necessary for FreeBSD code path in configure postPatch = '' substituteInPlace ./config.guess --replace-fail /usr/bin/uname uname ''; outputs = [ "out" "dev" "devdoc" ]; propagatedBuildInputs = [ openssl ]; # see Libs: in libssh2.pc buildInputs = [ zlib ] ++ lib.optional stdenv.hostPlatform.isMinGW windows.mingw_w64; passthru.tests = { inherit aria2 libgit2 mc vlc; curl = (curl.override { scpSupport = true; }).tests.withCheck; }; meta = with lib; { description = "Client-side C library implementing the SSH2 protocol"; homepage = "https://www.libssh2.org"; platforms = platforms.all; license = with licenses; [ bsd3 ]; maintainers = with maintainers; [ SuperSandro2000 ]; }; }