1{ config, pkgs, lib, ... }:
2
3with lib;
4let
5 cfg = config.programs.singularity;
6 singularity = pkgs.singularity.overrideAttrs (attrs : {
7 installPhase = attrs.installPhase + ''
8 mv $out/libexec/singularity/bin/starter-suid $out/libexec/singularity/bin/starter-suid.orig
9 ln -s /run/wrappers/bin/singularity-suid $out/libexec/singularity/bin/starter-suid
10 '';
11 });
12in {
13 options.programs.singularity = {
14 enable = mkEnableOption "Singularity";
15 };
16
17 config = mkIf cfg.enable {
18 environment.systemPackages = [ singularity ];
19 security.wrappers.singularity-suid.source = "${singularity}/libexec/singularity/bin/starter-suid.orig";
20 systemd.tmpfiles.rules = [
21 "d /var/singularity/mnt/session 0770 root root -"
22 "d /var/singularity/mnt/final 0770 root root -"
23 "d /var/singularity/mnt/overlay 0770 root root -"
24 "d /var/singularity/mnt/container 0770 root root -"
25 "d /var/singularity/mnt/source 0770 root root -"
26 ];
27 };
28
29}