vms-c1f: stage DECNETD.EXE so the DECnet CTERM auth proof hard-gates VAX + Alpha - #1099
Conversation
Alpha proof-run result (rd vms-c1f DONE-VERIFY)Fired alpha-dcl-acceptance (job 102667831318): DECnet CTERM + NETACP isolation sections PASSED CLEAN on the booted qemu-system-alpha rail — An inbound SET HOST to object 42 reached an AUTHENTICATED LOGINOUT via The job's overall exit code is still 1 — but from an unrelated, pre-existing gate: vax-dcl-acceptance is still running (SIMH boot + full battery, up to 180min cap) — will report separately when it concludes. 🤖 Generated with Claude Code |
VAX proof-run result — BOTH target rails now confirmed greenvax-dcl-acceptance (job 102673953977, real SIMH boot of OVMX/NetBSD-vax): DECnet CTERM + NETACP isolation PASSED CLEAN, matching Alpha — DECNETD.EXE cross-built ( The job's overall exit code is still 1, from 7 unrelated, pre-existing battery assertions — all one root cause: the shared battery hardcodes the device name Summary
Two unrelated pre-existing gaps found and filed while proving this (not fixed here): vms-e70 (golden_diff vax-show-cpu has no arch guard, reds alpha-dcl-acceptance) and vms-c8d (battery hardcodes VDA0: device name, wrong on the VAX rail's native DUA0: naming). Ready for the release-conductor to reap. 🤖 Generated with Claude Code |
…proof hard-gates all three rails The DCL/SHOW acceptance battery's DECnet CTERM (vms-f40) and NETACP isolation (vms-9ab) sections were an honest "emits a note, asserts nothing" gap on the VAX and Alpha rails: DECNETD.EXE was in the x86_64 shipped image set and the vax ovmx-images CMake aggregate, but was never staged onto the runtimes those two rails actually boot for acceptance, so the auth proof never ran there. - tests/lab-vax/stage_sysvol.sh: DECNETD.EXE joins the VAX sysvol's BOOT_IMAGES list. - tests/lab-vax/run-boot.sh: build_boot_image_set() (feeds stage_sysvol.sh for the acceptance/sysboot-single runtime) now also cross-builds DECNETD.EXE via `cmake --build --target decnetd_exe` under the vax toolchain, and master_system_volume()'s hard content gate now requires it on the mastered volume. - tools/cross-alpha/build-alpha-bootimage.sh: DECNETD.EXE joins the Alpha boot image's staged SYSEXE set and its mastered-ODS-2 content gate (it already cross-builds via the unconditional vmsdecnet CMake subdirectory; Alpha is Linux-ABI, so it links against libdatalink's AF_PACKET backend, same as x86_64). - distro/Dockerfile.bootable: corrected the stale ~line-636 comment claiming DECNETD.EXE "needs the netbsd-vax userspace port" -- its datalink goes only through src/libdatalink's scs_datalink_* abstraction, which already ships both backends this facility needs. - tests/qemu/lib/dcl_acceptance_battery.sh: flipped both sections' "DECNETD.EXE absent" branch from `note` (asserts nothing) to `bad` (hard FAIL) on all three rails -- the note path is now unreachable in normal operation; if a staging regression ever drops the image off a rail again, the battery reds instead of silently passing (INV-6). Left a scope note that FAL's auth proof (#1096, not yet merged) needs no rail-staging work of its own once it lands. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T4csyFSMUsS8k1D2MgMxk2
…TD.EXE stage-list add stage_sysvol.sh's BOOT_IMAGES now requires DECNETD.EXE (previous commit), which broke two callers that fed it an images-dir without one: - tests/integration/test_sysvol_master_vax.sh: the host ctest synthesizes stand-in .EXE images and never included DECNETD.EXE, so stage_sysvol.sh died "boot image missing from images dir" (caught by CI: Build & Test -> sysvol_master_vax FAILED). Added a DECNETD.EXE stand-in + its round-trip/byte-exact assertions, matching the other four. - tests/lab-vax/run-boot.sh build_vax_images() (the install mode's VAX_IMAGES_DIR, feeding stage_sysvol.sh --distribution for the distribution volume): added DECNETD.EXE to both the `need` list and the copied-out image set from the ovmx-images cmake aggregate, which already builds it. Verified locally: built vmsfs_master via `cmake --build --target vmsfs_master`, ran test_sysvol_master_vax.sh directly -- ALL PASS. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T4csyFSMUsS8k1D2MgMxk2
999ca81 to
f2acd74
Compare
…cated SET HOST (hard-gated x86_64+Alpha+VAX) Version bump (identity + os-release in step, INV-1 SSOT gate). V0.6-13 ships: - DECnet Phase IV file COPY (FAL/DAP): object-17 FAL server + DAP codec + COPY client, authenticated against the real SYSUAF/Purdy with RMS-over-ACP transfer, byte-verified both directions (#1096, vms-8c2). - The authenticated inbound SET HOST -> LOGINOUT proof is now a HARD GATE on all three rails: DECNETD.EXE staged onto the VAX sysvol + Alpha boot image, so DECNETD-CTERM-ACCEPT + DECNETD-ISOLATION assert+PASS on x86_64 + Alpha + VAX — the login frontier is substrate-agnostic (#1099, vms-c1f). - DECnet Phase IV configuration + usage guide (#1097, vms-30e). - Compatibility-register honesty: cluster-dlm evidence repointed off deleted src/vmsscs paths to the executive-resident src/kernel-core, and the 4 cluster-dlm rows whose multi-node /dev/vms proof was retired in #1052 downgraded verified->implemented (#1100/#1101; multi-node proof re-establishment gated in vms-1ee). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018q4jvj6GCkdbYjRvpy7Vwu
Summary
tests/lab-vax/stage_sysvol.sh+run-boot.sh'sbuild_boot_image_set, which now cross-builds it viacmake --target decnetd_exe) and the Alpha boot image (tools/cross-alpha/build-alpha-bootimage.sh), matching how x86_64 already ships it (distro/Dockerfile.bootable).bad, notnote) on all three rails when DECNETD.EXE is absent — closes an INV-6 hole (a shipped facility whose runtime couldn't prove it).distro/Dockerfile.bootablecomment claiming DECNETD.EXE "needs the netbsd-vax userspace port" — its datalink goes only throughsrc/libdatalink'sscs_datalink_*abstraction, which already ships both the AF_PACKET (x86_64/Alpha) and NetBSD bpf(4) (VAX) backends.--fal-accept-test, vms-8c2/vms-8c2: DECnet Phase IV file COPY (FAL/DAP) — object-17 server + DAP codec + COPY client #1096) is not yet in the battery — vms-8c2: DECnet Phase IV file COPY (FAL/DAP) — object-17 server + DAP codec + COPY client #1096 had not merged as of this PR. Left a scope-note comment: once it lands, a FAL section needs no rail-staging work of its own (DECNETD.EXE is already staged everywhere) — just follow the samebad-not-noteshape.Proof-run evidence (rd vms-c1f DONE-VERIFY, ground-source, no mock)
Fired
gh workflow run ci.yml --ref work/vms-c1f(plain workflow_dispatch — runs every heavy-emulator-tier job includingvax-dcl-acceptanceandalpha-dcl-acceptance, which only run onschedule || workflow_dispatch, never onpull_request). Run numbers and the VAX/Alpha CTERM verdict will be added as a PR comment once the run completes (vax-dcl-acceptance: 180min timeout; alpha-dcl-acceptance: 120min timeout).Test plan
vax-dcl-acceptancejob: DECnet CTERM section asserts PASS (real $CREPRC/LOGINOUT/RTAn: auth proof over the booted SIMH VAX rail) — or reds honestly with the exact substrate gap if one exists.alpha-dcl-acceptancejob: same, over qemu-system-alpha.Do not merge — the release-conductor reaps on green.
🤖 Generated with Claude Code
https://claude.ai/code/session_01T4csyFSMUsS8k1D2MgMxk2