guix-glicid/glicid/packages/parallel.scm

296 lines
12 KiB
Scheme
Raw Normal View History

2021-10-24 22:23:44 +02:00
(define-module (glicid packages parallel)
#:use-module (guix packages)
#:use-module (guix download)
2023-07-10 23:01:06 +02:00
#:use-module (guix gexp)
2022-11-30 15:23:24 +01:00
#:use-module (guix git-download)
2021-10-24 22:23:44 +02:00
#:use-module (guix build-system gnu)
2023-01-02 11:18:12 +01:00
#:use-module ((guix licenses)
#:prefix license:)
2025-01-10 12:42:50 +01:00
#:use-module ((gnu packages parallel)
#:prefix gnu:)
2023-01-02 11:18:12 +01:00
#:use-module (gnu packages gtk)
2021-10-24 22:23:44 +02:00
#:use-module (gnu packages libevent)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
2021-10-24 22:23:44 +02:00
#:use-module (gnu packages compression)
#:use-module (gnu packages mpi)
#:use-module (gnu packages haskell-xyz)
2021-10-24 22:23:44 +02:00
#:use-module (gnu packages databases)
2022-05-11 16:55:48 +02:00
#:use-module (glicid utils)
2023-01-02 11:18:12 +01:00
#:use-module (glicid packages fabric-management) ;for latest ucx
2023-07-11 16:32:25 +02:00
#:use-module (gnu packages fabric-management)
2023-01-02 11:18:12 +01:00
#:use-module (glicid packages containers) ;for latest podman
#:use-module (gnu packages compression) ;lz4
#:use-module (gnu packages lua) ;lua
2025-01-10 12:42:50 +01:00
#:use-module (gnu packages web) ;json-c, http-parser for slurm REST API
#:use-module (gnu packages serialization) ;libyaml for slurm REST API
#:use-module ((guix utils)
#:select (target-64bit?))
2023-07-11 12:37:24 +02:00
2023-01-02 11:18:12 +01:00
)
2021-10-24 22:23:44 +02:00
2025-01-10 12:42:50 +01:00
(define-public openpmix-3.2.5
(package
2023-07-11 16:32:25 +02:00
(name "openpmix-3")
2025-01-10 12:42:50 +01:00
(version "3.2.5")
2023-01-02 11:18:12 +01:00
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/openpmix/openpmix/releases/download/v"
version "/pmix-" version ".tar.bz2"))
(sha256
(base32
2025-01-10 12:42:50 +01:00
"13cc11wxf00w485h6pxjcpwziihaix1pj9rrd20cis1i4bi2hrfv"))))
(build-system gnu-build-system)
(arguments
2023-01-02 11:18:12 +01:00
`(#:configure-flags (list (string-append "--with-hwloc="
(assoc-ref %build-inputs "hwloc")))))
(synopsis "MPIX lib")
2023-01-02 11:18:12 +01:00
(description "MPIX. More to come. FIXIT")
(home-page "https://www.gnu.org/software/hello/")
(license license:gpl3+)
2023-01-02 11:45:53 +01:00
(inputs (list libevent
`(,hwloc-2 "lib") perl))))
2021-10-24 22:30:40 +02:00
2023-07-10 21:33:38 +02:00
2023-07-11 14:53:09 +02:00
(define-public openpmix-3
2023-09-13 10:02:40 +02:00
openpmix-3.2.5)
2023-07-10 21:33:38 +02:00
2025-01-10 12:42:50 +01:00
;(define-public openpmix
; openpmix-3)
; compat with nautilus…
2023-07-11 14:53:09 +02:00
2025-01-10 12:17:55 +01:00
(define-public slurm-upstream-22.05
2023-01-02 11:18:12 +01:00
(package
2023-11-27 16:35:19 +01:00
(inherit gnu:slurm)
(name "slurm-upstream")
2023-12-19 11:00:26 +01:00
(version "22.05.11")
2025-01-10 12:42:50 +01:00
(source
(origin
(method url-fetch)
(uri (string-append "https://download.schedmd.com/slurm/slurm-" version
".tar.bz2"))
(sha256
(base32 "19kqj06f39kad21wp9b9j82x3zm2w2h8mcjr2zvs1q1rzjmhr1nb"))))))
(define slurm-22.05-latest
2025-01-10 12:17:55 +01:00
(latest-version gnu:slurm-22.05 slurm-upstream-22.05))
2025-01-10 12:17:55 +01:00
(define-public slurm-upstream-23.02
2025-01-10 11:19:50 +01:00
(package
(inherit gnu:slurm)
(name "slurm-upstream")
(version "23.02.8")
2025-01-10 12:42:50 +01:00
(source
(origin
(method url-fetch)
(uri (string-append "https://download.schedmd.com/slurm/slurm-" version
".tar.bz2"))
(sha256
(base32 "0vh0lbqp315cgcm2wpfg8j718d84lfqr474rfzk46ail5pk0d9vl"))))))
2025-01-10 11:19:50 +01:00
2025-01-10 12:17:55 +01:00
(define-public slurm-upstream-23.11
2025-01-10 11:19:50 +01:00
(package
(inherit gnu:slurm)
(name "slurm-upstream")
(version "23.11.10")
2025-01-10 12:42:50 +01:00
(source
(origin
(method url-fetch)
(uri (string-append "https://download.schedmd.com/slurm/slurm-" version
".tar.bz2"))
(sha256
(base32 "0gf7x85bzpkrx87mb16wyiyvkjxqq01sbajsjxwrspyi2v675hgr"))))))
2025-01-10 11:19:50 +01:00
2025-01-10 12:17:55 +01:00
(define-public slurm-upstream-24.05
2025-01-10 11:19:50 +01:00
(package
(inherit gnu:slurm)
(name "slurm-upstream")
(version "24.05.5")
2025-01-10 12:42:50 +01:00
(source
(origin
(method url-fetch)
(uri (string-append "https://download.schedmd.com/slurm/slurm-" version
".tar.bz2"))
(sha256
(base32 "0vxiymp40lgcb1z76cyqdpqpy7w14r483v54dk4aq84v0aw0mixl"))))))
2025-01-10 11:19:50 +01:00
2025-01-10 12:17:55 +01:00
(define-public slurm-upstream-24.11
2025-01-10 11:19:50 +01:00
(package
(inherit gnu:slurm)
(name "slurm-upstream")
(version "24.11.0")
2025-01-10 12:42:50 +01:00
(source
(origin
(method url-fetch)
(uri (string-append "https://download.schedmd.com/slurm/slurm-" version
".tar.bz2"))
(sha256
(base32 "0mlhqsyn3sc59wjg47wk20aw9rxz379rnqpjny8f0x6qnppfxsrr"))))))
2025-01-10 11:19:50 +01:00
2023-07-11 16:32:25 +02:00
(define-public slurm-22.05-glicid-std
2023-01-02 11:18:12 +01:00
(package
(inherit slurm-22.05-latest)
2023-07-11 16:32:25 +02:00
(name "slurm-glicid-noucx-nopmix")
2023-01-02 14:46:00 +01:00
(inputs (modify-inputs (package-inputs slurm-22.05-latest)
2025-01-10 12:42:50 +01:00
(prepend gtk+-2 ;for sview
ucx
openpmix-3 ;for pmix support
json-c
libjwt
libyaml
http-parser ;for REST API
`(,mariadb "dev"))))))
; for mariadb/mysql client support
2023-07-10 23:01:06 +02:00
2023-07-11 16:32:25 +02:00
(define-public slurm-22.05-glicid
2023-07-11 12:21:01 +02:00
(package
2023-07-11 16:32:25 +02:00
(inherit slurm-22.05-glicid-std)
2023-12-19 11:00:26 +01:00
(version "22.05.11")
2023-07-11 16:32:25 +02:00
(name "slurm-glicid")
2023-07-11 12:21:01 +02:00
(arguments
2025-01-10 12:42:50 +01:00
(list
#:configure-flags #~(list "--enable-pam"
"--sysconfdir=/etc/slurm"
"--disable-static"
(string-append "--with-freeipmi="
#$(this-package-input
"freeipmi"))
(string-append "--with-hwloc="
(ungexp (this-package-input
"hwloc") "lib"))
(string-append "--with-json="
#$(this-package-input "json-c"))
(string-append "--with-munge="
#$(this-package-input "munge"))
;; (string-append "--with-pmix=" #$(this-package-input "openpmix-3") ":" #$(this-package-input "openpmix-4") )
(string-append "--with-pmix="
#$(this-package-input
"openpmix-3"))
(string-append "--with-yaml="
#$(this-package-input "libyaml"))
(string-append "--with-jwt="
#$(this-package-input "libjwt"))
(string-append "--with-http-parser="
#$(this-package-input
"http-parser"))
(string-append "--with-ucx="
#$(this-package-input "ucx"))
;; (string-append "--with-pmix=" #$(this-package-input "openpmix-4"))
;; 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")
;; Others expect pmi2.
(invoke "make" "install" "-C" "contribs/pmi2"))))))))
2023-07-10 23:01:06 +02:00
2022-11-30 15:23:24 +01:00
(define slurm-23.02-latest
2025-01-10 12:17:55 +01:00
(latest-version gnu:slurm slurm-upstream-23.02))
2022-11-30 15:23:24 +01:00
(define-public slurm-23.02-glicid
(package
(inherit slurm-23.02-latest)
2023-02-28 09:44:58 +01:00
(name "slurm-upstream-glicid")
2023-01-02 11:45:53 +01:00
(inputs (modify-inputs (package-inputs slurm-23.02-latest)
(prepend gtk+-2
`(,mariadb "dev")
ucx-latest-glicid ;not autotested by config
podman
lua
lz4)))))
2023-01-02 11:18:12 +01:00
2025-01-10 12:17:55 +01:00
(define (make-slurm-glicid base-package)
2025-01-10 12:42:50 +01:00
(package
(inherit base-package)
(name "slurm-glicid")
2025-01-10 12:17:55 +01:00
(arguments
2025-01-10 12:42:50 +01:00
(list
#:configure-flags #~(list "--enable-pam"
"--sysconfdir=/etc/slurm"
"--disable-static"
(string-append "--with-freeipmi="
#$(this-package-input
"freeipmi"))
(string-append "--with-hwloc="
(ungexp (this-package-input
"hwloc") "lib"))
(string-append "--with-json="
#$(this-package-input "json-c"))
(string-append "--with-munge="
#$(this-package-input "munge"))
;; (string-append "--with-pmix=" #$(this-package-input "openpmix-3") ":" #$(this-package-input "openpmix-4") )
;; (string-append "--with-pmix=" #$(this-package-input "openpmix-3"))
(string-append "--with-yaml="
#$(this-package-input "libyaml"))
(string-append "--with-jwt="
#$(this-package-input "libjwt"))
(string-append "--with-http-parser="
#$(this-package-input
"http-parser"))
(string-append "--with-ucx="
#$(this-package-input "ucx"))
(string-append "--with-pmix="
#$(this-package-input
"openpmix-4"))
;; 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")
;; Others expect pmi2.
(invoke "make" "install" "-C" "contribs/pmi2"))))))
(inputs (modify-inputs (package-inputs base-package)
(prepend gtk+-2 ;for sview
2025-01-10 13:17:16 +01:00
ucx gnu:openpmix;for pmix support
2025-01-10 12:42:50 +01:00
json-c
libjwt
libyaml
http-parser ;for REST API
`(,mariadb "dev")))))) ; for mariadb/mysql client support
(define-public slurm-glicid
slurm-22.05-glicid)
(define-public slurm-ccipl
slurm-22.05-glicid)
(define-public slurm-glicid-preprod
slurm-22.05-glicid)
(define-public slurm-glicid-test
slurm-23.02-glicid)
(define-public slurm-glicid-23.11
(make-slurm-glicid slurm-upstream-23.11))
(define-public slurm-glicid-24.11
(make-slurm-glicid slurm-upstream-24.11))
2022-11-30 15:23:24 +01:00