Subject: [PATCH 2/7] gnu: Add ndctl.

From: Pierre Neidhardt <[email-masked]>
Date: Thu, 28 Jun 2018 23:35:22 +0200

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

diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 9c5cdf956..8d0739a45 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -33,6 +33,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system python)
@@ -60,7 +61,11 @@
   #:use-module (gnu packages cryptsetup)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages swig))
+  #:use-module (gnu packages swig)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages web)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages bash))
 
 (define-public parted
   (package
@@ -592,3 +597,56 @@ automatically finding out which program to use for what file type.")
      "A library for manipulating storage volume encryption keys and storing
 them separately from volumes to handle forgotten passphrases.")
     (license license:gpl2+)))
+
+(define-public ndctl
+  (package
+    (name "ndctl")
+    (version "60.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pmem/ndctl")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0w19yh6f9skf5zy4bhdjlrn3wdx5xx9cq8j6h04cmw4nla6zj9ar"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("asciidoc" ,asciidoc)
+       ("automake" ,automake)
+       ("autocont" ,autoconf)
+       ("libtool" ,libtool)
+       ("xmlto" ,xmlto)
+       ("which" ,which)
+       ("pkg-config" ,pkg-config)
+       ("docbook-xsl" ,docbook-xsl)
+       ("libxml2" ,libxml2)             ; Required for offline docbook generation.
+       ("bash-completion" ,bash-completion)))
+    (inputs
+     `(("json-c" ,json-c)
+       ("eudev" ,eudev)
+       ("util-linux" ,util-linux)
+       ("kmod" ,kmod)))
+     (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autogen
+           (lambda _
+             (substitute* "autogen.sh"
+               (("/bin/sh") (which "sh")))
+             (substitute* "git-version-gen"
+               (("/bin/sh") (which "sh")))
+             (substitute* "git-version"
+               (("/bin/bash") (which "bash")))
+             (invoke "sh" "autogen.sh"))))
+       #:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list (string-append "BASH_COMPLETION_DIR=" out
+                              "/share/bash-completion/completions")))))
+    (home-page "https://github.com/pmem/ndctl")
+    (synopsis "Manage the non-volatile memory device sub-system in the Linux kernel")
+    (description
+     "Utility library for managing the libnvdimm (non-volatile memory device)
+sub-system in the Linux kernel.")
+    (license license:lgpl2.1+)))
-- 
2.17.1