Merge pull request #45012 from Mic92/zfs

linuxPackages.zfsUnstable: 2018-05-22 -> 2018-08-13
This commit is contained in:
Jörg Thalheim 2018-08-14 14:39:04 +02:00 committed by GitHub
commit 93f9b7069a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 59 additions and 244 deletions

View file

@ -24,7 +24,7 @@ let
kernel = config.boot.kernelPackages;
packages = if config.boot.zfs.enableUnstable then {
spl = kernel.splUnstable;
spl = null;
zfs = kernel.zfsUnstable;
zfsUser = pkgs.zfsUnstable;
} else {
@ -325,12 +325,12 @@ in
virtualisation.lxd.zfsSupport = true;
boot = {
kernelModules = [ "spl" "zfs" ] ;
extraModulePackages = with packages; [ spl zfs ];
kernelModules = [ "zfs" ] ++ optional (!cfgZfs.enableUnstable) "spl";
extraModulePackages = with packages; [ zfs ] ++ optional (!cfgZfs.enableUnstable) spl;
};
boot.initrd = mkIf inInitrd {
kernelModules = [ "spl" "zfs" ];
kernelModules = [ "zfs" ] ++ optional (!cfgZfs.enableUnstable) "spl";
extraUtilsCommands =
''
copy_bin_and_libs ${packages.zfsUser}/sbin/zfs

View file

@ -6,71 +6,50 @@
with stdenv.lib;
let
common = { version
, sha256
, rev ? "spl-${version}"
, broken ? false
, patches ? []
}: stdenv.mkDerivation rec {
name = "spl-${version}-${kernel.version}";
assert kernel != null;
src = fetchFromGitHub {
owner = "zfsonlinux";
repo = "spl";
inherit rev sha256;
};
stdenv.mkDerivation rec {
name = "spl-${version}-${kernel.version}";
inherit patches;
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.
'';
inherit broken;
homepage = http://zfsonlinux.org/;
platforms = platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ jcumming wizeman wkennington fpletz globin ];
};
src = fetchFromGitHub {
owner = "zfsonlinux";
repo = "spl";
rev = "spl-0.7.9";
sha256 = "0540m1dv9jvrzk9kw61glg0h0cwj976mr9zb42y3nh17k47ywff0";
};
in
assert kernel != null;
{
splStable = common {
version = "0.7.9";
sha256 = "0540m1dv9jvrzk9kw61glg0h0cwj976mr9zb42y3nh17k47ywff0";
patches = [ ./install_prefix-0.7.9.patch ];
};
splUnstable = common {
version = "2018-05-07";
rev = "1149b62d20b7ed9d8ae25d5da7a06213d79b7602";
sha256 = "07qlx7l23y696gzyy7ynly7n1141w66y21gkmxiia2xwldj8klkx";
patches = [ ./install_prefix.patch ];
};
patches = [ ./install_prefix.patch ];
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 wkennington fpletz globin ];
};
}

View file

@ -1,162 +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
diff --git a/module/Makefile.in b/module/Makefile.in
index d4e62e1..73fa01c 100644
--- a/module/Makefile.in
+++ b/module/Makefile.in
@@ -21,15 +21,15 @@ clean:
modules_install:
@# Install the kernel modules
$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`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

View file

@ -9,7 +9,7 @@
, gawk, gnugrep, gnused, systemd
# Kernel dependencies
, kernel ? null, spl ? null, splUnstable ? null
, kernel ? null, spl ? null
}:
with stdenv.lib;
@ -51,7 +51,7 @@ let
'';
nativeBuildInputs = [ autoreconfHook nukeReferences ]
++ optional buildKernel (kernel.moduleBuildDependencies ++ [ perl ]);
++ optional buildKernel (kernel.moduleBuildDependencies ++ [ perl ]);
buildInputs =
optionals buildKernel [ spl ]
++ optionals buildUser [ zlib libuuid python attr ]
@ -93,7 +93,7 @@ let
configureFlags = [
"--with-config=${configFile}"
] ++ optionals buildUser [
] ++ optionals buildUser [
"--with-dracutdir=$(out)/lib/dracut"
"--with-udevdir=$(out)/lib/udev"
"--with-systemdunitdir=$(out)/etc/systemd/system"
@ -103,10 +103,11 @@ let
"--sysconfdir=/etc"
"--localstatedir=/var"
"--enable-systemd"
] ++ optionals buildKernel [
"--with-spl=${spl}/libexec/spl"
] ++ 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;
@ -179,19 +180,19 @@ in {
incompatibleKernelVersion = "4.18";
# this package should point to a version / git revision compatible with the latest kernel release
version = "2018-05-22";
version = "2018-08-13";
rev = "ba863d0be4cbfbea938b10e49fb6ff459ac9ec20";
sha256 = "11dhigw1gybalwg2m6si148b6w195dj2lw38snqf6576wb5zndd0";
rev = "64e96969a88c21aebb2f8d982a8c345e55a2ae6c";
sha256 = "164fvsf9zqvq3vafnvjxafjl8gihmfqfsjwsmky16i90a6hs96gf";
isUnstable = true;
extraPatches = [
(fetchpatch {
url = "https://github.com/Mic92/zfs/compare/${rev}...nixos-zfs-2018-02-02.patch";
sha256 = "1gqmgqi39qhk5kbbvidh8f2xqq25vj58i9x0wjqvcx6a71qj49ch";
url = "https://github.com/Mic92/zfs/compare/${rev}...nixos-zfs-2018-08-13.patch";
sha256 = "1sdcr1w2jp3djpwlf1f91hrxxmc34q0jl388smdkxh5n5bpw5gzw";
})
];
spl = splUnstable;
spl = null;
};
}

View file

@ -14033,10 +14033,7 @@ with pkgs;
sch_cake = callPackage ../os-specific/linux/sch_cake { };
inherit (callPackage ../os-specific/linux/spl {})
splStable splUnstable;
spl = splStable;
spl = callPackage ../os-specific/linux/spl { };
sysdig = callPackage ../os-specific/linux/sysdig {};