30 lines
		
	
	
		
			1001 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1001 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, pkgs, lib, ... }:
 | |
| 
 | |
| with lib;
 | |
| let
 | |
|   cfg = config.programs.singularity;
 | |
|   singularity = pkgs.singularity.overrideAttrs (attrs : {
 | |
|     installPhase = attrs.installPhase + ''
 | |
|       mv $out/libexec/singularity/bin/starter-suid $out/libexec/singularity/bin/starter-suid.orig
 | |
|       ln -s /run/wrappers/bin/singularity-suid $out/libexec/singularity/bin/starter-suid
 | |
|     '';
 | |
|   });
 | |
| in {
 | |
|   options.programs.singularity = {
 | |
|     enable = mkEnableOption "Singularity";
 | |
|   };
 | |
| 
 | |
|   config = mkIf cfg.enable {
 | |
|       environment.systemPackages = [ singularity ];
 | |
|       security.wrappers.singularity-suid.source = "${singularity}/libexec/singularity/bin/starter-suid.orig";
 | |
|       systemd.tmpfiles.rules = [
 | |
|         "d /var/singularity/mnt/session 0770 root root -"
 | |
|         "d /var/singularity/mnt/final 0770 root root -"
 | |
|         "d /var/singularity/mnt/overlay 0770 root root -"
 | |
|         "d /var/singularity/mnt/container 0770 root root -"
 | |
|         "d /var/singularity/mnt/source 0770 root root -"
 | |
|       ];
 | |
|   };
 | |
| 
 | |
| }
 | 
