mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-13 14:40:21 -05:00
gnu: slurm: Use gexps and remove input labels.
* gnu/packages/parallel.scm (slurm)[source]: Remove trailing #t. [native-inputs]: Remove labels. [arguments]: Rewrite as gexps. Use 'this-package-input' instead of '%build-inputs'. (slurm-20.02)[arguments]: Adjust accordingly.
This commit is contained in:
parent
d3a7cd7acf
commit
d80c722034
1 changed files with 78 additions and 82 deletions
|
@ -38,6 +38,7 @@ (define-module (gnu packages parallel)
|
|||
#:use-module ((guix utils) #:select (target-64bit?))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages autotools)
|
||||
|
@ -164,93 +165,88 @@ (define-public xjobs
|
|||
|
||||
(define-public slurm
|
||||
(package
|
||||
(name "slurm")
|
||||
(version "20.11.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://download.schedmd.com/slurm/slurm-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1fdjihg1x7ks5l77yjv14a4mg6r0v8c3zk1dcxkhrhq3n4dc9nbs"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; According to
|
||||
;; <https://lists.gnu.org/archive/html/guix-devel/2016-02/msg00534.html>
|
||||
;; there are non-free bits under contribs/, though it's not
|
||||
;; clear which ones. libpmi is clearly free (it used to be
|
||||
;; under src/api/), so remove all of contribs/ except
|
||||
;; contribs/pmi/.
|
||||
(substitute* "configure.ac"
|
||||
(("^[[:space:]]+contribs/(.*)$" all directory)
|
||||
(if (and (string-prefix? "pmi" directory)
|
||||
(not (string-prefix? "pmi2" directory)))
|
||||
all
|
||||
"")))
|
||||
(name "slurm")
|
||||
(version "20.11.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://download.schedmd.com/slurm/slurm-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1fdjihg1x7ks5l77yjv14a4mg6r0v8c3zk1dcxkhrhq3n4dc9nbs"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; According to
|
||||
;; <https://lists.gnu.org/archive/html/guix-devel/2016-02/msg00534.html>
|
||||
;; there are non-free bits under contribs/, though it's not
|
||||
;; clear which ones. libpmi is clearly free (it used to be
|
||||
;; under src/api/), so remove all of contribs/ except
|
||||
;; contribs/pmi/.
|
||||
(substitute* "configure.ac"
|
||||
(("^[[:space:]]+contribs/(.*)$" all directory)
|
||||
(if (and (string-prefix? "pmi" directory)
|
||||
(not (string-prefix? "pmi2" directory)))
|
||||
all
|
||||
"")))
|
||||
|
||||
(rename-file "contribs/pmi" "tmp-pmi")
|
||||
(delete-file-recursively "contribs")
|
||||
(mkdir "contribs")
|
||||
(rename-file "tmp-pmi" "contribs/pmi")
|
||||
#t))))
|
||||
;; FIXME: More optional inputs could be added,
|
||||
;; in particular mysql and gtk+.
|
||||
(inputs (list freeipmi
|
||||
`(,hwloc-2 "lib")
|
||||
json-c
|
||||
linux-pam
|
||||
munge
|
||||
numactl
|
||||
readline))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("expect" ,expect)
|
||||
("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python" ,python-wrapper)))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "--enable-pam" "--sysconfdir=/etc/slurm"
|
||||
"--disable-static"
|
||||
(string-append "--with-freeipmi=" (assoc-ref %build-inputs "freeipmi"))
|
||||
(string-append "--with-hwloc=" (assoc-ref %build-inputs "hwloc"))
|
||||
(string-append "--with-json=" (assoc-ref %build-inputs "json-c"))
|
||||
(string-append "--with-munge=" (assoc-ref %build-inputs "munge"))
|
||||
(rename-file "contribs/pmi" "tmp-pmi")
|
||||
(delete-file-recursively "contribs")
|
||||
(mkdir "contribs")
|
||||
(rename-file "tmp-pmi" "contribs/pmi")))))
|
||||
;; FIXME: More optional inputs could be added,
|
||||
;; in particular mysql and gtk+.
|
||||
(inputs (list freeipmi
|
||||
`(,hwloc-2 "lib")
|
||||
json-c
|
||||
linux-pam
|
||||
munge
|
||||
numactl
|
||||
readline))
|
||||
(native-inputs
|
||||
(list autoconf expect perl pkg-config python-wrapper))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:configure-flags
|
||||
#~(list "--enable-pam" "--sysconfdir=/etc/slurm"
|
||||
"--disable-static"
|
||||
(string-append "--with-freeipmi=" #$(this-package-input "freeipmi"))
|
||||
(string-append "--with-hwloc=" #$(this-package-input "hwloc"))
|
||||
(string-append "--with-json=" #$(this-package-input "json-c"))
|
||||
(string-append "--with-munge=" #$(this-package-input "munge"))
|
||||
|
||||
;; 32-bit support is marked as deprecated and needs to be
|
||||
;; explicitly enabled.
|
||||
,@(if (target-64bit?) '() '("--enable-deprecated")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-plugin-linker-flags
|
||||
(lambda _
|
||||
(substitute* (find-files "src/plugins/" "Makefile.in")
|
||||
(("_la_LDFLAGS = ")
|
||||
"_la_LDFLAGS = ../../../api/libslurm.la "))))
|
||||
(add-after 'patch-plugin-linker-flags 'autoconf
|
||||
(lambda _ (invoke "autoconf"))) ;configure.ac was patched
|
||||
(add-after 'install 'install-libpmi
|
||||
(lambda _
|
||||
;; Open MPI expects libpmi to be provided by Slurm so install it.
|
||||
(invoke "make" "install" "-C" "contribs/pmi"))))))
|
||||
(home-page "https://slurm.schedmd.com/")
|
||||
(synopsis "Workload manager for cluster computing")
|
||||
(description
|
||||
"SLURM is a fault-tolerant and highly scalable cluster management and job
|
||||
;; 32-bit support is marked as deprecated and needs to be
|
||||
;; explicitly enabled.
|
||||
#$@(if (target-64bit?) '() '("--enable-deprecated")))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-plugin-linker-flags
|
||||
(lambda _
|
||||
(substitute* (find-files "src/plugins/" "Makefile.in")
|
||||
(("_la_LDFLAGS = ")
|
||||
"_la_LDFLAGS = ../../../api/libslurm.la "))))
|
||||
(add-after 'patch-plugin-linker-flags 'autoconf
|
||||
(lambda _ (invoke "autoconf"))) ;configure.ac was patched
|
||||
(add-after 'install 'install-libpmi
|
||||
(lambda _
|
||||
;; Open MPI expects libpmi to be provided by Slurm so install it.
|
||||
(invoke "make" "install" "-C" "contribs/pmi"))))))
|
||||
(home-page "https://slurm.schedmd.com/")
|
||||
(synopsis "Workload manager for cluster computing")
|
||||
(description
|
||||
"SLURM is a fault-tolerant and highly scalable cluster management and job
|
||||
scheduling system for large and small clusters. It allocates access to
|
||||
resources (computer nodes) to users for some duration of time, provides a
|
||||
framework for starting, executing, and monitoring work (typically a parallel
|
||||
job) on a set of allocated nodes, and arbitrates contention for resources
|
||||
by managing a queue of pending work.")
|
||||
(license (list license:bsd-2 ; src/common/log.[ch], src/common/uthash
|
||||
license:expat ; slurm/pmi.h
|
||||
license:isc ; src/common/strlcpy.c
|
||||
license:lgpl2.1+ ; hilbert.[ch], src/common/slurm_time.h
|
||||
license:zlib ; src/common/strnatcmp.c
|
||||
license:gpl2+)))) ; the rest, often with OpenSSL exception
|
||||
(license (list license:bsd-2 ; src/common/log.[ch], src/common/uthash
|
||||
license:expat ; slurm/pmi.h
|
||||
license:isc ; src/common/strlcpy.c
|
||||
license:lgpl2.1+ ; hilbert.[ch], src/common/slurm_time.h
|
||||
license:zlib ; src/common/strnatcmp.c
|
||||
license:gpl2+)))) ; the rest, often with OpenSSL exception
|
||||
|
||||
;; The SLURM client/daemon protocol and file format changes from time to time
|
||||
;; in incompatible ways, as noted in
|
||||
|
@ -275,8 +271,8 @@ (define-public slurm-20.02
|
|||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments slurm)
|
||||
((#:configure-flags flags ''())
|
||||
`(append '("CFLAGS=-O2 -g -fcommon" "LDFLAGS=-fcommon")
|
||||
,flags))))))
|
||||
#~(append '("CFLAGS=-O2 -g -fcommon" "LDFLAGS=-fcommon")
|
||||
#$flags))))))
|
||||
|
||||
(define-public slurm-19.05
|
||||
(package
|
||||
|
|
Loading…
Reference in a new issue