{ lib , rustPlatform , fetchCrate , cmake , installShellFiles , pkg-config , ronn , stdenv , curl , libgit2 , libssh2 , openssl , zlib , darwin }: rustPlatform.buildRustPackage rec { pname = "cargo-update"; version = "13.4.0"; src = fetchCrate { inherit pname version; sha256 = "sha256-/9igT1/3ck8Roy2poq1urf+cLblentOB7S9Hh6uqIEw="; }; cargoHash = "sha256-pdWVp9+CLnNO7+U0a8WXWHZ+EeGNYx9J7WWAI1MTDvc="; nativeBuildInputs = [ cmake installShellFiles pkg-config ronn ] ++ lib.optionals stdenv.isDarwin [ curl ]; buildInputs = [ libgit2 libssh2 openssl zlib ] ++ lib.optionals stdenv.isDarwin [ curl darwin.apple_sdk.frameworks.Security ]; postBuild = '' # Man pages contain non-ASCII, so explicitly set encoding to UTF-8. HOME=$TMPDIR \ RUBYOPT="-E utf-8:utf-8" \ ronn -r --organization="cargo-update developers" man/*.md ''; postInstall = '' installManPage man/*.1 ''; env = { LIBGIT2_NO_VENDOR = 1; }; meta = with lib; { description = "A cargo subcommand for checking and applying updates to installed executables"; homepage = "https://github.com/nabijaczleweli/cargo-update"; changelog = "https://github.com/nabijaczleweli/cargo-update/releases/tag/v${version}"; license = licenses.mit; maintainers = with maintainers; [ gerschtli Br1ght0ne johntitor matthiasbeyer ]; }; }