authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-10-19 17:46:04-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-10-19 17:46:04-07:00
logffa20b6deb0aa9f573be3c85538b86d0d4f0cdf4
tree73dc49145b8165fb8a85ba2c3a94553ea6178f6b
parent4fc40330a4f59f57cfb93e09e56291def147d20d

Fetch: only use name for naked packages if version specified


1 files changed, 8 insertions(+), 5 deletions(-)

lib/compiler/Maker/Fetch.zig+8-5
......@@ -861,12 +861,15 @@ pub fn computedPackageHash(f: *const Fetch) Package.Hash {
861861 const version: []const u8 = std.mem.print(&version_buffer, "{f}", .{man.version}) catch &version_buffer;
862862 return .init(f.computed_hash.digest, man.name, version, man.id, saturated_size);
863863 }
864 // Previous version of Zig did not use f.name to affect the package hash, so
865 // allow the user to opt in by only doing that if they specify a version.
864866 var version_buffer: [Manifest.max_version_len]u8 = undefined;
865 const v: []const u8 = if (f.parent_specified_version_tok != .none)
866 std.mem.print(&version_buffer, "{f}", .{f.parent_specified_version}) catch unreachable
867 else
868 "V";
869 return .init(f.computed_hash.digest, f.name, v, 0xffff, saturated_size);
867 if (f.parent_specified_version_tok != .none) {
868 const v = std.mem.print(&version_buffer, "{f}", .{f.parent_specified_version}) catch unreachable;
869 return .init(f.computed_hash.digest, f.name, v, 0xffff, saturated_size);
870 } else {
871 return .init(f.computed_hash.digest, "N", "V", 0xffff, saturated_size);
872 }
870873}
871874
872875/// `computeHash` gets a free check for the existence of `build.zig`, but when