about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorYueh-Shun Li <shamrocklee@posteo.net>2023-08-22 18:05:31 +0800
committerYueh-Shun Li <shamrocklee@posteo.net>2023-08-23 18:40:20 +0800
commitac776695313a2da0ee99ba328da474f606a7a9d9 (patch)
tree89254d1edc3cc0f6abd74057fb082d7e4bd025f1 /pkgs
parent7ccd49546562fa11db090ec9d7bfc2b20fae6fbd (diff)
downloadnixlib-ac776695313a2da0ee99ba328da474f606a7a9d9.tar
nixlib-ac776695313a2da0ee99ba328da474f606a7a9d9.tar.gz
nixlib-ac776695313a2da0ee99ba328da474f606a7a9d9.tar.bz2
nixlib-ac776695313a2da0ee99ba328da474f606a7a9d9.tar.lz
nixlib-ac776695313a2da0ee99ba328da474f606a7a9d9.tar.xz
nixlib-ac776695313a2da0ee99ba328da474f606a7a9d9.tar.zst
nixlib-ac776695313a2da0ee99ba328da474f606a7a9d9.zip
apptainer, singularity: make LOCALSTATEDIR internal by default
Use "$out/var/lib" as LOCALSTATEDIR configuration value
by default intsead of "/var/lib"
as a way toward top-level-directory independent runtime.

Add input argument externalLocalStateDir to optionally specify the
path to external LOCALSTATEDIR if not null.

Add NixOS module option
programs.singularity.enableExternalLocalStateDir (default to true)
to use "/var/lib" as LOCALSTATEDIR.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/virtualization/singularity/generic.nix5
1 files changed, 4 insertions, 1 deletions
diff --git a/pkgs/applications/virtualization/singularity/generic.nix b/pkgs/applications/virtualization/singularity/generic.nix
index 2e4d589d158e..7451bcf6b96f 100644
--- a/pkgs/applications/virtualization/singularity/generic.nix
+++ b/pkgs/applications/virtualization/singularity/generic.nix
@@ -71,6 +71,8 @@ in
 , newuidmapPath ? null
   # Path to SUID-ed newgidmap executable
 , newgidmapPath ? null
+  # External LOCALSTATEDIR
+, externalLocalStateDir ? null
   # Remove the symlinks to `singularity*` when projectName != "singularity"
 , removeCompat ? false
   # Workaround #86349
@@ -106,6 +108,7 @@ in
     inherit
       enableSeccomp
       enableSuid
+      externalLocalStateDir
       projectName
       removeCompat
       starterSuidPath
@@ -141,7 +144,7 @@ in
   configureScript = "./mconfig";
 
   configureFlags = [
-    "--localstatedir=/var/lib"
+    "--localstatedir=${if externalLocalStateDir != null then externalLocalStateDir else "${placeholder "out"}/var/lib"}"
     "--runstatedir=/var/run"
   ]
   ++ lib.optional (!enableSeccomp) "--without-seccomp"