Files
erofs-freebsd-out-tree/docs/pre8-loader-history-correction.md
T
2026-08-13 10:44:59 +02:00

2.9 KiB

Pre8 Loader History Correction

Scope

This record corrects the commit organization of the Pre8 codec configuration loader moves. It does not report a source behavior defect and does not rewrite, amend, squash, or hide any pushed commit.

The affected historical commits are:

dd7f2483d468ec4397a863c7a871391ea1bc2c4c  LZMA loader move
0dba0ea223bee8626b8cd3371562f87ed975a99f  DEFLATE loader move
7c47f6d                                    ZSTD loader move
3d28d96fc48753231b1899fce6189e586cf988c6  xattr iterator change

Recorded Results

Each of the three loader commits restores its direct parent's complete tree when reverted at the commit where it was introduced. Those direct-parent revert checks are PASS.

When each commit is reverted independently from final functional commit 3d28d96, the results are:

Commit Final-HEAD independent revert Result
dd7f248 Unmerged conflict in decompressor.c; internal.h auto-merged as a staged modification FAIL
0dba0ea Unmerged conflict in decompressor.c; internal.h auto-merged as a staged modification FAIL
7c47f6d Applies without conflict PASS
3d28d96 Applies without conflict PASS

The two failures are caused by overlapping patch context in decompressor.c. In both cases, internal.h is automatically merged as a staged modification, not left as an unmerged conflict. This is a commit organization problem, not evidence of a codec implementation or xattr behavior problem.

The dd7f248 and 0dba0ea final-HEAD results remain permanently recorded as FAIL. The 7c47f6d result remains PASS, but that commit is superseded with the other two loader commits so the loader responsibility change has one atomic acceptance unit.

Correction Strategy

The three split loader commits will be reverted in reverse order without rewriting history. Their exact combined five-path change will then be replayed as one atomic replacement commit. The replacement is limited to:

repo-pre-8/src/decompressor.c
repo-pre-8/src/decompressor_lzma.c
repo-pre-8/src/decompressor_deflate.c
repo-pre-8/src/decompressor_zstd.c
repo-pre-8/src/internal.h

Commit 3d28d96 remains accepted and is not superseded. Its xattr.c content must remain unchanged through the correction.

The new acceptance objects are:

  1. the atomic replacement loader commit, which must restore its direct parent exactly when reverted and must independently revert from final HEAD without affecting xattr content; and
  2. existing xattr commit 3d28d96, which must independently revert from final HEAD without affecting the final loader layout.

Validation Status

This document records static Git evidence only. No build or QEMU test has been run for this history correction. Build and runtime validation remain NOT RUN until later Pre8 validation produces fresh evidence from the final DUT.