Skip to content

! our WIM's LZX and LZMS resources are a dialect of our own (#76) #86

Description

@Hawkynt

#76 left the WIM container and its XPRESS resources readable by both tools that
own the format. The other two compression types are still ours alone:

$ wimlib-imagex verify ours-lzx.wim
[ERROR] Failed to decompress data!
$ 7z t ours-lzx.wim
ERROR: Cannot open the file as [wim] archive

Same for LZMS. Uncompressed, XPRESS and XPRESS-Huffman containers of the same
eight files pass both readers; only these two fail, and they fail in the
decompressor rather than anywhere in the container, which is now known good.

The cause is the same shape as the XPRESS one that #76 fixed: the encoders
round-trip against their own decoders and against nothing else. For LZX that
is now confirmed from two directions, because our LZX cabinets fail
cabextract as well — see the sibling issue. LzxCompressor serves CAB, CHM
and WIM, so one correct implementation settles all three.

LZMS has no other user here; it is WIM-only.

Both are worth doing with the harness #76 established: wimcapture <dir> out.wim --compress=LZX gives a byte-exact reference for any payload, a single
resource can be grafted into a reference container to test one chunk in
isolation, and the two readers have to be asked separately because each
tolerates something the other rejects.

Until then the writer's default and the archive-creation path use XPRESS,
which both readers accept, so nothing produced by default is unreadable
elsewhere. Asking for LZX or LZMS explicitly still yields a container only we
can read, which is why this is recorded rather than closed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions