diff --git a/nixos/modules/services/computing/slurm/slurm.nix b/nixos/modules/services/computing/slurm/slurm.nix index 02c0aabe0a74..cf7fc8c75c1f 100644 --- a/nixos/modules/services/computing/slurm/slurm.nix +++ b/nixos/modules/services/computing/slurm/slurm.nix @@ -134,6 +134,8 @@ in from within an interactive session or a batch job. This activates the slurm-spank-x11 module. Note that this option also enables 'services.openssh.forwardX11' on the client. + + This option requires slurm to be compiled without native X11 support. ''; }; diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix index b0460f21bfaf..1603abac8dc1 100644 --- a/pkgs/servers/computing/slurm/default.nix +++ b/pkgs/servers/computing/slurm/default.nix @@ -1,5 +1,9 @@ -{ stdenv, fetchurl, pkgconfig, libtool, curl, python, munge, perl, pam, openssl +{ stdenv, fetchurl, pkgconfig, libtool, curl +, python, munge, perl, pam, openssl , ncurses, mysql, gtk2, lua, hwloc, numactl +, readline, freeipmi, libssh2, xorg +# enable internal X11 support via libssh2 +, enableX11 ? true }: stdenv.mkDerivation rec { @@ -13,6 +17,11 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; + prePatch = stdenv.lib.optional 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 @@ -20,14 +29,20 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig libtool ]; buildInputs = [ - curl python munge perl pam openssl mysql.connector-c ncurses gtk2 lua hwloc numactl - ]; + curl python munge perl pam openssl + mysql.connector-c ncurses gtk2 + lua hwloc numactl readline freeipmi + ] ++ stdenv.lib.optionals enableX11 [ libssh2 xorg.xauth ]; - configureFlags = + configureFlags = with stdenv.lib; [ "--with-munge=${munge}" "--with-ssl=${openssl.dev}" + "--with-hwloc=${hwloc.dev}" + "--with-freeipmi=${freeipmi}" "--sysconfdir=/etc/slurm" - ] ++ stdenv.lib.optional (gtk2 == null) "--disable-gtktest"; + ] ++ (optional (gtk2 == null) "--disable-gtktest") + ++ (optional enableX11 "--with-libssh2=${libssh2.dev}"); + preConfigure = '' patchShebangs ./doc/html/shtml2html.py