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