diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index 37a19fb9fc8c..93bbd141284d 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -24,11 +24,9 @@ let kernel = config.boot.kernelPackages; packages = if config.boot.zfs.enableUnstable then { - spl = null; zfs = kernel.zfsUnstable; zfsUser = pkgs.zfsUnstable; } else { - spl = kernel.spl; zfs = kernel.zfs; zfsUser = pkgs.zfs; }; @@ -325,8 +323,8 @@ in virtualisation.lxd.zfsSupport = true; boot = { - kernelModules = [ "zfs" ] ++ optional (!cfgZfs.enableUnstable) "spl"; - extraModulePackages = with packages; [ zfs ] ++ optional (!cfgZfs.enableUnstable) spl; + kernelModules = [ "zfs" ]; + extraModulePackages = with packages; [ zfs ]; }; boot.initrd = mkIf inInitrd { diff --git a/pkgs/os-specific/linux/spl/default.nix b/pkgs/os-specific/linux/spl/default.nix deleted file mode 100644 index 4e49256be9fc..000000000000 --- a/pkgs/os-specific/linux/spl/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ fetchFromGitHub, stdenv, autoreconfHook, coreutils, gawk -, fetchpatch -# Kernel dependencies -, kernel -}: - -with stdenv.lib; - -assert kernel != null; - -stdenv.mkDerivation rec { - name = "spl-${version}-${kernel.version}"; - version = "0.7.13"; - - src = fetchFromGitHub { - owner = "zfsonlinux"; - repo = "spl"; - rev = "spl-${version}"; - sha256 = "1rzqgiszy8ad2gx20577azp1y5jgad0907slfzl5y2zb05jgaipa"; - }; - - patches = [ ./install_prefix.patch ]; - - # Backported fix for 0.7.13 to build with 5.1, please remove when updating to 0.7.14 - postPatch = optionalString (versionAtLeast kernel.version "5.1") '' - sed -i 's/get_ds()/KERNEL_DS/g' module/spl/spl-vnode.c - ''; - - nativeBuildInputs = [ autoreconfHook ] ++ kernel.moduleBuildDependencies; - - hardeningDisable = [ "fortify" "stackprotector" "pic" ]; - - preConfigure = '' - substituteInPlace ./module/spl/spl-generic.c --replace /usr/bin/hostid hostid - substituteInPlace ./module/spl/spl-generic.c --replace "PATH=/sbin:/usr/sbin:/bin:/usr/bin" "PATH=${coreutils}:${gawk}:/bin" - substituteInPlace ./module/splat/splat-vnode.c --replace "PATH=/sbin:/usr/sbin:/bin:/usr/bin" "PATH=${coreutils}:/bin" - substituteInPlace ./module/splat/splat-linux.c --replace "PATH=/sbin:/usr/sbin:/bin:/usr/bin" "PATH=${coreutils}:/bin" - ''; - - configureFlags = [ - "--with-config=kernel" - "--with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source" - "--with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - enableParallelBuilding = true; - - meta = { - description = "Kernel module driver for solaris porting layer (needed by in-kernel zfs)"; - - longDescription = '' - This kernel module is a porting layer for ZFS to work inside the linux - kernel. - ''; - - homepage = http://zfsonlinux.org/; - platforms = platforms.linux; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ jcumming wizeman fpletz globin ]; - }; -} diff --git a/pkgs/os-specific/linux/spl/install_prefix.patch b/pkgs/os-specific/linux/spl/install_prefix.patch deleted file mode 100644 index 566aab828ef7..000000000000 --- a/pkgs/os-specific/linux/spl/install_prefix.patch +++ /dev/null @@ -1,168 +0,0 @@ -diff --git a/Makefile.am b/Makefile.am -index 4977448..ac17217 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -12,10 +12,10 @@ endif - if CONFIG_KERNEL - SUBDIRS += module - --extradir = @prefix@/src/spl-$(VERSION) -+extradir = @prefix@/libexec/spl - extra_HEADERS = spl.release.in spl_config.h.in - --kerneldir = @prefix@/src/spl-$(VERSION)/$(LINUX_VERSION) -+kerneldir = @prefix@/libexec/spl/$(LINUX_VERSION) - nodist_kernel_HEADERS = spl.release spl_config.h module/$(LINUX_SYMBOLS) - endif - -diff --git a/include/Makefile.am b/include/Makefile.am -index 3200222..4a47aaa 100644 ---- a/include/Makefile.am -+++ b/include/Makefile.am -@@ -13,6 +13,6 @@ USER_H = - EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H) - - if CONFIG_KERNEL --kerneldir = @prefix@/src/spl-$(VERSION)/include -+kerneldir = @prefix@/libexec/spl/include - kernel_HEADERS = $(KERNEL_H) - endif -diff --git a/include/fs/Makefile.am b/include/fs/Makefile.am -index e0da4b3..d6d7af0 100644 ---- a/include/fs/Makefile.am -+++ b/include/fs/Makefile.am -@@ -8,6 +8,6 @@ USER_H = - EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H) - - if CONFIG_KERNEL --kerneldir = @prefix@/src/spl-$(VERSION)/include/fs -+kerneldir = @prefix@/libexec/spl/include/fs - kernel_HEADERS = $(KERNEL_H) - endif -diff --git a/include/linux/Makefile.am b/include/linux/Makefile.am -index 712e94e..4af9fb7 100644 ---- a/include/linux/Makefile.am -+++ b/include/linux/Makefile.am -@@ -18,6 +18,6 @@ USER_H = - EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H) - - if CONFIG_KERNEL --kerneldir = @prefix@/src/spl-$(VERSION)/include/linux -+kerneldir = @prefix@/libexec/spl/include/linux - kernel_HEADERS = $(KERNEL_H) - endif -diff --git a/include/rpc/Makefile.am b/include/rpc/Makefile.am -index cfc8246..4fbd33d 100644 ---- a/include/rpc/Makefile.am -+++ b/include/rpc/Makefile.am -@@ -9,6 +9,6 @@ USER_H = - EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H) - - if CONFIG_KERNEL --kerneldir = @prefix@/src/spl-$(VERSION)/include/rpc -+kerneldir = @prefix@/libexec/spl/include/rpc - kernel_HEADERS = $(KERNEL_H) - endif -diff --git a/include/sharefs/Makefile.am b/include/sharefs/Makefile.am -index 10e7093..febecdf 100644 ---- a/include/sharefs/Makefile.am -+++ b/include/sharefs/Makefile.am -@@ -8,6 +8,6 @@ USER_H = - EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H) - - if CONFIG_KERNEL --kerneldir = @prefix@/src/spl-$(VERSION)/include/sharefs -+kerneldir = @prefix@/libexec/spl/include/sharefs - kernel_HEADERS = $(KERNEL_H) - endif -diff --git a/include/sys/Makefile.am b/include/sys/Makefile.am -index 73c4a84..31a9f50 100644 ---- a/include/sys/Makefile.am -+++ b/include/sys/Makefile.am -@@ -107,7 +107,7 @@ USER_H = - EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H) - - if CONFIG_KERNEL --kerneldir = @prefix@/src/spl-$(VERSION)/include/sys -+kerneldir = @prefix@/libexec/spl/include/sys - kernel_HEADERS = $(KERNEL_H) - endif - -diff --git a/include/sys/fm/Makefile.am b/include/sys/fm/Makefile.am -index 2821cbe..a84ce8e 100644 ---- a/include/sys/fm/Makefile.am -+++ b/include/sys/fm/Makefile.am -@@ -9,6 +9,6 @@ USER_H = - EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H) - - if CONFIG_KERNEL --kerneldir = @prefix@/src/spl-$(VERSION)/include/sys/fm -+kerneldir = @prefix@/libexec/spl/include/sys/fm - kernel_HEADERS = $(KERNEL_H) - endif -diff --git a/include/sys/fs/Makefile.am b/include/sys/fs/Makefile.am -index 581083e..0c35fb7 100644 ---- a/include/sys/fs/Makefile.am -+++ b/include/sys/fs/Makefile.am -@@ -8,6 +8,6 @@ USER_H = - EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H) - - if CONFIG_KERNEL --kerneldir = @prefix@/src/spl-$(VERSION)/include/sys/fs -+kerneldir = @prefix@/libexec/spl/include/sys/fs - kernel_HEADERS = $(KERNEL_H) - endif -diff --git a/include/util/Makefile.am b/include/util/Makefile.am -index e2bf09f..3f5d6ce 100644 ---- a/include/util/Makefile.am -+++ b/include/util/Makefile.am -@@ -9,6 +9,6 @@ USER_H = - EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H) - - if CONFIG_KERNEL --kerneldir = @prefix@/src/spl-$(VERSION)/include/util -+kerneldir = @prefix@/libexec/spl/include/util - kernel_HEADERS = $(KERNEL_H) - endif -diff --git a/include/vm/Makefile.am b/include/vm/Makefile.am -index 7faab0a..8148b3d 100644 ---- a/include/vm/Makefile.am -+++ b/include/vm/Makefile.am -@@ -10,6 +10,6 @@ USER_H = - EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H) - - if CONFIG_KERNEL --kerneldir = @prefix@/src/spl-$(VERSION)/include/vm -+kerneldir = @prefix@/libexec/spl/include/vm - kernel_HEADERS = $(KERNEL_H) - endif ---- a/module/Makefile.in -+++ b/module/Makefile.in -@@ -21,22 +21,22 @@ - modules_install: - @# Install the kernel modules - $(MAKE) -C @LINUX_OBJ@ M=`pwd` $@ \ -- INSTALL_MOD_PATH=$(DESTDIR)$(INSTALL_MOD_PATH) \ -+ INSTALL_MOD_PATH=@prefix@/$(INSTALL_MOD_PATH) \ - INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) \ - KERNELRELEASE=@LINUX_VERSION@ - @# Remove extraneous build products when packaging -- kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \ -- if [ -n "$(DESTDIR)" ]; then \ -+ kmoddir=@prefix@/$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \ -+ if [ -n "@prefix@" ]; then \ - find $$kmoddir -name 'modules.*' | xargs $(RM); \ - fi -- sysmap=$(DESTDIR)$(INSTALL_MOD_PATH)/boot/System.map-@LINUX_VERSION@; \ -+ sysmap=@prefix@/$(INSTALL_MOD_PATH)/boot/System.map-@LINUX_VERSION@; \ - if [ -f $$sysmap ]; then \ - depmod -ae -F $$sysmap @LINUX_VERSION@; \ - fi - - modules_uninstall: - @# Uninstall the kernel modules -- kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@ -+ kmoddir=@prefix@/$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@ - list='$(subdir-m)'; for subdir in $$list; do \ - $(RM) -R $$kmoddir/$(INSTALL_MOD_DIR)/$$subdir; \ - done diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix index c2d4d8645a4e..5e20f112fee2 100644 --- a/pkgs/os-specific/linux/zfs/default.nix +++ b/pkgs/os-specific/linux/zfs/default.nix @@ -9,7 +9,7 @@ , gawk, gnugrep, gnused, systemd # Kernel dependencies -, kernel ? null, spl ? null +, kernel ? null }: with stdenv.lib; @@ -20,10 +20,8 @@ let common = { version , sha256 , extraPatches - , spl , rev ? "zfs-${version}" , isUnstable ? false - , isLegacyCrypto ? false , incompatibleKernelVersion ? null }: if buildKernel && (incompatibleKernelVersion != null) && @@ -52,10 +50,8 @@ let nativeBuildInputs = [ autoreconfHook nukeReferences ] ++ optional buildKernel (kernel.moduleBuildDependencies ++ [ perl ]); - buildInputs = - optionals buildKernel [ spl ] - ++ optionals buildUser [ zlib libuuid python3 attr ] - ++ optionals (buildUser && (isUnstable || isLegacyCrypto)) [ openssl ] + 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 @@ -107,8 +103,6 @@ let ] ++ optionals buildKernel [ "--with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source" "--with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ] ++ optionals (buildKernel && spl != null) [ - "--with-spl=${spl}/libexec/spl" ]; enableParallelBuilding = true; @@ -162,19 +156,13 @@ in { # incompatibleKernelVersion = "4.20"; # this package should point to the latest release. - version = "0.7.13"; + version = "0.8.0"; - sha256 = "1l77bq7pvc54vl15pnrjd0njgpf00qjzy0x85dpfh5jxng84x1fb"; + sha256 = "1lqb9q2im5bbm4l8kfb31cb6rvy37h5ni6rnqlki127ynilymkj8"; extraPatches = [ - # in case this gets out of date, just send Mic92 a pull request! - (fetchpatch { - url = "https://github.com/Mic92/zfs/commit/cf23c1d38bfc698a8a729fc0c5f9ca41591f4d95.patch"; - sha256 = "14v3x9ipvg2qd1vyf70nv909jd5zdxlsw5y8k60pfyvwm7g80wr5"; - }) + ./build-fixes-unstable.patch ]; - - inherit spl; }; zfsUnstable = common rec { @@ -189,10 +177,7 @@ in { isUnstable = true; extraPatches = [ - # in case this gets out of date, just send Mic92 a pull request! ./build-fixes-unstable.patch ]; - - spl = null; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f02fa606de32..786024b64e66 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15446,8 +15446,6 @@ in sch_cake = callPackage ../os-specific/linux/sch_cake { }; - spl = callPackage ../os-specific/linux/spl { }; - sysdig = callPackage ../os-specific/linux/sysdig {}; systemtap = callPackage ../development/tools/profiling/systemtap { }; @@ -15476,7 +15474,7 @@ in inherit (callPackage ../os-specific/linux/zfs { configFile = "kernel"; - inherit kernel spl; + inherit kernel; }) zfsStable zfsUnstable; zfs = zfsStable;