diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c993f35..bc91d67 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-11.0] + os: [ubuntu-latest, macos-11.0, macos-12] package: - solana-1_7-basic - solana-1_8-basic @@ -56,6 +56,7 @@ jobs: - saber-devenv - move-cli - move-cli-address32 + - goki-cli steps: - uses: actions/checkout@v3 - uses: cachix/install-nix-action@v17 diff --git a/README.md b/README.md index ac17cec..a625a67 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,19 @@ # saber-overlay -Overlay containing Saber packages. +Overlay containing Nix packages used within the Saber ecosystem. ## Usage ### Nix flakes (recommended) +The following helper exports several packages: + +- `env-anchor-idls` - environment which allows the use of the `anchor idl` command +- `env-anchor-build` - exposes tools to create verifiable Anchor builds +- `rust` - exposes Cargo/Rustc as used in CI + +To use these in GitHub Actions, you may reference [the Saber Periphery GitHub actions](https://github.com/saber-hq/saber-periphery/blob/master/.github/workflows) and pick one of the below flake formats: + ```nix { description = "My development environment."; @@ -18,7 +26,7 @@ Overlay containing Saber packages. } ``` -or +#### Locking a specific Anchor/Solana version ```nix { @@ -30,6 +38,7 @@ or outputs = { self, saber-overlay }: saber-overlay.lib.buildFlakeOutputs { setupBuildTools = { pkgs }: { + solana = pkgs.solana-1_9; anchor = pkgs.anchor-0_23_0; }; }; diff --git a/default.nix b/default.nix deleted file mode 100644 index 30443b0..0000000 --- a/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -final: prev: -let - mkRust = rust: { - inherit rust; - rustPlatform = prev.recurseIntoAttrs (prev.makeRustPlatform { - rustc = rust; - cargo = rust; - }); - }; - rustNightly = mkRust prev.rust-bin.nightly."2022-02-28".minimal; - rustStable = mkRust prev.rust-bin.stable."1.59.0".minimal; - saberPackages = (import ./packages { - inherit rustNightly rustStable; - pkgs = prev; - }); -in -saberPackages // { inherit saberPackages; } diff --git a/flake.lock b/flake.lock index 9982778..c6c65f7 100644 --- a/flake.lock +++ b/flake.lock @@ -1,6 +1,36 @@ { "nodes": { "flake-utils": { + "locked": { + "lastModified": 1652776076, + "narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "locked": { + "lastModified": 1652776076, + "narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { "locked": { "lastModified": 1649676176, "narHash": "sha256-OWKJratjt2RW151VUlJPRALb7OU2S5s+f0vLj4o1bHM=", @@ -15,7 +45,7 @@ "type": "github" } }, - "flake-utils_2": { + "flake-utils_4": { "locked": { "lastModified": 1637014545, "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", @@ -30,7 +60,58 @@ "type": "github" } }, + "flake-utils_5": { + "locked": { + "lastModified": 1637014545, + "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "goki-cli": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs", + "saber-overlay": "saber-overlay" + }, + "locked": { + "lastModified": 1653242884, + "narHash": "sha256-PyhEkdVJDz1Yq9+XniJXFRj0888fJVi28OcQwQT+MwY=", + "owner": "GokiProtocol", + "repo": "goki-cli", + "rev": "4346316e65d6aa703e964ff66bfb3e42a5595223", + "type": "github" + }, + "original": { + "owner": "GokiProtocol", + "repo": "goki-cli", + "type": "github" + } + }, "nixpkgs": { + "locked": { + "lastModified": 1653117584, + "narHash": "sha256-5uUrHeHBIaySBTrRExcCoW8fBBYVSDjDYDU5A6iOl+k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f4dfed73ee886b115a99e5b85fdfbeb683290d83", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { "locked": { "lastModified": 1649961138, "narHash": "sha256-8ZCPrazs+qd2V8Elw84lIWuk0kKfVQ8Ei/19gahURhM=", @@ -46,17 +127,36 @@ "type": "github" } }, + "nixpkgs_3": { + "locked": { + "lastModified": 1653117584, + "narHash": "sha256-5uUrHeHBIaySBTrRExcCoW8fBBYVSDjDYDU5A6iOl+k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f4dfed73ee886b115a99e5b85fdfbeb683290d83", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs", - "rust-overlay": "rust-overlay" + "goki-cli": "goki-cli", + "nixpkgs": "nixpkgs_3", + "rust-overlay": "rust-overlay_2" } }, "rust-overlay": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_4", "nixpkgs": [ + "goki-cli", + "saber-overlay", "nixpkgs" ] }, @@ -73,6 +173,47 @@ "repo": "rust-overlay", "type": "github" } + }, + "rust-overlay_2": { + "inputs": { + "flake-utils": "flake-utils_5", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1653187023, + "narHash": "sha256-bbtADm4h0OI5junEKcjpeWgX5Y4Ate0m7L6cxqdCXQY=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "86cc394cd4d5eb7a85749677de297cb9eb33664c", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "saber-overlay": { + "inputs": { + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_2", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1651330538, + "narHash": "sha256-BWbwvPgVv9VhJme1bR+UnsPuX6871TA01RfT/Pfhmk8=", + "owner": "saber-hq", + "repo": "saber-overlay", + "rev": "0f1dc49b18e25f02ce82ab6e2bdee58a924e33fc", + "type": "github" + }, + "original": { + "owner": "saber-hq", + "repo": "saber-overlay", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index e073cf8..6b8e001 100644 --- a/flake.nix +++ b/flake.nix @@ -6,15 +6,16 @@ rust-overlay.url = "github:oxalica/rust-overlay"; rust-overlay.inputs.nixpkgs.follows = "nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; + goki-cli.url = "github:GokiProtocol/goki-cli"; }; - outputs = { self, nixpkgs, rust-overlay, flake-utils, ... }: + outputs = { self, nixpkgs, rust-overlay, flake-utils, goki-cli }: let rustOverlay = import rust-overlay; supportedSystems = flake-utils.lib.defaultSystems; - overlayBasic = import ./.; + overlayBasic = import ./overlay.nix; overlayWithRust = final: prev: (nixpkgs.lib.composeExtensions rustOverlay overlayBasic) final prev; @@ -22,36 +23,23 @@ let pkgs = import nixpkgs { inherit system; - overlays = [ overlayWithRust ]; + overlays = [ + goki-cli.overlays.default + overlayWithRust + ]; }; env = import ./env.nix { inherit pkgs; }; in { - inherit (pkgs) saberPackages; - packages = (flake-utils.lib.flattenTree pkgs.saberPackages) - // (with pkgs.saberPackages; { - solana-1_7-basic = solana-1_7.solana-basic; - solana-1_7-full = solana-1_7.solana-full; - - solana-1_8-basic = solana-1_8.solana-basic; - solana-1_8-full = solana-1_8.solana-full; - - solana-1_9-basic = solana-1_9.solana-basic; - solana-1_9-full = solana-1_9.solana-full; - - solana-1_10-basic = solana-1_10.solana-basic; - solana-1_10-full = solana-1_10.solana-full; - - solana-basic = solana.solana-basic; - solana-full = solana.solana-full; - }); - devShell = import ./shell.nix { inherit pkgs; }; - defaultPackage = env; + packages = pkgs.saber; + devShells = { + default = import ./shell.nix { inherit pkgs; }; + }; }); in { - overlay = overlayWithRust; overlays = { + default = overlayWithRust; basic = overlayBasic; withRust = overlayWithRust; }; diff --git a/overlay.nix b/overlay.nix new file mode 100644 index 0000000..30a43d0 --- /dev/null +++ b/overlay.nix @@ -0,0 +1,25 @@ +final: prev: +let + mkRust = rust: { + inherit rust; + rustPlatform = prev.recurseIntoAttrs (prev.makeRustPlatform { + rustc = rust; + cargo = rust; + }); + }; + rustNightly = mkRust prev.rust-bin.nightly."2022-05-21".minimal; + rustStable = mkRust prev.rust-bin.stable."1.61.0".minimal; + saberPackages = (import ./packages { + inherit rustNightly rustStable; + pkgs = prev; + }); + + packages = saberPackages // (with saberPackages; { + inherit (prev) goki-cli; + }); +in +packages // { + saber = packages // { + default = import ./env.nix { pkgs = prev // packages; }; + }; +} diff --git a/packages/anchor/default.nix b/packages/anchor/default.nix index 0fafe45..ce7fba6 100644 --- a/packages/anchor/default.nix +++ b/packages/anchor/default.nix @@ -49,24 +49,32 @@ rec { cargoHash = "sha256-tLKR19fUEPtYJA7s0kjA7F8S+0tB/viu2Fg1gYc0qaY="; cargoPatches = [ ./cargo-0.24.0.patch ]; }; + anchor-0_24 = anchor-0_24_2; + anchor-0_23_0 = makeAnchorPackage { version = "0.23.0"; srcHash = "sha256-P9cnFkHK3avjH/z4ptAkeZ8gG5hhi19CfbuvAJvZKo0="; cargoHash = "sha256-X5wPDeUdNR2nNcOvoSdXwOT2K7KZLU/hCj4yCqkXrVg="; cargoPatches = [ ./cargo-0.23.0.patch ]; }; + anchor-0_23 = anchor-0_23_0; + anchor-0_22_0 = makeAnchorPackage { version = "0.22.0"; srcHash = "sha256-uUDBTDss6cX7+v9Y9ttlp77PgeH0DQW+zluT6A8/il8="; cargoHash = "sha256-v+7C+H1fvOByTT8yOz9j9R2ThrVerQq/oaQrHnSHZAc="; cargoPatches = [ ./cargo-0.22.0.patch ]; }; + anchor-0_22 = anchor-0_22_0; + anchor-0_21_0 = makeAnchorPackage { version = "0.21.0"; srcHash = "sha256-JnW8hpor1RldWQJDcRdKbJk1jgD6SoDb23PVfR+IKBk="; cargoHash = "sha256-VNrnfaOY8UvxnOexm7kH1b97zqKguxqxoK6GbgdHrp4="; cargoPatches = [ ./cargo-0.21.0.patch ]; }; + anchor-0_21 = anchor-0_21_0; + anchor-0_20_1 = makeAnchorPackage { version = "0.20.1"; srcHash = "sha256-KPz1mZWcNmgQmw/wR99zTjbsjvwY3xlX+SGKKShFJ8U="; @@ -79,12 +87,16 @@ rec { cargoHash = "sha256-WeMXs3Y/HV0F/AjcdMrcHbfwehHlaj24mx5T69pV9YQ="; cargoPatches = [ ./cargo-0.20.0.patch ]; }; + anchor-0_20 = anchor-0_20_1; + anchor-0_19_0 = makeAnchorPackage { version = "0.19.0"; srcHash = "sha256-mQJJew66Xfj1MGI2u2iRmy3fsYqeaBXJq/S6QyHygqM="; cargoHash = "sha256-nnQTAoJpfX96eSJf2sELB7m34lwsPJmbt5vA/QN7f58="; cargoPatches = [ ./cargo-0.19.0.patch ]; }; + anchor-0_19 = anchor-0_19_0; + anchor-0_18_2 = makeAnchorPackage { version = "0.18.2"; srcHash = "sha256-q7Z5RFnj+pvAHitLU8A6EP8Iwqqradf5jOnZf7GiQHM="; @@ -97,32 +109,44 @@ rec { cargoHash = "sha256-rCr7J6DHaMbnMsz7C6JkKz7o8sKDqNYa5VDzUhbKGoE="; cargoPatches = [ ./cargo-0.18.0.patch ]; }; + anchor-0_18 = anchor-0_18_2; + anchor-0_17_0 = makeAnchorPackage { version = "0.17.0"; srcHash = "sha256-jINbIWnE8IlhkRRfidGMp6RlLGpFxvy+hIWQ9CXDtPQ="; cargoHash = "sha256-xKWITDeb2O8K7I5sS/s+AjXsC9oNeHbZGfMfEWbsxX0="; cargoPatches = [ ./cargo-0.17.0.patch ]; }; + anchor-0_17 = anchor-0_17_0; + anchor-0_16_1 = makeAnchorPackage { version = "0.16.1"; srcHash = "sha256-/u/6fX0ho9pjtGqgCro79Nchok8M//Gj60FMU/Hwwqs="; cargoHash = "sha256-LuLj4mlz9P83te+6IffIwvHujU+ZQYueSVE2Czja/s4="; cargoPatches = [ ./cargo-0.16.1.patch ]; }; + anchor-0_16 = anchor-0_16_1; + anchor-0_15_0 = makeAnchorPackage { version = "0.15.0"; srcHash = "sha256-X8omeI/WleNvi1hVbYTSwkkshINgf88wPrNyxNzMMcQ="; cargoHash = "sha256-iETRSWbAAng/rMytCFXdEBfXZ5DLzqfbkc2uv9e/M7g="; }; + anchor-0_15 = anchor-0_15_0; + anchor-0_13_2 = makeAnchorPackage { version = "0.13.2"; srcHash = "sha256-qSEfapJBuQKRUeJAH66WY+ZbXPG1M1KqCgMKtTWUsW0="; cargoHash = "sha256-ZYV93KqtY1L7q6VkzQjA8x1xUSTnWh2rbfQrQH9edbk="; }; + anchor-0_13 = anchor-0_13_2; + anchor-0_12_0 = makeAnchorPackage { version = "0.12.0"; srcHash = "sha256-87Q/mPF/7sLDiT9N1MqjEX5E3dsLJ+oO2iyx9RcsK1g="; cargoHash = "sha256-iaapemx8ZTdeDvDHfCxtrwUlo2U+Sr96EWWODeIMU1w="; }; - anchor = anchor-0_24_2; + anchor-0_12 = anchor-0_12_0; + + anchor = anchor-0_24; } diff --git a/packages/default.nix b/packages/default.nix index f681f76..a55deba 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -3,7 +3,7 @@ let darwinPackages = pkgs.lib.optionals pkgs.stdenv.isDarwin (with pkgs.darwin.apple_sdk.frameworks; ([ IOKit Security CoreFoundation AppKit ] - ++ (pkgs.lib.optionals pkgs.stdenv.isAarch64 [ System ]))); + ++ (pkgs.lib.optionals pkgs.stdenv.isAarch64 [ pkgs.darwin.Libsystem ]))); anchorPackages = import ./anchor { inherit (rustStable) rustPlatform; inherit (pkgs) lib pkgconfig openssl stdenv udev fetchFromGitHub; @@ -11,8 +11,25 @@ let }; solanaPackages = (import ./solana { inherit pkgs rustStable darwinPackages; }); + + solanaFlattened = with solanaPackages; { + solana-1_7-basic = solana-1_7.solana-basic; + solana-1_7-full = solana-1_7.solana-full; + + solana-1_8-basic = solana-1_8.solana-basic; + solana-1_8-full = solana-1_8.solana-full; + + solana-1_9-basic = solana-1_9.solana-basic; + solana-1_9-full = solana-1_9.solana-full; + + solana-1_10-basic = solana-1_10.solana-basic; + solana-1_10-full = solana-1_10.solana-full; + + solana-basic = solana.solana-basic; + solana-full = solana.solana-full; + }; in -anchorPackages // solanaPackages // rec { +anchorPackages // solanaFlattened // rec { spl-token-cli = pkgs.callPackage ./spl-token-cli.nix { inherit (rustStable) rustPlatform; inherit (pkgs) lib clang llvm pkgconfig openssl zlib udev stdenv fetchCrate; @@ -44,6 +61,8 @@ anchorPackages // solanaPackages // rec { meta.description = "Various CLI tools commonly used in development."; paths = [ + goki-cli + cargo-workspaces cargo-expand cargo-deps diff --git a/packages/solana/default.nix b/packages/solana/default.nix index 24eb563..14b1bd2 100644 --- a/packages/solana/default.nix +++ b/packages/solana/default.nix @@ -15,7 +15,15 @@ rec { solana-basic = "sha256-qsY1/xk90gQ3fQtGwdkPGDWYAHR3CttJ7r692e1Mpno="; }; }; - solana-1_7 = solana-1_7_14; + solana-1_7_17 = mkSolana { + version = "1.7.17"; + githubSha256 = "sha256-PSAalxB9pHFHoUfw5UvpGWqmURT/3R3jK6PdMQoiDXc="; + cargoHashes = { + solana-full = "sha256-Gbf0lpMmhEv//uRWWOBXbwm0FBueD/kK6k3Cljxc0Gk="; + solana-basic = "sha256-J/Wvbp50cUDw07eYNOLniE5N8zIQ/0iE6pWhSsuIORc="; + }; + }; + solana-1_7 = solana-1_7_17; solana-1_8_12 = mkSolana { version = "1.8.12"; @@ -25,7 +33,15 @@ rec { solana-basic = "sha256-h6uqKCTrWJz/83HP5VhMShvcZQn6IVUaRNpnbGUnXTk="; }; }; - solana-1_8 = solana-1_8_12; + solana-1_8_16 = mkSolana { + version = "1.8.16"; + githubSha256 = "sha256-bU76hCsKlPCcTvEFJh95CIEzz47QlmU4mpFZXpP/erc="; + cargoHashes = { + solana-full = "sha256-E6K/kb2ScClo+BpJJLrYvB6omQcPhNY/hizINlNkCWk="; + solana-basic = "sha256-pGqt30UivScwsNnmdTfqGajCSmB6hCrk7SJgUnC9iHg="; + }; + }; + solana-1_8 = solana-1_8_16; solana-1_9_9 = mkSolana { version = "1.9.9"; @@ -43,7 +59,15 @@ rec { solana-basic = "sha256-b7QeAsFvwLfvFlHvD+YA2R0TCEdkaD9VBjPj8xn/Eio="; }; }; - solana-1_9 = solana-1_9_12; + solana-1_9_22 = mkSolana { + version = "1.9.22"; + githubSha256 = "sha256-hdB/iKCMZqFo9kUWSxVZfqjJ7HH6qj1jRqcMd5ZQf7M="; + cargoHashes = { + solana-full = "sha256-w1Tcn1nZDDWcHfVUlemLYAKuDWHlIhHKCk/EOP4auRI="; + solana-basic = "sha256-ZqCnksil7mP8ucW+zgSzYZYAuomZEr+F9jK0IZojZsk="; + }; + }; + solana-1_9 = solana-1_9_22; solana-1_10_0 = mkSolana { version = "1.10.0"; @@ -53,7 +77,15 @@ rec { solana-basic = "sha256-y4q4MRnvThrfloXt7WkDO8/YIl81QtC1vgVdpjjXNWU="; }; }; - solana-1_10 = solana-1_10_0; + solana-1_10_17 = mkSolana { + version = "1.10.17"; + githubSha256 = "sha256-iiBbmpiNGow6vfKvkMv+1vNPRk/GKCoehCdbbtn8MU4="; + cargoHashes = { + solana-full = "sha256-W/wJT/Og0AwyZyywxtuGm7888fvmcE4UOWC4LE6Iqwk="; + solana-basic = "sha256-IFOEP2AZ2mLvlOGc4J9I9HHJuTzRd4aeythPPO5+8Ks="; + }; + }; + solana-1_10 = solana-1_10_17; - solana = solana-1_9; + solana = solana-1_10; } diff --git a/packages/solana/solana-packages.nix b/packages/solana/solana-packages.nix index 37102db..5e44a3f 100644 --- a/packages/solana/solana-packages.nix +++ b/packages/solana/solana-packages.nix @@ -4,9 +4,7 @@ let (pkgs.callPackage ./solana.nix ({ inherit (rustStable) rustPlatform; inherit (pkgs) - lib pkgconfig udev openssl zlib fetchFromGitHub stdenv protobuf rustfmt - perl; - inherit (pkgs.llvmPackages_12) clang llvm libclang; + lib pkg-config udev openssl zlib fetchFromGitHub stdenv protobuf rustfmt; inherit darwinPackages; inherit version githubSha256; } // args)); @@ -31,6 +29,8 @@ in "solana-faucet" "solana-stake-accounts" "solana-tokens" + + "solana-test-validator" # solana-test-validator fails with System.framework not found error ]; cargoSha256 = cargoHashes.solana-basic; diff --git a/packages/solana/solana.nix b/packages/solana/solana.nix index 64c5246..1639238 100644 --- a/packages/solana/solana.nix +++ b/packages/solana/solana.nix @@ -2,13 +2,10 @@ , lib , validatorOnly ? false , rustPlatform -, clang -, llvm -, pkgconfig +, pkg-config , udev , openssl , zlib -, libclang , fetchFromGitHub , stdenv , darwinPackages @@ -17,7 +14,6 @@ , cargoSha256 , version , githubSha256 -, perl , # Taken from https://github.com/solana-labs/solana/blob/master/scripts/cargo-install-all.sh#L84 solanaPkgs ? [ "solana" @@ -67,24 +63,24 @@ rustPlatform.buildRustPackage rec { cargoBuildFlags = builtins.map (n: "--bin=${n}") solanaPkgs; - # weird errors. see https://github.com/NixOS/nixpkgs/issues/52447#issuecomment-852079285 - LIBCLANG_PATH = "${libclang.lib}/lib"; - BINDGEN_EXTRA_CLANG_ARGS = - "-isystem ${libclang.lib}/lib/clang/${lib.getVersion clang}/include"; - - nativeBuildInputs = [ clang llvm pkgconfig protobuf rustfmt perl ]; + nativeBuildInputs = [ pkg-config protobuf rustfmt ]; buildInputs = - ([ openssl zlib libclang ] ++ (lib.optionals stdenv.isLinux [ udev ])) + ([ openssl zlib ] ++ (lib.optionals stdenv.isLinux [ udev ])) ++ darwinPackages; strictDeps = true; # this is too slow doCheck = false; + # Needed to get openssl-sys to use pkg-config. + OPENSSL_NO_VENDOR = 1; + OPENSSL_LIB_DIR = "${lib.getLib openssl}/lib"; + OPENSSL_DIR = "${lib.getDev openssl}"; + meta = with lib; { - homepage = "https://solana.com/"; - description = - "Solana is a decentralized blockchain built to enable scalable, user-friendly apps for the world."; + description = "Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces. "; + homepage = "https://solana.com"; + license = licenses.asl20; platforms = platforms.unix ++ platforms.darwin; }; }