aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/servers/computing/slurm/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/computing/slurm/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/computing/slurm/default.nix38
1 files changed, 26 insertions, 12 deletions
diff --git a/nixpkgs/pkgs/servers/computing/slurm/default.nix b/nixpkgs/pkgs/servers/computing/slurm/default.nix
index 1554fb69f19..2b06671e4e0 100644
--- a/nixpkgs/pkgs/servers/computing/slurm/default.nix
+++ b/nixpkgs/pkgs/servers/computing/slurm/default.nix
@@ -1,14 +1,15 @@
{ stdenv, fetchFromGitHub, pkgconfig, libtool, curl
-, python, munge, perl, pam, openssl, zlib
+, python3, munge, perl, pam, zlib, shadow, coreutils
, ncurses, libmysqlclient, gtk2, lua, hwloc, numactl
-, readline, freeipmi, libssh2, xorg, lz4, rdma-core
+, readline, freeipmi, xorg, lz4, rdma-core, nixosTests
+, pmix
# enable internal X11 support via libssh2
, enableX11 ? true
}:
stdenv.mkDerivation rec {
pname = "slurm";
- version = "19.05.5.1";
+ version = "20.02.4.1";
# N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
# because the latter does not keep older releases.
@@ -17,39 +18,50 @@ stdenv.mkDerivation rec {
repo = "slurm";
# The release tags use - instead of .
rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
- sha256 = "0f0gv3sirp6sxdrbwydsbcqicjbmrpm58yhgbsar8v6nx3g6y3hx";
+ sha256 = "071lwny7cj4idq0h03mmvkk4f4i6fgl3c5q8cvbh7z8px6k50cfp";
};
outputs = [ "out" "dev" ];
- prePatch = stdenv.lib.optional enableX11 ''
+ patches = [
+ # increase string length to allow for full
+ # path of 'echo' in nix store
+ ./common-env-echo.patch
+ # Required for configure to pick up the right dlopen path
+ ./pmix-configure.patch
+ ];
+
+ prePatch = ''
+ substituteInPlace src/common/env.c \
+ --replace "/bin/echo" "${coreutils}/bin/echo"
+ '' + (stdenv.lib.optionalString enableX11 ''
substituteInPlace src/common/x11_util.c \
--replace '"/usr/bin/xauth"' '"${xorg.xauth}/bin/xauth"'
- '';
+ '');
# nixos test fails to start slurmd with 'undefined symbol: slurm_job_preempt_mode'
# https://groups.google.com/forum/#!topic/slurm-devel/QHOajQ84_Es
# this doesn't fix tests completely at least makes slurmd to launch
hardeningDisable = [ "bindnow" ];
- nativeBuildInputs = [ pkgconfig libtool ];
+ nativeBuildInputs = [ pkgconfig libtool python3 ];
buildInputs = [
- curl python munge perl pam openssl zlib
+ curl python3 munge perl pam zlib
libmysqlclient ncurses gtk2 lz4 rdma-core
- lua hwloc numactl readline freeipmi
- ] ++ stdenv.lib.optionals enableX11 [ libssh2 xorg.xauth ];
+ lua hwloc numactl readline freeipmi shadow.su
+ pmix
+ ] ++ stdenv.lib.optionals enableX11 [ xorg.xauth ];
configureFlags = with stdenv.lib;
[ "--with-freeipmi=${freeipmi}"
"--with-hwloc=${hwloc.dev}"
"--with-lz4=${lz4.dev}"
"--with-munge=${munge}"
- "--with-ssl=${openssl.dev}"
"--with-zlib=${zlib}"
"--with-ofed=${rdma-core}"
"--sysconfdir=/etc/slurm"
+ "--with-pmix=${pmix}"
] ++ (optional (gtk2 == null) "--disable-gtktest")
- ++ (optional enableX11 "--with-libssh2=${libssh2.dev}")
++ (optional (!enableX11) "--disable-x11");
@@ -64,6 +76,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
+ passthru.tests.slurm = nixosTests.slurm;
+
meta = with stdenv.lib; {
homepage = "http://www.schedmd.com/";
description = "Simple Linux Utility for Resource Management";