Package: pxz
Version: 4.999.99~beta3+git659fc9b-3
Severity: minor

I build Debian Live images.  A lot.
Waiting for update-initramfs is boring.
I want to speed it up using pxz or pixz (not xz).

The kernel's XZ decompressor does not support CRC64, xz's default.
When using COMPRESS=xz, mkinitramfs (initramfs-tools) passes --check=crc32 to 
fix this.
(Reference: https://www.kernel.org/doc/Documentation/xz.txt)

pxz accepts the equivalent option, but ignores it:

    (bootstrap)root@zygon:/boot# xzcat initrd.img | datefudge 2000-01-01 pxz 
-0Ccrc32   -T1 >a
    (bootstrap)root@zygon:/boot# xzcat initrd.img | datefudge 2000-01-01 pxz 
-0Ccrc64   -T1 >b
    (bootstrap)root@zygon:/boot# xzcat initrd.img | datefudge 2000-01-01 pxz 
-0Cwaffles -T1 >c
    (bootstrap)root@zygon:/boot# sha1sum a b c
    8df3800e37881acd3b4c79e76f793dc290a69958  a
    8df3800e37881acd3b4c79e76f793dc290a69958  b
    8df3800e37881acd3b4c79e76f793dc290a69958  c

If the option was working, the checksums would be different (I think).

The kernel becomes sad:

    (bootstrap)root@zygon:/boot# qemu-system-x86_64 -nographic -kernel vmlinuz 
-initrd initrd.img -append console=ttyS0
    [...works...]

    (bootstrap)root@zygon:/boot# qemu-system-x86_64 -nographic -kernel vmlinuz 
-initrd a -append console=ttyS0
    [...]
    [    0.653683] Initramfs unpacking failed: Input was encoded with settings 
that are not supported by this XZ decoder
    [...]

Please make pxz honor -Ccrc32,
or at least stop accepting it (exit non-zero instead).

Reply via email to