Move slurm to pkgs/
Reviewed-by: Aleix Boné <abonerib@bsc.es>
This commit is contained in:
		
							parent
							
								
									ae6b0ae161
								
							
						
					
					
						commit
						826d6a28ef
					
				| @ -1,24 +1,5 @@ | |||||||
| final: prev: | final: prev: | ||||||
| { | { | ||||||
|   slurm = prev.slurm.overrideAttrs (old: { |  | ||||||
|     patches = (old.patches or []) ++ [ |  | ||||||
|       # See https://bugs.schedmd.com/show_bug.cgi?id=19324 |  | ||||||
|       ./slurm-rank-expansion.patch |  | ||||||
|     ]; |  | ||||||
|     # Install also the pam_slurm_adopt library to restrict users from accessing |  | ||||||
|     # nodes with no job allocated. |  | ||||||
|     postBuild = (old.postBuild or "") + '' |  | ||||||
|       pushd contribs/pam_slurm_adopt |  | ||||||
|         make "PAM_DIR=$out/lib/security" |  | ||||||
|       popd |  | ||||||
|     ''; |  | ||||||
|     postInstall = (old.postInstall or "") + '' |  | ||||||
|       pushd contribs/pam_slurm_adopt |  | ||||||
|         make "PAM_DIR=$out/lib/security" install |  | ||||||
|       popd |  | ||||||
|     ''; |  | ||||||
|   }); |  | ||||||
| 
 |  | ||||||
|   prometheus-slurm-exporter = prev.callPackage ./slurm-exporter.nix { }; |   prometheus-slurm-exporter = prev.callPackage ./slurm-exporter.nix { }; | ||||||
|   meteocat-exporter = prev.callPackage ./meteocat-exporter/default.nix { }; |   meteocat-exporter = prev.callPackage ./meteocat-exporter/default.nix { }; | ||||||
|   upc-qaire-exporter = prev.callPackage ./upc-qaire-exporter/default.nix { }; |   upc-qaire-exporter = prev.callPackage ./upc-qaire-exporter/default.nix { }; | ||||||
|  | |||||||
| @ -1,80 +1,22 @@ | |||||||
| { stdenv, lib, fetchFromGitHub, pkg-config, libtool, curl | { slurm }: | ||||||
| , python, munge, perl, pam, openssl |  | ||||||
| , ncurses, libmysqlclient, gtk2, lua, hwloc, numactl |  | ||||||
| , readline, freeipmi, libssh2, xorg |  | ||||||
| , pmix |  | ||||||
| # enable internal X11 support via libssh2 |  | ||||||
| , enableX11 ? true |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| stdenv.mkDerivation rec { | slurm.overrideAttrs (old: { | ||||||
|   name = "slurm-${version}"; |   patches = (old.patches or []) ++ [ | ||||||
|   version = "17.11.9-2"; |     # See https://bugs.schedmd.com/show_bug.cgi?id=19324 | ||||||
| 
 |     # Still unmerged as of 2025-10-03, another corpo-cancer. | ||||||
|   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php |     ./slurm-rank-expansion.patch | ||||||
|   # because the latter does not keep older releases. |   ]; | ||||||
|   src = fetchFromGitHub { |   # Install also the pam_slurm_adopt library to restrict users from accessing | ||||||
|     owner = "SchedMD"; |   # nodes with no job allocated. | ||||||
|     repo = "slurm"; |   # TODO: Review pam_slurm_adopt, I don't trust their code much. | ||||||
|     # The release tags use - instead of . |   postBuild = (old.postBuild or "") + '' | ||||||
|     rev = "${builtins.replaceStrings ["."] ["-"] name}"; |     pushd contribs/pam_slurm_adopt | ||||||
|     sha256 = "1lq4ac6yjai6wh979dciw8v3d99zbd3w36rfh0vpncqm672fg1qy"; |       make "PAM_DIR=$out/lib/security" | ||||||
|   }; |     popd | ||||||
| 
 |  | ||||||
|   outputs = [ "out" "dev" ]; |  | ||||||
| 
 |  | ||||||
|   prePatch = lib.optional enableX11 '' |  | ||||||
|     substituteInPlace src/common/x11_util.c \ |  | ||||||
|         --replace '"/usr/bin/xauth"' '"${xorg.xauth}/bin/xauth"' |  | ||||||
|   ''; |   ''; | ||||||
| 
 |   postInstall = (old.postInstall or "") + '' | ||||||
|   # nixos test fails to start slurmd with 'undefined symbol: slurm_job_preempt_mode' |     pushd contribs/pam_slurm_adopt | ||||||
|   # https://groups.google.com/forum/#!topic/slurm-devel/QHOajQ84_Es |       make "PAM_DIR=$out/lib/security" install | ||||||
|   # this doesn't fix tests completely at least makes slurmd to launch |     popd | ||||||
|   hardeningDisable = [ "bindnow" ]; |  | ||||||
| 
 |  | ||||||
|   nativeBuildInputs = [ pkg-config libtool ]; |  | ||||||
|   buildInputs = [ |  | ||||||
|     curl python munge perl pam openssl |  | ||||||
|       libmysqlclient ncurses gtk2 |  | ||||||
|       lua hwloc numactl readline freeipmi |  | ||||||
|       pmix |  | ||||||
|   ] ++ lib.optionals enableX11 [ libssh2 xorg.xauth ]; |  | ||||||
| 
 |  | ||||||
|   configureFlags = with lib; |  | ||||||
|     [ "--with-munge=${munge}" |  | ||||||
|       "--with-ssl=${openssl.dev}" |  | ||||||
|       "--with-hwloc=${hwloc.dev}" |  | ||||||
|       "--with-freeipmi=${freeipmi}" |  | ||||||
|       "--sysconfdir=/etc/slurm" |  | ||||||
|       "--with-pmix=${pmix}" |  | ||||||
|     ] ++ (optional (gtk2 == null)  "--disable-gtktest") |  | ||||||
|       ++ (optional enableX11 "--with-libssh2=${libssh2.dev}"); |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|   preConfigure = '' |  | ||||||
|     patchShebangs ./doc/html/shtml2html.py |  | ||||||
|     patchShebangs ./doc/man/man2html.py |  | ||||||
|     patchShebangs ./configure |  | ||||||
|   ''; |   ''; | ||||||
| 
 | }) | ||||||
| #  postBuild = '' |  | ||||||
| #    pushd contrib/pmi2 |  | ||||||
| #      make -j install |  | ||||||
| #    popd |  | ||||||
| #  ''; |  | ||||||
| 
 |  | ||||||
|   postInstall = '' |  | ||||||
|     rm -f $out/lib/*.la $out/lib/slurm/*.la |  | ||||||
|   ''; |  | ||||||
| 
 |  | ||||||
|   enableParallelBuilding = true; |  | ||||||
| 
 |  | ||||||
|   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 ]; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user