From 4d9c8a2626dbfef7fa419508e7ccfb43c8733011 Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Tue, 21 Jul 2026 03:01:53 +1000 Subject: [PATCH] G-102 follow-up: drop echo banner steps - scrubbed-env transitive failure The five decorative 'echo --Installing package X--' addSystemCommand steps (2024-era) spawned 'echo' as a program - a cmd BUILTIN that only resolved when a coreutils echo.exe happened to be on PATH. In the PATH-scrubbed bootstrap environment the spawns failed and took the tm installs, install-libraries and (transitively) make-zipfs down with them - the reason the zip-wrapped shells never landed in scrubbed composite runs while every package step was green. zig's own step reporting makes the banners redundant. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com --- src/buildsuites/suite_tcl90/build905.zig | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/buildsuites/suite_tcl90/build905.zig b/src/buildsuites/suite_tcl90/build905.zig index ce47d15f..ac52e356 100644 --- a/src/buildsuites/suite_tcl90/build905.zig +++ b/src/buildsuites/suite_tcl90/build905.zig @@ -1954,7 +1954,10 @@ pub fn build(b: *std.Build) !void { install_libraries.dependOn(&cookiejar_install.step); const tm_http_install = b.addInstallFileWithDir(b.path(tcl_source_folder ++ "/library/http/http.tcl"), .prefix, b.pathJoin(&.{ module_install_dir_rel, tcl_dot_version, "http-2.10.2.tm" })); - tm_http_install.step.dependOn(&b.addSystemCommand(&.{ "echo", "\n--Installing package http 2.10.0 as a Tcl Module--" }).step); + //(G-102: the former decorative 'echo --Installing package X--' banner steps were + //removed - 'echo' is a cmd builtin, and spawning it as a program only worked when + //a coreutils echo.exe happened to be on PATH; in a scrubbed environment the five + //banner spawns failed and took install-libraries down transitively.) install_libraries.dependOn(&tm_http_install.step); //opt/*.tcl @@ -1978,19 +1981,15 @@ pub fn build(b: *std.Build) !void { install_libraries.dependOn(&pkgindex_install.step); const tm_msgcat_install = b.addInstallFileWithDir(b.path(tcl_source_folder ++ "/library/msgcat/msgcat.tcl"), .prefix, b.pathJoin(&.{ module_install_dir_rel, tcl_dot_version, "msgcat-1.7.1.tm" })); - tm_msgcat_install.step.dependOn(&b.addSystemCommand(&.{ "echo", "\n--Installing package msgcat 1.7.1 as a Tcl Module--" }).step); install_libraries.dependOn(&tm_msgcat_install.step); const tm_tcltest_install = b.addInstallFileWithDir(b.path(tcl_source_folder ++ "/library/tcltest/tcltest.tcl"), .prefix, b.pathJoin(&.{ module_install_dir_rel, tcl_dot_version, "tcltest-2.5.11.tm" })); - tm_tcltest_install.step.dependOn(&b.addSystemCommand(&.{ "echo", "\n--Installing package tcltest 2.5.8 as a Tcl Module--" }).step); install_libraries.dependOn(&tm_tcltest_install.step); const tm_platform_install = b.addInstallFileWithDir(b.path(tcl_source_folder ++ "/library/platform/platform.tcl"), .prefix, b.pathJoin(&.{ module_install_dir_rel, tcl_dot_version, "platform-1.1.1.tm" })); - tm_platform_install.step.dependOn(&b.addSystemCommand(&.{ "echo", "\n--Installing package platform 1.0.19 as a Tcl Module--" }).step); install_libraries.dependOn(&tm_platform_install.step); const tm_shell_install = b.addInstallFileWithDir(b.path(tcl_source_folder ++ "/library/platform/shell.tcl"), .prefix, b.pathJoin(&.{ module_install_dir_rel, tcl_dot_version, "platform", "shell-1.1.4.tm" })); - tm_shell_install.step.dependOn(&b.addSystemCommand(&.{ "echo", "\n--Installing package platform::shell 1.1.4 as a Tcl Module--" }).step); install_libraries.dependOn(&tm_shell_install.step); const encodings_install = b.addInstallDirectory(.{