at 24.05-pre 98 lines 3.0 kB view raw
1{ lib, stdenv, fetchFromGitHub, pkg-config, libtool, curl 2, python3, munge, perl, pam, shadow, coreutils, dbus, libbpf 3, ncurses, libmysqlclient, lua, hwloc, numactl 4, readline, freeipmi, xorg, lz4, rdma-core, nixosTests 5, pmix 6, libjwt 7, libyaml 8, json_c 9, http-parser 10# enable internal X11 support via libssh2 11, enableX11 ? true 12, enableGtk2 ? false, gtk2 13}: 14 15stdenv.mkDerivation rec { 16 pname = "slurm"; 17 version = "23.02.6.1"; 18 19 # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php 20 # because the latter does not keep older releases. 21 src = fetchFromGitHub { 22 owner = "SchedMD"; 23 repo = "slurm"; 24 # The release tags use - instead of . 25 rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}"; 26 sha256 = "sha256-azgGM4qfS0xtUaiGfXtu8MNYdgpZRUfx+zBgAAlmt6g="; 27 }; 28 29 outputs = [ "out" "dev" ]; 30 31 patches = [ 32 # increase string length to allow for full 33 # path of 'echo' in nix store 34 ./common-env-echo.patch 35 ]; 36 37 prePatch = '' 38 substituteInPlace src/common/env.c \ 39 --replace "/bin/echo" "${coreutils}/bin/echo" 40 '' + (lib.optionalString enableX11 '' 41 substituteInPlace src/common/x11_util.c \ 42 --replace '"/usr/bin/xauth"' '"${xorg.xauth}/bin/xauth"' 43 ''); 44 45 # nixos test fails to start slurmd with 'undefined symbol: slurm_job_preempt_mode' 46 # https://groups.google.com/forum/#!topic/slurm-devel/QHOajQ84_Es 47 # this doesn't fix tests completely at least makes slurmd to launch 48 hardeningDisable = [ "bindnow" ]; 49 50 nativeBuildInputs = [ pkg-config libtool python3 perl ]; 51 buildInputs = [ 52 curl python3 munge pam 53 libmysqlclient ncurses lz4 rdma-core 54 lua hwloc numactl readline freeipmi shadow.su 55 pmix json_c libjwt libyaml dbus libbpf 56 http-parser 57 ] ++ lib.optionals enableX11 [ xorg.xauth ] 58 ++ lib.optionals enableGtk2 [ gtk2 ]; 59 60 configureFlags = with lib; 61 [ "--with-freeipmi=${freeipmi}" 62 "--with-http-parser=${http-parser}" 63 "--with-hwloc=${hwloc.dev}" 64 "--with-json=${json_c.dev}" 65 "--with-jwt=${libjwt}" 66 "--with-lz4=${lz4.dev}" 67 "--with-munge=${munge}" 68 "--with-yaml=${libyaml.dev}" 69 "--with-ofed=${lib.getDev rdma-core}" 70 "--sysconfdir=/etc/slurm" 71 "--with-pmix=${pmix}" 72 "--with-bpf=${libbpf}" 73 "--without-rpath" # Required for configure to pick up the right dlopen path 74 ] ++ (optional enableGtk2 "--disable-gtktest") 75 ++ (optional (!enableX11) "--disable-x11"); 76 77 78 preConfigure = '' 79 patchShebangs ./doc/html/shtml2html.py 80 patchShebangs ./doc/man/man2html.py 81 ''; 82 83 postInstall = '' 84 rm -f $out/lib/*.la $out/lib/slurm/*.la 85 ''; 86 87 enableParallelBuilding = true; 88 89 passthru.tests.slurm = nixosTests.slurm; 90 91 meta = with lib; { 92 homepage = "http://www.schedmd.com/"; 93 description = "Simple Linux Utility for Resource Management"; 94 platforms = platforms.linux; 95 license = licenses.gpl2Only; 96 maintainers = with maintainers; [ jagajaga markuskowa ]; 97 }; 98}