1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-30 17:41:12 +00:00
nixpkgs/pkgs/servers/computing/slurm/default.nix
Jonathan Ringer 9bb3fccb5b treewide: pkgs.pkgconfig -> pkgs.pkg-config, move pkgconfig to alias.nix
continuation of #109595

pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.

python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
2021-01-19 01:16:25 -08:00

89 lines
2.6 KiB
Nix

{ lib, stdenv, fetchFromGitHub, pkg-config, libtool, curl
, python3, munge, perl, pam, zlib, shadow, coreutils
, ncurses, libmysqlclient, gtk2, lua, hwloc, numactl
, readline, freeipmi, xorg, lz4, rdma-core, nixosTests
, pmix
# enable internal X11 support via libssh2
, enableX11 ? true
}:
stdenv.mkDerivation rec {
pname = "slurm";
version = "20.11.2.1";
# N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
# because the latter does not keep older releases.
src = fetchFromGitHub {
owner = "SchedMD";
repo = "slurm";
# The release tags use - instead of .
rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
sha256 = "02vz386ix28yr2lrn9z0hycqmw1d0npvwvx51fhp2mav66rrx79p";
};
outputs = [ "out" "dev" ];
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"
'' + (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 = [ pkg-config libtool python3 ];
buildInputs = [
curl python3 munge perl pam zlib
libmysqlclient ncurses gtk2 lz4 rdma-core
lua hwloc numactl readline freeipmi shadow.su
pmix
] ++ lib.optionals enableX11 [ xorg.xauth ];
configureFlags = with lib;
[ "--with-freeipmi=${freeipmi}"
"--with-hwloc=${hwloc.dev}"
"--with-lz4=${lz4.dev}"
"--with-munge=${munge}"
"--with-zlib=${zlib}"
"--with-ofed=${rdma-core}"
"--sysconfdir=/etc/slurm"
"--with-pmix=${pmix}"
] ++ (optional (gtk2 == null) "--disable-gtktest")
++ (optional (!enableX11) "--disable-x11");
preConfigure = ''
patchShebangs ./doc/html/shtml2html.py
patchShebangs ./doc/man/man2html.py
'';
postInstall = ''
rm -f $out/lib/*.la $out/lib/slurm/*.la
'';
enableParallelBuilding = true;
passthru.tests.slurm = nixosTests.slurm;
meta = with lib; {
homepage = "http://www.schedmd.com/";
description = "Simple Linux Utility for Resource Management";
platforms = platforms.linux;
license = licenses.gpl2;
maintainers = with maintainers; [ jagajaga markuskowa ];
};
}