You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
os/v3/puppy: a build root that carries the previous version of the ownership patch refuses every build (the guard asks for the comment, not the call) #975
So on any woof-CE clone or build root reused from an earlier cycle the guard matches, the sed is skipped, and the next
assertion correctly refuses. This is not upstream drift, which is what the message says:
$ git -C ~/wt/1bit-puppy-build11/woof-CE status --porcelain woof-code/3builddistro
M woof-code/3builddistro
$ grep -c '1bit: ownership before pack' ~/wt/1bit-puppy-build11/woof-CE/woof-code/3builddistro
2
Both trees on this box (~/wt/1bit-puppy-build11/woof-CE, the clone, and ~/wt/1bit-puppy-build/woof-CE, the container's
copy) are in that state, so every build refuses until one of them is cleaned by hand — and the hand-clean is the thing
the patch was supposed to make unnecessary.
It fails closed, which is why it is not a shipped defect: the refusal is right, the diagnosis and the cure are not. The
fragile part is that the patch tests for its own history; a future woof-CE refactor that keeps the comment while moving the
call would keep a bare chown besidefix-ownership.sh and only the call-count check would catch it.
Fix
guard on the call (grep -q 'sh /recipe/fix-ownership.sh'), so the question is "is this tree patched?" and not "was
it ever touched?";
before inserting, drop every line carrying the marker comment — that line is a previous version of this patch;
assert the call count is exactly 2, and refuse any bare chown -R of rootfs-complete / sandbox3/devx that is still
beside the calls.
Reproducer (~/wt/os3i/c21-ownpatch-repro.sh before.sh after.sh) runs the real extracted patch text against scratch
copies of both tree states:
arm
tree
result
A before
carries the cycle-16 patch
rc=1, calls=0 marker=2 barechown=2 — the failure
B after
same tree
rc=0, calls=2 marker=2 barechown=0, lines are sh /recipe/fix-ownership.sh …
C after ×2
same tree
unchanged: idempotent
D after
clean upstream file
rc=0, calls=2 marker=2 barechown=0 — the normal path is untouched
Activity