From 5150491fd4318c9c2b79c25cd7b92bc2baaec793 Mon Sep 17 00:00:00 2001 From: xrelkd <46590321+xrelkd@users.noreply.github.com> Date: Thu, 11 Apr 2024 16:10:06 +0800 Subject: [PATCH 1/2] solana-cli: migrate to by-name --- .../blockchains/solana => by-name/so/solana-cli}/Cargo.lock | 0 .../solana/default.nix => by-name/so/solana-cli/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 2 deletions(-) rename pkgs/{applications/blockchains/solana => by-name/so/solana-cli}/Cargo.lock (100%) rename pkgs/{applications/blockchains/solana/default.nix => by-name/so/solana-cli/package.nix} (100%) diff --git a/pkgs/applications/blockchains/solana/Cargo.lock b/pkgs/by-name/so/solana-cli/Cargo.lock similarity index 100% rename from pkgs/applications/blockchains/solana/Cargo.lock rename to pkgs/by-name/so/solana-cli/Cargo.lock diff --git a/pkgs/applications/blockchains/solana/default.nix b/pkgs/by-name/so/solana-cli/package.nix similarity index 100% rename from pkgs/applications/blockchains/solana/default.nix rename to pkgs/by-name/so/solana-cli/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f7c78d560d04..151530685e71 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -36454,8 +36454,6 @@ with pkgs; sumokoin = callPackage ../applications/blockchains/sumokoin { }; - solana-cli = callPackage ../applications/blockchains/solana { }; - solana-validator = callPackage ../applications/blockchains/solana-validator { }; snarkos = callPackage ../applications/blockchains/snarkos { From dc11297a61b07bd4442adb3c8eec176b546938de Mon Sep 17 00:00:00 2001 From: xrelkd <46590321+xrelkd@users.noreply.github.com> Date: Thu, 11 Apr 2024 16:08:00 +0800 Subject: [PATCH 2/2] solana-cli: install shell completions --- pkgs/by-name/so/solana-cli/package.nix | 37 +++++++++++++++----------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/pkgs/by-name/so/solana-cli/package.nix b/pkgs/by-name/so/solana-cli/package.nix index 41585b3e06f9..a68171056507 100644 --- a/pkgs/by-name/so/solana-cli/package.nix +++ b/pkgs/by-name/so/solana-cli/package.nix @@ -7,10 +7,11 @@ , protobuf , libcxx , rocksdb +, installShellFiles , pkg-config , openssl , nix-update-script -# Taken from https://github.com/solana-labs/solana/blob/master/scripts/cargo-install-all.sh#L84 + # Taken from https://github.com/solana-labs/solana/blob/master/scripts/cargo-install-all.sh#L84 , solanaPkgs ? [ "solana" "solana-bench-tps" @@ -23,7 +24,7 @@ "solana-net-shaper" "solana-validator" "solana-test-validator" -] ++ [ + ] ++ [ # XXX: Ensure `solana-genesis` is built LAST! # See https://github.com/solana-labs/solana/issues/5826 "solana-genesis" @@ -66,36 +67,42 @@ rustPlatform.buildRustPackage rec { # I'm not in the mood ((ΦωΦ)) doCheck = false; - nativeBuildInputs = [ protobuf pkg-config ]; + nativeBuildInputs = [ installShellFiles protobuf pkg-config ]; buildInputs = [ openssl rustPlatform.bindgenHook ] - ++ lib.optionals stdenv.isLinux [ udev ] - ++ lib.optionals stdenv.isDarwin [ - libcxx - IOKit - Security - AppKit - System - Libsystem ]; + ++ lib.optionals stdenv.isLinux [ udev ] + ++ lib.optionals stdenv.isDarwin [ + libcxx + IOKit + Security + AppKit + System + Libsystem + ]; postInstall = '' + installShellCompletion --cmd solana \ + --bash <($out/bin/solana completion --shell bash) \ + --fish <($out/bin/solana completion --shell fish) \ + --zsh <($out/bin/solana completion --shell zsh) + mkdir -p $out/bin/sdk/bpf cp -a ./sdk/bpf/* $out/bin/sdk/bpf/ ''; # Used by build.rs in the rocksdb-sys crate. If we don't set these, it would # try to build RocksDB from source. - ROCKSDB_LIB_DIR="${rocksdb}/lib"; + ROCKSDB_LIB_DIR = "${rocksdb}/lib"; # Require this on darwin otherwise the compiler starts rambling about missing # cmath functions - CPPFLAGS=lib.optionals stdenv.isDarwin "-isystem ${lib.getDev libcxx}/include/c++/v1"; - LDFLAGS=lib.optionals stdenv.isDarwin "-L${lib.getLib libcxx}/lib"; + CPPFLAGS = lib.optionals stdenv.isDarwin "-isystem ${lib.getDev libcxx}/include/c++/v1"; + LDFLAGS = lib.optionals stdenv.isDarwin "-L${lib.getLib libcxx}/lib"; # If set, always finds OpenSSL in the system, even if the vendored feature is enabled. OPENSSL_NO_VENDOR = 1; meta = with lib; { - description = "Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces. "; + description = "Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces"; homepage = "https://solana.com"; license = licenses.asl20; maintainers = with maintainers; [ netfox happysalada aikooo7 ];