From 05ae98840be0f0ecdeca42b25469872c67652e96 Mon Sep 17 00:00:00 2001 From: landaudiogo Date: Wed, 6 Aug 2025 14:30:18 +0200 Subject: [PATCH 1/2] Use cargo package `id` instead of generated `id` --- tools.nix | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tools.nix b/tools.nix index 3a867d4d..a0ea30de 100644 --- a/tools.nix +++ b/tools.nix @@ -61,7 +61,7 @@ rec { cp ${vendor.cargoConfig} $out/cargo/config crate_hashes="$out/crate-hashes.json" - echo -n '${builtins.toJSON vendor.extendedHashes}' | jq > "$crate_hashes" + echo -n '${builtins.toJSON vendor.extendedHashes'}' | jq > "$crate_hashes" # Remove last trailing newline, which crate2nix doesn't (yet) include truncate -s -1 "$crate_hashes" @@ -244,6 +244,14 @@ rec { , hashes ? { } }: rec { + packageIdsFile = pkgs.runCommand "package-ids" { nativeBuildInputs = with pkgs; [ cargo jq ]; } '' + mkdir -p "$out/cargo" + export CARGO_HOME=$out/cargo + cp ${cargoConfig} $out/cargo/config + cargo metadata --manifest-path ${crateDir}/Cargo.toml --locked --offline --format-version 1 | jq -r > $out/cargo-metadata.json + ''; + packageIds = builtins.listToAttrs (builtins.map ({name, version, source, id, ...}@package: {name = toPackageId package; value = id;}) (builtins.filter (p: p.source != null) (builtins.fromJSON (builtins.unsafeDiscardStringContext (builtins.readFile "${packageIdsFile}/cargo-metadata.json"))).packages)); + toPackageId = { name, version, source, ... }: "${name} ${version} (${source})"; @@ -289,6 +297,11 @@ rec { extendedHashes = hashes // builtins.listToAttrs (map mkGitHash (packagesByType.git or [ ])); + extendedHashes' = builtins.listToAttrs (builtins.map + (nixId: { name = builtins.getAttr nixId packageIds; value = builtins.getAttr nixId extendedHashes; }) + (builtins.attrNames extendedHashes) + ); + packages = let packagesWithDuplicates = assert builtins.isList locked.package; locked.package; From 5d501869cbe994c7da78d40965fc4eb16a89e9b7 Mon Sep 17 00:00:00 2001 From: landaudiogo Date: Fri, 22 Aug 2025 07:39:11 +0200 Subject: [PATCH 2/2] Format changes --- tools.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tools.nix b/tools.nix index a0ea30de..73c639fe 100644 --- a/tools.nix +++ b/tools.nix @@ -245,12 +245,12 @@ rec { }: rec { packageIdsFile = pkgs.runCommand "package-ids" { nativeBuildInputs = with pkgs; [ cargo jq ]; } '' - mkdir -p "$out/cargo" - export CARGO_HOME=$out/cargo - cp ${cargoConfig} $out/cargo/config - cargo metadata --manifest-path ${crateDir}/Cargo.toml --locked --offline --format-version 1 | jq -r > $out/cargo-metadata.json + mkdir -p "$out/cargo" + export CARGO_HOME=$out/cargo + cp ${cargoConfig} $out/cargo/config + cargo metadata --manifest-path ${crateDir}/Cargo.toml --locked --offline --format-version 1 | jq -r > $out/cargo-metadata.json ''; - packageIds = builtins.listToAttrs (builtins.map ({name, version, source, id, ...}@package: {name = toPackageId package; value = id;}) (builtins.filter (p: p.source != null) (builtins.fromJSON (builtins.unsafeDiscardStringContext (builtins.readFile "${packageIdsFile}/cargo-metadata.json"))).packages)); + packageIds = builtins.listToAttrs (builtins.map ({ name, version, source, id, ... }@package: { name = toPackageId package; value = id; }) (builtins.filter (p: p.source != null) (builtins.fromJSON (builtins.unsafeDiscardStringContext (builtins.readFile "${packageIdsFile}/cargo-metadata.json"))).packages)); toPackageId = { name, version, source, ... }: "${name} ${version} (${source})"; @@ -297,9 +297,9 @@ rec { extendedHashes = hashes // builtins.listToAttrs (map mkGitHash (packagesByType.git or [ ])); - extendedHashes' = builtins.listToAttrs (builtins.map - (nixId: { name = builtins.getAttr nixId packageIds; value = builtins.getAttr nixId extendedHashes; }) - (builtins.attrNames extendedHashes) + extendedHashes' = builtins.listToAttrs (builtins.map + (nixId: { name = builtins.getAttr nixId packageIds; value = builtins.getAttr nixId extendedHashes; }) + (builtins.attrNames extendedHashes) ); packages =