Remove zfs-git and spl-git

See https://github.com/NixOS/nixpkgs/pull/10042#commitcomment-13422343.

Changed files
+159 -231
nixos
modules
tasks
filesystems
pkgs
+3 -13
nixos/modules/tasks/filesystems/zfs.nix
···
kernel = config.boot.kernelPackages;
-
splKernelPkg = if cfgZfs.useGit then kernel.spl_git else kernel.spl;
-
zfsKernelPkg = if cfgZfs.useGit then kernel.zfs_git else kernel.zfs;
-
zfsUserPkg = if cfgZfs.useGit then pkgs.zfs_git else pkgs.zfs;
+
splKernelPkg = kernel.spl;
+
zfsKernelPkg = kernel.zfs;
+
zfsUserPkg = pkgs.zfs;
autosnapPkg = pkgs.zfstools.override {
zfs = zfsUserPkg;
···
options = {
boot.zfs = {
-
useGit = mkOption {
-
type = types.bool;
-
default = false;
-
example = true;
-
description = ''
-
Use the git version of the SPL and ZFS packages.
-
Note that these are unreleased versions, with less testing, and therefore
-
may be more unstable.
-
'';
-
};
extraPools = mkOption {
type = types.listOf types.str;
+55 -3
pkgs/os-specific/linux/spl/default.nix
···
-
{ callPackage, fetchFromGitHub, ... } @ args:
+
{ fetchFromGitHub, stdenv, autoconf, automake, libtool, coreutils, gawk
+
, configFile ? "all"
+
+
# Kernel dependencies
+
, kernel ? null
+
}:
+
+
with stdenv.lib;
+
let
+
buildKernel = any (n: n == configFile) [ "kernel" "all" ];
+
buildUser = any (n: n == configFile) [ "user" "all" ];
+
in
+
+
assert any (n: n == configFile) [ "kernel" "user" "all" ];
+
assert buildKernel -> kernel != null;
+
+
stdenv.mkDerivation rec {
+
name = "spl-${configFile}-${version}${optionalString buildKernel "-${kernel.version}"}";
-
callPackage ./generic.nix (args // rec {
version = "0.6.5";
src = fetchFromGitHub {
···
};
patches = [ ./const.patch ./install_prefix.patch ];
-
})
+
+
buildInputs = [ autoconf automake libtool ];
+
+
preConfigure = ''
+
./autogen.sh
+
+
substituteInPlace ./module/spl/spl-generic.c --replace /usr/bin/hostid hostid
+
substituteInPlace ./module/spl/spl-module.c --replace /bin/mknod mknod
+
+
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=${configFile}"
+
] ++ optionals buildKernel [
+
"--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 ];
+
};
+
}
-61
pkgs/os-specific/linux/spl/generic.nix
···
-
{ stdenv, autoconf, automake, libtool, coreutils, gawk
-
, configFile ? "all"
-
-
# Kernel dependencies
-
, kernel ? null
-
-
# Version specific parameters
-
, version, src, patches
-
, ...
-
}:
-
-
with stdenv.lib;
-
let
-
buildKernel = any (n: n == configFile) [ "kernel" "all" ];
-
buildUser = any (n: n == configFile) [ "user" "all" ];
-
in
-
-
assert any (n: n == configFile) [ "kernel" "user" "all" ];
-
assert buildKernel -> kernel != null;
-
-
stdenv.mkDerivation rec {
-
name = "spl-${configFile}-${version}${optionalString buildKernel "-${kernel.version}"}";
-
-
inherit version src patches;
-
-
buildInputs = [ autoconf automake libtool ];
-
-
preConfigure = ''
-
./autogen.sh
-
-
substituteInPlace ./module/spl/spl-generic.c --replace /usr/bin/hostid hostid
-
substituteInPlace ./module/spl/spl-module.c --replace /bin/mknod mknod
-
-
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=${configFile}"
-
] ++ optionals buildKernel [
-
"--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 ];
-
};
-
}
-14
pkgs/os-specific/linux/spl/git.nix
···
-
{ callPackage, fetchFromGitHub, ... } @ args:
-
-
callPackage ./generic.nix (args // rec {
-
version = "2015-09-11";
-
-
src = fetchFromGitHub {
-
owner = "zfsonlinux";
-
repo = "spl";
-
rev = "f17d005bcc9b7edeb15b10bf947379a504b2d9f7";
-
sha256 = "0ryw2vh3px0q38skm53g83p46011ndrdxi3y2kqvd1pjqgfbjdmj";
-
};
-
-
patches = [ ./const.patch ./install_prefix.patch ];
-
})
+101 -3
pkgs/os-specific/linux/zfs/default.nix
···
-
{ callPackage, fetchFromGitHub, ... } @ args:
+
{ stdenv, fetchFromGitHub, autoreconfHook, utillinux, nukeReferences, coreutils
+
, configFile ? "all"
+
+
# Userspace dependencies
+
, zlib, libuuid, python
+
+
# Kernel dependencies
+
, kernel ? null, spl ? null
+
}:
-
callPackage ./generic.nix (args // rec {
+
with stdenv.lib;
+
let
+
buildKernel = any (n: n == configFile) [ "kernel" "all" ];
+
buildUser = any (n: n == configFile) [ "user" "all" ];
+
in
+
+
assert any (n: n == configFile) [ "kernel" "user" "all" ];
+
assert buildKernel -> kernel != null && spl != null;
+
+
stdenv.mkDerivation rec {
+
name = "zfs-${configFile}-${version}${optionalString buildKernel "-${kernel.version}"}";
+
version = "0.6.5.1";
src = fetchFromGitHub {
···
};
patches = [ ./nix-build.patch ];
-
})
+
+
buildInputs = [ autoreconfHook nukeReferences ]
+
++ optionals buildKernel [ spl ]
+
++ optionals buildUser [ zlib libuuid python ];
+
+
# for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work
+
NIX_CFLAGS_LINK = "-lgcc_s";
+
+
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 ./udev/rules.d/* --replace "/lib/udev/vdev_id" "$out/lib/udev/vdev_id"
+
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 "@bindir@/rm " "${coreutils}/bin/rm "
+
./autogen.sh
+
'';
+
+
configureFlags = [
+
"--with-config=${configFile}"
+
] ++ optionals buildUser [
+
"--with-dracutdir=$(out)/lib/dracut"
+
"--with-udevdir=$(out)/lib/udev"
+
"--with-systemdunitdir=$(out)/etc/systemd/system"
+
"--with-systemdpresetdir=$(out)/etc/systemd/system-preset"
+
"--with-mounthelperdir=$(out)/bin"
+
"--sysconfdir=/etc"
+
"--localstatedir=/var"
+
"--enable-systemd"
+
] ++ optionals buildKernel [
+
"--with-spl=${spl}/libexec/spl"
+
"--with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source"
+
"--with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+
];
+
+
enableParallelBuilding = true;
+
+
installFlags = [
+
"sysconfdir=\${out}/etc"
+
"DEFAULT_INITCONF_DIR=\${out}/default"
+
];
+
+
postInstall = ''
+
# Prevent kernel modules from depending on the Linux -dev output.
+
nuke-refs $(find $out -name "*.ko")
+
'' + optionalString buildUser ''
+
# Remove provided services as they are buggy
+
rm $out/etc/systemd/system/zfs-import-*.service
+
+
sed -i '/zfs-import-scan.service/d' $out/etc/systemd/system/*
+
+
for i in $out/etc/systemd/system/*; do
+
substituteInPlace $i --replace "zfs-import-cache.service" "zfs-import.target"
+
done
+
+
# Fix pkgconfig.
+
ln -s ../share/pkgconfig $out/lib/pkgconfig
+
'';
+
+
meta = {
+
description = "ZFS Filesystem Linux Kernel module";
+
longDescription = ''
+
ZFS is a filesystem that combines a logical volume manager with a
+
Copy-On-Write filesystem with data integrity detection and repair,
+
snapshotting, cloning, block devices, deduplication, and more.
+
'';
+
homepage = http://zfsonlinux.org/;
+
license = licenses.cddl;
+
platforms = platforms.linux;
+
maintainers = with maintainers; [ jcumming wizeman wkennington ];
+
};
+
}
-107
pkgs/os-specific/linux/zfs/generic.nix
···
-
{ stdenv, fetchFromGitHub, autoreconfHook, utillinux, nukeReferences, coreutils
-
, configFile ? "all"
-
-
# Userspace dependencies
-
, zlib, libuuid, python
-
-
# Kernel dependencies
-
, kernel ? null, spl ? null
-
-
# Version specific settings
-
, version, src, patches
-
, ...
-
}:
-
-
with stdenv.lib;
-
let
-
buildKernel = any (n: n == configFile) [ "kernel" "all" ];
-
buildUser = any (n: n == configFile) [ "user" "all" ];
-
in
-
-
assert any (n: n == configFile) [ "kernel" "user" "all" ];
-
assert buildKernel -> kernel != null && spl != null;
-
-
stdenv.mkDerivation rec {
-
name = "zfs-${configFile}-${version}${optionalString buildKernel "-${kernel.version}"}";
-
-
inherit version src patches;
-
-
buildInputs = [ autoreconfHook nukeReferences ]
-
++ optionals buildKernel [ spl ]
-
++ optionals buildUser [ zlib libuuid python ];
-
-
# for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work
-
NIX_CFLAGS_LINK = "-lgcc_s";
-
-
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 ./udev/rules.d/* --replace "/lib/udev/vdev_id" "$out/lib/udev/vdev_id"
-
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 "@bindir@/rm " "${coreutils}/bin/rm "
-
./autogen.sh
-
'';
-
-
configureFlags = [
-
"--with-config=${configFile}"
-
] ++ optionals buildUser [
-
"--with-dracutdir=$(out)/lib/dracut"
-
"--with-udevdir=$(out)/lib/udev"
-
"--with-systemdunitdir=$(out)/etc/systemd/system"
-
"--with-systemdpresetdir=$(out)/etc/systemd/system-preset"
-
"--with-mounthelperdir=$(out)/bin"
-
"--sysconfdir=/etc"
-
"--localstatedir=/var"
-
"--enable-systemd"
-
] ++ optionals buildKernel [
-
"--with-spl=${spl}/libexec/spl"
-
"--with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source"
-
"--with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
-
];
-
-
enableParallelBuilding = true;
-
-
installFlags = [
-
"sysconfdir=\${out}/etc"
-
"DEFAULT_INITCONF_DIR=\${out}/default"
-
];
-
-
postInstall = ''
-
# Prevent kernel modules from depending on the Linux -dev output.
-
nuke-refs $(find $out -name "*.ko")
-
'' + optionalString buildUser ''
-
# Remove provided services as they are buggy
-
rm $out/etc/systemd/system/zfs-import-*.service
-
-
sed -i '/zfs-import-scan.service/d' $out/etc/systemd/system/*
-
-
for i in $out/etc/systemd/system/*; do
-
substituteInPlace $i --replace "zfs-import-cache.service" "zfs-import.target"
-
done
-
-
# Fix pkgconfig.
-
ln -s ../share/pkgconfig $out/lib/pkgconfig
-
'';
-
-
meta = {
-
description = "ZFS Filesystem Linux Kernel module";
-
longDescription = ''
-
ZFS is a filesystem that combines a logical volume manager with a
-
Copy-On-Write filesystem with data integrity detection and repair,
-
snapshotting, cloning, block devices, deduplication, and more.
-
'';
-
homepage = http://zfsonlinux.org/;
-
license = licenses.cddl;
-
platforms = platforms.linux;
-
maintainers = with maintainers; [ jcumming wizeman wkennington ];
-
};
-
}
-16
pkgs/os-specific/linux/zfs/git.nix
···
-
{ callPackage, stdenv, fetchFromGitHub, spl_git, ... } @ args:
-
-
callPackage ./generic.nix (args // rec {
-
version = "2015-09-19";
-
-
src = fetchFromGitHub {
-
owner = "zfsonlinux";
-
repo = "zfs";
-
rev = "3af56fd95fbe8b417d7ed7c9c25ef59d6f1ee161";
-
sha256 = "08sx1jzwrsdyvvlcf5as7rkglgbx5x6zvfn8ps8gk4miqfckq4z0";
-
};
-
-
patches = [ ./nix-build.patch ];
-
-
spl = spl_git;
-
})
-14
pkgs/top-level/all-packages.nix
···
configFile = "kernel";
inherit kernel;
};
-
spl_git = callPackage ../os-specific/linux/spl/git.nix {
-
configFile = "kernel";
-
inherit kernel;
-
};
sysdig = callPackage ../os-specific/linux/sysdig {};
···
configFile = "kernel";
inherit kernel spl;
};
-
zfs_git = callPackage ../os-specific/linux/zfs/git.nix {
-
configFile = "kernel";
-
inherit kernel spl_git;
-
};
};
# The current default kernel / kernel modules.
···
spl = callPackage ../os-specific/linux/spl {
configFile = "user";
-
spl_git = callPackage ../os-specific/linux/spl/git.nix {
-
configFile = "user";
-
};
sysdig = callPackage ../os-specific/linux/sysdig {
kernel = null;
···
zd1211fw = callPackage ../os-specific/linux/firmware/zd1211 { };
zfs = callPackage ../os-specific/linux/zfs {
-
configFile = "user";
-
};
-
zfs_git = callPackage ../os-specific/linux/zfs/git.nix {
configFile = "user";