anchor.diff:          "DEFAULT_INITCONF_DIR=\${out}/default"
         ];
   
  -      postInstall = ''
  -        # Prevent kernel modules from depending on the Linux -dev output.
  -        nuke-refs $(find $out -name "*.ko")
  +      postInstall = optionalString buildKernel ''
  +        # Add reference that cannot be detected due to compressed kernel module
  +        mkdir -p "$out/nix-support"
  +        echo "${utillinux}" >> "$out/nix-support/extra-refs"
         '' + optionalString buildUser ''
           # Remove provided services as they are buggy
           rm $out/etc/systemd/system/zfs-import-*.service
  
positive.code: 
        postPatch = optionalString buildKernel ''
          patchShebangs scripts
        '' + optionalString stdenv.hostPlatform.isMusl ''
          substituteInPlace config/user-libtirpc.m4 \
            --replace /usr/include/tirpc ${libtirpc}/include/tirpc
        '';
  
        nativeBuildInputs = [ autoreconfHook nukeReferences ]
          ++ optional buildKernel (kernel.moduleBuildDependencies ++ [ perl ]);
        buildInputs = optionals buildUser [ zlib libuuid python3 attr ]
          ++ optionals (buildUser) [ openssl ]
          ++ optional stdenv.hostPlatform.isMusl [ libtirpc ];
  
        # for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work
        NIX_CFLAGS_LINK = "-lgcc_s";
  
        hardeningDisable = [ "fortify" "stackprotector" "pic" ];
  
        preConfigure = ''
          substituteInPlace ./module/zfs/zfs_ctldir.c   --replace "umount -t zfs"           "${utillinux}/bin/umount -t zfs"
          substituteInPlace ./module/zfs/zfs_ctldir.c   --replace "mount -t zfs"            "${utillinux}/bin/mount -t zfs"
          substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/umount"             "${utillinux}/bin/umount"
          substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/mount"              "${utillinux}/bin/mount"
          substituteInPlace ./lib/libshare/nfs.c        --replace "/usr/sbin/exportfs"      "${nfs-utils}/bin/exportfs"
          substituteInPlace ./cmd/ztest/ztest.c         --replace "/usr/sbin/ztest"         "$out/sbin/ztest"
          substituteInPlace ./cmd/ztest/ztest.c         --replace "/usr/sbin/zdb"           "$out/sbin/zdb"
          substituteInPlace ./config/user-systemd.m4    --replace "/usr/lib/modules-load.d" "$out/etc/modules-load.d"
          substituteInPlace ./config/zfs-build.m4       --replace "\$sysconfdir/init.d"     "$out/etc/init.d"
          substituteInPlace ./etc/zfs/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
          substituteInPlace ./cmd/zed/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
          substituteInPlace ./module/Makefile.in        --replace "/bin/cp"                 "cp"
          substituteInPlace ./etc/systemd/system/zfs-share.service.in \
            --replace "/bin/rm " "${coreutils}/bin/rm "
  
          for f in ./udev/rules.d/*
          do
            substituteInPlace "$f" --replace "/lib/udev/vdev_id" "$out/lib/udev/vdev_id"
          done
          substituteInPlace ./cmd/vdev_id/vdev_id \
            --replace "PATH=/bin:/sbin:/usr/bin:/usr/sbin" \
            "PATH=${makeBinPath [ coreutils gawk gnused gnugrep systemd ]}"
  
          ./autogen.sh
          configureFlagsArray+=("--libexecdir=$out/libexec")
        '';
  
        configureFlags = [
          "--with-config=${configFile}"
          "--with-python=${python3.interpreter}"
        ] ++ optionals buildUser [
          "--with-dracutdir=$(out)/lib/dracut"
          "--with-udevdir=$(out)/lib/udev"
  
negative.code:     # incompatibleKernelVersion = "4.19";
  
      # this package should point to a version / git revision compatible with the latest kernel release
      version = "0.8.1";
  
      sha256 = "0wlbziijx08a9bmbyq4gfz4by9l5jrx44g18i99qnfm78k2q8a84";
  