depot/third_party/nixpkgs/pkgs/development/libraries/libssh2/default.nix

56 lines
1.4 KiB
Nix
Raw Normal View History

{ 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 ];
};
}