summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiancarlo Razzolini <grazzolini@users.noreply.github.com>2020-10-27 16:25:14 +0100
committerGitHub <noreply@github.com>2020-10-27 16:25:14 +0100
commit9ca1bbf1e2305bad1c99ffe90485660c56185c97 (patch)
tree3bd3d5391270132105dd3f5ba56faca66d3aede0
parent3340dbc2ed92a0d9e58193d2d4082a588c1d84ca (diff)
parent516e3712c8b6a14fddc216e9368f6e61b1ca25c1 (diff)
downloadmkinitcpio-9ca1bbf1e2305bad1c99ffe90485660c56185c97.tar.gz
mkinitcpio-9ca1bbf1e2305bad1c99ffe90485660c56185c97.tar.xz
Merge pull request #35 from luca020400/master
mkinitcpio: Add support for the zstd compressor
-rw-r--r--PKGBUILD1
-rwxr-xr-xlsinitcpio4
-rw-r--r--man/mkinitcpio.conf.5.txt6
-rwxr-xr-xmkinitcpio3
-rw-r--r--mkinitcpio.conf1
5 files changed, 13 insertions, 2 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 3536a48..c7e1ed5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -15,6 +15,7 @@ optdepends=('xz: Use lzma or xz compression for the initramfs image'
'bzip2: Use bzip2 compression for the initramfs image'
'lzop: Use lzo compression for the initramfs image'
'lz4: Use lz4 compression for the initramfs image'
+ 'zstd: Use zstd compression for the initramfs image'
'mkinitcpio-nfs-utils: Support for root filesystem on NFS')
backup=(etc/mkinitcpio.conf)
diff --git a/lsinitcpio b/lsinitcpio
index bcb4a19..4715783 100755
--- a/lsinitcpio
+++ b/lsinitcpio
@@ -113,6 +113,10 @@ detect_filetype() {
echo 'lz4 -l'
return
;;
+ fd2fb528)
+ echo 'zstd'
+ return
+ ;;
esac
read -rd '' bytes < <(hexdump -n 3 -e '"%c"' "$1")
diff --git a/man/mkinitcpio.conf.5.txt b/man/mkinitcpio.conf.5.txt
index 9c8d000..fe4d077 100644
--- a/man/mkinitcpio.conf.5.txt
+++ b/man/mkinitcpio.conf.5.txt
@@ -54,8 +54,10 @@ Variables
Defines a program to filter the generated image through. As of linux 2.6.38,
the kernel understands the compression formats yielded by the *gzip*, *bzip2*,
- *lz4*, *lzop*, *lzma*, and *xz* compressors. If unspecified, this setting
- defaults to *gzip* compression. In order to create an uncompressed image, define
+ *lz4*, *lzop*, *lzma*, and *xz* compressors. As of linux 5.9 the kernel also
+ understands the compression formats yielded by the *zstd* compressor.
+ If unspecified, this setting defaults to *gzip* compression.
+ In order to create an uncompressed image, define
this variable as *cat*.
+
It's not hard to realize that a filter such as a *tac* or *rev* will cause
diff --git a/mkinitcpio b/mkinitcpio
index ba27433..9b585cd 100755
--- a/mkinitcpio
+++ b/mkinitcpio
@@ -211,6 +211,9 @@ build_image() {
lz4)
COMPRESSION_OPTIONS+=('-l')
;;
+ zstd)
+ COMPRESSION_OPTIONS+=('-19' '-T0')
+ ;;
esac
pushd "$BUILDROOT" >/dev/null
diff --git a/mkinitcpio.conf b/mkinitcpio.conf
index b926b90..ba1cce3 100644
--- a/mkinitcpio.conf
+++ b/mkinitcpio.conf
@@ -60,6 +60,7 @@ HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
+#COMPRESSION="zstd"
# COMPRESSION_OPTIONS
# Additional options for the compressor