On Wed, 01 Apr 2020 09:05:22 +0200 Norbert Lange <nolange79@gmail.com> wrote:
> Package: initramfs-tools-core
> Version: 0.136
> Severity: wishlist
> Tags: patch
>
> Hello,
>
> there are Kernelpatches for zstandard initramfs support
> available for several years, and will hopefully accepted
> upstream soon.
If the kernel doesn't yet support it, I'm not sure what the point of
supporting it in initramfs-tools is.
> Please enable support for this compression.
>
> The patch should be simple enough, I chosen to try zstd
> as first decompressor because it supports a whole
> range of formats on debian.
> diff -burN initramfs-tools.org/conf/initramfs.conf initramfs-tools/conf/initramfs.conf
> --- initramfs-tools.org/conf/initramfs.conf 2019-02-06 00:55:47.000000000 +0100
> +++ initramfs-tools/conf/initramfs.conf 2020-03-31 18:38:48.558687968 +0200
> @@ -38,7 +38,7 @@
> KEYMAP=n
>
> #
> -# COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz ]
> +# COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | zstd | xz ]
Aside from gzip (the default), this list is sorted alphabetically. So
zstd belongs at the end.
> #
>
> COMPRESS=gzip
> diff -burN initramfs-tools.org/mkinitramfs initramfs-tools/mkinitramfs
> --- initramfs-tools.org/mkinitramfs 2020-01-18 19:36:00.000000000 +0100
> +++ initramfs-tools/mkinitramfs 2020-03-31 18:31:31.046107765 +0200
> @@ -185,6 +185,7 @@
> fi
> ;;
> lz4) compress="lz4 -9 -l" ;;
> +zstd) compress="zstd -19" ;;
> xz) compress="xz --check=crc32"
> # If we're not doing a reproducible build, enable multithreading
> test -z "${SOURCE_DATE_EPOCH}" && compress="$compress --threads=0"
> diff -burN initramfs-tools.org/unmkinitramfs initramfs-tools/unmkinitramfs
> --- initramfs-tools.org/unmkinitramfs 2019-07-31 16:25:58.000000000 +0200
> +++ initramfs-tools/unmkinitramfs 2020-03-31 18:36:36.821308275 +0200
> @@ -29,7 +29,9 @@
> dir="$2"
> shift 2
>
> - if gzip -t "$archive" >/dev/null 2>&1 ; then
> + if zstd -q -c -t "$archive" >/dev/null 2>&1 ; then
> + zstd -q -c -d "$archive"
> + elif gzip -t "$archive" >/dev/null 2>&1 ; then
> gzip -c -d "$archive"
> elif xzcat -t "$archive" >/dev/null 2>&1 ; then
> xzcat "$archive"
gzip should be checked first as it's most likely to be the actual
compression used. Aside from that, I don't think the order matters
here.
Ben.
--
Ben Hutchings
Larkinson's Law: All laws are basically false.
Attachment:
signature.asc
Description: This is a digitally signed message part