|
47 | 47 | sha256 = if pkgs.stdenv.isDarwin then
|
48 | 48 | "sha256-upgxwAEvh11+IKVQ1FaZGlx8Z8Ps0CEScsbu4Hv3WH0=" # v2.0.22 macOS ARM64 hash
|
49 | 49 | else
|
50 |
| - "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; # TODO: Get correct Linux hash with: nix store prefetch-file --json https://github.com/anza-xyz/agave/releases/download/v2.0.22/solana-release-x86_64-unknown-linux-gnu.tar.bz2 |
| 50 | + "sha256-kDXSnCXZHYSQt18AtnuBHcqyK9wxEemNx9on7CKW328="; # v2.0.22 Linux x86_64 hash |
51 | 51 | };
|
52 | 52 |
|
53 | 53 | # Platform tools source
|
|
59 | 59 | sha256 = if pkgs.stdenv.isDarwin then
|
60 | 60 | "sha256-eZ5M/O444icVXIP7IpT5b5SoQ9QuAcA1n7cSjiIW0t0=" # v1.48 macOS ARM64 hash
|
61 | 61 | else
|
62 |
| - "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; # TODO: Get correct Linux hash with: nix store prefetch-file --json https://github.com/anza-xyz/platform-tools/releases/download/v1.48/platform-tools-linux-x86_64.tar.bz2 |
| 62 | + "sha256-qdMVf5N9X2+vQyGjWoA14PgnEUpmOwFQ20kuiT7CdZc="; # v1.48 Linux x86_64 hash |
63 | 63 | };
|
64 | 64 |
|
65 | 65 | nativeBuildInputs = with pkgs; [
|
|
82 | 82 | darwin.apple_sdk.frameworks.Security
|
83 | 83 | darwin.apple_sdk.frameworks.SystemConfiguration
|
84 | 84 | ];
|
| 85 | + |
| 86 | + # Disable stripping to avoid issues with text files and scripts |
| 87 | + dontStrip = true; |
85 | 88 |
|
86 | 89 | unpackPhase = ''
|
87 | 90 | runHook preUnpack
|
@@ -156,30 +159,20 @@ let
|
156 | 159 | # Fix broken symlinks
|
157 | 160 | find $out -type l ! -exec test -e {} \; -delete 2>/dev/null || true
|
158 | 161 |
|
159 |
| - # Create wrapper scripts for key tools |
| 162 | + # Use wrapProgram to wrap key tools with proper environment |
160 | 163 | for tool in solana solana-keygen solana-test-validator; do
|
161 | 164 | if [ -f "$out/bin/$tool" ]; then
|
162 |
| - # Backup original binary |
163 |
| - mv "$out/bin/$tool" "$out/bin/.$tool-original" |
164 |
| - |
165 |
| - # Create wrapper script |
166 |
| - cat > "$out/bin/$tool" << EOF |
167 |
| -#!/bin/bash |
168 |
| -export PLATFORM_TOOLS_DIR="$out/platform-tools" |
169 |
| -export SBF_SDK_PATH="$out/platform-tools" |
170 |
| -export PATH="$out/platform-tools/rust/bin:$out/platform-tools/llvm/bin:\$PATH" |
171 |
| -exec "$out/bin/.$tool-original" "\$@" |
172 |
| -EOF |
173 |
| - chmod +x "$out/bin/$tool" |
| 165 | + wrapProgram "$out/bin/$tool" \ |
| 166 | + --set PLATFORM_TOOLS_DIR "$out/platform-tools" \ |
| 167 | + --set SBF_SDK_PATH "$out/platform-tools" \ |
| 168 | + --prefix PATH : "$out/platform-tools/rust/bin" \ |
| 169 | + --prefix PATH : "$out/platform-tools/llvm/bin" |
174 | 170 | fi
|
175 | 171 | done
|
176 | 172 |
|
177 | 173 | # Create special wrapper for cargo-build-sbf that bypasses platform tools installation
|
178 | 174 | if [ -f "$out/bin/cargo-build-sbf" ]; then
|
179 |
| - # Backup original binary |
180 |
| - mv "$out/bin/cargo-build-sbf" "$out/bin/.cargo-build-sbf-original" |
181 |
| - |
182 |
| - # Create wrapper script that uses cargo directly with SBF target |
| 175 | + # Create a custom script that uses cargo directly with SBF target |
183 | 176 | cat > "$out/bin/cargo-build-sbf" << EOF
|
184 | 177 | #!/bin/bash
|
185 | 178 | export PLATFORM_TOOLS_DIR="$out/platform-tools"
|
|
0 commit comments