(define-module (glicid packages parallel) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) #:use-module ((gnu packages parallel) #:prefix gnu:) #:use-module (gnu packages gtk) #:use-module (gnu packages libevent) #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages compression) #:use-module (gnu packages mpi) #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages databases) #:use-module (glicid utils) #:use-module (glicid packages fabric-management) ;for latest ucx #:use-module (gnu packages fabric-management) #:use-module (glicid packages containers) ;for latest podman #:use-module (gnu packages compression) ;lz4 #:use-module (gnu packages lua) ;lua #: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?)) ) (define-public openpmix-3.2.5 (package (name "openpmix-3") (version "3.2.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/openpmix/openpmix/releases/download/v" version "/pmix-" version ".tar.bz2")) (sha256 (base32 "13cc11wxf00w485h6pxjcpwziihaix1pj9rrd20cis1i4bi2hrfv")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list (string-append "--with-hwloc=" (assoc-ref %build-inputs "hwloc"))))) (synopsis "MPIX lib") (description "MPIX. More to come. FIXIT") (home-page "https://www.gnu.org/software/hello/") (license license:gpl3+) (inputs (list libevent `(,hwloc-2 "lib") perl)))) (define-public openpmix-3 openpmix-3.2.5) ;(define-public openpmix ; openpmix-3) ; compat with nautilus… (define-public slurm-upstream-22.05 (package (inherit gnu:slurm) (name "slurm-upstream") (version "22.05.11") (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 (latest-version gnu:slurm-22.05 slurm-upstream-22.05)) (define-public slurm-upstream-23.02 (package (inherit gnu:slurm) (name "slurm-upstream") (version "23.02.8") (source (origin (method url-fetch) (uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2")) (sha256 (base32 "0vh0lbqp315cgcm2wpfg8j718d84lfqr474rfzk46ail5pk0d9vl")))))) (define-public slurm-upstream-23.11 (package (inherit gnu:slurm) (name "slurm-upstream") (version "23.11.10") (source (origin (method url-fetch) (uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2")) (sha256 (base32 "0gf7x85bzpkrx87mb16wyiyvkjxqq01sbajsjxwrspyi2v675hgr")))))) (define-public slurm-upstream-24.05 (package (inherit gnu:slurm) (name "slurm-upstream") (version "24.05.5") (source (origin (method url-fetch) (uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2")) (sha256 (base32 "0vxiymp40lgcb1z76cyqdpqpy7w14r483v54dk4aq84v0aw0mixl")))))) (define-public slurm-upstream-24.11 (package (inherit gnu:slurm) (name "slurm-upstream") (version "24.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2")) (sha256 (base32 "0mlhqsyn3sc59wjg47wk20aw9rxz379rnqpjny8f0x6qnppfxsrr")))))) (define-public slurm-22.05-glicid-std (package (inherit slurm-22.05-latest) (name "slurm-glicid-noucx-nopmix") (inputs (modify-inputs (package-inputs slurm-22.05-latest) (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 (define-public slurm-22.05-glicid (package (inherit slurm-22.05-glicid-std) (version "22.05.11") (name "slurm-glicid") (arguments (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")))))))) (define slurm-23.02-latest (latest-version gnu:slurm slurm-upstream-23.02)) (define-public slurm-23.02-glicid (package (inherit slurm-23.02-latest) (name "slurm-upstream-glicid") (inputs (modify-inputs (package-inputs slurm-23.02-latest) (prepend gtk+-2 `(,mariadb "dev") ucx-latest-glicid ;not autotested by config podman lua lz4))))) (define (make-slurm-glicid base-package) (package (inherit base-package) (name "slurm-glicid") (arguments (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 ucx gnu:openpmix;for pmix support 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))