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 $bin/libexec/singularity/bin/starter-suid $bin/libexec/singularity/bin/starter-suid.orig
|
|
ln -s /run/wrappers/bin/singularity-suid $bin/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 -"
|
|
];
|
|
};
|
|
|
|
}
|