|
37 | 37 | ++ pkgs.lib.optionals pkgs.stdenv.isDarwin darwinInputs; |
38 | 38 | in |
39 | 39 | { |
40 | | - defaultPackage = pkgs.rustPlatform.buildRustPackage { |
| 40 | + packages.default = pkgs.rustPlatform.buildRustPackage { |
41 | 41 | pname = cargoToml.package.name; |
42 | 42 | version = workspaceToml.workspace.package.version; |
43 | 43 | src = self; |
44 | 44 |
|
45 | | - cargoLock = { |
46 | | - lockFile = ./Cargo.lock; |
47 | | - outputHashes = { |
48 | | - # Patch required for Windows cross-compilation |
49 | | - # See: https://github.com/nmathewson/crunchy/tree/cross-compilation-fix |
50 | | - "crunchy-0.2.3" = "sha256-CBW3/JuMoNa6MWia6BQo07LQrH5JQbb20vuCqhyFL0Y="; |
51 | | - }; |
| 45 | + cargoLock.lockFile = ./Cargo.lock; |
| 46 | + |
| 47 | + # Pre-fetch rusty_v8 binary to avoid network access during build |
| 48 | + # Map Nix system to rusty_v8 target triple |
| 49 | + RUSTY_V8_ARCHIVE = let |
| 50 | + cargoLock = builtins.fromTOML (builtins.readFile ./Cargo.lock); |
| 51 | + rustyV8Version = (builtins.head (builtins.filter (p: p.name == "v8") cargoLock.package)).version; |
| 52 | + rustyV8Target = { |
| 53 | + "x86_64-linux" = "x86_64-unknown-linux-gnu"; |
| 54 | + "aarch64-linux" = "aarch64-unknown-linux-gnu"; |
| 55 | + "x86_64-darwin" = "x86_64-apple-darwin"; |
| 56 | + "aarch64-darwin" = "aarch64-apple-darwin"; |
| 57 | + }.${system} or (throw "Unsupported system: ${system}"); |
| 58 | + rustyV8Sha256 = { |
| 59 | + "x86_64-linux" = "sha256-chV1PAx40UH3Ute5k3lLrgfhih39Rm3KqE+mTna6ysE="; |
| 60 | + "aarch64-linux" = "sha256-4IivYskhUSsMLZY97+g23UtUYh4p5jk7CzhMbMyqXyY="; |
| 61 | + "x86_64-darwin" = "sha256-1jUuC+z7saQfPYILNyRJanD4+zOOhXU2ac/LFoytwho="; |
| 62 | + "aarch64-darwin" = "sha256-yHa1eydVCrfYGgrZANbzgmmf25p7ui1VMas2A7BhG6k="; |
| 63 | + }.${system}; |
| 64 | + in pkgs.fetchurl { |
| 65 | + url = "https://github.com/denoland/rusty_v8/releases/download/v${rustyV8Version}/librusty_v8_release_${rustyV8Target}.a.gz"; |
| 66 | + sha256 = rustyV8Sha256; |
52 | 67 | }; |
53 | 68 |
|
54 | 69 | nativeBuildInputs = with pkgs; [ |
|
57 | 72 |
|
58 | 73 | buildInputs = with pkgs; [ |
59 | 74 | openssl |
60 | | - xorg.libxcb # Required for xcap screenshot functionality |
| 75 | + libxcb # Required for xcap screenshot functionality |
61 | 76 | dbus # Required for system integration features |
62 | 77 | ] ++ pkgs.lib.optionals pkgs.stdenv.isDarwin darwinInputs; |
63 | 78 |
|
|
98 | 113 | nodejs_24 # 'just' run-ui |
99 | 114 | ripgrep |
100 | 115 | rustfmt |
101 | | - xorg.libxcb |
| 116 | + libxcb |
102 | 117 | dbus |
103 | 118 | yarn # 'just' install-deps |
104 | 119 | ]); |
|
0 commit comments