From 06f350cf7d5a9b0ea73c2afa828e60282d080a64 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 11 Nov 2026 15:42:33 +0100 Subject: crate2nixPackage: check features vs TOML --- pkgs/rust/default.nix | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'pkgs/rust/default.nix') diff --git a/pkgs/rust/default.nix b/pkgs/rust/default.nix index f6c7eb7..c26cf9d 100644 --- a/pkgs/rust/default.nix +++ b/pkgs/rust/default.nix @@ -31,10 +31,15 @@ let resolvedJson = path + "/Cargo.json"; }; - # The checkout's Cargo.lock, to check the JSON plan against. - localLock = path: - lib.optionalAttrs (builtins.pathExists (path + "/Cargo.lock")) { - cargoLock = path + "/Cargo.lock"; + # Checks the JSON plan against the checkout's Cargo.lock and Cargo.toml. + # These come from dir, not src, because cleanCargoSource drops Cargo.lock + # next to a Cargo.json. + planChecks = dir: + lib.optionalAttrs (builtins.pathExists (dir + "/Cargo.lock")) { + cargoLock = dir + "/Cargo.lock"; + } + // lib.optionalAttrs (builtins.pathExists (dir + "/Cargo.toml")) { + cargoToml = dir + "/Cargo.toml"; }; in @@ -78,10 +83,10 @@ in in if explicitPackages ? ${pname} then assert mylib.debug "pkgs/rust: overriding ${pname}.src with ${mylib.pretty dir}"; - hrmPlan explicitPackages.${pname} // callArgs explicitPackages.${pname} // { inherit src; } // localLock dir + hrmPlan explicitPackages.${pname} // callArgs explicitPackages.${pname} // { inherit src; } // planChecks dir else assert mylib.debug "pkgs/rust: automatic package ${pname} from ${mylib.pretty dir}"; - { name = pname; inherit src; } // localLock dir + { name = pname; inherit src; } // planChecks dir ) automaticPackages; -- cgit v1.3.1