diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix b/nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix new file mode 100644 index 000000000000..f6dfdd84d8c4 --- /dev/null +++ b/nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix @@ -0,0 +1,63 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, util-linux, bash }: + +stdenv.mkDerivation rec { + pname = "bcache-tools"; + version = "1.0.7"; + + src = fetchFromGitHub { + owner = "g2p"; + repo = "bcache-tools"; + rev = "v${version}"; + hash = "sha256-Ors2xXRrVTf8Cq3BYnSVSfJy/nyGjT5BGLSNpxOcHR4="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ util-linux ]; + + # * Remove broken install rules (they ignore $PREFIX) for stuff we don't need + # anyway (it's distro specific stuff). + # * Fixup absolute path to modprobe. + prePatch = '' + sed -e "/INSTALL.*initramfs\/hook/d" \ + -e "/INSTALL.*initcpio\/install/d" \ + -e "/INSTALL.*dracut\/module-setup.sh/d" \ + -e "s/pkg-config/$PKG_CONFIG/" \ + -i Makefile + ''; + + patches = [ + ./bcache-udev-modern.patch + ./fix-static.patch + ]; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + "UDEVLIBDIR=${placeholder "out"}/lib/udev/" + ]; + + preBuild = '' + sed -e "s|/bin/sh|${bash}/bin/sh|" -i *.rules + ''; + + preInstall = '' + mkdir -p "$out/sbin" "$out/lib/udev/rules.d" "$out/share/man/man8" + ''; + + meta = with lib; { + description = "User-space tools required for bcache (Linux block layer cache)"; + longDescription = '' + Bcache is a Linux kernel block layer cache. It allows one or more fast + disk drives such as flash-based solid state drives (SSDs) to act as a + cache for one or more slower hard disk drives. + + This package contains the required user-space tools. + + User documentation is in Documentation/bcache.txt in the Linux kernel + tree. + ''; + homepage = "https://bcache.evilpiepirate.org/"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; +} |