Subject: [bug#31999] [PATCH 6/7] gnu: Add libblockdev.

From: Pierre Neidhardt <[email-masked]>
Date: Sun, 29 Jul 2018 00:10:35 +0200

* gnu/package/disk.scm (libblockdev): New variable.
---
 gnu/packages/disk.scm | 59 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 58 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index f26772ed2..900fa7a18 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -65,7 +65,8 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages web)
   #:use-module (gnu packages documentation)
-  #:use-module (gnu packages bash))
+  #:use-module (gnu packages bash)
+  #:use-module (gnu packages c))
 
 (define-public parted
   (package
@@ -692,3 +693,59 @@ removal, rebuild and display of properties for ATARAID/DDF1 metadata.
 @command{dmraid} uses @file{libdevmapper} and the device-mapper kernel runtime
 to create devices with respective mappings for the ATARAID sets discovered.")
     (license license:gpl2+)))
+
+(define-public libblockdev
+  (package
+    (name "libblockdev")
+    (version "2.18")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/storaged-project/libblockdev/archive/"
+                                  version
+                                  "-1.tar.gz"))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "1q8wh27yngrjvydm9bainda5fgifq8hbgzdsjipkn3nrrhbfy8p9"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("automake" ,automake)
+       ("autoconf" ,autoconf)
+       ("cryptsetup" ,cryptsetup)
+       ("eudev" ,eudev)
+       ("glib" ,glib)
+       ("gobject-introspection" ,gobject-introspection)
+       ("libtool" ,libtool)
+       ("libyaml" ,libyaml)
+       ("nss" ,nss)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("util-linux" ,util-linux)))
+    (inputs
+     `(("btrfs-progs" ,btrfs-progs)
+       ("dosfstools" ,dosfstools)
+       ("dmraid" ,dmraid)
+       ("kmod" ,kmod)
+       ("libbytesize" ,libbytesize)
+       ("lvm2" ,lvm2)
+       ("mdadm" ,mdadm)
+       ("ndctl" ,ndctl)
+       ("parted" ,parted)
+       ("volume-key" ,volume-key)
+       ;; ("xfsprogs" ,xfsprogs) ; TODO: Package?
+       ))
+     (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autogen
+           (lambda _
+             (invoke "sh" "autogen.sh"))))))
+    (home-page "https://github.com/storaged-project/libblockdev")
+    (synopsis "Library for manipulating block devices")
+    (description
+     "libblockdev is a C library supporting GObject introspection for
+manipulation of block devices.  It has a plugin-based architecture where each
+technology (like LVM, Btrfs, MD RAID, Swap...) is implemented in a separate
+plugin, possibly with multiple implementations (e.g. using LVM CLI or the new
+LVM DBus API).")
+    (license license:lgpl2.1+)))
-- 
2.18.0