{ lib , stdenv , rustPlatform , fetchFromGitHub , pkg-config , libgit2 , openssl , installShellFiles , darwin , testers , pixi }: rustPlatform.buildRustPackage rec { pname = "pixi"; version = "0.19.1"; src = fetchFromGitHub { owner = "prefix-dev"; repo = "pixi"; rev = "v${version}"; hash = "sha256-rCnW2Ghh6SN1G9u4ybk0jUUFYevH6FozeSjXZfJhW8s="; }; cargoLock = { lockFile = ./Cargo.lock; outputHashes = { "async_zip-0.0.16" = "sha256-M94ceTCtyQc1AtPXYrVGplShQhItqZZa/x5qLiL+gs0="; "cache-key-0.0.1" = "sha256-XsBTfe2+J5CGdjYZjhgxiP20OA7+VTCvD9JniLOjhKs="; "pubgrub-0.2.1" = "sha256-SdgxoJ37cs+XwWRCFX4uKhJ9Juu9R/jENb6tzUMam4k="; }; }; nativeBuildInputs = [ pkg-config installShellFiles ]; buildInputs = [ libgit2 openssl ] ++ lib.optionals stdenv.isDarwin ( with darwin.apple_sdk_11_0.frameworks; [ CoreFoundation IOKit SystemConfiguration Security ] ); env = { LIBGIT2_NO_VENDOR = 1; OPENSSL_NO_VENDOR = 1; }; # There are some CI failures with Rattler. Tests on Aarch64 has been skipped. # See https://github.com/prefix-dev/pixi/pull/241. doCheck = !stdenv.isAarch64; preCheck = '' export HOME="$(mktemp -d)" ''; checkFlags = [ # Skip tests requiring network "--skip=add_channel" "--skip=add_functionality" "--skip=add_functionality_os" "--skip=add_functionality_union" "--skip=add_pypi_functionality" "--skip=test_alias" "--skip=test_cwd" "--skip=test_compressed_mapping_catch_missing_package" "--skip=test_incremental_lock_file" "--skip=test_purl_are_added_for_pypi" ]; postInstall = '' installShellCompletion --cmd pixi \ --bash <($out/bin/pixi completion --shell bash) \ --fish <($out/bin/pixi completion --shell fish) \ --zsh <($out/bin/pixi completion --shell zsh) ''; passthru.tests.version = testers.testVersion { package = pixi; }; meta = with lib; { description = "Package management made easy"; homepage = "https://pixi.sh/"; license = licenses.bsd3; maintainers = with lib.maintainers; [ aaronjheng edmundmiller ]; mainProgram = "pixi"; }; }