Own directories of a joining module carry setgid, to an engine that takes it (hq ADR 0334 v4)

This commit is contained in:
2026-10-13 00:31:54 +02:00
parent 96e15f8693
commit 1de9bbc448
4 changed files with 29 additions and 11 deletions
+3 -3
View File
@@ -262,8 +262,8 @@ type Rendering struct {
TakenLibraries map[string]bool
LibraryPaths map[string][]string
// RunnerJoinsOwnGroups says this machine's engine puts the tool runner's account in a joining module's own group
// (novox/hq ADR 0334 §2: its statement's contract is link.OwnGroupContract or later); to an older one the
// identity's runner is not sent.
// and takes a directory's setgid mode (novox/hq ADR 0334 §1, §2: its statement's contract is link.OwnGroupContract
// or later); to an older one neither the identity's runner nor the setgid bit is sent.
RunnerJoinsOwnGroups bool
}
@@ -1062,7 +1062,7 @@ func (r Resolution) compose(with Rendering, owner map[string]string,
// And its identity and libraries, where it joins (novox/hq ADR 0328 §4, §5, §10): after the placement's
// owner, which a joining module may not set.
if joins {
if err := joinedInto(copied, m, joined, libPaths); err != nil {
if err := joinedInto(copied, m, joined, libPaths, with.RunnerJoinsOwnGroups); err != nil {
return nil, err
}
}