From 3f82586aa33a8878031840f4ba9db873c4b9cf47 Mon Sep 17 00:00:00 2001 From: Dave Love Date: Fri, 22 Sep 2017 16:04:06 +0100 Subject: [PATCH] gnu: Add infiniband-diags. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/fabric-management.scm (infiniband-diags): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/fabric-management.scm | 67 +++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) 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