2017-09-22 15:04:05 +00:00
|
|
|
;;; GNU Guix --- Functional package management for GNU
|
|
|
|
;;; Copyright © 2017 Dave Love <fx@gnu.org>
|
2019-10-08 12:04:45 +00:00
|
|
|
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
2019-01-25 14:20:53 +00:00
|
|
|
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
|
2019-10-15 09:18:49 +00:00
|
|
|
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
2017-09-22 15:04:05 +00:00
|
|
|
;;;
|
|
|
|
;;; This file is part of GNU Guix.
|
|
|
|
;;;
|
|
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
|
|
;;; under the terms of the GNU General Public License as published by
|
|
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
|
|
;;; your option) any later version.
|
|
|
|
;;;
|
|
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
;;; GNU General Public License for more details.
|
|
|
|
;;;
|
|
|
|
;;; You should have received a copy of the GNU General Public License
|
|
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
(define-module (gnu packages fabric-management)
|
|
|
|
#:use-module (guix packages)
|
|
|
|
#:use-module (guix licenses)
|
|
|
|
#:use-module (guix download)
|
2019-10-15 09:18:49 +00:00
|
|
|
#:use-module (guix git-download)
|
2017-09-22 15:04:05 +00:00
|
|
|
#:use-module (guix utils)
|
|
|
|
#:use-module (guix build-system gnu)
|
|
|
|
#:use-module (gnu packages)
|
2017-09-22 15:04:06 +00:00
|
|
|
#:use-module (gnu packages autotools)
|
2017-09-22 15:04:05 +00:00
|
|
|
#:use-module (gnu packages bison)
|
|
|
|
#:use-module (gnu packages flex)
|
2017-09-22 15:04:06 +00:00
|
|
|
#:use-module (gnu packages glib)
|
2017-09-22 15:04:07 +00:00
|
|
|
#:use-module (gnu packages graphviz)
|
2017-09-22 15:04:06 +00:00
|
|
|
#:use-module (gnu packages linux)
|
|
|
|
#:use-module (gnu packages perl)
|
2017-09-22 15:04:07 +00:00
|
|
|
#:use-module (gnu packages pkg-config)
|
|
|
|
#:use-module (gnu packages swig)
|
|
|
|
#:use-module (gnu packages tcl))
|
2017-09-22 15:04:05 +00:00
|
|
|
|
|
|
|
;; Fixme: Done for the library, but needs support for running the daemon
|
|
|
|
;; (shepherd definition).
|
|
|
|
;; We should probably have a lib output, but that currently generates
|
|
|
|
;; a cycle.
|
|
|
|
(define-public opensm
|
|
|
|
(package
|
|
|
|
(name "opensm")
|
2019-10-08 12:04:45 +00:00
|
|
|
(version "3.3.22")
|
2017-09-22 15:04:05 +00:00
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri
|
2018-10-14 20:02:50 +00:00
|
|
|
(string-append "https://github.com/linux-rdma/opensm/releases/download/"
|
|
|
|
version "/opensm-" version ".tar.gz"))
|
|
|
|
(sha256
|
2019-10-08 12:04:45 +00:00
|
|
|
(base32 "19scwwpwqhqsyq4hbr5cflcmypss828lalxxd36yby7mbimca38y"))))
|
2017-09-22 15:04:05 +00:00
|
|
|
(build-system gnu-build-system)
|
|
|
|
(native-inputs
|
2018-10-14 20:02:50 +00:00
|
|
|
`(("bison" ,bison)
|
|
|
|
("flex" ,flex)
|
|
|
|
|
|
|
|
;; The 3.3.21 'release' tarball isn't properly bootstrapped.
|
|
|
|
("autoconf" ,autoconf)
|
|
|
|
("automake" ,automake)
|
|
|
|
("libtool" ,libtool)))
|
2017-09-22 15:04:05 +00:00
|
|
|
(inputs
|
|
|
|
`(("rdma-core" ,rdma-core)))
|
|
|
|
(arguments
|
|
|
|
`(#:configure-flags '("--disable-static")
|
|
|
|
#:phases
|
|
|
|
(modify-phases %standard-phases
|
2018-10-14 20:02:50 +00:00
|
|
|
(add-after 'install 'install-doc
|
2017-09-22 15:04:05 +00:00
|
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
|
|
(let* ((base (assoc-ref outputs "out"))
|
|
|
|
(doc (string-append base "/share/doc/"
|
|
|
|
,name "-" ,version)))
|
|
|
|
(for-each (lambda (file)
|
|
|
|
(install-file file doc))
|
2018-10-14 20:02:50 +00:00
|
|
|
(find-files "doc"))
|
2017-09-22 15:04:05 +00:00
|
|
|
#t))))))
|
|
|
|
(home-page "https://www.openfabrics.org/")
|
|
|
|
(synopsis "OpenIB InfiniBand Subnet Manager and management utilities")
|
|
|
|
(description "\
|
|
|
|
OpenSM is the OpenIB project's Subnet Manager for Infiniband networks.
|
|
|
|
The subnet manager is run as a system daemon on one of the machines in
|
|
|
|
the infiniband fabric to manage the fabric's routing state. This package
|
|
|
|
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))))
|
2017-09-22 15:04:06 +00:00
|
|
|
|
|
|
|
(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-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")
|
2019-05-22 23:33:25 +00:00
|
|
|
(synopsis "Infiniband diagnostic tools")
|
2017-09-22 15:04:06 +00:00
|
|
|
(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
|
2017-09-22 15:04:07 +00:00
|
|
|
|
|
|
|
(define-public ibutils
|
|
|
|
(package
|
|
|
|
(name "ibutils")
|
|
|
|
(version "1.5.7-0.2.gbd7e502")
|
|
|
|
(source
|
|
|
|
(origin
|
|
|
|
(method url-fetch)
|
|
|
|
(uri (string-append "https://www.openfabrics.org/downloads/ibutils/ibutils-"
|
|
|
|
version ".tar.gz"))
|
|
|
|
(sha256
|
|
|
|
(base32 "00x7v6cf8l5y6g9xwh1sg738ch42fhv19msx0h0090nhr0bv98v7"))))
|
|
|
|
(build-system gnu-build-system)
|
|
|
|
(inputs `(("graphviz" ,graphviz)
|
|
|
|
("tcl" ,tcl)
|
|
|
|
("tk" ,tk)
|
|
|
|
("infiniband-diags" ,infiniband-diags)
|
|
|
|
("rdma-core" ,rdma-core)
|
|
|
|
("opensm" ,opensm)
|
|
|
|
("perl" ,perl)))
|
|
|
|
(native-inputs `(("swig" ,swig)))
|
|
|
|
(arguments
|
|
|
|
`(#:configure-flags
|
|
|
|
(list (string-append "--with-osm=" (assoc-ref %build-inputs "opensm"))
|
|
|
|
(string-append "--with-tk-lib=" (assoc-ref %build-inputs "tk") "/lib")
|
|
|
|
"--disable-static")))
|
|
|
|
(synopsis "InfiniBand network utilities")
|
|
|
|
(description "These command-line utilities allow for diagnosing and
|
|
|
|
testing InfiniBand networks.")
|
|
|
|
(home-page "https://www.openfabrics.org/downloads/ibutils/")
|
|
|
|
(license bsd-2)))
|
2019-10-15 09:18:49 +00:00
|
|
|
|
|
|
|
(define-public ucx
|
|
|
|
(package
|
|
|
|
(name "ucx")
|
|
|
|
(version "1.6.1")
|
|
|
|
(source (origin
|
|
|
|
(method git-fetch)
|
|
|
|
(uri (git-reference
|
gnu: Remove ".git" from "https://github/…/….git".
Until now, 'lookup-origin' and thus 'lookup-origin-revision' in (guix
swh) would sometimes return #f for these because the ".git" URLs are
redirects to the non-".git" URLs. Consequently, 'guix lint -c archival'
would keep saying "scheduled Software Heritage archival"; likewise, the
fallback download code would fail.
* gnu/packages/ada.scm,
gnu/packages/admin.scm,
gnu/packages/aidc.scm,
gnu/packages/algebra.scm,
gnu/packages/android.scm,
gnu/packages/animation.scm,
gnu/packages/arcan.scm,
gnu/packages/assembly.scm,
gnu/packages/audio.scm,
gnu/packages/authentication.scm,
gnu/packages/avr.scm,
gnu/packages/axoloti.scm,
gnu/packages/backup.scm,
gnu/packages/bash.scm,
gnu/packages/benchmark.scm,
gnu/packages/bioconductor.scm,
gnu/packages/bioinformatics.scm,
gnu/packages/bittorrent.scm,
gnu/packages/boost.scm,
gnu/packages/build-tools.scm,
gnu/packages/c.scm,
gnu/packages/calendar.scm,
gnu/packages/cdrom.scm,
gnu/packages/check.scm,
gnu/packages/chemistry.scm,
gnu/packages/chez.scm,
gnu/packages/clojure.scm,
gnu/packages/code.scm,
gnu/packages/compression.scm,
gnu/packages/compton.scm,
gnu/packages/coq.scm,
gnu/packages/cpp.scm,
gnu/packages/cran.scm,
gnu/packages/crypto.scm,
gnu/packages/curl.scm,
gnu/packages/databases.scm,
gnu/packages/datastructures.scm,
gnu/packages/debug.scm,
gnu/packages/disk.scm,
gnu/packages/distributed.scm,
gnu/packages/django.scm,
gnu/packages/dlang.scm,
gnu/packages/dns.scm,
gnu/packages/docker.scm,
gnu/packages/education.scm,
gnu/packages/efi.scm,
gnu/packages/elixir.scm,
gnu/packages/emacs-xyz.scm,
gnu/packages/embedded.scm,
gnu/packages/emulators.scm,
gnu/packages/engineering.scm,
gnu/packages/erlang.scm,
gnu/packages/fabric-management.scm,
gnu/packages/file-systems.scm,
gnu/packages/finance.scm,
gnu/packages/firmware.scm,
gnu/packages/flashing-tools.scm,
gnu/packages/fonts.scm,
gnu/packages/fontutils.scm,
gnu/packages/fpga.scm,
gnu/packages/game-development.scm,
gnu/packages/games.scm,
gnu/packages/genealogy.scm,
gnu/packages/genimage.scm,
gnu/packages/geo.scm,
gnu/packages/gimp.scm,
gnu/packages/gl.scm,
gnu/packages/gnome-xyz.scm,
gnu/packages/gnome.scm,
gnu/packages/gnuzilla.scm,
gnu/packages/golang.scm,
gnu/packages/gpodder.scm,
gnu/packages/graph.scm,
gnu/packages/graphics.scm,
gnu/packages/graphviz.scm,
gnu/packages/groff.scm,
gnu/packages/groovy.scm,
gnu/packages/gtk.scm,
gnu/packages/guile-xyz.scm,
gnu/packages/guile.scm,
gnu/packages/hardware.scm,
gnu/packages/haskell-apps.scm,
gnu/packages/haskell-xyz.scm,
gnu/packages/hexedit.scm,
gnu/packages/i2p.scm,
gnu/packages/ibus.scm,
gnu/packages/image-processing.scm,
gnu/packages/image-viewers.scm,
gnu/packages/image.scm,
gnu/packages/ipfs.scm,
gnu/packages/java-graphics.scm,
gnu/packages/java-maths.scm,
gnu/packages/java.scm,
gnu/packages/javascript.scm,
gnu/packages/jrnl.scm,
gnu/packages/julia.scm,
gnu/packages/jupyter.scm,
gnu/packages/kodi.scm,
gnu/packages/language.scm,
gnu/packages/lego.scm,
gnu/packages/less.scm,
gnu/packages/libusb.scm,
gnu/packages/linux.scm,
gnu/packages/lirc.scm,
gnu/packages/lisp-xyz.scm,
gnu/packages/llvm.scm,
gnu/packages/logging.scm,
gnu/packages/lolcode.scm,
gnu/packages/lua.scm,
gnu/packages/lxde.scm,
gnu/packages/lxqt.scm,
gnu/packages/machine-learning.scm,
gnu/packages/mail.scm,
gnu/packages/markup.scm,
gnu/packages/maths.scm,
gnu/packages/maven.scm,
gnu/packages/mes.scm,
gnu/packages/messaging.scm,
gnu/packages/monitoring.scm,
gnu/packages/mpd.scm,
gnu/packages/music.scm,
gnu/packages/networking.scm,
gnu/packages/node-xyz.scm,
gnu/packages/ocaml.scm,
gnu/packages/ocr.scm,
gnu/packages/onc-rpc.scm,
gnu/packages/opencl.scm,
gnu/packages/opencog.scm,
gnu/packages/pantheon.scm,
gnu/packages/password-utils.scm,
gnu/packages/patchutils.scm,
gnu/packages/pdf.scm,
gnu/packages/perl6.scm,
gnu/packages/phabricator.scm,
gnu/packages/popt.scm,
gnu/packages/printers.scm,
gnu/packages/prolog.scm,
gnu/packages/protobuf.scm,
gnu/packages/pulseaudio.scm,
gnu/packages/python-crypto.scm,
gnu/packages/python-web.scm,
gnu/packages/python-xyz.scm,
gnu/packages/qt.scm,
gnu/packages/radio.scm,
gnu/packages/rails.scm,
gnu/packages/rdf.scm,
gnu/packages/rednotebook.scm,
gnu/packages/rpc.scm,
gnu/packages/rsync.scm,
gnu/packages/ruby.scm,
gnu/packages/rust.scm,
gnu/packages/scheme.scm,
gnu/packages/screen.scm,
gnu/packages/security-token.scm,
gnu/packages/selinux.scm,
gnu/packages/serialization.scm,
gnu/packages/shells.scm,
gnu/packages/shellutils.scm,
gnu/packages/simh.scm,
gnu/packages/sml.scm,
gnu/packages/ssh.scm,
gnu/packages/statistics.scm,
gnu/packages/stenography.scm,
gnu/packages/sync.scm,
gnu/packages/syncthing.scm,
gnu/packages/synergy.scm,
gnu/packages/telephony.scm,
gnu/packages/terminals.scm,
gnu/packages/tex.scm,
gnu/packages/texinfo.scm,
gnu/packages/text-editors.scm,
gnu/packages/textutils.scm,
gnu/packages/time.scm,
gnu/packages/tmux.scm,
gnu/packages/tor.scm,
gnu/packages/toys.scm,
gnu/packages/version-control.scm,
gnu/packages/video.scm,
gnu/packages/vim.scm,
gnu/packages/virtualization.scm,
gnu/packages/vlang.scm,
gnu/packages/vnc.scm,
gnu/packages/vpn.scm,
gnu/packages/web-browsers.scm,
gnu/packages/web.scm,
gnu/packages/wireservice.scm,
gnu/packages/wm.scm,
gnu/packages/wxwidgets.scm,
gnu/packages/xdisorg.scm,
gnu/packages/xml.scm,
gnu/packages/xorg.scm,
tests/lint.scm: Remove trailing ".git" from 'git-reference' URL.
2020-07-12 20:53:28 +00:00
|
|
|
(url "https://github.com/openucx/ucx")
|
2019-10-15 09:18:49 +00:00
|
|
|
(commit (string-append "v" version))))
|
|
|
|
(file-name (git-file-name name version))
|
|
|
|
(sha256
|
|
|
|
(base32
|
2019-11-16 16:15:14 +00:00
|
|
|
"0x3clvy716i7va4m4adgx6ihjsfnzrkdizhxz5v52944dkglpc8n"))
|
|
|
|
(patches (search-patches "ucx-tcp-iface-ioctl.patch"))))
|
2019-10-15 09:18:49 +00:00
|
|
|
(build-system gnu-build-system)
|
|
|
|
(arguments
|
2019-10-17 09:28:13 +00:00
|
|
|
'( ;; These are some of the flags found in 'contrib/configure-release'.
|
|
|
|
#:configure-flags (list
|
2019-11-08 09:16:39 +00:00
|
|
|
"--disable-static"
|
|
|
|
|
2019-10-17 09:28:13 +00:00
|
|
|
;; XXX: Disable optimizations specific to the build
|
|
|
|
;; machine (AVX, etc.) There's apparently no way to
|
|
|
|
;; have them picked up at load time.
|
|
|
|
"--disable-optimizations"
|
2019-10-15 09:18:49 +00:00
|
|
|
|
2019-10-17 09:28:13 +00:00
|
|
|
"--disable-logging"
|
|
|
|
"--disable-debug"
|
|
|
|
"--disable-assertions"
|
|
|
|
"--disable-params-check"
|
|
|
|
|
2019-11-08 09:15:24 +00:00
|
|
|
(string-append "--with-verbs="
|
|
|
|
(assoc-ref %build-inputs
|
|
|
|
"rdma-core"))
|
|
|
|
|
2019-10-17 09:28:13 +00:00
|
|
|
(string-append "--with-rdmacm="
|
|
|
|
(assoc-ref %build-inputs
|
2019-10-17 09:31:38 +00:00
|
|
|
"rdma-core")))
|
|
|
|
|
|
|
|
;; Be verbose so that compiler flags are displayed.
|
|
|
|
#:make-flags '("V=1")))
|
2019-10-15 09:18:49 +00:00
|
|
|
(native-inputs
|
|
|
|
`(("autoconf" ,autoconf)
|
|
|
|
("automake" ,automake)
|
|
|
|
("libtool" ,libtool)
|
|
|
|
("pkg-config" ,pkg-config)))
|
|
|
|
(inputs
|
|
|
|
`(("numactl" ,numactl)
|
|
|
|
("rdma-core" ,rdma-core)))
|
|
|
|
(synopsis "Optimized communication layer for message passing in HPC")
|
|
|
|
(description
|
|
|
|
"Unified Communication X (UCX) provides an optimized communication layer
|
|
|
|
for message passing (MPI), portable global address space (PGAS) languages and
|
|
|
|
run-time support libraries, as well as RPC and data-centric applications.
|
|
|
|
|
|
|
|
UCX utilizes high-speed networks for inter-node communication, and shared
|
|
|
|
memory mechanisms for efficient intra-node communication.")
|
|
|
|
(home-page "https://www.openucx.org/")
|
|
|
|
(license bsd-3)
|
|
|
|
|
|
|
|
;; <ucm/bistro/bistro.h> lists only PowerPC64, AArch64, and x86_64 as
|
|
|
|
;; supported.
|
|
|
|
(supported-systems '("x86_64-linux" "aarch64-linux"))))
|