Remove zfs-git and spl-git

See https://github.com/NixOS/nixpkgs/pull/10042#commitcomment-13422343.
This commit is contained in:
Eelco Dolstra 2015-09-29 14:26:20 +02:00
parent 391549c5f4
commit 0e3c1e31b1
8 changed files with 159 additions and 231 deletions

View File

@ -21,9 +21,9 @@ let
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;
@ -53,16 +53,6 @@ in
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;

View File

@ -1,6 +1,22 @@
{ 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 {
@ -11,4 +27,40 @@ callPackage ./generic.nix (args // rec {
};
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 ];
};
}

View File

@ -1,61 +0,0 @@
{ 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 ];
};
}

View File

@ -1,14 +0,0 @@
{ 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 ];
})

View File

@ -1,6 +1,25 @@
{ callPackage, fetchFromGitHub, ... } @ args:
{ stdenv, fetchFromGitHub, autoreconfHook, utillinux, nukeReferences, coreutils
, configFile ? "all"
# Userspace dependencies
, zlib, libuuid, python
# Kernel dependencies
, kernel ? null, spl ? 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 && spl != null;
stdenv.mkDerivation rec {
name = "zfs-${configFile}-${version}${optionalString buildKernel "-${kernel.version}"}";
callPackage ./generic.nix (args // rec {
version = "0.6.5.1";
src = fetchFromGitHub {
@ -11,4 +30,83 @@ callPackage ./generic.nix (args // rec {
};
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 ];
};
}

View File

@ -1,107 +0,0 @@
{ 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 ];
};
}

View File

@ -1,16 +0,0 @@
{ 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;
})

View File

@ -9876,10 +9876,6 @@ let
configFile = "kernel";
inherit kernel;
};
spl_git = callPackage ../os-specific/linux/spl/git.nix {
configFile = "kernel";
inherit kernel;
};
sysdig = callPackage ../os-specific/linux/sysdig {};
@ -9906,10 +9902,6 @@ let
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.
@ -10150,9 +10142,6 @@ let
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;
@ -10383,9 +10372,6 @@ let
zfs = callPackage ../os-specific/linux/zfs {
configFile = "user";
};
zfs_git = callPackage ../os-specific/linux/zfs/git.nix {
configFile = "user";
};
### DATA