summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorDave Love <fx@gnu.org>2017-09-22 16:04:06 +0100
committerLudovic Courtès <ludo@gnu.org>2017-09-23 18:35:24 +0200
commit3f82586aa33a8878031840f4ba9db873c4b9cf47 (patch)
tree1ca714bdcf0e46d1ea1b1606dc9327cb269e25cb /gnu
parent468d2a2a0061191239e4db74322791fc16aa6387 (diff)
downloadguix-3f82586aa33a8878031840f4ba9db873c4b9cf47.tar.gz
gnu: Add infiniband-diags.
* gnu/packages/fabric-management.scm (infiniband-diags): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/fabric-management.scm67
1 files changed, 66 insertions, 1 deletions
diff --git a/gnu/packages/fabric-management.scm b/gnu/packages/fabric-management.scm
index 8731877691..edb058842c 100644
--- a/gnu/packages/fabric-management.scm
+++ b/gnu/packages/fabric-management.scm
@@ -23,9 +23,13 @@
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages flex)
-  #:use-module (gnu packages linux))
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config))
 
 ;; Fixme: Done for the library, but needs support for running the daemon
 ;;        (shepherd definition).
@@ -72,3 +76,64 @@ also contains various tools for diagnosing and testing Infiniband networks
 that can be used from any machine and do not need to be run on a machine
 running the opensm daemon.")
     (license (list gpl2 bsd-2))))
+
+(define-public infiniband-diags
+  (package
+    (name "infiniband-diags")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/linux-rdma/infiniband-diags/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ns9sjwvxnklhi47d6k5x8kxdk1n7f5362y45xwxqmr7gwfvpmwa"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("rdma-core" ,rdma-core)
+       ("opensm" ,opensm)
+       ("glib" ,glib)))
+    (outputs '("out" "lib"))
+    (native-inputs
+     ;; FIXME: needs rst2man for man pages
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (arguments
+     '(#:configure-flags
+       (list (string-append "CPPFLAGS=-I" (assoc-ref %build-inputs "opensm")
+                            "/include/infiniband")
+             (string-append "--with-perl-installdir=" (assoc-ref %outputs "lib")
+                            "/lib/perl5/vendor_perl")
+             "--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'autotools
+           (lambda _
+             (zero? (system "./autogen.sh"))))
+         (add-after 'install 'licence
+           (lambda _
+             (let ((doc (string-append (assoc-ref %outputs "lib") "/share/doc")))
+               (mkdir-p doc)
+               (install-file "COPYING" doc))))
+         (add-after 'install-file 'move-perl
+           ;; Avoid perl in lib closure
+           (lambda _
+             (let ((perlout (string-append (assoc-ref %outputs "out") "/lib"))
+                   (perlin (string-append (assoc-ref %outputs "lib")
+                                          "/lib/perl5")))
+               (mkdir-p perlout)
+               (rename-file perlin perlout)
+               #t))))))
+    (home-page "https://github.com/linux-rdma/infiniband-diags")
+    (synopsis "Infiniband diagnotic tools")
+    (description "This is a set of command-line utilities to help configure,
+debug, and maintain Infiniband (IB) fabrics.
+
+In addition to the utilities, a sub-library, @file{libibnetdisc}, is provided
+to scan an entire IB fabric and return data structures representing it.  The
+interface to this library is not guaranteed to be stable.")
+    (license (list gpl2 bsd-2)))) ; dual