solana-agave: init at 2.1.21 (#394782)

This commit is contained in:
Pol Dellaiera
2026-02-10 16:34:10 +00:00
committed by GitHub
3 changed files with 158 additions and 0 deletions
+6
View File
@@ -27065,6 +27065,12 @@
githubId = 67477750;
name = "Tomkoid";
};
TomMD = {
name = "Thomas M. DuBuisson";
email = "thomas.dubuisson@gmail.com";
github = "TomMD";
githubId = 137806;
};
Tommimon = {
name = "Tommaso Montanari";
email = "sefymw7q8@mozmail.com";
@@ -0,0 +1,49 @@
diff --git a/Cargo.lock b/Cargo.lock
index 0194c34ed2..0d58655f70 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1419,14 +1419,14 @@ dependencies = [
[[package]]
name = "crossbeam-epoch"
-version = "0.9.5"
-source = "git+https://github.com/anza-xyz/crossbeam?rev=fd279d707025f0e60951e429bf778b4813d1b6bf#fd279d707025f0e60951e429bf778b4813d1b6bf"
+version = "0.9.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa"
dependencies = [
+ "autocfg",
"cfg-if 1.0.0",
"crossbeam-utils",
- "lazy_static",
- "memoffset 0.6.4",
- "scopeguard",
+ "memoffset 0.9.0",
]
[[package]]
@@ -3118,15 +3118,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "memoffset"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
-dependencies = [
- "autocfg",
-]
-
[[package]]
name = "memoffset"
version = "0.7.1"
diff --git a/Cargo.toml b/Cargo.toml
index 2ff2094d67..a3ace4459a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -665,4 +665,4 @@
[patch.crates-io]
# for details, see https://github.com/anza-xyz/crossbeam/commit/fd279d707025f0e60951e429bf778b4813d1b6bf
-crossbeam-epoch = { git = "https://github.com/anza-xyz/crossbeam", rev = "fd279d707025f0e60951e429bf778b4813d1b6bf" }
+# crossbeam-epoch = { git = "https://github.com/anza-xyz/crossbeam", rev = "fd279d707025f0e60951e429bf778b4813d1b6bf" }
+103
View File
@@ -0,0 +1,103 @@
{
lib,
stdenv,
buildPackages,
fetchFromGitHub,
rustPlatform,
rustfmt,
installShellFiles,
pkg-config,
apple-sdk_15,
udev,
openssl,
libz,
protobuf,
cmake,
gnumake,
clang,
llvm,
llvmPackages,
rocksdb,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "solana-agave";
version = "2.3.12";
src = fetchFromGitHub {
owner = "anza-xyz";
repo = "agave";
tag = "v${finalAttrs.version}";
hash = "sha256-25UgiC5jAnlNE8Z7WrQRIviCuFp4zg57ddYA4h0qJ6U=";
};
cargoHash = "sha256-SVngabz9mrYNn7DlL7Rh7llvO4GmJdt5vpXVcjwqtNg=";
# For the same reason as discussed in solana-cli derivation (crossbeam softlink), the no_atomic file is missing
# and either must somehow be rendered unneeded (using an upstream package) or replaced. A cleaner, non-behavior-changing,
# solution would be to commit the file to the repo fork (replacing the softlink).
cargoPatches = [
./crossbeam-epoch.patch
];
nativeBuildInputs = [
installShellFiles
protobuf
cmake
gnumake
clang
llvm
llvmPackages.bintools
openssl.dev
pkg-config
rustfmt
];
buildInputs = [
openssl
libz
rustPlatform.bindgenHook
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ apple-sdk_15 ]
++ lib.optionals stdenv.hostPlatform.isLinux [ udev ];
doInstallCheck = false;
env = {
# If set, always finds OpenSSL in the system, even if the vendored feature is enabled.
OPENSSL_NO_VENDOR = 1;
# Agave uses deny(warnings) which breaks when nixpkgs updates rustc.
# Cap lints to warnings so the build doesn't fail on new compiler lints.
RUSTFLAGS = "--cap-lints warn";
# Use the pre-built rocksdb from nixpkgs instead of compiling from source.
# This avoids GCC 13+ compatibility issues with missing <cstdint> includes.
ROCKSDB_LIB_DIR = "${rocksdb}/lib";
};
# Disabling tests because:
#
# ```
# running 3 tests
# test args::tests::test_max_genesis_archive_unpacked_size_constant ... ok
# test bigtable::tests::test_missing_blocks ... ok
# error: test failed, to rerun pass `-p agave-ledger-tool --bin agave-ledger-tool`
#
# Caused by:
# process didn't exit successfully: `/build/source/target/x86_64-unknown-linux-gnu/release/deps/agave_ledger_tool-b8aca978c218ed51` (signal: 4, SIGILL: illegal instruction)
# ```
#
# Almost certainly caused by the ledger-tool test calling `Command::cargo_bin` which assumes a good bit about the current environment.
doCheck = false;
meta = {
description = "Solana Network Validator";
homepage = "https://github.com/anza-xyz/agave";
changelog = "https://github.com/anza-xyz/agave/releases/tag/${finalAttrs.version}";
license = with lib.licenses; [
asl20
];
maintainers = with lib.maintainers; [
TomMD
];
mainProgram = "agave";
};
})