Skip to content

The trap of reading product.mk from the wrong tkldev - #13

Merged
marcos-mendez merged 2 commits into
mainfrom
docs/trap-wrong-tkldev
Sep 29, 2026
Merged

marcos-mendez merged 2 commits into
mainfrom
docs/trap-wrong-tkldev

Conversation

@marcos-mendez

@marcos-mendez marcos-mendez commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Closes #12.

Two machines in this project answer to the hostname tkldev, and they run
different fab. Reading /usr/share/fab/product.mk on the nearer one answers a
question about the other, and the answer is internally coherent, cites a real
file at a real path and survives a review, because the facts the work rests on
get checked and the sentence around them does not.

It cost two review rounds on Keel-Linux/keel-core#9 on 2026-09-28. The build
order written into conf.d/main, COVERAGE.md and a commit message put the
common removelists before the units, read faithfully from the container's file.
The correction then named fab 1.1.1+keel1, the one release that does not carry
the order it was describing, and was wrong a second time in the same way.

Measured, and the entry carries the table so the check is one line rather than
an instruction to be careful:

Machine fab product.mk md5 Unit phases
local tkldev container 1.1.1, stock 0657df1a one, after the common removelists
fab 1.1.1+keel1 (b07a733) 1.1.1+keel1 c04cb601 one, after the common removelists, as in stock
build host 1.1.1+keel2 a06bfe03 three, before the common removelists

dpkg-query -W fab and md5sum /usr/share/fab/product.mk on the build host
settle which file a reading came from.

One file, docs/traps.md, one entry, in the form the others use. No decision
note and no number taken.

Two machines in this project answer to the hostname tkldev, the LXC
container on a workstation and the build host, and they run different
fab. Reading share/product.mk on the nearer one answers a question about
the other, and the answer is internally coherent, cites a real file and
survives a review, because the facts the work rests on are checked and
correct while the sentence around them is not.

It cost two review rounds on keel-core#9 on 2026-09-28: the build order
was read from the container, which puts the common removelists before a
single combined unit phase, while the build host has three unit phases
before them. The correction then named fab 1.1.1+keel1, the one release
that does not carry the order being described, so the note was wrong a
second time in the same way.

The entry records the three files with their md5 sums, so the fix is not
an instruction to be careful but a check that takes one line: read it on
the machine that builds, quote the md5 of the file you read, and say
which fab version that is.

Closes #12.
The table said the product.mk of fab 1.1.1+keel1 (b07a733, md5 c04cb601)
has no unit phase. It has one, the stock one: the "apply the product-local
units" block after the common removelists, byte for byte as in v1.1.1. The
only difference from stock is SOURCE_DATE_EPOCH. Measured with
`git show b07a733:share/product.mk` in Keel-Linux/fab and a diff against
v1.1.1.

The md5 values in the table were all rechecked and are right: 0657df1a in the
local tkldev container (fab 1.1.1), c04cb601 at b07a733, a06bfe03 on the
build host (fab 1.1.1+keel2, identical to fab HEAD). The Fix paragraph still
holds: 1.1.1+keel1 does not carry the before-the-removelists order.

The same wrong reading ("no unit phase in it at all") is in a comment on
keel-core#9; the entry repeated it from there.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SfWQScmDZ94KCS5DMYrfe6
@marcos-mendez

Copy link
Copy Markdown
Contributor Author

Fixed in 92fb316: the fab 1.1.1+keel1 row said no unit phase, but b07a733's product.mk has the stock one, after the common removelists (it differs from stock only in SOURCE_DATE_EPOCH). The same wrong reading is in the review comment on keel-core#9.

@marcos-mendez
marcos-mendez merged commit d041621 into main Sep 29, 2026
marcos-mendez added a commit that referenced this pull request Sep 29, 2026
The trap of reading product.mk from the wrong tkldev
@marcos-mendez
marcos-mendez deleted the docs/trap-wrong-tkldev branch September 29, 2026 06:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A build-order reading taken from the wrong tkldev

1 participant