Package Details: zfs-linux-headers

Git Clone URL: (read-only)
Package Base: zfs-linux
Description: Kernel headers for the Zettabyte File System.
Upstream URL:
Licenses: CDDL
Conflicts: zfs-archiso-linux-git-headers, zfs-archiso-linux-headers, zfs-linux-git-headers, zfs-linux-hardened-git-headers, zfs-linux-hardened-headers, zfs-linux-lts-git-headers, zfs-linux-lts-headers, zfs-linux-vfio-git-headers, zfs-linux-vfio-headers, zfs-linux-zen-git-headers, zfs-linux-zen-headers
Submitter: demizer
Maintainer: demizer
Last Packager: demizer
Votes: 193
Popularity: 2.110919
First Submitted: 2016-04-21 08:45
Last Updated: 2018-06-18 19:32

Latest Comments

jgerecke commented on 2018-06-02 17:55

May I suggest modifying the PKGBUILD and zfs.install script to make it both easier to update and easier to verify that new updates (e.g. through aurman) aren't malicious? The following patch puts the ZFS and kernel versions into variables that we reuse rather than hardcoding strings in a half-dozen places. It also has the install script determine the kernel version automagically from the version string passed in by pacman. Similar modifications could/should be made to other packages (e.g. spl).

diff --git a/PKGBUILD b/PKGBUILD
index 6f1a8a3..5369240 100644
@@ -17,24 +17,26 @@
 pkgname=("zfs-linux" "zfs-linux-headers")

+pkgver="${zfsver}.$(echo ${kernelver} | tr '-' '.')"
-makedepends=("linux-headers=4.16.11-1" "spl-linux-headers")
+makedepends=("linux-headers=${kernelver}" "spl-linux-headers")
-depends=("kmod" "spl-linux" "zfs-utils-common=0.7.9" "linux=4.16.11-1")
+depends=("kmod" "spl-linux" "zfs-utils-common=${zfsver}" "linux=${kernelver}")

 build() {
-    cd "${srcdir}/zfs-0.7.9"
+    cd "${srcdir}/zfs-${zfsver}"
     ./configure --prefix=/usr --sysconfdir=/etc --sbindir=/usr/bin --libdir=/usr/lib \
                 --datadir=/usr/share --includedir=/usr/include --with-udevdir=/lib/udev \
-                --libexecdir=/usr/lib/zfs-0.7.9 --with-config=kernel \
-                --with-linux=/usr/lib/modules/4.16.11-1-ARCH/build \
-                --with-linux-obj=/usr/lib/modules/4.16.11-1-ARCH/build
+                --libexecdir=/usr/lib/zfs-${zfsver} --with-config=kernel \
+                --with-linux=/usr/lib/modules/${kernelver}-ARCH/build \
+                --with-linux-obj=/usr/lib/modules/${kernelver}-ARCH/build

@@ -45,7 +47,7 @@ package_zfs-linux() {
-    cd "${srcdir}/zfs-0.7.9"
+    cd "${srcdir}/zfs-${zfsver}"
     make DESTDIR="${pkgdir}" install
     cp -r "${pkgdir}"/{lib,usr}
     rm -r "${pkgdir}"/lib
@@ -56,9 +58,9 @@ package_zfs-linux() {
 package_zfs-linux-headers() {
     pkgdesc="Kernel headers for the Zettabyte File System."
     conflicts=('zfs-archiso-linux-headers' 'zfs-archiso-linux-git-headers' 'zfs-linux-hardened-headers' 'zfs-linux-hardened-git-headers' 'zfs-linux-lts-headers' 'zfs-linux-lts-git-headers'  'zfs-linux-git-headers' 'zfs-linux-vfio-headers' 'zfs-linux-vfio-git-headers' 'zfs-linux-zen-headers' 'zfs-linux-zen-git-headers' )
-    cd "${srcdir}/zfs-0.7.9"
+    cd "${srcdir}/zfs-${zfsver}"
     make DESTDIR="${pkgdir}" install
     rm -r "${pkgdir}/lib"
     # Remove reference to ${srcdir}
-    sed -i "s+${srcdir}++" ${pkgdir}/usr/src/zfs-*/4.16.11-1-ARCH/Module.symvers
+    sed -i "s+${srcdir}++" ${pkgdir}/usr/src/zfs-*/${kernelver}-ARCH/Module.symvers
diff --git a/zfs.install b/zfs.install
index eda162b..cc32a25 100644
--- a/zfs.install
+++ b/zfs.install
@@ -1,20 +1,21 @@
 post_install() {
-    check_initramfs
+    check_initramfs "$1"

 post_remove() {
-    check_initramfs 'remove'
+    check_initramfs "$1" 'remove'

 post_upgrade() {
-    check_initramfs
+    check_initramfs "$1"

 check_initramfs() {
+    KERNELVER=$(echo "$1" | rev | cut -d'-' -f2 | cut -d'.' -f1-4 | sed 's/\./-/' | rev)
     echo ">>> Updating ZFS module dependencies"
-    depmod -a 4.16.11-1-ARCH
+    depmod -a ${KERNELVER}-ARCH
     MK_CONF=$(grep -v '#' /etc/mkinitcpio.conf | grep zfs >/dev/null; echo $?);
-    if [[ ${MK_CONF} == '0' && $1 == 'remove' ]]; then
+    if [[ ${MK_CONF} == '0' && $2 == 'remove' ]]; then
         echo '>>> The ZFS packages have been removed, but "zfs" remains in the "hooks"'
         echo '>>> list in mkinitcpio.conf! You will need to remove "zfs" from the '
         echo '>>> "hooks" list and then regenerate the initial ramdisk.'

minextu commented on 2018-05-01 18:04

@robguinness You need to set the kernel version on multiply places (See

robguinness commented on 2018-04-29 17:32

I am new to AUR. I am running kernel 4.16.5-1-ARCH, but this package requires 4.16.4-1. Is fixing this package for 4.16.5-1 as simple changing the version numbers in PKGBUILD, or does something else in the source files need to be changed, too?

leoteodoro78 commented on 2018-04-19 19:16

linux 4.15.15 left Arch repositories!

demizer commented on 2018-04-09 22:21

Got an email 0.7.8 is being worked on and will be released shortly. If it does not come out in the next day, I will revert to 0.7.6. Thanks!

NoSuck commented on 2018-04-09 18:57

A confirmed regression in 0.7.7 results in data loss during copy operations. So far, the issue has not been reported as reproducible on Arch Linux. The steps to reproduce are simple:

# mkdir SRC
# for i in $(seq 1 10000); do echo $i > SRC/$i ; done
# cp -r SRC DST
cp: cannot create regular file `DST/8442': No space left on device
cp: cannot create regular file `DST/2629': No space left on device

For more discussion, see GitHub:

webdawg commented on 2018-02-26 02:56

looks like more then three days hossbeast

hossbeast commented on 2018-02-26 00:18

linux has moved to 4.15.5 - when will this package be updated?

justinkb commented on 2018-02-06 04:48

Looks like my issue was caused by a critical bug in 4.15. I'm now on 4.15.1 with some patches and it works fine with the patch below

severach commented on 2018-02-01 00:48

There's nothing to fear. I've run zfs-git for 3 years and there has never been a data loss event. The only event was a performance problem that was fixed in 4 hours.

All comments