about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/libblockdev/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libblockdev/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/libblockdev/default.nix53
1 files changed, 53 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libblockdev/default.nix b/nixpkgs/pkgs/development/libraries/libblockdev/default.nix
new file mode 100644
index 000000000000..11a65006422f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libblockdev/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, fetchFromGitHub, substituteAll, autoreconfHook, pkg-config, gtk-doc
+, docbook_xml_dtd_43, python3, gobject-introspection, glib, udev, kmod, parted
+, cryptsetup, lvm2, dmraid, util-linux, libbytesize, libndctl, nss, volume_key
+, libxslt, docbook_xsl, gptfdisk, libyaml, autoconf-archive
+, thin-provisioning-tools, makeWrapper
+}:
+stdenv.mkDerivation rec {
+  pname = "libblockdev";
+  version = "2.24";
+
+  src = fetchFromGitHub {
+    owner = "storaged-project";
+    repo = "libblockdev";
+    rev = "${version}-1";
+    sha256 = "1gzwlwdv0jyb3lh2n016limy2ngfdsa05x7jvg9llf2ls672nq89";
+  };
+
+  outputs = [ "out" "dev" "devdoc" ];
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      sgdisk = "${gptfdisk}/bin/sgdisk";
+    })
+  ];
+
+  postPatch = ''
+    patchShebangs scripts
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook pkg-config gtk-doc libxslt docbook_xsl docbook_xml_dtd_43
+    python3 gobject-introspection autoconf-archive makeWrapper
+  ];
+
+  buildInputs = [
+    glib udev kmod parted gptfdisk cryptsetup lvm2 dmraid util-linux libbytesize
+    libndctl nss volume_key libyaml
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/lvm-cache-stats --prefix PATH : \
+      ${lib.makeBinPath [ thin-provisioning-tools ]}
+  '';
+
+  meta = with lib; {
+    description = "A library for manipulating block devices";
+    homepage = "http://storaged.org/libblockdev/";
+    license = with licenses; [ lgpl2Plus gpl2Plus ]; # lgpl2Plus for the library, gpl2Plus for the utils
+    maintainers = with maintainers; [ johnazoidberg ];
+    platforms = platforms.linux;
+  };
+}